@avalabs/fusion-sdk 0.26.1 → 0.27.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.
Files changed (31) hide show
  1. package/dist/mod.cjs +1 -1
  2. package/dist/mod.d.cts +3 -2
  3. package/dist/mod.d.ts +3 -2
  4. package/dist/mod.js +1 -1
  5. package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.cjs +1 -1
  6. package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.js +1 -1
  7. package/dist/transfer-service/avalanche-cct/_handlers/get-bridgeable-assets.cjs +1 -1
  8. package/dist/transfer-service/avalanche-cct/_handlers/get-bridgeable-assets.js +1 -1
  9. package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.cjs +1 -1
  10. package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.js +1 -1
  11. package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.cjs +1 -1
  12. package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.js +1 -1
  13. package/dist/transfer-service/avalanche-cct/_utils/fees.cjs +1 -1
  14. package/dist/transfer-service/avalanche-cct/_utils/fees.js +1 -1
  15. package/dist/transfer-service/avalanche-cct/_utils/polling.cjs +1 -1
  16. package/dist/transfer-service/avalanche-cct/_utils/polling.js +1 -1
  17. package/dist/transfer-service/avalanche-cct/avalanche-cct-service.cjs +1 -1
  18. package/dist/transfer-service/avalanche-cct/avalanche-cct-service.js +1 -1
  19. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs +2 -0
  20. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs.map +1 -0
  21. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.cts +33 -0
  22. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts +33 -0
  23. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.js +2 -0
  24. package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.js.map +1 -0
  25. package/dist/type-guards.cjs +1 -1
  26. package/dist/type-guards.cjs.map +1 -1
  27. package/dist/type-guards.d.cts +13 -1
  28. package/dist/type-guards.d.ts +13 -1
  29. package/dist/type-guards.js +1 -1
  30. package/dist/type-guards.js.map +1 -1
  31. package/package.json +1 -1
package/dist/mod.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./constants.cjs`),t=require(`./errors.cjs`),n=require(`./type-guards.cjs`),r=require(`./transfer-manager.cjs`),i=require(`./utils/caip.cjs`),a=require(`./utils/bridgeable-assets.cjs`),o=require(`./utils/destination-chains.cjs`),s=require(`./utils/price-impact.cjs`),c=require(`./utils/transfer-utils.cjs`),l=require(`./transfer-service/markr/recurring/types.cjs`),u=require(`./transfer-service/markr/recurring/_frequency.cjs`),d=require(`./transfer-service/_evm-approval.cjs`);exports.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK=e.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,exports.AVALANCHE_FUJI_CHAIN=e.AVALANCHE_FUJI_CHAIN,exports.AVALANCHE_FUJI_P_CHAIN=e.AVALANCHE_FUJI_P_CHAIN,exports.AVALANCHE_FUJI_X_CHAIN=e.AVALANCHE_FUJI_X_CHAIN,exports.AVALANCHE_MAINNET_CHAIN=e.AVALANCHE_MAINNET_CHAIN,exports.AVALANCHE_MAINNET_P_CHAIN=e.AVALANCHE_MAINNET_P_CHAIN,exports.AVALANCHE_MAINNET_X_CHAIN=e.AVALANCHE_MAINNET_X_CHAIN,exports.AbortedError=t.AbortedError,exports.ApprovalRevertedError=d.ApprovalRevertedError,exports.AvalancheChainIds=e.AvalancheChainIds,exports.AvalancheFujiBlockchainChainIds=e.AvalancheFujiBlockchainChainIds,exports.AvalancheFujiBlockchainIds=e.AvalancheFujiBlockchainIds,exports.AvalancheMainnetBlockchainChainIds=e.AvalancheMainnetBlockchainChainIds,exports.AvalancheMainnetBlockchainIds=e.AvalancheMainnetBlockchainIds,exports.BITCOIN_MAINNET_CHAIN=e.BITCOIN_MAINNET_CHAIN,exports.BITCOIN_TESTNET_CHAIN=e.BITCOIN_TESTNET_CHAIN,exports.BTC_SERVICE_TYPES=e.BTC_SERVICE_TYPES,exports.BaseChainIds=e.BaseChainIds,exports.BitcoinChainIds=e.BitcoinChainIds,exports.Blockchain=e.Blockchain,exports.ERC_ZERO_ADDRESS=e.ERC_ZERO_ADDRESS,exports.ETHEREUM_MAINNET_CHAIN=e.ETHEREUM_MAINNET_CHAIN,exports.ETHEREUM_SEPOLIA_CHAIN=e.ETHEREUM_SEPOLIA_CHAIN,exports.EVM_SERVICE_TYPES=e.EVM_SERVICE_TYPES,exports.Environment=e.Environment,exports.ErrorCode=t.ErrorCode,exports.ErrorReason=t.ErrorReason,exports.EstimateNativeFeeError=t.EstimateNativeFeeError,exports.EthereumChainIds=e.EthereumChainIds,exports.EvmChainId=e.EvmChainId,exports.FEE_RATE_TIER_TO_BITCOIN=e.FEE_RATE_TIER_TO_BITCOIN,exports.HttpError=t.HttpError,exports.HyperliquidChainIds=e.HyperliquidChainIds,exports.InsufficientFundsError=t.InsufficientFundsError,exports.InvalidParamsError=t.InvalidParamsError,exports.NATIVE_AVAX=e.NATIVE_AVAX,exports.NATIVE_ETH=e.NATIVE_ETH,exports.NATIVE_SOL_ADDRESS=e.NATIVE_SOL_ADDRESS,exports.PolygonChainIds=e.PolygonChainIds,exports.RECURRING_FREQUENCY_UNITS=l.RECURRING_FREQUENCY_UNITS,exports.RECURRING_FREQUENCY_VALUE_MAX=u.RECURRING_FREQUENCY_VALUE_MAX,exports.RECURRING_UNLIMITED_ORDERS_SENTINEL=l.RECURRING_UNLIMITED_ORDERS_SENTINEL,exports.RecurringEligibilityReason=l.RecurringEligibilityReason,exports.RecurringOrderStatus=l.RecurringOrderStatus,exports.ResponseValidationError=t.ResponseValidationError,exports.SOLANA_DEVNET_CHAIN=e.SOLANA_DEVNET_CHAIN,exports.SOLANA_MAINNET_CHAIN=e.SOLANA_MAINNET_CHAIN,exports.SdkError=t.SdkError,exports.ServiceInitializationError=t.ServiceInitializationError,exports.ServiceType=e.ServiceType,exports.ServiceUnavailableError=t.ServiceUnavailableError,exports.SolanaChainIds=e.SolanaChainIds,exports.TimeoutError=t.TimeoutError,exports.TokenType=e.TokenType,exports.TransferSignatureReason=e.TransferSignatureReason,exports.caip2ToEip155ChainId=i.caip2ToEip155ChainId,exports.caip2ToEip155HexChainId=i.caip2ToEip155HexChainId,exports.calculatePriceImpactFromQuote=s.calculatePriceImpactFromQuote,exports.compareDestinationChains=o.compareDestinationChains,exports.createTransferManager=r.createTransferManager,exports.dedupeBridgeableAssets=a.dedupeBridgeableAssets,exports.deriveIntervalSeconds=u.deriveIntervalSeconds,exports.eip155ChainIdToCaip2=i.eip155ChainIdToCaip2,exports.getDestinationChainPriority=o.getDestinationChainPriority,exports.isAbortedError=t.isAbortedError,exports.isCaip2ChainId=i.isCaip2ChainId,exports.isEnvironment=n.isEnvironment,exports.isErc20Asset=n.isErc20Asset,exports.isEstimateNativeFeeError=t.isEstimateNativeFeeError,exports.isEvmBridgeInitializer=n.isEvmBridgeInitializer,exports.isHttpError=t.isHttpError,exports.isInsufficientFundsError=t.isInsufficientFundsError,exports.isInvalidParamsError=t.isInvalidParamsError,exports.isLombardServiceInitializer=n.isLombardServiceInitializer,exports.isMarkrServiceInitializer=n.isMarkrServiceInitializer,exports.isNativeAsset=n.isNativeAsset,exports.isResponseValidationError=t.isResponseValidationError,exports.isSdkError=t.isSdkError,exports.isServiceInitializationError=t.isServiceInitializationError,exports.isServiceInitializer=n.isServiceInitializer,exports.isServiceUnavailableError=t.isServiceUnavailableError,exports.isSplAsset=n.isSplAsset,exports.isTimeoutError=t.isTimeoutError,exports.parseTransfer=c.parseTransfer,exports.sortDestinationChains=o.sortDestinationChains,exports.splitCaip2ChainId=i.splitCaip2ChainId,exports.stringifyTransfer=c.stringifyTransfer,exports.validateFrequency=u.validateFrequency;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./constants.cjs`),t=require(`./errors.cjs`),n=require(`./type-guards.cjs`),r=require(`./transfer-manager.cjs`),i=require(`./utils/caip.cjs`),a=require(`./utils/bridgeable-assets.cjs`),o=require(`./utils/destination-chains.cjs`),s=require(`./utils/price-impact.cjs`),c=require(`./utils/transfer-utils.cjs`),l=require(`./transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs`),u=require(`./transfer-service/markr/recurring/types.cjs`),d=require(`./transfer-service/markr/recurring/_frequency.cjs`),f=require(`./transfer-service/_evm-approval.cjs`);exports.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK=e.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,exports.AVALANCHE_FUJI_CHAIN=e.AVALANCHE_FUJI_CHAIN,exports.AVALANCHE_FUJI_P_CHAIN=e.AVALANCHE_FUJI_P_CHAIN,exports.AVALANCHE_FUJI_X_CHAIN=e.AVALANCHE_FUJI_X_CHAIN,exports.AVALANCHE_MAINNET_CHAIN=e.AVALANCHE_MAINNET_CHAIN,exports.AVALANCHE_MAINNET_P_CHAIN=e.AVALANCHE_MAINNET_P_CHAIN,exports.AVALANCHE_MAINNET_X_CHAIN=e.AVALANCHE_MAINNET_X_CHAIN,exports.AbortedError=t.AbortedError,exports.ApprovalRevertedError=f.ApprovalRevertedError,exports.AvalancheChainIds=e.AvalancheChainIds,exports.AvalancheFujiBlockchainChainIds=e.AvalancheFujiBlockchainChainIds,exports.AvalancheFujiBlockchainIds=e.AvalancheFujiBlockchainIds,exports.AvalancheMainnetBlockchainChainIds=e.AvalancheMainnetBlockchainChainIds,exports.AvalancheMainnetBlockchainIds=e.AvalancheMainnetBlockchainIds,exports.BITCOIN_MAINNET_CHAIN=e.BITCOIN_MAINNET_CHAIN,exports.BITCOIN_TESTNET_CHAIN=e.BITCOIN_TESTNET_CHAIN,exports.BTC_SERVICE_TYPES=e.BTC_SERVICE_TYPES,exports.BaseChainIds=e.BaseChainIds,exports.BitcoinChainIds=e.BitcoinChainIds,exports.Blockchain=e.Blockchain,exports.ERC_ZERO_ADDRESS=e.ERC_ZERO_ADDRESS,exports.ETHEREUM_MAINNET_CHAIN=e.ETHEREUM_MAINNET_CHAIN,exports.ETHEREUM_SEPOLIA_CHAIN=e.ETHEREUM_SEPOLIA_CHAIN,exports.EVM_SERVICE_TYPES=e.EVM_SERVICE_TYPES,exports.Environment=e.Environment,exports.ErrorCode=t.ErrorCode,exports.ErrorReason=t.ErrorReason,exports.EstimateNativeFeeError=t.EstimateNativeFeeError,exports.EthereumChainIds=e.EthereumChainIds,exports.EvmChainId=e.EvmChainId,exports.FEE_RATE_TIER_TO_BITCOIN=e.FEE_RATE_TIER_TO_BITCOIN,exports.HttpError=t.HttpError,exports.HyperliquidChainIds=e.HyperliquidChainIds,exports.InsufficientFundsError=t.InsufficientFundsError,exports.InvalidParamsError=t.InvalidParamsError,exports.NATIVE_AVAX=e.NATIVE_AVAX,exports.NATIVE_ETH=e.NATIVE_ETH,exports.NATIVE_SOL_ADDRESS=e.NATIVE_SOL_ADDRESS,exports.PolygonChainIds=e.PolygonChainIds,exports.RECURRING_FREQUENCY_UNITS=u.RECURRING_FREQUENCY_UNITS,exports.RECURRING_FREQUENCY_VALUE_MAX=d.RECURRING_FREQUENCY_VALUE_MAX,exports.RECURRING_UNLIMITED_ORDERS_SENTINEL=u.RECURRING_UNLIMITED_ORDERS_SENTINEL,exports.RecurringEligibilityReason=u.RecurringEligibilityReason,exports.RecurringOrderStatus=u.RecurringOrderStatus,exports.ResponseValidationError=t.ResponseValidationError,exports.SOLANA_DEVNET_CHAIN=e.SOLANA_DEVNET_CHAIN,exports.SOLANA_MAINNET_CHAIN=e.SOLANA_MAINNET_CHAIN,exports.SdkError=t.SdkError,exports.ServiceInitializationError=t.ServiceInitializationError,exports.ServiceType=e.ServiceType,exports.ServiceUnavailableError=t.ServiceUnavailableError,exports.SolanaChainIds=e.SolanaChainIds,exports.TimeoutError=t.TimeoutError,exports.TokenType=e.TokenType,exports.TransferSignatureReason=e.TransferSignatureReason,exports.caip2ToEip155ChainId=i.caip2ToEip155ChainId,exports.caip2ToEip155HexChainId=i.caip2ToEip155HexChainId,exports.calculatePriceImpactFromQuote=s.calculatePriceImpactFromQuote,exports.compareDestinationChains=o.compareDestinationChains,exports.createTransferManager=r.createTransferManager,exports.dedupeBridgeableAssets=a.dedupeBridgeableAssets,exports.deriveIntervalSeconds=d.deriveIntervalSeconds,exports.eip155ChainIdToCaip2=i.eip155ChainIdToCaip2,exports.getDestinationChainPriority=o.getDestinationChainPriority,exports.getRecoveredAtomicAmount=l.getRecoveredAtomicAmount,exports.isAbortedError=t.isAbortedError,exports.isCaip2ChainId=i.isCaip2ChainId,exports.isEnvironment=n.isEnvironment,exports.isErc20Asset=n.isErc20Asset,exports.isEstimateNativeFeeError=t.isEstimateNativeFeeError,exports.isEvmBridgeInitializer=n.isEvmBridgeInitializer,exports.isHttpError=t.isHttpError,exports.isInsufficientFundsError=t.isInsufficientFundsError,exports.isInvalidParamsError=t.isInvalidParamsError,exports.isLombardServiceInitializer=n.isLombardServiceInitializer,exports.isMarkrServiceInitializer=n.isMarkrServiceInitializer,exports.isNativeAsset=n.isNativeAsset,exports.isQuote=n.isQuote,exports.isResponseValidationError=t.isResponseValidationError,exports.isSdkError=t.isSdkError,exports.isServiceInitializationError=t.isServiceInitializationError,exports.isServiceInitializer=n.isServiceInitializer,exports.isServiceUnavailableError=t.isServiceUnavailableError,exports.isSplAsset=n.isSplAsset,exports.isTimeoutError=t.isTimeoutError,exports.isTransfer=n.isTransfer,exports.parseTransfer=c.parseTransfer,exports.sortDestinationChains=o.sortDestinationChains,exports.splitCaip2ChainId=i.splitCaip2ChainId,exports.stringifyTransfer=c.stringifyTransfer,exports.validateFrequency=d.validateFrequency;
package/dist/mod.d.cts CHANGED
@@ -14,14 +14,15 @@ import { BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, EvmDispatch, Ev
14
14
  import { AssetSearchQuery, AvalancheCctInitializer, AvalancheSendTxFunction, AvalancheSendTxParams, EstimateNativeFeeOptions, EvmServiceInitializer, GasSettings, GetBridgeableAssetsProps, GetBridgeableAssetsResult, GetMinimumTransferAmountProps, GetSupportedChainsResult, LombardServiceInitializer, MarkrServiceInitializer, MutableGetSupportedChainsResult, NativeFeeEstimate, ServiceInitializer, ServiceQuoteOptions, TrackTransferProps, TransferAssetProps, TransferService } from "./types/service.cjs";
15
15
  import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurringOrdersResponse, RECURRING_FREQUENCY_UNITS, RECURRING_UNLIMITED_ORDERS_SENTINEL, RecurringChainInfoEntry, RecurringChainInfoMap, RecurringEligibility, RecurringEligibilityReason, RecurringExecuteFirstFillParams, RecurringExecuteOrderActionParams, RecurringExecuteResult, RecurringFrequency, RecurringFrequencyUnit, RecurringNamespace, RecurringNamespaceCheckEligibilityParams, RecurringNamespaceQuoteParams, RecurringOrder, RecurringOrderFailure, RecurringOrderStatus, RecurringQuoteFee, RecurringQuoteFeeType, RecurringQuoteParams, RecurringQuoteResponse, RecurringSwapParams } from "./transfer-service/markr/recurring/types.cjs";
