send-crypto
Version:
A minimal JavaScript library / wallet for sending crypto assets
84 lines • 6.15 kB
JavaScript
import { ethers } from "ethers";
export const getEthersSigner = (privateKey, endpoint) => {
// const provider = new HDWalletProvider(privateKey, endpoint);
const provider = new ethers.providers.JsonRpcProvider(endpoint);
const signer = new ethers.Wallet(privateKey, provider);
return [signer, signer.address];
};
// Free tier - only used as a fallback.
const defaultInfuraKey = "3b7a6c29f9c048d688a848899888aa96";
export var Network;
(function (Network) {
Network["Mainnet"] = "mainnet";
Network["Ropsten"] = "ropsten";
Network["Kovan"] = "kovan";
Network["Rinkeby"] = "rinkeby";
Network["G\u00F6rli"] = "goerli";
})(Network || (Network = {}));
const publicEndpoints = {
[Network.Mainnet]: "https://cloudflare-eth.com",
[Network.Kovan]: "https://kovan.poa.network",
[Network.Rinkeby]: "https://rinkeby-light.eth.linkpool.io",
[Network.Görli]: "https://rpc.goerli.mudit.blog",
};
export const getNetwork = (network) => {
switch (network.toLowerCase()) {
case "mainnet":
case "main":
return Network.Mainnet;
case "kovan":
return Network.Kovan;
case "rinkeby":
return Network.Rinkeby;
case "görli":
case "goerli":
case "gorli":
return Network.Görli;
case "ropsten":
case "testnet":
default:
return Network.Ropsten;
}
};
const infuraUrl = (network, infuraKey) => `https://${network}.infura.io/v3/${infuraKey}`;
export const getEndpoint = (network, ethereumNode, infuraKey) =>
// Check if an ethereum node has been provided.
ethereumNode ||
// Check if an infura key has been provided.
(infuraKey && infuraUrl(network, infuraKey)) ||
// Check if there's a public endpoint.
publicEndpoints[network] ||
// Use the public infura key.
infuraUrl(network, defaultInfuraKey);
// Create a `txConfig` object with only the relevant fields in the `options`
// object.
export const getTransactionConfig = (options) => {
const txConfig = {};
// tslint:disable: no-object-mutation
if (options.gasLimit) {
txConfig.gasLimit = options.gasLimit;
}
if (options.gasPrice) {
txConfig.gasPrice = options.gasPrice;
}
if (options.maxFeePerGas) {
txConfig.maxFeePerGas = options.maxFeePerGas;
}
if (options.maxPriorityFeePerGas) {
txConfig.maxPriorityFeePerGas = options.maxPriorityFeePerGas;
}
if (options.nonce) {
txConfig.nonce = options.nonce;
}
if (options.type) {
txConfig.type = options.type;
}
if (options.accessList) {
txConfig.accessList = options.accessList;
}
if (options.customData) {
txConfig.customData = options.customData;
}
return txConfig;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGFuZGxlcnMvRVRIL2V0aFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQW1DLE1BQU0sUUFBUSxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUMzQixVQUFrQixFQUNsQixRQUFnQixFQUNPLEVBQUU7SUFDekIsK0RBQStEO0lBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRix1Q0FBdUM7QUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUU1RCxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2YsOEJBQW1CLENBQUE7SUFDbkIsOEJBQW1CLENBQUE7SUFDbkIsMEJBQWUsQ0FBQTtJQUNmLDhCQUFtQixDQUFBO0lBQ25CLGdDQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFOVyxPQUFPLEtBQVAsT0FBTyxRQU1sQjtBQUVELE1BQU0sZUFBZSxHQUFzQztJQUN2RCxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSw0QkFBNEI7SUFDL0MsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsMkJBQTJCO0lBQzVDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLHVDQUF1QztJQUMxRCxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSwrQkFBK0I7Q0FDbkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FB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