From 596e0a75f7ae0f52167b75ff757c47dd9ad4d772 Mon Sep 17 00:00:00 2001 From: xinfin Date: Sat, 15 Jun 2019 16:40:50 +0530 Subject: [PATCH] Apothem v2.0 Network Added --- interface/i18n/mist.en.i18n.json | 2 +- interface/i18n/mist.fa.i18n.json | 2 +- .../app/client/templates/layout/header.html | 4 +- ...0caff91e4afafdab62b24260699a0fa6d5601c.js} | 4 +- ...4afafdab62b24260699a0fa6d5601c.stats.json} | 8 +- meteor-dapp-wallet/build/index.html | 2 +- modules/constants.js | 4 +- modules/core/nodes/actions.js | 18 +- modules/ethereumNode.js | 6 +- modules/ipc/ipcProviderBackend.js | 28 +-- modules/ipc/methods/base.js | 188 +++++++++--------- modules/menuItems.js | 90 ++++----- modules/updateChecker.js | 2 +- wallet/index.html | 2 +- 14 files changed, 183 insertions(+), 177 deletions(-) rename meteor-dapp-wallet/build/{b1a9b7ecbe26425e6c6efaa70acd1d4bff36021d.js => 680caff91e4afafdab62b24260699a0fa6d5601c.js} (96%) rename meteor-dapp-wallet/build/{b1a9b7ecbe26425e6c6efaa70acd1d4bff36021d.stats.json => 680caff91e4afafdab62b24260699a0fa6d5601c.stats.json} (99%) diff --git a/interface/i18n/mist.en.i18n.json b/interface/i18n/mist.en.i18n.json index 474c55d..74379a5 100644 --- a/interface/i18n/mist.en.i18n.json +++ b/interface/i18n/mist.en.i18n.json @@ -66,7 +66,7 @@ "openRemix": "Open Remix IDE", "ethereumNode": "XinFin Node", "network": "Network", - "mainNetwork": " XinFin Main Network", + "mainNetwork": "XinFin - Main Network", "startMining": "⛏ Start mining", "stopMining": "⛏ Stop mining", "enableSwarm": "Enable Swarm", diff --git a/interface/i18n/mist.fa.i18n.json b/interface/i18n/mist.fa.i18n.json index c2cf8fa..ac33e7f 100644 --- a/interface/i18n/mist.fa.i18n.json +++ b/interface/i18n/mist.fa.i18n.json @@ -45,7 +45,7 @@ "logFiles": "Show log file", "ethereumNode": "XinFin Node", "network": "Network", - "mainNetwork": " XinFin Main Network", + "mainNetwork": "XinFin Main Network", "startMining": "⛏ Start Mining", "stopMining": "⛏ Stop Mining", "openRemix": "Open Remix IDE" diff --git a/meteor-dapp-wallet/app/client/templates/layout/header.html b/meteor-dapp-wallet/app/client/templates/layout/header.html index 5e95984..d6c8b7a 100644 --- a/meteor-dapp-wallet/app/client/templates/layout/header.html +++ b/meteor-dapp-wallet/app/client/templates/layout/header.html @@ -19,10 +19,10 @@ Test-net    {{/if}} {{#if $eq ($.Session.get "network") "apothem"}} - XinFin MainNet    + XinFin Network    {{/if}} {{#if $eq ($.Session.get "network") "private"}} - XinFin MainNet    + XinFin Network    {{/if}} {{#with TemplateVar.get "syncing"}} diff --git a/meteor-dapp-wallet/build/b1a9b7ecbe26425e6c6efaa70acd1d4bff36021d.js b/meteor-dapp-wallet/build/680caff91e4afafdab62b24260699a0fa6d5601c.js similarity index 96% rename from meteor-dapp-wallet/build/b1a9b7ecbe26425e6c6efaa70acd1d4bff36021d.js rename to meteor-dapp-wallet/build/680caff91e4afafdab62b24260699a0fa6d5601c.js index a50fc56..7b732e9 100644 --- a/meteor-dapp-wallet/build/b1a9b7ecbe26425e6c6efaa70acd1d4bff36021d.js +++ b/meteor-dapp-wallet/build/680caff91e4afafdab62b24260699a0fa6d5601c.js @@ -12,7 +12,7 @@ Package._define("ecmascript"); !function(){var n=Package.meteor.Meteor,e=Package.meteor.global,t=Package.meteor.meteorEnv,r,o,i;r=function(n){"use strict";var e=(n=n||{}).extensions||[".js",".json"],t=n.onInstall,r=n.wrapRequire,o=n.override,i=n.fallback,u=n.mainFields||(n.browser?["browser","main"]:["main"]),s={}.hasOwnProperty;function c(n,e){return y(n)&&w(e)&&s.call(n,e)}var f={},l=new x("/",new x("/..")),a=P(l),d,p;function h(n,e){return y(n)&&(I(l,n,e),b(t)&&t(a)),a}function v(n){this.id=n,this.children=[],this.childrenById={}}function m(n,e){return c(n,e)&&n[e]}function y(n){return null!==n&&"object"==typeof n}function b(n){return"function"==typeof n}function w(n){return"string"==typeof n}function g(n){return new Error("Cannot find module '"+n+"'")}function P(n){function e(e){var t=R(n,e);if(t)return k(t,n.module);var r=g(e);if(b(i))return i(e,n.module.id,r);throw r}return b(r)&&(e=r(e,n.module)),e.extensions=q(n).slice(0),e.resolve=function(e){var t=R(n,e);if(t)return t.module.id;var r=g(e);if(i&&b(i.resolve))return i.resolve(e,n.module.id,r);throw r},e}function x(n,e){var t=this;this.parent=e=e||null,this.module=new v(n),f[n]=this,this.contents=null,this.deps={}}function k(n,e){var t=n.module;if(!c(t,"exports")){var r=n.contents;if(!r){if(n.stub)return n.stub;throw g(t.id)}if(e){t.parent=e;var o=e.children;Array.isArray(o)&&o.push(t)}b(t.useNode)&&t.useNode()||r(t.require=t.require||P(n),t.exports=n.stub||{},t,n.module.id,n.parent.module.id),t.loaded=!0}var i=t.runSetters||t.runModuleSetters;return b(i)&&i.call(t),t.exports}function j(n){return n&&y(n.contents)}function E(n){return n&&null===n.contents}function I(n,e,t){Array.isArray(e)?(e.forEach(function(t){w(t)?n.deps[t]=n.module.id:b(t)?e=t:y(t)&&(n.stub=n.stub||{},O(t,function(e,t){n.stub[t]=e}))}),b(e)||(e=null)):b(e)||w(e)||y(e)||(e=null),e&&(n.contents=n.contents||(y(e)?{}:e),y(e)&&j(n)&&O(e,function(e,r){if(".."===r)o=n.parent;else{var o=m(n.contents,r);o||((o=n.contents[r]=new x(n.module.id.replace(/\/*$/,"/")+r,n)).options=t)}I(o,e,t)}))}function O(n,e,t){Object.keys(n).forEach(function(t){e.call(this,n[t],t)},t)}function q(n){return n.options&&n.options.extensions||e}function A(n,e,t){for(;n&&!j(n);)n=n.parent;if(!n||!e||"."===e)return n;if(".."===e)return n.parent;var r=m(n.contents,e);if(t&&(!r||j(r)))for(var o=0;o=0)return r[n]},this.set=function(t,n){var o=e.indexOf(t);o>=0?r[o]=n:(e.push(t),r.push(n))}};function p(t){if(!n.isObjectLike(t))return new a(t);var e;if(void 0!==(e=l.get(t)))return e;var e=new a(t);return l.set(t,e),e}function _(t){var e=Object.keys(t),r=e.indexOf("__esModule");return r>=0&&e.splice(r,1),e}function d(t,e){var r=!1;n.getESModule(t.exports)||(t.namespace.default=t.exports,r=!0),n.isObjectLike(t.exports)&&((void 0===e||e.indexOf("*")>=0)&&(e=Object.keys(t.exports)),e.forEach(function(e){c.call(t.getters,e)||r&&"default"===e||!c.call(t.exports,e)||n.copyKey(e,t.namespace,t.exports)}))}function h(t,e,r,o){if("__esModule"!==e){var c=!1;if(void 0===t.last&&(t.last=Object.create(null),c=!0),"*"===e)for(var u=_(r),a=u.length,f=0;f0&&d.constant&&delete u[p]}}}function g(t,e){if("*"===e)return t.namespace;if(c.call(t.namespace,e))return t.namespace[e];var r=t.exports;return"default"!==e||n.getESModule(r)&&"default"in r?null!=r?r[e]:void 0:r}function j(){return Math.random().toString(36).replace("0.",++u+"$")}function y(t,e){var r=t.getters[e];try{var n=r();return++r.runCount,n}catch(t){}return o}a.get=function(t){if(n.isObjectLike(t)){var e=l.get(t);if(void 0!==e)return e}return null},a.getOrCreate=function(t,e){var r=p(t);return n.isObject(e)&&(r.ownerModules[e.id]=e),r},f.addGetters=function(t,e){var r=_(t),n=r.length;e=!!e;for(var o=0;o=0)&&(t=Object.keys(this.getters));for(var e=t.length,r=0;r=t.length?{value:void 0,done:!0}:(n=e(t,r),this._i+=n.length,{value:n,done:!1})})},"_string-at.js":function(t,e,r){var n=t("./_to-integer"),o=t("./_defined");r.exports=function(t){return function(e,r){var i=String(o(e)),s=n(r),c=i.length,u,a;return s<0||s>=c?t?"":void 0:(u=i.charCodeAt(s))<55296||u>56319||s+1===c||(a=i.charCodeAt(s+1))<56320||a>57343?t?i.charAt(s):u:t?i.slice(s,s+2):a-56320+(u-55296<<10)+65536}}},"_to-integer.js":function(t,e,r){var n=Math.ceil,o=Math.floor;r.exports=function(t){return isNaN(t=+t)?0:(t>0?o:n)(t)}},"_defined.js":function(t,e,r){r.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},"_iter-define.js":function(t,e,r){"use strict";var n=t("./_library"),o=t("./_export"),i=t("./_redefine"),s=t("./_hide"),c=t("./_iterators"),u=t("./_iter-create"),a=t("./_set-to-string-tag"),f=t("./_object-gpo"),l=t("./_wks")("iterator"),p=!([].keys&&"next"in[].keys()),_="@@iterator",d="keys",h="values",b=function(){return this};r.exports=function(t,e,r,g,j,y,m){u(r,e,g);var v=function(t){if(!p&&t in O)return O[t];switch(t){case d:return function e(){return new r(this,t)};case h:return function e(){return new r(this,t)}}return function e(){return new r(this,t)}},x=e+" Iterator",w=j==h,S=!1,O=t.prototype,k=O[l]||O[_]||j&&O[j],E=k||v(j),M=j?w?v("entries"):E:void 0,P="Array"==e&&O.entries||k,A,F,T;if(P&&(T=f(P.call(new t)))!==Object.prototype&&T.next&&(a(T,x,!0),n||"function"==typeof T[l]||s(T,l,b)),w&&k&&k.name!==h&&(S=!0,E=function t(){return k.call(this)}),n&&!m||!p&&!S&&O[l]||s(O,l,E),c[e]=E,c[x]=b,j)if(A={values:w?E:v(h),keys:y?E:v(d),entries:M},m)for(F in A)F in O||i(O,F,A[F]);else o(o.P+o.F*(p||S),e,A);return A}},"_library.js":function(t,e,r){r.exports=!0},"_export.js":function(t,e,r){var n=t("./_global"),o=t("./_core"),i=t("./_ctx"),s=t("./_hide"),c=t("./_has"),u="prototype",a=function(t,e,r){var u=t&a.F,f=t&a.G,l=t&a.S,p=t&a.P,_=t&a.B,d=t&a.W,h=f?o:o[e]||(o[e]={}),b=h.prototype,g=f?n:l?n[e]:(n[e]||{}).prototype,j,y,m;for(j in f&&(r=e),r)(y=!u&&g&&void 0!==g[j])&&c(h,j)||(m=y?g[j]:r[j],h[j]=f&&"function"!=typeof g[j]?r[j]:_&&y?i(m,n):d&&g[j]==m?function(t){var e=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(m):p&&"function"==typeof m?i(Function.call,m):m,p&&((h.virtual||(h.virtual={}))[j]=m,t&a.R&&b&&!b[j]&&s(b,j,m)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,r.exports=a},"_global.js":function(t,e,r){var n=r.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"_core.js":function(t,e,r){var n=r.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},"_ctx.js":function(t,e,r){var n=t("./_a-function");r.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},"_a-function.js":function(t,e,r){r.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"_hide.js":function(t,e,r){var n=t("./_object-dp"),o=t("./_property-desc");r.exports=t("./_descriptors")?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},"_object-dp.js":function(t,e){var r=t("./_an-object"),n=t("./_ie8-dom-define"),o=t("./_to-primitive"),i=Object.defineProperty;e.f=t("./_descriptors")?Object.defineProperty:function t(e,s,c){if(r(e),s=o(s,!0),r(c),n)try{return i(e,s,c)}catch(t){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(e[s]=c.value),e}},"_an-object.js":function(t,e,r){var n=t("./_is-object");r.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},"_is-object.js":function(t,e,r){r.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"_ie8-dom-define.js":function(t,e,r){r.exports=!t("./_descriptors")&&!t("./_fails")(function(){return 7!=Object.defineProperty(t("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},"_descriptors.js":function(t,e,r){r.exports=!t("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"_fails.js":function(t,e,r){r.exports=function(t){try{return!!t()}catch(t){return!0}}},"_dom-create.js":function(t,e,r){var n=t("./_is-object"),o=t("./_global").document,i=n(o)&&n(o.createElement);r.exports=function(t){return i?o.createElement(t):{}}},"_to-primitive.js":function(t,e,r){var n=t("./_is-object");r.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"_property-desc.js":function(t,e,r){r.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"_has.js":function(t,e,r){var n={}.hasOwnProperty;r.exports=function(t,e){return n.call(t,e)}},"_redefine.js":function(t,e,r){r.exports=t("./_hide")},"_iterators.js":function(t,e,r){r.exports={}},"_iter-create.js":function(t,e,r){"use strict";var n=t("./_object-create"),o=t("./_property-desc"),i=t("./_set-to-string-tag"),s={};t("./_hide")(s,t("./_wks")("iterator"),function(){return this}),r.exports=function(t,e,r){t.prototype=n(s,{next:o(1,r)}),i(t,e+" Iterator")}},"_object-create.js":function(t,e,r){var n=t("./_an-object"),o=t("./_object-dps"),i=t("./_enum-bug-keys"),s=t("./_shared-key")("IE_PROTO"),c=function(){},u="prototype",a=function(){var e=t("./_dom-create")("iframe"),r=i.length,n="<",o=">",s;for(e.style.display="none",t("./_html").appendChild(e),e.src="javascript:",(s=e.contentWindow.document).open(),s.write(" - + XinFin Network diff --git a/modules/constants.js b/modules/constants.js index 4f734f0..3bbfff7 100644 --- a/modules/constants.js +++ b/modules/constants.js @@ -1,13 +1,13 @@ export const InfuraEndpoints = { ethereum: { http: { - Main: 'https://rpc.xinfin.network', + Main: 'https://mainnet.infura.io/mist', ropsten: 'https://ropsten.infura.io/mist', Rinkeby: 'https://rinkeby.infura.io/mist', Kovan: 'https://kovan.infura.io/mist' }, websockets: { - Main: 'ws://62.233.65.7:8555', + Main: 'wss://mainnet.infura.io/ws/mist', ropsten: 'wss://ropsten.infura.io/ws/mist', Rinkeby: 'wss://rinkeby.infura.io/ws/mist', Kovan: 'wss://kovan.infura.io/ws/mist' diff --git a/modules/core/nodes/actions.js b/modules/core/nodes/actions.js index 61582bc..8aabb03 100644 --- a/modules/core/nodes/actions.js +++ b/modules/core/nodes/actions.js @@ -5,15 +5,15 @@ export function changeNetwork(network) { return dispatch => { dispatch({ type: '[MAIN]:NODES:CHANGE_NETWORK_START' }); - try { - ethereumNodeRemote.setNetwork(network); - dispatch({ - type: '[MAIN]:NODES:CHANGE_NETWORK_SUCCESS', - payload: { network } - }); - } catch (e) { - dispatch({ type: '[MAIN]:NODES:CHANGE_NETWORK_FAILURE', error: e }); - } + // try { + // ethereumNodeRemote.setNetwork(network); + // dispatch({ + // type: '[MAIN]:NODES:CHANGE_NETWORK_SUCCESS', + // payload: { network } + // }); + // } catch (e) { + // dispatch({ type: '[MAIN]:NODES:CHANGE_NETWORK_FAILURE', error: e }); + // } }; } diff --git a/modules/ethereumNode.js b/modules/ethereumNode.js index 3b5a91b..7c3b221 100644 --- a/modules/ethereumNode.js +++ b/modules/ethereumNode.js @@ -453,7 +453,7 @@ class EthereumNode extends EventEmitter { case 'test': args = [ '--bootnodes', - 'enode://1c20e6b46ce608c1fe739e78611225b94e663535b74a1545b1667eac8ff75ed43216306d123306c10e043f228e42cc53cb2728655019292380313393eaaf6e23@78.129.229.96:30301,enode://1c20e6b46ce608c1fe739e78611225b94e663535b74a1545b1667eac8ff75ed43216306d123306c10e043f228e42cc53cb2728655019292380313393eaaf6e23@5.152.223.199:30301', + 'enode://1c20e6b46ce608c1fe739e78611225b94e663535b74a1545b1667eac8ff75ed43216306d123306c10e043f228e42cc53cb2728655019292380313393eaaf6e23@127.0.0.1:30301,enode://1c20e6b46ce608c1fe739e78611225b94e663535b74a1545b1667eac8ff75ed43216306d123306c10e043f228e42cc53cb2728655019292380313393eaaf6e23@188.227.164.51:30301', '--ws', '--rpc', '--minerthreads', @@ -461,9 +461,9 @@ class EthereumNode extends EventEmitter { '--targetgaslimit', '420000000', '--networkid', - '50', + '51', '--ethstats', - `${os.hostname()}-${os.type()}-XinFin-Network-One-Click:xinfin_xdpos_hybrid_network_stats@stats.xinfin.network:3000`, + `${os.hostname()}-${os.type()}-XinFin-Apothem-Network-One-Click:xdc_xinfin_apothem_network_stats@stats.apothem.network:2000`, '--mine' ]; if (syncMode === 'nosync') { diff --git a/modules/ipc/ipcProviderBackend.js b/modules/ipc/ipcProviderBackend.js index 889785d..afa1b25 100644 --- a/modules/ipc/ipcProviderBackend.js +++ b/modules/ipc/ipcProviderBackend.js @@ -247,9 +247,9 @@ class IpcProviderBackend { log.info('Ethereum node stopping, disconnecting sockets'); // Unsubscribe remote subscriptions - _.each(this._remoteSubscriptions, remoteSubscriptionId => { - ethereumNodeRemote.send('eth_unsubscribe', [remoteSubscriptionId]); - }); + // _.each(this._remoteSubscriptions, remoteSubscriptionId => { + // ethereumNodeRemote.send('eth_unsubscribe', [remoteSubscriptionId]); + // }); this._remoteSubscriptions = {}; this._subscriptionOwners = {}; @@ -579,11 +579,11 @@ class IpcProviderBackend { if (result.method === 'eth_unsubscribe') { const subscriptionId = result.params[0]; const localSubscriptionId = this._remoteSubscriptions[subscriptionId]; - if (localSubscriptionId) { - ethereumNodeRemote.send('eth_unsubscribe', [localSubscriptionId]); - delete this._remoteSubscriptions[subscriptionId]; - delete this._subscriptionOwners[subscriptionId]; - } + // if (localSubscriptionId) { + // ethereumNodeRemote.send('eth_unsubscribe', [localSubscriptionId]); + // delete this._remoteSubscriptions[subscriptionId]; + // delete this._subscriptionOwners[subscriptionId]; + // } } return result; @@ -603,12 +603,12 @@ class IpcProviderBackend { ); var remoteSubscriptionId; - const requestId = await ethereumNodeRemote.send('eth_subscribe', params); + // const requestId = await ethereumNodeRemote.send('eth_subscribe', params); - if (!requestId) { - log.error('No return id for request'); - return; - } + // if (!requestId) { + // log.error('No return id for request'); + // return; + // } const callback = data => { if (!data) { @@ -637,7 +637,7 @@ class IpcProviderBackend { } }; - ethereumNodeRemote.ws.on('message', callback); + // ethereumNodeRemote.ws.on('message', callback); }); } diff --git a/modules/ipc/methods/base.js b/modules/ipc/methods/base.js index dbe20be..cee4bd4 100644 --- a/modules/ipc/methods/base.js +++ b/modules/ipc/methods/base.js @@ -83,99 +83,105 @@ module.exports = class BaseProcessor { } async _sendPayload(payload, conn) { - if (this._shouldSendToRemote(payload, conn)) { - this._log.trace(`Sending request to remote node: ${payload.method}`); - const result = await this._sendToRemote(payload); - this._log.trace( - `Result from remote node: ${payload.method} (id: ${payload.id})` - ); - return result; - } else { - this._log.trace(`Sending request to local node: ${payload.method}`); - const result = await conn.socket.send(payload, { fullResult: true }); - this._log.trace( - `Result from local node: ${payload.method} (id: ${payload.id})` - ); - return result.result; - } - } - - _shouldSendToRemote(payload, conn) { - // Do NOT send to the remote node if: (all conditions must be satisfied) - // 1. the local node is synced - const isRemote = store.getState().nodes.active === 'remote'; - if (!isRemote) { - return false; - } - - // 2. method is on the ignore list - const method = payload.method; - if (this.remoteIgnoreMethods.includes(method)) { - return false; - } - - // 3. the method is - // net_peerCount | eth_syncing | eth_subscribe[syncing] - // and is originating from the mist interface - // dev: localhost:3000, production: app.asar/interface/index.html - if ( - conn && - conn.owner && - conn.owner.history && - (conn.owner.history[0].startsWith('http://localhost:3000') || - conn.owner.history[0].indexOf('app.asar/interface/index.html') > -1) - ) { - if ( - method === 'net_peerCount' || - method === 'eth_syncing' || - (method === 'eth_subscribe' && payload.params[0] === 'syncing') - ) { - return false; - } - } - - return true; + // if (this._shouldSendToRemote(payload, conn)) { + // this._log.trace(`Sending request to remote node: ${payload.method}`); + // const result = await this._sendToRemote(payload); + // this._log.trace( + // `Result from remote node: ${payload.method} (id: ${payload.id})` + // ); + // return result; + // } else { + // this._log.trace(`Sending request to local node: ${payload.method}`); + // const result = await conn.socket.send(payload, { fullResult: true }); + // this._log.trace( + // `Result from local node: ${payload.method} (id: ${payload.id})` + // ); + // return result.result; + // } + this._log.trace(`Sending request to local node: ${payload.method}`); + const result = await conn.socket.send(payload, { fullResult: true }); + this._log.trace( + `Result from local node: ${payload.method} (id: ${payload.id})` + ); + return result.result; } - _sendToRemote(payload, retry = false) { - return new Promise(async (resolve, reject) => { - const requestId = await ethereumNodeRemote.send( - payload.method, - payload.params - ); - - if (!requestId) { - const errorMessage = `No request id for method ${payload.method} (${ - payload.params - })`; - reject(errorMessage); - this._log.error(errorMessage); - return; - } - - const callback = data => { - if (!data) { - return; - } - - try { - data = JSON.parse(data); - } catch (error) { - const errorMessage = `Error parsing data: ${data}`; - this._log.trace(errorMessage); - reject(errorMessage); - } - - if (data.id === requestId) { - resolve(data); - // TODO: remove listener - // ethereumNodeRemote.ws.removeListener('message', callback); - } - }; - - ethereumNodeRemote.ws.on('message', callback); - }); - } + // _shouldSendToRemote(payload, conn) { + // // Do NOT send to the remote node if: (all conditions must be satisfied) + // // 1. the local node is synced + // const isRemote = store.getState().nodes.active === 'remote'; + // if (!isRemote) { + // return false; + // } + + // // 2. method is on the ignore list + // const method = payload.method; + // if (this.remoteIgnoreMethods.includes(method)) { + // return false; + // } + + // // 3. the method is + // // net_peerCount | eth_syncing | eth_subscribe[syncing] + // // and is originating from the mist interface + // // dev: localhost:3000, production: app.asar/interface/index.html + // if ( + // conn && + // conn.owner && + // conn.owner.history && + // (conn.owner.history[0].startsWith('http://localhost:3000') || + // conn.owner.history[0].indexOf('app.asar/interface/index.html') > -1) + // ) { + // if ( + // method === 'net_peerCount' || + // method === 'eth_syncing' || + // (method === 'eth_subscribe' && payload.params[0] === 'syncing') + // ) { + // return false; + // } + // } + + // return true; + // } + + // _sendToRemote(payload, retry = false) { + // return new Promise(async (resolve, reject) => { + // const requestId = await ethereumNodeRemote.send( + // payload.method, + // payload.params + // ); + + // if (!requestId) { + // const errorMessage = `No request id for method ${payload.method} (${ + // payload.params + // })`; + // reject(errorMessage); + // this._log.error(errorMessage); + // return; + // } + + // const callback = data => { + // if (!data) { + // return; + // } + + // try { + // data = JSON.parse(data); + // } catch (error) { + // const errorMessage = `Error parsing data: ${data}`; + // this._log.trace(errorMessage); + // reject(errorMessage); + // } + + // if (data.id === requestId) { + // resolve(data); + // // TODO: remove listener + // // ethereumNodeRemote.ws.removeListener('message', callback); + // } + // }; + + // // ethereumNodeRemote.ws.on('message', callback); + // }); + // } _isAdminConnection(conn) { // main window or popupwindows - always allow requests diff --git a/modules/menuItems.js b/modules/menuItems.js index e9c1c83..329fd11 100644 --- a/modules/menuItems.js +++ b/modules/menuItems.js @@ -559,51 +559,51 @@ let menuTempl = function(webviews) { } // add network switch - // devToolsMenu.push({ - // label: i18n.t('mist.applicationMenu.develop.network'), - // submenu: [ - // // { - // // label: i18n.t('mist.applicationMenu.develop.mainNetwork'), - // // accelerator: 'CommandOrControl+Alt+1', - // // checked: store.getState().nodes.network === 'main', - // // enabled: store.getState().nodes.network !== 'private', - // // type: 'checkbox', - // // click() { - // // changeNodeNetwork('main', webviews); - // // } - // // }, - // // { - // // label: 'XinFin - Test network', - // // accelerator: 'CommandOrControl+Alt+2', - // // checked: store.getState().nodes.network === 'apothem', - // // enabled: store.getState().nodes.network !== 'private', - // // type: 'checkbox', - // // click() { - // // changeNodeNetwork('apothem', webviews); - // // } - // // } - // // { - // // label: 'Rinkeby - Test network', - // // accelerator: 'CommandOrControl+Alt+3', - // // checked: store.getState().nodes.network === 'rinkeby', - // // enabled: store.getState().nodes.network !== 'private', - // // type: 'checkbox', - // // click() { - // // changeNodeNetwork('rinkeby', webviews); - // // } - // // } - // // { - // // label: 'Solo network', - // // accelerator: 'CommandOrControl+Alt+4', - // // checked: ethereumNode.isOwnNode && ethereumNode.isDevNetwork, - // // enabled: ethereumNode.isOwnNode, - // // type: 'checkbox', - // // click() { - // // restartNode(ethereumNode.type, 'dev'); - // // } - // // } - // ] - // }); + devToolsMenu.push({ + label: i18n.t('mist.applicationMenu.develop.network'), + submenu: [ + { + label: i18n.t('mist.applicationMenu.develop.mainNetwork'), + accelerator: 'CommandOrControl+Alt+1', + checked: store.getState().nodes.network === 'main', + enabled: store.getState().nodes.network !== 'private', + type: 'checkbox', + click() { + changeNodeNetwork('main', webviews); + } + }, + { + label: 'XinFin - Apothem Network', + accelerator: 'CommandOrControl+Alt+2', + checked: store.getState().nodes.network === 'apothem', + enabled: store.getState().nodes.network !== 'private', + type: 'checkbox', + click() { + changeNodeNetwork('apothem', webviews); + } + } + // { + // label: 'Rinkeby - Test network', + // accelerator: 'CommandOrControl+Alt+3', + // checked: store.getState().nodes.network === 'rinkeby', + // enabled: store.getState().nodes.network !== 'private', + // type: 'checkbox', + // click() { + // changeNodeNetwork('rinkeby', webviews); + // } + // } + // { + // label: 'Solo network', + // accelerator: 'CommandOrControl+Alt+4', + // checked: ethereumNode.isOwnNode && ethereumNode.isDevNetwork, + // enabled: ethereumNode.isOwnNode, + // type: 'checkbox', + // click() { + // restartNode(ethereumNode.type, 'dev'); + // } + // } + ] + }); // add sync mode switch devToolsMenu.push({ diff --git a/modules/updateChecker.js b/modules/updateChecker.js index 825b1ef..b05cedc 100644 --- a/modules/updateChecker.js +++ b/modules/updateChecker.js @@ -25,7 +25,7 @@ const check = (exports.check = () => { break; } - return got('https://api.github.com/repos/ethereum/mist/releases/latest', { + return got('https://api.github.com/repos/XinFinOrg/Node-Setup/releases/latest', { timeout: 30000, json: true }) diff --git a/wallet/index.html b/wallet/index.html index e27e037..93debbb 100644 --- a/wallet/index.html +++ b/wallet/index.html @@ -3,7 +3,7 @@ - + XinFin Network