easyethers v1.0.1
EasyEthers
EasyEthers is a lightweight and user-friendly JavaScript library designed to simplify interactions with Ethereum blockchain. Built on top of ethers.js, EasyEthers streamlines wallet management, transaction processing, and message signing to provide a seamless experience for developers working with Ethereum-based applications.
getProviderUrl
The getProviderUrl function returns the appropriate provider URL based on the given provider, API key, and network.
Parameters
provider(String): The provider to be used. Supported values areinfura,alchemy, andquicknode.apiKey(String): The API key for the chosen provider.network(Number): The network ID for the target blockchain network.
Returns
- (String): The provider URL.
Supported Networks
| Network ID | Network Name |
|---|---|
| 1 | Ethereum Mainnet |
| 3 | Ropsten Testnet |
| 4 | Rinkeby Testnet |
| 5 | Görli Testnet |
| 42 | Kovan Testnet |
| 56 | Binance Smart Chain Mainnet |
| 97 | Binance Smart Chain Testnet |
| 100 | xDai Mainnet |
| 137 | Polygon (Matic) Mainnet |
| 80001 | Polygon (Matic) Mumbai Testnet |
Example Usage
const providerUrl = getProviderUrl("infura", "your_infura_api_key", 1);
console.log(providerUrl); // https://mainnet.infura.io/v3/your_infura_api_keycreateWalletConnectProvider
The createWalletConnectProvider function creates and returns a WalletConnect provider instance for the specified blockchain network.
Parameters
rpcUrl(String): The RPC URL for the target blockchain network.chainId(Number): The network ID for the target blockchain network.
Returns
- (Promise): Resolves to the WalletConnect provider instance.
Example Usage
(async () => {
const rpcUrl = getProviderUrl("infura", "your_infura_api_key", 1);
const walletConnectProvider = await createWalletConnectProvider(rpcUrl, 1);
console.log(walletConnectProvider);
})();getConnectedAddress
The getConnectedAddress function retrieves the connected Ethereum address from the given provider instance.
Parameters
provider(Object): A provider instance (e.g., WalletConnect provider or Ethers.js provider).
Returns
- (Promise): Resolves to the connected Ethereum address as a string.
Example Usage
(async () => {
const rpcUrl = getProviderUrl("infura", "your_infura_api_key", 1);
const walletConnectProvider = await createWalletConnectProvider(rpcUrl, 1);
const connectedAddress = await getConnectedAddress(walletConnectProvider);
console.log(connectedAddress);
})();sendTransactionWithWalletConnect
The sendTransactionWithWalletConnect function sends a transaction using a WalletConnect provider.
Parameters
provider(Object): The WalletConnect provider instance created usingcreateWalletConnectProvider.toAddress(String): The Ethereum address of the recipient.amount(String): The amount to be sent in Ether.gasPrice(String): The gas price for the transaction in Gwei.gasLimit(Number): The gas limit for the transaction.
Returns
- (Promise): Resolves to the transaction hash.
Example Usage
(async () => {
const rpcUrl = getProviderUrl("infura", "your_infura_api_key", 1);
const walletConnectProvider = await createWalletConnectProvider(rpcUrl, 1);
const toAddress = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const amount = "0.01";
const gasPrice = "20";
const gasLimit = 21000;
const txHash = await sendTransactionWithWalletConnect(
walletConnectProvider,
toAddress,
amount,
gasPrice,
gasLimit
);
console.log(txHash);
})();disconnectWalletConnect
The disconnectWalletConnect function disconnects from the WalletConnect provider.
Parameters
provider(Object): The WalletConnect provider instance to disconnect.
Returns
- (Promise): Resolves when the provider has been disconnected.
Example Usage
(async () => {
const rpcUrl = getProviderUrl("infura", "your_infura_api_key", 1);
const walletConnectProvider = await createWalletConnectProvider(rpcUrl, 1);
// Disconnect from the WalletConnect provider
await disconnectWalletConnect(walletConnectProvider);
})();generateRandomWallet
The generateRandomWallet function generates a random Ethereum wallet using the ethers.js library.
Parameters
None.
Returns
(Object): An object containing the generated wallet's address and private key.
address(String): The wallet's Ethereum address.privateKey(String): The wallet's private key.
Example Usage
const randomWallet = generateRandomWallet();
console.log(randomWallet);
// {
// address: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
// privateKey: '0xf1c9449a5b3e2f8c3b8e3b91b9f9b87db5c1d5dfb88e0a25d869e8a068202d0b'
// }generateWalletFromSeed
The generateWalletFromSeed function generates a wallet from a given secret seed (mnemonic phrase).
Parameters
seed(String): The secret seed (mnemonic phrase) to generate the wallet from.
Returns
(Object): An object containing the wallet's address and private key.
address(String): The wallet's public address.privateKey(String): The wallet's private key.
Example Usage
const seed = "your secret seed words here";
const wallet = generateWalletFromSeed(seed);
console.log(wallet.address); // 0x...
console.log(wallet.privateKey); // 0x...importWalletFromPrivateKey
The importWalletFromPrivateKey function imports a wallet using a given private key.
Parameters
privateKey(String): The private key for the wallet to be imported.
Returns
- (Object): An object containing the
addressandprivateKeyof the imported wallet.
Example Usage
const wallet = importWalletFromPrivateKey("0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef");
console.log(wallet);
// {
// address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
// privateKey: "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
// }getBalance
The getBalance function retrieves the balance of a specified address.
Parameters
address(String): The Ethereum address to retrieve the balance for.providerUrl(String): The provider URL obtained from thegetProviderUrlfunction.
Returns
- (Promise): A promise that resolves to the balance of the specified address in Ether as a string.
Example Usage
(async () => {
const address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const providerUrl = getProviderUrl("infura", "your_infura_api_key", 1);
const balance = await getBalance(address, providerUrl);
console.log(`Balance: ${balance} ETH`);
})();sendTransaction
The sendTransaction function sends a transaction from one address to another, specifying the amount, gas price, and gas limit.
Parameters
fromPrivateKey(String): The private key of the sender's wallet.toAddress(String): The recipient's wallet address.amount(String): The amount of Ether to be sent (in ETH).gasPrice(String): The gas price for the transaction (in Gwei).gasLimit(Number): The gas limit for the transaction.providerUrl(String): The provider URL to be used for sending the transaction.
Returns
- (Promise): A promise that resolves to the transaction hash.
Example Usage
(async () => {
const txHash = await sendTransaction(
"your_private_key",
"recipient_address",
"1", // Amount in ETH
"50", // Gas price in Gwei
21000, // Gas limit
"https://mainnet.infura.io/v3/your_infura_api_key"
);
console.log(txHash); // Transaction hash
})();