@avalabs/fusion-sdk 0.27.0 → 0.28.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 (57) hide show
  1. package/dist/constants.cjs +1 -1
  2. package/dist/constants.cjs.map +1 -1
  3. package/dist/constants.d.cts +32 -1
  4. package/dist/constants.d.ts +32 -1
  5. package/dist/constants.js +1 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/errors.cjs +1 -1
  8. package/dist/errors.cjs.map +1 -1
  9. package/dist/errors.d.cts +2 -0
  10. package/dist/errors.d.ts +2 -0
  11. package/dist/errors.js +1 -1
  12. package/dist/errors.js.map +1 -1
  13. package/dist/mod.cjs +1 -1
  14. package/dist/mod.d.cts +3 -2
  15. package/dist/mod.d.ts +3 -2
  16. package/dist/mod.js +1 -1
  17. package/dist/transfer-service/_evm-errors.cjs.map +1 -1
  18. package/dist/transfer-service/_evm-errors.js.map +1 -1
  19. package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.cjs +1 -1
  20. package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.js +1 -1
  21. package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.cjs +1 -1
  22. package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.js +1 -1
  23. package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.cjs +1 -1
  24. package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.js +1 -1
  25. package/dist/transfer-service/avalanche-cct/_utils/fees.cjs +1 -1
  26. package/dist/transfer-service/avalanche-cct/_utils/fees.js +1 -1
  27. package/dist/transfer-service/avalanche-cct/_utils/polling.cjs +1 -1
  28. package/dist/transfer-service/avalanche-cct/_utils/polling.js +1 -1
  29. package/dist/transfer-service/markr/_api.cjs +1 -1
  30. package/dist/transfer-service/markr/_api.js +1 -1
  31. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs +1 -1
  32. package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs.map +1 -1
  33. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js +1 -1
  34. package/dist/transfer-service/markr/_handlers/estimate-native-fee.js.map +1 -1
  35. package/dist/transfer-service/markr/_handlers/transfer-asset-hyperliquid-withdraw.cjs +1 -1
  36. package/dist/transfer-service/markr/_handlers/transfer-asset-hyperliquid-withdraw.js +1 -1
  37. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs +1 -1
  38. package/dist/transfer-service/markr/_handlers/transfer-asset.cjs.map +1 -1
  39. package/dist/transfer-service/markr/_handlers/transfer-asset.js +1 -1
  40. package/dist/transfer-service/markr/_handlers/transfer-asset.js.map +1 -1
  41. package/dist/transfer-service/markr/_hyperevm.cjs +2 -0
  42. package/dist/transfer-service/markr/_hyperevm.cjs.map +1 -0
  43. package/dist/transfer-service/markr/_hyperevm.js +2 -0
  44. package/dist/transfer-service/markr/_hyperevm.js.map +1 -0
  45. package/dist/transfer-service/markr/_hyperliquid-eip712.d.ts +1 -0
  46. package/dist/transfer-service/markr/_hyperliquid-l1-action.cjs +2 -0
  47. package/dist/transfer-service/markr/_hyperliquid-l1-action.cjs.map +1 -0
  48. package/dist/transfer-service/markr/_hyperliquid-l1-action.d.cts +60 -0
  49. package/dist/transfer-service/markr/_hyperliquid-l1-action.d.ts +60 -0
  50. package/dist/transfer-service/markr/_hyperliquid-l1-action.js +2 -0
  51. package/dist/transfer-service/markr/_hyperliquid-l1-action.js.map +1 -0
  52. package/dist/transfer-service/markr/_hyperliquid-schema.d.cts +8 -0
  53. package/dist/transfer-service/markr/_hyperliquid-schema.d.ts +10 -0
  54. package/dist/transfer-service/markr/_hyperliquid.d.ts +1 -0
  55. package/dist/transfer-service/markr/recurring/_api.cjs +1 -1
  56. package/dist/transfer-service/markr/recurring/_api.js +1 -1
  57. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["export enum ErrorCode {\n NOT_IMPLEMENTED = 5_000,\n SERVICE_NOT_AVAILABLE = 5_001,\n INITIALIZATION_FAILED = 5_002,\n INVALID_PARAMS = 5_003,\n TIMEOUT = 5_004,\n VIEM_ERROR = 5_005,\n TRANSACTION_REVERTED = 5_006,\n NOTARIZATION_FAILED = 5_007,\n SIGNING_FAILED = 5_008,\n SOLANA_ERROR = 5_009,\n /** Hyperliquid `withdrawable` dropped below the requested amount between authorize and sendAsset. */\n HL_WITHDRAWABLE_DROPPED = 5_010,\n /** Markr's `/swap` returned an `hyperliquid-withdraw` variant whose `protocolVersion` is unknown to this SDK release. */\n HL_UNSUPPORTED_PROTOCOL_VERSION = 5_011,\n /** Hyperliquid `/exchange` returned `{ status: \"err\" }`. */\n HL_EXCHANGE_REJECTED = 5_012,\n UNKNOWN = 5_999,\n}\n\nexport enum ErrorReason {\n /** the provided asset is not supported by the bridge */\n ASSET_NOT_SUPPORTED = 'ASSET_NOT_SUPPORTED',\n /** the provided source or target chain is not supported by the bridge */\n CHAIN_NOT_SUPPORTED = 'CHAIN_NOT_SUPPORTED',\n /** error while fetching or parsing the config */\n CONFIG_NOT_AVAILABLE = 'CONFIG_NOT_AVAILABLE',\n /** required confirmation count of the source or target chain is unknown */\n CONFIRMATION_COUNT_UNKNOWN = 'CONFIRMATION_COUNT_UNKNOWN',\n /** service is being initialized more than once */\n DUPLICATE_SERVICE_INITIALIZATION = 'DUPLICATE_SERVICE_INITIALIZATION',\n /** bridge does not support specified environment */\n ENVIRONMENT_NOT_SUPPORTED = 'ENVIRONMENT_NOT_SUPPORTED',\n /** provided source and target chains are the same */\n IDENTICAL_CHAINS_PROVIDED = 'IDENTICAL_CHAINS_PROVIDED',\n /** the sender or recipient address is incorrect */\n INCORRECT_ADDRESS_PROVIDED = 'INCORRECT_ADDRESS_PROVIDED',\n /** the transfer amount is incorrect (e.g.: lesser than or equal to zero) */\n INCORRECT_AMOUNT_PROVIDED = 'INCORRECT_AMOUNT_PROVIDED',\n /** the transaction is not hex */\n INCORRECT_HASH_PROVIDED = 'INCORRECT_HASH_PROVIDED',\n /** The provided provider is incorrect type (Provider VS BitcoinProvider) */\n INCORRECT_PROVIDER_PROVIDED = 'INCORRECT_PROVIDER_PROVIDED',\n /** The provided signer is incorrect type */\n INCORRECT_SIGNER_PROVIDED = 'INCORRECT_SIGNER_PROVIDED',\n /** the sourceTxHash or targetTxHash is incorrect */\n INCORRECT_TXHASH_PROVIDED = 'INCORRECT_TXHASH_PROVIDED',\n /** generic error with the params */\n INVALID_PARAMS = 'INVALID_PARAMS',\n /** ServiceType requested not available */\n SERVICE_TYPE_NOT_CONFIGURED = 'SERVICE_TYPE_NOT_CONFIGURED',\n /** generic, not specified error */\n UNKNOWN = 'UNKNOWN',\n /** error when the address has token approvals for addresses involved in the multichain incident */\n VULNERABLE_TOKEN_APPROVAL_ADDRESS = 'VULNERABLE_TOKEN_APPROVAL_ADDRESS',\n /** error when warden config was not found or it is over the mismatch threshold */\n WARDEN_CONFIG_MISMATCH = 'WARDEN_CONFIG_MISMATCH',\n /** fetched warden config does not contain network IDs */\n WARDEN_CONFIG_MISSING_NETWORK = 'WARDEN_CONFIG_MISSING_NETWORK',\n /** address is blocked */\n ADDRESS_IS_BLOCKED = 'ADDRESS_IS_BLOCKED',\n /** Quote expired */\n QUOTE_EXPIRED = 'QUOTE_EXPIRED',\n /**\n * The on-chain `WAVAX.deposit{value}()` transaction the SDK signed as the\n * first leg of a native-input recurring schedule was mined as reverted —\n * the user does not hold the wrapped balance the downstream `createOrder`\n * needs, so the schedule was not created.\n */\n NATIVE_WRAP_REVERTED = 'NATIVE_WRAP_REVERTED',\n /**\n * Markr's `/recurring/swap` response shape did not agree with the cached\n * quote's `tokenIn` — e.g. native input returned without a wrap step, an\n * ERC-20 input returned with one, or `createOrder` is missing entirely.\n * Signing the response as-is would broadcast a mismatched flow (charge\n * native the user didn't authorize, or skip a wrap they needed), so the\n * SDK refuses. See `details` on the thrown `SdkError` for which variant\n * fired.\n */\n RECURRING_SWAP_RESPONSE_INCONSISTENT = 'RECURRING_SWAP_RESPONSE_INCONSISTENT',\n}\n\nexport class SdkError extends Error {\n override name = 'SdkError';\n\n constructor(\n message: string,\n public code: ErrorCode,\n public options?: {\n cause?: unknown;\n details?: string;\n },\n ) {\n super(message, { cause: options?.cause });\n }\n\n walk(): Error;\n walk(fn: (err: unknown) => boolean): Error | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n walk(fn?: any): any {\n return walkError(this, fn);\n }\n}\n\nfunction walkError(err: unknown): unknown;\nfunction walkError(err: unknown, fn: (err: unknown) => boolean): unknown | null;\nfunction walkError(err: unknown, fn?: ((err: unknown) => boolean) | undefined): unknown | null;\nfunction walkError(err: unknown, fn?: ((err: unknown) => boolean) | undefined): unknown | null {\n if (fn?.(err)) {\n return err;\n }\n\n if (err && typeof err === 'object' && 'cause' in err && err.cause !== undefined) {\n return walkError(err.cause, fn);\n }\n\n return fn ? null : err;\n}\n\nexport function isSdkError(error: unknown): error is SdkError {\n return error instanceof SdkError;\n}\n\nexport class HttpError extends Error {\n override name = 'HttpError';\n\n readonly status: number;\n readonly statusText: string;\n readonly response: Response;\n readonly data?: unknown;\n\n constructor(message: string, response: Response, data?: unknown) {\n super(message);\n this.name = 'HttpError';\n this.status = response.status;\n this.statusText = response.statusText;\n this.response = response;\n this.data = data;\n }\n}\n\nexport function isHttpError(error: unknown): error is HttpError {\n return error instanceof HttpError;\n}\n\nexport class TimeoutError extends Error {\n override name = 'TimeoutError';\n\n constructor(message = 'Request timed out.') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError;\n}\n\nexport class AbortedError extends Error {\n override name = 'AbortedError';\n\n constructor(message = 'Operation was aborted.') {\n super(message);\n this.name = 'AbortedError';\n }\n}\n\nexport function isAbortedError(error: unknown): error is AbortedError {\n return error instanceof AbortedError;\n}\n\nexport class ResponseValidationError extends Error {\n override name = 'ResponseValidationError';\n\n readonly issues?: unknown;\n readonly rawResponse?: unknown;\n\n constructor(message = 'Response validation failed.', issues?: unknown, rawResponse?: unknown) {\n super(message);\n this.name = 'ResponseValidationError';\n this.issues = issues;\n this.rawResponse = rawResponse;\n }\n}\n\nexport function isResponseValidationError(error: unknown): error is ResponseValidationError {\n return error instanceof ResponseValidationError;\n}\n\nexport class ServiceInitializationError extends SdkError {\n override name = 'ServiceInitializationError';\n\n constructor(message: string = ErrorReason.UNKNOWN, details?: string, cause?: unknown) {\n super(message, ErrorCode.INITIALIZATION_FAILED, { cause, details });\n }\n}\n\nexport function isServiceInitializationError(error: unknown): error is ServiceInitializationError {\n return error instanceof ServiceInitializationError;\n}\n\nexport class ServiceUnavailableError extends SdkError {\n override name = 'ServiceUnavailableError';\n\n constructor(message: string = ErrorReason.UNKNOWN, details?: string) {\n super(message, ErrorCode.SERVICE_NOT_AVAILABLE, { details });\n }\n}\n\nexport function isServiceUnavailableError(error: unknown): error is ServiceUnavailableError {\n return error instanceof ServiceUnavailableError;\n}\n\nexport class InsufficientFundsError extends SdkError {\n override name = 'InsufficientFundsError';\n public insufficientTokenWasNative: boolean;\n\n constructor({\n cause,\n details,\n errorCode,\n insufficientTokenWasNative,\n }: {\n errorCode: ErrorCode.VIEM_ERROR | ErrorCode.SOLANA_ERROR;\n details?: string;\n cause?: unknown;\n insufficientTokenWasNative: boolean;\n }) {\n super(\n insufficientTokenWasNative\n ? 'Insufficient native funds to cover the fee.'\n : 'Insufficient token funds to estimate the fee.',\n errorCode,\n { cause, details },\n );\n this.insufficientTokenWasNative = insufficientTokenWasNative;\n }\n}\n\nexport function isInsufficientFundsError(error: unknown): error is InsufficientFundsError {\n return error instanceof InsufficientFundsError;\n}\n\nexport interface EstimateNativeFeeErrorDetails {\n /** Human-readable reason from `Error(string)` or `Panic(uint256)`. */\n reason?: string;\n /** Custom error name from the ABI, e.g. `\"SlippageTooHigh\"`. */\n errorName?: string;\n /** Decoded arguments from the custom error. */\n args?: readonly unknown[];\n /** Raw revert data (hex). */\n data?: `0x${string}`;\n}\n\nexport class EstimateNativeFeeError extends SdkError {\n override name = 'EstimateNativeFeeError';\n public details: EstimateNativeFeeErrorDetails | undefined;\n public tx: string | { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint };\n\n constructor({\n cause,\n details,\n errorCode,\n message = 'Failed to estimate native fee for quote.',\n tx,\n }: {\n cause?: unknown;\n details?: EstimateNativeFeeErrorDetails;\n errorCode: ErrorCode.VIEM_ERROR | ErrorCode.SOLANA_ERROR;\n message?: string;\n tx: string | { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint };\n }) {\n super(message, errorCode, { cause });\n this.details = details;\n this.tx = tx;\n }\n\n /**\n * Helper method to check if the error was caused by insufficient funds to cover the fee.\n * Note that this is a heuristic based on the error details and may not be 100% accurate in all cases.\n * Use with caution and consider inspecting the error details for more context.\n */\n public causedByInsufficientFunds(): boolean {\n return isInsufficientFundsError(this.cause);\n }\n}\n\nexport function isEstimateNativeFeeError(error: unknown): error is EstimateNativeFeeError {\n return error instanceof EstimateNativeFeeError;\n}\n\nexport class InvalidParamsError extends SdkError {\n override name = 'InvalidParamsError';\n\n constructor(message: string = ErrorReason.INVALID_PARAMS, details?: string) {\n super(message, ErrorCode.INVALID_PARAMS, { details });\n }\n}\n\nexport function isInvalidParamsError(error: unknown): error is InvalidParamsError {\n return error instanceof InvalidParamsError;\n}\n\n/**\n * @internal\n *\n * Error to indicate that a functionality has not yet been implemented.\n * Do not export from entrypoint.\n */\nexport class NotImplementedError extends SdkError {\n constructor() {\n super('This functionality is not yet implemented.', ErrorCode.NOT_IMPLEMENTED);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["export enum ErrorCode {\n NOT_IMPLEMENTED = 5_000,\n SERVICE_NOT_AVAILABLE = 5_001,\n INITIALIZATION_FAILED = 5_002,\n INVALID_PARAMS = 5_003,\n TIMEOUT = 5_004,\n VIEM_ERROR = 5_005,\n TRANSACTION_REVERTED = 5_006,\n NOTARIZATION_FAILED = 5_007,\n SIGNING_FAILED = 5_008,\n SOLANA_ERROR = 5_009,\n /** Hyperliquid `withdrawable` dropped below the requested amount between authorize and sendAsset. */\n HL_WITHDRAWABLE_DROPPED = 5_010,\n /** Markr's `/swap` returned an `hyperliquid-withdraw` variant whose `protocolVersion` is unknown to this SDK release. */\n HL_UNSUPPORTED_PROTOCOL_VERSION = 5_011,\n /** Hyperliquid `/exchange` returned `{ status: \"err\" }`. */\n HL_EXCHANGE_REJECTED = 5_012,\n /** Enabling HyperEVM big blocks (`evmUserModify`) failed or was rejected by Hyperliquid. */\n HL_BIG_BLOCKS_FAILED = 5_013,\n UNKNOWN = 5_999,\n}\n\nexport enum ErrorReason {\n /** the provided asset is not supported by the bridge */\n ASSET_NOT_SUPPORTED = 'ASSET_NOT_SUPPORTED',\n /** the provided source or target chain is not supported by the bridge */\n CHAIN_NOT_SUPPORTED = 'CHAIN_NOT_SUPPORTED',\n /** error while fetching or parsing the config */\n CONFIG_NOT_AVAILABLE = 'CONFIG_NOT_AVAILABLE',\n /** required confirmation count of the source or target chain is unknown */\n CONFIRMATION_COUNT_UNKNOWN = 'CONFIRMATION_COUNT_UNKNOWN',\n /** service is being initialized more than once */\n DUPLICATE_SERVICE_INITIALIZATION = 'DUPLICATE_SERVICE_INITIALIZATION',\n /** bridge does not support specified environment */\n ENVIRONMENT_NOT_SUPPORTED = 'ENVIRONMENT_NOT_SUPPORTED',\n /** provided source and target chains are the same */\n IDENTICAL_CHAINS_PROVIDED = 'IDENTICAL_CHAINS_PROVIDED',\n /** the sender or recipient address is incorrect */\n INCORRECT_ADDRESS_PROVIDED = 'INCORRECT_ADDRESS_PROVIDED',\n /** the transfer amount is incorrect (e.g.: lesser than or equal to zero) */\n INCORRECT_AMOUNT_PROVIDED = 'INCORRECT_AMOUNT_PROVIDED',\n /** the transaction is not hex */\n INCORRECT_HASH_PROVIDED = 'INCORRECT_HASH_PROVIDED',\n /** The provided provider is incorrect type (Provider VS BitcoinProvider) */\n INCORRECT_PROVIDER_PROVIDED = 'INCORRECT_PROVIDER_PROVIDED',\n /** The provided signer is incorrect type */\n INCORRECT_SIGNER_PROVIDED = 'INCORRECT_SIGNER_PROVIDED',\n /** the sourceTxHash or targetTxHash is incorrect */\n INCORRECT_TXHASH_PROVIDED = 'INCORRECT_TXHASH_PROVIDED',\n /** generic error with the params */\n INVALID_PARAMS = 'INVALID_PARAMS',\n /** ServiceType requested not available */\n SERVICE_TYPE_NOT_CONFIGURED = 'SERVICE_TYPE_NOT_CONFIGURED',\n /** generic, not specified error */\n UNKNOWN = 'UNKNOWN',\n /** error when the address has token approvals for addresses involved in the multichain incident */\n VULNERABLE_TOKEN_APPROVAL_ADDRESS = 'VULNERABLE_TOKEN_APPROVAL_ADDRESS',\n /** error when warden config was not found or it is over the mismatch threshold */\n WARDEN_CONFIG_MISMATCH = 'WARDEN_CONFIG_MISMATCH',\n /** fetched warden config does not contain network IDs */\n WARDEN_CONFIG_MISSING_NETWORK = 'WARDEN_CONFIG_MISSING_NETWORK',\n /** address is blocked */\n ADDRESS_IS_BLOCKED = 'ADDRESS_IS_BLOCKED',\n /** Quote expired */\n QUOTE_EXPIRED = 'QUOTE_EXPIRED',\n /**\n * The on-chain `WAVAX.deposit{value}()` transaction the SDK signed as the\n * first leg of a native-input recurring schedule was mined as reverted —\n * the user does not hold the wrapped balance the downstream `createOrder`\n * needs, so the schedule was not created.\n */\n NATIVE_WRAP_REVERTED = 'NATIVE_WRAP_REVERTED',\n /**\n * Markr's `/recurring/swap` response shape did not agree with the cached\n * quote's `tokenIn` — e.g. native input returned without a wrap step, an\n * ERC-20 input returned with one, or `createOrder` is missing entirely.\n * Signing the response as-is would broadcast a mismatched flow (charge\n * native the user didn't authorize, or skip a wrap they needed), so the\n * SDK refuses. See `details` on the thrown `SdkError` for which variant\n * fired.\n */\n RECURRING_SWAP_RESPONSE_INCONSISTENT = 'RECURRING_SWAP_RESPONSE_INCONSISTENT',\n}\n\nexport class SdkError extends Error {\n override name = 'SdkError';\n\n constructor(\n message: string,\n public code: ErrorCode,\n public options?: {\n cause?: unknown;\n details?: string;\n },\n ) {\n super(message, { cause: options?.cause });\n }\n\n walk(): Error;\n walk(fn: (err: unknown) => boolean): Error | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n walk(fn?: any): any {\n return walkError(this, fn);\n }\n}\n\nfunction walkError(err: unknown): unknown;\nfunction walkError(err: unknown, fn: (err: unknown) => boolean): unknown | null;\nfunction walkError(err: unknown, fn?: ((err: unknown) => boolean) | undefined): unknown | null;\nfunction walkError(err: unknown, fn?: ((err: unknown) => boolean) | undefined): unknown | null {\n if (fn?.(err)) {\n return err;\n }\n\n if (err && typeof err === 'object' && 'cause' in err && err.cause !== undefined) {\n return walkError(err.cause, fn);\n }\n\n return fn ? null : err;\n}\n\nexport function isSdkError(error: unknown): error is SdkError {\n return error instanceof SdkError;\n}\n\nexport class HttpError extends Error {\n override name = 'HttpError';\n\n readonly status: number;\n readonly statusText: string;\n readonly response: Response;\n readonly data?: unknown;\n\n constructor(message: string, response: Response, data?: unknown) {\n super(message);\n this.name = 'HttpError';\n this.status = response.status;\n this.statusText = response.statusText;\n this.response = response;\n this.data = data;\n }\n}\n\nexport function isHttpError(error: unknown): error is HttpError {\n return error instanceof HttpError;\n}\n\nexport class TimeoutError extends Error {\n override name = 'TimeoutError';\n\n constructor(message = 'Request timed out.') {\n super(message);\n this.name = 'TimeoutError';\n }\n}\n\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError;\n}\n\nexport class AbortedError extends Error {\n override name = 'AbortedError';\n\n constructor(message = 'Operation was aborted.') {\n super(message);\n this.name = 'AbortedError';\n }\n}\n\nexport function isAbortedError(error: unknown): error is AbortedError {\n return error instanceof AbortedError;\n}\n\nexport class ResponseValidationError extends Error {\n override name = 'ResponseValidationError';\n\n readonly issues?: unknown;\n readonly rawResponse?: unknown;\n\n constructor(message = 'Response validation failed.', issues?: unknown, rawResponse?: unknown) {\n super(message);\n this.name = 'ResponseValidationError';\n this.issues = issues;\n this.rawResponse = rawResponse;\n }\n}\n\nexport function isResponseValidationError(error: unknown): error is ResponseValidationError {\n return error instanceof ResponseValidationError;\n}\n\nexport class ServiceInitializationError extends SdkError {\n override name = 'ServiceInitializationError';\n\n constructor(message: string = ErrorReason.UNKNOWN, details?: string, cause?: unknown) {\n super(message, ErrorCode.INITIALIZATION_FAILED, { cause, details });\n }\n}\n\nexport function isServiceInitializationError(error: unknown): error is ServiceInitializationError {\n return error instanceof ServiceInitializationError;\n}\n\nexport class ServiceUnavailableError extends SdkError {\n override name = 'ServiceUnavailableError';\n\n constructor(message: string = ErrorReason.UNKNOWN, details?: string) {\n super(message, ErrorCode.SERVICE_NOT_AVAILABLE, { details });\n }\n}\n\nexport function isServiceUnavailableError(error: unknown): error is ServiceUnavailableError {\n return error instanceof ServiceUnavailableError;\n}\n\nexport class InsufficientFundsError extends SdkError {\n override name = 'InsufficientFundsError';\n public insufficientTokenWasNative: boolean;\n\n constructor({\n cause,\n details,\n errorCode,\n insufficientTokenWasNative,\n }: {\n errorCode: ErrorCode.VIEM_ERROR | ErrorCode.SOLANA_ERROR;\n details?: string;\n cause?: unknown;\n insufficientTokenWasNative: boolean;\n }) {\n super(\n insufficientTokenWasNative\n ? 'Insufficient native funds to cover the fee.'\n : 'Insufficient token funds to estimate the fee.',\n errorCode,\n { cause, details },\n );\n this.insufficientTokenWasNative = insufficientTokenWasNative;\n }\n}\n\nexport function isInsufficientFundsError(error: unknown): error is InsufficientFundsError {\n return error instanceof InsufficientFundsError;\n}\n\nexport interface EstimateNativeFeeErrorDetails {\n /** Human-readable reason from `Error(string)` or `Panic(uint256)`. */\n reason?: string;\n /** Custom error name from the ABI, e.g. `\"SlippageTooHigh\"`. */\n errorName?: string;\n /** Decoded arguments from the custom error. */\n args?: readonly unknown[];\n /** Raw revert data (hex). */\n data?: `0x${string}`;\n}\n\nexport class EstimateNativeFeeError extends SdkError {\n override name = 'EstimateNativeFeeError';\n public details: EstimateNativeFeeErrorDetails | undefined;\n public tx: string | { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint };\n\n constructor({\n cause,\n details,\n errorCode,\n message = 'Failed to estimate native fee for quote.',\n tx,\n }: {\n cause?: unknown;\n details?: EstimateNativeFeeErrorDetails;\n errorCode: ErrorCode.VIEM_ERROR | ErrorCode.SOLANA_ERROR;\n message?: string;\n tx: string | { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint };\n }) {\n super(message, errorCode, { cause });\n this.details = details;\n this.tx = tx;\n }\n\n /**\n * Helper method to check if the error was caused by insufficient funds to cover the fee.\n * Note that this is a heuristic based on the error details and may not be 100% accurate in all cases.\n * Use with caution and consider inspecting the error details for more context.\n */\n public causedByInsufficientFunds(): boolean {\n return isInsufficientFundsError(this.cause);\n }\n}\n\nexport function isEstimateNativeFeeError(error: unknown): error is EstimateNativeFeeError {\n return error instanceof EstimateNativeFeeError;\n}\n\nexport class InvalidParamsError extends SdkError {\n override name = 'InvalidParamsError';\n\n constructor(message: string = ErrorReason.INVALID_PARAMS, details?: string) {\n super(message, ErrorCode.INVALID_PARAMS, { details });\n }\n}\n\nexport function isInvalidParamsError(error: unknown): error is InvalidParamsError {\n return error instanceof InvalidParamsError;\n}\n\n/**\n * @internal\n *\n * Error to indicate that a functionality has not yet been implemented.\n * Do not export from entrypoint.\n */\nexport class NotImplementedError extends SdkError {\n constructor() {\n super('This functionality is not yet implemented.', ErrorCode.NOT_IMPLEMENTED);\n }\n}\n"],"mappings":"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"}
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/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;
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(`./transfer-service/markr/_hyperliquid-l1-action.cjs`),o=require(`./utils/bridgeable-assets.cjs`),s=require(`./utils/destination-chains.cjs`),c=require(`./utils/price-impact.cjs`),l=require(`./utils/transfer-utils.cjs`),u=require(`./transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs`),d=require(`./transfer-service/markr/recurring/types.cjs`),f=require(`./transfer-service/markr/recurring/_frequency.cjs`),p=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=p.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.HYPEREVM_BIG_BLOCK_GAS_LIMIT=e.HYPEREVM_BIG_BLOCK_GAS_LIMIT,exports.HYPEREVM_CHAIN_ID=e.HYPEREVM_CHAIN_ID,exports.HYPEREVM_SMALL_BLOCK_GAS_LIMIT=e.HYPEREVM_SMALL_BLOCK_GAS_LIMIT,exports.HttpError=t.HttpError,exports.HyperEvmChainIds=e.HyperEvmChainIds,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=d.RECURRING_FREQUENCY_UNITS,exports.RECURRING_FREQUENCY_VALUE_MAX=f.RECURRING_FREQUENCY_VALUE_MAX,exports.RECURRING_UNLIMITED_ORDERS_SENTINEL=d.RECURRING_UNLIMITED_ORDERS_SENTINEL,exports.RecurringEligibilityReason=d.RecurringEligibilityReason,exports.RecurringOrderStatus=d.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.buildEvmUserModifyAction=a.buildEvmUserModifyAction,exports.caip2ToEip155ChainId=i.caip2ToEip155ChainId,exports.caip2ToEip155HexChainId=i.caip2ToEip155HexChainId,exports.calculatePriceImpactFromQuote=c.calculatePriceImpactFromQuote,exports.compareDestinationChains=s.compareDestinationChains,exports.createTransferManager=r.createTransferManager,exports.dedupeBridgeableAssets=o.dedupeBridgeableAssets,exports.deriveIntervalSeconds=f.deriveIntervalSeconds,exports.eip155ChainIdToCaip2=i.eip155ChainIdToCaip2,exports.enableHyperEvmBigBlocks=a.enableHyperEvmBigBlocks,exports.getDestinationChainPriority=s.getDestinationChainPriority,exports.getRecoveredAtomicAmount=u.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=l.parseTransfer,exports.sortDestinationChains=s.sortDestinationChains,exports.splitCaip2ChainId=i.splitCaip2ChainId,exports.stringifyTransfer=l.stringifyTransfer,exports.validateFrequency=f.validateFrequency;
package/dist/mod.d.cts CHANGED
@@ -2,7 +2,7 @@ import { Caip10AccountId, Caip2ChainId } from "./types/caip.cjs";
2
2
  import { BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx } from "./types/bitcoin.cjs";
