UNPKG

ledger-web3-subprovider

Version:
51 lines (50 loc) 2.52 kB
"use strict"; // Based on source from: // https://github.com/web3modal/ledger-provider // Package update and code upgrade by: Filipe Soccol var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const web3_provider_engine_1 = __importDefault(require("web3-provider-engine")); // @ts-ignore const cache_js_1 = __importDefault(require("web3-provider-engine/subproviders/cache.js")); // @ts-ignore const rpc_js_1 = __importDefault(require("web3-provider-engine/subproviders/rpc.js")); const ledgerSubprovider_1 = require("./ledgerSubprovider"); const hw_transport_webusb_1 = __importDefault(require("@ledgerhq/hw-transport-webusb")); const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth")); function ledgerEthereumBrowserClientFactoryAsync() { return __awaiter(this, void 0, void 0, function* () { const ledgerConnection = yield hw_transport_webusb_1.default.create(); const ledgerEthClient = new hw_app_eth_1.default(ledgerConnection); // @ts-ignore return ledgerEthClient; }); } class LedgerProvider extends web3_provider_engine_1.default { constructor(opts) { super({ pollingInterval: opts.pollingInterval, }); this.addProvider(new ledgerSubprovider_1.LedgerSubprovider({ networkId: opts.chainId, ledgerEthereumClientFactoryAsync: ledgerEthereumBrowserClientFactoryAsync, accountFetchingConfigs: opts.accountFetchingConfigs, baseDerivationPath: opts.baseDerivationPath, })); this.addProvider(new cache_js_1.default()); this.addProvider(new rpc_js_1.default(opts)); this.start(); } } exports.default = LedgerProvider;