const web3 = require('web3') const BlockAppsWeb3Provider = require('blockapps-web3') const Transaction = require('ethereumjs-tx') require('object.entries').shim() // const rpcUrl = 'https://rpc.metamask.io' // var provider = new MetamaskProvider(forwardPayload, rpcUrl) var provider = new BlockAppsWeb3Provider({ host: 'http://hacknet.blockapps.net', // host: 'http://api.blockapps.net', transaction_signer: { // Can be any object that implements the following methods: hasAddress: function(address, callback) { console.log('metamask provider - asked for address ownership', address) callback(null, true) }, signTransaction: function(txParams, callback) { txParams.gasLimit = txParams.gas var tx = new Transaction(txParams) tx.sign(new Buffer('0d0ba14043088cd629a978b49c8691deca5926f0271432bc0064e4745bac0a9f', 'hex')) callback(null, '0x'+tx.serialize().toString('hex')) }, }, coinbase: '0x00000000000', accounts: ['0x985095ef977ba75fb2bb79cd5c4b84c81392dff6'], // host: function(){ debugger }, }); const documentOrigin = window.location.origin const allowedMessageTarget = 'metamask' const allowedMessageType = 'addUnsignedTx' web3.setProvider(provider) // disable setProvider web3.setProvider = function(){} // injecting web3 console.log('Metamask injected web3') // log all the stuff! // provider.verbosity = 1 // web3.currentProvider.vm.onStep = function(data, cb){ // console.log(data) // cb() // } window.web3 = web3 function forwardPayload(payload){ window.postMessage({ to: allowedMessageTarget, type: allowedMessageType, payload: payload, }, documentOrigin) }