3
3
  import { Chain } from "./types/chain.cjs";
4
4
  import { FeeRateTier } from "./types/fee.cjs";
5
- import { 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, AvalancheBlockchainAlias, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, Blockchain, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, EthereumChainIds, EvmChainId, FEE_RATE_TIER_TO_BITCOIN, HyperliquidChainIds, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, PolygonChainIds, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, ServiceType, SolanaChainIds, TokenType, TransferSignatureReason } from "./constants.cjs";
5
+ import { 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, AvalancheBlockchainAlias, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, Blockchain, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, EthereumChainIds, EvmChainId, FEE_RATE_TIER_TO_BITCOIN, HYPEREVM_BIG_BLOCK_GAS_LIMIT, HYPEREVM_CHAIN_ID, HYPEREVM_SMALL_BLOCK_GAS_LIMIT, HyperEvmChainIds, HyperliquidChainIds, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, PolygonChainIds, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, ServiceType, SolanaChainIds, TokenType, TransferSignatureReason } from "./constants.cjs";
6
6
  import { Asset, AssetWithExtras, BridgeableAsset, BridgeableUiAsset, ChainAssetMap, DestinationInfo, Erc20Asset, NativeAsset, SplAsset, TransferableAsset } from "./types/asset.cjs";
7
7
  import { Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, ServiceQuoteEventArgs, ServiceQuoteEventHandler } from "./types/quote.cjs";