16
16
  import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.cjs";
17
- import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset } from "./type-guards.cjs";
17
+ import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer } from "./type-guards.cjs";
18
18
  import { createTransferManager } from "./transfer-manager.cjs";
19
19
  import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.cjs";
20
20
  import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.cjs";
21
21
  import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.cjs";
22
22
  import { calculatePriceImpactFromQuote } from "./utils/price-impact.cjs";
23
23
  import { parseTransfer, stringifyTransfer } from "./utils/transfer-utils.cjs";
24
+ import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs";
24
25
  import { MarkrService } from "./transfer-service/markr/markr-service.cjs";
25
26
  import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.cjs";
26
27
  import { ApprovalRevertedError } from "./transfer-service/_evm-approval.cjs";
27
- export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
28
+ export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, getRecoveredAtomicAmount, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, isTransfer, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
package/dist/mod.d.ts CHANGED
@@ -14,14 +14,15 @@ import { BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, EvmDispatch, Ev
14
14
  import { AssetSearchQuery, AvalancheCctInitializer, AvalancheSendTxFunction, AvalancheSendTxParams, EstimateNativeFeeOptions, EvmServiceInitializer, GasSettings, GetBridgeableAssetsProps, GetBridgeableAssetsResult, GetMinimumTransferAmountProps, GetSupportedChainsResult, LombardServiceInitializer, MarkrServiceInitializer, MutableGetSupportedChainsResult, NativeFeeEstimate, ServiceInitializer, ServiceQuoteOptions, TrackTransferProps, TransferAssetProps, TransferService } from "./types/service.js";
15
15
  import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurringOrdersResponse, RECURRING_FREQUENCY_UNITS, RECURRING_UNLIMITED_ORDERS_SENTINEL, RecurringChainInfoEntry, RecurringChainInfoMap, RecurringEligibility, RecurringEligibilityReason, RecurringExecuteFirstFillParams, RecurringExecuteOrderActionParams, RecurringExecuteResult, RecurringFrequency, RecurringFrequencyUnit, RecurringNamespace, RecurringNamespaceCheckEligibilityParams, RecurringNamespaceQuoteParams, RecurringOrder, RecurringOrderFailure, RecurringOrderStatus, RecurringQuoteFee, RecurringQuoteFeeType, RecurringQuoteParams, RecurringQuoteResponse, RecurringSwapParams } from "./transfer-service/markr/recurring/types.js";
16
16
  import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.js";
17
- import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset } from "./type-guards.js";
17
+ import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer } from "./type-guards.js";
18
18
  import { createTransferManager } from "./transfer-manager.js";
19
19
  import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.js";
20
20
  import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.js";
21
21
  import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.js";
22
22
  import { calculatePriceImpactFromQuote } from "./utils/price-impact.js";
23
23
  import { parseTransfer, stringifyTransfer } from "./utils/transfer-utils.js";
24
+ import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-recovered-atomic-amount.js";
24
25
  import { MarkrService } from "./transfer-service/markr/markr-service.js";
25
26
  import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.js";
26
27
  import { ApprovalRevertedError } from "./transfer-service/_evm-approval.js";
27
- export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
28
+ export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, getRecoveredAtomicAmount, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, isTransfer, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
package/dist/mod.js CHANGED
@@ -1 +1 @@
1
- import{AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK as e,AVALANCHE_FUJI_CHAIN as t,AVALANCHE_FUJI_P_CHAIN as n,AVALANCHE_FUJI_X_CHAIN as r,AVALANCHE_MAINNET_CHAIN as i,AVALANCHE_MAINNET_P_CHAIN as a,AVALANCHE_MAINNET_X_CHAIN as o,AvalancheChainIds as s,AvalancheFujiBlockchainChainIds as c,AvalancheFujiBlockchainIds as l,AvalancheMainnetBlockchainChainIds as u,AvalancheMainnetBlockchainIds as d,BITCOIN_MAINNET_CHAIN as f,BITCOIN_TESTNET_CHAIN as p,BTC_SERVICE_TYPES as m,BaseChainIds as h,BitcoinChainIds as g,Blockchain as _,ERC_ZERO_ADDRESS as v,ETHEREUM_MAINNET_CHAIN as y,ETHEREUM_SEPOLIA_CHAIN as b,EVM_SERVICE_TYPES as x,Environment as S,EthereumChainIds as C,EvmChainId as w,FEE_RATE_TIER_TO_BITCOIN as T,HyperliquidChainIds as E,NATIVE_AVAX as D,NATIVE_ETH as O,NATIVE_SOL_ADDRESS as k,PolygonChainIds as A,SOLANA_DEVNET_CHAIN as j,SOLANA_MAINNET_CHAIN as M,ServiceType as N,SolanaChainIds as P,TokenType as F,TransferSignatureReason as I}from"./constants.js";import{AbortedError as L,ErrorCode as R,ErrorReason as z,EstimateNativeFeeError as B,HttpError as V,InsufficientFundsError as H,InvalidParamsError as U,ResponseValidationError as W,SdkError as G,ServiceInitializationError as K,ServiceUnavailableError as q,TimeoutError as J,isAbortedError as Y,isEstimateNativeFeeError as X,isHttpError as Z,isInsufficientFundsError as Q,isInvalidParamsError as $,isResponseValidationError as ee,isSdkError as te,isServiceInitializationError as ne,isServiceUnavailableError as re,isTimeoutError as ie}from"./errors.js";import{isEnvironment as ae,isErc20Asset as oe,isEvmBridgeInitializer as se,isLombardServiceInitializer as ce,isMarkrServiceInitializer as le,isNativeAsset as ue,isServiceInitializer as de,isSplAsset as fe}from"./type-guards.js";import{createTransferManager as pe}from"./transfer-manager.js";import{caip2ToEip155ChainId as me,caip2ToEip155HexChainId as he,eip155ChainIdToCaip2 as ge,isCaip2ChainId as _e,splitCaip2ChainId as ve}from"./utils/caip.js";import{dedupeBridgeableAssets as ye}from"./utils/bridgeable-assets.js";import{compareDestinationChains as be,getDestinationChainPriority as xe,sortDestinationChains as Se}from"./utils/destination-chains.js";import{calculatePriceImpactFromQuote as Ce}from"./utils/price-impact.js";import{parseTransfer as we,stringifyTransfer as Te}from"./utils/transfer-utils.js";import{RECURRING_FREQUENCY_UNITS as Ee,RECURRING_UNLIMITED_ORDERS_SENTINEL as De,RecurringEligibilityReason as Oe,RecurringOrderStatus as ke}from"./transfer-service/markr/recurring/types.js";import{RECURRING_FREQUENCY_VALUE_MAX as Ae,deriveIntervalSeconds as je,validateFrequency as Me}from"./transfer-service/markr/recurring/_frequency.js";import{ApprovalRevertedError as Ne}from"./transfer-service/_evm-approval.js";export{e as AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,t as AVALANCHE_FUJI_CHAIN,n as AVALANCHE_FUJI_P_CHAIN,r as AVALANCHE_FUJI_X_CHAIN,i as AVALANCHE_MAINNET_CHAIN,a as AVALANCHE_MAINNET_P_CHAIN,o as AVALANCHE_MAINNET_X_CHAIN,L as AbortedError,Ne as ApprovalRevertedError,s as AvalancheChainIds,c as AvalancheFujiBlockchainChainIds,l as AvalancheFujiBlockchainIds,u as AvalancheMainnetBlockchainChainIds,d as AvalancheMainnetBlockchainIds,f as BITCOIN_MAINNET_CHAIN,p as BITCOIN_TESTNET_CHAIN,m as BTC_SERVICE_TYPES,h as BaseChainIds,g as BitcoinChainIds,_ as Blockchain,v as ERC_ZERO_ADDRESS,y as ETHEREUM_MAINNET_CHAIN,b as ETHEREUM_SEPOLIA_CHAIN,x as EVM_SERVICE_TYPES,S as Environment,R as ErrorCode,z as ErrorReason,B as EstimateNativeFeeError,C as EthereumChainIds,w as EvmChainId,T as FEE_RATE_TIER_TO_BITCOIN,V as HttpError,E as HyperliquidChainIds,H as InsufficientFundsError,U as InvalidParamsError,D as NATIVE_AVAX,O as NATIVE_ETH,k as NATIVE_SOL_ADDRESS,A as PolygonChainIds,Ee as RECURRING_FREQUENCY_UNITS,Ae as RECURRING_FREQUENCY_VALUE_MAX,De as RECURRING_UNLIMITED_ORDERS_SENTINEL,Oe as RecurringEligibilityReason,ke as RecurringOrderStatus,W as ResponseValidationError,j as SOLANA_DEVNET_CHAIN,M as SOLANA_MAINNET_CHAIN,G as SdkError,K as ServiceInitializationError,N as ServiceType,q as ServiceUnavailableError,P as SolanaChainIds,J as TimeoutError,F as TokenType,I as TransferSignatureReason,me as caip2ToEip155ChainId,he as caip2ToEip155HexChainId,Ce as calculatePriceImpactFromQuote,be as compareDestinationChains,pe as createTransferManager,ye as dedupeBridgeableAssets,je as deriveIntervalSeconds,ge as eip155ChainIdToCaip2,xe as getDestinationChainPriority,Y as isAbortedError,_e as isCaip2ChainId,ae as isEnvironment,oe as isErc20Asset,X as isEstimateNativeFeeError,se as isEvmBridgeInitializer,Z as isHttpError,Q as isInsufficientFundsError,$ as isInvalidParamsError,ce as isLombardServiceInitializer,le as isMarkrServiceInitializer,ue as isNativeAsset,ee as isResponseValidationError,te as isSdkError,ne as isServiceInitializationError,de as isServiceInitializer,re as isServiceUnavailableError,fe as isSplAsset,ie as isTimeoutError,we as parseTransfer,Se as sortDestinationChains,ve as splitCaip2ChainId,Te as stringifyTransfer,Me as validateFrequency};
1
+ import{AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK as e,AVALANCHE_FUJI_CHAIN as t,AVALANCHE_FUJI_P_CHAIN as n,AVALANCHE_FUJI_X_CHAIN as r,AVALANCHE_MAINNET_CHAIN as i,AVALANCHE_MAINNET_P_CHAIN as a,AVALANCHE_MAINNET_X_CHAIN as o,AvalancheChainIds as s,AvalancheFujiBlockchainChainIds as c,AvalancheFujiBlockchainIds as l,AvalancheMainnetBlockchainChainIds as u,AvalancheMainnetBlockchainIds as d,BITCOIN_MAINNET_CHAIN as f,BITCOIN_TESTNET_CHAIN as p,BTC_SERVICE_TYPES as m,BaseChainIds as h,BitcoinChainIds as g,Blockchain as _,ERC_ZERO_ADDRESS as v,ETHEREUM_MAINNET_CHAIN as y,ETHEREUM_SEPOLIA_CHAIN as b,EVM_SERVICE_TYPES as x,Environment as S,EthereumChainIds as C,EvmChainId as w,FEE_RATE_TIER_TO_BITCOIN as T,HyperliquidChainIds as E,NATIVE_AVAX as D,NATIVE_ETH as O,NATIVE_SOL_ADDRESS as k,PolygonChainIds as A,SOLANA_DEVNET_CHAIN as j,SOLANA_MAINNET_CHAIN as M,ServiceType as N,SolanaChainIds as P,TokenType as F,TransferSignatureReason as I}from"./constants.js";import{AbortedError as L,ErrorCode as R,ErrorReason as z,EstimateNativeFeeError as B,HttpError as V,InsufficientFundsError as H,InvalidParamsError as U,ResponseValidationError as W,SdkError as G,ServiceInitializationError as K,ServiceUnavailableError as q,TimeoutError as J,isAbortedError as Y,isEstimateNativeFeeError as X,isHttpError as Z,isInsufficientFundsError as Q,isInvalidParamsError as $,isResponseValidationError as ee,isSdkError as te,isServiceInitializationError as ne,isServiceUnavailableError as re,isTimeoutError as ie}from"./errors.js";import{isEnvironment as ae,isErc20Asset as oe,isEvmBridgeInitializer as se,isLombardServiceInitializer as ce,isMarkrServiceInitializer as le,isNativeAsset as ue,isQuote as de,isServiceInitializer as fe,isSplAsset as pe,isTransfer as me}from"./type-guards.js";import{createTransferManager as he}from"./transfer-manager.js";import{caip2ToEip155ChainId as ge,caip2ToEip155HexChainId as _e,eip155ChainIdToCaip2 as ve,isCaip2ChainId as ye,splitCaip2ChainId as be}from"./utils/caip.js";import{dedupeBridgeableAssets as xe}from"./utils/bridgeable-assets.js";import{compareDestinationChains as Se,getDestinationChainPriority as Ce,sortDestinationChains as we}from"./utils/destination-chains.js";import{calculatePriceImpactFromQuote as Te}from"./utils/price-impact.js";import{parseTransfer as Ee,stringifyTransfer as De}from"./utils/transfer-utils.js";import{getRecoveredAtomicAmount as Oe}from"./transfer-service/avalanche-cct/get-recovered-atomic-amount.js";import{RECURRING_FREQUENCY_UNITS as ke,RECURRING_UNLIMITED_ORDERS_SENTINEL as Ae,RecurringEligibilityReason as je,RecurringOrderStatus as Me}from"./transfer-service/markr/recurring/types.js";import{RECURRING_FREQUENCY_VALUE_MAX as Ne,deriveIntervalSeconds as Pe,validateFrequency as Fe}from"./transfer-service/markr/recurring/_frequency.js";import{ApprovalRevertedError as Ie}from"./transfer-service/_evm-approval.js";export{e as AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,t as AVALANCHE_FUJI_CHAIN,n as AVALANCHE_FUJI_P_CHAIN,r as AVALANCHE_FUJI_X_CHAIN,i as AVALANCHE_MAINNET_CHAIN,a as AVALANCHE_MAINNET_P_CHAIN,o as AVALANCHE_MAINNET_X_CHAIN,L as AbortedError,Ie as ApprovalRevertedError,s as AvalancheChainIds,c as AvalancheFujiBlockchainChainIds,l as AvalancheFujiBlockchainIds,u as AvalancheMainnetBlockchainChainIds,d as AvalancheMainnetBlockchainIds,f as BITCOIN_MAINNET_CHAIN,p as BITCOIN_TESTNET_CHAIN,m as BTC_SERVICE_TYPES,h as BaseChainIds,g as BitcoinChainIds,_ as Blockchain,v as ERC_ZERO_ADDRESS,y as ETHEREUM_MAINNET_CHAIN,b as ETHEREUM_SEPOLIA_CHAIN,x as EVM_SERVICE_TYPES,S as Environment,R as ErrorCode,z as ErrorReason,B as EstimateNativeFeeError,C as EthereumChainIds,w as EvmChainId,T as FEE_RATE_TIER_TO_BITCOIN,V as HttpError,E as HyperliquidChainIds,H as InsufficientFundsError,U as InvalidParamsError,D as NATIVE_AVAX,O as NATIVE_ETH,k as NATIVE_SOL_ADDRESS,A as PolygonChainIds,ke as RECURRING_FREQUENCY_UNITS,Ne as RECURRING_FREQUENCY_VALUE_MAX,Ae as RECURRING_UNLIMITED_ORDERS_SENTINEL,je as RecurringEligibilityReason,Me as RecurringOrderStatus,W as ResponseValidationError,j as SOLANA_DEVNET_CHAIN,M as SOLANA_MAINNET_CHAIN,G as SdkError,K as ServiceInitializationError,N as ServiceType,q as ServiceUnavailableError,P as SolanaChainIds,J as TimeoutError,F as TokenType,I as TransferSignatureReason,ge as caip2ToEip155ChainId,_e as caip2ToEip155HexChainId,Te as calculatePriceImpactFromQuote,Se as compareDestinationChains,he as createTransferManager,xe as dedupeBridgeableAssets,Pe as deriveIntervalSeconds,ve as eip155ChainIdToCaip2,Ce as getDestinationChainPriority,Oe as getRecoveredAtomicAmount,Y as isAbortedError,ye as isCaip2ChainId,ae as isEnvironment,oe as isErc20Asset,X as isEstimateNativeFeeError,se as isEvmBridgeInitializer,Z as isHttpError,Q as isInsufficientFundsError,$ as isInvalidParamsError,ce as isLombardServiceInitializer,le as isMarkrServiceInitializer,ue as isNativeAsset,de as isQuote,ee as isResponseValidationError,te as isSdkError,ne as isServiceInitializationError,fe as isServiceInitializer,re as isServiceUnavailableError,pe as isSplAsset,ie as isTimeoutError,me as isTransfer,Ee as parseTransfer,we as sortDestinationChains,be as splitCaip2ChainId,De as stringifyTransfer,Fe as validateFrequency};
@@ -1,2 +1,2 @@
1
- const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../../_utils.cjs`),r=require(`../_utils.cjs`),i=require(`../../_evm-gas.cjs`),a=require(`../_utils/fees.cjs`);function o({ajsContext:o,environment:s,getAtomicUtxos:c,getUtxos:l}){return async(u,d)=>{if(u.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let f=s===e.Environment.TEST,p=n.getEvmClientForChain({chain:f?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),m=d?.overrides?.maxFeePerGas??(await i.fetchSuggestedGasPrices(p))[d?.overrides?.feeRateTier??`fast`].maxFeePerGas,h=d?.feeUnitsMarginBps,g=r.getChainAlias(u.sourceChain.chainId,f),_=r.getChainAlias(u.targetChain.chainId,f),v=(await c(_,g)).getUTXOs(),y=u.amountIn>0n,b=y&&g===`P`?Math.max((await l(`P`)).getUTXOs().length,1):1,x=v.length+(y?1:0),S={context:o,environment:s,maxFeePerGas:m,numberInputs:b},C={context:o,environment:s,maxFeePerGas:m,numberInputs:x,numberSignatures:1},w=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:h}):0n,T=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:h}),E=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:void 0}):0n,D=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:void 0}),O=w+T,k=E+D,A=g===`C`,j=A?r.convertNanoAvaxToWei(O):O,M=A?r.convertNanoAvaxToWei(k):k;return{asset:r.getNativeTokenForChainAlias(g),totalFee:j,totalFeeWithoutMargin:M}}}exports.estimateNativeFeeFactory=o;
1
+ const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../_utils.cjs`),r=require(`../../_utils.cjs`),i=require(`../../_evm-gas.cjs`),a=require(`../_utils/fees.cjs`);function o({ajsContext:o,environment:s,getAtomicUtxos:c,getUtxos:l}){return async(u,d)=>{if(u.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let f=s===e.Environment.TEST,p=r.getEvmClientForChain({chain:f?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),m=d?.overrides?.maxFeePerGas??(await i.fetchSuggestedGasPrices(p))[d?.overrides?.feeRateTier??`fast`].maxFeePerGas,h=d?.feeUnitsMarginBps,g=n.getChainAlias(u.sourceChain.chainId,f),_=n.getChainAlias(u.targetChain.chainId,f),v=(await c(_,g)).getUTXOs(),y=u.amountIn>0n,b=y&&g===`P`?Math.max((await l(`P`)).getUTXOs().length,1):1,x=v.length+(y?1:0),S={context:o,environment:s,maxFeePerGas:m,numberInputs:b},C={context:o,environment:s,maxFeePerGas:m,numberInputs:x,numberSignatures:1},w=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:h}):0n,T=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:h}),E=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:void 0}):0n,D=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:void 0}),O=w+T,k=E+D,A=g===`C`,j=A?n.convertNanoAvaxToWei(O):O,M=A?n.convertNanoAvaxToWei(k):k;return{asset:n.getNativeTokenForChainAlias(g),totalFee:j,totalFeeWithoutMargin:M}}}exports.estimateNativeFeeFactory=o;
2
2
  //# sourceMappingURL=estimate-native-fee.cjs.map
