@hashflow/contracts-evm
Version:
EVM Smart Contracts for Solidity
293 lines (292 loc) • 12.4 kB
TypeScript
/// <reference types="node" />
import { Signer, BigNumberish, TransactionResponse } from 'ethers';
export declare const MAIN_NETWORK_NAMES: readonly ["ethereum", "optimism", "arbitrum", "polygon", "bnb", "avalanche", "base"];
export declare const TEST_NETWORK_NAMES: readonly ["mumbai", "goerli", "bnb-testnet", "zksync-testnet", "sepolia", "monad-testnet"];
export declare const WORMHOLE_NETWORK_NAMES: readonly ["wormhole1", "wormhole2"];
export declare const NETWORK_NAMES: readonly ["ethereum", "optimism", "arbitrum", "polygon", "bnb", "avalanche", "base", "mumbai", "goerli", "bnb-testnet", "zksync-testnet", "sepolia", "monad-testnet"];
export declare const NETWORK_NAMES_EXTENDED: readonly ["ethereum", "optimism", "arbitrum", "polygon", "bnb", "avalanche", "base", "mumbai", "goerli", "bnb-testnet", "zksync-testnet", "sepolia", "monad-testnet", "wormhole1", "wormhole2", "localhost"];
export type NetworkName = (typeof NETWORK_NAMES)[number];
export type NetworkNameExtended = NetworkName | (typeof WORMHOLE_NETWORK_NAMES)[number] | 'localhost';
type MainnetChainId = 1 | 137 | 56 | 42161 | 10 | 43114 | 8453;
type TestnetChainId = 5 | 80001 | 97 | 280 | 11155111 | 10143;
export type ChainId = MainnetChainId | TestnetChainId;
export type ChainIdExtended = ChainId | 1337 | 31337 | 1397 | 1338;
export declare const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
interface NetworkConfigBase {
nativeTokenSymbol: string;
nativeTokenName: string;
nativeTokenDecimals: number;
hashflowChainId: number;
testTokens: boolean;
weth?: string;
wormholeEndpoint?: string;
wormholeChainId?: number;
wormholeConsistency?: number;
wormholeFastConsistency?: number;
layerZeroEndpoint?: string;
layerZeroChainId?: number;
layerZeroNonceContract?: string;
zksync: boolean;
}
export type NetworkConfig = NetworkConfigBase & {
name: NetworkName;
chainId: ChainId;
};
export type NetworkConfigExtended = NetworkConfigBase & {
name: NetworkNameExtended;
chainId: ChainIdExtended;
};
export declare const LOCALHOST: {
readonly chainId: 31337;
readonly name: "localhost";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 31337;
readonly testTokens: true;
readonly zksync: false;
};
export declare const ETHEREUM: {
readonly chainId: 1;
readonly name: "ethereum";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 1;
readonly testTokens: false;
readonly weth: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
readonly layerZeroEndpoint: "0x66A71Dcef29A0fFBDBE3c6a460a3B5BC225Cd675";
readonly layerZeroChainId: 101;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly wormholeChainId: 2;
readonly wormholeEndpoint: "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly zksync: false;
};
export declare const ARBITRUM: {
readonly chainId: 42161;
readonly name: "arbitrum";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 2;
readonly testTokens: false;
readonly weth: "0x82af49447d8a07e3bd95bd0d56f35241523fbab1";
readonly layerZeroEndpoint: "0x3c2269811836af69497E5F486A85D7316753cf62";
readonly layerZeroChainId: 110;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly wormholeChainId: 23;
readonly wormholeEndpoint: "0xa5f208e072434bC67592E4C49C1B991BA79BCA46";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly zksync: false;
};
export declare const OPTIMISM: {
readonly chainId: 10;
readonly name: "optimism";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 3;
readonly testTokens: false;
readonly weth: "0x4200000000000000000000000000000000000006";
readonly layerZeroEndpoint: "0x3c2269811836af69497E5F486A85D7316753cf62";
readonly layerZeroChainId: 111;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly zksync: false;
readonly wormholeChainId: 24;
readonly wormholeConsistency: 1;
readonly wormholeEndpoint: "0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722";
};
export declare const AVALANCHE: {
readonly chainId: 43114;
readonly name: "avalanche";
readonly nativeTokenSymbol: "AVAX";
readonly nativeTokenName: "Avax";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 4;
readonly testTokens: false;
readonly weth: "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7";
readonly layerZeroEndpoint: "0x3c2269811836af69497E5F486A85D7316753cf62";
readonly layerZeroChainId: 106;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly wormholeChainId: 6;
readonly wormholeEndpoint: "0x54a8e5f9c4CbA08F9943965859F6c34eAF03E26c";
readonly wormholeConsistency: 1;
readonly zksync: false;
};
export declare const POLYGON: {
readonly chainId: 137;
readonly name: "polygon";
readonly nativeTokenSymbol: "MATIC";
readonly nativeTokenName: "Matic";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 5;
readonly testTokens: false;
readonly weth: "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270";
readonly layerZeroEndpoint: "0x3c2269811836af69497E5F486A85D7316753cf62";
readonly layerZeroChainId: 109;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly wormholeChainId: 5;
readonly wormholeEndpoint: "0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly zksync: false;
};
export declare const BNB: {
readonly chainId: 56;
readonly name: "bnb";
readonly nativeTokenSymbol: "BNB";
readonly nativeTokenName: "BNB";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 6;
readonly testTokens: false;
readonly weth: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
readonly layerZeroEndpoint: "0x3c2269811836af69497E5F486A85D7316753cf62";
readonly layerZeroChainId: 102;
readonly layerZeroNonceContract: "0x5B905fE05F81F3a8ad8B28C6E17779CFAbf76068";
readonly wormholeChainId: 4;
readonly wormholeEndpoint: "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B";
readonly wormholeConsistency: 15;
readonly zksync: false;
};
export declare const BASE: {
readonly chainId: 8453;
readonly name: "base";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 7;
readonly testTokens: false;
readonly weth: "0x4200000000000000000000000000000000000006";
readonly wormholeChainId: 30;
readonly wormholeEndpoint: "0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly zksync: false;
};
export declare const GOERLI: {
readonly chainId: 5;
readonly name: "goerli";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 101;
readonly testTokens: false;
readonly weth: "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6";
readonly layerZeroChainId: 10121;
readonly layerZeroEndpoint: "0xbfD2135BFfbb0B5378b56643c2Df8a87552Bfa23";
readonly layerZeroNonceContract: "0xe931419cE7f9Ad7Bf9ec8e2657eF6C805A92089c";
readonly wormholeChainId: 2;
readonly wormholeEndpoint: "0x706abc4E45D419950511e474C7B9Ed348A4a716c";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly zksync: false;
};
export declare const MUMBAI: {
readonly chainId: 80001;
readonly name: "mumbai";
readonly nativeTokenSymbol: "MATIC";
readonly nativeTokenName: "Matic";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 103;
readonly testTokens: false;
readonly weth: "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889";
readonly layerZeroEndpoint: "0xf69186dfBa60DdB133E91E9A4B5673624293d8F8";
readonly layerZeroChainId: 10109;
readonly layerZeroNonceContract: "0xB3b1f3dB03f7f3A0E49e0F4EEd0fb175B8A2cE15";
readonly wormholeChainId: 5;
readonly wormholeEndpoint: "0x0CBE91CF822c73C2315FB05100C2F714765d5c20";
readonly wormholeConsistency: 1;
readonly zksync: false;
};
export declare const BNB_TESTNET: {
readonly chainId: 97;
readonly name: "bnb-testnet";
readonly nativeTokenSymbol: "BNB";
readonly nativeTokenName: "BNB";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 104;
readonly testTokens: false;
readonly weth: "0xae13d989dac2f0debff460ac112a837c89baa7cd";
readonly layerZeroEndpoint: "0x6Fcb97553D41516Cb228ac03FdC8B9a0a9df04A1";
readonly layerZeroChainId: 10102;
readonly layerZeroNonceContract: "0x318b10788404E23dE2e02d52fA1329BDf6efD1FE";
readonly wormholeChainId: 4;
readonly wormholeEndpoint: "0x68605AD7b15c732a30b1BbC62BE8F2A509D74b4D";
readonly wormholeConsistency: 1;
readonly zksync: false;
};
export declare const ZKSYNC_TESTNET: {
readonly chainId: 280;
readonly name: "zksync-testnet";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 105;
readonly testTokens: false;
readonly weth: "0x2da10a1e27bf85cedd8ffb1abbe97e53391c0295";
readonly zksync: true;
};
export declare const SEPOLIA: {
readonly chainId: 11155111;
readonly name: "sepolia";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 106;
readonly testTokens: false;
readonly wormholeChainId: 10002;
readonly wormholeEndpoint: "0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78";
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 200;
readonly weth: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14";
readonly zksync: false;
};
export declare const MONAD_TESTNET: {
readonly chainId: 10143;
readonly name: "monad-testnet";
readonly nativeTokenSymbol: "MON";
readonly nativeTokenName: "Monad";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 107;
readonly testTokens: false;
readonly weth: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701";
readonly zksync: false;
};
export declare const WORMHOLE1: {
readonly chainId: 1338;
readonly name: "wormhole1";
readonly nativeTokenSymbol: "ETH";
readonly nativeTokenName: "Ether";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 20001;
readonly testTokens: true;
readonly weth: "0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E";
readonly wormholeEndpoint: "0xC89Ce4735882C9F0f0FE26686c53074E09B0D550";
readonly wormholeChainId: 2;
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 1;
readonly zksync: false;
};
export declare const WORMHOLE2: {
readonly chainId: 1397;
readonly name: "wormhole2";
readonly nativeTokenSymbol: "BNB";
readonly nativeTokenName: "BNB";
readonly nativeTokenDecimals: 18;
readonly hashflowChainId: 20002;
readonly testTokens: true;
readonly weth: "0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E";
readonly wormholeEndpoint: "0xC89Ce4735882C9F0f0FE26686c53074E09B0D550";
readonly wormholeChainId: 4;
readonly wormholeConsistency: 1;
readonly wormholeFastConsistency: 1;
readonly zksync: false;
};
export declare const NETWORK_CONFIG_BY_NAME: Record<NetworkName, NetworkConfig>;
export declare const HARDHAT_NETWORK_CONFIG_BY_NAME: Record<NetworkNameExtended, NetworkConfigExtended>;
export declare function padAddressTo32Bytes(address: string | Buffer): Buffer;
export declare function sendETH(signer: Signer, value: BigNumberish, recipient: string): Promise<TransactionResponse>;
export {};