@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
JavaScript
;
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