aboutsummaryrefslogtreecommitdiffstats
path: root/library/lib
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-08-27 02:08:23 +0800
committerkumavis <aaron@kumavis.me>2016-08-27 02:08:23 +0800
commit23a144fb8b0b214b9c352ee523405d5ecd03046e (patch)
tree43e464ffc4eac01ecba092e758aee3e9b03c8b17 /library/lib
parentbbb684309e04030dbf288f3e933222b3d27d9b54 (diff)
downloadtangerine-wallet-browser-23a144fb8b0b214b9c352ee523405d5ecd03046e.tar.gz
tangerine-wallet-browser-23a144fb8b0b214b9c352ee523405d5ecd03046e.tar.zst
tangerine-wallet-browser-23a144fb8b0b214b9c352ee523405d5ecd03046e.zip
library - popup handler demo
Diffstat (limited to 'library/lib')
-rw-r--r--library/lib/setup-iframe.js18
-rw-r--r--library/lib/setup-provider.js24
2 files changed, 42 insertions, 0 deletions
diff --git a/library/lib/setup-iframe.js b/library/lib/setup-iframe.js
new file mode 100644
index 000000000..dfb51c676
--- /dev/null
+++ b/library/lib/setup-iframe.js
@@ -0,0 +1,18 @@
+const Iframe = require('iframe')
+const IframeStream = require('iframe-stream').IframeStream
+
+module.exports = setupIframe
+
+
+function setupIframe(opts) {
+ opts = opts || {}
+ var frame = Iframe({
+ src: opts.zeroClientProvider || 'https://zero.metamask.io/',
+ container: document.head,
+ sandboxAttributes: opts.sandboxAttributes || ['allow-scripts', 'allow-popups'],
+ })
+ var iframe = frame.iframe
+ var iframeStream = new IframeStream(iframe)
+
+ return iframeStream
+}
diff --git a/library/lib/setup-provider.js b/library/lib/setup-provider.js
new file mode 100644
index 000000000..ced07e0f0
--- /dev/null
+++ b/library/lib/setup-provider.js
@@ -0,0 +1,24 @@
+const setupIframe = require('./setup-iframe.js')
+const MetamaskInpageProvider = require('../../app/scripts/lib/inpage-provider.js')
+
+module.exports = getProvider
+
+
+function getProvider(){
+
+ if (global.web3) {
+ console.log('MetaMask ZeroClient - using environmental web3 provider')
+ return global.web3.currentProvider
+ }
+
+ console.log('MetaMask ZeroClient - injecting zero-client iframe!')
+ var iframeStream = setupIframe({
+ zeroClientProvider: 'http://localhost:9001',
+ sandboxAttributes: ['allow-scripts', 'allow-popups', 'allow-same-origin'],
+ })
+
+ var inpageProvider = new MetamaskInpageProvider(iframeStream)
+ return inpageProvider
+
+}
+