@@ -1,2 +1,2 @@
1
- import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r}from"../../../constants.js";import{ErrorCode as i,ErrorReason as a,SdkError as o}from"../../../errors.js";import{getEvmClientForChain as s}from"../../_utils.js";import{convertNanoAvaxToWei as c,getChainAlias as l,getNativeTokenForChainAlias as u}from"../_utils.js";import{fetchSuggestedGasPrices as d}from"../../_evm-gas.js";import{getExportFeeInNanoAvax as f,getImportFeeInNanoAvax as p}from"../_utils/fees.js";function m({ajsContext:m,environment:h,getAtomicUtxos:g,getUtxos:_}){return async(v,y)=>{if(v.serviceType!==r.AVALANCHE_CCT)throw new o(a.INCORRECT_PROVIDER_PROVIDED,i.INVALID_PARAMS);let b=h===n.TEST,x=s({chain:b?e:t}),S=y?.overrides?.maxFeePerGas??(await d(x))[y?.overrides?.feeRateTier??`fast`].maxFeePerGas,C=y?.feeUnitsMarginBps,w=l(v.sourceChain.chainId,b),T=l(v.targetChain.chainId,b),E=(await g(T,w)).getUTXOs(),D=v.amountIn>0n,O=D&&w===`P`?Math.max((await _(`P`)).getUTXOs().length,1):1,k=E.length+(D?1:0),A={context:m,environment:h,maxFeePerGas:S,numberInputs:O},j={context:m,environment:h,maxFeePerGas:S,numberInputs:k,numberSignatures:1},M=D?await f(w,{...A,feeUnitsMarginBps:C}):0n,N=await p(T,{...j,feeUnitsMarginBps:C}),P=D?await f(w,{...A,feeUnitsMarginBps:void 0}):0n,F=await p(T,{...j,feeUnitsMarginBps:void 0}),I=M+N,L=P+F,R=w===`C`,z=R?c(I):I,B=R?c(L):L;return{asset:u(w),totalFee:z,totalFeeWithoutMargin:B}}}export{m as estimateNativeFeeFactory};
1
+ import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r}from"../../../constants.js";import{ErrorCode as i,ErrorReason as a,SdkError as o}from"../../../errors.js";import{convertNanoAvaxToWei as s,getChainAlias as c,getNativeTokenForChainAlias as l}from"../_utils.js";import{getEvmClientForChain as u}from"../../_utils.js";import{fetchSuggestedGasPrices as d}from"../../_evm-gas.js";import{getExportFeeInNanoAvax as f,getImportFeeInNanoAvax as p}from"../_utils/fees.js";function m({ajsContext:m,environment:h,getAtomicUtxos:g,getUtxos:_}){return async(v,y)=>{if(v.serviceType!==r.AVALANCHE_CCT)throw new o(a.INCORRECT_PROVIDER_PROVIDED,i.INVALID_PARAMS);let b=h===n.TEST,x=u({chain:b?e:t}),S=y?.overrides?.maxFeePerGas??(await d(x))[y?.overrides?.feeRateTier??`fast`].maxFeePerGas,C=y?.feeUnitsMarginBps,w=c(v.sourceChain.chainId,b),T=c(v.targetChain.chainId,b),E=(await g(T,w)).getUTXOs(),D=v.amountIn>0n,O=D&&w===`P`?Math.max((await _(`P`)).getUTXOs().length,1):1,k=E.length+(D?1:0),A={context:m,environment:h,maxFeePerGas:S,numberInputs:O},j={context:m,environment:h,maxFeePerGas:S,numberInputs:k,numberSignatures:1},M=D?await f(w,{...A,feeUnitsMarginBps:C}):0n,N=await p(T,{...j,feeUnitsMarginBps:C}),P=D?await f(w,{...A,feeUnitsMarginBps:void 0}):0n,F=await p(T,{...j,feeUnitsMarginBps:void 0}),I=M+N,L=P+F,R=w===`C`,z=R?s(I):I,B=R?s(L):L;return{asset:l(w),totalFee:z,totalFeeWithoutMargin:B}}}export{m as estimateNativeFeeFactory};
2
2
  //# sourceMappingURL=estimate-native-fee.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../../../constants.cjs`),t=require(`../../../utils/asset-id.cjs`),n=require(`../constants.cjs`),r=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function i({environment:i}){return async({sourceAsset:a,sourceChainId:o,targetChainId:s,limit:c,page:l})=>{let u=c??100,d=l??1;if(a.type!==e.TokenType.NATIVE||!(i===e.Environment.PROD||i===e.Environment.TEST))return r({assets:[],limit:u,page:d});let f=Object.values(i===e.Environment.PROD?e.AvalancheMainnetBlockchainChainIds:e.AvalancheFujiBlockchainChainIds);if(!f.includes(o)||!f.includes(s)||o===s)return r({assets:[],limit:u,page:d});let p=o===e.AvalancheMainnetBlockchainChainIds.C||o===e.AvalancheFujiBlockchainChainIds.C?n.AVALANCHE_PX_CHAIN_NATIVE_ASSET:n.AVALANCHE_C_CHAIN_NATIVE_ASSET;return r({assets:[{id:t.getAssetId(s,p),...p,bridgeProviders:[e.ServiceType.AVALANCHE_CCT]}],limit:u,page:d})}}exports.getBridgeableAssetsFactory=i;
1
+ const e=require(`../../../constants.cjs`),t=require(`../constants.cjs`),n=require(`../../../utils/asset-id.cjs`),r=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function i({environment:i}){return async({sourceAsset:a,sourceChainId:o,targetChainId:s,limit:c,page:l})=>{let u=c??100,d=l??1;if(a.type!==e.TokenType.NATIVE||!(i===e.Environment.PROD||i===e.Environment.TEST))return r({assets:[],limit:u,page:d});let f=Object.values(i===e.Environment.PROD?e.AvalancheMainnetBlockchainChainIds:e.AvalancheFujiBlockchainChainIds);if(!f.includes(o)||!f.includes(s)||o===s)return r({assets:[],limit:u,page:d});let p=o===e.AvalancheMainnetBlockchainChainIds.C||o===e.AvalancheFujiBlockchainChainIds.C?t.AVALANCHE_PX_CHAIN_NATIVE_ASSET:t.AVALANCHE_C_CHAIN_NATIVE_ASSET;return r({assets:[{id:n.getAssetId(s,p),...p,bridgeProviders:[e.ServiceType.AVALANCHE_CCT]}],limit:u,page:d})}}exports.getBridgeableAssetsFactory=i;
2
2
  //# sourceMappingURL=get-bridgeable-assets.cjs.map
