UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

91 lines 6.56 kB
"use strict"; 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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