@asset-projects/ethers-wrapper
Version:
91 lines (90 loc) • 3.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getJsonRpcSigner = exports.connectWallet = exports.getWalletSigner = exports.createHDWalletFromMnemonic = exports.getWalletFromPrivateKey = exports.getWalletFromMnemonic = exports.createWallet = exports.getVoidSigner = void 0;
const ethers_1 = require("ethers");
/**
* @param address string; 0xb3A566Ff63cE...
* @param provider ethers.providers.BaseProvider | ethers.providers.JsonRpcProvider | ethers.providers.InfuraProvider | ethers.providers.AlchemyProvider | ethers.providers.AnkrProvider;
* @returns ethers.VoidSigner;
*/
const getVoidSigner = (address, provider) => {
if (!ethers_1.utils.isAddress(address))
return;
const signer = new ethers_1.ethers.VoidSigner(address, provider);
return signer;
};
exports.getVoidSigner = getVoidSigner;
/**
* @returns ethers.Wallet;
*/
const createWallet = () => {
return ethers_1.ethers.Wallet.createRandom();
};
exports.createWallet = createWallet;
/**
* @param mnemonic string; term brand sight ...
* @param index number | undefined; default: 0
* @returns ethers.Wallet | undefined;
*/
const getWalletFromMnemonic = (mnemonic, index = 0) => {
if (!ethers_1.ethers.utils.isValidMnemonic(mnemonic))
return;
const wallet = ethers_1.ethers.Wallet.fromMnemonic(mnemonic, `m/44'/60'/0'/0/${index}`);
return wallet;
};
exports.getWalletFromMnemonic = getWalletFromMnemonic;
/**
* @param privateKey string: 0x4cca...;
* @returns ethers.Wallet | undefined;
*/
const getWalletFromPrivateKey = (privateKey) => {
try {
const wallet = new ethers_1.ethers.Wallet(privateKey);
return wallet;
}
catch (_a) {
return;
}
};
exports.getWalletFromPrivateKey = getWalletFromPrivateKey;
/**
* @param mnemonic string; term brand sight ...
* @param index number | undefined; default: 0
* @returns ethers.utils.HDNode | undefined;
*/
const createHDWalletFromMnemonic = (mnemonic, index = 0) => {
if (!ethers_1.ethers.utils.isValidMnemonic(mnemonic))
return;
const hdnode = ethers_1.ethers.utils.HDNode.fromMnemonic(mnemonic);
const hdWallet = hdnode.derivePath(`m/44'/60'/0'/0/${index}`);
return hdWallet;
};
exports.createHDWalletFromMnemonic = createHDWalletFromMnemonic;
/**
* @param privateKey string: 0x4cca...;
* @param provider ethers.providers.BaseProvider | ethers.providers.JsonRpcProvider | ethers.providers.InfuraProvider | ethers.providers.AlchemyProvider | ethers.providers.AnkrProvider;
* @returns ethers.Wallet;
*/
const getWalletSigner = (privateKey, provider) => {
return new ethers_1.ethers.Wallet(privateKey, provider);
};
exports.getWalletSigner = getWalletSigner;
/**
* @param wallet ethers.Wallet;
* @param provider ethers.providers.BaseProvider | ethers.providers.JsonRpcProvider | ethers.providers.InfuraProvider | ethers.providers.AlchemyProvider | ethers.providers.AnkrProvider;
* @returns ethers.Wallet;
*/
const connectWallet = (wallet, provider) => {
const walletSigner = wallet.connect(provider);
return walletSigner;
};
exports.connectWallet = connectWallet;
/**
* @param provider ethers.providers.Web3Provider;
* @returns ethers.providers.JsonRpcSigner;
*/
const getJsonRpcSigner = (provider) => {
const signer = provider.getSigner();
return signer;
};
exports.getJsonRpcSigner = getJsonRpcSigner;