Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
engine.addProvider(new StaticSubprovider({
web3_clientVersion: 'MetaMask-ZeroClient/v0.0.0/javascript',
net_version: '1',
net_listening: true,
net_peerCount: '0xc',
eth_protocolVersion: '63',
eth_hashrate: '0x0',
eth_mining: false,
eth_syncing: true,
}))
// cache
engine.addProvider(new CacheSubprovider())
// filters - e.g.: eth_newBlockFilter
engine.addProvider(new FilterSubprovider())
// vm - e.g.: eth_call
engine.addProvider(new VmSubprovider())
// data source - e.g.: eth_getBalance
engine.addProvider(new RpcSubprovider({
rpcUrl: opts.rpcUrl || 'https://rpc.metamask.io/',
}))
engine.on('block', function(block){
console.log('================================')
console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex'))
console.log('================================')
})
// start polling for blocks}
}
var wallet = Wallet.fromPrivateKey(new Buffer(privateKey, "hex"));
this.engine = new ProviderEngine();
this.web3 = new Web3(this.engine);
// static results
this.engine.addProvider(new FixtureSubprovider({
web3_clientVersion: 'ProviderEngine/v0.0.0/javascript',
net_listening: true,
eth_hashrate: '0x00',
eth_mining: false,
eth_syncing: true
}));
// filters
this.engine.addProvider(new FilterSubprovider());
// id mgmt
this.engine.addProvider(new WalletSubprovider(wallet, {}));
this.engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(rpcURL)));
this.engine.on('block', function (block) {
console.log('BLOCK CHANGED:', '#' + block.number.toString('hex'), '0x' + block.hash.toString('hex'));
});
// network connectivity error
this.engine.on('error', function (err) {
// report connectivity errors
console.error(err.stack);
});export function nanoWeb3Provider(providerUrl, nanoPath) {
const web3HttpProvider = new Web3.providers.HttpProvider(providerUrl);
const engine = new ProviderEngine();
engine.addProvider(new FilterSubprovider());
engine.addProvider(LedgerWalletSubproviderFactory.default(new Web3(web3HttpProvider), nanoPath));
engine.addProvider(new Web3Subprovider(web3HttpProvider));
engine.on("block", () => {
// console.log("================================");
// console.log(
// "BLOCK CHANGED:",
// `#${block.number.toString("hex")}`,
// `0x${block.hash.toString("hex")}`
// );
// console.log("================================");
});
engine.start();
engine.stop();
return engine;var Web3 = require("web3");
const FilterSubprovider = require('web3-provider-engine/subproviders/filters.js');
// Get our mnemonic and create an hdwallet
var mnemonic = "piano file obey immense polar rack great subject clutch camera maid ostrich";
var hdwallet = hdkey.fromMasterSeed(bip39.mnemonicToSeed(mnemonic));
// Get the first account using the standard hd path.
var wallet_hdpath = "m/44'/60'/0'/0/";
var wallet = hdwallet.derivePath(wallet_hdpath + "0").getWallet();
var address = "0x" + wallet.getAddress().toString("hex");
var providerUrl = "https://testnet.infura.io";
var engine = new ProviderEngine();
// filters
engine.addProvider(new FilterSubprovider());
engine.addProvider(new WalletSubprovider(wallet, {}));
engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(providerUrl)));
engine.start(); // Required by the provider engine.
module.exports = {
networks: {
ropsten: {
network_id: 3, // Official ropsten network id
provider: engine, // Use the custom provider
from: address, // Use the address derived address
gas: 4444444
},
development: {
host: "localhost",
port: 8545, // This is the conventional port. If you're using the Ganache Blockchain, change port value to the Ganache default port 7545. If you're using Truffle develop network, change port value to 9545// Create wallet from existing private key
const privateKey = require('./network_keys/private/rinkeby');
const wallet = ethereumjsWallet.fromPrivateKey(new Buffer(privateKey, "hex"));
const sender = "0x" + wallet.getAddress().toString("hex");
// Using rinkeby testnet
const apiKey = require('./network_keys/api/infura');
const providerUrl = "https://rinkeby.infura.io/" + apiKey;
const engine = new ProviderEngine();
const provider = new Web3.providers.HttpProvider(providerUrl);
const web3 = new Web3(provider);
// filters
engine.addProvider(new FilterSubprovider());
engine.addProvider(new WalletSubprovider(wallet, {}));
engine.addProvider(new Web3Subprovider(provider));
engine.start(); // FIXME: Truffle hangs after compilation/migration because of this
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*", // Match any network id
gas: 4000000,
},
rinkeby: {
network_id: 4,
provider: () => engine,engine.addProvider(new NonceTrackerSubprovider())
// cache layer
engine.addProvider(new CacheSubprovider())
// static results
engine.addProvider(new FixtureSubprovider({
web3_clientVersion: 'MetaMask-ProviderEngine/v0.0.0/javascript',
net_listening: true,
eth_hashrate: '0x0',
eth_mining: false,
eth_syncing: true,
}))
// filters
engine.addProvider(new FilterSubprovider())
// vm
engine.addProvider(new VmSubprovider())
// id mgmt
engine.addProvider(new HookedWalletSubprovider({
getAccounts: opts.getAccounts,
approveTx: opts.approveTx,
signTransaction: opts.signTransaction,
}))
// data source
engine.addProvider(new RpcSubprovider({
rpcUrl: opts.rpcUrl,
}))signMessage({ data, from }, cb) {
core.signMsg(data, from)
.then(signature => cb(null, signature))
.catch(err => cb(err));
},
signPersonalMessage({ data, from }, cb) {
core.signMsg(data, from)
.then(signature => cb(null, signature))
.catch(err => cb(err));
}
})
);
//this.engine.addProvider(new GaspriceProvider());
this.engine.addProvider(new NonceSubProvider());
this.engine.addProvider(new FiltersSubprovider());
this.engine.addProvider({
handleRequest(payload, next, end) {
core.handleRequest(network, payload)
.then(result => {
try {
end(null, result);
} catch (err) {
if (err.message !== 'Could not find block') {
throw err;
}
}
})
.catch(err => end(err));
},
setEngine() {},