8
8
  import { ArrayElement, Brand, DeepMutable, Fetch, Mutable } from "./types/utility-types.cjs";
@@ -16,6 +16,7 @@ import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurri
16
16
  import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.cjs";
17
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
+ import { EnableHyperEvmBigBlocksParams, EvmUserModifyAction, buildEvmUserModifyAction, enableHyperEvmBigBlocks } from "./transfer-service/markr/_hyperliquid-l1-action.cjs";
19
20
  import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.cjs";
20
21
  import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.cjs";
21
22
  import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.cjs";
@@ -25,4 +26,4 @@ import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-r
25
26
  import { MarkrService } from "./transfer-service/markr/markr-service.cjs";
26
27
  import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.cjs";
27
28
  import { ApprovalRevertedError } from "./transfer-service/_evm-approval.cjs";
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 };
29
+ 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, type EnableHyperEvmBigBlocksParams, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, type EvmUserModifyAction, 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, HYPEREVM_BIG_BLOCK_GAS_LIMIT, HYPEREVM_CHAIN_ID, HYPEREVM_SMALL_BLOCK_GAS_LIMIT, Hex, HttpError, HyperEvmChainIds, 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, buildEvmUserModifyAction, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, enableHyperEvmBigBlocks, 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
@@ -2,7 +2,7 @@ import { Caip10AccountId, Caip2ChainId } from "./types/caip.js";
2
2
  import { BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx } from "./types/bitcoin.js";
