tempwallet-sdk
Version:
Helpers for single-use (temporary) EVM flows: ephemeral EOAs, Safe builders, Permit2 signature skeleton, sweep & gas estimates. No infra included.
74 lines • 2.27 kB
TypeScript
import type { EstimateInputWei } from "./types";
/**
* Calculate the total gas cost in wei.
*
* Basic formula: totalWei = gasUnits * gasPriceWei
*
* @param input - Gas estimation parameters
* @param input.gasUnits - Number of gas units required
* @param input.gasPriceWei - Gas price in wei per unit
* @returns Total cost in wei
*
* @example
* ```typescript
* // Estimate cost for a simple ETH transfer (21,000 gas units)
* const cost = estimateTotalCostWei({
* gasUnits: 21000n,
* gasPriceWei: parseUnits("20", "gwei") // 20 gwei
* });
*
* console.log(`Total cost: ${formatEther(cost)} ETH`);
* // Output: Total cost: 0.00042 ETH
* ```
*
* @example
* ```typescript
* // Estimate cost for a complex contract interaction
* const cost = estimateTotalCostWei({
* gasUnits: 150000n,
* gasPriceWei: parseUnits("25", "gwei") // 25 gwei
* });
*
* console.log(`Total cost: ${formatEther(cost)} ETH`);
* // Output: Total cost: 0.00375 ETH
* ```
*/
export declare function estimateTotalCostWei(input: EstimateInputWei): bigint;
/**
* Calculate the total gas cost with a safety margin.
*
* Formula: totalWithMargin = totalWei * (1 + marginBps/10_000)
*
* @param input - Gas estimation parameters
* @param input.gasUnits - Number of gas units required
* @param input.gasPriceWei - Gas price in wei per unit
* @param marginBps - Safety margin in basis points (1 bps = 0.01%)
* @returns Total cost with margin in wei
*
* @example
* ```typescript
* // Estimate cost with 10% safety margin (1000 bps)
* const costWithMargin = estimateWithMarginWei({
* gasUnits: 21000n,
* gasPriceWei: parseUnits("20", "gwei")
* }, 1000);
*
* console.log(`Cost with 10% margin: ${formatEther(costWithMargin)} ETH`);
* // Output: Cost with 10% margin: 0.000462 ETH
* ```
*
* @example
* ```typescript
* // Common margin values
* const MARGIN_5_PERCENT = 500; // 5%
* const MARGIN_10_PERCENT = 1000; // 10%
* const MARGIN_20_PERCENT = 2000; // 20%
*
* const cost = estimateWithMarginWei({
* gasUnits: 100000n,
* gasPriceWei: parseUnits("30", "gwei")
* }, MARGIN_10_PERCENT);
* ```
*/
export declare function estimateWithMarginWei(input: EstimateInputWei, marginBps: number): bigint;
//# sourceMappingURL=estimate.d.ts.map