@machinomy/hdwallet-provider
Version:
HD Wallet-enabled Web3 provider
42 lines • 1.49 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Engine = void 0;
const web3_provider_engine_1 = __importDefault(require("web3-provider-engine"));
const util_1 = require("./util");
class Engine extends web3_provider_engine_1.default {
async _getBlockByNumberRepeat(blockNumber) {
const attempts = 5;
const interval = 1000;
const req = util_1.createPayload({ method: "eth_getBlockByNumber", params: [blockNumber, false], skipCache: true });
for (let attempt = 0; attempt < attempts; attempt++) {
const response = await this._handlePromise(req);
if (response.error || response.result) {
return response;
}
else {
await util_1.timeout(interval);
}
}
}
_handlePromise(req) {
return new Promise((resolve, reject) => {
this._handleAsync(req, (err, res) => {
err ? reject(err) : resolve(res);
});
});
}
_getBlockByNumber(blockNumber, callback) {
this._getBlockByNumberRepeat(blockNumber)
.then(result => {
callback(null, result);
})
.catch(error => {
callback(error);
});
}
}
exports.Engine = Engine;
//# sourceMappingURL=engine.js.map