import { CanonicalEthereumBridge } from "../../../bridge/ethereum/canonical/CanonicalEthereumBridge.js"; import type { EthereumTransactionDetails } from "../../../bridge/ethereum/types.js"; import type { Address, ExternalAddress } from "../../../types/index.js"; import { Amount, EthereumBridgeToken } from "../../../types/index.js"; import type { EthereumWalletConfig } from "../../../bridge/ethereum/types.js"; import type { WalletInterface } from "../../../wallet/index.js"; import { type Call } from "starknet"; import { FeeErrorCause } from "../../../types/errors.js"; import { AutoWithdrawFeesHandler } from "../../../bridge/utils/auto-withdraw-fees-handler.js"; import type { StarkZapLogger } from "../../../logger/index.js"; export declare class LordsBridge extends CanonicalEthereumBridge { constructor(bridgeToken: EthereumBridgeToken, config: EthereumWalletConfig, starknetWallet: WalletInterface, autoWithdrawFeesHandler: AutoWithdrawFeesHandler, logger: StarkZapLogger); /** * The LORDS L1 bridge has a single-token contract with a different deposit * signature: `deposit(uint256 amount, uint256 l2Recipient, uint256 fee)`. * Unlike the canonical bridge's `deposit(address token, uint256 amount, * uint256 l2Recipient)`, the token address is implicit (one bridge per * token) and a fee argument (1 wei) is passed instead. No ETH value is * attached to the transaction. */ protected prepareDepositTransactionDetails(recipient: Address, amount: Amount): Promise; /** * The LORDS L2 bridge uses `handle_deposit` with a 3-element payload * `[recipient, amount_low, amount_high]`, whereas the canonical bridge uses * `handle_token_deposit` with a 5-element payload that also includes the L1 * token address and the sender address. */ protected estimateL1ToL2MessageFee(recipient: Address, amount: Amount): Promise<{ fee: Amount; l2FeeError?: FeeErrorCause; }>; /** * `prepareDepositTransactionDetails` (the only call site for now) is * completely overridden, but it is a good practise to maintain that no eth * are spent. */ protected getEthDepositValue(_recipient: Address, _amount: Amount): Promise; /** * The LORDS L2 bridge uses a single-token `initiate_withdrawal` entrypoint * with calldata `[l1Recipient, amount_low, amount_high]` — no token address * prefix, unlike the canonical `initiate_token_withdraw`. */ protected buildInitiateWithdrawCall(recipient: string, amount: Amount): Call; /** * The LORDS L1 bridge uses `withdraw(uint256 amount, address recipient)` * instead of the canonical `withdraw(address token, uint256 amount, address recipient)`. * The token address is implicit (one bridge per token). */ protected buildCompleteWithdrawCall(recipient: ExternalAddress, amount: Amount): Promise; } //# sourceMappingURL=LordsBridge.d.ts.map