From b7aab955196a7cef2705e8546814b5c6c1830da7 Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 26 Aug 2016 17:39:19 -0700 Subject: library - basic test server + partial safari fixes --- library/controller.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 library/controller.js (limited to 'library/controller.js') diff --git a/library/controller.js b/library/controller.js new file mode 100644 index 000000000..90d849d20 --- /dev/null +++ b/library/controller.js @@ -0,0 +1,69 @@ +const ZeroClientProvider = require('web3-provider-engine/zero') +const ParentStream = require('iframe-stream').ParentStream +const handleRequestsFromStream = require('web3-stream-provider/handler') +const Streams = require('mississippi') +const ObjectMultiplex = require('../app/scripts/lib/obj-multiplex') + +console.log('yes, this is iframe') + +initializeZeroClient() + + +function initializeZeroClient() { + + var provider = ZeroClientProvider({ + // rpcUrl: configManager.getCurrentRpcAddress(), + rpcUrl: 'https://morden.infura.io/', + // account mgmt + // getAccounts: function(cb){ + // var selectedAddress = idStore.getSelectedAddress() + // var result = selectedAddress ? [selectedAddress] : [] + // cb(null, result) + // }, + getAccounts: function(cb){ + cb(null, ['0x8F331A98aC5C9431d04A5d6Bf8Fa84ed7Ed439f3'.toLowerCase()]) + }, + // tx signing + // approveTransaction: addUnconfirmedTx, + // signTransaction: idStore.signTransaction.bind(idStore), + signTransaction: function(txParams, cb){ + var privKey = new Buffer('7ef33e339ba5a5af0e57fa900ad0ae53deaa978c21ef30a0947532135eb639a8', 'hex') + var Transaction = require('ethereumjs-tx') + console.log('signing tx:', txParams) + txParams.gasLimit = txParams.gas + var tx = new Transaction(txParams) + tx.sign(privKey) + var serialiedTx = '0x'+tx.serialize().toString('hex') + cb(null, serialiedTx) + }, + // msg signing + // approveMessage: addUnconfirmedMsg, + // signMessage: idStore.signMessage.bind(idStore), + }) + + provider.on('block', function(block){ + console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex')) + }) + + var connectionStream = new ParentStream() + // setup connectionStream multiplexing + var multiStream = ObjectMultiplex() + Streams.pipe(connectionStream, multiStream, connectionStream, function(err){ + console.warn('MetamaskIframe - lost connection to Dapp') + if (err) throw err + }) + + multiStream.on('data', function(chunk){ console.log(chunk) }) + + var providerStream = multiStream.createStream('provider') + handleRequestsFromStream(providerStream, provider, logger) + + function logger(err, request, response){ + if (err) return console.error(err.stack) + if (!request.isMetamaskInternal) { + console.log('MetaMaskIframe - RPC complete:', request, '->', response) + if (response.error) console.error('Error in RPC response:\n'+response.error.message) + } + } + +} \ No newline at end of file -- cgit v1.2.3 From a3330568d9aa68e2609ce875a96e784c2e77c20c Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 31 Aug 2016 15:33:24 -0700 Subject: various things --- library/controller.js | 2 -- 1 file changed, 2 deletions(-) (limited to 'library/controller.js') diff --git a/library/controller.js b/library/controller.js index 90d849d20..24b841f5e 100644 --- a/library/controller.js +++ b/library/controller.js @@ -4,11 +4,9 @@ const handleRequestsFromStream = require('web3-stream-provider/handler') const Streams = require('mississippi') const ObjectMultiplex = require('../app/scripts/lib/obj-multiplex') -console.log('yes, this is iframe') initializeZeroClient() - function initializeZeroClient() { var provider = ZeroClientProvider({ -- cgit v1.2.3 From 4cfcb4452a3278cfa775e247271053e82f238fb5 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 12 Sep 2016 18:30:45 -0700 Subject: bugfix - prevent iframe restart restart --- library/controller.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'library/controller.js') diff --git a/library/controller.js b/library/controller.js index 24b841f5e..d5cd0525e 100644 --- a/library/controller.js +++ b/library/controller.js @@ -51,7 +51,8 @@ function initializeZeroClient() { if (err) throw err }) - multiStream.on('data', function(chunk){ console.log(chunk) }) + // connectionStream.on('data', function(chunk){ console.log('connectionStream chuck', chunk) }) + // multiStream.on('data', function(chunk){ console.log('multiStream chuck', chunk) }) var providerStream = multiStream.createStream('provider') handleRequestsFromStream(providerStream, provider, logger) -- cgit v1.2.3