send-crypto
Version:
A minimal JavaScript library / wallet for sending crypto assets
91 lines • 6.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTransactionConfig = exports.getEndpoint = exports.getNetwork = exports.Network = exports.getEthersSigner = void 0;
const ethers_1 = require("ethers");
const getEthersSigner = (privateKey, endpoint) => {
// const provider = new HDWalletProvider(privateKey, endpoint);
const provider = new ethers_1.ethers.providers.JsonRpcProvider(endpoint);
const signer = new ethers_1.ethers.Wallet(privateKey, provider);
return [signer, signer.address];
};
exports.getEthersSigner = getEthersSigner;
// Free tier - only used as a fallback.
const defaultInfuraKey = "3b7a6c29f9c048d688a848899888aa96";
var Network;
(function (Network) {
Network["Mainnet"] = "mainnet";
Network["Ropsten"] = "ropsten";
Network["Kovan"] = "kovan";
Network["Rinkeby"] = "rinkeby";
Network["G\u00F6rli"] = "goerli";
})(Network = exports.Network || (exports.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",
};
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;
}
};
exports.getNetwork = getNetwork;
const infuraUrl = (network, infuraKey) => `https://${network}.infura.io/v3/${infuraKey}`;
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);
exports.getEndpoint = getEndpoint;
// Create a `txConfig` object with only the relevant fields in the `options`
// object.
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;
};
exports.getTransactionConfig = getTransactionConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGFuZGxlcnMvRVRIL2V0aFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFpRTtBQUUxRCxNQUFNLGVBQWUsR0FBRyxDQUMzQixVQUFrQixFQUNsQixRQUFnQixFQUNPLEVBQUU7SUFDekIsK0RBQStEO0lBRS9ELE1BQU0sUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFUVyxRQUFBLGVBQWUsbUJBUzFCO0FBRUYsdUNBQXVDO0FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsa0NBQWtDLENBQUM7QUFFNUQsSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2YsOEJBQW1CLENBQUE7SUFDbkIsOEJBQW1CLENBQUE7SUFDbkIsMEJBQWUsQ0FBQTtJQUNmLDhCQUFtQixDQUFBO0lBQ25CLGdDQUFnQixDQUFBO0FBQ3BCLENBQUMsRUFOVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFNbEI7QUFFRCxNQUFNLGVBQWUsR0FBc0M7SUFDdkQsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsNEJBQTRCO0lBQy9DLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLDJCQUEyQjtJQUM1QyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSx1Q0FBdUM7SUFDMUQsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsK0JBQStCO0NBQ25ELENBQUM7QUFFSyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQWUsRUFBVyxFQUFFO0lB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