@lombard.finance/sdk 4.5.1 → 4.5.2
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.
- package/CHANGELOG.md +6 -0
- package/dist/api.cjs +1 -1
- package/dist/api.js +2 -2
- package/dist/btc.cjs +1 -1
- package/dist/btc.js +2 -2
- package/dist/chunks/{BtcActions-B-ttz47_.cjs → BtcActions-BF9CeWbi.cjs} +2 -2
- package/dist/chunks/{BtcActions-B-ttz47_.cjs.map → BtcActions-BF9CeWbi.cjs.map} +1 -1
- package/dist/chunks/{BtcActions-HGHFC106.js → BtcActions-DzUEGnzA.js} +2 -2
- package/dist/chunks/{BtcActions-HGHFC106.js.map → BtcActions-DzUEGnzA.js.map} +1 -1
- package/dist/chunks/{EvmActions-TNM8i9Xg.js → EvmActions-BYwRL5jA.js} +2 -2
- package/dist/chunks/{EvmActions-TNM8i9Xg.js.map → EvmActions-BYwRL5jA.js.map} +1 -1
- package/dist/chunks/{EvmActions-BGxXtQFZ.cjs → EvmActions-Cm7PZTWL.cjs} +2 -2
- package/dist/chunks/{EvmActions-BGxXtQFZ.cjs.map → EvmActions-Cm7PZTWL.cjs.map} +1 -1
- package/dist/chunks/{ReferralsClient-DvEsA3II.js → ReferralsClient-AxhLoWRT.js} +2 -2
- package/dist/chunks/{ReferralsClient-DvEsA3II.js.map → ReferralsClient-AxhLoWRT.js.map} +1 -1
- package/dist/chunks/{ReferralsClient-Cmrjo9bN.cjs → ReferralsClient-bZo9Jpg6.cjs} +2 -2
- package/dist/chunks/{ReferralsClient-Cmrjo9bN.cjs.map → ReferralsClient-bZo9Jpg6.cjs.map} +1 -1
- package/dist/chunks/{depositStatus-DTc01ZoZ.js → depositStatus-BrrE4n4B.js} +2 -2
- package/dist/chunks/{depositStatus-DTc01ZoZ.js.map → depositStatus-BrrE4n4B.js.map} +1 -1
- package/dist/chunks/{depositStatus-CFo5jW89.cjs → depositStatus-D5t8HN_A.cjs} +2 -2
- package/dist/chunks/{depositStatus-CFo5jW89.cjs.map → depositStatus-D5t8HN_A.cjs.map} +1 -1
- package/dist/chunks/{events-83d3qdxG.js → events-BuVnpqe8.js} +5 -5
- package/dist/chunks/{events-83d3qdxG.js.map → events-BuVnpqe8.js.map} +1 -1
- package/dist/chunks/{events-DvTn2yHn.cjs → events-flcJmreN.cjs} +2 -2
- package/dist/chunks/{events-DvTn2yHn.cjs.map → events-flcJmreN.cjs.map} +1 -1
- package/dist/chunks/{statusConstants-qfM-LJfE.js → statusConstants-25gG0IqR.js} +2 -2
- package/dist/chunks/{statusConstants-qfM-LJfE.js.map → statusConstants-25gG0IqR.js.map} +1 -1
- package/dist/chunks/{statusConstants-8ra-0ydr.cjs → statusConstants-Cm_nWk5q.cjs} +2 -2
- package/dist/chunks/{statusConstants-8ra-0ydr.cjs.map → statusConstants-Cm_nWk5q.cjs.map} +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.js +4 -4
- package/dist/evm.cjs +1 -1
- package/dist/evm.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depositStatus-CFo5jW89.cjs","sources":["../../src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts","../../src/api-functions/setReferral/setReferral.ts","../../src/shared/deposits/depositStatus.ts"],"sourcesContent":["import axios from 'axios';\nimport BigNumber from 'bignumber.js';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { getChainNameById } from '../../common/blockchain-identifier';\nimport { ChainId } from '../../common/chains';\nimport { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';\nimport { IEnvParam } from '../../common/parameters';\nimport { toSatoshi } from '../../utils/satoshi';\n\ntype ExchangeRateResponse = {\n amount_out: string;\n};\n\nexport interface IgetLBTCExchangeRateParams extends IEnvParam {\n /**\n * The optional chain id of the asset to get the exchange rate for.\n * Note: Exchange rate it the same for all chains.\n *\n * @default OChainId.ethereum\n */\n chainId?: ChainId;\n /**\n * The amount of the LBTC (in satoshis) that a user would like to exchange to BTC.\n */\n amount?: BigNumber.Value;\n}\n\nexport interface IgetLBTCExchangeRateResponse {\n /**\n * The exchanged amount (in satoshis).\n */\n amountOut: number;\n /**\n * The exchange rate for LBTC/BTC.\n */\n exchangeRate: number;\n /**\n * The minimum amount of BTC eligible for staking (in satoshis).\n */\n minAmount: number;\n}\n\n/**\n * Retrieves the exchange rate for LBTC.\n *\n * @deprecated This API endpoint is deprecated and will be removed in a future version.\n * The exchange rate is now always 1:1 as LBTC is a rebasing token.\n *\n * @param {IgetLBTCExchangeRateParams} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The optional amount to be exchanged.\n * @param {ChainId} parameters.chainId - The optional chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IgetLBTCExchangeRateResponse>} - The exchange rate.\n */\nexport async function getLBTCExchangeRate({\n env,\n chainId = ChainId.ethereum,\n amount = toSatoshi(1),\n}: IgetLBTCExchangeRateParams): Promise<IgetLBTCExchangeRateResponse> {\n const { baseApiUrl } = getApiConfig(env);\n const chainIdName = getChainNameById(chainId);\n\n const { data } = await axios.get<ExchangeRateResponse>(\n `api/v1/exchange/rate/${chainIdName}`,\n { baseURL: baseApiUrl, params: { amount } },\n );\n\n const amountOut = BigNumber(data.amount_out).toNumber();\n const exchangeRate = BigNumber(amount).dividedBy(data.amount_out).toNumber();\n const minAmount = toSatoshi(MIN_STAKE_AMOUNT_BTC).toNumber();\n\n return { amountOut, exchangeRate, minAmount };\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nconst URL = 'api/v1/referral-system/referrer/';\n\nexport interface ISetReferralParams extends IEnvParam {\n /**\n * The destination EVM user address where LBTC will be claimed.\n */\n address: string;\n /**\n * The signature of the address. The signature is generated by signing the address using wallet.\n * Use `signTermsOfService` or `signLbtcDestinationAddr` functions.\n */\n signature: string;\n /**\n * The captcha token.\n */\n referrerCode: string;\n /**\n * The typed data object used to generate the signature if using a network fee authorization signature.\n */\n eip712Data?: string;\n /**\n * The public key (required for Starknet).\n */\n pubKey?: string;\n}\n\n/**\n * Set a referral code.\n *\n * @param {ISetReferralParams} The parameters for set referral.\n * @returns {Promise<void>} Nothing.\n * @exception {Error}\n */\nexport async function setReferral({\n address,\n signature,\n eip712Data,\n referrerCode,\n pubKey,\n env,\n}: ISetReferralParams): Promise<void> {\n const { baseApiUrl } = getApiConfig(env);\n\n const requestParams = {\n referrer_code: referrerCode,\n signature,\n signature_typed_data: eip712Data,\n ...(pubKey && { public_key: pubKey }),\n };\n\n try {\n await axios.post(`${URL}${address}`, requestParams, {\n baseURL: baseApiUrl,\n });\n\n return undefined;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n","/**\n * Deposit Status Utilities\n *\n * Centralized logic for determining deposit status based on notarization state,\n * confirmations, and other factors. This module provides a single source of truth\n * for deposit status that can be used by the SDK demo, apps/main, and other consumers.\n *\n * Status determination is based on both notarization status and block confirmations.\n * The notarization status from the backend is the primary source of truth for where\n * in the flow a deposit currently is.\n *\n * @module shared/deposits/depositStatus\n */\n\nimport {\n type Deposit,\n ENotarizationStatus,\n ESessionState,\n} from '../../api-functions/getDepositsByAddress/getDepositsByAddress';\nimport { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Constants\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Number of confirmations required before a deposit can be claimed.\n * Production/Testnet: 6, Stage/Dev: 3\n */\nexport const REQUIRED_CONFIRMATIONS = 6;\n\n/**\n * Minimum deposit amount that can be claimed (in BTC).\n * Deposits below this amount cannot be minted.\n *\n * @deprecated Use `MIN_STAKE_AMOUNT_BTC` from `@lombard.finance/sdk` instead.\n * This constant is an alias kept for backwards compatibility.\n */\nexport const MIN_CLAIM_AMOUNT_BTC = MIN_STAKE_AMOUNT_BTC;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Types\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Possible deposit statuses - ordered by lifecycle\n */\nexport type DepositStatus =\n | 'pending_confirmations' // Waiting for BTC block confirmations\n | 'pending_notarization' // Confirmations complete, waiting for notarization service\n | 'claimable' // Notarization approved, ready to be claimed manually\n | 'claiming' // Claim transaction submitted\n | 'claimed' // Successfully claimed (has claimTxHash)\n | 'auto_claimed' // Claimed via GMP (cross-chain messaging)\n | 'expired' // Signature expired, needs re-auth\n | 'failed' // Notarization failed\n | 'restricted' // Sanctioned or restricted\n | 'too_small'; // Amount below minimum\n\n/**\n * Status severity for UI styling\n */\nexport type StatusSeverity = 'info' | 'warning' | 'success' | 'error' | 'neutral';\n\n/**\n * Status display configuration\n */\nexport interface DepositStatusDisplay {\n /** Human-readable label for the status */\n label: string;\n /** Severity level for styling */\n severity: StatusSeverity;\n /** Detailed description of the status */\n description: string;\n /** Whether the deposit is in a terminal state (claimed, failed, restricted) */\n isTerminal: boolean;\n /** Whether user action is required */\n requiresAction: boolean;\n}\n\n/**\n * Confirmation progress information\n */\nexport interface ConfirmationProgress {\n /** Current number of confirmations */\n current: number;\n /** Required number of confirmations */\n required: number;\n /** Percentage complete (0-100) */\n percentage: number;\n /** Whether enough confirmations have been received */\n isComplete: boolean;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Core Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Calculate the number of confirmations for a deposit\n *\n * @param currentBlockHeight - Current Bitcoin block height\n * @param depositBlockHeight - Block height where deposit was confirmed\n * @returns Number of confirmations (0 if either height is missing)\n */\nexport function calcConfirmations(\n currentBlockHeight?: number,\n depositBlockHeight?: number,\n): number {\n if (!depositBlockHeight || !currentBlockHeight) {\n return 0;\n }\n // Deposit block height counts as the first confirmation\n return Math.max(0, currentBlockHeight - depositBlockHeight + 1);\n}\n\n/**\n * Get confirmation progress for a deposit\n *\n * @param currentBlockHeight - Current Bitcoin block height\n * @param depositBlockHeight - Block height where deposit was confirmed\n * @param requiredConfirmations - Number of confirmations required (default: REQUIRED_CONFIRMATIONS)\n * @returns Confirmation progress info, or null if block heights unavailable\n */\nexport function getConfirmationProgress(\n currentBlockHeight?: number,\n depositBlockHeight?: number,\n requiredConfirmations: number = REQUIRED_CONFIRMATIONS,\n): ConfirmationProgress | null {\n if (currentBlockHeight === undefined || depositBlockHeight === undefined) {\n return null;\n }\n\n const current = calcConfirmations(currentBlockHeight, depositBlockHeight);\n const percentage = Math.min(\n 100,\n Math.round((current / requiredConfirmations) * 100),\n );\n\n return {\n current,\n required: requiredConfirmations,\n percentage,\n isComplete: current >= requiredConfirmations,\n };\n}\n\n/**\n * Determine the status of a deposit\n *\n * Logic priority:\n * 1. Sanctioned → restricted\n * 2. Already claimed → claimed\n * 3. GMP handled → auto_claimed (definitive success, overrides expired/failed)\n * 4. Amount too small → too_small (permanent, re-auth won't help)\n * 5. Notarization failed → failed (terminal, overrides expired)\n * 6. Session expired → expired (recoverable via re-auth)\n * 7. Based on notarization status + proof availability:\n * - PENDING/SUBMITTED without enough confirmations → pending_confirmations\n * - PENDING/SUBMITTED with confirmations → pending_notarization\n * - SESSION_APPROVED with proof → claimable\n * - SESSION_APPROVED without proof → pending_notarization (edge case)\n *\n * @param deposit - The deposit object from the SDK\n * @param currentBlockHeight - Current BTC block height (optional, enhances accuracy)\n * @param requiredConfirmations - Confirmations required (default: REQUIRED_CONFIRMATIONS)\n * @returns The deposit status\n */\nexport function getDepositStatus(\n deposit: Deposit,\n currentBlockHeight?: number,\n requiredConfirmations: number = REQUIRED_CONFIRMATIONS,\n): DepositStatus {\n // 1. Check for sanctioned/restricted first\n if (deposit.sanctioned) {\n return 'restricted';\n }\n\n // 2. Check if already claimed\n if (deposit.isClaimed || deposit.claimTxHash) {\n return 'claimed';\n }\n\n // 3. Check for GMP auto-claim (definitive success, overrides expired/failed)\n if (\n deposit.notarizationStatus ===\n ENotarizationStatus.NOTARIZATION_STATUS_GMP_HANDLED\n ) {\n return 'auto_claimed';\n }\n\n // 4. Check if amount is too small (permanent, re-auth won't help)\n const amountBtc = deposit.amount?.toNumber?.() ?? Number(deposit.amount);\n if (amountBtc > 0 && amountBtc < MIN_STAKE_AMOUNT_BTC) {\n return 'too_small';\n }\n\n // 5. Check for notarization failure (terminal, overrides expired)\n if (\n deposit.notarizationStatus ===\n ENotarizationStatus.NOTARIZATION_STATUS_FAILED\n ) {\n return 'failed';\n }\n\n // 6. Check if the notarization session has expired (recoverable via re-auth)\n if (deposit.sessionState === ESessionState.SESSION_STATE_EXPIRED) {\n return 'expired';\n }\n\n // 7. Determine status based on notarization status and proof availability\n const hasProof = !!deposit.proof && !!deposit.rawPayload;\n const notarizationStatus = deposit.notarizationStatus;\n\n // Check confirmations only if we have block height data\n const confirmations = calcConfirmations(\n currentBlockHeight,\n deposit.blockHeight,\n );\n const hasEnoughConfirmations =\n currentBlockHeight === undefined ||\n confirmations >= requiredConfirmations;\n\n switch (notarizationStatus) {\n case ENotarizationStatus.NOTARIZATION_STATUS_PENDING:\n case ENotarizationStatus.NOTARIZATION_STATUS_SUBMITTED:\n // Still in notarization queue\n // If we know block height and not enough confirmations, show that\n if (currentBlockHeight !== undefined && !hasEnoughConfirmations) {\n return 'pending_confirmations';\n }\n // Otherwise, we're waiting for notarization\n return 'pending_notarization';\n\n case ENotarizationStatus.NOTARIZATION_STATUS_SESSION_APPROVED:\n // Notarization approved\n if (hasProof) {\n return 'claimable';\n }\n // Edge case: approved but no proof yet (should be rare)\n return 'pending_notarization';\n\n case ENotarizationStatus.NOTARIZATION_STATUS_UNSPECIFIED:\n default:\n // Unknown status - check confirmations if we can\n if (currentBlockHeight !== undefined && !hasEnoughConfirmations) {\n return 'pending_confirmations';\n }\n return 'pending_notarization';\n }\n}\n\n/**\n * Get display configuration for a deposit status\n *\n * @param status - The deposit status\n * @returns Display configuration with label, severity, and description\n */\nexport function getDepositStatusDisplay(\n status: DepositStatus,\n): DepositStatusDisplay {\n switch (status) {\n case 'pending_confirmations':\n return {\n label: 'Pending Confirmations',\n severity: 'warning',\n description: `Waiting for Bitcoin block confirmations (${REQUIRED_CONFIRMATIONS} required)`,\n isTerminal: false,\n requiresAction: false,\n };\n case 'pending_notarization':\n return {\n label: 'Pending Notarization',\n severity: 'info',\n description:\n 'Confirmations complete, waiting for notarization service to generate proof',\n isTerminal: false,\n requiresAction: false,\n };\n case 'claimable':\n return {\n label: 'Claimable',\n severity: 'success',\n description: 'Ready to mint - proof available, claim to receive tokens',\n isTerminal: false,\n requiresAction: true,\n };\n case 'claiming':\n return {\n label: 'Claiming',\n severity: 'info',\n description: 'Claim transaction in progress',\n isTerminal: false,\n requiresAction: false,\n };\n case 'claimed':\n return {\n label: 'Claimed',\n severity: 'neutral',\n description: 'Tokens have been minted to your address',\n isTerminal: true,\n requiresAction: false,\n };\n case 'auto_claimed':\n return {\n label: 'Auto-Claimed',\n severity: 'success',\n description: 'Automatically claimed via cross-chain messaging (GMP)',\n isTerminal: true,\n requiresAction: false,\n };\n case 'expired':\n return {\n label: 'Expired',\n severity: 'error',\n description: 'Fee signature expired, requires re-authorization',\n isTerminal: false,\n requiresAction: true,\n };\n case 'failed':\n return {\n label: 'Failed',\n severity: 'error',\n description: 'Notarization failed - contact support',\n isTerminal: true,\n requiresAction: false,\n };\n case 'restricted':\n return {\n label: 'Restricted',\n severity: 'error',\n description: 'This deposit is restricted or sanctioned',\n isTerminal: true,\n requiresAction: false,\n };\n case 'too_small':\n return {\n label: 'Too Small',\n severity: 'neutral',\n description: `Amount below minimum claimable amount (${MIN_STAKE_AMOUNT_BTC} BTC)`,\n isTerminal: true,\n requiresAction: false,\n };\n }\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Helper Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Check if a deposit can be claimed manually\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if the deposit is in claimable state\n */\nexport function isDepositClaimable(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n return getDepositStatus(deposit, currentBlockHeight) === 'claimable';\n}\n\n/**\n * Check if a deposit is in a pending state (confirmations or notarization)\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if deposit is pending\n */\nexport function isDepositPending(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n return (\n status === 'pending_confirmations' || status === 'pending_notarization'\n );\n}\n\n/**\n * Check if a deposit is in a terminal state (no further action possible)\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if deposit is in terminal state\n */\nexport function isDepositTerminal(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n const display = getDepositStatusDisplay(status);\n return display.isTerminal;\n}\n\n/**\n * Check if a deposit requires user action\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if user action is required\n */\nexport function depositRequiresAction(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n const display = getDepositStatusDisplay(status);\n return display.requiresAction;\n}\n\n"],"names":["getLBTCExchangeRate","env","chainId","ChainId","amount","toSatoshi","baseApiUrl","getApiConfig","chainIdName","getChainNameById","data","axios","amountOut","BigNumber","exchangeRate","minAmount","MIN_STAKE_AMOUNT_BTC","URL","setReferral","address","signature","eip712Data","referrerCode","pubKey","requestParams","error","errorMsg","getErrorMessage","REQUIRED_CONFIRMATIONS","MIN_CLAIM_AMOUNT_BTC","calcConfirmations","currentBlockHeight","depositBlockHeight","getConfirmationProgress","requiredConfirmations","current","percentage","getDepositStatus","deposit","ENotarizationStatus","amountBtc","_b","_a","ESessionState","hasProof","notarizationStatus","confirmations","hasEnoughConfirmations","getDepositStatusDisplay","status","isDepositClaimable","isDepositPending","isDepositTerminal","depositRequiresAction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"depositStatus-D5t8HN_A.cjs","sources":["../../src/api-functions/getLBTCExchangeRate/getLBTCExchangeRate.ts","../../src/api-functions/setReferral/setReferral.ts","../../src/shared/deposits/depositStatus.ts"],"sourcesContent":["import axios from 'axios';\nimport BigNumber from 'bignumber.js';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { getChainNameById } from '../../common/blockchain-identifier';\nimport { ChainId } from '../../common/chains';\nimport { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';\nimport { IEnvParam } from '../../common/parameters';\nimport { toSatoshi } from '../../utils/satoshi';\n\ntype ExchangeRateResponse = {\n amount_out: string;\n};\n\nexport interface IgetLBTCExchangeRateParams extends IEnvParam {\n /**\n * The optional chain id of the asset to get the exchange rate for.\n * Note: Exchange rate it the same for all chains.\n *\n * @default OChainId.ethereum\n */\n chainId?: ChainId;\n /**\n * The amount of the LBTC (in satoshis) that a user would like to exchange to BTC.\n */\n amount?: BigNumber.Value;\n}\n\nexport interface IgetLBTCExchangeRateResponse {\n /**\n * The exchanged amount (in satoshis).\n */\n amountOut: number;\n /**\n * The exchange rate for LBTC/BTC.\n */\n exchangeRate: number;\n /**\n * The minimum amount of BTC eligible for staking (in satoshis).\n */\n minAmount: number;\n}\n\n/**\n * Retrieves the exchange rate for LBTC.\n *\n * @deprecated This API endpoint is deprecated and will be removed in a future version.\n * The exchange rate is now always 1:1 as LBTC is a rebasing token.\n *\n * @param {IgetLBTCExchangeRateParams} parameters - The parameters.\n * @param {BigNumber.Value} parameters.amount - The optional amount to be exchanged.\n * @param {ChainId} parameters.chainId - The optional chain id.\n * @param {Env} parameters.env - The optional environment identifier.\n *\n * @returns {Promise<IgetLBTCExchangeRateResponse>} - The exchange rate.\n */\nexport async function getLBTCExchangeRate({\n env,\n chainId = ChainId.ethereum,\n amount = toSatoshi(1),\n}: IgetLBTCExchangeRateParams): Promise<IgetLBTCExchangeRateResponse> {\n const { baseApiUrl } = getApiConfig(env);\n const chainIdName = getChainNameById(chainId);\n\n const { data } = await axios.get<ExchangeRateResponse>(\n `api/v1/exchange/rate/${chainIdName}`,\n { baseURL: baseApiUrl, params: { amount } },\n );\n\n const amountOut = BigNumber(data.amount_out).toNumber();\n const exchangeRate = BigNumber(amount).dividedBy(data.amount_out).toNumber();\n const minAmount = toSatoshi(MIN_STAKE_AMOUNT_BTC).toNumber();\n\n return { amountOut, exchangeRate, minAmount };\n}\n","import axios from 'axios';\n\nimport { getApiConfig } from '../../common/api-config';\nimport { IEnvParam } from '../../common/parameters';\nimport { getErrorMessage } from '../../utils/err';\n\nconst URL = 'api/v1/referral-system/referrer/';\n\nexport interface ISetReferralParams extends IEnvParam {\n /**\n * The destination EVM user address where LBTC will be claimed.\n */\n address: string;\n /**\n * The signature of the address. The signature is generated by signing the address using wallet.\n * Use `signTermsOfService` or `signLbtcDestinationAddr` functions.\n */\n signature: string;\n /**\n * The captcha token.\n */\n referrerCode: string;\n /**\n * The typed data object used to generate the signature if using a network fee authorization signature.\n */\n eip712Data?: string;\n /**\n * The public key (required for Starknet).\n */\n pubKey?: string;\n}\n\n/**\n * Set a referral code.\n *\n * @param {ISetReferralParams} The parameters for set referral.\n * @returns {Promise<void>} Nothing.\n * @exception {Error}\n */\nexport async function setReferral({\n address,\n signature,\n eip712Data,\n referrerCode,\n pubKey,\n env,\n}: ISetReferralParams): Promise<void> {\n const { baseApiUrl } = getApiConfig(env);\n\n const requestParams = {\n referrer_code: referrerCode,\n signature,\n signature_typed_data: eip712Data,\n ...(pubKey && { public_key: pubKey }),\n };\n\n try {\n await axios.post(`${URL}${address}`, requestParams, {\n baseURL: baseApiUrl,\n });\n\n return undefined;\n } catch (error) {\n const errorMsg = getErrorMessage(error);\n throw new Error(errorMsg);\n }\n}\n","/**\n * Deposit Status Utilities\n *\n * Centralized logic for determining deposit status based on notarization state,\n * confirmations, and other factors. This module provides a single source of truth\n * for deposit status that can be used by the SDK demo, apps/main, and other consumers.\n *\n * Status determination is based on both notarization status and block confirmations.\n * The notarization status from the backend is the primary source of truth for where\n * in the flow a deposit currently is.\n *\n * @module shared/deposits/depositStatus\n */\n\nimport {\n type Deposit,\n ENotarizationStatus,\n ESessionState,\n} from '../../api-functions/getDepositsByAddress/getDepositsByAddress';\nimport { MIN_STAKE_AMOUNT_BTC } from '../../common/constants';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Constants\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Number of confirmations required before a deposit can be claimed.\n * Production/Testnet: 6, Stage/Dev: 3\n */\nexport const REQUIRED_CONFIRMATIONS = 6;\n\n/**\n * Minimum deposit amount that can be claimed (in BTC).\n * Deposits below this amount cannot be minted.\n *\n * @deprecated Use `MIN_STAKE_AMOUNT_BTC` from `@lombard.finance/sdk` instead.\n * This constant is an alias kept for backwards compatibility.\n */\nexport const MIN_CLAIM_AMOUNT_BTC = MIN_STAKE_AMOUNT_BTC;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Types\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Possible deposit statuses - ordered by lifecycle\n */\nexport type DepositStatus =\n | 'pending_confirmations' // Waiting for BTC block confirmations\n | 'pending_notarization' // Confirmations complete, waiting for notarization service\n | 'claimable' // Notarization approved, ready to be claimed manually\n | 'claiming' // Claim transaction submitted\n | 'claimed' // Successfully claimed (has claimTxHash)\n | 'auto_claimed' // Claimed via GMP (cross-chain messaging)\n | 'expired' // Signature expired, needs re-auth\n | 'failed' // Notarization failed\n | 'restricted' // Sanctioned or restricted\n | 'too_small'; // Amount below minimum\n\n/**\n * Status severity for UI styling\n */\nexport type StatusSeverity = 'info' | 'warning' | 'success' | 'error' | 'neutral';\n\n/**\n * Status display configuration\n */\nexport interface DepositStatusDisplay {\n /** Human-readable label for the status */\n label: string;\n /** Severity level for styling */\n severity: StatusSeverity;\n /** Detailed description of the status */\n description: string;\n /** Whether the deposit is in a terminal state (claimed, failed, restricted) */\n isTerminal: boolean;\n /** Whether user action is required */\n requiresAction: boolean;\n}\n\n/**\n * Confirmation progress information\n */\nexport interface ConfirmationProgress {\n /** Current number of confirmations */\n current: number;\n /** Required number of confirmations */\n required: number;\n /** Percentage complete (0-100) */\n percentage: number;\n /** Whether enough confirmations have been received */\n isComplete: boolean;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Core Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Calculate the number of confirmations for a deposit\n *\n * @param currentBlockHeight - Current Bitcoin block height\n * @param depositBlockHeight - Block height where deposit was confirmed\n * @returns Number of confirmations (0 if either height is missing)\n */\nexport function calcConfirmations(\n currentBlockHeight?: number,\n depositBlockHeight?: number,\n): number {\n if (!depositBlockHeight || !currentBlockHeight) {\n return 0;\n }\n // Deposit block height counts as the first confirmation\n return Math.max(0, currentBlockHeight - depositBlockHeight + 1);\n}\n\n/**\n * Get confirmation progress for a deposit\n *\n * @param currentBlockHeight - Current Bitcoin block height\n * @param depositBlockHeight - Block height where deposit was confirmed\n * @param requiredConfirmations - Number of confirmations required (default: REQUIRED_CONFIRMATIONS)\n * @returns Confirmation progress info, or null if block heights unavailable\n */\nexport function getConfirmationProgress(\n currentBlockHeight?: number,\n depositBlockHeight?: number,\n requiredConfirmations: number = REQUIRED_CONFIRMATIONS,\n): ConfirmationProgress | null {\n if (currentBlockHeight === undefined || depositBlockHeight === undefined) {\n return null;\n }\n\n const current = calcConfirmations(currentBlockHeight, depositBlockHeight);\n const percentage = Math.min(\n 100,\n Math.round((current / requiredConfirmations) * 100),\n );\n\n return {\n current,\n required: requiredConfirmations,\n percentage,\n isComplete: current >= requiredConfirmations,\n };\n}\n\n/**\n * Determine the status of a deposit\n *\n * Logic priority:\n * 1. Sanctioned → restricted\n * 2. Already claimed → claimed\n * 3. GMP handled → auto_claimed (definitive success, overrides expired/failed)\n * 4. Amount too small → too_small (permanent, re-auth won't help)\n * 5. Notarization failed → failed (terminal, overrides expired)\n * 6. Session expired → expired (recoverable via re-auth)\n * 7. Based on notarization status + proof availability:\n * - PENDING/SUBMITTED without enough confirmations → pending_confirmations\n * - PENDING/SUBMITTED with confirmations → pending_notarization\n * - SESSION_APPROVED with proof → claimable\n * - SESSION_APPROVED without proof → pending_notarization (edge case)\n *\n * @param deposit - The deposit object from the SDK\n * @param currentBlockHeight - Current BTC block height (optional, enhances accuracy)\n * @param requiredConfirmations - Confirmations required (default: REQUIRED_CONFIRMATIONS)\n * @returns The deposit status\n */\nexport function getDepositStatus(\n deposit: Deposit,\n currentBlockHeight?: number,\n requiredConfirmations: number = REQUIRED_CONFIRMATIONS,\n): DepositStatus {\n // 1. Check for sanctioned/restricted first\n if (deposit.sanctioned) {\n return 'restricted';\n }\n\n // 2. Check if already claimed\n if (deposit.isClaimed || deposit.claimTxHash) {\n return 'claimed';\n }\n\n // 3. Check for GMP auto-claim (definitive success, overrides expired/failed)\n if (\n deposit.notarizationStatus ===\n ENotarizationStatus.NOTARIZATION_STATUS_GMP_HANDLED\n ) {\n return 'auto_claimed';\n }\n\n // 4. Check if amount is too small (permanent, re-auth won't help)\n const amountBtc = deposit.amount?.toNumber?.() ?? Number(deposit.amount);\n if (amountBtc > 0 && amountBtc < MIN_STAKE_AMOUNT_BTC) {\n return 'too_small';\n }\n\n // 5. Check for notarization failure (terminal, overrides expired)\n if (\n deposit.notarizationStatus ===\n ENotarizationStatus.NOTARIZATION_STATUS_FAILED\n ) {\n return 'failed';\n }\n\n // 6. Check if the notarization session has expired (recoverable via re-auth)\n if (deposit.sessionState === ESessionState.SESSION_STATE_EXPIRED) {\n return 'expired';\n }\n\n // 7. Determine status based on notarization status and proof availability\n const hasProof = !!deposit.proof && !!deposit.rawPayload;\n const notarizationStatus = deposit.notarizationStatus;\n\n // Check confirmations only if we have block height data\n const confirmations = calcConfirmations(\n currentBlockHeight,\n deposit.blockHeight,\n );\n const hasEnoughConfirmations =\n currentBlockHeight === undefined ||\n confirmations >= requiredConfirmations;\n\n switch (notarizationStatus) {\n case ENotarizationStatus.NOTARIZATION_STATUS_PENDING:\n case ENotarizationStatus.NOTARIZATION_STATUS_SUBMITTED:\n // Still in notarization queue\n // If we know block height and not enough confirmations, show that\n if (currentBlockHeight !== undefined && !hasEnoughConfirmations) {\n return 'pending_confirmations';\n }\n // Otherwise, we're waiting for notarization\n return 'pending_notarization';\n\n case ENotarizationStatus.NOTARIZATION_STATUS_SESSION_APPROVED:\n // Notarization approved\n if (hasProof) {\n return 'claimable';\n }\n // Edge case: approved but no proof yet (should be rare)\n return 'pending_notarization';\n\n case ENotarizationStatus.NOTARIZATION_STATUS_UNSPECIFIED:\n default:\n // Unknown status - check confirmations if we can\n if (currentBlockHeight !== undefined && !hasEnoughConfirmations) {\n return 'pending_confirmations';\n }\n return 'pending_notarization';\n }\n}\n\n/**\n * Get display configuration for a deposit status\n *\n * @param status - The deposit status\n * @returns Display configuration with label, severity, and description\n */\nexport function getDepositStatusDisplay(\n status: DepositStatus,\n): DepositStatusDisplay {\n switch (status) {\n case 'pending_confirmations':\n return {\n label: 'Pending Confirmations',\n severity: 'warning',\n description: `Waiting for Bitcoin block confirmations (${REQUIRED_CONFIRMATIONS} required)`,\n isTerminal: false,\n requiresAction: false,\n };\n case 'pending_notarization':\n return {\n label: 'Pending Notarization',\n severity: 'info',\n description:\n 'Confirmations complete, waiting for notarization service to generate proof',\n isTerminal: false,\n requiresAction: false,\n };\n case 'claimable':\n return {\n label: 'Claimable',\n severity: 'success',\n description: 'Ready to mint - proof available, claim to receive tokens',\n isTerminal: false,\n requiresAction: true,\n };\n case 'claiming':\n return {\n label: 'Claiming',\n severity: 'info',\n description: 'Claim transaction in progress',\n isTerminal: false,\n requiresAction: false,\n };\n case 'claimed':\n return {\n label: 'Claimed',\n severity: 'neutral',\n description: 'Tokens have been minted to your address',\n isTerminal: true,\n requiresAction: false,\n };\n case 'auto_claimed':\n return {\n label: 'Auto-Claimed',\n severity: 'success',\n description: 'Automatically claimed via cross-chain messaging (GMP)',\n isTerminal: true,\n requiresAction: false,\n };\n case 'expired':\n return {\n label: 'Expired',\n severity: 'error',\n description: 'Fee signature expired, requires re-authorization',\n isTerminal: false,\n requiresAction: true,\n };\n case 'failed':\n return {\n label: 'Failed',\n severity: 'error',\n description: 'Notarization failed - contact support',\n isTerminal: true,\n requiresAction: false,\n };\n case 'restricted':\n return {\n label: 'Restricted',\n severity: 'error',\n description: 'This deposit is restricted or sanctioned',\n isTerminal: true,\n requiresAction: false,\n };\n case 'too_small':\n return {\n label: 'Too Small',\n severity: 'neutral',\n description: `Amount below minimum claimable amount (${MIN_STAKE_AMOUNT_BTC} BTC)`,\n isTerminal: true,\n requiresAction: false,\n };\n }\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Helper Functions\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Check if a deposit can be claimed manually\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if the deposit is in claimable state\n */\nexport function isDepositClaimable(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n return getDepositStatus(deposit, currentBlockHeight) === 'claimable';\n}\n\n/**\n * Check if a deposit is in a pending state (confirmations or notarization)\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if deposit is pending\n */\nexport function isDepositPending(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n return (\n status === 'pending_confirmations' || status === 'pending_notarization'\n );\n}\n\n/**\n * Check if a deposit is in a terminal state (no further action possible)\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if deposit is in terminal state\n */\nexport function isDepositTerminal(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n const display = getDepositStatusDisplay(status);\n return display.isTerminal;\n}\n\n/**\n * Check if a deposit requires user action\n *\n * @param deposit - The deposit object\n * @param currentBlockHeight - Current BTC block height (optional)\n * @returns True if user action is required\n */\nexport function depositRequiresAction(\n deposit: Deposit,\n currentBlockHeight?: number,\n): boolean {\n const status = getDepositStatus(deposit, currentBlockHeight);\n const display = getDepositStatusDisplay(status);\n return display.requiresAction;\n}\n\n"],"names":["getLBTCExchangeRate","env","chainId","ChainId","amount","toSatoshi","baseApiUrl","getApiConfig","chainIdName","getChainNameById","data","axios","amountOut","BigNumber","exchangeRate","minAmount","MIN_STAKE_AMOUNT_BTC","URL","setReferral","address","signature","eip712Data","referrerCode","pubKey","requestParams","error","errorMsg","getErrorMessage","REQUIRED_CONFIRMATIONS","MIN_CLAIM_AMOUNT_BTC","calcConfirmations","currentBlockHeight","depositBlockHeight","getConfirmationProgress","requiredConfirmations","current","percentage","getDepositStatus","deposit","ENotarizationStatus","amountBtc","_b","_a","ESessionState","hasProof","notarizationStatus","confirmations","hasEnoughConfirmations","getDepositStatusDisplay","status","isDepositClaimable","isDepositPending","isDepositTerminal","depositRequiresAction"],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ var F = Object.defineProperty;
|
|
|
2
2
|
var U = (t, e, s) => e in t ? F(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
|
|
3
3
|
var a = (t, e, s) => U(t, typeof e != "symbol" ? e + "" : e, s);
|
|
4
4
|
import "axios";
|
|
5
|
-
import { SDK_RUNTIME as G, SDK_VERSION as Y, LombardError as g, bitcoinAddressSchema as v, Chain as d, BaseAction as f, NonEvmUnstakeStatus as r, validatePrepareParams as C, StepStatus as o, objectType as E, amountSchema as I, CapabilityRegistry as S, PartnerConfiguration as A, getProviderGetter as D, ASSET_CATALOG as x, getAssetAddress as K, getAssetDecimals as V, getAssetMetadata as j, usesAssetRouter as $, getAssetRouter as q, getBridgeAdapter as z, getPublicMarketMaker as W, getAssetByAddress as X, isAssetDeployed as Z, getAssetChains as J, getAssetEnvironments as Q, getSupportedAssets as ee, ProviderErrorCode as te } from "./statusConstants-
|
|
5
|
+
import { SDK_RUNTIME as G, SDK_VERSION as Y, LombardError as g, bitcoinAddressSchema as v, Chain as d, BaseAction as f, NonEvmUnstakeStatus as r, validatePrepareParams as C, StepStatus as o, objectType as E, amountSchema as I, CapabilityRegistry as S, PartnerConfiguration as A, getProviderGetter as D, ASSET_CATALOG as x, getAssetAddress as K, getAssetDecimals as V, getAssetMetadata as j, usesAssetRouter as $, getAssetRouter as q, getBridgeAdapter as z, getPublicMarketMaker as W, getAssetByAddress as X, isAssetDeployed as Z, getAssetChains as J, getAssetEnvironments as Q, getSupportedAssets as ee, ProviderErrorCode as te } from "./statusConstants-25gG0IqR.js";
|
|
6
6
|
import { generateDepositBtcAddress as se } from "./getUserStakeAndBakeSignature-Su-k10ap.js";
|
|
7
|
-
import { getDepositsByAddress as P, getUnstakesByAddress as ne, getPointsByAddress as re, getDepositBtcAddress as N, storeStakeAndBakeSignature as ie, ReferralsClient as ae } from "./ReferralsClient-
|
|
7
|
+
import { getDepositsByAddress as P, getUnstakesByAddress as ne, getPointsByAddress as re, getDepositBtcAddress as N, storeStakeAndBakeSignature as ie, ReferralsClient as ae } from "./ReferralsClient-AxhLoWRT.js";
|
|
8
8
|
import { storeNetworkFeeSignature as oe, getNetworkFeeSignature as ce } from "./storeNetworkFeeSignature-BODIpq3Y.js";
|
|
9
|
-
import { btcModule as ue, BtcActions as he } from "./BtcActions-
|
|
10
|
-
import { evmModule as de, EvmActions as ge } from "./EvmActions-
|
|
9
|
+
import { btcModule as ue, BtcActions as he } from "./BtcActions-DzUEGnzA.js";
|
|
10
|
+
import { evmModule as de, EvmActions as ge } from "./EvmActions-BYwRL5jA.js";
|
|
11
11
|
import { toSatoshi as b } from "./satoshi-CSoJBXc6.js";
|
|
12
12
|
import { p as k, r as u } from "./index-CfcQ_g3t.js";
|
|
13
13
|
import { AssetId as w } from "./defi-registry-DxjjBQTV.js";
|
|
@@ -1105,4 +1105,4 @@ export {
|
|
|
1105
1105
|
ot as starknetActions,
|
|
1106
1106
|
ct as suiActions
|
|
1107
1107
|
};
|
|
1108
|
-
//# sourceMappingURL=events-
|
|
1108
|
+
//# sourceMappingURL=events-BuVnpqe8.js.map
|