UNPKG

@web5nexus/web3auth-core

Version:

Core Implementation for 1 click Web3 Social Auth Implementation for Ethereum, XDC, Bitcoin,Cosmos and other Altcoins.

104 lines 3.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const web3_1 = __importDefault(require("web3")); class XdcRpc { constructor(provider) { this.provider = provider; } async getChainId() { try { const web3 = new web3_1.default(this.provider); // Get the connected Chain's ID const chainId = await web3.eth.getChainId(); return chainId.toString(); } catch (error) { return error; } } async getAccounts() { try { const web3 = new web3_1.default(this.provider); // Get user's Ethereum public address var address = (await web3.eth.getAccounts())[0]; const prefix = 'xdc'; address = prefix + String(address).slice(2); return address; } catch (error) { return error; } } async getBalance() { try { const web3 = new web3_1.default(this.provider); // Get user's Ethereum public address const address = (await web3.eth.getAccounts())[0]; // Get user's balance in ether const balance = web3.utils.fromWei(await web3.eth.getBalance(address) // Balance is in wei ); return balance; } catch (error) { return error; } } async sendTransaction(amountInWei, toAddress, maxPriorityFeePerGas, maxFeePerGas) { try { const web3 = new web3_1.default(this.provider); // Get user's Ethereum public address const fromAddress = (await web3.eth.getAccounts())[0]; const destination = toAddress; const amount = amountInWei; // Convert 1 ether to wei // Set default values if not provided const defaultMaxPriorityFeePerGas = "5000000000"; const defaultMaxFeePerGas = "6000000000000"; // Use provided values or default values const priorityFeePerGas = maxPriorityFeePerGas !== undefined ? maxPriorityFeePerGas : defaultMaxPriorityFeePerGas; const feePerGas = maxFeePerGas !== undefined ? maxFeePerGas : defaultMaxFeePerGas; // Submit transaction to the blockchain and wait for it to be mined const receipt = await web3.eth.sendTransaction({ from: fromAddress, to: destination, value: amount, maxPriorityFeePerGas: priorityFeePerGas, maxFeePerGas: feePerGas, // Max fee per gas }); return receipt; } catch (error) { return error; } } async signMessage() { try { const web3 = new web3_1.default(this.provider); // Get user's Ethereum public address const fromAddress = (await web3.eth.getAccounts())[0]; const originalMessage = "Hello Web5"; // Sign the message const signedMessage = await web3.eth.personal.sign(originalMessage, fromAddress, "test password!" // configure your own password here. ); return signedMessage; } catch (error) { return error; } } async getPrivateKey() { try { const privateKey = await this.provider.request({ method: "eth_private_key", }); return privateKey; } catch (error) { return error; } } } exports.default = XdcRpc; //# sourceMappingURL=xdc.js.map