UNPKG

@shogun-sdk/money-legos

Version:

Shogun Money Legos: clients and types for quotes, memes, prices, balances, fees, validations, etc.

72 lines 3.81 kB
import { TokenBalanceResults } from '../types/index.js'; import { ShogunBalancesApiClient } from '../clients/shogun-balances-api-client.js'; type SwapParams = { weiAmount: bigint; srcToken: string; destToken: string; srcNetwork: number; destNetwork: number; }; export declare class GasStationCalculator { private errorBuilder; private balancesClient; constructor(errorBuilder: (network: string, tokenSymbol?: string, minAmountValue?: number, minUsdValue?: number) => string, balancesClient: ShogunBalancesApiClient); protected getNativeDestinationNetworkPrice(network: number, tokens: TokenBalanceResults[]): Promise<number>; protected getMinNativeBalance(network: number): bigint | undefined; protected calculateRefuelFeePercent(refuelAmountUsd: number, amountInUsd: number): number; protected calculateRefuelAmount(srcNetwork: number, destNetwork: number, tokenInput: TokenBalanceResults, tokens: TokenBalanceResults[], destinationNativeBalance: bigint, swapParams: SwapParams, systemFeePercent: number, isEoaAccount: boolean, externalServiceTxCostUsd: number): Promise<{ additionalAffiliateFeePercent: number; affiliateFeeTotalValidation: { isValid: boolean; error?: string; totalFeePercent?: number; }; refuelAmount: bigint; gasRefuelWarning?: string; }>; protected isCrossChainRefuel(srcNetwork: number, destNetwork: number): boolean; protected findTokenIn(tokens: TokenBalanceResults[], srcTokenAddress: string, srcNetwork: number, walletAddress: string): TokenBalanceResults | undefined; ignoreGasRefuel(tokenOut: TokenBalanceResults | undefined, walletAddress: string, network: number): Promise<boolean>; protected isTokenOutNative(address: string, destinationNetwork: number): boolean; calculateGasRefuelAmount(walletAddress: string, destinationWalletAddress: string | undefined, balances: TokenBalanceResults[], swapParams: SwapParams, systemFeePercent: number, isEoaAccount: boolean, externalServiceTxCostUsd: number, findTokenFallback?: (tokens: TokenBalanceResults[], srcTokenAddress: string, srcNetwork: number, walletAddress: string) => TokenBalanceResults): Promise<{ success: boolean; refuelAmount?: bigint; tokenIn?: TokenBalanceResults; destinationWalletAddress?: string; additionalAffiliateFeePercent: number; gasRefuelWarning?: string; affiliateFeeTotalValidation: { isValid: boolean; error?: string; totalFeePercent?: number; }; }>; } export declare class GasStationService extends GasStationCalculator { private apiKey; private apiUrl; private errorHandler; constructor(apiKey: string, apiUrl: string, errorHandler: (error: Error | string) => void, errorBuilder: (network: string, tokenSymbol?: string, minAmountValue?: number, minUsdValue?: number) => string, balancesClient: ShogunBalancesApiClient); protected makeGasStationApiRequest(url: string, payload: Record<string, string | number>, headers: Record<string, string>): Promise<boolean>; /** * Sends a request to the Gas Station API to refuel a wallet with native tokens * * Example curl command to test locally: * ``` curl -X POST http://localhost:3000 \ -H "Content-Type: application/json" \ -H "x-api-key: your_api_key" \ -d '{ "chainId": 7565164, "amount": "10000", "recipient": "HxQpBRpH7sRHpidTWZ55xAsMxddhjHBE8BRkkj2ewHa1" }' * ``` */ sendGasStationRequest(amount: bigint, network: number, walletAddress: string): Promise<{ success: boolean; error?: string; }>; } export {}; //# sourceMappingURL=GasStationService.d.ts.map