diff --git a/build/asset-manifest.json b/build/asset-manifest.json
index 94d211e..b314d9f 100644
--- a/build/asset-manifest.json
+++ b/build/asset-manifest.json
@@ -1,14 +1,14 @@
{
"files": {
"main.css": "./static/css/main.30b7793d.chunk.css",
- "main.js": "./static/js/main.912ac57b.chunk.js",
- "main.js.map": "./static/js/main.912ac57b.chunk.js.map",
+ "main.js": "./static/js/main.d7ba0dd7.chunk.js",
+ "main.js.map": "./static/js/main.d7ba0dd7.chunk.js.map",
"runtime-main.js": "./static/js/runtime-main.21b78345.js",
"runtime-main.js.map": "./static/js/runtime-main.21b78345.js.map",
"static/js/2.f3acdca5.chunk.js": "./static/js/2.f3acdca5.chunk.js",
"static/js/2.f3acdca5.chunk.js.map": "./static/js/2.f3acdca5.chunk.js.map",
"index.html": "./index.html",
- "precache-manifest.c23d0b3908aa96cd86bca2d56fdc15d0.js": "./precache-manifest.c23d0b3908aa96cd86bca2d56fdc15d0.js",
+ "precache-manifest.830d64b04eaaf00741701e144e5a358e.js": "./precache-manifest.830d64b04eaaf00741701e144e5a358e.js",
"service-worker.js": "./service-worker.js",
"static/css/main.30b7793d.chunk.css.map": "./static/css/main.30b7793d.chunk.css.map",
"static/media/index.scss": "./static/media/iconfont.b80c0833.woff"
@@ -17,6 +17,6 @@
"static/js/runtime-main.21b78345.js",
"static/js/2.f3acdca5.chunk.js",
"static/css/main.30b7793d.chunk.css",
- "static/js/main.912ac57b.chunk.js"
+ "static/js/main.d7ba0dd7.chunk.js"
]
}
\ No newline at end of file
diff --git a/build/index.html b/build/index.html
index 82dc35c..2286e1c 100644
--- a/build/index.html
+++ b/build/index.html
@@ -1 +1 @@
-
ChainX Signer You need to enable JavaScript to run this app.
\ No newline at end of file
+ChainX Signer You need to enable JavaScript to run this app.
\ No newline at end of file
diff --git a/build/precache-manifest.830d64b04eaaf00741701e144e5a358e.js b/build/precache-manifest.830d64b04eaaf00741701e144e5a358e.js
new file mode 100644
index 0000000..c4d6775
--- /dev/null
+++ b/build/precache-manifest.830d64b04eaaf00741701e144e5a358e.js
@@ -0,0 +1,34 @@
+self.__precacheManifest = (self.__precacheManifest || []).concat([
+ {
+ "revision": "e53d7bf03f0ee6f256a57a4067e5e392",
+ "url": "./index.html"
+ },
+ {
+ "revision": "bdd666b6646bcdb5902e",
+ "url": "./static/css/main.30b7793d.chunk.css"
+ },
+ {
+ "revision": "99fc81a1eee188aa257c",
+ "url": "./static/js/2.f3acdca5.chunk.js"
+ },
+ {
+ "revision": "bdd666b6646bcdb5902e",
+ "url": "./static/js/main.d7ba0dd7.chunk.js"
+ },
+ {
+ "revision": "60856750ef5b1648f2dd",
+ "url": "./static/js/runtime-main.21b78345.js"
+ },
+ {
+ "revision": "7549fcc96c8382912aececfe46cdb77c",
+ "url": "./static/media/iconfont.7549fcc9.eot"
+ },
+ {
+ "revision": "77c882e5f33deb1ac02c2e1e5fae7033",
+ "url": "./static/media/iconfont.77c882e5.ttf"
+ },
+ {
+ "revision": "b80c083333768222d5cd98f155cf4006",
+ "url": "./static/media/iconfont.b80c0833.woff"
+ }
+]);
\ No newline at end of file
diff --git a/build/service-worker.js b/build/service-worker.js
index dd800d7..226c4c3 100644
--- a/build/service-worker.js
+++ b/build/service-worker.js
@@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
- "./precache-manifest.c23d0b3908aa96cd86bca2d56fdc15d0.js"
+ "./precache-manifest.830d64b04eaaf00741701e144e5a358e.js"
);
self.addEventListener('message', (event) => {
diff --git a/build/static/js/main.d7ba0dd7.chunk.js b/build/static/js/main.d7ba0dd7.chunk.js
new file mode 100644
index 0000000..f7d5bf4
--- /dev/null
+++ b/build/static/js/main.d7ba0dd7.chunk.js
@@ -0,0 +1,2 @@
+(this["webpackJsonpchainx-signer"]=this["webpackJsonpchainx-signer"]||[]).push([[0],{1038:function(e,t,n){},1040:function(e,t,n){},1041:function(e,t,n){},1042:function(e,t,n){},1043:function(e,t,n){},1089:function(e,t,n){},1090:function(e,t,n){},1091:function(e,t,n){},1092:function(e,t,n){},1094:function(e,t,n){"use strict";n.r(t);var a=n(0),c=n.n(a),r=n(30),i=n.n(r),o=n(24),s=n.n(o),u=n(292),A=n(54),l=n(27),g=function(e,t){var n=function(n){e.current&&!e.current.contains(n.target)&&t()};Object(a.useEffect)((function(){return document.addEventListener("click",n),function(){document.removeEventListener("click",n)}}))},m=function(e){var t,n,a=e.url,c=e.method,r=e.params,i=void 0===r?[]:r,o=e.timeOut,s=void 0===o?5e3:o,u=Number(Date.now()+Math.random().toString().substr(2,3)).toString(36),A=JSON.stringify({id:u,jsonrpc:"2.0",method:c,params:i}),l=function(){return new Promise((function(e,c){var r=new WebSocket(a);r.onmessage=function(a){try{var i=JSON.parse(a.data);i.id===u&&(n=Date.now(),e({data:i.result,wastTime:n-t}),r.close())}catch(o){c(o)}},r.onopen=function(){t=Date.now(),r.send(A)},r.onerror=function(e){r.close(),c(e)}}))};return s?Promise.race([l(),new Promise((function(e,t){setTimeout((function(){t("\u8bf7\u6c42\u8d85\u65f6")}),s)}))]):l()},w=[{name:"w1.org",url:"wss://w1.chainx.org/ws"},{name:"w2.org",url:"wss://w2.chainx.org/ws"},{name:"HashQuark",url:"wss://chainx.hashquark.io"},{name:"BuildLinks",url:"wss://chainx.buildlinks.org"},{name:"w1.cn",url:"wss://w1.chainx.org.cn/ws"}],d=[{name:"testnet.w1.org.cn",url:"wss://testnet.w1.chainx.org.cn/ws"}],I=function(e,t){return t?d.some((function(t){return t.url===e.url})):w.some((function(t){return t.url===e.url}))},E=function(e,t,n,a){return s.a.async((function(c){for(;;)switch(c.prev=c.next){case 0:e.forEach((function(e){m({url:e.url,method:"chain_getBlock",timeOut:7e3}).then((function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c.data&&n(a({chainId:t,url:e.url,delay:c.wastTime}))})).catch((function(c){console.log("catched",c),n(a({chainId:t,url:e.url,delay:"timeout"}))}))}));case 1:case"end":return c.stop()}}))},M=n(73),C=n.n(M),N=null,D=function(e){return s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:return N=new C.a(e),t.next=3,s.a.awrap(N.isRpcReady());case 3:return t.abrupt("return",N);case 4:case"end":return t.stop()}}))},j=function(){return N},y=function(e){return"BTC"===e?"X-BTC":e},L=function(e){return new Promise((function(t){setTimeout(t,e)}))},f=n(285),h=n(185),p=n(287),B=n(288),x=n(57),v=Object(x.b)({name:"test",initialState:"test",reducers:{setTest:{reducer:function(e,t){return t.payload.text},prepare:function(e){return{payload:{text:e}}}}}}),b=(v.actions.setTest,v.reducer),Q=n(584),S="chainx-mainnet",O="chainx-testnet",Y="account-change",k="node-change",T="network-change",z="tx-status",H=S,P=O,U={version:0,network:H},G=window.settingStore.get("settings")||U,F=Object(x.b)({name:"setting",initialState:G,reducers:{setNetwork:function(e,t){var n=t.payload,a=e.network;e.network=n,window.settingStore.set("settings",e),a!==n&&window.sockets.broadcastEvent(T,{from:a,to:n})}}}),R=F.actions.setNetwork,K=function(e){return e.setting.network},W=Object(Q.a)(K,(function(e){return e===P})),J=F.reducer,X=n(289),Z=n.n(X);function q(e){if(e)return Z.a.pick(e,["name","address"])}var V=window.accountStore.get("accounts")||{version:0,chainxMainNetAccounts:[],currentChainXMainNetAccount:null,chainxTestNetAccounts:[],currentChainxTestNetAccount:null};function _(e,t){var n;if(S===t)n=e.chainxMainNetAccounts;else{if(O!==t)throw new Error("Invalid chainId: ".concat(t));n=e.chainxTestNetAccounts}return n}var $=Object(x.b)({name:"account",initialState:V,reducers:{addAccount:function(e,t){var n=t.payload,a=n.chainId,c=n.account,r=c.name,i=c.address,o=c.keystore,s=_(e,a);if(!(s.findIndex((function(e){return e.name===r}))>=0)){var u,A={name:r,address:i,keystore:o},l=s.findIndex((function(e){return e.address===i}));l>=0?s.splice(l,1,A):s.push(A),S===a?(u=e.currentChainXMainNetAccount,e.currentChainXMainNetAccount=A):O===a&&(u=e.currentChainxTestNetAccount,e.currentChainxTestNetAccount=A),window.accountStore.set("accounts",e),window.sockets.broadcastEvent(Y,{from:q(u),to:q(A)})}},setCurrentChainXMainNetAccount:function(e,t){var n=t.payload.address,a=e.chainxMainNetAccounts.find((function(e){return e.address===n}));if(!a)throw new Error("No ChainX mainnet account with address ".concat(n));var c=e.currentChainXMainNetAccount;e.currentChainXMainNetAccount=a,window.accountStore.set("accounts",e),window.sockets.broadcastEvent(Y,{from:q(c),to:q(a)})},removeAccount:function(e,t){var n,a,c=t.payload,r=c.chainId,i=c.address,o=_(e,r),s=o.findIndex((function(e){return e.address===i}));s<0||(o.splice(s,1),r===S?(n=e.currentChainXMainNetAccount,e.currentChainXMainNetAccount=o[0]||null,a=o[0]||null):r===O&&(n=e.currentChainxTestNetAccount,e.currentChainxTestNetAccount=o[0]||null,a=o[0]||null),window.accountStore.set("accounts",e),window.sockets.broadcastEvent(Y,{from:q(n),to:q(a)}))},setCurrentChainXTestNetAccount:function(e,t){var n=t.payload.address,a=e.chainxTestNetAccounts.find((function(e){return e.address===n}));if(!a)throw new Error("No ChainX testnet account with address ".concat(n));var c=e.currentChainXMainNetAccount;e.currentChainxTestNetAccount=a,window.accountStore.set("accounts",e),window.sockets.broadcastEvent(Y,{from:q(c),to:q(a)})}}}),ee=$.actions,te=ee.addAccount,ne=ee.removeAccount,ae=ee.setCurrentChainXMainNetAccount,ce=ee.setCurrentChainXTestNetAccount,re=Object(Q.a)(K,(function(e){return e.account.chainxMainNetAccounts}),(function(e){return e.account.chainxTestNetAccounts}),(function(e,t,n){return e===P?n:e===H?t:void 0})),ie=Object(Q.a)(K,(function(e){return e.account.currentChainXMainNetAccount}),(function(e){return e.account.currentChainxTestNetAccount}),(function(e,t,n){return e===P?n:e===H?t:void 0})),oe=$.reducer,se=[{name:"w1.org",url:"wss://w1.chainx.org/ws"},{name:"w2.org",url:"wss://w2.chainx.org/ws"},{name:"HashQuark",url:"wss://chainx.hashquark.io"},{name:"BuildLinks",url:"wss://chainx.buildlinks.org"},{name:"w1.cn",url:"wss://w1.chainx.org.cn/ws"}],ue=[{name:"testnet.w1.org.cn",url:"wss://testnet.w1.chainx.org.cn/ws"}],Ae={version:0,chainxMainNetNodes:se,currentChainXMainNetNode:se[0],chainxTestNetNodes:ue,currentChainXTestNetNode:ue[0],testnetNodesDelay:{},mainnetNodesDelay:{}},le=window.nodeStore.get("nodes")||Ae;function ge(e,t){var n;if(S===t)n=e.chainxMainNetNodes;else{if(O!==t)throw new Error("Invalid chainId: ".concat(t));n=e.chainxTestNetNodes}return n}var me=Object(x.b)({name:"node",initialState:le,reducers:{addNode:function(e,t){var n=t.payload,a=n.chainId,c=n.node,r=c.name,i=c.url,o=ge(e,a);if(!o.find((function(e){return e.url===i}))){var s,u={name:r,url:i};o.push(u),S===a?(s=e.currentChainXMainNetNode,e.currentChainXMainNetNode=u):O===a&&(s=e.currentChainXTestNetNode,e.currentChainXTestNetNode=u),[S,O].includes(a)&&window.sockets.broadcastEvent(k,{from:s,to:u}),window.nodeStore.set("nodes",e)}},setNodeDelay:function(e,t){var n=t.payload,a=n.chainId,c=n.url,r=n.delay,i=e.testnetNodesDelay;S===a&&(i=e.mainnetNodesDelay),i[c]=r,window.nodeStore.set("nodes",e)},removeNode:function(e,t){var n=t.payload,a=n.chainId,c=n.url,r=ge(e,a);if(!(r.length<=1)){var i=r.findIndex((function(e){return e.url===c}));if(!(i<0)){r.splice(i,1);var o=null;S===a?(o=e.currentChainXMainNetNode,e.currentChainXMainNetNode=r[0]||null):O===a&&(o=e.currentChainXTestNetNode,e.currentChainXTestNetNode=r[0]||null),[S,O].includes(a)&&window.sockets.broadcastEvent(k,{from:o,to:r[0]||null}),window.nodeStore.set("nodes",e)}}},setCurrentChainXMainNetNode:function(e,t){var n=t.payload.url,a=e.chainxMainNetNodes.find((function(e){return e.url===n}));if(!a)throw new Error("No ChainX mainnet node with url ".concat(n));var c=e.currentChainXTestNetNode;e.currentChainXMainNetNode=a,window.nodeStore.set("nodes",e),window.sockets.broadcastEvent(k,{from:c,to:a})},setCurrentChainXTestNetNode:function(e,t){var n=t.payload.url,a=e.chainxTestNetNodes.find((function(e){return e.url===n}));if(!a)throw new Error("No ChainX testnet node with url ".concat(n));var c=e.currentChainXTestNetNode;e.currentChainXTestNetNode=a,window.nodeStore.set("nodes",e),window.sockets.broadcastEvent(k,{from:c,to:a})},setCurrentChainXNode:function(e,t){var n=t.payload,a=n.chainId,c=n.url,r=ge(e,a);if(r){var i,o=r.find((function(e){return e.url===c}));if(o)S===a?(i=e.currentChainXMainNetNode,e.currentChainXMainNetNode=o):O===a&&(i=e.currentChainXTestNetNode,e.currentChainXTestNetNode=o),window.nodeStore.set("nodes",e),window.sockets.broadcastEvent(k,{from:i,to:o})}}}}),we=me.actions,de=we.addNode,Ie=we.removeNode,Ee=(we.setCurrentChainXMainNetNode,we.setCurrentChainXTestNetNode,we.setCurrentChainXNode),Me=we.setNodeDelay,Ce=Object(Q.a)(K,(function(e){return e.node.chainxMainNetNodes}),(function(e){return e.node.chainxTestNetNodes}),(function(e,t,n){return e===P?n:e===H?t:void 0})),Ne=Object(Q.a)(K,(function(e){return e.node.mainnetNodesDelay}),(function(e){return e.node.testnetNodesDelay}),(function(e,t,n){return e===P?n:e===H?t:void 0})),De=Object(Q.a)(K,(function(e){return e.node.currentChainXMainNetNode}),(function(e){return e.node.currentChainXTestNetNode}),(function(e,t,n){return e===P?n:e===H?t:void 0})),je=me.reducer,ye=n(624),Le=n(614),fe=n(625),he=n(13),pe=function(e){function t(){return Object(p.a)(this,t),Object(ye.a)(this,Object(Le.a)(t).apply(this,arguments))}return Object(fe.a)(t,e),Object(B.a)(t,[{key:"methodName",get:function(){return this.meta.get("name").toString()}},{key:"argsArr",get:function(){var e=[],t=this.method.get("args").entries(),n=!0,a=!1,c=void 0;try{for(var r,i=t[Symbol.iterator]();!(n=(r=i.next()).done);n=!0){var o=r.value,s=Object(l.a)(o,2),u=s[0],A=s[1];e.push({name:u,value:A})}}catch(g){a=!0,c=g}finally{try{n||null==i.return||i.return()}finally{if(a)throw c}}return e}}]),t}(n(90).Extrinsic),Be=n(90),xe=Object(x.b)({name:"tx",initialState:{version:0,toSign:null},reducers:{setToSign:function(e,t){var n=t.payload;e.toSign=n},clearToSign:function(e){e.toSign=null}}}),ve=xe.actions,be=ve.setToSign,Qe=ve.clearToSign,Se=function(e){return e.tx.toSign},Oe=Object(Q.a)(Se,(function(e){return e?new pe(e.data):null})),Ye=Object(Q.a)(Oe,(function(e){return e?Object(he.stringCamelCase)(e.methodName):null})),ke=Object(Q.a)(Oe,(function(e){return e?e.argsArr.map((function(t){return"put_code"===e.methodName?t.value:t.value.toString()})):[]})),Te=Object(Q.a)(Oe,(function(e){return!(!e||"claim"!==e.methodName||1!==e.argsArr.length)&&e.argsArr[0].value instanceof Be.Token})),ze=Object(Q.a)(Oe,(function(e){return!(!e||"claim"!==e.methodName||1!==e.argsArr.length)&&e.argsArr[0].value instanceof Be.Address})),He=xe.reducer,Pe=Object(x.b)({name:"status",initialState:{loading:!1,initLoading:!0,homeLoading:!0},reducers:{setLoading:function(e,t){e.loading=t.payload},setInitLoading:function(e,t){e.initLoading=t.payload},setHomeLoading:function(e,t){e.homeLoading=t.payload}}}),Ue=Pe.actions,Ge=Ue.setLoading,Fe=Ue.setInitLoading,Re=(Ue.setHomeLoading,Pe.reducer),Ke=Object(x.b)({name:"intentions",initialState:{intentions:[]},reducers:{setIntentions:{reducer:function(e,t){e.intentions=t.payload}}}}),We=Ke.actions.setIntentions;function Je(){var e,t;return s.a.async((function(n){for(;;)switch(n.prev=n.next){case 0:return e=j(),t=e.stake,n.abrupt("return",t);case 3:case"end":return n.stop()}}))}var Xe=function(){return function(e){var t,n;return s.a.async((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,s.a.awrap(Je());case 2:return t=a.sent,a.next=5,s.a.awrap(t.getIntentions());case 5:n=a.sent,e(We(n));case 7:case"end":return a.stop()}}))}},Ze=Object(Q.a)((function(e){return e.intentions.intentions}),(function(e){return(e||[]).reduce((function(e,t){return e[t.account]=t.name,e}),{})})),qe=Ke.reducer,Ve=Object(x.b)({name:"trade",initialState:{pairs:{},fee:0},reducers:{setPairs:function(e,t){e.pairs=t.payload},setFee:function(e,t){e.fee=t.payload}}}),_e=Ve.actions,$e=_e.setPairs,et=_e.setFee,tt=function(e){return e.trade.fee},nt=function(e){return e.trade.pairs},at={test:b,status:Re,intentions:qe,trade:Ve.reducer,account:oe,node:je,setting:J,tx:He},ct=Object(x.a)({reducer:at}),rt="invalid-address",it="invalid-sign-data",ot="sign-transaction-busy",st="chainx_account",ut="get_settings",At="chainx_sign",lt="chainx_sign_send",gt="chainx_get_node";function mt(){var e=ct.getState(),t=ie(e);return{result:t?Z.a.pick(t,["name","address"]):t}}function wt(){var e=ct.getState();return{result:De(e)}}var dt,It=function(){function e(t,n,a){Object(p.a)(this,e),this.sockets=t,this.request=n,this.id=a}return Object(B.a)(e,[{key:"handle",value:function(){var e;return s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:if((e=this.request.data.payload).method){t.next=3;break}return t.abrupt("return",this.sockets.emit(this.request.data.origin,this.id,"api",{id:e.id,error:{code:-1,message:"method not found"}}));case 3:t.t0=e.method,t.next=t.t0===ut?6:t.t0===st?7:t.t0===gt?8:t.t0===lt?9:t.t0===At?10:11;break;case 6:return t.abrupt("return",this.emit({result:ct.getState().setting}));case 7:return t.abrupt("return",this.emit(mt()));case 8:return t.abrupt("return",this.emit(wt()));case 9:return t.abrupt("return",this.sign.apply(this,[e.id].concat(Object(h.a)(e.params),[!0])));case 10:return t.abrupt("return",this.sign.apply(this,[e.id].concat(Object(h.a)(e.params),[!1])));case 11:return t.abrupt("return",{error:{code:-1,message:"".concat(e.method," not found")}});case 12:case"end":return t.stop()}}),null,this)}},{key:"emit",value:function(e){this.sockets.emit(this.request.data.origin,this.id,"api",Object(f.a)({id:this.request.data.payload.id},e))}},{key:"sign",value:function(e,t,n,a){var c,r;return s.a.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(c=ct.getState(),(r=ie(c))&&r.address===t||this.emit({error:{code:rt,message:"".concat(t," not found")}}),t&&n){i.next=5;break}return i.abrupt("return",this.emit({error:{code:it,message:"invalid sign params"}}));case 5:if(!Se(c)){i.next=8;break}return i.abrupt("return",this.emit({error:{code:ot,message:"sign busy"}}));case 8:i.prev=8,new Be.Extrinsic(n),i.next=15;break;case 12:return i.prev=12,i.t0=i.catch(8),i.abrupt("return",this.emit({error:{code:it,message:"invalid sign data"}}));case 15:ct.dispatch(be({origin:this.request.data.origin,id:this.id,dataId:e,address:t,data:n,needBroadcast:!!a})),this.sockets.activateWindow();case 17:case"end":return i.stop()}}),null,this,[[8,12]])}}]),e}();var Et=function(e,t){var n,a,c,r,i,o,u,A,l,g,m,w,d,I,E,C;return s.a.async((function(N){for(;;)switch(N.prev=N.next){case 0:C=function(e,t){return dt.emit(c,r,"event",{event:z,payload:{id:o,err:e||null,status:t||null}})},n=ct.getState(),a=Se(n),c=a.origin,r=a.id,i=a.data,o=a.dataId,u=a.needBroadcast,A=ie(n),l=j(),g=l.api,N.prev=6,m=new M.SubmittableExtrinsic(l.api,i),N.next=14;break;case 10:throw N.prev=10,N.t0=N.catch(6),dt.emit(c,r,"api",{id:o,error:{code:it,message:"invalid sign data"}}),new Error("Invalid sign data");case 14:return w=l.account.fromKeyStore(A.keystore,e),N.next=17,s.a.awrap(g.query.system.accountNonce(w.publicKey()));case 17:if(d=N.sent,I=m.sign(w,{nonce:d.toNumber(),acceleration:t,blockHash:g.genesisHash}),E=I.hash.toHex(),dt.emit(c,r,"api",{id:o,result:{hash:E,hex:I.toHex()}}),u){N.next=23;break}return N.abrupt("return");case 23:return N.prev=23,N.next=26,s.a.awrap(I.send(C));case 26:N.next=32;break;case 28:throw N.prev=28,N.t1=N.catch(23),C(N.t1),N.t1;case 32:case"end":return N.stop()}}),null,null,[[6,10],[23,28]])},Mt=n(21),Ct=n(290),Nt=n.n(Ct);var Dt=function(e){var t=e.className,n=void 0===t?{}:t,a=e.style,r=void 0===a?{}:a,i=e.name,o=void 0===i?"":i;return c.a.createElement("i",{className:"iconfont icon".concat(o," ").concat(n),style:r})},jt=(n(585),n(291)),yt=n.n(jt);var Lt=function(e){var t=Object(a.useRef)(null),n=Object(a.useState)(!1),r=Object(l.a)(n,2),i=r[0],o=r[1],u=Object(Mt.c)(W),A=Object(a.useState)(""),m=Object(l.a)(A,2),w=m[0],d=m[1],I=Object(Mt.c)(ie),E=Object(Mt.c)((function(e){return e.tx.toSign})),M=Object(Mt.b)();function C(t){return s.a.async((function(n){for(;;)switch(n.prev=n.next){case 0:I.address&&e.history.push({pathname:"/enterPassword",query:{address:I.address,keystore:I.keystore,type:t}}),o(!1);case 2:case"end":return n.stop()}}))}return Object(a.useEffect)((function(){!function(){try{E&&e.history.push({pathname:"/requestSign/"+E.id,query:E})}catch(t){console.log("sign request error occurs ",t)}finally{new Nt.a(".copy").on("success",(function(){d("Copied!"),setTimeout((function(){d("")}),2e3)}))}}(),M(Xe())}),[u,E]),g(t,(function(){o(!1)})),c.a.createElement(c.a.Fragment,null,I?c.a.createElement("div",{className:"container-account"},c.a.createElement("div",{className:"account-title"},c.a.createElement("span",{className:"name"},I.name),c.a.createElement("div",{ref:t,className:"arrow",onClick:function(){o(!i)}},c.a.createElement(Dt,{className:"arrow-icon",name:"Arrowdown"})),i?c.a.createElement("div",{className:"account-action"},c.a.createElement("span",{onClick:function(){return C("export")}},"Export PrivateKey"),c.a.createElement("span",{onClick:function(){return C("remove")}},"Forget Account")):null),c.a.createElement("div",{className:"account-address"},c.a.createElement("span",null,I.address)),c.a.createElement("button",{className:"copy","data-clipboard-text":I.address},c.a.createElement(Dt,{className:"copy-icon",name:"copy"}),c.a.createElement("span",{className:"copy-text"},"Copy")),c.a.createElement("span",null,w)):c.a.createElement("div",{className:"container container-column container-no-account"},c.a.createElement("div",{className:"home-logo"},c.a.createElement("img",{src:yt.a,alt:"logo"})),c.a.createElement("button",{className:"button button-white button-new-account",onClick:function(){return e.history.push("/createAccount")}},"New Account"),c.a.createElement("button",{className:"button button-white button-import-account",onClick:function(){return e.history.push("/importAccount")}},"Import Account")))},ft=n(615),ht=n.n(ft);var pt=function(e){var t=function(e){if(e&&e.length>13){var t=e.length;return e.slice(0,5)+"..."+e.slice(t-5,t)}return e}(e.value);return c.a.createElement("span",null,t)},Bt=n(616),xt=n.n(Bt),vt=n(617),bt=n.n(vt);n(1038);var Qt=Object(A.g)((function(e){var t=Object(a.useRef)(null),n=Object(a.useRef)(null),r=Object(a.useState)(!1),i=Object(l.a)(r,2),o=i[0],A=i[1],m=Object(a.useState)(!1),w=Object(l.a)(m,2),d=w[0],M=w[1],C=Object(a.useState)("Copy"),N=Object(l.a)(C,2),j=N[0],y=N[1],f=Object(Mt.c)(ie),h=Object(Mt.c)(re),p=Object(Mt.c)(De),B=Object(Mt.c)(Ce),x=Object(Mt.c)(K),v=Object(Mt.c)(W),b=Object(Mt.c)(Ne),Q=Object(Mt.b)();function Y(e){return"timeout"===e?"red":e>300?"yellow":"green"}return Object(a.useEffect)((function(){new Nt.a(".account-copy").on("success",(function(){y("Copied!")})),E(B,x,Q,Me)}),[v,x,B]),g(t,(function(){A(!1)})),g(n,(function(){M(!1)})),c.a.createElement("div",{className:"header"},c.a.createElement("div",{className:"container container-header"},c.a.createElement(u.b,{to:"/"},c.a.createElement("img",{className:"logo",src:yt.a,alt:"logo"}),v&&c.a.createElement("img",{className:"testnet",src:xt.a,alt:"testNetImg"})),e.history.location.pathname.includes("requestSign")?c.a.createElement("div",{className:"center-title"},c.a.createElement("span",null,(e.history.location.query&&e.history.location.query.method||"").replace(/([A-Z])/g," $1").toLowerCase()||"Sign Request")):c.a.createElement("div",{className:"right"},c.a.createElement("div",{ref:t,className:"current-node",onClick:function(){A(!o),M(!1)}},c.a.createElement("span",{className:"dot "+Y(b[p.url])+"-bg"}),c.a.createElement("span",null,p&&p.name)),c.a.createElement("div",{ref:n,className:"setting",onClick:function(){M(!d),A(!1)}},c.a.createElement(Dt,{name:"Menu",className:"setting-icon"}))),c.a.createElement("div",{className:(o?"":"hide ")+"node-list-area"},c.a.createElement("div",{className:"node-list"},p&&(B||[]).map((function(t,n){return c.a.createElement("div",{className:t.name===p.name?"node-item active":"node-item",key:t.name,onClick:function(){var n;n=t.url,s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:Q(Fe(!0)),Q(Ee({chainId:x,url:n})),A(!1),Promise.race([D(n),L(5e3)]).then((function(t){t?e.history.push("/redirect"):e.history.push("/nodeError")})).catch((function(t){console.log("switch node error ",t),e.history.push("/nodeError")})).finally((function(){Q(Fe(!1))}));case 4:case"end":return t.stop()}}))}},c.a.createElement("div",{className:"node-item-active-flag"}),c.a.createElement("div",{className:"node-item-detail"},c.a.createElement("div",{className:"node-item-detail-url"},c.a.createElement("span",{className:"url"},t.url.split("//")[1]||t.url),c.a.createElement("div",{className:I(t,v)?"node-item-detail-edit":"node-item-detail-edit custom",onClick:function(n){n.stopPropagation(),n.nativeEvent.stopImmediatePropagation(),A(!1);var a={nodeInfo:t,type:"remove"};e.history.push({pathname:"/addNode",query:a})}},c.a.createElement(Dt,{name:"Edit"}))),c.a.createElement("span",{className:"delay "+Y(b[t.url])},(a=b[t.url])?"timeout"===a?"timeout":a+" ms":"")));var a}))),c.a.createElement("div",{className:"add-node node-action-item",onClick:function(){e.history.push("/addNode")}},c.a.createElement(Dt,{name:"Add",className:"add-node-icon node-action-item-img"}),c.a.createElement("span",null,"Add node")),c.a.createElement("div",{className:"switch-net node-action-item",onClick:function(){Q(R(v?S:O)),Q(Xe()),A(!1),e.history.push("/")}},c.a.createElement("img",{className:"node-action-item-img",src:bt.a,alt:"switchImg"}),c.a.createElement("span",null,"Switch to ",v?"Mainnet":"Testnet"))),d&&!o?c.a.createElement("div",{className:"account-area"},c.a.createElement("div",{className:"action"},c.a.createElement("div",{onClick:function(){M(!1),e.history.push("/importAccount")}},c.a.createElement(Dt,{name:"Putin",className:"account-area-icon"}),c.a.createElement("span",null,"Import")),c.a.createElement("div",{onClick:function(){M(!1),e.history.push("/createAccount")}},c.a.createElement(Dt,{name:"Add",className:"account-area-icon"}),c.a.createElement("span",null,"New"))),h.length>0?c.a.createElement("div",{className:"accounts"},h.length>0&&h.map((function(t){return c.a.createElement("div",{className:t.address===f.address?"account-item active":"account-item",key:t.name,onClick:function(){return s.a.async((function(n){for(;;)switch(n.prev=n.next){case 0:Q(v?ce({address:t.address}):ae({address:t.address})),M(!1),e.history.push("/");case 3:case"end":return n.stop()}}))}},c.a.createElement("div",{className:"account-item-active-flag"}),c.a.createElement("div",{className:"account-item-detail"},c.a.createElement("span",{className:"name"},t.name),c.a.createElement("div",{className:"address"},c.a.createElement(pt,{value:t.address}),c.a.createElement("button",{className:"account-copy","data-clipboard-text":t.address,onClick:function(e){e.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},"data-tip":!0,"data-for":"copy-address-tooltip"},c.a.createElement(Dt,{className:"copy-icon",name:"copy"})),c.a.createElement(ht.a,{id:"copy-address-tooltip",effect:"solid",globalEventOff:"click",className:"extension-tooltip",afterHide:function(){return y("Copy")}},c.a.createElement("span",null,j)))))}))):null):null))})),St=n(619),Ot=n.n(St),Yt=(n(1040),n(620)),kt=n.n(Yt);n(1041);var Tt=function(e){var t=e.title,n=void 0===t?"":t,a=e.desc,r=void 0===a?"Do not store the mnemonic words in your PC or Net. Anybody can take your assets with the mnemonic words.":a;return c.a.createElement("div",{className:"static-warning"},c.a.createElement("img",{className:"warning-icon",src:kt.a,alt:"warning"}),c.a.createElement("span",{className:"warning-title"},n),c.a.createElement("div",{className:"warning-desc"},r))};n(1042);var zt=function(e){var t=e.msg;return c.a.createElement("div",{className:"error-message"},c.a.createElement("span",null,t))},Ht=n(286),Pt=(n(1043),function(e){var t=e.msg;return c.a.createElement("div",{className:"warning-message"},c.a.createElement("span",null,t))}),Ut=n(66);var Gt=function(e){var t=e.secret,n=e.onSuccess,r=Object(a.useState)({name:"",pass:"",repass:""}),i=Object(l.a)(r,2),o=i[0],u=i[1],A=Object(a.useState)(""),g=Object(l.a)(A,2),m=g[0],w=g[1],d=Object(Mt.c)(re),I=Object(Mt.c)(W),E=Object(Mt.b)();M.Account.setNet(I?"testnet":"mainnet");var C=M.Account.from(t),N=C.address(),D=(d||[]).find((function(e){return e.address===N})),j=function(){var e;return s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:if(o.name&&o.pass&&o.repass?o.pass.length<8?(w("password length must great than 8"),0):/(?=.*[a-z])(?=.*[A-Z])/.test(o.pass)?o.pass!==o.repass?(w("password is not match"),0):!(d||[]).find((function(e){return e.name===o.name}))||(w("name already exist"),0):(w("password must include lower and upper characters"),0):(w("name and password are required"),0)){t.next=2;break}return t.abrupt("return");case 2:e=C.encrypt(o.pass),E(te({chainId:I?O:S,account:{name:o.name,address:C.address(),keystore:e}})),n();case 5:case"end":return t.stop()}}))};return c.a.createElement("div",{className:"flex-column"},[{name:"name",type:"text",placeholder:"Name(12 characters max)"},{name:"pass",type:"password",placeholder:"Password"},{name:"repass",type:"password",placeholder:"Password confirmation"}].map((function(e,t){return c.a.createElement(Ut.TextInput,{showClear:!1,key:t,className:"fixed-width",type:e.type,value:o[e.name],onChange:function(t){return u(Object(f.a)({},o,Object(Ht.a)({},e.name,t)))},placeholder:e.placeholder,onKeyPress:function(e){"Enter"===e.key&&2===t&&j()}})})),c.a.createElement("button",{className:"button button-yellow margin-top-40",onClick:function(){j()}},"OK"),m&&c.a.createElement(zt,{msg:m}),D&&c.a.createElement(Pt,{msg:"Account ".concat(D.name," has same address, and it will be overwritten by this account.")}))};var Ft=function(e){var t=Object(a.useState)(0),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),s=Object(l.a)(o,2),u=s[0],A=s[1],g=Object(a.useState)(M.Account.newMnemonic()),m=Object(l.a)(g,1)[0],w=m.split(" "),d=Object(a.useState)(new Array(w.length).fill(!1)),I=Object(l.a)(d,2),E=I[0],C=I[1],N=Object(a.useState)(Ot()(w)),D=Object(l.a)(N,1)[0],j=Object(a.useState)(new Array(12).fill("")),y=Object(l.a)(j,2),L=y[0],f=y[1],h=w.map((function(e,t){return{value:e,index:t}})),p=function(){return A(""),!0};return c.a.createElement("div",{className:"container create-account"},c.a.createElement("div",{className:"create-account-title"},c.a.createElement("span",null,["New Account","Backup Mnemonic","Verify Mnemonic","Name and password setting"][r]),c.a.createElement("span",{className:"create-account-sub-title"},["","Write down following mnemonic words, and will be used next step.","Mark the words one by one in the order last step shows.","Password contains at lease 8 characters, and at least one upper,lower and number case character."][r])),c.a.createElement("div",{className:"create-account-body"},c.a.createElement("div",{className:"create-account-body-content"},0===r&&c.a.createElement(Tt,{title:"Backup Mnemonic"}),1===r&&h.map((function(e){return c.a.createElement("div",{className:"word-item",key:e.index},e.value)})),2===r&&D.map((function(e,t){return c.a.createElement("div",{className:"word-item word-item-click "+(E[t]?"word-item-selected":""),key:t,onClick:function(){var n=E[t],a=L.indexOf(""),c=e;n&&(a=11-Array.from(L).reverse().indexOf(e),c=""),L.splice(a,1,c),f(Array.from(L)),E.splice(t,1,!n),C(Array.from(E))}},e)})),3===r&&c.a.createElement(Gt,{type:"mnemonic",secret:m,onSuccess:function(){e.history.push("/")}})),r<2&&c.a.createElement("button",{className:"button button-yellow margin-top-40",onClick:function(){r<2&&i((function(e){return e+1}))}},["Begin","Next","Next","OK"][r]),2===r&&c.a.createElement("div",{className:"container-spacebetween margin-top-40"},c.a.createElement("button",{className:"button button-white-half",onClick:function(){return p()&&i((function(e){return e-1}))}},"Pre"),c.a.createElement("button",{className:"button button-yellow-half",onClick:function(){return(m===L.join(" ")?(p(),!0):(A("Mnemonic not correct"),!1))&&i((function(e){return e+1}))}},"Next")),r>1&&u?c.a.createElement(zt,{msg:u}):null),2===r&&c.a.createElement("div",{className:"validate-mnemonic-area"},c.a.createElement("div",{className:"validate-mnemonic-area-container"},L.map((function(e,t){return c.a.createElement("span",{key:t},e)})))))};n(1089);var Rt=function(e){var t=Object(a.useState)(0),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(0),s=Object(l.a)(o,2),u=s[0],A=s[1],g=Object(a.useState)(""),m=Object(l.a)(g,2),w=m[0],d=m[1],I=Object(a.useState)(""),E=Object(l.a)(I,2),M=E[0],C=E[1],N=Object(a.useState)(new Array(12).fill("")),D=Object(l.a)(N,2),j=D[0],y=D[1],L=[["Mnemonic","Private key"],["Password","Password"]],f=function(){if(0===u){if(j.some((function(e){return""===e})))return void C("Mnemonic is not correct")}else if(1===u&&!w)return void C("Private key is not correct");C(""),i((function(e){return e+1}))};return c.a.createElement("div",{className:"container import-account"},c.a.createElement("div",{className:"import-account-title"},c.a.createElement("div",{className:"import-account-title-select"},c.a.createElement("span",null,L[r][u]),0===r?c.a.createElement("span",{className:"second-choice",onClick:function(){C(""),A(1-u)}},L[r][1-u]):null),c.a.createElement("span",{className:"import-account-sub-title"},[["Input mnemonic words","Input private key"],["",""]][r][u])),c.a.createElement("div",{className:"import-account-body"},c.a.createElement("div",{className:"import-account-body-content"},0===r?0===u?c.a.createElement("div",{className:"import-mnemonic"},j.map((function(e,t){return c.a.createElement("input",{className:"word-item",key:t,value:j[t],onChange:function(e){j.splice(t,1,e.target.value),y(Array.from(j))}})}))):c.a.createElement(Ut.TextInput,{value:w,onChange:function(e){return d(e)},multiline:!0,rows:4,onKeyPress:function(e){"Enter"===e.key&&f()}}):null,1===r&&c.a.createElement(Gt,{type:0===u?"mnemonic":"pk",secret:0===u?j.join(" "):w.trim(),onSuccess:function(){e.history.push("/")}})),0===r&&c.a.createElement("button",{className:"button button-yellow margin-top-40",onClick:function(){r<1&&f()}},"Next"),M?c.a.createElement(zt,{msg:M}):null))},Kt=(n(1090),n(622)),Wt=n.n(Kt);function Jt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t=Number(t),new Wt.a(e).dividedBy(Math.pow(10,t)).toFixed(n||t)}var Xt=function(e){var t=e.value,n=e.token;return c.a.createElement("div",{className:"detail-amount"},c.a.createElement("span",null,"Amount"),c.a.createElement("span",null,t," ",n))},Zt=function(e){var t=e.label,n=e.value;return c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,t),c.a.createElement("span",null,n))},qt=function(){var e=Object(Mt.c)(ke),t=Object(l.a)(e,4),n=t[0],a=t[1],r=t[2],i=t[3];return c.a.createElement("div",{className:"detail"},c.a.createElement(Xt,{token:y(a),value:Jt(r,8)}),c.a.createElement(Zt,{label:"Dest",value:n}),c.a.createElement(Zt,{label:"Memo",value:i}))},Vt=function(e){var t=e.query;return c.a.createElement("div",{className:"detail"},c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Method"),c.a.createElement("span",null,t.method.replace(/([A-Z])/g,"_$1").toLowerCase())),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Args"),c.a.createElement("section",{className:"args"},c.a.createElement("ol",null,(t.argsWithName||[]).map((function(e,t){return e?c.a.createElement("li",{key:t},c.a.createElement("span",{className:"arg-name"},e.name,": "),c.a.createElement("span",{className:"arg-value"},e.value.toString().length>1e4?"[object Object]":e.value.toString())):null}))))))},_t=function(e){var t=e.query,n=Object(Mt.c)(nt),a=function(e,t){return 0===e&&"amount"===t?[8,8]:0===e&&"price"===t?[9,7]:1===e&&"amount"===t?[3,3]:1===e&&"price"===t?[4,8]:[8,8]};return c.a.createElement("div",{className:"detail"},"putOrder"===t.method&&c.a.createElement(c.a.Fragment,null,c.a.createElement("div",{className:"detail-amount"},c.a.createElement("span",null,"Amount"),c.a.createElement("span",null,t.args[2]," ",Jt.apply(void 0,[t.args[3]].concat(Object(h.a)(a(t.args[0],"amount"))))," ",n[t.args[0]]&&n[t.args[0]].assets)),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Price"),c.a.createElement("span",null,Jt.apply(void 0,[t.args[4]].concat(Object(h.a)(a(t.args[0],"price"))))))),"cancelOrder"===t.method&&c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Id"),c.a.createElement("span",null,t.args[1])),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Trade pair"),c.a.createElement("span",null,n[t.args[0]]&&y(n[t.args[0]].assets)+"/"+y(n[t.args[0]].currency))))},$t=function(){var e=Object(Mt.c)(tt),t=Object(Mt.b)();Object(a.useEffect)((function(){t((function(e){var t,n,a;return s.a.async((function(c){for(;;)switch(c.prev=c.next){case 0:return t=j(),n=t.asset,c.next=4,s.a.awrap(n.getWithdrawalLimitByToken(["BTC"]));case 4:a=c.sent,e(et(a.fee));case 6:case"end":return c.stop()}}))}))}),[t]);var n=Object(Mt.c)(Ye),r=Object(Mt.c)(ke);return c.a.createElement("div",{className:"detail"},"withdraw"===n&&c.a.createElement(c.a.Fragment,null,c.a.createElement("div",{className:"detail-amount"},c.a.createElement("span",null,"Amount"),c.a.createElement("span",null,Jt(r[1],8)," ",r[0])),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Fee"),c.a.createElement("span",null,Jt(e,8)," ",r[0])),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Dest"),c.a.createElement("span",null,r[2])),c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Memo"),c.a.createElement("span",null,r[3]))),"revokeWithdraw"===n&&c.a.createElement("div",{className:"detail-item"},c.a.createElement("span",null,"Id"),c.a.createElement("span",null,r[0])))},en=["withdraw","revokeWithdraw"],tn=["nominate","renominate","unnominate"],nn=[].concat(tn,["unfreeze","register"]),an=function(){var e=Object(Mt.c)(Ze),t=j(),n=Object(Mt.b)(),r=Object(Mt.c)(Ye),i=tn.includes(r),o=Object(Mt.c)(ke);Object(a.useEffect)((function(){n(Xe())}),[n]);var s=function(e){if(r&&o&&e)return t.account.decodeAddress(e)},u=c.a.createElement(c.a.Fragment,null,c.a.createElement(Xt,{value:Jt(o.slice(-2,-1),8),token:"PCX"}),"renominate"===r&&c.a.createElement(Zt,{label:"From node",value:e[s(o[0])]}),c.a.createElement(Zt,{label:"Dest node",value:e[s(o.slice(-3,-2)[0])]}),c.a.createElement(Zt,{label:"Memo",value:o.slice(-1)})),A=c.a.createElement(Zt,{label:"Name",value:o[0]}),l=c.a.createElement(c.a.Fragment,null,c.a.createElement(Zt,{label:"Node",value:e[s(o[0])]}),c.a.createElement(Zt,{label:"Id",value:o[1]})),g=c.a.createElement(c.a.Fragment,null,c.a.createElement(Zt,{label:"Node",value:e[s(o[0])]}));return i?g=u:"register"===r?g=A:"unfreeze"===r&&(g=l),c.a.createElement("div",{className:"detail"},g)},cn=function(){var e=Object(Mt.c)(ke);return c.a.createElement("div",{className:"detail"},c.a.createElement(Zt,{label:"Token",value:y(e[0])}))};var rn=function(e){var t=Object(Mt.b)(),n=Object(a.useState)(""),r=Object(l.a)(n,2),i=r[0],o=r[1],u=Object(a.useState)(""),A=Object(l.a)(u,2),g=A[0],m=A[1],w=Object(a.useState)(0),d=Object(l.a)(w,2),I=d[0],E=d[1],C=Object(a.useState)(1),N=Object(l.a)(C,2),D=N[0],y=N[1],L=Object(a.useState)(null),f=Object(l.a)(L,2),h=f[0],p=f[1],B=Object(a.useState)(Object.assign({},e.location.query)),x=Object(l.a)(B,2),v=x[0],b=x[1],Q=Object(Mt.c)(ie),S=Object(Mt.c)(Se),O=Object(Mt.c)(Ye),Y=Object(Mt.c)(ze),k=Object(Mt.c)(Te),T=e.location.query;Object(a.useEffect)((function(){H()}),[]),Object(a.useEffect)((function(){if(S&&S.data)try{E(function(e,t){var n=j();return new M.SubmittableExtrinsic(n.api,e).getFeeSync({acceleration:t})}(S.data,D))}catch(e){m("Failed to get transaction fee")}}),[D,S]);var z=function(){"xSpot"===v.module&&t((function(e){var t,n,a,c;return s.a.async((function(r){for(;;)switch(r.prev=r.next){case 0:return t=j(),n=t.trade,r.next=4,s.a.awrap(n.getTradingPairs());case 4:a=r.sent,c={},a.forEach((function(e){c[e.id]=e})),e($e(c));case 8:case"end":return r.stop()}}))}))},H=function(){if(T&&!T.module)try{var t=function(e){var t=new pe(e);return[Object(he.stringCamelCase)(t.methodName),t.argsArr.map((function(e){return"put_code"===t.methodName?e.value:e.value.toString()})),t.argsArr]}(T.data),n=Object(l.a)(t,3),a=n[0],c=n[1],r=n[2];v.method=a,v.argsWithName=r,v.args=c;var i="";i=["putOrder","cancelOrder"].includes(a)?"xSpot":["putCode","call","instantiate","claimSurcharge","convertToXrc20","convertToAsset","setTokenXrc20","setXrc20Selector","removeTokenXrc20","forceIssueXrc20","setGasPrice","setPrintln"].includes(a)?"xContracts":"",v.module=i,b(v),P(),z()}catch(o){console.log("parse error ",o),e.history.push("/nodeError")}},P=function(){return"transfer"===O?p(c.a.createElement(qt,null)):en.includes(O)?p(c.a.createElement($t,null)):nn.includes(O)||Y?p(c.a.createElement(an,null)):k?p(c.a.createElement(cn,null)):(e="xSpot"===v.module?c.a.createElement(_t,{query:v}):c.a.createElement(Vt,{query:v}),void p(e));var e},U=function(){return s.a.async((function(n){for(;;)switch(n.prev=n.next){case 0:if(m(""),Q&&Q.address){n.next=4;break}return m("Error: address is not exist"),n.abrupt("return");case 4:if(i||(m("password is required"),0)){n.next=6;break}return n.abrupt("return");case 6:if(Q.address===T.address){n.next=9;break}return m("Invalid address"),n.abrupt("return");case 9:return t(Ge(!0)),n.prev=10,n.next=13,s.a.awrap(Et(i,D));case 13:m(""),t(Ge(!1)),G(),e.history.push("/"),n.next=23;break;case 19:n.prev=19,n.t0=n.catch(10),t(Ge(!1)),m("Error: ".concat(n.t0.message));case 23:case"end":return n.stop()}}),null,null,[[10,19]])};window.onbeforeunload=function(){G()};var G=function(){try{t(Qe())}catch(n){console.log(n)}finally{e.history.push("/")}};return T&&S?c.a.createElement("div",{className:"container request-sign"},c.a.createElement("div",{className:"tx-panel"},h),c.a.createElement("div",{className:"adjust-gas"},c.a.createElement("div",{className:"adjust-gas-desc"},c.a.createElement("div",null,c.a.createElement("span",null,"Fee"),c.a.createElement("span",{className:"yellow"},Jt(I,8)," PCX")),c.a.createElement("span",null,"More fee, faster speed")),c.a.createElement(Ut.Slider,{defaultValue:D,onChange:function(e){return y(e)},"aria-labelledby":"discrete-slider",valueLabelDisplay:"auto",step:1,marks:[{value:1,label:"1x"},{value:10,label:"10x"}],min:1,max:10})),c.a.createElement("div",{className:"submit-area"},c.a.createElement("div",{className:"title"},c.a.createElement("span",null,"Input password")),c.a.createElement(Ut.TextInput,{showClear:!1,value:i,onChange:o,onKeyPress:function(e){"Enter"===e.key&&U()},className:"fixed-width",type:"password",placeholder:"Password"}),c.a.createElement(zt,{msg:g}),c.a.createElement("div",{className:"button-area margin-top-40"},c.a.createElement(Ut.DefaultButton,{size:"large",onClick:function(){G();var e=T.origin,t=T.id,n=T.dataId;dt.emit(e,t,"api",{id:n,result:{reject:!0}})}},"Cancel"),c.a.createElement(Ut.PrimaryButton,{disabled:g,size:"large",onClick:function(){return U()}},"Sign")))):c.a.createElement(c.a.Fragment,null)};n(1091);var on=function(e){return c.a.createElement("div",{className:"show-private-key"},c.a.createElement("span",{className:"title"},"Private Key"),c.a.createElement(Tt,{desc:"Do not store your private key in your PC or network. Anybody with your private key will take your asseets."}),c.a.createElement("div",{className:"pk"},c.a.createElement("span",{className:"span-center-wrap"},e.location.query.pk)))};n(1092);var sn=function(e){var t=Object(a.useState)(""),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),u=Object(l.a)(o,2),A=u[0],g=u[1],m=Object(Mt.c)(W),w=Object(Mt.b)(),d=Object(Mt.c)(K);function I(t,n){var a;return s.a.async((function(c){for(;;)switch(c.prev=c.next){case 0:try{a=M.Account.fromKeyStore(t,n).privateKey(),e.history.push({pathname:"/showPrivateKey",query:{pk:a}})}catch(r){g(r.message)}case 1:case"end":return c.stop()}}))}function E(t,n,a){return s.a.async((function(c){for(;;)switch(c.prev=c.next){case 0:try{M.Account.setNet(m?"testnet":"mainnet"),M.Account.fromKeyStore(a,n),w(ne({address:t,chainId:d})),e.history.push("/")}catch(r){g(r.message)}case 1:case"end":return c.stop()}}))}var C=function(){var t,n,a;return s.a.async((function(c){for(;;)switch(c.prev=c.next){case 0:r&&(t=e.location.query.address,n=e.location.query.keystore,"export"===(a=e.location.query.type)?I(n,r):"remove"===a&&E(t,r,n));case 1:case"end":return c.stop()}}))};return c.a.createElement("div",{className:"enter-password"},c.a.createElement("span",{className:"title"},"Input password"),c.a.createElement(Ut.TextInput,{showClear:!1,className:"fixed-width",type:"password",value:r,onChange:i,onKeyPress:function(e){"Enter"===e.key&&C()},placeholder:"Password"}),c.a.createElement("button",{className:"button button-yellow margin-top-40",onClick:function(){return C()}},"Confirm"),A?c.a.createElement(zt,{msg:A}):null)};n(609);var un=function(e){var t=Object(a.useState)(""),n=Object(l.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),u=Object(l.a)(o,2),A=u[0],g=u[1],m=Object(a.useState)(""),w=Object(l.a)(m,2),d=w[0],I=w[1],M=Object(Mt.c)(Ce),C=Object(Mt.c)(K),N=Object(Mt.b)(),D=e.location.query,j="",y="Add node";D&&"edit"===D.type?(j="edit",y="Edit node"):D&&"remove"===D.type&&(j="remove",y="Delete node");var L=function(){return s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:if(r&&A||(I("name and url are required"),0)){t.next=2;break}return t.abrupt("return");case 2:try{N(de({chainId:C,node:{name:r,url:A}})),E(M,C,N,Me),I(""),e.history.push("/")}catch(n){I(n.message)}case 3:case"end":return t.stop()}}))};return c.a.createElement("div",{className:"node-action"},c.a.createElement("span",{className:"title"},y),"remove"!==j?c.a.createElement(c.a.Fragment,null,c.a.createElement(Ut.TextInput,{showClear:!1,className:"fixed-width",value:r,onChange:i,placeholder:"Name(12 characters max)"}),c.a.createElement("span",{className:"node-url"},"Node address"),c.a.createElement(Ut.TextInput,{showClear:!1,className:"fixed-width",value:A,onChange:g,onKeyPress:function(e){"Enter"===e.key&&L()},placeholder:"wss://w1.chainx.org/ws"}),c.a.createElement("button",{className:"button button-yellow margin-top-40",onClick:function(){return L()}},"Confirm")):c.a.createElement("button",{className:"button button-white margin-top-16",onClick:function(){!function(t,n){s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(M.length<2)){t.next=3;break}return I("can not remove the last node"),t.abrupt("return");case 3:try{N(Ie({chainId:C,url:n})),E(M,C,N,Me),I(""),e.history.push("/")}catch(a){I(a.message)}case 4:case"end":return t.stop()}}))}(D.nodeInfo.name,D.nodeInfo.url)}},"Delete"),d?c.a.createElement(zt,{msg:d}):null)};var An,ln=function(){return c.a.createElement("div",{className:"node-error"},c.a.createElement("span",{className:"msg"},"Current node is invalid, please switch node and retry."))},gn=n(623),mn=n.n(gn);window.wallet.socketResponse=function(e){switch("string"===typeof e&&(e=JSON.parse(e)),e.type){case"api":return t=e.request,n=e.id,s.a.async((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s.a.awrap(new It(dt,t,n).handle());case 2:case"end":return e.stop()}}));case"pair":return function(e,t){return s.a.async((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,s.a.awrap(dt.emit(e.data.origin,t,"paired",!0));case 2:return n.abrupt("return",n.sent);case 3:case"end":return n.stop()}}))}(e.request,e.id);default:return}var t,n},An=window.sockets,dt=An,window.sockets.initialize().then((function(){return console.log("sockets initialized")})),i.a.render(c.a.createElement(Mt.a,{store:ct},c.a.createElement((function(){var e=Object(Mt.b)(),t=Object(Mt.c)((function(e){return e.status.loading})),n=Object(Mt.c)((function(e){return e.status.initLoading})),r=Object(Mt.c)(De);Object(a.useEffect)((function(){i()}),[]);var i=function(){return s.a.async((function(t){for(;;)switch(t.prev=t.next){case 0:Promise.race([D(r.url),L(3e3)]).catch((function(e){console.log("set Chainx catch error: ".concat(e))})).finally((function(){e(Fe(!1))}));case 1:case"end":return t.stop()}}))};return c.a.createElement(u.a,null,c.a.createElement(c.a.Fragment,null,c.a.createElement(Qt,{props:!0}),(t||n)&&c.a.createElement("div",{className:"spinner"},c.a.createElement("img",{src:mn.a,alt:"spinner"})),!n&&c.a.createElement("div",{className:"content"},c.a.createElement(A.d,null,c.a.createElement(A.b,{exact:!0,path:"/",component:Lt}),c.a.createElement(A.b,{path:"/createAccount",component:Ft}),c.a.createElement(A.b,{path:"/importAccount",component:Rt}),c.a.createElement(A.b,{path:"/requestSign/:id?",component:rn}),c.a.createElement(A.b,{path:"/showPrivateKey",component:on}),c.a.createElement(A.b,{path:"/enterPassword",component:sn}),c.a.createElement(A.b,{path:"/addNode",component:un}),c.a.createElement(A.b,{path:"/nodeError",component:ln}),c.a.createElement(A.a,{to:"/"})))))}),null)),document.getElementById("root"))},291:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzNmM2YzZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPui1hOa6kCA0MzwvdGl0bGU+PGcgaWQ9IuWbvuWxgl8yIiBkYXRhLW5hbWU9IuWbvuWxgiAyIj48ZyBpZD0i5Zu+5bGCXzEtMiIgZGF0YS1uYW1lPSLlm77lsYIgMSI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTQuNTQsNDUuNDVhNi44Niw2Ljg2LDAsMCwwLDkuNywwTDk3LDEyLjc0QTYwLDYwLDAsMCwwLDM3LjExLDQuNTNhMTIsMTIsMCwwLDAtMy45LDE5LjU5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ0Ljg0LDU1LjE1LDEyLjc1LDIzLjA2QTYwLDYwLDAsMCwwLDQuMTIsODEuOWExMiwxMiwwLDAsMCwxOS42NCw0TDQ0Ljg0LDY0Ljg1QTYuODYsNi44NiwwLDAsMCw0NC44NCw1NS4xNVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02NC4yNCw3NC41NWE2Ljg2LDYuODYsMCwwLDAtOS43LDBMMjIuMzYsMTA2LjczbC4wNywwYTYwLDYwLDAsMCwwLDU5LjQ0LDkuMSwxMiwxMiwwLDAsMCw0LjA2LTE5LjY0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTExNS40OSwzNy4xNGExMiwxMiwwLDAsMC0xOS42MS0zLjkzTDczLjk0LDU1LjE1YTYuODYsNi44NiwwLDAsMCwwLDkuN2wzMi43OCwzMi43OCwwLS4wN0E2MCw2MCwwLDAsMCwxMTUuNDksMzcuMTRaIi8+PC9nPjwvZz48L3N2Zz4="},585:function(e,t,n){},609:function(e,t,n){},616:function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDRweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgNDQgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjYgKDY3NDkxKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT7lkIjlubblvaLnirY8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLpkrHljIXmj5Lku7YiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjIuMDAwMDAwLCAtMTMzMC4wMDAwMDApIiBmaWxsPSIjRUE3NTRCIj4KICAgICAgICAgICAgPGcgaWQ9IuWIhue7hC01LWNvcHktMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgxMC4wMDAwMDAsIDEzMTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuNSwxMiBMODcuNSwxMiBDOTIuMTk0NDIwNCwxMiA5NiwxNS44MDU1Nzk2IDk2LDIwLjUgQzk2LDI1LjE5NDQyMDQgOTIuMTk0NDIwNCwyOSA4Ny41LDI5IEw2MC41LDI5IEM1NS44MDU1Nzk2LDI5IDUyLDI1LjE5NDQyMDQgNTIsMjAuNSBDNTIsMTUuODA1NTc5NiA1NS44MDU1Nzk2LDEyIDYwLjUsMTIgWiBNNjAuMiwxNS45MyBMNTkuNSwxNi42IEM2MC4xMSwxNy4wOSA2MC41OCwxNy41NSA2MC45LDE3Ljk3IEw2MS41OCwxNy4yOSBDNjEuMiwxNi44NCA2MC43NCwxNi4zOSA2MC4yLDE1LjkzIFogTTYwLjA0LDE4LjM4IEw1OS4zNCwxOS4wNSBDNTkuOTMsMTkuNTcgNjAuMzksMjAuMDYgNjAuNzEsMjAuNTIgTDYxLjM4LDE5Ljg0IEM2MS4wMiwxOS4zNiA2MC41NywxOC44NyA2MC4wNCwxOC4zOCBaIE02MC42NCwyMS4xMyBDNjAuMjgsMjIuMjggNTkuODcsMjMuNDEgNTkuMzksMjQuNTIgTDYwLjMzLDI0LjkzIEM2MC43NywyMy44NSA2MS4xNiwyMi43IDYxLjUyLDIxLjQ4IEw2MC42NCwyMS4xMyBaIE02NS4zOCwxNi4yNSBMNjEuNzUsMTYuMjUgTDYxLjc1LDIyLjUyIEw2Mi42NywyMi41MiBMNjIuNjcsMTcuMTQgTDY0LjQ2LDE3LjE0IEw2NC40NiwyMi40NiBMNjUuMzgsMjIuNDYgTDY1LjM4LDE2LjI1IFogTTY0LjMxLDIyLjg0IEw2My42OSwyMy40NSBDNjQuMjgsMjQuMDIgNjQuNzMsMjQuNTUgNjUuMDUsMjUuMDUgTDY1Ljc1LDI0LjM2IEM2NS4zNSwyMy44NiA2NC44NywyMy4zNSA2NC4zMSwyMi44NCBaIE02My4xNCwxNy42NyBMNjMuMTQsMjAuOCBDNjMuMTEsMjEuNjggNjIuOTcsMjIuMzkgNjIuNzMsMjIuOTMgQzYyLjQ4LDIzLjQzIDYyLDIzLjg2IDYxLjI5LDI0LjIgTDYxLjgzLDI1LjA3IEM2Mi41NywyNC43MiA2My4xMSwyNC4yMiA2My40NCwyMy41OCBDNjMuNzgsMjIuODggNjMuOTYsMjEuOTYgNjQsMjAuOCBMNjQsMTcuNjcgTDYzLjE0LDE3LjY3IFogTTY3LjM5LDI0Ljk2IEM2OC4wMSwyNC45NiA2OC4zMiwyNC42MiA2OC4zMiwyMy45NSBMNjguMzIsMTUuODUgTDY3LjM0LDE1Ljg1IEw2Ny4zNCwyMy43IEM2Ny4zNCwyMy45NCA2Ny4yNCwyNC4wNyA2Ny4wNSwyNC4wNyBDNjYuNzQsMjQuMDcgNjYuNDEsMjQuMDQgNjYuMDcsMjQgTDY2LjI5LDI0Ljk2IEw2Ny4zOSwyNC45NiBaIE02NS44OSwxNi42NyBMNjUuODksMjIuODMgTDY2LjgsMjIuODMgTDY2LjgsMTYuNjcgTDY1Ljg5LDE2LjY3IFogTTczLjU0LDIwLjcyIEw3My41NCwyMy4yNyBMNzIuNjcsMjMuMzkgTDcyLjkzLDI0LjM5IEM3My45MSwyNC4yMiA3NC44NCwyNC4wMSA3NS43MSwyMy43NyBMNzUuNzEsMjIuOCBDNzUuMzMsMjIuOSA3NC45NSwyMyA3NC41NiwyMy4wOCBMNzQuNTYsMjAuNzIgTDc1LjM5LDIwLjcyIEw3NS4zOSwxOS43NSBMNzIuNzIsMTkuNzUgTDcyLjcyLDIwLjcyIEw3My41NCwyMC43MiBaIE03Ny40OSwyNC45OCBDNzcuOTcsMjQuOTggNzguNCwyNC4yNCA3OC43NiwyMi43OCBMNzcuOTQsMjIuMTIgQzc3Ljc4LDIzLjI0IDc3LjYzLDIzLjgxIDc3LjQ5LDIzLjg0IEM3Ny4yNCwyMy43OCA3Ny4wMiwyMy4xOCA3Ni44MiwyMi4wNCBDNzYuNjksMjEuMTMgNzYuNiwxOS45NSA3Ni41NiwxOC40OSBMNzguNDEsMTguNDkgTDc4LjQxLDE3LjQ3IEw3Ni41NCwxNy40NyBDNzYuNTIsMTYuOTMgNzYuNTIsMTYuMzYgNzYuNTIsMTUuNzUgTDc1LjUsMTUuNzUgQzc1LjUsMTYuMzQgNzUuNSwxNi45MSA3NS41MiwxNy40NyBMNzIuNDksMTcuNDcgTDcyLjQ5LDE4LjQ5IEw3NS41NSwxOC40OSBDNzUuNTksMTkuNzUgNzUuNjcsMjAuODIgNzUuNzksMjEuNjkgQzc1LjkzLDIyLjcxIDc2LjE3LDIzLjU0IDc2LjUsMjQuMTggQzc2Ljc4LDI0LjcxIDc3LjExLDI0Ljk4IDc3LjQ5LDI0Ljk4IFogTTc3LjM1LDE1Ljc0IEw3Ni42NCwxNi4xOSBDNzcuMDQsMTYuNjUgNzcuMzUsMTcuMDYgNzcuNTksMTcuNDQgTDc4LjMxLDE2Ljk0IEM3OC4wOCwxNi42IDc3Ljc2LDE2LjIgNzcuMzUsMTUuNzQgWiBNNzAuNzgsMTUuODUgTDcwLjA0LDE2LjU3IEM3MC43MSwxNy4wOSA3MS4yMywxNy41OCA3MS42LDE4LjA0IEw3Mi4zMSwxNy4zMSBDNzEuODksMTYuODMgNzEuMzgsMTYuMzQgNzAuNzgsMTUuODUgWiBNNjkuMzYsMTguNzQgTDY5LjM2LDE5Ljc0IEw3MC42NywxOS43NCBMNzAuNjcsMjMuMzEgQzcwLjY3LDIzLjUxIDcwLjU4LDIzLjY5IDcwLjQsMjMuODMgTDcwLjgsMjQuNzcgQzcxLjQzLDI0LjMgNzIuMDMsMjMuNzcgNzIuNTksMjMuMTcgTDcyLjMyLDIyLjA3IEM3Mi4wOSwyMi4zMSA3MS44NywyMi41NCA3MS42NywyMi43NiBMNzEuNjcsMTguNzQgTDY5LjM2LDE4Ljc0IFogTTgzLjU3LDIyLjcyIEw4NC4yNiwyMi4wMyBDODMuOSwyMS40NyA4My41NSwyMC45NiA4My4yMSwyMC41IEM4My40NCwxOS42OCA4My42MywxOC43OCA4My43OCwxNy43OCBMODIuODIsMTcuNjEgQzgyLjczLDE4LjI3IDgyLjYxLDE4LjkxIDgyLjQ3LDE5LjUxIEM4Mi4xMywxOS4wNyA4MS44MSwxOC42OSA4MS41MSwxOC4zNyBMODAuOTIsMTguOTQgTDgwLjkyLDE3LjExIEw4Ny4wOCwxNy4xMSBMODcuMDgsMjIuNDMgQzg2LjcyLDIxLjgzIDg2LjM3LDIxLjI3IDg2LjAzLDIwLjc2IEM4Ni4zMSwxOS44OCA4Ni41NCwxOC44OSA4Ni43MSwxNy44MSBMODUuNzMsMTcuNjQgQzg1LjYyLDE4LjM3IDg1LjQ4LDE5LjA2IDg1LjMxLDE5LjcxIEM4NC45NywxOS4yMyA4NC42NSwxOC44MyA4NC4zNiwxOC40OSBMODMuNzIsMTkuMTEgQzg0LjE1LDE5LjY3IDg0LjU3LDIwLjI0IDg0Ljk3LDIwLjgzIEM4NC42MywyMS43NyA4NC4yMSwyMi41OSA4My43MSwyMy4zMSBMODQuMzcsMjQuMTMgQzg0Ljg1LDIzLjQ5IDg1LjI3LDIyLjc0IDg1LjYzLDIxLjg2IEM4NS45MSwyMi4zIDg2LjE3LDIyLjc1IDg2LjQzLDIzLjIxIEw4Ny4wOCwyMi41NiBMODcuMDgsMjMuNjkgQzg3LjA4LDIzLjkxIDg2Ljk2LDI0LjAyIDg2LjczLDI0LjAyIEw4NS44MSwyMy45NyBMODYuMDcsMjQuOTggTDg3LjA3LDI0Ljk4IEM4Ny43NiwyNC45OCA4OC4xMSwyNC42MyA4OC4xMSwyMy45MyBMODguMTEsMTYuMTEgTDc5Ljg5LDE2LjExIEw3OS44OSwyNS4wNSBMODAuOTIsMjUuMDUgTDgwLjkyLDE5LjA1IEM4MS4zNCwxOS41NiA4MS43NiwyMC4wOSA4Mi4xNiwyMC42MyBDODEuODYsMjEuNTUgODEuNDgsMjIuMzcgODEuMDIsMjMuMDcgTDgxLjY4LDIzLjg5IEM4Mi4xMywyMy4yNSA4Mi41MiwyMi40OSA4Mi44NSwyMS42MSBDODMuMDksMjEuOTcgODMuMzMsMjIuMzQgODMuNTcsMjIuNzIgWiIgaWQ9IuWQiOW5tuW9oueKtiI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="},617:function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMThweCIgaGVpZ2h0PSIxNHB4IiB2aWV3Qm94PSIwIDAgMTggMTQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjYgKDY3NDkxKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5zd2FwX2hvcml6LTI0cHg8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLpkrHljIXmj5Lku7YiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01MTYuMDAwMDAwLCAtMTYyNy4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9IuWIhue7hCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDk5LjAwMDAwMCwgMTM5MC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJzd2FwX2hvcml6LTI0cHgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjAwMDAwMCwgMjM0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIHBvaW50cz0iMCAwIDIwIDAgMjAgMjAgMCAyMCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjE0LDkuODYgTDEuMzYsMTIuNjUgQzEuMTcsMTIuODUgMS4xNywxMy4xNiAxLjM2LDEzLjM2IEw0LjE0LDE2LjE1IEM0LjQ1LDE2LjQ3IDQuOTksMTYuMjQgNC45OSwxNS44IEw0Ljk5LDE0IEwxMSwxNCBDMTEuNTUsMTQgMTIsMTMuNTUgMTIsMTMgQzEyLDEyLjQ1IDExLjU1LDEyIDExLDEyIEw0Ljk5LDEyIEw0Ljk5LDEwLjIxIEM0Ljk5LDkuNzYgNC40NSw5LjU0IDQuMTQsOS44NiBaIE0xOC42NSw2LjY1IEwxNS44NywzLjg2IEMxNS41NiwzLjU0IDE1LjAyLDMuNzcgMTUuMDIsNC4yMSBMMTUuMDIsNiBMOSw2IEM4LjQ1LDYgOCw2LjQ1IDgsNyBDOCw3LjU1IDguNDUsOCA5LDggTDE1LjAxLDggTDE1LjAxLDkuNzkgQzE1LjAxLDEwLjI0IDE1LjU1LDEwLjQ2IDE1Ljg2LDEwLjE0IEwxOC42NCw3LjM1IEMxOC44NCw3LjE2IDE4Ljg0LDYuODQgMTguNjUsNi42NSBaIiBpZD0i5b2i54q2IiBmaWxsPSIjRjZDOTRBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+"},620:function(e,t){e.exports="data:image/png;base64,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"},623:function(e,t){e.exports="data:image/gif;base64,R0lGODlhKAAoAPf/AOp2TFOz5ImjeTrFmfbKTdp+VO+UdKeQjvnag+yFTozIeYXJ7POym5bhyYbau5q7mvfMVWzVtPrhm9fKWovM7fnekaqVa0yx4/fQYfKrkvjWdu2HYut6UbjJZ0HKoXjZvPrjoup5TvfPXVKr2PGkic6BaEeu4oiaqZiccut9VfCegLuNY9LCq2Wzx6fL1vXDS47fx8jJYZjS7/GhhfGnTe6TT4XdwnmrgMu1rVPOqHe1t0PDllm4jciHXffNWWaziEnMpIathT3InkzGkvbHSk2t3WK55HXYukTKooq4p6nJbVaw1dbateB6UtfEZerJUlTKmXPC6WTIiOrHVFzQq/bLUGalyPS8TNOBV9Owm/HJTpaVnDbGm/OzTfnZfkq/lPncidqGY2HTsPCbfHnIgUzNpmfTruyAWoLcwam9jXaguvKojnvF6lnHjoC4sraJfvjTbDrInWbUs1m25T7Gl3vavaK3xbOQZpHOin6etPC4ofndjfbJmULJnLDIqra4mZTeweyFX+PJU8KFc1245uDGXed2TeyCXM7QitLQdeWiiOt/WO7JTt6Pa/jVclK7kKK8k12nzuesk7jWlLG+hqDQ47bhum/XuI7au+vYiOTeq++YeF/HmvPelLXQuKSYbvrfk4/O7UjKoIHI6+N5UPS3Wdd+YJO7o+HVfO2MTl+yzG+vhEvKnHS9l/DJUDfGmXDVsj/Cl/jXd57U8O6VWPrcnMrCcN97WPCcUvPZg3TOpel1S4DZuOmBW/jWiPOxjILStL3ApW20wOiWeU3Mo7ifezjFmjXGmvbMU/nbhzfHnH/bwGPTsW/A6D7Jn0bLo+Z3UPfRZ+fHV/nbknvXtu2NXjXGmZ/ewPHbivjXg/PJTLvAfeDOZczhr/fJdPOvYfHMV+rgnPXCinK4x+GCYfHPZ0rEm++eTnqyifPMWtWLc/XFUObNX86QfG6iwOyDXeqFX/Kqgm2t0JvCtJPVopPC2o+/uO+WdnjWuErMo0vLokau4vbJSup1SzTGmgAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzU0ODU2N0RGN0JGMTFFOTk3QUI5RDA4N0VFMDhDNTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzU0ODU2N0VGN0JGMTFFOTk3QUI5RDA4N0VFMDhDNTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NTQ4NTY3QkY3QkYxMUU5OTdBQjlEMDg3RUUwOEM1MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NTQ4NTY3Q0Y3QkYxMUU5OTdBQjlEMDg3RUUwOEM1MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5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"},632:function(e,t,n){e.exports=n(1094)},649:function(e,t){},663:function(e,t){},665:function(e,t){},684:function(e,t){},820:function(e,t){}},[[632,1,2]]]);
+//# sourceMappingURL=main.d7ba0dd7.chunk.js.map
\ No newline at end of file
diff --git a/build/static/js/main.d7ba0dd7.chunk.js.map b/build/static/js/main.d7ba0dd7.chunk.js.map
new file mode 100644
index 0000000..964e159
--- /dev/null
+++ b/build/static/js/main.d7ba0dd7.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["shared/useClickOutside.js","shared/fetch.js","shared/updateNodeStatus.js","shared/chainx.js","store/reducers/testSlice.js","store/reducers/constants.js","store/reducers/settingSlice.js","store/utils.js","store/reducers/accountSlice.js","store/reducers/nodeSlice.js","shared/extensionExtrinsic.js","store/reducers/txSlice.js","store/reducers/statusSlice.js","store/reducers/intentionSlice.js","store/reducers/tradeSlice.js","store/reducers/index.js","store/index.js","error.js","constants.js","services/ApiService.js","services/socketService.js","shared/signHelper.js","components/Icon/index.js","pages/Home.js","components/DotInCenterStr/index.js","pages/Header/index.js","components/StaticWarning/index.js","components/ErrorMessage/index.js","components/WarningMessage/index.js","components/NameAndPassword/index.js","pages/CreateAccount/index.js","pages/ImportAccount/index.js","shared/toPrecision.js","shared/constants.js","pages/RequestSign/components/DetailAmount.js","pages/RequestSign/components/DetailItem.js","pages/RequestSign/Transfer.js","pages/RequestSign/CommonTx.js","pages/RequestSign/Trade.js","pages/RequestSign/AssetsProcess.js","pages/RequestSign/constants.js","pages/RequestSign/Staking.js","pages/RequestSign/PseduClaim.js","pages/RequestSign/index.js","pages/ShowPrivateKey/index.js","pages/EnterPassword/index.js","pages/NodeAction/index.js","pages/NodeAction/NodeError.js","pages/App.js","index.js","assets/extension_logo.svg","assets/testnet.svg","assets/switch.svg","assets/warning.png","assets/loading.gif"],"names":["useOutsideClick","ref","callback","handleClick","e","current","contains","target","useEffect","document","addEventListener","removeEventListener","fetchFromWs","startTime","endTime","url","method","params","timeOut","id","Number","Date","now","Math","random","toString","substr","message","JSON","stringify","jsonrpc","request","Promise","resolve","reject","ws","WebSocket","onmessage","m","data","parse","result","wastTime","close","err","onopen","send","onerror","race","resovle","setTimeout","INIT_NODES","name","TESTNET_INIT_NODES","isCurrentNodeInit","node","isTestNet","some","item","getDelay","nodeList","chainId","dispatch","setNodeDelay","a","async","forEach","then","delay","catch","console","log","chainx","setChainx","nodeUrl","Chainx","isRpcReady","getChainx","replaceBTC","token","sleep","time","testSlice","createSlice","initialState","reducers","setTest","reducer","state","action","payload","text","prepare","actions","CHAINX_MAIN","CHAINX_TEST","events","chainxNetwork","defaultSettingInitialState","version","network","window","settingStore","get","settingSlice","setNetwork","pre","set","sockets","broadcastEvent","from","to","networkSelector","setting","isTestNetSelector","createSelector","extractAccountInfo","account","_","pick","accountStore","chainxMainNetAccounts","currentChainXMainNetAccount","chainxTestNetAccounts","currentChainxTestNetAccount","findTargetAccounts","targetAccounts","Error","accountSlice","addAccount","address","keystore","findIndex","index","splice","push","setCurrentChainXMainNetAccount","find","removeAccount","setCurrentChainXTestNetAccount","chainxAccountsSelector","mainNetAccounts","testNetAccounts","currentChainxAccountSelector","mainNetAccount","testNetAccount","mainNetInitNodes","testNetInitNodes","defaultNodeInitialState","chainxMainNetNodes","currentChainXMainNetNode","chainxTestNetNodes","currentChainXTestNetNode","testnetNodesDelay","mainnetNodesDelay","nodeStore","findTargetNodes","targetNodes","nodeSlice","addNode","n","newNode","includes","nodes","removeNode","length","setCurrentChainXMainNetNode","setCurrentChainXTestNetNode","setCurrentChainXNode","chainxNodesSelector","mainNetNodes","testNetNodes","chainxNodesDelaySelector","currentChainxNodeSelector","mainNetNode","testNetNode","Extrinsic","this","meta","args","entries","value","require","txSlice","toSign","setToSign","clearToSign","toSignSelector","tx","toSignExtrinsicSelector","toSignMethodNameSelector","extrinsic","stringCamelCase","methodName","toSignArgsSelector","argsArr","map","isPseduClaimSelector","ex","Token","isStakingClaimSelector","Address","statusSlice","loading","initLoading","homeLoading","setLoading","setInitLoading","setHomeLoading","intentionSlice","intentions","setIntentions","getStake","stake","fetchIntentions","getIntentions","resp","intentionAccountNameMapSelector","reduce","tradeSlice","pairs","fee","setPairs","setFee","feeSelector","trade","pairsSelector","test","testReducer","status","statusReducer","store","configureStore","rootReducer","codes","methods","getAccount","getState","getNode","service","ApiService","emit","origin","error","code","sign","needBroadcast","currentAccount","dataId","activateWindow","getSignRequest","pass","acceleration","emitInfo","event","socketsEvents","api","SubmittableExtrinsic","fromKeyStore","query","system","accountNonce","publicKey","nonce","signedExtrinsic","toNumber","blockHash","genesisHash","hash","toHex","hex","Icon","props","className","style","Home","useRef","useState","showAccountAction","setShowAccountAction","useSelector","copySuccess","setCopySuccess","useDispatch","operateAccount","type","history","pathname","ClipboardJS","on","getUnapprovedTxs","onClick","data-clipboard-text","src","logo","alt","DotInCenterStr","simpleStr","slice","getDotInCenterStr","withRouter","refNodeList","refAccountList","showNodeListArea","setShowNodeListArea","showAccountArea","setShowAccountArea","copyText","setCopyText","accounts","currentNode","nodesDelay","getDelayClass","testNetImg","location","replace","toLowerCase","key","finally","split","stopPropagation","nativeEvent","stopImmediatePropagation","nodeInfo","switchImg","data-tip","data-for","effect","globalEventOff","afterHide","StaticWarning","title","desc","warningIcon","ErrorMessage","msg","NameAndPassword","secret","onSuccess","repass","obj","setObj","errMsg","setErrMsg","Account","setNet","sameAccount","create","encrypt","placeholder","i","showClear","onChange","onKeyPress","CreateAccount","currentStep","setCurrentStep","newMnemonic","mnemonic","mnemonicList","Array","fill","wordSelectedList","setWordSelectedList","shuffle","shuffleMnemonicList","validateMnemonicList","setValidateMnemonicList","mnemonicWords","clearErrMsg","wordSelected","wordIndex","indexOf","replaceWord","reverse","s","join","ImportAccount","currentTabIndex","setCurrentTabIndex","pk","setPk","setMnemonicList","titleList","checkStep1","multiline","rows","trim","toPrecision","precision","showPrecision","BigNumber","dividedBy","pow","toFixed","label","dest","balance","memo","DetailAmount","DetailItem","argsWithName","arg","getPrecision","assets","currency","asset","getWithdrawalLimitByToken","xAssetsProcessCalls","nominateMethodNames","stakingMethodNames","intentionAccountNameMap","isNominateMethod","getPublicKey","decodeAddress","nominateMethodElement","registerElement","unfreezeElement","element","RequestSign","setPass","currentGas","setCurrentGas","setAcceleration","txPanel","setTxPanel","Object","assign","newQuery","setNewQuery","toSignMethodName","isStakingClaim","isPseduClaim","parseQuery","getFeeSync","getGas","fetchRelevantInfo","module","getTradingPairs","parseData","updateTxPanel","Transfer","AssetsProcess","Staking","PseduClaim","_txPanel","Trade","CommonTx","removeCurrentSign","onbeforeunload","defaultValue","v","aria-labelledby","valueLabelDisplay","step","marks","min","max","size","disabled","ShowPrivateKey","EnterPassword","exportPk","password","privateKey","_removeAccount","enter","AddNode","setName","setUrl","deleteNode","NodeError","wallet","socketResponse","handle","handlePairedResponse","initialize","ReactDOM","render","getSetting","Fragment","spinner","exact","path","component","NodeAction","getElementById","exports"],"mappings":"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","file":"static/js/main.d7ba0dd7.chunk.js","sourcesContent":["import { useEffect } from 'react'\n\nconst useOutsideClick = (ref, callback) => {\n const handleClick = e => {\n if (ref.current && !ref.current.contains(e.target)) {\n callback()\n }\n }\n\n useEffect(() => {\n document.addEventListener('click', handleClick)\n\n return () => {\n document.removeEventListener('click', handleClick)\n }\n })\n}\n\nexport default useOutsideClick\n","const fetchFromWs = ({ url, method, params = [], timeOut = 5000 }) => {\n const id = Number(\n Date.now() +\n Math.random()\n .toString()\n .substr(2, 3)\n ).toString(36)\n const message = JSON.stringify({ id, jsonrpc: '2.0', method, params })\n let startTime\n let endTime\n const request = () =>\n new Promise((resolve, reject) => {\n const ws = new WebSocket(url)\n ws.onmessage = m => {\n try {\n const data = JSON.parse(m.data)\n if (data.id === id) {\n endTime = Date.now()\n resolve({\n data: data.result,\n wastTime: endTime - startTime\n })\n ws.close()\n }\n } catch (err) {\n reject(err)\n }\n }\n ws.onopen = () => {\n startTime = Date.now()\n ws.send(message)\n }\n ws.onerror = err => {\n ws.close()\n reject(err)\n }\n })\n if (timeOut) {\n return Promise.race([\n request(),\n new Promise((resovle, reject) => {\n setTimeout(() => {\n reject('请求超时')\n }, timeOut)\n })\n ])\n } else {\n return request()\n }\n}\n\nexport default fetchFromWs\n","import fetchFromWs from './fetch'\n\nconst TIMEOUT = 7000\nconst INIT_NODES = [\n {\n name: 'w1.org',\n url: 'wss://w1.chainx.org/ws'\n },\n {\n name: 'w2.org',\n url: 'wss://w2.chainx.org/ws'\n },\n {\n name: 'HashQuark',\n url: 'wss://chainx.hashquark.io'\n },\n {\n name: 'BuildLinks',\n url: 'wss://chainx.buildlinks.org'\n },\n {\n name: 'w1.cn',\n url: 'wss://w1.chainx.org.cn/ws'\n }\n]\n\nconst TESTNET_INIT_NODES = [\n {\n name: 'testnet.w1.org.cn',\n url: 'wss://testnet.w1.chainx.org.cn/ws'\n }\n]\n\nexport const isCurrentNodeInit = (node, isTestNet) => {\n let result = false\n if (isTestNet) {\n result = TESTNET_INIT_NODES.some(item => item.url === node.url)\n } else {\n result = INIT_NODES.some(item => item.url === node.url)\n }\n return result\n}\n\nconst getDelay = async (nodeList, chainId, dispatch, setNodeDelay) => {\n nodeList.forEach(item => {\n fetchFromWs({\n url: item.url,\n method: 'chain_getBlock',\n timeOut: TIMEOUT\n })\n .then((result = {}) => {\n if (result.data) {\n dispatch(\n setNodeDelay({ chainId, url: item.url, delay: result.wastTime })\n )\n }\n })\n .catch(err => {\n console.log('catched', err)\n dispatch(setNodeDelay({ chainId, url: item.url, delay: 'timeout' }))\n })\n })\n}\n\nexport default getDelay\n","import Chainx from 'chainx.js'\n\nlet chainx = null\n\nexport const setChainx = async nodeUrl => {\n chainx = new Chainx(nodeUrl)\n await chainx.isRpcReady()\n return chainx\n}\n\nexport const getChainx = () => {\n return chainx\n}\n\nexport const replaceBTC = token => {\n return token === 'BTC' ? 'X-BTC' : token\n}\n\nexport const sleep = time => {\n return new Promise(resolve => {\n setTimeout(resolve, time)\n })\n}\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst testSlice = createSlice({\n name: 'test',\n initialState: 'test',\n reducers: {\n setTest: {\n reducer(state, action) {\n const { text } = action.payload\n return text\n },\n prepare(text) {\n return { payload: { text } }\n }\n }\n }\n})\n\nexport const { setTest } = testSlice.actions\n\nexport default testSlice.reducer\n","export const CHAINX_MAIN = 'chainx-mainnet'\nexport const CHAINX_TEST = 'chainx-testnet'\nexport const ACCOUNT_STORE_KEY = 'accounts'\nexport const NODE_STORE_KEY = 'nodes'\nexport const SETTING_STORE_KEY = 'settings'\nexport const events = {\n ACCOUNT_CHANGE: 'account-change',\n NODE_CHANGE: 'node-change',\n NETWORK_CHANGE: 'network-change',\n TX_STATUS: 'tx-status'\n}\n","import { createSlice, createSelector } from '@reduxjs/toolkit'\nimport {\n CHAINX_MAIN,\n CHAINX_TEST,\n events,\n SETTING_STORE_KEY\n} from './constants'\n\nexport const chainxNetwork = {\n MAIN: CHAINX_MAIN,\n TEST: CHAINX_TEST\n}\n\nconst defaultSettingInitialState = {\n version: 0,\n network: chainxNetwork.MAIN\n}\n\nlet initialState =\n window.settingStore.get(SETTING_STORE_KEY) || defaultSettingInitialState\n\nconst settingSlice = createSlice({\n name: 'setting',\n initialState,\n reducers: {\n setNetwork(state, { payload }) {\n const pre = state.network\n state.network = payload\n window.settingStore.set(SETTING_STORE_KEY, state)\n\n if (pre !== payload) {\n window.sockets.broadcastEvent(events.NETWORK_CHANGE, {\n from: pre,\n to: payload\n })\n }\n }\n }\n})\n\nexport const { setNetwork } = settingSlice.actions\nexport const networkSelector = state => state.setting.network\n\nexport const isTestNetSelector = createSelector(networkSelector, network => {\n return network === chainxNetwork.TEST\n})\n\nexport default settingSlice.reducer\n","import _ from 'lodash'\n\nexport function extractAccountInfo(account) {\n if (!account) {\n return\n }\n\n return _.pick(account, ['name', 'address'])\n}\n","import { createSlice, createSelector } from '@reduxjs/toolkit'\nimport {\n ACCOUNT_STORE_KEY,\n CHAINX_MAIN,\n CHAINX_TEST,\n events\n} from './constants'\nimport { chainxNetwork, networkSelector } from './settingSlice'\nimport { extractAccountInfo } from '../utils'\n\nconst defaultAccountInitialState = {\n version: 0,\n chainxMainNetAccounts: [],\n currentChainXMainNetAccount: null,\n chainxTestNetAccounts: [],\n currentChainxTestNetAccount: null\n}\n\nlet initialState =\n window.accountStore.get(ACCOUNT_STORE_KEY) || defaultAccountInitialState\n\nfunction findTargetAccounts(state, chainId) {\n let targetAccounts\n if (CHAINX_MAIN === chainId) {\n targetAccounts = state.chainxMainNetAccounts\n } else if (CHAINX_TEST === chainId) {\n targetAccounts = state.chainxTestNetAccounts\n } else {\n throw new Error(`Invalid chainId: ${chainId}`)\n }\n\n return targetAccounts\n}\n\nconst accountSlice = createSlice({\n name: 'account',\n initialState,\n reducers: {\n addAccount(\n state,\n {\n payload: {\n chainId,\n account: { name, address, keystore }\n }\n }\n ) {\n const targetAccounts = findTargetAccounts(state, chainId)\n\n if (targetAccounts.findIndex(a => a.name === name) >= 0) {\n return\n }\n\n const account = { name, address, keystore }\n const index = targetAccounts.findIndex(a => a.address === address)\n if (index >= 0) {\n targetAccounts.splice(index, 1, account)\n } else {\n targetAccounts.push(account)\n }\n\n let pre\n if (CHAINX_MAIN === chainId) {\n pre = state.currentChainXMainNetAccount\n state.currentChainXMainNetAccount = account\n } else if (CHAINX_TEST === chainId) {\n pre = state.currentChainxTestNetAccount\n state.currentChainxTestNetAccount = account\n }\n window.accountStore.set(ACCOUNT_STORE_KEY, state)\n\n window.sockets.broadcastEvent(events.ACCOUNT_CHANGE, {\n from: extractAccountInfo(pre),\n to: extractAccountInfo(account)\n })\n },\n setCurrentChainXMainNetAccount(state, { payload: { address } }) {\n const target = state.chainxMainNetAccounts.find(\n a => a.address === address\n )\n if (!target) {\n throw new Error(`No ChainX mainnet account with address ${address}`)\n }\n\n const pre = state.currentChainXMainNetAccount\n state.currentChainXMainNetAccount = target\n window.accountStore.set(ACCOUNT_STORE_KEY, state)\n window.sockets.broadcastEvent(events.ACCOUNT_CHANGE, {\n from: extractAccountInfo(pre),\n to: extractAccountInfo(target)\n })\n },\n removeAccount(state, { payload: { chainId, address } }) {\n const targetAccounts = findTargetAccounts(state, chainId)\n\n const index = targetAccounts.findIndex(a => a.address === address)\n if (index < 0) {\n return\n }\n\n targetAccounts.splice(index, 1)\n let pre, current\n if (chainId === CHAINX_MAIN) {\n pre = state.currentChainXMainNetAccount\n state.currentChainXMainNetAccount = targetAccounts[0] || null\n current = targetAccounts[0] || null\n } else if (chainId === CHAINX_TEST) {\n pre = state.currentChainxTestNetAccount\n state.currentChainxTestNetAccount = targetAccounts[0] || null\n current = targetAccounts[0] || null\n }\n\n window.accountStore.set(ACCOUNT_STORE_KEY, state)\n window.sockets.broadcastEvent(events.ACCOUNT_CHANGE, {\n from: extractAccountInfo(pre),\n to: extractAccountInfo(current)\n })\n\n // TODO: 处理不存在address的情况\n },\n setCurrentChainXTestNetAccount(state, { payload: { address } }) {\n const target = state.chainxTestNetAccounts.find(\n a => a.address === address\n )\n if (!target) {\n throw new Error(`No ChainX testnet account with address ${address}`)\n }\n\n const pre = state.currentChainXMainNetAccount\n state.currentChainxTestNetAccount = target\n window.accountStore.set(ACCOUNT_STORE_KEY, state)\n window.sockets.broadcastEvent(events.ACCOUNT_CHANGE, {\n from: extractAccountInfo(pre),\n to: extractAccountInfo(target)\n })\n }\n }\n})\n\nexport const {\n addAccount,\n removeAccount,\n setCurrentChainXMainNetAccount,\n setCurrentChainXTestNetAccount\n} = accountSlice.actions\n\nexport const chainxMainNetAccountsSelector = state =>\n state.account.chainxMainNetAccounts\nexport const chainxTestNetAccountsSelector = state =>\n state.account.chainxTestNetAccounts\nexport const currentChainXMainNetAccountSelector = state =>\n state.account.currentChainXMainNetAccount\nexport const currentChainxTestNetAccountSelector = state =>\n state.account.currentChainxTestNetAccount\n\nexport const chainxAccountsSelector = createSelector(\n networkSelector,\n chainxMainNetAccountsSelector,\n chainxTestNetAccountsSelector,\n (network, mainNetAccounts, testNetAccounts) => {\n if (network === chainxNetwork.TEST) {\n return testNetAccounts\n } else if (network === chainxNetwork.MAIN) {\n return mainNetAccounts\n }\n }\n)\n\nexport const currentChainxAccountSelector = createSelector(\n networkSelector,\n currentChainXMainNetAccountSelector,\n currentChainxTestNetAccountSelector,\n (network, mainNetAccount, testNetAccount) => {\n if (network === chainxNetwork.TEST) {\n return testNetAccount\n } else if (network === chainxNetwork.MAIN) {\n return mainNetAccount\n }\n }\n)\n\nexport default accountSlice.reducer\n","import { createSelector, createSlice } from '@reduxjs/toolkit'\nimport { CHAINX_MAIN, CHAINX_TEST, events, NODE_STORE_KEY } from './constants'\nimport { chainxNetwork, networkSelector } from './settingSlice'\n\nexport const mainNetInitNodes = [\n {\n name: 'w1.org',\n url: 'wss://w1.chainx.org/ws'\n },\n {\n name: 'w2.org',\n url: 'wss://w2.chainx.org/ws'\n },\n {\n name: 'HashQuark',\n url: 'wss://chainx.hashquark.io'\n },\n {\n name: 'BuildLinks',\n url: 'wss://chainx.buildlinks.org'\n },\n {\n name: 'w1.cn',\n url: 'wss://w1.chainx.org.cn/ws'\n }\n]\n\nexport const testNetInitNodes = [\n {\n name: 'testnet.w1.org.cn',\n url: 'wss://testnet.w1.chainx.org.cn/ws'\n }\n]\n\nconst defaultNodeInitialState = {\n version: 0,\n chainxMainNetNodes: mainNetInitNodes,\n currentChainXMainNetNode: mainNetInitNodes[0],\n chainxTestNetNodes: testNetInitNodes,\n currentChainXTestNetNode: testNetInitNodes[0],\n testnetNodesDelay: {},\n mainnetNodesDelay: {}\n}\n\nconst initialState =\n window.nodeStore.get(NODE_STORE_KEY) || defaultNodeInitialState\n\nfunction findTargetNodes(state, chainId) {\n let targetNodes\n if (CHAINX_MAIN === chainId) {\n targetNodes = state.chainxMainNetNodes\n } else if (CHAINX_TEST === chainId) {\n targetNodes = state.chainxTestNetNodes\n } else {\n throw new Error(`Invalid chainId: ${chainId}`)\n }\n\n return targetNodes\n}\n\nconst nodeSlice = createSlice({\n name: 'node',\n initialState,\n reducers: {\n addNode(\n state,\n {\n payload: {\n chainId,\n node: { name, url }\n }\n }\n ) {\n const targetNodes = findTargetNodes(state, chainId)\n const target = targetNodes.find(n => n.url === url)\n if (target) {\n return\n }\n\n const newNode = { name, url }\n targetNodes.push(newNode)\n let pre\n if (CHAINX_MAIN === chainId) {\n pre = state.currentChainXMainNetNode\n state.currentChainXMainNetNode = newNode\n } else if (CHAINX_TEST === chainId) {\n pre = state.currentChainXTestNetNode\n state.currentChainXTestNetNode = newNode\n }\n\n if ([CHAINX_MAIN, CHAINX_TEST].includes(chainId)) {\n window.sockets.broadcastEvent(events.NODE_CHANGE, {\n from: pre,\n to: newNode\n })\n }\n\n window.nodeStore.set(NODE_STORE_KEY, state)\n },\n setNodeDelay(state, { payload: { chainId, url, delay } }) {\n let nodes = state.testnetNodesDelay\n if (CHAINX_MAIN === chainId) {\n nodes = state.mainnetNodesDelay\n }\n nodes[url] = delay\n window.nodeStore.set(NODE_STORE_KEY, state)\n },\n removeNode(state, { payload: { chainId, url } }) {\n const targetNodes = findTargetNodes(state, chainId)\n if (targetNodes.length <= 1) {\n return\n }\n\n const index = targetNodes.findIndex(n => n.url === url)\n if (index < 0) {\n return\n }\n\n targetNodes.splice(index, 1)\n\n let pre = null\n if (CHAINX_MAIN === chainId) {\n pre = state.currentChainXMainNetNode\n state.currentChainXMainNetNode = targetNodes[0] || null\n } else if (CHAINX_TEST === chainId) {\n pre = state.currentChainXTestNetNode\n state.currentChainXTestNetNode = targetNodes[0] || null\n }\n\n if ([CHAINX_MAIN, CHAINX_TEST].includes(chainId)) {\n window.sockets.broadcastEvent(events.NODE_CHANGE, {\n from: pre,\n to: targetNodes[0] || null\n })\n }\n\n window.nodeStore.set(NODE_STORE_KEY, state)\n\n // TODO: 处理不存在url的情况\n },\n setCurrentChainXMainNetNode(state, { payload: { url } }) {\n const target = state.chainxMainNetNodes.find(n => n.url === url)\n if (!target) {\n throw new Error(`No ChainX mainnet node with url ${url}`)\n }\n\n const pre = state.currentChainXTestNetNode\n state.currentChainXMainNetNode = target\n window.nodeStore.set(NODE_STORE_KEY, state)\n window.sockets.broadcastEvent(events.NODE_CHANGE, {\n from: pre,\n to: target\n })\n },\n setCurrentChainXTestNetNode(state, { payload: { url } }) {\n const target = state.chainxTestNetNodes.find(n => n.url === url)\n if (!target) {\n throw new Error(`No ChainX testnet node with url ${url}`)\n }\n\n const pre = state.currentChainXTestNetNode\n state.currentChainXTestNetNode = target\n window.nodeStore.set(NODE_STORE_KEY, state)\n window.sockets.broadcastEvent(events.NODE_CHANGE, {\n from: pre,\n to: target\n })\n },\n setCurrentChainXNode(state, { payload: { chainId, url } }) {\n const targetNodes = findTargetNodes(state, chainId)\n if (!targetNodes) {\n return\n }\n\n const target = targetNodes.find(n => n.url === url)\n if (!target) {\n return\n }\n\n let pre\n if (CHAINX_MAIN === chainId) {\n pre = state.currentChainXMainNetNode\n state.currentChainXMainNetNode = target\n } else if (CHAINX_TEST === chainId) {\n pre = state.currentChainXTestNetNode\n state.currentChainXTestNetNode = target\n }\n\n window.nodeStore.set(NODE_STORE_KEY, state)\n window.sockets.broadcastEvent(events.NODE_CHANGE, {\n from: pre,\n to: target\n })\n }\n }\n})\n\nexport const {\n addNode,\n removeNode,\n setCurrentChainXMainNetNode,\n setCurrentChainXTestNetNode,\n setCurrentChainXNode,\n setNodeDelay\n} = nodeSlice.actions\n\nexport const chainxMainNetNodesSelector = state => state.node.chainxMainNetNodes\nexport const chainxTestNetNodesSelector = state => state.node.chainxTestNetNodes\nexport const currentChainXMainNetNodeSelector = state =>\n state.node.currentChainXMainNetNode\nexport const currentChainXTestNetNodeSelector = state =>\n state.node.currentChainXTestNetNode\n\nexport const chainxNodesSelector = createSelector(\n networkSelector,\n chainxMainNetNodesSelector,\n chainxTestNetNodesSelector,\n (network, mainNetNodes, testNetNodes) => {\n if (network === chainxNetwork.TEST) {\n return testNetNodes\n } else if (network === chainxNetwork.MAIN) {\n return mainNetNodes\n }\n }\n)\n\nexport const chainxNodesDelaySelector = createSelector(\n networkSelector,\n state => state.node.mainnetNodesDelay,\n state => state.node.testnetNodesDelay,\n (network, mainnetNodesDelay, testnetNodesDelay) => {\n if (network === chainxNetwork.TEST) {\n return testnetNodesDelay\n } else if (network === chainxNetwork.MAIN) {\n return mainnetNodesDelay\n }\n }\n)\n\nexport const currentChainxNodeSelector = createSelector(\n networkSelector,\n currentChainXMainNetNodeSelector,\n currentChainXTestNetNodeSelector,\n (network, mainNetNode, testNetNode) => {\n if (network === chainxNetwork.TEST) {\n return testNetNode\n } else if (network === chainxNetwork.MAIN) {\n return mainNetNode\n }\n }\n)\n\nexport default nodeSlice.reducer\n","import { stringCamelCase } from '@chainx/util'\nconst { Extrinsic: OriginExtrinsic } = require('@chainx/types')\n\nexport class Extrinsic extends OriginExtrinsic {\n get methodName() {\n return this.meta.get('name').toString()\n }\n\n get argsArr() {\n const args = []\n\n const entries = this.method.get('args').entries()\n for (let [name, value] of entries) {\n args.push({ name, value })\n }\n\n return args\n }\n}\n\nexport const parseData = data => {\n const ex = new Extrinsic(data)\n return [\n stringCamelCase(ex.methodName),\n ex.argsArr.map(item =>\n ex.methodName === 'put_code' ? item.value : item.value.toString()\n ),\n ex.argsArr\n ]\n}\n","import { createSelector, createSlice } from '@reduxjs/toolkit'\nimport { Extrinsic } from '../../shared/extensionExtrinsic'\nimport { stringCamelCase } from '@chainx/util'\nimport { Token, Address } from '@chainx/types'\n\nconst initialState = {\n version: 0,\n toSign: null\n}\n\nconst txSlice = createSlice({\n name: 'tx',\n initialState,\n reducers: {\n setToSign(state, { payload }) {\n state.toSign = payload\n },\n clearToSign(state) {\n // TODO: 切换网络是清掉toSign\n state.toSign = null\n }\n }\n})\n\nexport const { setToSign, clearToSign } = txSlice.actions\n\nexport const toSignSelector = state => state.tx.toSign\nexport const toSignExtrinsicSelector = createSelector(\n toSignSelector,\n toSign => {\n if (!toSign) {\n return null\n }\n\n return new Extrinsic(toSign.data)\n }\n)\n\nexport const toSignMethodNameSelector = createSelector(\n toSignExtrinsicSelector,\n extrinsic => {\n return extrinsic ? stringCamelCase(extrinsic.methodName) : null\n }\n)\n\nexport const toSignArgsSelector = createSelector(\n toSignExtrinsicSelector,\n extrinsic => {\n if (!extrinsic) {\n return []\n }\n\n return extrinsic.argsArr.map(item =>\n extrinsic.methodName === 'put_code' ? item.value : item.value.toString()\n )\n }\n)\n\nexport const isPseduClaimSelector = createSelector(\n toSignExtrinsicSelector,\n ex => {\n if (!ex || ex.methodName !== 'claim' || ex.argsArr.length !== 1) {\n return false\n }\n\n return ex.argsArr[0].value instanceof Token\n }\n)\n\nexport const isStakingClaimSelector = createSelector(\n toSignExtrinsicSelector,\n ex => {\n if (!ex || ex.methodName !== 'claim' || ex.argsArr.length !== 1) {\n return false\n }\n\n return ex.argsArr[0].value instanceof Address\n }\n)\n\nexport default txSlice.reducer\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst statusSlice = createSlice({\n name: 'status',\n initialState: {\n loading: false,\n initLoading: true,\n homeLoading: true\n },\n reducers: {\n setLoading: (state, action) => {\n state.loading = action.payload\n },\n setInitLoading: (state, action) => {\n state.initLoading = action.payload\n },\n setHomeLoading: (state, action) => {\n state.homeLoading = action.payload\n }\n }\n})\n\nexport const {\n setLoading,\n setInitLoading,\n setHomeLoading\n} = statusSlice.actions\n\nexport default statusSlice.reducer\n","import { createSlice, createSelector } from '@reduxjs/toolkit'\nimport { getChainx } from '../../shared/chainx'\n\nconst intentionSlice = createSlice({\n name: 'intentions',\n initialState: {\n intentions: []\n },\n reducers: {\n setIntentions: {\n reducer(state, action) {\n state.intentions = action.payload\n }\n }\n }\n})\n\nexport const { setIntentions } = intentionSlice.actions\n\nasync function getStake() {\n const chainx = getChainx()\n const { stake } = chainx\n\n return stake\n}\n\nexport const fetchIntentions = () => async dispatch => {\n const stake = await getStake()\n\n const resp = await stake.getIntentions()\n dispatch(setIntentions(resp))\n}\n\nexport const intentionsSelector = state => {\n return state.intentions.intentions\n}\n\nexport const intentionAccountNameMapSelector = createSelector(\n intentionsSelector,\n intentions => {\n return (intentions || []).reduce((result, item) => {\n result[item.account] = item.name\n return result\n }, {})\n }\n)\n\nexport default intentionSlice.reducer\n","import { createSlice } from '@reduxjs/toolkit'\nimport { getChainx } from '../../shared/chainx'\n\nconst tradeSlice = createSlice({\n name: 'trade',\n initialState: {\n pairs: {},\n fee: 0\n },\n reducers: {\n setPairs: (state, action) => {\n state.pairs = action.payload\n },\n setFee: (state, action) => {\n state.fee = action.payload\n }\n }\n})\n\nexport const { setPairs, setFee } = tradeSlice.actions\n\nexport const fetchTradePairs = () => async dispatch => {\n const chainx = getChainx()\n\n const { trade } = chainx\n\n const pairs = await trade.getTradingPairs()\n const result = {}\n pairs.forEach(item => {\n result[item.id] = item\n })\n dispatch(setPairs(result))\n}\n\nexport const fetchFee = () => async dispatch => {\n const chainx = getChainx()\n\n const { asset } = chainx\n\n const resp = await asset.getWithdrawalLimitByToken(['BTC'])\n dispatch(setFee(resp.fee))\n}\n\nexport const feeSelector = state => state.trade.fee\nexport const pairsSelector = state => state.trade.pairs\n\nexport default tradeSlice.reducer\n","import testReducer from './testSlice'\nimport account from './accountSlice'\nimport node from './nodeSlice'\nimport setting from './settingSlice'\nimport tx from './txSlice'\nimport statusReducer from './statusSlice'\nimport intentionSlice from './intentionSlice'\nimport tradeSlice from './tradeSlice'\n\nexport default {\n test: testReducer,\n status: statusReducer,\n intentions: intentionSlice,\n trade: tradeSlice,\n account,\n node,\n setting,\n tx\n}\n","import { configureStore } from '@reduxjs/toolkit'\nimport rootReducer from './reducers'\n\nconst store = configureStore({ reducer: rootReducer })\nexport default store\n","export const codes = {\n INVALID_ADDRESS: 'invalid-address',\n INVALID_MODULE: 'invalid-module',\n INVALID_METHOD: 'invalid-method',\n INVALID_SIGN_DATA: 'invalid-sign-data',\n SIGN_BUSY: 'sign-transaction-busy',\n INVALID_NETWORK: 'invalid-network',\n TX_STATUS_ERROR: 'tx-status-error',\n UNKNOWN: 'unknown'\n}\n","export const methods = {\n getAccount: 'chainx_account',\n getSettings: 'get_settings',\n signChainxExtrinsic: 'chainx_sign',\n signAndSendChainXExtrinsic: 'chainx_sign_send',\n getNode: 'chainx_get_node'\n}\n","import store from '../store'\nimport { currentChainxAccountSelector } from '../store/reducers/accountSlice'\nimport _ from 'lodash'\nimport { codes } from '../error'\nimport { setToSign, toSignSelector } from '../store/reducers/txSlice'\nimport { Extrinsic } from '@chainx/types'\nimport { methods } from '../constants'\nimport { currentChainxNodeSelector } from '../store/reducers/nodeSlice'\n\nfunction getAccount() {\n const state = store.getState()\n const account = currentChainxAccountSelector(state)\n return {\n result: account ? _.pick(account, ['name', 'address']) : account\n }\n}\n\nfunction getNode() {\n const state = store.getState()\n const node = currentChainxNodeSelector(state)\n return {\n result: node\n }\n}\n\nfunction getSettings() {\n const state = store.getState()\n const settings = state.setting\n\n return {\n result: settings\n }\n}\n\nconst type = 'api'\nexport default class ApiService {\n constructor(sockets, request, id) {\n this.sockets = sockets // 就是LowLevelSocketService\n this.request = request\n this.id = id\n }\n\n async handle() {\n const data = this.request.data.payload\n\n if (!data.method) {\n return this.sockets.emit(this.request.data.origin, this.id, type, {\n id: data.id,\n error: {\n code: -1,\n message: 'method not found'\n }\n })\n }\n\n switch (data.method) {\n case methods.getSettings:\n return this.emit(getSettings())\n case methods.getAccount:\n return this.emit(getAccount())\n case methods.getNode:\n return this.emit(getNode())\n case methods.signAndSendChainXExtrinsic: {\n return this.sign(data.id, ...data.params, true)\n }\n case methods.signChainxExtrinsic: {\n return this.sign(data.id, ...data.params, false)\n }\n default: {\n return {\n error: {\n code: -1,\n message: `${data.method} not found`\n }\n }\n }\n }\n }\n\n emit(data) {\n this.sockets.emit(this.request.data.origin, this.id, type, {\n id: this.request.data.payload.id,\n ...data\n })\n }\n\n async sign(id, from, data, needBroadcast) {\n const state = store.getState()\n const currentAccount = currentChainxAccountSelector(state)\n if (!currentAccount || currentAccount.address !== from) {\n this.emit({\n error: {\n code: codes.INVALID_ADDRESS,\n message: `${from} not found`\n }\n })\n }\n\n if (!from || !data) {\n return this.emit({\n error: {\n code: codes.INVALID_SIGN_DATA,\n message: 'invalid sign params'\n }\n })\n }\n\n const currentToSign = toSignSelector(state)\n if (currentToSign) {\n return this.emit({\n error: {\n code: codes.SIGN_BUSY,\n message: 'sign busy'\n }\n })\n }\n\n try {\n new Extrinsic(data)\n } catch (e) {\n return this.emit({\n error: {\n code: codes.INVALID_SIGN_DATA,\n message: 'invalid sign data'\n }\n })\n }\n\n store.dispatch(\n setToSign({\n origin: this.request.data.origin,\n id: this.id,\n dataId: id,\n address: from,\n data,\n needBroadcast: !!needBroadcast\n })\n )\n\n this.sockets.activateWindow()\n }\n}\n","import ApiService from './ApiService'\n\nexport let service\n\n// 就是LowLevelSocketService\nexport function setService(s) {\n service = s\n}\n\nexport const handleApiResponse = async (request, id) => {\n // @todo 校验 appkey。校验 nonce\n await new ApiService(service, request, id).handle()\n}\n\nexport const handlePairedResponse = async (request, id) => {\n // TODO: 外部dapp请求连接,打开确认框让用户确认\n return await service.emit(request.data.origin, id, 'paired', true)\n}\n","import { getChainx } from './chainx'\nimport { service } from '../services/socketService'\nimport store from '../store'\nimport { toSignSelector } from '../store/reducers/txSlice'\nimport { currentChainxAccountSelector } from '../store/reducers/accountSlice'\nimport { codes } from '../error'\nimport { events as socketsEvents } from '../store/reducers/constants'\nimport { SubmittableExtrinsic } from 'chainx.js'\n\nexport const getSignRequest = async (pass, acceleration) => {\n const state = store.getState()\n const { origin, id, data, dataId, needBroadcast } = toSignSelector(state)\n const currentAccount = currentChainxAccountSelector(state)\n\n const chainx = getChainx()\n const api = chainx.api\n let extrinsic\n try {\n extrinsic = new SubmittableExtrinsic(chainx.api, data)\n } catch (e) {\n service.emit(origin, id, 'api', {\n id: dataId,\n error: {\n code: codes.INVALID_SIGN_DATA,\n message: 'invalid sign data'\n }\n })\n\n throw new Error('Invalid sign data')\n }\n const account = chainx.account.fromKeyStore(currentAccount.keystore, pass)\n const nonce = await api.query.system.accountNonce(account.publicKey())\n const signedExtrinsic = extrinsic.sign(account, {\n nonce: nonce.toNumber(),\n acceleration,\n blockHash: api.genesisHash\n })\n\n const hash = signedExtrinsic.hash.toHex()\n service.emit(origin, id, 'api', {\n id: dataId,\n result: {\n hash,\n hex: signedExtrinsic.toHex()\n }\n })\n\n if (!needBroadcast) {\n return\n }\n\n function emitInfo(err, status) {\n return service.emit(origin, id, 'event', {\n event: socketsEvents.TX_STATUS,\n payload: {\n id: dataId,\n err: err || null,\n status: status || null\n }\n })\n }\n\n try {\n await signedExtrinsic.send(emitInfo)\n } catch (e) {\n emitInfo(e)\n throw e\n }\n}\n\nexport const getGas = (hex, acceleration) => {\n const chainx = getChainx()\n\n const submittable = new SubmittableExtrinsic(chainx.api, hex)\n return submittable.getFeeSync({ acceleration })\n}\n","import React from 'react'\n\nfunction Icon(props) {\n const { className = {}, style = {}, name = '' } = props\n return \n}\n\nexport default Icon\n","import React, { useEffect, useRef, useState } from 'react'\nimport { useOutsideClick } from '../shared'\nimport { useDispatch, useSelector } from 'react-redux'\nimport ClipboardJS from 'clipboard'\nimport Icon from '../components/Icon'\nimport './index.scss'\nimport logo from '../assets/extension_logo.svg'\nimport { currentChainxAccountSelector } from '../store/reducers/accountSlice'\nimport { isTestNetSelector } from '../store/reducers/settingSlice'\nimport { fetchIntentions } from '../store/reducers/intentionSlice'\n\nfunction Home(props) {\n const ref = useRef(null)\n const [showAccountAction, setShowAccountAction] = useState(false)\n const isTestNet = useSelector(isTestNetSelector)\n const [copySuccess, setCopySuccess] = useState('')\n const currentAccount = useSelector(currentChainxAccountSelector)\n const toSign = useSelector(state => state.tx.toSign)\n const dispatch = useDispatch()\n\n useEffect(() => {\n getUnapprovedTxs()\n dispatch(fetchIntentions())\n // eslint-disable-next-line\n }, [isTestNet, toSign])\n\n useOutsideClick(ref, () => {\n setShowAccountAction(false)\n })\n\n function getUnapprovedTxs() {\n try {\n if (toSign) {\n props.history.push({\n pathname: '/requestSign/' + toSign.id,\n query: toSign\n })\n }\n } catch (error) {\n console.log('sign request error occurs ', error)\n } finally {\n setCopyEvent()\n }\n }\n\n function setCopyEvent() {\n const clipboard = new ClipboardJS('.copy')\n clipboard.on('success', function() {\n setCopySuccess('Copied!')\n setTimeout(() => {\n setCopySuccess('')\n }, 2000)\n })\n }\n\n async function operateAccount(type) {\n if (currentAccount.address) {\n props.history.push({\n pathname: '/enterPassword',\n query: {\n address: currentAccount.address,\n keystore: currentAccount.keystore,\n type: type\n }\n })\n }\n setShowAccountAction(false)\n }\n\n return (\n <>\n {currentAccount ? (\n \n
\n
{currentAccount.name} \n
{\n setShowAccountAction(!showAccountAction)\n }}\n >\n \n
\n {showAccountAction ? (\n
\n operateAccount('export')}>\n Export PrivateKey\n \n operateAccount('remove')}>\n Forget Account\n \n
\n ) : null}\n
\n
\n {currentAccount.address} \n
\n
\n \n Copy \n \n
{copySuccess} \n
\n ) : (\n \n
\n
\n
\n
props.history.push('/createAccount')}\n >\n New Account\n \n
props.history.push('/importAccount')}\n >\n Import Account\n \n
\n )}\n >\n )\n}\n\nexport default Home\n","import React from 'react'\n\nfunction getDotInCenterStr(value) {\n if (value && value.length > 13) {\n const length = value.length\n return value.slice(0, 5) + '...' + value.slice(length - 5, length)\n }\n return value\n}\n\nfunction DotInCenterStr(props) {\n const { value } = props\n const simpleStr = getDotInCenterStr(value)\n\n return {simpleStr} \n}\n\nexport default DotInCenterStr\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Link, withRouter } from 'react-router-dom'\nimport ClipboardJS from 'clipboard'\nimport ReactTooltip from 'react-tooltip'\nimport {\n isCurrentNodeInit,\n useOutsideClick,\n sleep,\n setChainx\n} from '../../shared'\nimport Icon from '../../components/Icon'\nimport DotInCenterStr from '../../components/DotInCenterStr'\nimport logo from '../../assets/extension_logo.svg'\nimport testNetImg from '../../assets/testnet.svg'\nimport switchImg from '../../assets/switch.svg'\nimport './header.scss'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n isTestNetSelector,\n networkSelector,\n setNetwork\n} from '../../store/reducers/settingSlice'\nimport {\n chainxAccountsSelector,\n currentChainxAccountSelector,\n setCurrentChainXMainNetAccount,\n setCurrentChainXTestNetAccount\n} from '../../store/reducers/accountSlice'\nimport { setInitLoading } from '../../store/reducers/statusSlice'\nimport { CHAINX_MAIN, CHAINX_TEST } from '../../store/reducers/constants'\nimport {\n chainxNodesDelaySelector,\n chainxNodesSelector,\n currentChainxNodeSelector,\n setCurrentChainXNode,\n setNodeDelay\n} from '../../store/reducers/nodeSlice'\nimport getDelay from '../../shared/updateNodeStatus'\nimport { fetchIntentions } from '../../store/reducers/intentionSlice'\n\nfunction Header(props) {\n const refNodeList = useRef(null)\n const refAccountList = useRef(null)\n const [showNodeListArea, setShowNodeListArea] = useState(false)\n const [showAccountArea, setShowAccountArea] = useState(false)\n const [copyText, setCopyText] = useState('Copy')\n const currentAccount = useSelector(currentChainxAccountSelector)\n const accounts = useSelector(chainxAccountsSelector)\n const currentNode = useSelector(currentChainxNodeSelector)\n const nodeList = useSelector(chainxNodesSelector)\n const chainId = useSelector(networkSelector)\n const isTestNet = useSelector(isTestNetSelector)\n const nodesDelay = useSelector(chainxNodesDelaySelector)\n const dispatch = useDispatch()\n\n useEffect(() => {\n setCopyEvent()\n getDelay(nodeList, chainId, dispatch, setNodeDelay)\n // eslint-disable-next-line\n }, [isTestNet, chainId, nodeList])\n\n useOutsideClick(refNodeList, () => {\n setShowNodeListArea(false)\n })\n\n useOutsideClick(refAccountList, () => {\n setShowAccountArea(false)\n })\n\n function setCopyEvent() {\n const clipboard = new ClipboardJS('.account-copy')\n clipboard.on('success', function() {\n setCopyText('Copied!')\n })\n }\n\n async function setNode(url) {\n dispatch(setInitLoading(true))\n dispatch(setCurrentChainXNode({ chainId, url }))\n setShowNodeListArea(false)\n Promise.race([setChainx(url), sleep(5000)])\n .then(chainx => {\n if (!chainx) {\n props.history.push('/nodeError')\n } else {\n props.history.push('/redirect')\n }\n })\n .catch(e => {\n console.log('switch node error ', e)\n props.history.push('/nodeError')\n })\n .finally(() => {\n dispatch(setInitLoading(false))\n })\n }\n\n function getDelayClass(delay) {\n if (delay === 'timeout') {\n return 'red'\n } else if (delay > 300) {\n return 'yellow'\n } else if (delay <= 300) {\n return 'green'\n } else {\n return 'green'\n }\n }\n\n function getDelayText(delay) {\n return delay ? (delay === 'timeout' ? 'timeout' : delay + ' ms') : ''\n }\n\n function switchNet() {\n dispatch(setNetwork(isTestNet ? CHAINX_MAIN : CHAINX_TEST))\n dispatch(fetchIntentions())\n setShowNodeListArea(false)\n props.history.push('/')\n }\n\n return (\n \n
\n
\n
\n {isTestNet && (\n
\n )}\n \n {props.history.location.pathname.includes('requestSign') ? (\n
\n \n {(\n (props.history.location.query &&\n props.history.location.query.method) ||\n ''\n )\n .replace(/([A-Z])/g, ' $1')\n .toLowerCase() || 'Sign Request'}\n \n
\n ) : (\n
\n
{\n setShowNodeListArea(!showNodeListArea)\n setShowAccountArea(false)\n }}\n >\n \n {currentNode && currentNode.name} \n
\n
{\n setShowAccountArea(!showAccountArea)\n setShowNodeListArea(false)\n }}\n >\n \n
\n
\n )}\n {\n
\n
\n {currentNode &&\n (nodeList || []).map((item, index) => (\n
{\n setNode(item.url)\n }}\n >\n
\n
\n
\n
\n {item.url.split('//')[1] || item.url}\n \n
{\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n setShowNodeListArea(false)\n const query = {\n nodeInfo: item,\n type: 'remove'\n }\n props.history.push({\n pathname: '/addNode',\n query: query\n })\n }}\n >\n \n
\n
\n
\n {getDelayText(nodesDelay[item.url])}\n \n
\n
\n ))}\n
\n
{\n props.history.push('/addNode')\n }}\n >\n \n Add node \n
\n
{\n switchNet()\n }}\n >\n
\n
Switch to {isTestNet ? 'Mainnet' : 'Testnet'} \n
\n
\n }\n {showAccountArea && !showNodeListArea ? (\n
\n
\n
{\n setShowAccountArea(false)\n props.history.push('/importAccount')\n }}\n >\n \n Import \n
\n
{\n setShowAccountArea(false)\n props.history.push('/createAccount')\n }}\n >\n \n New \n
\n
\n {accounts.length > 0 ? (\n
\n {accounts.length > 0 &&\n accounts.map(item => (\n
{\n if (isTestNet) {\n dispatch(\n setCurrentChainXTestNetAccount({\n address: item.address\n })\n )\n } else {\n dispatch(\n setCurrentChainXMainNetAccount({\n address: item.address\n })\n )\n }\n setShowAccountArea(false)\n props.history.push('/')\n }}\n >\n
\n
\n
{item.name} \n
\n \n {\n e.stopPropagation()\n e.nativeEvent.stopImmediatePropagation()\n }}\n data-tip\n data-for=\"copy-address-tooltip\"\n >\n \n \n setCopyText('Copy')}\n >\n {copyText} \n \n
\n
\n
\n ))}\n
\n ) : null}\n
\n ) : null}\n
\n
\n )\n}\n\nexport default withRouter(Header)\n","import React from 'react'\n// @ts-ignore\nimport warningIcon from '../../assets/warning.png'\nimport './index.scss'\n\nfunction StaticWarning(props) {\n const {\n title = '',\n desc = 'Do not store the mnemonic words in your PC or Net. Anybody can take your assets with the mnemonic words.'\n } = props\n\n return (\n \n
\n
{title} \n
{desc}
\n
\n )\n}\n\nexport default StaticWarning\n","import React from 'react'\nimport './index.scss'\n\nfunction ErrorMessage(props) {\n const { msg } = props\n\n return (\n \n {msg} \n
\n )\n}\n\nexport default ErrorMessage\n","import React from 'react'\nimport './index.scss'\n\nexport default function(props) {\n const { msg } = props\n\n return (\n \n {msg} \n
\n )\n}\n","import React, { useState } from 'react'\nimport { Account } from 'chainx.js'\nimport ErrorMessage from '../ErrorMessage'\nimport WarningMessage from '../WarningMessage'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { isTestNetSelector } from '../../store/reducers/settingSlice'\nimport { CHAINX_MAIN, CHAINX_TEST } from '../../store/reducers/constants'\nimport {\n addAccount,\n chainxAccountsSelector\n} from '../../store/reducers/accountSlice'\nimport { TextInput } from '@chainx/ui'\n\nfunction NameAndPassword(props) {\n const { secret, onSuccess } = props\n const [obj, setObj] = useState({ name: '', pass: '', repass: '' })\n const [errMsg, setErrMsg] = useState('')\n const accounts = useSelector(chainxAccountsSelector)\n const isTestNet = useSelector(isTestNetSelector)\n const dispatch = useDispatch()\n\n Account.setNet(isTestNet ? 'testnet' : 'mainnet')\n const account = Account.from(secret)\n const address = account.address()\n const sameAccount = (accounts || []).find(\n account => account.address === address\n )\n\n const check = () => {\n if (!obj.name || !obj.pass || !obj.repass) {\n setErrMsg('name and password are required')\n return false\n }\n if (obj.pass.length < 8) {\n setErrMsg('password length must great than 8')\n return false\n }\n if (!/(?=.*[a-z])(?=.*[A-Z])/.test(obj.pass)) {\n setErrMsg('password must include lower and upper characters')\n return false\n }\n if (obj.pass !== obj.repass) {\n setErrMsg('password is not match')\n return false\n }\n if ((accounts || []).find(a => a.name === obj.name)) {\n setErrMsg('name already exist')\n return false\n }\n return true\n }\n\n const create = async () => {\n if (!check()) {\n return\n }\n\n const keystore = account.encrypt(obj.pass)\n\n dispatch(\n addAccount({\n chainId: isTestNet ? CHAINX_TEST : CHAINX_MAIN,\n account: { name: obj.name, address: account.address(), keystore }\n })\n )\n onSuccess()\n }\n\n const inputList = [\n { name: 'name', type: 'text', placeholder: 'Name(12 characters max)' },\n { name: 'pass', type: 'password', placeholder: 'Password' },\n { name: 'repass', type: 'password', placeholder: 'Password confirmation' }\n ]\n\n return (\n \n {inputList.map((item, i) => (\n setObj({ ...obj, [item.name]: value })}\n placeholder={item.placeholder}\n onKeyPress={event => {\n if (event.key === 'Enter' && i === 2) {\n create()\n }\n }}\n />\n ))}\n {\n create()\n }}\n >\n OK\n \n {errMsg && }\n {sameAccount && (\n \n )}\n
\n )\n}\n\nexport default NameAndPassword\n","import React from 'react'\nimport { useState } from 'react'\nimport { Account } from 'chainx.js'\nimport shuffle from 'lodash.shuffle'\nimport './createAccount.scss'\nimport StaticWarning from '../../components/StaticWarning'\nimport ErrorMessage from '../../components/ErrorMessage'\nimport NameAndPassword from '../../components/NameAndPassword'\n\nfunction CreateAccount(props) {\n const titleList = [\n 'New Account',\n 'Backup Mnemonic',\n 'Verify Mnemonic',\n 'Name and password setting'\n ]\n const subTitleList = [\n '',\n 'Write down following mnemonic words, and will be used next step.',\n 'Mark the words one by one in the order last step shows.',\n 'Password contains at lease 8 characters, and at least one upper,lower and number case character.'\n ]\n const buttonTextList = ['Begin', 'Next', 'Next', 'OK']\n\n const [currentStep, setCurrentStep] = useState(0)\n const [errMsg, setErrMsg] = useState('')\n const [mnemonic] = useState(Account.newMnemonic())\n const mnemonicList = mnemonic.split(' ')\n const [wordSelectedList, setWordSelectedList] = useState(\n new Array(mnemonicList.length).fill(false)\n )\n const [shuffleMnemonicList] = useState(shuffle(mnemonicList))\n const [validateMnemonicList, setValidateMnemonicList] = useState(\n new Array(12).fill('')\n )\n const mnemonicWords = mnemonicList.map((item, index) => ({\n value: item,\n index: index\n }))\n\n const clearErrMsg = () => {\n setErrMsg('')\n return true\n }\n\n const checkMnemonic = () => {\n if (mnemonic === validateMnemonicList.join(' ')) {\n clearErrMsg()\n return true\n }\n setErrMsg('Mnemonic not correct')\n return false\n }\n\n return (\n \n
\n {titleList[currentStep]} \n \n {subTitleList[currentStep]}\n \n
\n
\n
\n {currentStep === 0 &&
}\n {currentStep === 1 &&\n mnemonicWords.map(item => (\n
\n {item.value}\n
\n ))}\n {currentStep === 2 &&\n shuffleMnemonicList.map((item, index) => (\n
{\n const wordSelected = wordSelectedList[index]\n let wordIndex = validateMnemonicList.indexOf('')\n let replaceWord = item\n if (wordSelected) {\n // word has selected, remove last word\n wordIndex =\n 11 -\n Array.from(validateMnemonicList)\n .reverse()\n .indexOf(item)\n replaceWord = ''\n }\n validateMnemonicList.splice(wordIndex, 1, replaceWord)\n setValidateMnemonicList(Array.from(validateMnemonicList))\n wordSelectedList.splice(index, 1, !wordSelected)\n setWordSelectedList(Array.from(wordSelectedList))\n }}\n >\n {item}\n
\n ))}\n {currentStep === 3 && (\n
\n )}\n
\n {currentStep < 2 && (\n
{\n if (currentStep < 2) {\n setCurrentStep(s => s + 1)\n }\n }}\n >\n {buttonTextList[currentStep]}\n \n )}\n {currentStep === 2 && (\n
\n clearErrMsg() && setCurrentStep(s => s - 1)}\n >\n Pre\n \n checkMnemonic() && setCurrentStep(s => s + 1)}\n >\n Next\n \n
\n )}\n {currentStep > 1 ? errMsg ?
: null : null}\n
\n {currentStep === 2 && (\n
\n
\n {validateMnemonicList.map((item, index) => (\n {item} \n ))}\n
\n
\n )}\n
\n )\n}\n\nexport default CreateAccount\n","import React, { useState } from 'react'\nimport './importAccount.scss'\nimport ErrorMessage from '../../components/ErrorMessage'\nimport NameAndPassword from '../../components/NameAndPassword'\nimport { TextInput } from '@chainx/ui'\n\nfunction ImportAccount(props) {\n const [currentStep, setCurrentStep] = useState(0)\n const [currentTabIndex, setCurrentTabIndex] = useState(0)\n const [pk, setPk] = useState('')\n const [errMsg, setErrMsg] = useState('')\n const [mnemonicList, setMnemonicList] = useState(new Array(12).fill(''))\n\n const titleList = [\n ['Mnemonic', 'Private key'],\n ['Password', 'Password']\n ]\n const subTitleList = [\n ['Input mnemonic words', 'Input private key'],\n ['', '']\n ]\n\n const checkStep1 = () => {\n if (currentTabIndex === 0) {\n if (mnemonicList.some(item => item === '')) {\n setErrMsg('Mnemonic is not correct')\n return\n }\n } else if (currentTabIndex === 1) {\n if (!pk) {\n setErrMsg('Private key is not correct')\n return\n }\n }\n\n setErrMsg('')\n setCurrentStep(s => s + 1)\n }\n\n return (\n \n
\n
\n {titleList[currentStep][currentTabIndex]} \n {currentStep === 0 ? (\n {\n setErrMsg('')\n setCurrentTabIndex(1 - currentTabIndex)\n }}\n >\n {titleList[currentStep][1 - currentTabIndex]}\n \n ) : null}\n
\n
\n {subTitleList[currentStep][currentTabIndex]}\n \n
\n
\n
\n {currentStep === 0 ? (\n currentTabIndex === 0 ? (\n
\n {mnemonicList.map((item, index) => (\n {\n mnemonicList.splice(index, 1, e.target.value)\n setMnemonicList(Array.from(mnemonicList))\n }}\n />\n ))}\n
\n ) : (\n
setPk(value)}\n multiline={true}\n rows={4}\n onKeyPress={event => {\n if (event.key === 'Enter') {\n checkStep1()\n }\n }}\n />\n )\n ) : null}\n {currentStep === 1 && (\n \n )}\n \n {currentStep === 0 && (\n
{\n if (currentStep < 1) {\n checkStep1()\n }\n }}\n >\n Next\n \n )}\n {errMsg ?
: null}\n
\n
\n )\n}\n\nexport default ImportAccount\n","import BigNumber from 'bignumber.js'\n\nexport default function toPrecision(value, precision = 0, showPrecision = 0) {\n precision = Number(precision)\n return new BigNumber(value)\n .dividedBy(Math.pow(10, precision))\n .toFixed(showPrecision || precision)\n}\n","export const pcxPrecision = 8\nexport const assetsModule = 'xAssets'\nexport const transferMethod = 'transfer'\n","import React from 'react'\n\nexport default function({ value, token }) {\n return (\n \n Amount \n \n {value} {token}\n \n
\n )\n}\n","import React from 'react'\n\nexport default function({ label, value }) {\n return (\n \n {label} \n {value} \n
\n )\n}\n","import React from 'react'\nimport toPrecision from '../../shared/toPrecision'\nimport { pcxPrecision } from '../../shared/constants'\nimport { replaceBTC } from '../../shared/chainx'\nimport { useSelector } from 'react-redux'\nimport { toSignArgsSelector } from '../../store/reducers/txSlice'\nimport DetailAmount from './components/DetailAmount'\nimport DetailItem from './components/DetailItem'\n\nexport default function() {\n const [dest, token, balance, memo] = useSelector(toSignArgsSelector)\n\n return (\n \n \n \n \n
\n )\n}\n","import React from 'react'\n\nexport default function(props) {\n const { query } = props\n\n return (\n \n
\n Method \n {query.method.replace(/([A-Z])/g, '_$1').toLowerCase()} \n
\n
\n
Args \n
\n \n {(query.argsWithName || []).map((arg, index) => {\n if (!arg) {\n return null\n }\n return (\n \n {arg.name}: \n \n {arg.value.toString().length > 10000\n ? '[object Object]'\n : arg.value.toString()}\n \n \n )\n })}\n \n \n
\n
\n )\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { pairsSelector } from '../../store/reducers/tradeSlice'\nimport toPrecision from '../../shared/toPrecision'\nimport { pcxPrecision } from '../../shared/constants'\nimport { replaceBTC } from '../../shared/chainx'\n\nexport default function(props) {\n const { query } = props\n const pairs = useSelector(pairsSelector)\n\n const getPrecision = (id, type) => {\n if (id === 0 && type === 'amount') {\n return [pcxPrecision, pcxPrecision]\n }\n if (id === 0 && type === 'price') {\n return [9, 7]\n }\n if (id === 1 && type === 'amount') {\n return [3, 3]\n }\n if (id === 1 && type === 'price') {\n return [4, 8]\n } else {\n return [pcxPrecision, pcxPrecision]\n }\n }\n\n return (\n \n {query.method === 'putOrder' && (\n <>\n
\n Amount \n \n {query.args[2]}{' '}\n {toPrecision(\n query.args[3],\n ...getPrecision(query.args[0], 'amount')\n )}{' '}\n {pairs[query.args[0]] && pairs[query.args[0]].assets}\n \n
\n
\n Price \n \n {toPrecision(\n query.args[4],\n ...getPrecision(query.args[0], 'price')\n )}\n \n
\n >\n )}\n {query.method === 'cancelOrder' && (\n
\n Id \n {query.args[1]} \n
\n )}\n
\n Trade pair \n \n {pairs[query.args[0]] &&\n replaceBTC(pairs[query.args[0]].assets) +\n '/' +\n replaceBTC(pairs[query.args[0]].currency)}\n \n
\n
\n )\n}\n","import React, { useEffect } from 'react'\nimport toPrecision from '../../shared/toPrecision'\nimport { pcxPrecision } from '../../shared/constants'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { feeSelector, fetchFee } from '../../store/reducers/tradeSlice'\nimport {\n toSignArgsSelector,\n toSignMethodNameSelector\n} from '../../store/reducers/txSlice'\n\nexport default function() {\n const fee = useSelector(feeSelector)\n const dispatch = useDispatch()\n\n useEffect(() => {\n dispatch(fetchFee())\n }, [dispatch])\n\n const methodName = useSelector(toSignMethodNameSelector)\n const args = useSelector(toSignArgsSelector)\n\n return (\n \n {methodName === 'withdraw' && (\n <>\n
\n Amount \n \n {toPrecision(args[1], pcxPrecision)} {args[0]}\n \n
\n
\n Fee \n \n {toPrecision(fee, pcxPrecision)} {args[0]}\n \n
\n
\n Dest \n {args[2]} \n
\n
\n Memo \n {args[3]} \n
\n >\n )}\n {methodName === 'revokeWithdraw' && (\n
\n Id \n {args[0]} \n
\n )}\n
\n )\n}\n","export const xAssetsProcessCalls = ['withdraw', 'revokeWithdraw']\n\nexport const nominateMethodNames = ['nominate', 'renominate', 'unnominate']\n\n// 一定属于staking模块的方法名\nexport const stakingMethodNames = [\n ...nominateMethodNames,\n 'unfreeze',\n 'register'\n]\n","import React, { useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n fetchIntentions,\n intentionAccountNameMapSelector\n} from '../../store/reducers/intentionSlice'\nimport toPrecision from '../../shared/toPrecision'\nimport { pcxPrecision } from '../../shared/constants'\nimport { getChainx } from '../../shared/chainx'\nimport {\n toSignArgsSelector,\n toSignMethodNameSelector\n} from '../../store/reducers/txSlice'\nimport { nominateMethodNames } from './constants'\nimport DetailItem from './components/DetailItem'\nimport DetailAmount from './components/DetailAmount'\n\nexport default function() {\n const intentionAccountNameMap = useSelector(intentionAccountNameMapSelector)\n const chainx = getChainx()\n const dispatch = useDispatch()\n\n const methodName = useSelector(toSignMethodNameSelector)\n const isNominateMethod = nominateMethodNames.includes(methodName)\n const args = useSelector(toSignArgsSelector)\n\n useEffect(() => {\n dispatch(fetchIntentions())\n }, [dispatch])\n\n const getPublicKey = address => {\n if (methodName && args && address) {\n return chainx.account.decodeAddress(address)\n }\n }\n\n const nominateMethodElement = (\n <>\n \n {methodName === 'renominate' && (\n \n )}\n \n \n >\n )\n\n const registerElement = \n\n const unfreezeElement = (\n <>\n \n \n >\n )\n\n // default ui. 现在claim在用这个\n let element = (\n <>\n \n >\n )\n\n if (isNominateMethod) {\n element = nominateMethodElement\n } else if (methodName === 'register') {\n element = registerElement\n } else if (methodName === 'unfreeze') {\n element = unfreezeElement\n }\n\n return {element}
\n}\n","import { useSelector } from 'react-redux'\nimport { toSignArgsSelector } from '../../store/reducers/txSlice'\nimport { replaceBTC } from '../../shared/chainx'\nimport DetailItem from './components/DetailItem'\nimport React from 'react'\n\nexport default function() {\n const args = useSelector(toSignArgsSelector)\n\n return (\n \n \n
\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { getSignRequest } from '../../shared'\nimport { parseData } from '../../shared/extensionExtrinsic'\nimport ErrorMessage from '../../components/ErrorMessage'\nimport './requestSign.scss'\nimport { DefaultButton, PrimaryButton, Slider, TextInput } from '@chainx/ui'\nimport { setLoading } from '../../store/reducers/statusSlice'\nimport { fetchTradePairs } from '../../store/reducers/tradeSlice'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Transfer from './Transfer'\nimport CommonTx from './CommonTx'\nimport Trade from './Trade'\nimport AssetsProcess from './AssetsProcess'\nimport Staking from './Staking'\nimport { currentChainxAccountSelector } from '../../store/reducers/accountSlice'\nimport {\n clearToSign,\n isPseduClaimSelector,\n isStakingClaimSelector,\n toSignMethodNameSelector,\n toSignSelector\n} from '../../store/reducers/txSlice'\nimport { service } from '../../services/socketService'\nimport { getGas } from '../../shared/signHelper'\nimport toPrecision from '../../shared/toPrecision'\nimport { xAssetsProcessCalls, stakingMethodNames } from './constants'\nimport PseduClaim from './PseduClaim'\n\nfunction RequestSign(props) {\n const dispatch = useDispatch()\n const [pass, setPass] = useState('')\n const [errMsg, setErrMsg] = useState('')\n const [currentGas, setCurrentGas] = useState(0)\n const [acceleration, setAcceleration] = useState(1)\n const [txPanel, setTxPanel] = useState(null)\n const [newQuery, setNewQuery] = useState(\n Object.assign({}, props.location.query)\n )\n const currentAccount = useSelector(currentChainxAccountSelector)\n const toSign = useSelector(toSignSelector)\n\n const toSignMethodName = useSelector(toSignMethodNameSelector)\n const isStakingClaim = useSelector(isStakingClaimSelector)\n const isPseduClaim = useSelector(isPseduClaimSelector)\n\n const {\n location: { query }\n } = props\n\n useEffect(() => {\n parseQuery()\n // eslint-disable-next-line\n }, [])\n\n useEffect(() => {\n if (toSign && toSign.data) {\n try {\n setCurrentGas(getGas(toSign.data, acceleration))\n } catch (e) {\n setErrMsg('Failed to get transaction fee')\n }\n }\n }, [acceleration, toSign])\n\n const check = () => {\n if (!pass) {\n setErrMsg('password is required')\n return false\n }\n return true\n }\n\n const fetchRelevantInfo = () => {\n if (newQuery.module === 'xSpot') {\n dispatch(fetchTradePairs())\n }\n }\n\n const parseQuery = () => {\n if (!query) {\n return\n }\n if (!query.module) {\n try {\n const [method, args, argsWithName] = parseData(query.data)\n newQuery.method = method\n newQuery.argsWithName = argsWithName\n newQuery.args = args\n let module = ''\n const contractMethods = [\n 'putCode',\n 'call',\n 'instantiate',\n 'claimSurcharge',\n 'convertToXrc20',\n 'convertToAsset',\n 'setTokenXrc20',\n 'setXrc20Selector',\n 'removeTokenXrc20',\n 'forceIssueXrc20',\n 'setGasPrice',\n 'setPrintln'\n ]\n\n if (['putOrder', 'cancelOrder'].includes(method)) {\n module = 'xSpot'\n } else if (contractMethods.includes(method)) {\n module = 'xContracts'\n } else {\n module = ''\n }\n newQuery.module = module\n setNewQuery(newQuery)\n\n updateTxPanel()\n fetchRelevantInfo()\n } catch (error) {\n console.log('parse error ', error)\n props.history.push('/nodeError')\n }\n }\n }\n\n const updateTxPanel = () => {\n if (toSignMethodName === 'transfer') {\n return setTxPanel( )\n }\n\n if (xAssetsProcessCalls.includes(toSignMethodName)) {\n return setTxPanel( )\n }\n\n if (stakingMethodNames.includes(toSignMethodName) || isStakingClaim) {\n return setTxPanel( )\n }\n\n if (isPseduClaim) {\n return setTxPanel( )\n }\n\n let _txPanel\n if (newQuery.module === 'xSpot') {\n _txPanel = \n } else {\n _txPanel = \n }\n setTxPanel(_txPanel)\n }\n\n const sign = async () => {\n setErrMsg('')\n if (!currentAccount || !currentAccount.address) {\n setErrMsg(`Error: address is not exist`)\n return\n }\n if (!check()) {\n return\n }\n if (currentAccount.address !== query.address) {\n setErrMsg('Invalid address')\n return\n }\n\n dispatch(setLoading(true))\n try {\n await getSignRequest(pass, acceleration)\n setErrMsg('')\n dispatch(setLoading(false))\n removeCurrentSign()\n props.history.push('/')\n } catch (e) {\n dispatch(setLoading(false))\n setErrMsg(`Error: ${e.message}`)\n }\n }\n\n window.onbeforeunload = function() {\n removeCurrentSign()\n }\n\n const cancel = () => {\n removeCurrentSign()\n\n // 通知dapp拒绝签名\n const { origin, id, dataId } = query\n service.emit(origin, id, 'api', {\n id: dataId,\n result: { reject: true }\n })\n }\n\n const removeCurrentSign = () => {\n try {\n dispatch(clearToSign())\n } catch (e) {\n console.log(e)\n // window.close()\n } finally {\n props.history.push('/')\n }\n }\n\n // xStaking\n // 投票,切换投票,赎回,解冻,提息\n // nominate, renominate, unnominate, unfreeze, claim\n // 切换投票页面不一样\n // this.api.tx.xStaking.nominate(target, value, memo);\n // this.api.tx.xStaking.renominate(from, to, value, memo);\n // this.api.tx.xStaking.unnominate(target, value, memo);\n // this.api.tx.xStaking.unfreeze(target, revocationIndex);\n // this.api.tx.xStaking.claim(target);\n\n // xAssetsProcess(Asset.js)\n // 提现,取消提现\n // withdraw, revokeWithdraw\n // this.api.tx.xAssetsProcess.withdraw(token, value, addr, ext);\n // this.api.tx.xAssetsProcess.revokeWithdraw(id);\n\n // xSpot(Trade.js)\n // 挂单,撤单\n // putOrder, cancelOrder\n // this.api.tx.xSpot.putOrder(pairid, ordertype, direction, amount, price);\n // this.api.tx.xSpot.cancelOrder(pairid, index);\n\n const marks = [\n {\n value: 1,\n label: '1x'\n },\n {\n value: 10,\n label: '10x'\n }\n ]\n\n if (!query || !toSign) {\n return <>>\n }\n\n return (\n \n
{txPanel}
\n
\n
\n
\n Fee \n {toPrecision(currentGas, 8)} PCX \n
\n
More fee, faster speed \n
\n
setAcceleration(v)}\n // getAriaValueText={valuetext}\n aria-labelledby=\"discrete-slider\"\n valueLabelDisplay=\"auto\"\n step={1}\n marks={marks}\n min={1}\n max={10}\n />\n \n
\n
\n Input password \n
\n
{\n if (event.key === 'Enter') {\n sign()\n }\n }}\n className=\"fixed-width\"\n type=\"password\"\n placeholder=\"Password\"\n />\n \n \n
\n Cancel\n \n
sign()}>\n Sign\n \n
\n \n
\n )\n}\n\nexport default RequestSign\n","import React from 'react'\nimport './showPrivateKey.scss'\nimport StaticWarning from '../../components/StaticWarning'\n\nfunction ShowPrivateKey(props) {\n return (\n \n
Private Key \n
\n
\n {props.location.query.pk} \n
\n
\n )\n}\n\nexport default ShowPrivateKey\n","import React from 'react'\nimport { useState } from 'react'\nimport { Account } from 'chainx.js'\nimport './enterPassword.scss'\nimport ErrorMessage from '../../components/ErrorMessage'\nimport { useSelector, useDispatch } from 'react-redux'\nimport {\n isTestNetSelector,\n networkSelector\n} from '../../store/reducers/settingSlice'\nimport { removeAccount } from '../../store/reducers/accountSlice'\nimport { TextInput } from '@chainx/ui'\n\nfunction EnterPassword(props) {\n const [pass, setPass] = useState('')\n const [errMsg, setErrMsg] = useState('')\n const isTestNet = useSelector(isTestNetSelector)\n const dispatch = useDispatch()\n const chainId = useSelector(networkSelector)\n\n async function exportPk(keystore, password) {\n try {\n const pk = Account.fromKeyStore(keystore, password).privateKey()\n props.history.push({\n pathname: '/showPrivateKey',\n query: { pk: pk }\n })\n } catch (error) {\n setErrMsg(error.message)\n }\n }\n\n async function _removeAccount(address, password, keystore) {\n try {\n Account.setNet(isTestNet ? 'testnet' : 'mainnet')\n Account.fromKeyStore(keystore, password)\n dispatch(removeAccount({ address, chainId }))\n props.history.push('/')\n } catch (error) {\n setErrMsg(error.message)\n }\n }\n\n const enter = async function() {\n if (pass) {\n const address = props.location.query.address\n const keystore = props.location.query.keystore\n const type = props.location.query.type\n if (type === 'export') {\n exportPk(keystore, pass)\n } else if (type === 'remove') {\n _removeAccount(address, pass, keystore)\n }\n }\n }\n\n return (\n \n Input password \n {\n if (event.key === 'Enter') {\n enter()\n }\n }}\n placeholder=\"Password\"\n />\n enter()}\n >\n Confirm\n \n {errMsg ? : null}\n
\n )\n}\n\nexport default EnterPassword\n","import React, { useState } from 'react'\nimport ErrorMessage from '../../components/ErrorMessage'\nimport {\n chainxNodesSelector,\n addNode,\n removeNode,\n setNodeDelay\n} from '../../store/reducers/nodeSlice'\nimport { networkSelector } from '../../store/reducers/settingSlice'\nimport { useSelector, useDispatch } from 'react-redux'\nimport './nodeAction.scss'\nimport getDelay from '../../shared/updateNodeStatus'\nimport { TextInput } from '@chainx/ui'\n\nfunction AddNode(props) {\n const [name, setName] = useState('')\n const [url, setUrl] = useState('')\n const [errMsg, setErrMsg] = useState('')\n const nodeList = useSelector(chainxNodesSelector)\n const chainId = useSelector(networkSelector)\n const dispatch = useDispatch()\n\n const {\n location: { query }\n } = props\n\n let action = ''\n let title = 'Add node'\n if (query && query.type === 'edit') {\n action = 'edit'\n title = 'Edit node'\n } else if (query && query.type === 'remove') {\n action = 'remove'\n title = 'Delete node'\n }\n\n const check = () => {\n if (!name || !url) {\n setErrMsg('name and url are required')\n return false\n }\n return true\n }\n\n const enter = async () => {\n if (!check()) {\n return\n }\n try {\n dispatch(addNode({ chainId, node: { name, url } }))\n getDelay(nodeList, chainId, dispatch, setNodeDelay)\n setErrMsg('')\n props.history.push('/')\n } catch (error) {\n setErrMsg(error.message)\n }\n }\n\n const deleteNode = async (name, url) => {\n if (nodeList.length < 2) {\n setErrMsg('can not remove the last node')\n return\n }\n try {\n dispatch(removeNode({ chainId, url }))\n getDelay(nodeList, chainId, dispatch, setNodeDelay)\n setErrMsg('')\n props.history.push('/')\n } catch (error) {\n setErrMsg(error.message)\n }\n }\n\n return (\n \n {title} \n {action !== 'remove' ? (\n <>\n \n Node address \n {\n if (event.key === 'Enter') {\n enter()\n }\n }}\n placeholder=\"wss://w1.chainx.org/ws\"\n />\n enter()}\n >\n Confirm\n \n >\n ) : (\n {\n deleteNode(query.nodeInfo.name, query.nodeInfo.url)\n }}\n >\n Delete\n \n )}\n {errMsg ? : null}\n
\n )\n}\n\nexport default AddNode\n","import React from 'react'\nimport './nodeAction.scss'\n\nfunction NodeError() {\n return (\n \n \n Current node is invalid, please switch node and retry.\n \n
\n )\n}\n\nexport default NodeError\n","import React, { useEffect } from 'react'\nimport { BrowserRouter as Router } from 'react-router-dom'\nimport { Redirect, Route, Switch } from 'react-router'\nimport Home from './Home'\nimport Header from './Header'\nimport CreateAccount from './CreateAccount'\nimport ImportAccount from './ImportAccount'\nimport RequestSign from './RequestSign'\nimport ShowPrivateKey from './ShowPrivateKey/index'\nimport EnterPassword from './EnterPassword'\nimport NodeAction from './NodeAction'\nimport NodeError from './NodeAction/NodeError'\nimport { setChainx, sleep } from '../shared'\nimport spinner from '../assets/loading.gif'\nimport './index.scss'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { setInitLoading } from '../store/reducers/statusSlice'\nimport { currentChainxNodeSelector } from '../store/reducers/nodeSlice'\n\nimport {\n handleApiResponse,\n handlePairedResponse,\n setService\n} from '../services/socketService'\n\nwindow.wallet.socketResponse = data => {\n if (typeof data === 'string') data = JSON.parse(data)\n switch (data.type) {\n case 'api':\n return handleApiResponse(data.request, data.id)\n case 'pair':\n return handlePairedResponse(data.request, data.id)\n default:\n return\n }\n}\n\nsetService(window.sockets)\n\nwindow.sockets.initialize().then(() => console.log('sockets initialized'))\n\nexport default function App() {\n let redirectUrl = '/'\n\n const dispatch = useDispatch()\n const loading = useSelector(state => state.status.loading)\n const initLoading = useSelector(state => state.status.initLoading)\n const currentNode = useSelector(currentChainxNodeSelector)\n\n useEffect(() => {\n getSetting()\n // eslint-disable-next-line\n }, [])\n\n const getSetting = async () => {\n Promise.race([setChainx(currentNode.url), sleep(3000)])\n .catch(e => {\n console.log(`set Chainx catch error: ${e}`)\n })\n .finally(() => {\n dispatch(setInitLoading(false))\n })\n }\n\n return (\n \n \n \n {(loading || initLoading) && (\n \n
\n
\n )}\n {!initLoading && (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n )}\n \n \n )\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './pages/App'\nimport { Provider } from 'react-redux'\nimport store from './store'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzNmM2YzZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPui1hOa6kCA0MzwvdGl0bGU+PGcgaWQ9IuWbvuWxgl8yIiBkYXRhLW5hbWU9IuWbvuWxgiAyIj48ZyBpZD0i5Zu+5bGCXzEtMiIgZGF0YS1uYW1lPSLlm77lsYIgMSI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTQuNTQsNDUuNDVhNi44Niw2Ljg2LDAsMCwwLDkuNywwTDk3LDEyLjc0QTYwLDYwLDAsMCwwLDM3LjExLDQuNTNhMTIsMTIsMCwwLDAtMy45LDE5LjU5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ0Ljg0LDU1LjE1LDEyLjc1LDIzLjA2QTYwLDYwLDAsMCwwLDQuMTIsODEuOWExMiwxMiwwLDAsMCwxOS42NCw0TDQ0Ljg0LDY0Ljg1QTYuODYsNi44NiwwLDAsMCw0NC44NCw1NS4xNVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik02NC4yNCw3NC41NWE2Ljg2LDYuODYsMCwwLDAtOS43LDBMMjIuMzYsMTA2LjczbC4wNywwYTYwLDYwLDAsMCwwLDU5LjQ0LDkuMSwxMiwxMiwwLDAsMCw0LjA2LTE5LjY0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTExNS40OSwzNy4xNGExMiwxMiwwLDAsMC0xOS42MS0zLjkzTDczLjk0LDU1LjE1YTYuODYsNi44NiwwLDAsMCwwLDkuN2wzMi43OCwzMi43OCwwLS4wN0E2MCw2MCwwLDAsMCwxMTUuNDksMzcuMTRaIi8+PC9nPjwvZz48L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNDRweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgNDQgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjYgKDY3NDkxKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT7lkIjlubblvaLnirY8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLpkrHljIXmj5Lku7YiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04NjIuMDAwMDAwLCAtMTMzMC4wMDAwMDApIiBmaWxsPSIjRUE3NTRCIj4KICAgICAgICAgICAgPGcgaWQ9IuWIhue7hC01LWNvcHktMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgxMC4wMDAwMDAsIDEzMTguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuNSwxMiBMODcuNSwxMiBDOTIuMTk0NDIwNCwxMiA5NiwxNS44MDU1Nzk2IDk2LDIwLjUgQzk2LDI1LjE5NDQyMDQgOTIuMTk0NDIwNCwyOSA4Ny41LDI5IEw2MC41LDI5IEM1NS44MDU1Nzk2LDI5IDUyLDI1LjE5NDQyMDQgNTIsMjAuNSBDNTIsMTUuODA1NTc5NiA1NS44MDU1Nzk2LDEyIDYwLjUsMTIgWiBNNjAuMiwxNS45MyBMNTkuNSwxNi42IEM2MC4xMSwxNy4wOSA2MC41OCwxNy41NSA2MC45LDE3Ljk3IEw2MS41OCwxNy4yOSBDNjEuMiwxNi44NCA2MC43NCwxNi4zOSA2MC4yLDE1LjkzIFogTTYwLjA0LDE4LjM4IEw1OS4zNCwxOS4wNSBDNTkuOTMsMTkuNTcgNjAuMzksMjAuMDYgNjAuNzEsMjAuNTIgTDYxLjM4LDE5Ljg0IEM2MS4wMiwxOS4zNiA2MC41NywxOC44NyA2MC4wNCwxOC4zOCBaIE02MC42NCwyMS4xMyBDNjAuMjgsMjIuMjggNTkuODcsMjMuNDEgNTkuMzksMjQuNTIgTDYwLjMzLDI0LjkzIEM2MC43NywyMy44NSA2MS4xNiwyMi43IDYxLjUyLDIxLjQ4IEw2MC42NCwyMS4xMyBaIE02NS4zOCwxNi4yNSBMNjEuNzUsMTYuMjUgTDYxLjc1LDIyLjUyIEw2Mi42NywyMi41MiBMNjIuNjcsMTcuMTQgTDY0LjQ2LDE3LjE0IEw2NC40NiwyMi40NiBMNjUuMzgsMjIuNDYgTDY1LjM4LDE2LjI1IFogTTY0LjMxLDIyLjg0IEw2My42OSwyMy40NSBDNjQuMjgsMjQuMDIgNjQuNzMsMjQuNTUgNjUuMDUsMjUuMDUgTDY1Ljc1LDI0LjM2IEM2NS4zNSwyMy44NiA2NC44NywyMy4zNSA2NC4zMSwyMi44NCBaIE02My4xNCwxNy42NyBMNjMuMTQsMjAuOCBDNjMuMTEsMjEuNjggNjIuOTcsMjIuMzkgNjIuNzMsMjIuOTMgQzYyLjQ4LDIzLjQzIDYyLDIzLjg2IDYxLjI5LDI0LjIgTDYxLjgzLDI1LjA3IEM2Mi41NywyNC43MiA2My4xMSwyNC4yMiA2My40NCwyMy41OCBDNjMuNzgsMjIuODggNjMuOTYsMjEuOTYgNjQsMjAuOCBMNjQsMTcuNjcgTDYzLjE0LDE3LjY3IFogTTY3LjM5LDI0Ljk2IEM2OC4wMSwyNC45NiA2OC4zMiwyNC42MiA2OC4zMiwyMy45NSBMNjguMzIsMTUuODUgTDY3LjM0LDE1Ljg1IEw2Ny4zNCwyMy43IEM2Ny4zNCwyMy45NCA2Ny4yNCwyNC4wNyA2Ny4wNSwyNC4wNyBDNjYuNzQsMjQuMDcgNjYuNDEsMjQuMDQgNjYuMDcsMjQgTDY2LjI5LDI0Ljk2IEw2Ny4zOSwyNC45NiBaIE02NS44OSwxNi42NyBMNjUuODksMjIuODMgTDY2LjgsMjIuODMgTDY2LjgsMTYuNjcgTDY1Ljg5LDE2LjY3IFogTTczLjU0LDIwLjcyIEw3My41NCwyMy4yNyBMNzIuNjcsMjMuMzkgTDcyLjkzLDI0LjM5IEM3My45MSwyNC4yMiA3NC44NCwyNC4wMSA3NS43MSwyMy43NyBMNzUuNzEsMjIuOCBDNzUuMzMsMjIuOSA3NC45NSwyMyA3NC41NiwyMy4wOCBMNzQuNTYsMjAuNzIgTDc1LjM5LDIwLjcyIEw3NS4zOSwxOS43NSBMNzIuNzIsMTkuNzUgTDcyLjcyLDIwLjcyIEw3My41NCwyMC43MiBaIE03Ny40OSwyNC45OCBDNzcuOTcsMjQuOTggNzguNCwyNC4yNCA3OC43NiwyMi43OCBMNzcuOTQsMjIuMTIgQzc3Ljc4LDIzLjI0IDc3LjYzLDIzLjgxIDc3LjQ5LDIzLjg0IEM3Ny4yNCwyMy43OCA3Ny4wMiwyMy4xOCA3Ni44MiwyMi4wNCBDNzYuNjksMjEuMTMgNzYuNiwxOS45NSA3Ni41NiwxOC40OSBMNzguNDEsMTguNDkgTDc4LjQxLDE3LjQ3IEw3Ni41NCwxNy40NyBDNzYuNTIsMTYuOTMgNzYuNTIsMTYuMzYgNzYuNTIsMTUuNzUgTDc1LjUsMTUuNzUgQzc1LjUsMTYuMzQgNzUuNSwxNi45MSA3NS41MiwxNy40NyBMNzIuNDksMTcuNDcgTDcyLjQ5LDE4LjQ5IEw3NS41NSwxOC40OSBDNzUuNTksMTkuNzUgNzUuNjcsMjAuODIgNzUuNzksMjEuNjkgQzc1LjkzLDIyLjcxIDc2LjE3LDIzLjU0IDc2LjUsMjQuMTggQzc2Ljc4LDI0LjcxIDc3LjExLDI0Ljk4IDc3LjQ5LDI0Ljk4IFogTTc3LjM1LDE1Ljc0IEw3Ni42NCwxNi4xOSBDNzcuMDQsMTYuNjUgNzcuMzUsMTcuMDYgNzcuNTksMTcuNDQgTDc4LjMxLDE2Ljk0IEM3OC4wOCwxNi42IDc3Ljc2LDE2LjIgNzcuMzUsMTUuNzQgWiBNNzAuNzgsMTUuODUgTDcwLjA0LDE2LjU3IEM3MC43MSwxNy4wOSA3MS4yMywxNy41OCA3MS42LDE4LjA0IEw3Mi4zMSwxNy4zMSBDNzEuODksMTYuODMgNzEuMzgsMTYuMzQgNzAuNzgsMTUuODUgWiBNNjkuMzYsMTguNzQgTDY5LjM2LDE5Ljc0IEw3MC42NywxOS43NCBMNzAuNjcsMjMuMzEgQzcwLjY3LDIzLjUxIDcwLjU4LDIzLjY5IDcwLjQsMjMuODMgTDcwLjgsMjQuNzcgQzcxLjQzLDI0LjMgNzIuMDMsMjMuNzcgNzIuNTksMjMuMTcgTDcyLjMyLDIyLjA3IEM3Mi4wOSwyMi4zMSA3MS44NywyMi41NCA3MS42NywyMi43NiBMNzEuNjcsMTguNzQgTDY5LjM2LDE4Ljc0IFogTTgzLjU3LDIyLjcyIEw4NC4yNiwyMi4wMyBDODMuOSwyMS40NyA4My41NSwyMC45NiA4My4yMSwyMC41IEM4My40NCwxOS42OCA4My42MywxOC43OCA4My43OCwxNy43OCBMODIuODIsMTcuNjEgQzgyLjczLDE4LjI3IDgyLjYxLDE4LjkxIDgyLjQ3LDE5LjUxIEM4Mi4xMywxOS4wNyA4MS44MSwxOC42OSA4MS41MSwxOC4zNyBMODAuOTIsMTguOTQgTDgwLjkyLDE3LjExIEw4Ny4wOCwxNy4xMSBMODcuMDgsMjIuNDMgQzg2LjcyLDIxLjgzIDg2LjM3LDIxLjI3IDg2LjAzLDIwLjc2IEM4Ni4zMSwxOS44OCA4Ni41NCwxOC44OSA4Ni43MSwxNy44MSBMODUuNzMsMTcuNjQgQzg1LjYyLDE4LjM3IDg1LjQ4LDE5LjA2IDg1LjMxLDE5LjcxIEM4NC45NywxOS4yMyA4NC42NSwxOC44MyA4NC4zNiwxOC40OSBMODMuNzIsMTkuMTEgQzg0LjE1LDE5LjY3IDg0LjU3LDIwLjI0IDg0Ljk3LDIwLjgzIEM4NC42MywyMS43NyA4NC4yMSwyMi41OSA4My43MSwyMy4zMSBMODQuMzcsMjQuMTMgQzg0Ljg1LDIzLjQ5IDg1LjI3LDIyLjc0IDg1LjYzLDIxLjg2IEM4NS45MSwyMi4zIDg2LjE3LDIyLjc1IDg2LjQzLDIzLjIxIEw4Ny4wOCwyMi41NiBMODcuMDgsMjMuNjkgQzg3LjA4LDIzLjkxIDg2Ljk2LDI0LjAyIDg2LjczLDI0LjAyIEw4NS44MSwyMy45NyBMODYuMDcsMjQuOTggTDg3LjA3LDI0Ljk4IEM4Ny43NiwyNC45OCA4OC4xMSwyNC42MyA4OC4xMSwyMy45MyBMODguMTEsMTYuMTEgTDc5Ljg5LDE2LjExIEw3OS44OSwyNS4wNSBMODAuOTIsMjUuMDUgTDgwLjkyLDE5LjA1IEM4MS4zNCwxOS41NiA4MS43NiwyMC4wOSA4Mi4xNiwyMC42MyBDODEuODYsMjEuNTUgODEuNDgsMjIuMzcgODEuMDIsMjMuMDcgTDgxLjY4LDIzLjg5IEM4Mi4xMywyMy4yNSA4Mi41MiwyMi40OSA4Mi44NSwyMS42MSBDODMuMDksMjEuOTcgODMuMzMsMjIuMzQgODMuNTcsMjIuNzIgWiIgaWQ9IuWQiOW5tuW9oueKtiI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMThweCIgaGVpZ2h0PSIxNHB4IiB2aWV3Qm94PSIwIDAgMTggMTQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUyLjYgKDY3NDkxKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5zd2FwX2hvcml6LTI0cHg8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZyBpZD0i6aG16Z2iLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLpkrHljIXmj5Lku7YiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01MTYuMDAwMDAwLCAtMTYyNy4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9IuWIhue7hCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDk5LjAwMDAwMCwgMTM5MC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJzd2FwX2hvcml6LTI0cHgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjAwMDAwMCwgMjM0LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIHBvaW50cz0iMCAwIDIwIDAgMjAgMjAgMCAyMCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjE0LDkuODYgTDEuMzYsMTIuNjUgQzEuMTcsMTIuODUgMS4xNywxMy4xNiAxLjM2LDEzLjM2IEw0LjE0LDE2LjE1IEM0LjQ1LDE2LjQ3IDQuOTksMTYuMjQgNC45OSwxNS44IEw0Ljk5LDE0IEwxMSwxNCBDMTEuNTUsMTQgMTIsMTMuNTUgMTIsMTMgQzEyLDEyLjQ1IDExLjU1LDEyIDExLDEyIEw0Ljk5LDEyIEw0Ljk5LDEwLjIxIEM0Ljk5LDkuNzYgNC40NSw5LjU0IDQuMTQsOS44NiBaIE0xOC42NSw2LjY1IEwxNS44NywzLjg2IEMxNS41NiwzLjU0IDE1LjAyLDMuNzcgMTUuMDIsNC4yMSBMMTUuMDIsNiBMOSw2IEM4LjQ1LDYgOCw2LjQ1IDgsNyBDOCw3LjU1IDguNDUsOCA5LDggTDE1LjAxLDggTDE1LjAxLDkuNzkgQzE1LjAxLDEwLjI0IDE1LjU1LDEwLjQ2IDE1Ljg2LDEwLjE0IEwxOC42NCw3LjM1IEMxOC44NCw3LjE2IDE4Ljg0LDYuODQgMTguNjUsNi42NSBaIiBpZD0i5b2i54q2IiBmaWxsPSIjRjZDOTRBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/gif;base64,R0lGODlhKAAoAPf/AOp2TFOz5ImjeTrFmfbKTdp+VO+UdKeQjvnag+yFTozIeYXJ7POym5bhyYbau5q7mvfMVWzVtPrhm9fKWovM7fnekaqVa0yx4/fQYfKrkvjWdu2HYut6UbjJZ0HKoXjZvPrjoup5TvfPXVKr2PGkic6BaEeu4oiaqZiccut9VfCegLuNY9LCq2Wzx6fL1vXDS47fx8jJYZjS7/GhhfGnTe6TT4XdwnmrgMu1rVPOqHe1t0PDllm4jciHXffNWWaziEnMpIathT3InkzGkvbHSk2t3WK55HXYukTKooq4p6nJbVaw1dbateB6UtfEZerJUlTKmXPC6WTIiOrHVFzQq/bLUGalyPS8TNOBV9Owm/HJTpaVnDbGm/OzTfnZfkq/lPncidqGY2HTsPCbfHnIgUzNpmfTruyAWoLcwam9jXaguvKojnvF6lnHjoC4sraJfvjTbDrInWbUs1m25T7Gl3vavaK3xbOQZpHOin6etPC4ofndjfbJmULJnLDIqra4mZTeweyFX+PJU8KFc1245uDGXed2TeyCXM7QitLQdeWiiOt/WO7JTt6Pa/jVclK7kKK8k12nzuesk7jWlLG+hqDQ47bhum/XuI7au+vYiOTeq++YeF/HmvPelLXQuKSYbvrfk4/O7UjKoIHI6+N5UPS3Wdd+YJO7o+HVfO2MTl+yzG+vhEvKnHS9l/DJUDfGmXDVsj/Cl/jXd57U8O6VWPrcnMrCcN97WPCcUvPZg3TOpel1S4DZuOmBW/jWiPOxjILStL3ApW20wOiWeU3Mo7ifezjFmjXGmvbMU/nbhzfHnH/bwGPTsW/A6D7Jn0bLo+Z3UPfRZ+fHV/nbknvXtu2NXjXGmZ/ewPHbivjXg/PJTLvAfeDOZczhr/fJdPOvYfHMV+rgnPXCinK4x+GCYfHPZ0rEm++eTnqyifPMWtWLc/XFUObNX86QfG6iwOyDXeqFX/Kqgm2t0JvCtJPVopPC2o+/uO+WdnjWuErMo0vLokau4vbJSup1SzTGmgAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzU0ODU2N0RGN0JGMTFFOTk3QUI5RDA4N0VFMDhDNTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzU0ODU2N0VGN0JGMTFFOTk3QUI5RDA4N0VFMDhDNTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NTQ4NTY3QkY3QkYxMUU5OTdBQjlEMDg3RUUwOEM1MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NTQ4NTY3Q0Y3QkYxMUU5OTdBQjlEMDg3RUUwOEM1MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5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\""],"sourceRoot":""}
\ No newline at end of file