@@ -1,2 +1,2 @@
1
- import{AvalancheFujiBlockchainChainIds as e,AvalancheMainnetBlockchainChainIds as t,Environment as n,ServiceType as r,TokenType as i}from"../../../constants.js";import{getAssetId as a}from"../../../utils/asset-id.js";import{AVALANCHE_C_CHAIN_NATIVE_ASSET as o,AVALANCHE_PX_CHAIN_NATIVE_ASSET as s}from"../constants.js";const c=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function l({environment:l}){return async({sourceAsset:u,sourceChainId:d,targetChainId:f,limit:p,page:m})=>{let h=p??100,g=m??1;if(u.type!==i.NATIVE||!(l===n.PROD||l===n.TEST))return c({assets:[],limit:h,page:g});let _=Object.values(l===n.PROD?t:e);if(!_.includes(d)||!_.includes(f)||d===f)return c({assets:[],limit:h,page:g});let v=d===t.C||d===e.C?s:o;return c({assets:[{id:a(f,v),...v,bridgeProviders:[r.AVALANCHE_CCT]}],limit:h,page:g})}}export{l as getBridgeableAssetsFactory};
1
+ import{AvalancheFujiBlockchainChainIds as e,AvalancheMainnetBlockchainChainIds as t,Environment as n,ServiceType as r,TokenType as i}from"../../../constants.js";import{AVALANCHE_C_CHAIN_NATIVE_ASSET as a,AVALANCHE_PX_CHAIN_NATIVE_ASSET as o}from"../constants.js";import{getAssetId as s}from"../../../utils/asset-id.js";const c=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function l({environment:l}){return async({sourceAsset:u,sourceChainId:d,targetChainId:f,limit:p,page:m})=>{let h=p??100,g=m??1;if(u.type!==i.NATIVE||!(l===n.PROD||l===n.TEST))return c({assets:[],limit:h,page:g});let _=Object.values(l===n.PROD?t:e);if(!_.includes(d)||!_.includes(f)||d===f)return c({assets:[],limit:h,page:g});let v=d===t.C||d===e.C?o:a;return c({assets:[{id:s(f,v),...v,bridgeProviders:[r.AVALANCHE_CCT]}],limit:h,page:g})}}export{l as getBridgeableAssetsFactory};
2
2
  //# sourceMappingURL=get-bridgeable-assets.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../../../errors.cjs`),t=require(`../../_utils.cjs`),n=require(`../_utils.cjs`),r=require(`../_utils/polling.cjs`);function i({environment:e}){return({transfer:n,updateListener:r})=>{let i=new AbortController,s=()=>{i.abort()};return n.status===`completed`||n.status===`failed`?{cancel:s,result:Promise.resolve(n)}:{cancel:s,result:(async()=>{let s=structuredClone(n);for(;!i.signal.aborted;){let n=s.status;switch(s.status){case`source-pending`:s=await a({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;case`target-pending`:s=await o({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;default:return s}s.status===n&&await t.waitForTimeoutOrAbort({timeoutMs:1500,signal:i.signal})}return s})()}}}async function a({currentTransfer:t,environment:i}){let a=n.getEnvironmentIsTestnet(i),o=n.getChainAlias(t.sourceChain.chainId,a);try{return await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:t.source.txHash})?{...t,source:{...t.source,confirmationCount:t.source.requiredConfirmationCount},status:`source-completed`}:{...t,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return t}}async function o({currentTransfer:t,environment:i}){if(!t.target?.txHash)return{...t,errorCode:e.ErrorCode.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let a=n.getEnvironmentIsTestnet(i),o=n.getChainAlias(t.targetChain.chainId,a);try{if(!await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:t.target.txHash}))return{...t,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let n=t.source.txHash===t.target.txHash;return{...t,completedAtMs:Date.now(),source:{...t.source,confirmationCount:n?t.source.requiredConfirmationCount:t.source.confirmationCount},status:`completed`,target:{...t.target,confirmationCount:t.target.requiredConfirmationCount}}}catch{return t}}exports.trackTransferFactory=i;