3
3
  import { Chain } from "./types/chain.js";
4
4
  import { FeeRateTier } from "./types/fee.js";
5
- import { 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, AvalancheBlockchainAlias, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, Blockchain, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, EthereumChainIds, EvmChainId, FEE_RATE_TIER_TO_BITCOIN, HyperliquidChainIds, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, PolygonChainIds, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, ServiceType, SolanaChainIds, TokenType, TransferSignatureReason } from "./constants.js";
5
+ import { 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, AvalancheBlockchainAlias, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, Blockchain, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, EthereumChainIds, EvmChainId, FEE_RATE_TIER_TO_BITCOIN, HYPEREVM_BIG_BLOCK_GAS_LIMIT, HYPEREVM_CHAIN_ID, HYPEREVM_SMALL_BLOCK_GAS_LIMIT, HyperEvmChainIds, HyperliquidChainIds, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, PolygonChainIds, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, ServiceType, SolanaChainIds, TokenType, TransferSignatureReason } from "./constants.js";
6
6
  import { Asset, AssetWithExtras, BridgeableAsset, BridgeableUiAsset, ChainAssetMap, DestinationInfo, Erc20Asset, NativeAsset, SplAsset, TransferableAsset } from "./types/asset.js";
7
7
  import { Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, ServiceQuoteEventArgs, ServiceQuoteEventHandler } from "./types/quote.js";
8
8
  import { ArrayElement, Brand, DeepMutable, Fetch, Mutable } from "./types/utility-types.js";
@@ -16,6 +16,7 @@ import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurri
16
16
  import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.js";
17
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
+ import { EnableHyperEvmBigBlocksParams, EvmUserModifyAction, buildEvmUserModifyAction, enableHyperEvmBigBlocks } from "./transfer-service/markr/_hyperliquid-l1-action.js";
19
20
  import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.js";
20
21
  import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.js";
21
22
  import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.js";
@@ -25,4 +26,4 @@ import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-r
25
26
  import { MarkrService } from "./transfer-service/markr/markr-service.js";
26
27
  import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.js";
