@pushchain/core
Version:
Push Chain is a true universal L1 that is 100% EVM compatible. It allows developers to deploy once and make their apps instantly compatible with users from all other L1s (Ethereum, Solana, etc) with zero on-chain code change.
53 lines (52 loc) • 1.45 kB
TypeScript
import { CHAIN } from './enums';
export interface MoveableToken {
symbol: string;
decimals: number;
address: string;
mechanism: 'approve' | 'permit2' | 'native';
}
export interface PayableToken {
symbol: string;
decimals: number;
address: string;
mechanism: 'approve' | 'permit2' | 'native';
}
export type MoveableTokenMap = Partial<{
ETH: MoveableToken;
SOL: MoveableToken;
USDT: MoveableToken;
WETH: MoveableToken;
}>;
export type PayableTokenMap = Partial<{
ETH: PayableToken;
USDT: PayableToken;
WETH: PayableToken;
USDC: PayableToken;
}>;
export declare class MoveableTokenAccessor {
private readonly tokens;
constructor(tokens: Record<string, MoveableToken>);
private require;
get ETH(): MoveableToken;
get SOL(): MoveableToken;
get USDT(): MoveableToken;
get WETH(): MoveableToken;
}
export declare class PayableTokenAccessor {
private readonly tokens;
constructor(tokens: Record<string, PayableToken>);
private require;
get ETH(): PayableToken;
get USDT(): PayableToken;
get USDC(): PayableToken;
get WETH(): PayableToken;
}
export interface ConversionQuote {
amountIn: string;
amountOut: string;
rate: number;
route?: string[];
timestamp: number;
}
export declare const MOVEABLE_TOKENS: Partial<Record<CHAIN, MoveableToken[]>>;
export declare const PAYABLE_TOKENS: Partial<Record<CHAIN, PayableToken[]>>;