Skip to content

Instantly share code, notes, and snippets.

View xavierlepretre's full-sized avatar
🤯

Xavier Leprêtre xavierlepretre

🤯
View GitHub Profile
@xavierlepretre
xavierlepretre / promisifyWeb3.js
Created January 8, 2017 17:36
Convert `web3` asynchronous calls into Promises.
module.exports = {
promisify: function (web3) {
// Pipes values from a Web3 callback.
var callbackToResolve = function (resolve, reject) {
return function (error, value) {
if (error) {
reject(error);
} else {
resolve(value);
}
@xavierlepretre
xavierlepretre / sequentialPromise.js
Last active April 25, 2023 16:03
Like `Promise.all()` but where all promises are started sequentially.
const Promise = require("bluebird");
/**
* @param {!Array.<function.Promise.<Any>>} promiseArray.
* @returns {!Promise.<Array.<Any>>} The results of the promises passed to the function.
*/
module.exports = function sequentialPromise(promiseArray) {
const result = promiseArray.reduce(
(reduced, promise, index) => {
reduced.results.push(undefined);
@xavierlepretre
xavierlepretre / sequentialPromiseNamed.js
Last active May 25, 2019 10:56
Like `Promise.all()` but where all promises are started sequentially and it takes an object.
const Promise = require("bluebird");
/**
* @param {!Object.<function.<Promise.<Any>>>} promiseObject. Each key maps to a function
* that returns a promise.
* @returns {!Promise.<Object.<Any>>} The results of the promises passed to the function.
*/
module.exports = function sequentialPromiseNamed(promiseObject) {
const result = Object.keys(promiseObject).reduce(
(reduced, key) => {
"use strict";
const Rx = require('rx');
module.exports = function addFilterObservableToWeb3(web3) {
web3.eth.filterObservable = function(_options) {
const filter = web3.eth.filter(_options);
return Rx.Observable.create(function(observer) {