27
28
  import { ApprovalRevertedError } from "./transfer-service/_evm-approval.js";
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 };
29
+ 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, type EnableHyperEvmBigBlocksParams, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, type EvmUserModifyAction, 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, HYPEREVM_BIG_BLOCK_GAS_LIMIT, HYPEREVM_CHAIN_ID, HYPEREVM_SMALL_BLOCK_GAS_LIMIT, Hex, HttpError, HyperEvmChainIds, 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, buildEvmUserModifyAction, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, enableHyperEvmBigBlocks, 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,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
+ 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,HYPEREVM_BIG_BLOCK_GAS_LIMIT as E,HYPEREVM_CHAIN_ID as D,HYPEREVM_SMALL_BLOCK_GAS_LIMIT as O,HyperEvmChainIds as k,HyperliquidChainIds as A,NATIVE_AVAX as j,NATIVE_ETH as M,NATIVE_SOL_ADDRESS as N,PolygonChainIds as P,SOLANA_DEVNET_CHAIN as F,SOLANA_MAINNET_CHAIN as I,ServiceType as L,SolanaChainIds as R,TokenType as z,TransferSignatureReason as B}from"./constants.js";import{AbortedError as V,ErrorCode as H,ErrorReason as U,EstimateNativeFeeError as W,HttpError as G,InsufficientFundsError as K,InvalidParamsError as q,ResponseValidationError as J,SdkError as Y,ServiceInitializationError as X,ServiceUnavailableError as Z,TimeoutError as Q,isAbortedError as $,isEstimateNativeFeeError as ee,isHttpError as te,isInsufficientFundsError as ne,isInvalidParamsError as re,isResponseValidationError as ie,isSdkError as ae,isServiceInitializationError as oe,isServiceUnavailableError as se,isTimeoutError as ce}from"./errors.js";import{isEnvironment as le,isErc20Asset as ue,isEvmBridgeInitializer as de,isLombardServiceInitializer as fe,isMarkrServiceInitializer as pe,isNativeAsset as me,isQuote as he,isServiceInitializer as ge,isSplAsset as _e,isTransfer as ve}from"./type-guards.js";import{createTransferManager as ye}from"./transfer-manager.js";import{caip2ToEip155ChainId as be,caip2ToEip155HexChainId as xe,eip155ChainIdToCaip2 as Se,isCaip2ChainId as Ce,splitCaip2ChainId as we}from"./utils/caip.js";import{buildEvmUserModifyAction as Te,enableHyperEvmBigBlocks as Ee}from"./transfer-service/markr/_hyperliquid-l1-action.js";import{dedupeBridgeableAssets as De}from"./utils/bridgeable-assets.js";import{compareDestinationChains as Oe,getDestinationChainPriority as ke,sortDestinationChains as Ae}from"./utils/destination-chains.js";import{calculatePriceImpactFromQuote as je}from"./utils/price-impact.js";import{parseTransfer as Me,stringifyTransfer as Ne}from"./utils/transfer-utils.js";import{getRecoveredAtomicAmount as Pe}from"./transfer-service/avalanche-cct/get-recovered-atomic-amount.js";import{RECURRING_FREQUENCY_UNITS as Fe,RECURRING_UNLIMITED_ORDERS_SENTINEL as Ie,RecurringEligibilityReason as Le,RecurringOrderStatus as Re}from"./transfer-service/markr/recurring/types.js";import{RECURRING_FREQUENCY_VALUE_MAX as ze,deriveIntervalSeconds as Be,validateFrequency as Ve}from"./transfer-service/markr/recurring/_frequency.js";import{ApprovalRevertedError as He}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,V as AbortedError,He 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,H as ErrorCode,U as ErrorReason,W as EstimateNativeFeeError,C as EthereumChainIds,w as EvmChainId,T as FEE_RATE_TIER_TO_BITCOIN,E as HYPEREVM_BIG_BLOCK_GAS_LIMIT,D as HYPEREVM_CHAIN_ID,O as HYPEREVM_SMALL_BLOCK_GAS_LIMIT,G as HttpError,k as HyperEvmChainIds,A as HyperliquidChainIds,K as InsufficientFundsError,q as InvalidParamsError,j as NATIVE_AVAX,M as NATIVE_ETH,N as NATIVE_SOL_ADDRESS,P as PolygonChainIds,Fe as RECURRING_FREQUENCY_UNITS,ze as RECURRING_FREQUENCY_VALUE_MAX,Ie as RECURRING_UNLIMITED_ORDERS_SENTINEL,Le as RecurringEligibilityReason,Re as RecurringOrderStatus,J as ResponseValidationError,F as SOLANA_DEVNET_CHAIN,I as SOLANA_MAINNET_CHAIN,Y as SdkError,X as ServiceInitializationError,L as ServiceType,Z as ServiceUnavailableError,R as SolanaChainIds,Q as TimeoutError,z as TokenType,B as TransferSignatureReason,Te as buildEvmUserModifyAction,be as caip2ToEip155ChainId,xe as caip2ToEip155HexChainId,je as calculatePriceImpactFromQuote,Oe as compareDestinationChains,ye as createTransferManager,De as dedupeBridgeableAssets,Be as deriveIntervalSeconds,Se as eip155ChainIdToCaip2,Ee as enableHyperEvmBigBlocks,ke as getDestinationChainPriority,Pe as getRecoveredAtomicAmount,$ as isAbortedError,Ce as isCaip2ChainId,le as isEnvironment,ue as isErc20Asset,ee as isEstimateNativeFeeError,de as isEvmBridgeInitializer,te as isHttpError,ne as isInsufficientFundsError,re as isInvalidParamsError,fe as isLombardServiceInitializer,pe as isMarkrServiceInitializer,me as isNativeAsset,he as isQuote,ie as isResponseValidationError,ae as isSdkError,oe as isServiceInitializationError,ge as isServiceInitializer,se as isServiceUnavailableError,_e as isSplAsset,ce as isTimeoutError,ve as isTransfer,Me as parseTransfer,Ae as sortDestinationChains,we as splitCaip2ChainId,Ne as stringifyTransfer,Ve as validateFrequency};
@@ -1 +1 @@
1
- {"version":3,"file":"_evm-errors.cjs","names":["z","BaseError","EstimateNativeFeeError","InsufficientFundsError","ErrorCode"],"sources":["../../src/transfer-service/_evm-errors.ts"],"sourcesContent":["/**\n * @module\n * @internal\n *\n * Shared utility for EVM gas estimation with revert recovery.\n */\nimport { BaseError, decodeErrorResult, type Abi, type Hex } from 'viem';\nimport { z } from 'zod';\nimport {\n type EstimateNativeFeeErrorDetails,\n ErrorCode,\n EstimateNativeFeeError,\n InsufficientFundsError,\n} from '../errors';\n\nconst HexDataSchema = z.object({ data: z.string().startsWith('0x') as unknown as z.ZodType<Hex> });\nconst HexCauseSchema = z.object({ cause: HexDataSchema });\n\n/**\n * Safely parse a hex `data` field from an unknown value using zod.\n */\nfunction parseHexData(value: unknown): Hex | undefined {\n return HexDataSchema.safeParse(value).data?.data;\n}\n\n/**\n * Walk an error hierarchy and extract the first hex-encoded `data` field.\n */\nfunction extractRawHexData(error: unknown): Hex | undefined {\n if (error instanceof BaseError) {\n let found: Hex | undefined;\n error.walk((e) => {\n const parsed = parseHexData(e);\n if (!found && parsed) found = parsed;\n return false;\n });\n if (found) return found;\n }\n\n return parseHexData(error) ?? HexCauseSchema.safeParse(error).data?.cause.data;\n}\n\n/**\n * Extract revert data from an error and decode it best-effort against an ABI.\n *\n * Built-in `Error(string)` and `Panic(uint256)` are always decoded regardless\n * of the ABI provided — viem merges them automatically.\n */\nfunction extractRevertWithAbi(error: unknown, abi: Abi): EstimateNativeFeeErrorDetails | undefined {\n const raw = extractRawHexData(error);\n if (!raw || raw === '0x') return undefined;\n\n const result: EstimateNativeFeeErrorDetails = { data: raw };\n\n try {\n const decoded = decodeErrorResult({ abi, data: raw });\n result.errorName = decoded.errorName;\n if (decoded.args && decoded.args.length > 0) result.args = decoded.args;\n if (decoded.errorName === 'Error' && decoded.args?.[0] != null) {\n result.reason = String(decoded.args[0]);\n }\n } catch {\n // Couldn't decode — return raw data only\n }\n\n return result;\n}\n\n/**\n * Format revert data into a human-readable suffix for error detail strings.\n */\nfunction formatRevertSuffix(revert: EstimateNativeFeeErrorDetails): string | undefined {\n if (revert.reason) {\n return revert.reason;\n }\n\n if (revert.errorName) {\n const formattedArgs = revert.args && revert.args.length > 0 ? `(${revert.args.map(String).join(', ')})` : '()';\n return `${revert.errorName}${formattedArgs}`;\n }\n\n return undefined;\n}\n\nconst INSUFFICIENT_BALANCE_REGEX =\n /insuff(?:icient|icent).*?(?:balance|funds?)|(?:balance|funds?).*?insuff(?:icient|icent)|transfer amount exceeds balance/i;\nconst NATIVE_FUNDS_REGEX = /insufficient funds for gas|intrinsic transaction cost|fee cap/i;\n\n/**\n * Collect all readable error messages from an error chain.\n */\nfunction getErrorMessages(error: unknown): readonly string[] {\n const messages: string[] = [];\n const seen = new Set<unknown>();\n\n const visit = (value: unknown): void => {\n if (!value || seen.has(value)) {\n return;\n }\n\n seen.add(value);\n\n if (value instanceof BaseError) {\n value.walk((walked) => {\n if (walked instanceof Error && walked.message) {\n messages.push(walked.message);\n }\n return false;\n });\n } else if (value instanceof Error && value.message) {\n messages.push(value.message);\n }\n\n if (typeof value === 'object' && 'message' in value) {\n const maybeMessage = value.message;\n if (typeof maybeMessage === 'string' && maybeMessage.length > 0) {\n messages.push(maybeMessage);\n }\n }\n\n if (typeof value === 'object' && 'cause' in value) {\n visit(value.cause);\n }\n };\n\n visit(error);\n\n return messages;\n}\n\nfunction containsInsufficientBalanceText(value: string | undefined): boolean {\n return typeof value === 'string' && INSUFFICIENT_BALANCE_REGEX.test(value);\n}\n\nfunction containsNativeFundsText(value: string | undefined): boolean {\n return typeof value === 'string' && NATIVE_FUNDS_REGEX.test(value);\n}\n\nfunction isInsufficientBalanceFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsInsufficientBalanceText(details?.reason) || containsInsufficientBalanceText(details?.errorName)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsInsufficientBalanceText(message));\n}\n\nfunction isNativeFundsFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsNativeFundsText(details?.reason)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsNativeFundsText(message));\n}\n\n/** Minimal client interface for gas estimation with revert recovery. */\ninterface GasEstimationClient {\n estimateGas(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n }): Promise<bigint>;\n call(params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint }): Promise<unknown>;\n}\n\n/**\n * Estimate gas for a pre-encoded transaction, falling back to `eth_call`\n * to recover revert data when the RPC strips it from `eth_estimateGas`.\n *\n * The ABI is used **only** for best-effort error decoding on the failure\n * path — never for encoding or decoding calldata. Built-in `Error(string)`\n * and `Panic(uint256)` are always decoded regardless of the ABI.\n *\n * @throws {EstimateNativeFeeError} with structured {@link EstimateNativeFeeErrorDetails}\n * on failure. Zero overhead on the happy path.\n */\nexport async function estimateGasWithRevert(\n client: GasEstimationClient,\n params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint },\n abi: Abi,\n message: string,\n): Promise<bigint> {\n try {\n return await client.estimateGas(params);\n } catch (estimateError) {\n let details = extractRevertWithAbi(estimateError, abi);\n\n // If the RPC stripped revert data, use eth_call to recover it.\n if (!details?.reason && !details?.errorName) {\n try {\n await client.call(params);\n } catch (callError) {\n details = extractRevertWithAbi(callError, abi) ?? details;\n }\n }\n\n const suffix = details ? formatRevertSuffix(details) : undefined;\n const enrichedMessage = suffix ? `${message} Revert: ${suffix}.` : message;\n\n const cause = isInsufficientBalanceFailure(details, estimateError)\n ? new InsufficientFundsError({\n cause: estimateError,\n details: enrichedMessage,\n errorCode: ErrorCode.VIEM_ERROR,\n insufficientTokenWasNative: isNativeFundsFailure(details, estimateError),\n })\n : estimateError;\n\n throw new EstimateNativeFeeError({\n cause,\n details: details,\n errorCode: ErrorCode.VIEM_ERROR,\n message: enrichedMessage,\n tx: params,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"_evm-errors.cjs","names":["z","BaseError","EstimateNativeFeeError","InsufficientFundsError","ErrorCode"],"sources":["../../src/transfer-service/_evm-errors.ts"],"sourcesContent":["/**\n * @module\n * @internal\n *\n * Shared utility for EVM gas estimation with revert recovery.\n */\nimport { BaseError, decodeErrorResult, type Abi, type Hex } from 'viem';\nimport { z } from 'zod';\nimport {\n type EstimateNativeFeeErrorDetails,\n ErrorCode,\n EstimateNativeFeeError,\n InsufficientFundsError,\n} from '../errors';\n\nconst HexDataSchema = z.object({ data: z.string().startsWith('0x') as unknown as z.ZodType<Hex> });\nconst HexCauseSchema = z.object({ cause: HexDataSchema });\n\n/**\n * Safely parse a hex `data` field from an unknown value using zod.\n */\nfunction parseHexData(value: unknown): Hex | undefined {\n return HexDataSchema.safeParse(value).data?.data;\n}\n\n/**\n * Walk an error hierarchy and extract the first hex-encoded `data` field.\n */\nfunction extractRawHexData(error: unknown): Hex | undefined {\n if (error instanceof BaseError) {\n let found: Hex | undefined;\n error.walk((e) => {\n const parsed = parseHexData(e);\n if (!found && parsed) found = parsed;\n return false;\n });\n if (found) return found;\n }\n\n return parseHexData(error) ?? HexCauseSchema.safeParse(error).data?.cause.data;\n}\n\n/**\n * Extract revert data from an error and decode it best-effort against an ABI.\n *\n * Built-in `Error(string)` and `Panic(uint256)` are always decoded regardless\n * of the ABI provided — viem merges them automatically.\n */\nfunction extractRevertWithAbi(error: unknown, abi: Abi): EstimateNativeFeeErrorDetails | undefined {\n const raw = extractRawHexData(error);\n if (!raw || raw === '0x') return undefined;\n\n const result: EstimateNativeFeeErrorDetails = { data: raw };\n\n try {\n const decoded = decodeErrorResult({ abi, data: raw });\n result.errorName = decoded.errorName;\n if (decoded.args && decoded.args.length > 0) result.args = decoded.args;\n if (decoded.errorName === 'Error' && decoded.args?.[0] != null) {\n result.reason = String(decoded.args[0]);\n }\n } catch {\n // Couldn't decode — return raw data only\n }\n\n return result;\n}\n\n/**\n * Format revert data into a human-readable suffix for error detail strings.\n */\nfunction formatRevertSuffix(revert: EstimateNativeFeeErrorDetails): string | undefined {\n if (revert.reason) {\n return revert.reason;\n }\n\n if (revert.errorName) {\n const formattedArgs = revert.args && revert.args.length > 0 ? `(${revert.args.map(String).join(', ')})` : '()';\n return `${revert.errorName}${formattedArgs}`;\n }\n\n return undefined;\n}\n\nconst INSUFFICIENT_BALANCE_REGEX =\n /insuff(?:icient|icent).*?(?:balance|funds?)|(?:balance|funds?).*?insuff(?:icient|icent)|transfer amount exceeds balance/i;\nconst NATIVE_FUNDS_REGEX = /insufficient funds for gas|intrinsic transaction cost|fee cap/i;\n\n/**\n * Collect all readable error messages from an error chain.\n */\nfunction getErrorMessages(error: unknown): readonly string[] {\n const messages: string[] = [];\n const seen = new Set<unknown>();\n\n const visit = (value: unknown): void => {\n if (!value || seen.has(value)) {\n return;\n }\n\n seen.add(value);\n\n if (value instanceof BaseError) {\n value.walk((walked) => {\n if (walked instanceof Error && walked.message) {\n messages.push(walked.message);\n }\n return false;\n });\n } else if (value instanceof Error && value.message) {\n messages.push(value.message);\n }\n\n if (typeof value === 'object' && 'message' in value) {\n const maybeMessage = value.message;\n if (typeof maybeMessage === 'string' && maybeMessage.length > 0) {\n messages.push(maybeMessage);\n }\n }\n\n if (typeof value === 'object' && 'cause' in value) {\n visit(value.cause);\n }\n };\n\n visit(error);\n\n return messages;\n}\n\nfunction containsInsufficientBalanceText(value: string | undefined): boolean {\n return typeof value === 'string' && INSUFFICIENT_BALANCE_REGEX.test(value);\n}\n\nfunction containsNativeFundsText(value: string | undefined): boolean {\n return typeof value === 'string' && NATIVE_FUNDS_REGEX.test(value);\n}\n\nfunction isInsufficientBalanceFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsInsufficientBalanceText(details?.reason) || containsInsufficientBalanceText(details?.errorName)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsInsufficientBalanceText(message));\n}\n\nfunction isNativeFundsFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsNativeFundsText(details?.reason)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsNativeFundsText(message));\n}\n\n/** Minimal client interface for gas estimation with revert recovery. */\ninterface GasEstimationClient {\n estimateGas(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n /** Gas limit for `eth_estimateGas` (JSON-RPC `gas` field). */\n gas?: bigint;\n }): Promise<bigint>;\n call(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n /** Gas limit for `eth_call` (JSON-RPC `gas` field). */\n gas?: bigint;\n }): Promise<unknown>;\n}\n\n/**\n * Estimate gas for a pre-encoded transaction, falling back to `eth_call`\n * to recover revert data when the RPC strips it from `eth_estimateGas`.\n *\n * The ABI is used **only** for best-effort error decoding on the failure\n * path — never for encoding or decoding calldata. Built-in `Error(string)`\n * and `Panic(uint256)` are always decoded regardless of the ABI.\n *\n * @throws {EstimateNativeFeeError} with structured {@link EstimateNativeFeeErrorDetails}\n * on failure. Zero overhead on the happy path.\n */\nexport async function estimateGasWithRevert(\n client: GasEstimationClient,\n params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint; gas?: bigint },\n abi: Abi,\n message: string,\n): Promise<bigint> {\n try {\n return await client.estimateGas(params);\n } catch (estimateError) {\n let details = extractRevertWithAbi(estimateError, abi);\n\n // If the RPC stripped revert data, use eth_call to recover it.\n if (!details?.reason && !details?.errorName) {\n try {\n await client.call(params);\n } catch (callError) {\n details = extractRevertWithAbi(callError, abi) ?? details;\n }\n }\n\n const suffix = details ? formatRevertSuffix(details) : undefined;\n const enrichedMessage = suffix ? `${message} Revert: ${suffix}.` : message;\n\n const cause = isInsufficientBalanceFailure(details, estimateError)\n ? new InsufficientFundsError({\n cause: estimateError,\n details: enrichedMessage,\n errorCode: ErrorCode.VIEM_ERROR,\n insufficientTokenWasNative: isNativeFundsFailure(details, estimateError),\n })\n : estimateError;\n\n throw new EstimateNativeFeeError({\n cause,\n details: details,\n errorCode: ErrorCode.VIEM_ERROR,\n message: enrichedMessage,\n tx: params,\n });\n }\n}\n"],"mappings":"qHAeA,MAAM,EAAgBA,EAAAA,EAAE,OAAO,CAAE,KAAMA,EAAAA,EAAE,QAAQ,CAAC,WAAW,KAAK,CAA+B,CAAC,CAC5F,EAAiBA,EAAAA,EAAE,OAAO,CAAE,MAAO,EAAe,CAAC,CAKzD,SAAS,EAAa,EAAiC,CACrD,OAAO,EAAc,UAAU,EAAM,CAAC,MAAM,KAM9C,SAAS,EAAkB,EAAiC,CAC1D,GAAI,aAAiBC,EAAAA,UAAW,CAC9B,IAAI,EAMJ,GALA,EAAM,KAAM,GAAM,CAChB,IAAM,EAAS,EAAa,EAAE,CAE9B,MADI,CAAC,GAAS,IAAQ,EAAQ,GACvB,IACP,CACE,EAAO,OAAO,EAGpB,OAAO,EAAa,EAAM,EAAI,EAAe,UAAU,EAAM,CAAC,MAAM,MAAM,KAS5E,SAAS,EAAqB,EAAgB,EAAqD,CACjG,IAAM,EAAM,EAAkB,EAAM,CACpC,GAAI,CAAC,GAAO,IAAQ,KAAM,OAE1B,IAAM,EAAwC,CAAE,KAAM,EAAK,CAE3D,GAAI,CACF,IAAM,GAAA,EAAA,EAAA,mBAA4B,CAAE,MAAK,KAAM,EAAK,CAAC,CACrD,EAAO,UAAY,EAAQ,UACvB,EAAQ,MAAQ,EAAQ,KAAK,OAAS,IAAG,EAAO,KAAO,EAAQ,MAC/D,EAAQ,YAAc,SAAW,EAAQ,OAAO,IAAM,OACxD,EAAO,OAAS,OAAO,EAAQ,KAAK,GAAG,OAEnC,EAIR,OAAO,EAMT,SAAS,EAAmB,EAA2D,CACrF,GAAI,EAAO,OACT,OAAO,EAAO,OAGhB,GAAI,EAAO,UAAW,CACpB,IAAM,EAAgB,EAAO,MAAQ,EAAO,KAAK,OAAS,EAAI,IAAI,EAAO,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,GAAK,KAC1G,MAAO,GAAG,EAAO,YAAY,KAMjC,MAAM,EACJ,2HACI,EAAqB,iEAK3B,SAAS,EAAiB,EAAmC,CAC3D,IAAM,EAAqB,EAAE,CACvB,EAAO,IAAI,IAEX,EAAS,GAAyB,CAClC,MAAC,GAAS,EAAK,IAAI,EAAM,EAiB7B,IAbA,EAAK,IAAI,EAAM,CAEX,aAAiBA,EAAAA,UACnB,EAAM,KAAM,IACN,aAAkB,OAAS,EAAO,SACpC,EAAS,KAAK,EAAO,QAAQ,CAExB,IACP,CACO,aAAiB,OAAS,EAAM,SACzC,EAAS,KAAK,EAAM,QAAQ,CAG1B,OAAO,GAAU,UAAY,YAAa,EAAO,CACnD,IAAM,EAAe,EAAM,QACvB,OAAO,GAAiB,UAAY,EAAa,OAAS,GAC5D,EAAS,KAAK,EAAa,CAI3B,OAAO,GAAU,UAAY,UAAW,GAC1C,EAAM,EAAM,MAAM,GAMtB,OAFA,EAAM,EAAM,CAEL,EAGT,SAAS,EAAgC,EAAoC,CAC3E,OAAO,OAAO,GAAU,UAAY,EAA2B,KAAK,EAAM,CAG5E,SAAS,EAAwB,EAAoC,CACnE,OAAO,OAAO,GAAU,UAAY,EAAmB,KAAK,EAAM,CAGpE,SAAS,EAA6B,EAAoD,EAAyB,CAKjH,OAJI,EAAgC,GAAS,OAAO,EAAI,EAAgC,GAAS,UAAU,CAClG,GAGF,EAAiB,EAAM,CAAC,KAAM,GAAY,EAAgC,EAAQ,CAAC,CAG5F,SAAS,EAAqB,EAAoD,EAAyB,CAKzG,OAJI,EAAwB,GAAS,OAAO,CACnC,GAGF,EAAiB,EAAM,CAAC,KAAM,GAAY,EAAwB,EAAQ,CAAC,CAkCpF,eAAsB,EACpB,EACA,EACA,EACA,EACiB,CACjB,GAAI,CACF,OAAO,MAAM,EAAO,YAAY,EAAO,OAChC,EAAe,CACtB,IAAI,EAAU,EAAqB,EAAe,EAAI,CAGtD,GAAI,CAAC,GAAS,QAAU,CAAC,GAAS,UAChC,GAAI,CACF,MAAM,EAAO,KAAK,EAAO,OAClB,EAAW,CAClB,EAAU,EAAqB,EAAW,EAAI,EAAI,EAItD,IAAM,EAAS,EAAU,EAAmB,EAAQ,CAAG,IAAA,GACjD,EAAkB,EAAS,GAAG,EAAQ,WAAW,EAAO,GAAK,EAWnE,MAAM,IAAIC,EAAAA,uBAAuB,CAC/B,MAVY,EAA6B,EAAS,EAAc,CAC9D,IAAIC,EAAAA,uBAAuB,CACzB,MAAO,EACP,QAAS,EACT,UAAWC,EAAAA,UAAU,WACrB,2BAA4B,EAAqB,EAAS,EAAc,CACzE,CAAC,CACF,EAIO,UACT,UAAWA,EAAAA,UAAU,WACrB,QAAS,EACT,GAAI,EACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"_evm-errors.js","names":[],"sources":["../../src/transfer-service/_evm-errors.ts"],"sourcesContent":["/**\n * @module\n * @internal\n *\n * Shared utility for EVM gas estimation with revert recovery.\n */\nimport { BaseError, decodeErrorResult, type Abi, type Hex } from 'viem';\nimport { z } from 'zod';\nimport {\n type EstimateNativeFeeErrorDetails,\n ErrorCode,\n EstimateNativeFeeError,\n InsufficientFundsError,\n} from '../errors';\n\nconst HexDataSchema = z.object({ data: z.string().startsWith('0x') as unknown as z.ZodType<Hex> });\nconst HexCauseSchema = z.object({ cause: HexDataSchema });\n\n/**\n * Safely parse a hex `data` field from an unknown value using zod.\n */\nfunction parseHexData(value: unknown): Hex | undefined {\n return HexDataSchema.safeParse(value).data?.data;\n}\n\n/**\n * Walk an error hierarchy and extract the first hex-encoded `data` field.\n */\nfunction extractRawHexData(error: unknown): Hex | undefined {\n if (error instanceof BaseError) {\n let found: Hex | undefined;\n error.walk((e) => {\n const parsed = parseHexData(e);\n if (!found && parsed) found = parsed;\n return false;\n });\n if (found) return found;\n }\n\n return parseHexData(error) ?? HexCauseSchema.safeParse(error).data?.cause.data;\n}\n\n/**\n * Extract revert data from an error and decode it best-effort against an ABI.\n *\n * Built-in `Error(string)` and `Panic(uint256)` are always decoded regardless\n * of the ABI provided — viem merges them automatically.\n */\nfunction extractRevertWithAbi(error: unknown, abi: Abi): EstimateNativeFeeErrorDetails | undefined {\n const raw = extractRawHexData(error);\n if (!raw || raw === '0x') return undefined;\n\n const result: EstimateNativeFeeErrorDetails = { data: raw };\n\n try {\n const decoded = decodeErrorResult({ abi, data: raw });\n result.errorName = decoded.errorName;\n if (decoded.args && decoded.args.length > 0) result.args = decoded.args;\n if (decoded.errorName === 'Error' && decoded.args?.[0] != null) {\n result.reason = String(decoded.args[0]);\n }\n } catch {\n // Couldn't decode — return raw data only\n }\n\n return result;\n}\n\n/**\n * Format revert data into a human-readable suffix for error detail strings.\n */\nfunction formatRevertSuffix(revert: EstimateNativeFeeErrorDetails): string | undefined {\n if (revert.reason) {\n return revert.reason;\n }\n\n if (revert.errorName) {\n const formattedArgs = revert.args && revert.args.length > 0 ? `(${revert.args.map(String).join(', ')})` : '()';\n return `${revert.errorName}${formattedArgs}`;\n }\n\n return undefined;\n}\n\nconst INSUFFICIENT_BALANCE_REGEX =\n /insuff(?:icient|icent).*?(?:balance|funds?)|(?:balance|funds?).*?insuff(?:icient|icent)|transfer amount exceeds balance/i;\nconst NATIVE_FUNDS_REGEX = /insufficient funds for gas|intrinsic transaction cost|fee cap/i;\n\n/**\n * Collect all readable error messages from an error chain.\n */\nfunction getErrorMessages(error: unknown): readonly string[] {\n const messages: string[] = [];\n const seen = new Set<unknown>();\n\n const visit = (value: unknown): void => {\n if (!value || seen.has(value)) {\n return;\n }\n\n seen.add(value);\n\n if (value instanceof BaseError) {\n value.walk((walked) => {\n if (walked instanceof Error && walked.message) {\n messages.push(walked.message);\n }\n return false;\n });\n } else if (value instanceof Error && value.message) {\n messages.push(value.message);\n }\n\n if (typeof value === 'object' && 'message' in value) {\n const maybeMessage = value.message;\n if (typeof maybeMessage === 'string' && maybeMessage.length > 0) {\n messages.push(maybeMessage);\n }\n }\n\n if (typeof value === 'object' && 'cause' in value) {\n visit(value.cause);\n }\n };\n\n visit(error);\n\n return messages;\n}\n\nfunction containsInsufficientBalanceText(value: string | undefined): boolean {\n return typeof value === 'string' && INSUFFICIENT_BALANCE_REGEX.test(value);\n}\n\nfunction containsNativeFundsText(value: string | undefined): boolean {\n return typeof value === 'string' && NATIVE_FUNDS_REGEX.test(value);\n}\n\nfunction isInsufficientBalanceFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsInsufficientBalanceText(details?.reason) || containsInsufficientBalanceText(details?.errorName)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsInsufficientBalanceText(message));\n}\n\nfunction isNativeFundsFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsNativeFundsText(details?.reason)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsNativeFundsText(message));\n}\n\n/** Minimal client interface for gas estimation with revert recovery. */\ninterface GasEstimationClient {\n estimateGas(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n }): Promise<bigint>;\n call(params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint }): Promise<unknown>;\n}\n\n/**\n * Estimate gas for a pre-encoded transaction, falling back to `eth_call`\n * to recover revert data when the RPC strips it from `eth_estimateGas`.\n *\n * The ABI is used **only** for best-effort error decoding on the failure\n * path — never for encoding or decoding calldata. Built-in `Error(string)`\n * and `Panic(uint256)` are always decoded regardless of the ABI.\n *\n * @throws {EstimateNativeFeeError} with structured {@link EstimateNativeFeeErrorDetails}\n * on failure. Zero overhead on the happy path.\n */\nexport async function estimateGasWithRevert(\n client: GasEstimationClient,\n params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint },\n abi: Abi,\n message: string,\n): Promise<bigint> {\n try {\n return await client.estimateGas(params);\n } catch (estimateError) {\n let details = extractRevertWithAbi(estimateError, abi);\n\n // If the RPC stripped revert data, use eth_call to recover it.\n if (!details?.reason && !details?.errorName) {\n try {\n await client.call(params);\n } catch (callError) {\n details = extractRevertWithAbi(callError, abi) ?? details;\n }\n }\n\n const suffix = details ? formatRevertSuffix(details) : undefined;\n const enrichedMessage = suffix ? `${message} Revert: ${suffix}.` : message;\n\n const cause = isInsufficientBalanceFailure(details, estimateError)\n ? new InsufficientFundsError({\n cause: estimateError,\n details: enrichedMessage,\n errorCode: ErrorCode.VIEM_ERROR,\n insufficientTokenWasNative: isNativeFundsFailure(details, estimateError),\n })\n : estimateError;\n\n throw new EstimateNativeFeeError({\n cause,\n details: details,\n errorCode: ErrorCode.VIEM_ERROR,\n message: enrichedMessage,\n tx: params,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"_evm-errors.js","names":[],"sources":["../../src/transfer-service/_evm-errors.ts"],"sourcesContent":["/**\n * @module\n * @internal\n *\n * Shared utility for EVM gas estimation with revert recovery.\n */\nimport { BaseError, decodeErrorResult, type Abi, type Hex } from 'viem';\nimport { z } from 'zod';\nimport {\n type EstimateNativeFeeErrorDetails,\n ErrorCode,\n EstimateNativeFeeError,\n InsufficientFundsError,\n} from '../errors';\n\nconst HexDataSchema = z.object({ data: z.string().startsWith('0x') as unknown as z.ZodType<Hex> });\nconst HexCauseSchema = z.object({ cause: HexDataSchema });\n\n/**\n * Safely parse a hex `data` field from an unknown value using zod.\n */\nfunction parseHexData(value: unknown): Hex | undefined {\n return HexDataSchema.safeParse(value).data?.data;\n}\n\n/**\n * Walk an error hierarchy and extract the first hex-encoded `data` field.\n */\nfunction extractRawHexData(error: unknown): Hex | undefined {\n if (error instanceof BaseError) {\n let found: Hex | undefined;\n error.walk((e) => {\n const parsed = parseHexData(e);\n if (!found && parsed) found = parsed;\n return false;\n });\n if (found) return found;\n }\n\n return parseHexData(error) ?? HexCauseSchema.safeParse(error).data?.cause.data;\n}\n\n/**\n * Extract revert data from an error and decode it best-effort against an ABI.\n *\n * Built-in `Error(string)` and `Panic(uint256)` are always decoded regardless\n * of the ABI provided — viem merges them automatically.\n */\nfunction extractRevertWithAbi(error: unknown, abi: Abi): EstimateNativeFeeErrorDetails | undefined {\n const raw = extractRawHexData(error);\n if (!raw || raw === '0x') return undefined;\n\n const result: EstimateNativeFeeErrorDetails = { data: raw };\n\n try {\n const decoded = decodeErrorResult({ abi, data: raw });\n result.errorName = decoded.errorName;\n if (decoded.args && decoded.args.length > 0) result.args = decoded.args;\n if (decoded.errorName === 'Error' && decoded.args?.[0] != null) {\n result.reason = String(decoded.args[0]);\n }\n } catch {\n // Couldn't decode — return raw data only\n }\n\n return result;\n}\n\n/**\n * Format revert data into a human-readable suffix for error detail strings.\n */\nfunction formatRevertSuffix(revert: EstimateNativeFeeErrorDetails): string | undefined {\n if (revert.reason) {\n return revert.reason;\n }\n\n if (revert.errorName) {\n const formattedArgs = revert.args && revert.args.length > 0 ? `(${revert.args.map(String).join(', ')})` : '()';\n return `${revert.errorName}${formattedArgs}`;\n }\n\n return undefined;\n}\n\nconst INSUFFICIENT_BALANCE_REGEX =\n /insuff(?:icient|icent).*?(?:balance|funds?)|(?:balance|funds?).*?insuff(?:icient|icent)|transfer amount exceeds balance/i;\nconst NATIVE_FUNDS_REGEX = /insufficient funds for gas|intrinsic transaction cost|fee cap/i;\n\n/**\n * Collect all readable error messages from an error chain.\n */\nfunction getErrorMessages(error: unknown): readonly string[] {\n const messages: string[] = [];\n const seen = new Set<unknown>();\n\n const visit = (value: unknown): void => {\n if (!value || seen.has(value)) {\n return;\n }\n\n seen.add(value);\n\n if (value instanceof BaseError) {\n value.walk((walked) => {\n if (walked instanceof Error && walked.message) {\n messages.push(walked.message);\n }\n return false;\n });\n } else if (value instanceof Error && value.message) {\n messages.push(value.message);\n }\n\n if (typeof value === 'object' && 'message' in value) {\n const maybeMessage = value.message;\n if (typeof maybeMessage === 'string' && maybeMessage.length > 0) {\n messages.push(maybeMessage);\n }\n }\n\n if (typeof value === 'object' && 'cause' in value) {\n visit(value.cause);\n }\n };\n\n visit(error);\n\n return messages;\n}\n\nfunction containsInsufficientBalanceText(value: string | undefined): boolean {\n return typeof value === 'string' && INSUFFICIENT_BALANCE_REGEX.test(value);\n}\n\nfunction containsNativeFundsText(value: string | undefined): boolean {\n return typeof value === 'string' && NATIVE_FUNDS_REGEX.test(value);\n}\n\nfunction isInsufficientBalanceFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsInsufficientBalanceText(details?.reason) || containsInsufficientBalanceText(details?.errorName)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsInsufficientBalanceText(message));\n}\n\nfunction isNativeFundsFailure(details: EstimateNativeFeeErrorDetails | undefined, error: unknown): boolean {\n if (containsNativeFundsText(details?.reason)) {\n return true;\n }\n\n return getErrorMessages(error).some((message) => containsNativeFundsText(message));\n}\n\n/** Minimal client interface for gas estimation with revert recovery. */\ninterface GasEstimationClient {\n estimateGas(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n /** Gas limit for `eth_estimateGas` (JSON-RPC `gas` field). */\n gas?: bigint;\n }): Promise<bigint>;\n call(params: {\n account: `0x${string}`;\n to: `0x${string}`;\n data: `0x${string}`;\n value?: bigint;\n /** Gas limit for `eth_call` (JSON-RPC `gas` field). */\n gas?: bigint;\n }): Promise<unknown>;\n}\n\n/**\n * Estimate gas for a pre-encoded transaction, falling back to `eth_call`\n * to recover revert data when the RPC strips it from `eth_estimateGas`.\n *\n * The ABI is used **only** for best-effort error decoding on the failure\n * path — never for encoding or decoding calldata. Built-in `Error(string)`\n * and `Panic(uint256)` are always decoded regardless of the ABI.\n *\n * @throws {EstimateNativeFeeError} with structured {@link EstimateNativeFeeErrorDetails}\n * on failure. Zero overhead on the happy path.\n */\nexport async function estimateGasWithRevert(\n client: GasEstimationClient,\n params: { account: `0x${string}`; to: `0x${string}`; data: `0x${string}`; value?: bigint; gas?: bigint },\n abi: Abi,\n message: string,\n): Promise<bigint> {\n try {\n return await client.estimateGas(params);\n } catch (estimateError) {\n let details = extractRevertWithAbi(estimateError, abi);\n\n // If the RPC stripped revert data, use eth_call to recover it.\n if (!details?.reason && !details?.errorName) {\n try {\n await client.call(params);\n } catch (callError) {\n details = extractRevertWithAbi(callError, abi) ?? details;\n }\n }\n\n const suffix = details ? formatRevertSuffix(details) : undefined;\n const enrichedMessage = suffix ? `${message} Revert: ${suffix}.` : message;\n\n const cause = isInsufficientBalanceFailure(details, estimateError)\n ? new InsufficientFundsError({\n cause: estimateError,\n details: enrichedMessage,\n errorCode: ErrorCode.VIEM_ERROR,\n insufficientTokenWasNative: isNativeFundsFailure(details, estimateError),\n })\n : estimateError;\n\n throw new EstimateNativeFeeError({\n cause,\n details: details,\n errorCode: ErrorCode.VIEM_ERROR,\n message: enrichedMessage,\n tx: params,\n });\n }\n}\n"],"mappings":"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"}
@@ -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=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;
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;
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{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};
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};
2
2
  //# sourceMappingURL=estimate-native-fee.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: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;
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;
2
2
  //# sourceMappingURL=track-transfer.cjs.map
@@ -1,2 +1,2 @@
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};
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};
2
2
  //# sourceMappingURL=track-transfer.js.map
@@ -1,2 +1,2 @@
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;
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;
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{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};
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};
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(`../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;
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;
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{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};
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};
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(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;
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;
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{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};
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};
2
2
  //# sourceMappingURL=polling.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`../../errors.cjs`),t=require(`./_schema.cjs`),n=require(`../fetch-utilities.cjs`);function r(e){if(e)return{Authorization:`Bearer ${e}`}}async function i({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/chains`,c=await n.fetchJson(n.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=t.SupportedChainsResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function a({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/tokens/${s}/list`,l=await n.fetchJson(n.combineUrlPathnames(i,c),{headers:r(a),fetch:o}),u=t.TokenListResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function o({apiBaseUrl:i,apiToken:a,fetch:o},s,{onDone:c,onError:l,onQuote:u,signal:d}){let f=`/quote`,p=n.combineUrlPathnames(i,f),m=[];try{for await(let i of n.fetchEventStream(p,{body:JSON.stringify(s),fetch:o,headers:r(a),signal:d})){let n=t.QuoteResponseSchema.safeParse(JSON.parse(i.data));if(!n.success){l(new e.ResponseValidationError(`Invalid quote data received from Markr "${f}" endpoint.`,n.error.issues));continue}`done`in n.data?c():(u(n.data),m.push(n.data))}}catch(e){e instanceof Error?l(e):l(Error(`An unknown error occurred during the quote stream.`,{cause:e})),c()}return m}async function s({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/swap`,l=await n.fetchJson(n.combineUrlPathnames(i,c),{body:JSON.stringify(s),fetch:o,headers:r(a),method:`POST`}),u=t.SwapResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function c({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/partner`,c=await n.fetchJson(n.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=t.PartnerInfoResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function l({apiBaseUrl:i,apiToken:a,fetch:o},s,{signal:c}={}){let l=`/cross-chain/status/${s}`,u=await n.fetchJson(n.combineUrlPathnames(i,l),{headers:r(a),fetch:o,retries:10,retryOn(t){let n=(t.init.method??`GET`).toUpperCase();if(![`GET`,`HEAD`,`OPTIONS`,`TRACE`].includes(n))return!1;if(t.error)return!(t.error instanceof e.AbortedError);let r=t.response?.status??0;return r===404||r===408||r===425||r===429||r>=500&&r<=599},signal:c}),d=t.CrossChainStatusResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues,u);return d.data}async function u({apiBaseUrl:i,apiToken:a,fetch:o},{chainId:s,crossChainSwap:c,quoteId:l}){let u=`/spender-address?${new URLSearchParams({chainId:String(s),cross:c?`true`:`false`,uuid:l}).toString()}`,d=await n.fetchJson(n.combineUrlPathnames(i,u),{headers:r(a),fetch:o}),f=t.SpenderAddressResponseSchema.safeParse(d);if(!f.success)throw new e.ResponseValidationError(`Invalid response from Markr "${u}" endpoint.`,f.error.issues);return f.data}async function d({apiBaseUrl:i,apiToken:a,fetch:o},s,{signal:c}={}){let l=`/authorize`,u=await n.fetchJson(n.combineUrlPathnames(i,l),{body:JSON.stringify(s),fetch:o,headers:r(a),method:`POST`,signal:c}),d=t.MarkrAuthorizeResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues)}exports.getAuthHeaders=r,exports.markrGetCrossChainStatus=l,exports.markrGetInfoChains=i,exports.markrGetPartnerInfo=c,exports.markrGetSpenderAddress=u,exports.markrGetTokenList=a,exports.markrPostAuthorize=d,exports.markrStreamQuote=o,exports.markrSwap=s;
1
+ const e=require(`../../errors.cjs`),t=require(`../fetch-utilities.cjs`),n=require(`./_schema.cjs`);function r(e){if(e)return{Authorization:`Bearer ${e}`}}async function i({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/chains`,c=await t.fetchJson(t.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=n.SupportedChainsResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function a({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/tokens/${s}/list`,l=await t.fetchJson(t.combineUrlPathnames(i,c),{headers:r(a),fetch:o}),u=n.TokenListResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function o({apiBaseUrl:i,apiToken:a,fetch:o},s,{onDone:c,onError:l,onQuote:u,signal:d}){let f=`/quote`,p=t.combineUrlPathnames(i,f),m=[];try{for await(let i of t.fetchEventStream(p,{body:JSON.stringify(s),fetch:o,headers:r(a),signal:d})){let t=n.QuoteResponseSchema.safeParse(JSON.parse(i.data));if(!t.success){l(new e.ResponseValidationError(`Invalid quote data received from Markr "${f}" endpoint.`,t.error.issues));continue}`done`in t.data?c():(u(t.data),m.push(t.data))}}catch(e){e instanceof Error?l(e):l(Error(`An unknown error occurred during the quote stream.`,{cause:e})),c()}return m}async function s({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/swap`,l=await t.fetchJson(t.combineUrlPathnames(i,c),{body:JSON.stringify(s),fetch:o,headers:r(a),method:`POST`}),u=n.SwapResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function c({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/partner`,c=await t.fetchJson(t.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=n.PartnerInfoResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function l({apiBaseUrl:i,apiToken:a,fetch:o},s,{signal:c}={}){let l=`/cross-chain/status/${s}`,u=await t.fetchJson(t.combineUrlPathnames(i,l),{headers:r(a),fetch:o,retries:10,retryOn(t){let n=(t.init.method??`GET`).toUpperCase();if(![`GET`,`HEAD`,`OPTIONS`,`TRACE`].includes(n))return!1;if(t.error)return!(t.error instanceof e.AbortedError);let r=t.response?.status??0;return r===404||r===408||r===425||r===429||r>=500&&r<=599},signal:c}),d=n.CrossChainStatusResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues,u);return d.data}async function u({apiBaseUrl:i,apiToken:a,fetch:o},{chainId:s,crossChainSwap:c,quoteId:l}){let u=`/spender-address?${new URLSearchParams({chainId:String(s),cross:c?`true`:`false`,uuid:l}).toString()}`,d=await t.fetchJson(t.combineUrlPathnames(i,u),{headers:r(a),fetch:o}),f=n.SpenderAddressResponseSchema.safeParse(d);if(!f.success)throw new e.ResponseValidationError(`Invalid response from Markr "${u}" endpoint.`,f.error.issues);return f.data}async function d({apiBaseUrl:i,apiToken:a,fetch:o},s,{signal:c}={}){let l=`/authorize`,u=await t.fetchJson(t.combineUrlPathnames(i,l),{body:JSON.stringify(s),fetch:o,headers:r(a),method:`POST`,signal:c}),d=n.MarkrAuthorizeResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues)}exports.getAuthHeaders=r,exports.markrGetCrossChainStatus=l,exports.markrGetInfoChains=i,exports.markrGetPartnerInfo=c,exports.markrGetSpenderAddress=u,exports.markrGetTokenList=a,exports.markrPostAuthorize=d,exports.markrStreamQuote=o,exports.markrSwap=s;
2
2
  //# sourceMappingURL=_api.cjs.map