1
+ const e=require(`../../../errors.cjs`),t=require(`../_utils.cjs`),n=require(`../../_utils.cjs`),r=require(`../_utils/polling.cjs`);function i({environment:e}){return({transfer:t,updateListener:r})=>{let i=new AbortController,s=()=>{i.abort()};return t.status===`completed`||t.status===`failed`?{cancel:s,result:Promise.resolve(t)}:{cancel:s,result:(async()=>{let s=structuredClone(t);for(;!i.signal.aborted;){let t=s.status;switch(s.status){case`source-pending`:s=await a({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;case`target-pending`:s=await o({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;default:return s}s.status===t&&await n.waitForTimeoutOrAbort({timeoutMs:1500,signal:i.signal})}return s})()}}}async function a({currentTransfer:n,environment:i}){let a=t.getEnvironmentIsTestnet(i),o=t.getChainAlias(n.sourceChain.chainId,a);try{return await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:n.source.txHash})?{...n,source:{...n.source,confirmationCount:n.source.requiredConfirmationCount},status:`source-completed`}:{...n,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return n}}async function o({currentTransfer:n,environment:i}){if(!n.target?.txHash)return{...n,errorCode:e.ErrorCode.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let a=t.getEnvironmentIsTestnet(i),o=t.getChainAlias(n.targetChain.chainId,a);try{if(!await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:n.target.txHash}))return{...n,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let t=n.source.txHash===n.target.txHash;return{...n,completedAtMs:Date.now(),source:{...n.source,confirmationCount:t?n.source.requiredConfirmationCount:n.source.confirmationCount},status:`completed`,target:{...n.target,confirmationCount:n.target.requiredConfirmationCount}}}catch{return n}}exports.trackTransferFactory=i;
2
2
  //# sourceMappingURL=track-transfer.cjs.map
@@ -1,2 +1,2 @@
1
- import{ErrorCode as e}from"../../../errors.js";import{waitForTimeoutOrAbort as t}from"../../_utils.js";import{getChainAlias as n,getEnvironmentIsTestnet as r}from"../_utils.js";import{pollPrimaryNetworkTxStatus as i}from"../_utils/polling.js";function a({environment:e}){return({transfer:n,updateListener:r})=>{let i=new AbortController,a=()=>{i.abort()};return n.status===`completed`||n.status===`failed`?{cancel:a,result:Promise.resolve(n)}:{cancel:a,result:(async()=>{let a=structuredClone(n);for(;!i.signal.aborted;){let n=a.status;switch(a.status){case`source-pending`:a=await o({currentTransfer:a,environment:e}),i.signal.aborted||r(a);break;case`target-pending`:a=await s({currentTransfer:a,environment:e}),i.signal.aborted||r(a);break;default:return a}a.status===n&&await t({timeoutMs:1500,signal:i.signal})}return a})()}}}async function o({currentTransfer:t,environment:a}){let o=r(a),s=n(t.sourceChain.chainId,o);try{return await i({chainAlias:s,environment:a,txId:t.source.txHash})?{...t,source:{...t.source,confirmationCount:t.source.requiredConfirmationCount},status:`source-completed`}:{...t,errorCode:e.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return t}}async function s({currentTransfer:t,environment:a}){if(!t.target?.txHash)return{...t,errorCode:e.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let o=r(a),s=n(t.targetChain.chainId,o);try{if(!await i({chainAlias:s,environment:a,txId:t.target.txHash}))return{...t,errorCode:e.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let n=t.source.txHash===t.target.txHash;return{...t,completedAtMs:Date.now(),source:{...t.source,confirmationCount:n?t.source.requiredConfirmationCount:t.source.confirmationCount},status:`completed`,target:{...t.target,confirmationCount:t.target.requiredConfirmationCount}}}catch{return t}}export{a as trackTransferFactory};
1
+ import{ErrorCode as e}from"../../../errors.js";import{getChainAlias as t,getEnvironmentIsTestnet as n}from"../_utils.js";import{waitForTimeoutOrAbort as r}from"../../_utils.js";import{pollPrimaryNetworkTxStatus as i}from"../_utils/polling.js";function a({environment:e}){return({transfer:t,updateListener:n})=>{let i=new AbortController,a=()=>{i.abort()};return t.status===`completed`||t.status===`failed`?{cancel:a,result:Promise.resolve(t)}:{cancel:a,result:(async()=>{let a=structuredClone(t);for(;!i.signal.aborted;){let t=a.status;switch(a.status){case`source-pending`:a=await o({currentTransfer:a,environment:e}),i.signal.aborted||n(a);break;case`target-pending`:a=await s({currentTransfer:a,environment:e}),i.signal.aborted||n(a);break;default:return a}a.status===t&&await r({timeoutMs:1500,signal:i.signal})}return a})()}}}async function o({currentTransfer:r,environment:a}){let o=n(a),s=t(r.sourceChain.chainId,o);try{return await i({chainAlias:s,environment:a,txId:r.source.txHash})?{...r,source:{...r.source,confirmationCount:r.source.requiredConfirmationCount},status:`source-completed`}:{...r,errorCode:e.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return r}}async function s({currentTransfer:r,environment:a}){if(!r.target?.txHash)return{...r,errorCode:e.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let o=n(a),s=t(r.targetChain.chainId,o);try{if(!await i({chainAlias:s,environment:a,txId:r.target.txHash}))return{...r,errorCode:e.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let t=r.source.txHash===r.target.txHash;return{...r,completedAtMs:Date.now(),source:{...r.source,confirmationCount:t?r.source.requiredConfirmationCount:r.source.confirmationCount},status:`completed`,target:{...r.target,confirmationCount:r.target.requiredConfirmationCount}}}catch{return r}}export{a as trackTransferFactory};
2
2
  //# sourceMappingURL=track-transfer.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../../_utils.cjs`),r=require(`../constants.cjs`),i=require(`../_utils.cjs`),a=require(`../../_transfer-utilities.cjs`),o=require(`../_utils/p-chain.cjs`),s=require(`../_utils/polling.cjs`),c=require(`../_utils/transactions.cjs`),l=require(`../_utils/fees.cjs`),u=require(`../_utils/addresses.cjs`);function d({ajsContext:n,avalancheSendTx:r,environment:o,getCoreEthAddress:c,getAtomicUtxos:l,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let b=i.getEnvironmentIsTestnet(o),x=i.getChainAlias(y.sourceChain.chainId,b),S=i.getChainAlias(y.targetChain.chainId,b),C=u.getExportFromAddressEvm(y.fromAddress,x),w=x===`C`?void 0:u.assertXpAddress(y.fromAddress),T=await u.getExportToAddress({destinationChainAlias:S,getCoreEthAddress:c,quoteToAddress:y.toAddress}),E=u.getImportToAddress(y.toAddress,S),D=S===`C`?T:u.assertXpAddress(y.toAddress),O=y.amountIn>0n,k=O?2:1,A=Date.now(),j=f(y,o),M;if(O){let c={currentSignature:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainExport,quote:y,requiredSignatures:k};v?.(c);let l=await i.tryOrThrow(()=>h({ajsContext:n,environment:o,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:x,destinationChainAlias:S,fromAddress:C,requiredFromAddress:w,toAddress:T}),e=>new t.SdkError(`Failed to build Avalanche export transaction.`,t.ErrorCode.UNKNOWN,{cause:e}));M=await i.tryOrThrow(()=>r({baseFeeInNanoAvax:l.baseFeeInNanoAvax,chainAlias:x,txType:`export`,unsignedTx:l.unsignedTx},c),e=>new t.SdkError(`Failed to sign/send Avalanche export transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));let u;try{u=await s.pollPrimaryNetworkTxStatus({chainAlias:x,environment:o,txId:M})}catch{return a.sourcePendingTransferFromQuote(y,{environment:o,requiredConfirmationCount:1,startedAtMs:A,txHash:M})}if(!u)return p({errorCode:t.ErrorCode.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j})}let N=await i.tryOrThrow(async()=>(await l(S,x)).getUTXOs(),e=>new t.SdkError(`Failed to fetch Avalanche atomic UTXOs.`,t.ErrorCode.UNKNOWN,{cause:e}));if(N.length===0)return p({errorCode:t.ErrorCode.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j});let P={currentSignature:O?2:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainImport,quote:y,requiredSignatures:k};v?.(P);let F=await i.tryOrThrow(()=>g({ajsContext:n,atomicUtxos:N,destinationChainAlias:S,environment:o,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,sourceChainAlias:x,requiredFromAddress:D,toAddress:E}),e=>new t.SdkError(`Failed to build Avalanche import transaction.`,t.ErrorCode.UNKNOWN,{cause:e})),I=await i.tryOrThrow(()=>r({baseFeeInNanoAvax:F.baseFeeInNanoAvax,chainAlias:S,txType:`import`,unsignedTx:F.unsignedTx},P),e=>new t.SdkError(`Failed to sign/send Avalanche import transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));return{...j,source:{confirmationCount:M?1:0,requiredConfirmationCount:1,startedAtMs:A,txHash:M??I},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:I}}}}function f(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function p({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function m(e,t){return e===`C`?t/r.WEI_PER_NANO_AVAX_BIGINT:t}async function h({ajsContext:r,destinationChainAlias:i,environment:a,fromAddress:s,getUtxos:d,getWalletAddressesForChainAlias:f,getWalletChangeAddressForChainAlias:p,quoteAmountIn:h,requiredFromAddress:g,sourceChainAlias:_,toAddress:v}){let y=m(_,h);switch(_){case`C`:{if(i===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);if(!s)throw new t.InvalidParamsError(`fromAddress must be an EVM address when exporting from C-Chain.`);let o=n.getEvmClientForChain({chain:a===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),[u,d]=await Promise.all([o.getTransactionCount({address:s}),l.getCChainBaseFeeInNanoAvax(a)]);return{baseFeeInNanoAvax:d,unsignedTx:c.exportTx({amountInNanoAvax:y,baseFeeInNanoAvax:d,context:r,destinationChainAlias:i,fromAddress:s,nonce:BigInt(u),sourceChainAlias:_,toAddress:v})}}case`P`:{if(i===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,n,s,l]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),o.getFeeState(a),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`P`)]);return{baseFeeInNanoAvax:n.price,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:r,destinationChainAlias:i,feeState:n,fromAddresses:s,sourceChainAlias:_,toAddress:v,utxos:l.getUTXOs()})}}case`X`:{if(i===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,n,a]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`X`)]);return{baseFeeInNanoAvax:r.baseTxFee,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:r,destinationChainAlias:i,fromAddresses:n,sourceChainAlias:_,toAddress:v,utxos:a.getUTXOs()})}}}}async function g({ajsContext:e,atomicUtxos:n,destinationChainAlias:r,environment:i,getWalletAddressesForChainAlias:a,getWalletChangeAddressForChainAlias:s,requiredFromAddress:d,sourceChainAlias:f,toAddress:p}){switch(r){case`C`:{if(f===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[o,s]=await Promise.all([l.getCChainBaseFeeInNanoAvax(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:o,unsignedTx:c.importTx({atomicUtxos:n,baseFeeInNanoAvax:o,context:e,destinationChainAlias:r,fromAddresses:s,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`C`)})}}case`P`:{if(f===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[s,l]=await Promise.all([o.getFeeState(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:s.price,unsignedTx:c.importTx({atomicUtxos:n,context:e,destinationChainAlias:r,feeState:s,fromAddresses:l,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`P`)})}}case`X`:{if(f===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[i,o]=await Promise.all([u.getWalletChangeAddress({chainAlias:r,getWalletChangeAddressForChainAlias:s}),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:c.importTx({atomicUtxos:n,changeAddress:i,context:e,destinationChainAlias:r,fromAddresses:o,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`X`)})}}}}exports.transferAssetFactory=d;
1
+ const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../constants.cjs`),r=require(`../_utils.cjs`),i=require(`../../_utils.cjs`),a=require(`../../_transfer-utilities.cjs`),o=require(`../_utils/p-chain.cjs`),s=require(`../_utils/polling.cjs`),c=require(`../_utils/transactions.cjs`),l=require(`../_utils/fees.cjs`),u=require(`../_utils/addresses.cjs`);function d({ajsContext:n,avalancheSendTx:i,environment:o,getCoreEthAddress:c,getAtomicUtxos:l,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let b=r.getEnvironmentIsTestnet(o),x=r.getChainAlias(y.sourceChain.chainId,b),S=r.getChainAlias(y.targetChain.chainId,b),C=u.getExportFromAddressEvm(y.fromAddress,x),w=x===`C`?void 0:u.assertXpAddress(y.fromAddress),T=await u.getExportToAddress({destinationChainAlias:S,getCoreEthAddress:c,quoteToAddress:y.toAddress}),E=u.getImportToAddress(y.toAddress,S),D=S===`C`?T:u.assertXpAddress(y.toAddress),O=y.amountIn>0n,k=O?2:1,A=Date.now(),j=f(y,o),M;if(O){let c={currentSignature:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainExport,quote:y,requiredSignatures:k};v?.(c);let l=await r.tryOrThrow(()=>h({ajsContext:n,environment:o,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:x,destinationChainAlias:S,fromAddress:C,requiredFromAddress:w,toAddress:T}),e=>new t.SdkError(`Failed to build Avalanche export transaction.`,t.ErrorCode.UNKNOWN,{cause:e}));M=await r.tryOrThrow(()=>i({baseFeeInNanoAvax:l.baseFeeInNanoAvax,chainAlias:x,txType:`export`,unsignedTx:l.unsignedTx},c),e=>new t.SdkError(`Failed to sign/send Avalanche export transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));let u;try{u=await s.pollPrimaryNetworkTxStatus({chainAlias:x,environment:o,txId:M})}catch{return a.sourcePendingTransferFromQuote(y,{environment:o,requiredConfirmationCount:1,startedAtMs:A,txHash:M})}if(!u)return p({errorCode:t.ErrorCode.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j})}let N=await r.tryOrThrow(async()=>(await l(S,x)).getUTXOs(),e=>new t.SdkError(`Failed to fetch Avalanche atomic UTXOs.`,t.ErrorCode.UNKNOWN,{cause:e}));if(N.length===0)return p({errorCode:t.ErrorCode.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j});let P={currentSignature:O?2:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainImport,quote:y,requiredSignatures:k};v?.(P);let F=await r.tryOrThrow(()=>g({ajsContext:n,atomicUtxos:N,destinationChainAlias:S,environment:o,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,sourceChainAlias:x,requiredFromAddress:D,toAddress:E}),e=>new t.SdkError(`Failed to build Avalanche import transaction.`,t.ErrorCode.UNKNOWN,{cause:e})),I=await r.tryOrThrow(()=>i({baseFeeInNanoAvax:F.baseFeeInNanoAvax,chainAlias:S,txType:`import`,unsignedTx:F.unsignedTx},P),e=>new t.SdkError(`Failed to sign/send Avalanche import transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));return{...j,source:{confirmationCount:M?1:0,requiredConfirmationCount:1,startedAtMs:A,txHash:M??I},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:I}}}}function f(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function p({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function m(e,t){return e===`C`?t/n.WEI_PER_NANO_AVAX_BIGINT:t}async function h({ajsContext:n,destinationChainAlias:r,environment:a,fromAddress:s,getUtxos:d,getWalletAddressesForChainAlias:f,getWalletChangeAddressForChainAlias:p,quoteAmountIn:h,requiredFromAddress:g,sourceChainAlias:_,toAddress:v}){let y=m(_,h);switch(_){case`C`:{if(r===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);if(!s)throw new t.InvalidParamsError(`fromAddress must be an EVM address when exporting from C-Chain.`);let o=i.getEvmClientForChain({chain:a===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),[u,d]=await Promise.all([o.getTransactionCount({address:s}),l.getCChainBaseFeeInNanoAvax(a)]);return{baseFeeInNanoAvax:d,unsignedTx:c.exportTx({amountInNanoAvax:y,baseFeeInNanoAvax:d,context:n,destinationChainAlias:r,fromAddress:s,nonce:BigInt(u),sourceChainAlias:_,toAddress:v})}}case`P`:{if(r===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,i,s,l]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),o.getFeeState(a),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`P`)]);return{baseFeeInNanoAvax:i.price,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:n,destinationChainAlias:r,feeState:i,fromAddresses:s,sourceChainAlias:_,toAddress:v,utxos:l.getUTXOs()})}}case`X`:{if(r===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,i,a]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`X`)]);return{baseFeeInNanoAvax:n.baseTxFee,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:n,destinationChainAlias:r,fromAddresses:i,sourceChainAlias:_,toAddress:v,utxos:a.getUTXOs()})}}}}async function g({ajsContext:e,atomicUtxos:n,destinationChainAlias:r,environment:i,getWalletAddressesForChainAlias:a,getWalletChangeAddressForChainAlias:s,requiredFromAddress:d,sourceChainAlias:f,toAddress:p}){switch(r){case`C`:{if(f===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[o,s]=await Promise.all([l.getCChainBaseFeeInNanoAvax(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:o,unsignedTx:c.importTx({atomicUtxos:n,baseFeeInNanoAvax:o,context:e,destinationChainAlias:r,fromAddresses:s,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`C`)})}}case`P`:{if(f===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[s,l]=await Promise.all([o.getFeeState(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:s.price,unsignedTx:c.importTx({atomicUtxos:n,context:e,destinationChainAlias:r,feeState:s,fromAddresses:l,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`P`)})}}case`X`:{if(f===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[i,o]=await Promise.all([u.getWalletChangeAddress({chainAlias:r,getWalletChangeAddressForChainAlias:s}),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:c.importTx({atomicUtxos:n,changeAddress:i,context:e,destinationChainAlias:r,fromAddresses:o,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`X`)})}}}}exports.transferAssetFactory=d;
2
2
  //# sourceMappingURL=transfer-asset.cjs.map
@@ -1,2 +1,2 @@
1
- import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r,TransferSignatureReason as i}from"../../../constants.js";import{ErrorCode as a,ErrorReason as o,InvalidParamsError as s,SdkError as c}from"../../../errors.js";import{getEvmClientForChain as l}from"../../_utils.js";import{WEI_PER_NANO_AVAX_BIGINT as u}from"../constants.js";import{getChainAlias as d,getEnvironmentIsTestnet as f,tryOrThrow as p}from"../_utils.js";import{sourcePendingTransferFromQuote as m}from"../../_transfer-utilities.js";import{getFeeState as h}from"../_utils/p-chain.js";import{pollPrimaryNetworkTxStatus as g}from"../_utils/polling.js";import{exportTx as _,importTx as v}from"../_utils/transactions.js";import{getCChainBaseFeeInNanoAvax as y}from"../_utils/fees.js";import{assertXpAddress as b,getExportFromAddressEvm as x,getExportToAddress as S,getImportToAddress as C,getWalletChangeAddress as w,getWalletFromAddresses as T}from"../_utils/addresses.js";function E({ajsContext:e,avalancheSendTx:t,environment:n,getCoreEthAddress:s,getAtomicUtxos:l,getUtxos:u,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==r.AVALANCHE_CCT)throw new c(o.INCORRECT_PROVIDER_PROVIDED,a.INVALID_PARAMS);let w=f(n),T=d(y.sourceChain.chainId,w),E=d(y.targetChain.chainId,w),k=x(y.fromAddress,T),M=T===`C`?void 0:b(y.fromAddress),N=await S({destinationChainAlias:E,getCoreEthAddress:s,quoteToAddress:y.toAddress}),P=C(y.toAddress,E),F=E===`C`?N:b(y.toAddress),I=y.amountIn>0n,L=I?2:1,R=Date.now(),z=D(y,n),B;if(I){let r={currentSignature:1,currentSignatureReason:i.AvalancheCrossChainExport,quote:y,requiredSignatures:L};v?.(r);let o=await p(()=>A({ajsContext:e,environment:n,getUtxos:u,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:T,destinationChainAlias:E,fromAddress:k,requiredFromAddress:M,toAddress:N}),e=>new c(`Failed to build Avalanche export transaction.`,a.UNKNOWN,{cause:e}));B=await p(()=>t({baseFeeInNanoAvax:o.baseFeeInNanoAvax,chainAlias:T,txType:`export`,unsignedTx:o.unsignedTx},r),e=>new c(`Failed to sign/send Avalanche export transaction.`,a.SIGNING_FAILED,{cause:e}));let s;try{s=await g({chainAlias:T,environment:n,txId:B})}catch{return m(y,{environment:n,requiredConfirmationCount:1,startedAtMs:R,txHash:B})}if(!s)return O({errorCode:a.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z})}let V=await p(async()=>(await l(E,T)).getUTXOs(),e=>new c(`Failed to fetch Avalanche atomic UTXOs.`,a.UNKNOWN,{cause:e}));if(V.length===0)return O({errorCode:a.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z});let H={currentSignature:I?2:1,currentSignatureReason:i.AvalancheCrossChainImport,quote:y,requiredSignatures:L};v?.(H);let U=await p(()=>j({ajsContext:e,atomicUtxos:V,destinationChainAlias:E,environment:n,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,sourceChainAlias:T,requiredFromAddress:F,toAddress:P}),e=>new c(`Failed to build Avalanche import transaction.`,a.UNKNOWN,{cause:e})),W=await p(()=>t({baseFeeInNanoAvax:U.baseFeeInNanoAvax,chainAlias:E,txType:`import`,unsignedTx:U.unsignedTx},H),e=>new c(`Failed to sign/send Avalanche import transaction.`,a.SIGNING_FAILED,{cause:e}));return{...z,source:{confirmationCount:B?1:0,requiredConfirmationCount:1,startedAtMs:R,txHash:B??W},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:W}}}}function D(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function O({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function k(e,t){return e===`C`?t/u:t}async function A({ajsContext:r,destinationChainAlias:i,environment:a,fromAddress:o,getUtxos:c,getWalletAddressesForChainAlias:u,getWalletChangeAddressForChainAlias:d,quoteAmountIn:f,requiredFromAddress:p,sourceChainAlias:m,toAddress:g}){let v=k(m,f);switch(m){case`C`:{if(i===`C`)throw new s(`Source and destination chain aliases must be different.`);if(!o)throw new s(`fromAddress must be an EVM address when exporting from C-Chain.`);let c=l({chain:a===n.TEST?e:t}),[u,d]=await Promise.all([c.getTransactionCount({address:o}),y(a)]);return{baseFeeInNanoAvax:d,unsignedTx:_({amountInNanoAvax:v,baseFeeInNanoAvax:d,context:r,destinationChainAlias:i,fromAddress:o,nonce:BigInt(u),sourceChainAlias:m,toAddress:g})}}case`P`:{if(i===`P`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n,o]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:d}),h(a),T({chainAlias:m,getWalletAddressesForChainAlias:u,requiredAddress:p}),c(`P`)]);return{baseFeeInNanoAvax:t.price,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,feeState:t,fromAddresses:n,sourceChainAlias:m,toAddress:g,utxos:o.getUTXOs()})}}case`X`:{if(i===`X`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:d}),T({chainAlias:m,getWalletAddressesForChainAlias:u,requiredAddress:p}),c(`X`)]);return{baseFeeInNanoAvax:r.baseTxFee,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,fromAddresses:t,sourceChainAlias:m,toAddress:g,utxos:n.getUTXOs()})}}}}async function j({ajsContext:e,atomicUtxos:t,destinationChainAlias:n,environment:r,getWalletAddressesForChainAlias:i,getWalletChangeAddressForChainAlias:a,requiredFromAddress:o,sourceChainAlias:c,toAddress:l}){switch(n){case`C`:{if(c===`C`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([y(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a,unsignedTx:v({atomicUtxos:t,baseFeeInNanoAvax:a,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`C`)})}}case`P`:{if(c===`P`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([h(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a.price,unsignedTx:v({atomicUtxos:t,context:e,destinationChainAlias:n,feeState:a,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`P`)})}}case`X`:{if(c===`X`)throw new s(`Source and destination chain aliases must be different.`);let[r,u]=await Promise.all([w({chainAlias:n,getWalletChangeAddressForChainAlias:a}),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:v({atomicUtxos:t,changeAddress:r,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`X`)})}}}}export{E as transferAssetFactory};
1
+ import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r,TransferSignatureReason as i}from"../../../constants.js";import{ErrorCode as a,ErrorReason as o,InvalidParamsError as s,SdkError as c}from"../../../errors.js";import{WEI_PER_NANO_AVAX_BIGINT as l}from"../constants.js";import{getChainAlias as u,getEnvironmentIsTestnet as d,tryOrThrow as f}from"../_utils.js";import{getEvmClientForChain as p}from"../../_utils.js";import{sourcePendingTransferFromQuote as m}from"../../_transfer-utilities.js";import{getFeeState as h}from"../_utils/p-chain.js";import{pollPrimaryNetworkTxStatus as g}from"../_utils/polling.js";import{exportTx as _,importTx as v}from"../_utils/transactions.js";import{getCChainBaseFeeInNanoAvax as y}from"../_utils/fees.js";import{assertXpAddress as b,getExportFromAddressEvm as x,getExportToAddress as S,getImportToAddress as C,getWalletChangeAddress as w,getWalletFromAddresses as T}from"../_utils/addresses.js";function E({ajsContext:e,avalancheSendTx:t,environment:n,getCoreEthAddress:s,getAtomicUtxos:l,getUtxos:p,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==r.AVALANCHE_CCT)throw new c(o.INCORRECT_PROVIDER_PROVIDED,a.INVALID_PARAMS);let w=d(n),T=u(y.sourceChain.chainId,w),E=u(y.targetChain.chainId,w),k=x(y.fromAddress,T),M=T===`C`?void 0:b(y.fromAddress),N=await S({destinationChainAlias:E,getCoreEthAddress:s,quoteToAddress:y.toAddress}),P=C(y.toAddress,E),F=E===`C`?N:b(y.toAddress),I=y.amountIn>0n,L=I?2:1,R=Date.now(),z=D(y,n),B;if(I){let r={currentSignature:1,currentSignatureReason:i.AvalancheCrossChainExport,quote:y,requiredSignatures:L};v?.(r);let o=await f(()=>A({ajsContext:e,environment:n,getUtxos:p,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:T,destinationChainAlias:E,fromAddress:k,requiredFromAddress:M,toAddress:N}),e=>new c(`Failed to build Avalanche export transaction.`,a.UNKNOWN,{cause:e}));B=await f(()=>t({baseFeeInNanoAvax:o.baseFeeInNanoAvax,chainAlias:T,txType:`export`,unsignedTx:o.unsignedTx},r),e=>new c(`Failed to sign/send Avalanche export transaction.`,a.SIGNING_FAILED,{cause:e}));let s;try{s=await g({chainAlias:T,environment:n,txId:B})}catch{return m(y,{environment:n,requiredConfirmationCount:1,startedAtMs:R,txHash:B})}if(!s)return O({errorCode:a.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z})}let V=await f(async()=>(await l(E,T)).getUTXOs(),e=>new c(`Failed to fetch Avalanche atomic UTXOs.`,a.UNKNOWN,{cause:e}));if(V.length===0)return O({errorCode:a.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z});let H={currentSignature:I?2:1,currentSignatureReason:i.AvalancheCrossChainImport,quote:y,requiredSignatures:L};v?.(H);let U=await f(()=>j({ajsContext:e,atomicUtxos:V,destinationChainAlias:E,environment:n,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,sourceChainAlias:T,requiredFromAddress:F,toAddress:P}),e=>new c(`Failed to build Avalanche import transaction.`,a.UNKNOWN,{cause:e})),W=await f(()=>t({baseFeeInNanoAvax:U.baseFeeInNanoAvax,chainAlias:E,txType:`import`,unsignedTx:U.unsignedTx},H),e=>new c(`Failed to sign/send Avalanche import transaction.`,a.SIGNING_FAILED,{cause:e}));return{...z,source:{confirmationCount:B?1:0,requiredConfirmationCount:1,startedAtMs:R,txHash:B??W},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:W}}}}function D(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function O({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function k(e,t){return e===`C`?t/l:t}async function A({ajsContext:r,destinationChainAlias:i,environment:a,fromAddress:o,getUtxos:c,getWalletAddressesForChainAlias:l,getWalletChangeAddressForChainAlias:u,quoteAmountIn:d,requiredFromAddress:f,sourceChainAlias:m,toAddress:g}){let v=k(m,d);switch(m){case`C`:{if(i===`C`)throw new s(`Source and destination chain aliases must be different.`);if(!o)throw new s(`fromAddress must be an EVM address when exporting from C-Chain.`);let c=p({chain:a===n.TEST?e:t}),[l,u]=await Promise.all([c.getTransactionCount({address:o}),y(a)]);return{baseFeeInNanoAvax:u,unsignedTx:_({amountInNanoAvax:v,baseFeeInNanoAvax:u,context:r,destinationChainAlias:i,fromAddress:o,nonce:BigInt(l),sourceChainAlias:m,toAddress:g})}}case`P`:{if(i===`P`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n,o]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:u}),h(a),T({chainAlias:m,getWalletAddressesForChainAlias:l,requiredAddress:f}),c(`P`)]);return{baseFeeInNanoAvax:t.price,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,feeState:t,fromAddresses:n,sourceChainAlias:m,toAddress:g,utxos:o.getUTXOs()})}}case`X`:{if(i===`X`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:u}),T({chainAlias:m,getWalletAddressesForChainAlias:l,requiredAddress:f}),c(`X`)]);return{baseFeeInNanoAvax:r.baseTxFee,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,fromAddresses:t,sourceChainAlias:m,toAddress:g,utxos:n.getUTXOs()})}}}}async function j({ajsContext:e,atomicUtxos:t,destinationChainAlias:n,environment:r,getWalletAddressesForChainAlias:i,getWalletChangeAddressForChainAlias:a,requiredFromAddress:o,sourceChainAlias:c,toAddress:l}){switch(n){case`C`:{if(c===`C`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([y(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a,unsignedTx:v({atomicUtxos:t,baseFeeInNanoAvax:a,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`C`)})}}case`P`:{if(c===`P`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([h(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a.price,unsignedTx:v({atomicUtxos:t,context:e,destinationChainAlias:n,feeState:a,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`P`)})}}case`X`:{if(c===`X`)throw new s(`Source and destination chain aliases must be different.`);let[r,u]=await Promise.all([w({chainAlias:n,getWalletChangeAddressForChainAlias:a}),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:v({atomicUtxos:t,changeAddress:r,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`X`)})}}}}export{E as transferAssetFactory};
2
2
  //# sourceMappingURL=transfer-asset.js.map
@@ -1,2 +1,2 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../../_utils.cjs`),r=require(`../constants.cjs`),i=require(`./p-chain.cjs`),a=require(`../../_evm-gas.cjs`);let o=require(`@avalabs/avalanchejs`);function s(e,n){if(!Number.isInteger(e)||e<=0)throw new t.InvalidParamsError(`Expected a positive integer greater than 0 for ${n}, but received: ${e}`)}function c(e=1,t=1){return s(e,`numberInputs`),s(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function l(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function u(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function d(e,t){let i=(n.applyFeeUnitsBpsMargin(e,t)+r.WEI_PER_NANO_AVAX_BIGINT-1n)/r.WEI_PER_NANO_AVAX_BIGINT;return i<=0n?1n:i}async function f(t){let r=(await a.fetchSuggestedGasPrices(n.getEvmClientForChain({chain:t===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}))).fast.maxFeePerGas;return d(r,void 0)}function p({feeUnitsMarginBps:e,maxFeePerGas:t}){return d(t,e)*11230n}function m({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return d(t,e)*c(n,r)}async function h({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*l(n,e.platformFeeConfig.weights)}async function g({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*u(n,e.platformFeeConfig.weights)}function _({context:e}){return e.baseTxFee}function v({context:e}){return e.baseTxFee}async function y(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=n;switch(e){case`C`:return p({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await h({context:r,environment:i,numberInputs:s});case`X`:return _({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}async function b(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=n;switch(e){case`C`:return m({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await g({context:r,environment:i,numberInputs:s});case`X`:return v({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}exports.getCChainBaseFeeInNanoAvax=f,exports.getExportFeeInNanoAvax=y,exports.getImportFeeInNanoAvax=b;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../constants.cjs`),r=require(`../../_utils.cjs`),i=require(`./p-chain.cjs`),a=require(`../../_evm-gas.cjs`);let o=require(`@avalabs/avalanchejs`);function s(e,n){if(!Number.isInteger(e)||e<=0)throw new t.InvalidParamsError(`Expected a positive integer greater than 0 for ${n}, but received: ${e}`)}function c(e=1,t=1){return s(e,`numberInputs`),s(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function l(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function u(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function d(e,t){let i=(r.applyFeeUnitsBpsMargin(e,t)+n.WEI_PER_NANO_AVAX_BIGINT-1n)/n.WEI_PER_NANO_AVAX_BIGINT;return i<=0n?1n:i}async function f(t){let n=(await a.fetchSuggestedGasPrices(r.getEvmClientForChain({chain:t===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}))).fast.maxFeePerGas;return d(n,void 0)}function p({feeUnitsMarginBps:e,maxFeePerGas:t}){return d(t,e)*11230n}function m({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return d(t,e)*c(n,r)}async function h({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*l(n,e.platformFeeConfig.weights)}async function g({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*u(n,e.platformFeeConfig.weights)}function _({context:e}){return e.baseTxFee}function v({context:e}){return e.baseTxFee}async function y(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=n;switch(e){case`C`:return p({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await h({context:r,environment:i,numberInputs:s});case`X`:return _({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}async function b(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=n;switch(e){case`C`:return m({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await g({context:r,environment:i,numberInputs:s});case`X`:return v({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}exports.getCChainBaseFeeInNanoAvax=f,exports.getExportFeeInNanoAvax=y,exports.getImportFeeInNanoAvax=b;
2
2
  //# sourceMappingURL=fees.cjs.map
@@ -1,2 +1,2 @@
1
- import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n}from"../../../constants.js";import{InvalidParamsError as r}from"../../../errors.js";import{applyFeeUnitsBpsMargin as i,getEvmClientForChain as a}from"../../_utils.js";import{WEI_PER_NANO_AVAX_BIGINT as o}from"../constants.js";import{getFeeState as s}from"./p-chain.js";import{fetchSuggestedGasPrices as c}from"../../_evm-gas.js";import{Common as l}from"@avalabs/avalanchejs";function u(e,t){if(!Number.isInteger(e)||e<=0)throw new r(`Expected a positive integer greater than 0 for ${t}, but received: ${e}`)}function d(e=1,t=1){return u(e,`numberInputs`),u(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function f(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function p(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function m(e,t){let n=(i(e,t)+o-1n)/o;return n<=0n?1n:n}async function h(r){let i=(await c(a({chain:r===n.TEST?e:t}))).fast.maxFeePerGas;return m(i,void 0)}function g({feeUnitsMarginBps:e,maxFeePerGas:t}){return m(t,e)*11230n}function _({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return m(t,e)*d(n,r)}async function v({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*f(n,e.platformFeeConfig.weights)}async function y({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*p(n,e.platformFeeConfig.weights)}function b({context:e}){return e.baseTxFee}function x({context:e}){return e.baseTxFee}async function S(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=t;switch(e){case`C`:return g({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await v({context:n,environment:i,numberInputs:s});case`X`:return b({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}async function C(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=t;switch(e){case`C`:return _({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await y({context:n,environment:i,numberInputs:s});case`X`:return x({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}export{h as getCChainBaseFeeInNanoAvax,S as getExportFeeInNanoAvax,C as getImportFeeInNanoAvax};
1
+ import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n}from"../../../constants.js";import{InvalidParamsError as r}from"../../../errors.js";import{WEI_PER_NANO_AVAX_BIGINT as i}from"../constants.js";import{applyFeeUnitsBpsMargin as a,getEvmClientForChain as o}from"../../_utils.js";import{getFeeState as s}from"./p-chain.js";import{fetchSuggestedGasPrices as c}from"../../_evm-gas.js";import{Common as l}from"@avalabs/avalanchejs";function u(e,t){if(!Number.isInteger(e)||e<=0)throw new r(`Expected a positive integer greater than 0 for ${t}, but received: ${e}`)}function d(e=1,t=1){return u(e,`numberInputs`),u(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function f(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function p(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function m(e,t){let n=(a(e,t)+i-1n)/i;return n<=0n?1n:n}async function h(r){let i=(await c(o({chain:r===n.TEST?e:t}))).fast.maxFeePerGas;return m(i,void 0)}function g({feeUnitsMarginBps:e,maxFeePerGas:t}){return m(t,e)*11230n}function _({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return m(t,e)*d(n,r)}async function v({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*f(n,e.platformFeeConfig.weights)}async function y({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*p(n,e.platformFeeConfig.weights)}function b({context:e}){return e.baseTxFee}function x({context:e}){return e.baseTxFee}async function S(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=t;switch(e){case`C`:return g({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await v({context:n,environment:i,numberInputs:s});case`X`:return b({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}async function C(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=t;switch(e){case`C`:return _({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await y({context:n,environment:i,numberInputs:s});case`X`:return x({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}export{h as getCChainBaseFeeInNanoAvax,S as getExportFeeInNanoAvax,C as getImportFeeInNanoAvax};
2
2
  //# sourceMappingURL=fees.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../../../errors.cjs`),t=require(`../../_utils.cjs`),n=require(`../_utils.cjs`);function r(t,r){switch(r){case`C`:return e=>n.getAvalancheProvider(t,r).getAtomicTxStatus(e);case`P`:return e=>n.getAvalancheProvider(t,r).getTxStatus({txID:e});case`X`:return e=>n.getAvalancheProvider(t,r).getTxStatus({txID:e});default:throw new e.InvalidParamsError(`Unsupported chain alias: ${r}`,`Can not get transaction status function for unsupported chain alias.`)}}async function i({chainAlias:n,count:a=13,environment:o,signal:s,txId:c}){if(a<0)return!1;try{let{status:e}=await r(o,n)(c);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await t.wait(1500*1.2**(13-a),s),await i({chainAlias:n,count:a-1,environment:o,signal:s,txId:c})}catch(t){throw new e.SdkError(`Failed to poll transaction status from Avalanche.`,e.ErrorCode.UNKNOWN,{cause:t})}}exports.pollPrimaryNetworkTxStatus=i;
1
+ const e=require(`../../../errors.cjs`),t=require(`../_utils.cjs`),n=require(`../../_utils.cjs`);function r(n,r){switch(r){case`C`:return e=>t.getAvalancheProvider(n,r).getAtomicTxStatus(e);case`P`:return e=>t.getAvalancheProvider(n,r).getTxStatus({txID:e});case`X`:return e=>t.getAvalancheProvider(n,r).getTxStatus({txID:e});default:throw new e.InvalidParamsError(`Unsupported chain alias: ${r}`,`Can not get transaction status function for unsupported chain alias.`)}}async function i({chainAlias:t,count:a=13,environment:o,signal:s,txId:c}){if(a<0)return!1;try{let{status:e}=await r(o,t)(c);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await n.wait(1500*1.2**(13-a),s),await i({chainAlias:t,count:a-1,environment:o,signal:s,txId:c})}catch(t){throw new e.SdkError(`Failed to poll transaction status from Avalanche.`,e.ErrorCode.UNKNOWN,{cause:t})}}exports.pollPrimaryNetworkTxStatus=i;
2
2
  //# sourceMappingURL=polling.cjs.map
@@ -1,2 +1,2 @@
1
- import{ErrorCode as e,InvalidParamsError as t,SdkError as n}from"../../../errors.js";import{wait as r}from"../../_utils.js";import{getAvalancheProvider as i}from"../_utils.js";function a(e,n){switch(n){case`C`:return t=>i(e,n).getAtomicTxStatus(t);case`P`:return t=>i(e,n).getTxStatus({txID:t});case`X`:return t=>i(e,n).getTxStatus({txID:t});default:throw new t(`Unsupported chain alias: ${n}`,`Can not get transaction status function for unsupported chain alias.`)}}async function o({chainAlias:t,count:i=13,environment:s,signal:c,txId:l}){if(i<0)return!1;try{let{status:e}=await a(s,t)(l);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await r(1500*1.2**(13-i),c),await o({chainAlias:t,count:i-1,environment:s,signal:c,txId:l})}catch(t){throw new n(`Failed to poll transaction status from Avalanche.`,e.UNKNOWN,{cause:t})}}export{o as pollPrimaryNetworkTxStatus};
1
+ import{ErrorCode as e,InvalidParamsError as t,SdkError as n}from"../../../errors.js";import{getAvalancheProvider as r}from"../_utils.js";import{wait as i}from"../../_utils.js";function a(e,n){switch(n){case`C`:return t=>r(e,n).getAtomicTxStatus(t);case`P`:return t=>r(e,n).getTxStatus({txID:t});case`X`:return t=>r(e,n).getTxStatus({txID:t});default:throw new t(`Unsupported chain alias: ${n}`,`Can not get transaction status function for unsupported chain alias.`)}}async function o({chainAlias:t,count:r=13,environment:s,signal:c,txId:l}){if(r<0)return!1;try{let{status:e}=await a(s,t)(l);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await i(1500*1.2**(13-r),c),await o({chainAlias:t,count:r-1,environment:s,signal:c,txId:l})}catch(t){throw new n(`Failed to poll transaction status from Avalanche.`,e.UNKNOWN,{cause:t})}}export{o as pollPrimaryNetworkTxStatus};
2
2
  //# sourceMappingURL=polling.js.map
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`./_handlers/analyze-support.cjs`),r=require(`./_handlers/get-bridgeable-assets.cjs`),i=require(`./_utils.cjs`),a=require(`./_handlers/get-minimum-transfer-amount.cjs`),o=require(`./_handlers/get-supported-chains.cjs`),s=require(`./_handlers/stream-quotes.cjs`),c=require(`./_handlers/transfer-asset.cjs`),l=require(`./_handlers/estimate-native-fee.cjs`),u=require(`./_handlers/track-transfer.cjs`);let d=require(`@avalabs/avalanchejs`);async function f({avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}){let y,b;try{y=i.getAvalancheApiUrl(p),b=await d.Context.getContextFromURI(y)}catch(e){throw new t.ServiceInitializationError(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:n.analyzeSupportFactory({environment:p}),estimateNativeFee:l.estimateNativeFeeFactory({ajsContext:b,environment:p,getAtomicUtxos:h,getUtxos:g}),getAssets:async()=>{throw new t.NotImplementedError},getBridgeableAssets:r.getBridgeableAssetsFactory({environment:p}),getMinimumTransferAmount:a.getMinimumTransferAmountFactory({environment:p,getAtomicUtxos:h}),getSupportedChains:o.getSupportedChainsFactory({environment:p}),streamQuotes:s.streamQuotesFactory({environment:p,getAtomicUtxos:h}),trackTransfer:u.trackTransferFactory({environment:p}),transferAsset:c.transferAssetFactory({ajsContext:b,avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}),type:e.ServiceType.AVALANCHE_CCT}}exports.createAvalancheCctService=f;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`./_utils.cjs`),r=require(`./_handlers/analyze-support.cjs`),i=require(`./_handlers/get-bridgeable-assets.cjs`),a=require(`./_handlers/get-minimum-transfer-amount.cjs`),o=require(`./_handlers/get-supported-chains.cjs`),s=require(`./_handlers/stream-quotes.cjs`),c=require(`./_handlers/transfer-asset.cjs`),l=require(`./_handlers/estimate-native-fee.cjs`),u=require(`./_handlers/track-transfer.cjs`);let d=require(`@avalabs/avalanchejs`);async function f({avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}){let y,b;try{y=n.getAvalancheApiUrl(p),b=await d.Context.getContextFromURI(y)}catch(e){throw new t.ServiceInitializationError(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:r.analyzeSupportFactory({environment:p}),estimateNativeFee:l.estimateNativeFeeFactory({ajsContext:b,environment:p,getAtomicUtxos:h,getUtxos:g}),getAssets:async()=>{throw new t.NotImplementedError},getBridgeableAssets:i.getBridgeableAssetsFactory({environment:p}),getMinimumTransferAmount:a.getMinimumTransferAmountFactory({environment:p,getAtomicUtxos:h}),getSupportedChains:o.getSupportedChainsFactory({environment:p}),streamQuotes:s.streamQuotesFactory({environment:p,getAtomicUtxos:h}),trackTransfer:u.trackTransferFactory({environment:p}),transferAsset:c.transferAssetFactory({ajsContext:b,avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}),type:e.ServiceType.AVALANCHE_CCT}}exports.createAvalancheCctService=f;
2
2
  //# sourceMappingURL=avalanche-cct-service.cjs.map
@@ -1,2 +1,2 @@
1
- import{ServiceType as e}from"../../constants.js";import{NotImplementedError as t,ServiceInitializationError as n}from"../../errors.js";import{analyzeSupportFactory as r}from"./_handlers/analyze-support.js";import{getBridgeableAssetsFactory as i}from"./_handlers/get-bridgeable-assets.js";import{getAvalancheApiUrl as a}from"./_utils.js";import{getMinimumTransferAmountFactory as o}from"./_handlers/get-minimum-transfer-amount.js";import{getSupportedChainsFactory as s}from"./_handlers/get-supported-chains.js";import{streamQuotesFactory as c}from"./_handlers/stream-quotes.js";import{transferAssetFactory as l}from"./_handlers/transfer-asset.js";import{estimateNativeFeeFactory as u}from"./_handlers/estimate-native-fee.js";import{trackTransferFactory as d}from"./_handlers/track-transfer.js";import{Context as f}from"@avalabs/avalanchejs";async function p({avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}){let b,x;try{b=a(m),x=await f.getContextFromURI(b)}catch(e){throw new n(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:r({environment:m}),estimateNativeFee:u({ajsContext:x,environment:m,getAtomicUtxos:g,getUtxos:_}),getAssets:async()=>{throw new t},getBridgeableAssets:i({environment:m}),getMinimumTransferAmount:o({environment:m,getAtomicUtxos:g}),getSupportedChains:s({environment:m}),streamQuotes:c({environment:m,getAtomicUtxos:g}),trackTransfer:d({environment:m}),transferAsset:l({ajsContext:x,avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}),type:e.AVALANCHE_CCT}}export{p as createAvalancheCctService};
1
+ import{ServiceType as e}from"../../constants.js";import{NotImplementedError as t,ServiceInitializationError as n}from"../../errors.js";import{getAvalancheApiUrl as r}from"./_utils.js";import{analyzeSupportFactory as i}from"./_handlers/analyze-support.js";import{getBridgeableAssetsFactory as a}from"./_handlers/get-bridgeable-assets.js";import{getMinimumTransferAmountFactory as o}from"./_handlers/get-minimum-transfer-amount.js";import{getSupportedChainsFactory as s}from"./_handlers/get-supported-chains.js";import{streamQuotesFactory as c}from"./_handlers/stream-quotes.js";import{transferAssetFactory as l}from"./_handlers/transfer-asset.js";import{estimateNativeFeeFactory as u}from"./_handlers/estimate-native-fee.js";import{trackTransferFactory as d}from"./_handlers/track-transfer.js";import{Context as f}from"@avalabs/avalanchejs";async function p({avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}){let b,x;try{b=r(m),x=await f.getContextFromURI(b)}catch(e){throw new n(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:i({environment:m}),estimateNativeFee:u({ajsContext:x,environment:m,getAtomicUtxos:g,getUtxos:_}),getAssets:async()=>{throw new t},getBridgeableAssets:a({environment:m}),getMinimumTransferAmount:o({environment:m,getAtomicUtxos:g}),getSupportedChains:s({environment:m}),streamQuotes:c({environment:m,getAtomicUtxos:g}),trackTransfer:d({environment:m}),transferAsset:l({ajsContext:x,avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}),type:e.AVALANCHE_CCT}}export{p as createAvalancheCctService};
2
2
  //# sourceMappingURL=avalanche-cct-service.js.map
@@ -0,0 +1,2 @@
1
+ const e=require(`../../constants.cjs`),t=require(`../../type-guards.cjs`),n=require(`./_utils.cjs`);function r(r){let i=t.isQuote(r);if((i?r.serviceType:r.type)!==e.ServiceType.AVALANCHE_CCT)return null;let a=i?r.assetIn:r.sourceAsset,o=i?r.assetOut:r.targetAsset;if(!t.isNativeAsset(a)||!t.isNativeAsset(o))return null;let s=n.getOutputAmountForAvalancheCct({amountIn:r.amountIn,sourceAsset:a,targetAsset:o}),c=r.amountOut-s;return c>0n?c:0n}exports.getRecoveredAtomicAmount=r;
2
+ //# sourceMappingURL=get-recovered-atomic-amount.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-recovered-atomic-amount.cjs","names":["isQuote","ServiceType","isNativeAsset","getOutputAmountForAvalancheCct"],"sources":["../../../src/transfer-service/avalanche-cct/get-recovered-atomic-amount.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport { isNativeAsset, isQuote } from '../../type-guards';\nimport type { Quote } from '../../types/quote';\nimport type { Transfer } from '../../types/transfer';\nimport { getOutputAmountForAvalancheCct } from './_utils';\n\n/**\n * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`\n * that comes from AVAX recovered from a previous incomplete cross-chain transfer,\n * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred\n * amount.\n *\n * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /\n * success screen, from the tracked transfer) since both carry the same amounts\n * and source/target assets.\n *\n * Derived entirely from the input: `amountOut` minus the newly-transferred\n * `amountIn` scaled from the source asset's decimals to the target's. The scaling\n * matters because CCT crosses chains with different native decimals (C-Chain AVAX\n * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any\n * route involving C-Chain.\n *\n * Returns:\n * - `null` for non-CCT inputs (the concept does not apply)\n * - `0n` for a CCT input that recovered nothing\n * - a positive `bigint` (target-asset smallest units) otherwise\n *\n * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`\n * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever\n * introduced it will surface in `fees`, and this must account for it.\n */\nexport function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null {\n const isQuoteInput = isQuote(quoteOrTransfer);\n const serviceType = isQuoteInput ? quoteOrTransfer.serviceType : quoteOrTransfer.type;\n if (serviceType !== ServiceType.AVALANCHE_CCT) {\n return null;\n }\n\n const sourceAsset = isQuoteInput ? quoteOrTransfer.assetIn : quoteOrTransfer.sourceAsset;\n const targetAsset = isQuoteInput ? quoteOrTransfer.assetOut : quoteOrTransfer.targetAsset;\n\n // CCT only ever moves native AVAX. Bail on anything else (this also narrows\n // `Asset` to `NativeAsset` for the decimal scaler).\n if (!isNativeAsset(sourceAsset) || !isNativeAsset(targetAsset)) {\n return null;\n }\n\n const newlyTransferredOut = getOutputAmountForAvalancheCct({\n amountIn: quoteOrTransfer.amountIn,\n sourceAsset,\n targetAsset,\n });\n\n const recovered = quoteOrTransfer.amountOut - newlyTransferredOut;\n return recovered > 0n ? recovered : 0n;\n}\n"],"mappings":"oGA+BA,SAAgB,EAAyB,EAAkD,CACzF,IAAM,EAAeA,EAAAA,QAAQ,EAAgB,CAE7C,IADoB,EAAe,EAAgB,YAAc,EAAgB,QAC7DC,EAAAA,YAAY,cAC9B,OAAO,KAGT,IAAM,EAAc,EAAe,EAAgB,QAAU,EAAgB,YACvE,EAAc,EAAe,EAAgB,SAAW,EAAgB,YAI9E,GAAI,CAACC,EAAAA,cAAc,EAAY,EAAI,CAACA,EAAAA,cAAc,EAAY,CAC5D,OAAO,KAGT,IAAM,EAAsBC,EAAAA,+BAA+B,CACzD,SAAU,EAAgB,SAC1B,cACA,cACD,CAAC,CAEI,EAAY,EAAgB,UAAY,EAC9C,OAAO,EAAY,GAAK,EAAY"}
@@ -0,0 +1,33 @@
1
+ import { Quote } from "../../types/quote.cjs";
2
+ import { Transfer } from "../../types/transfer.cjs";
3
+
4
+ //#region src/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts
5
+ /**
6
+ * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`
7
+ * that comes from AVAX recovered from a previous incomplete cross-chain transfer,
8
+ * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred
9
+ * amount.
10
+ *
11
+ * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /
12
+ * success screen, from the tracked transfer) since both carry the same amounts
13
+ * and source/target assets.
14
+ *
15
+ * Derived entirely from the input: `amountOut` minus the newly-transferred
16
+ * `amountIn` scaled from the source asset's decimals to the target's. The scaling
17
+ * matters because CCT crosses chains with different native decimals (C-Chain AVAX
18
+ * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any
19
+ * route involving C-Chain.
20
+ *
21
+ * Returns:
22
+ * - `null` for non-CCT inputs (the concept does not apply)
23
+ * - `0n` for a CCT input that recovered nothing
24
+ * - a positive `bigint` (target-asset smallest units) otherwise
25
+ *
26
+ * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`
27
+ * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever
28
+ * introduced it will surface in `fees`, and this must account for it.
29
+ */
30
+ declare function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null;
31
+ //#endregion
32
+ export { getRecoveredAtomicAmount };
33
+ //# sourceMappingURL=get-recovered-atomic-amount.d.cts.map
@@ -0,0 +1,33 @@
1
+ import { Quote } from "../../types/quote.js";
2
+ import { Transfer } from "../../types/transfer.js";
3
+
4
+ //#region src/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts
5
+ /**
6
+ * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`
7
+ * that comes from AVAX recovered from a previous incomplete cross-chain transfer,
8
+ * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred
9
+ * amount.
10
+ *
11
+ * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /
12
+ * success screen, from the tracked transfer) since both carry the same amounts
13
+ * and source/target assets.
14
+ *
15
+ * Derived entirely from the input: `amountOut` minus the newly-transferred
16
+ * `amountIn` scaled from the source asset's decimals to the target's. The scaling
17
+ * matters because CCT crosses chains with different native decimals (C-Chain AVAX
18
+ * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any
19
+ * route involving C-Chain.
20
+ *
21
+ * Returns:
22
+ * - `null` for non-CCT inputs (the concept does not apply)
23
+ * - `0n` for a CCT input that recovered nothing
24
+ * - a positive `bigint` (target-asset smallest units) otherwise
25
+ *
26
+ * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`
27
+ * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever
28
+ * introduced it will surface in `fees`, and this must account for it.
29
+ */
30
+ declare function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null;
31
+ //#endregion
32
+ export { getRecoveredAtomicAmount };
33
+ //# sourceMappingURL=get-recovered-atomic-amount.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{ServiceType as e}from"../../constants.js";import{isNativeAsset as t,isQuote as n}from"../../type-guards.js";import{getOutputAmountForAvalancheCct as r}from"./_utils.js";function i(i){let a=n(i);if((a?i.serviceType:i.type)!==e.AVALANCHE_CCT)return null;let o=a?i.assetIn:i.sourceAsset,s=a?i.assetOut:i.targetAsset;if(!t(o)||!t(s))return null;let c=r({amountIn:i.amountIn,sourceAsset:o,targetAsset:s}),l=i.amountOut-c;return l>0n?l:0n}export{i as getRecoveredAtomicAmount};
2
+ //# sourceMappingURL=get-recovered-atomic-amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-recovered-atomic-amount.js","names":[],"sources":["../../../src/transfer-service/avalanche-cct/get-recovered-atomic-amount.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport { isNativeAsset, isQuote } from '../../type-guards';\nimport type { Quote } from '../../types/quote';\nimport type { Transfer } from '../../types/transfer';\nimport { getOutputAmountForAvalancheCct } from './_utils';\n\n/**\n * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`\n * that comes from AVAX recovered from a previous incomplete cross-chain transfer,\n * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred\n * amount.\n *\n * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /\n * success screen, from the tracked transfer) since both carry the same amounts\n * and source/target assets.\n *\n * Derived entirely from the input: `amountOut` minus the newly-transferred\n * `amountIn` scaled from the source asset's decimals to the target's. The scaling\n * matters because CCT crosses chains with different native decimals (C-Chain AVAX\n * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any\n * route involving C-Chain.\n *\n * Returns:\n * - `null` for non-CCT inputs (the concept does not apply)\n * - `0n` for a CCT input that recovered nothing\n * - a positive `bigint` (target-asset smallest units) otherwise\n *\n * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`\n * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever\n * introduced it will surface in `fees`, and this must account for it.\n */\nexport function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null {\n const isQuoteInput = isQuote(quoteOrTransfer);\n const serviceType = isQuoteInput ? quoteOrTransfer.serviceType : quoteOrTransfer.type;\n if (serviceType !== ServiceType.AVALANCHE_CCT) {\n return null;\n }\n\n const sourceAsset = isQuoteInput ? quoteOrTransfer.assetIn : quoteOrTransfer.sourceAsset;\n const targetAsset = isQuoteInput ? quoteOrTransfer.assetOut : quoteOrTransfer.targetAsset;\n\n // CCT only ever moves native AVAX. Bail on anything else (this also narrows\n // `Asset` to `NativeAsset` for the decimal scaler).\n if (!isNativeAsset(sourceAsset) || !isNativeAsset(targetAsset)) {\n return null;\n }\n\n const newlyTransferredOut = getOutputAmountForAvalancheCct({\n amountIn: quoteOrTransfer.amountIn,\n sourceAsset,\n targetAsset,\n });\n\n const recovered = quoteOrTransfer.amountOut - newlyTransferredOut;\n return recovered > 0n ? recovered : 0n;\n}\n"],"mappings":"gLA+BA,SAAgB,EAAyB,EAAkD,CACzF,IAAM,EAAe,EAAQ,EAAgB,CAE7C,IADoB,EAAe,EAAgB,YAAc,EAAgB,QAC7D,EAAY,cAC9B,OAAO,KAGT,IAAM,EAAc,EAAe,EAAgB,QAAU,EAAgB,YACvE,EAAc,EAAe,EAAgB,SAAW,EAAgB,YAI9E,GAAI,CAAC,EAAc,EAAY,EAAI,CAAC,EAAc,EAAY,CAC5D,OAAO,KAGT,IAAM,EAAsB,EAA+B,CACzD,SAAU,EAAgB,SAC1B,cACA,cACD,CAAC,CAEI,EAAY,EAAgB,UAAY,EAC9C,OAAO,EAAY,GAAK,EAAY"}
@@ -1,2 +1,2 @@
1
- const e=require(`./constants.cjs`),t=t=>typeof t==`string`&&Object.values(e.Environment).some(e=>e===t),n=t=>e.EVM_SERVICE_TYPES.includes(t.type),r=t=>t.type===e.ServiceType.LOMBARD_BTC_TO_BTCB||t.type===e.ServiceType.LOMBARD_BTCB_TO_BTC,i=t=>t.type===e.ServiceType.MARKR,a=t=>typeof t==`object`&&!!t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type),o=t=>t.type===e.TokenType.ERC20,s=t=>t.type===e.TokenType.NATIVE,c=t=>t.type===e.TokenType.SPL;exports.isEnvironment=t,exports.isErc20Asset=o,exports.isEvmBridgeInitializer=n,exports.isLombardServiceInitializer=r,exports.isMarkrServiceInitializer=i,exports.isNativeAsset=s,exports.isServiceInitializer=a,exports.isSplAsset=c;
1
+ const e=require(`./constants.cjs`),t=t=>typeof t==`string`&&Object.values(e.Environment).some(e=>e===t),n=t=>e.EVM_SERVICE_TYPES.includes(t.type),r=t=>t.type===e.ServiceType.LOMBARD_BTC_TO_BTCB||t.type===e.ServiceType.LOMBARD_BTCB_TO_BTC,i=t=>t.type===e.ServiceType.MARKR,a=t=>typeof t==`object`&&!!t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type),o=t=>t.type===e.TokenType.ERC20,s=t=>t.type===e.TokenType.NATIVE,c=t=>t.type===e.TokenType.SPL,l=t=>typeof t==`object`&&!!t&&`serviceType`in t&&typeof t.serviceType==`string`&&Object.values(e.ServiceType).some(e=>e===t.serviceType),u=t=>typeof t==`object`&&!!t&&`status`in t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type);exports.isEnvironment=t,exports.isErc20Asset=o,exports.isEvmBridgeInitializer=n,exports.isLombardServiceInitializer=r,exports.isMarkrServiceInitializer=i,exports.isNativeAsset=s,exports.isQuote=l,exports.isServiceInitializer=a,exports.isSplAsset=c,exports.isTransfer=u;
2
2
  //# sourceMappingURL=type-guards.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-guards.cjs","names":["Environment","EVM_SERVICE_TYPES","ServiceType","TokenType"],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"mCASa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7BC,EAAAA,kBAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAASC,EAAAA,YAAY,qBAAuB,EAAY,OAASA,EAAAA,YAAY,oBAGrF,EAA6B,GACjC,EAAY,OAASA,EAAAA,YAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAASC,EAAAA,UAAU,MAC/E,EAAiB,GAAuC,EAAM,OAASA,EAAAA,UAAU,OACjF,EAAc,GAAoC,EAAM,OAASA,EAAAA,UAAU"}
1
+ {"version":3,"file":"type-guards.cjs","names":["Environment","EVM_SERVICE_TYPES","ServiceType","TokenType"],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type { Quote } from './types/quote';\nimport type { Transfer } from './types/transfer';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n\n/**\n * Type guard for a `Quote`. A quote carries its service discriminator on\n * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.\n */\nexport const isQuote = (value: unknown): value is Quote =>\n typeof value === 'object' &&\n value !== null &&\n 'serviceType' in value &&\n typeof value.serviceType === 'string' &&\n Object.values(ServiceType).some((t) => t === value.serviceType);\n\n/**\n * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its\n * service discriminator on `type` (a valid `ServiceType`); a quote has neither.\n */\nexport const isTransfer = (value: unknown): value is Transfer =>\n typeof value === 'object' &&\n value !== null &&\n 'status' in value &&\n 'type' in value &&\n typeof value.type === 'string' &&\n Object.values(ServiceType).some((t) => t === value.type);\n"],"mappings":"mCAWa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7BC,EAAAA,kBAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAASC,EAAAA,YAAY,qBAAuB,EAAY,OAASA,EAAAA,YAAY,oBAGrF,EAA6B,GACjC,EAAY,OAASA,EAAAA,YAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAASC,EAAAA,UAAU,MAC/E,EAAiB,GAAuC,EAAM,OAASA,EAAAA,UAAU,OACjF,EAAc,GAAoC,EAAM,OAASA,EAAAA,UAAU,IAM3E,EAAW,GACtB,OAAO,GAAU,YACjB,GACA,gBAAiB,GACjB,OAAO,EAAM,aAAgB,UAC7B,OAAO,OAAOD,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAM,YAAY,CAMpD,EAAc,GACzB,OAAO,GAAU,YACjB,GACA,WAAY,GACZ,SAAU,GACV,OAAO,EAAM,MAAS,UACtB,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAM,KAAK"}
@@ -1,5 +1,7 @@
1
1
  import { Environment } from "./constants.cjs";
2
2
  import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.cjs";
3
+ import { Quote } from "./types/quote.cjs";
4
+ import { Transfer } from "./types/transfer.cjs";
3
5
  import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.cjs";
4
6
 
5
7
  //#region src/type-guards.d.ts
@@ -11,6 +13,16 @@ declare const isServiceInitializer: (initializer: unknown) => initializer is Ser
11
13
  declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
12
14
  declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
13
15
  declare const isSplAsset: (asset: Asset) => asset is SplAsset;
16
+ /**
17
+ * Type guard for a `Quote`. A quote carries its service discriminator on
18
+ * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.
19
+ */
20
+ declare const isQuote: (value: unknown) => value is Quote;
21
+ /**
22
+ * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its
23
+ * service discriminator on `type` (a valid `ServiceType`); a quote has neither.
24
+ */
25
+ declare const isTransfer: (value: unknown) => value is Transfer;
14
26
  //#endregion
15
- export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
27
+ export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer };
16
28
  //# sourceMappingURL=type-guards.d.cts.map
@@ -1,5 +1,7 @@
1
1
  import { Environment } from "./constants.js";
2
2
  import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.js";
3
+ import { Quote } from "./types/quote.js";
4
+ import { Transfer } from "./types/transfer.js";
3
5
  import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.js";
4
6
 
5
7
  //#region src/type-guards.d.ts
@@ -11,6 +13,16 @@ declare const isServiceInitializer: (initializer: unknown) => initializer is Ser
11
13
  declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
12
14
  declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
13
15
  declare const isSplAsset: (asset: Asset) => asset is SplAsset;
16
+ /**
17
+ * Type guard for a `Quote`. A quote carries its service discriminator on
18
+ * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.
19
+ */
20
+ declare const isQuote: (value: unknown) => value is Quote;
21
+ /**
22
+ * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its
23
+ * service discriminator on `type` (a valid `ServiceType`); a quote has neither.
24
+ */
25
+ declare const isTransfer: (value: unknown) => value is Transfer;
14
26
  //#endregion
15
- export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
27
+ export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer };
16
28
  //# sourceMappingURL=type-guards.d.ts.map
@@ -1,2 +1,2 @@
1
- import{EVM_SERVICE_TYPES as e,Environment as t,ServiceType as n,TokenType as r}from"./constants.js";const i=e=>typeof e==`string`&&Object.values(t).some(t=>t===e),a=t=>e.includes(t.type),o=e=>e.type===n.LOMBARD_BTC_TO_BTCB||e.type===n.LOMBARD_BTCB_TO_BTC,s=e=>e.type===n.MARKR,c=e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type),l=e=>e.type===r.ERC20,u=e=>e.type===r.NATIVE,d=e=>e.type===r.SPL;export{i as isEnvironment,l as isErc20Asset,a as isEvmBridgeInitializer,o as isLombardServiceInitializer,s as isMarkrServiceInitializer,u as isNativeAsset,c as isServiceInitializer,d as isSplAsset};
1
+ import{EVM_SERVICE_TYPES as e,Environment as t,ServiceType as n,TokenType as r}from"./constants.js";const i=e=>typeof e==`string`&&Object.values(t).some(t=>t===e),a=t=>e.includes(t.type),o=e=>e.type===n.LOMBARD_BTC_TO_BTCB||e.type===n.LOMBARD_BTCB_TO_BTC,s=e=>e.type===n.MARKR,c=e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type),l=e=>e.type===r.ERC20,u=e=>e.type===r.NATIVE,d=e=>e.type===r.SPL,f=e=>typeof e==`object`&&!!e&&`serviceType`in e&&typeof e.serviceType==`string`&&Object.values(n).some(t=>t===e.serviceType),p=e=>typeof e==`object`&&!!e&&`status`in e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type);export{i as isEnvironment,l as isErc20Asset,a as isEvmBridgeInitializer,o as isLombardServiceInitializer,s as isMarkrServiceInitializer,u as isNativeAsset,f as isQuote,c as isServiceInitializer,d as isSplAsset,p as isTransfer};
2
2
  //# sourceMappingURL=type-guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-guards.js","names":[],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"oGASA,MAAa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7B,EAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAAS,EAAY,qBAAuB,EAAY,OAAS,EAAY,oBAGrF,EAA6B,GACjC,EAAY,OAAS,EAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAAS,EAAU,MAC/E,EAAiB,GAAuC,EAAM,OAAS,EAAU,OACjF,EAAc,GAAoC,EAAM,OAAS,EAAU"}
1
+ {"version":3,"file":"type-guards.js","names":[],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type { Quote } from './types/quote';\nimport type { Transfer } from './types/transfer';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n\n/**\n * Type guard for a `Quote`. A quote carries its service discriminator on\n * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.\n */\nexport const isQuote = (value: unknown): value is Quote =>\n typeof value === 'object' &&\n value !== null &&\n 'serviceType' in value &&\n typeof value.serviceType === 'string' &&\n Object.values(ServiceType).some((t) => t === value.serviceType);\n\n/**\n * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its\n * service discriminator on `type` (a valid `ServiceType`); a quote has neither.\n */\nexport const isTransfer = (value: unknown): value is Transfer =>\n typeof value === 'object' &&\n value !== null &&\n 'status' in value &&\n 'type' in value &&\n typeof value.type === 'string' &&\n Object.values(ServiceType).some((t) => t === value.type);\n"],"mappings":"oGAWA,MAAa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7B,EAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAAS,EAAY,qBAAuB,EAAY,OAAS,EAAY,oBAGrF,EAA6B,GACjC,EAAY,OAAS,EAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAAS,EAAU,MAC/E,EAAiB,GAAuC,EAAM,OAAS,EAAU,OACjF,EAAc,GAAoC,EAAM,OAAS,EAAU,IAM3E,EAAW,GACtB,OAAO,GAAU,YACjB,GACA,gBAAiB,GACjB,OAAO,EAAM,aAAgB,UAC7B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAM,YAAY,CAMpD,EAAc,GACzB,OAAO,GAAU,YACjB,GACA,WAAY,GACZ,SAAU,GACV,OAAO,EAAM,MAAS,UACtB,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAM,KAAK"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@avalabs/fusion-sdk",
3
3
  "license": "Limited Ecosystem License",
4
- "version": "0.26.1",
4
+ "version": "0.27.0",
5
5
  "type": "module",
6
6
  "main": "./dist/mod.cjs",
7
7
  "module": "./dist/mod.js",