const initialize = function(network) {
return new Promise((resolve, reject) => {
//Make sure network is supplied
if (network === undefined) {
return reject(new Error("No network provided. Will not initialize."));
}
//Lazy load
if (!web3) {
//Check if injection is wanted
if (network === "injection") {
//Check if injection exists
useInjection()
.then(result => {
return resolve(result);
})
//catch if injection does not exist
.catch(err => {
return reject(err);
});
} else {
//Otherwise, initialize with network provided
web3 = new Web3(network);
return resolve(web3);
}
} else {
//web3 already initialized error
return reject(
new Error(
"Web3 already initialized. use setProvider() if trying to change providers."
)
);
}
});
};