diff --git a/app.28195e8e469d4be56541.js b/app.28195e8e469d4be56541.js deleted file mode 100644 index b5331af..0000000 --- a/app.28195e8e469d4be56541.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{var e,t,a,s,n,r,o,i={34031:(e,t,a)=>{var s={"./adjust.svg":40564,"./alarm.svg":24401,"./arrow-down-1.svg":22695,"./arrow-up-down.svg":97609,"./assets.svg":88751,"./attention.svg":35371,"./autolock.svg":83160,"./barter.svg":30305,"./borrow.svg":36942,"./checkmark-circle.svg":4401,"./checkmark.svg":60004,"./chevron-down.svg":80870,"./clippy.svg":13405,"./clock.svg":45140,"./cog.svg":21764,"./cogs.svg":43695,"./coming_soon.svg":95882,"./connect.svg":82458,"./connected.svg":22862,"./create_account.svg":94563,"./cross-circle.svg":47794,"./dashboard.svg":67027,"./delete.svg":65437,"./deployment-unit.svg":30270,"./deposit.svg":69052,"./direct_debit.svg":96860,"./disconnected.svg":1326,"./dollar-green.svg":19431,"./dollar.svg":83870,"./download.svg":18864,"./excel.svg":77051,"./eye-striked.svg":56609,"./eye.svg":83662,"./fi-star.svg":77552,"./filter.svg":66414,"./fire.svg":54383,"./folder.svg":18581,"./grouping.svg":82266,"./hamburger-x.svg":24481,"./hamburger.svg":11808,"./hourglass.svg":9389,"./htlc.svg":38078,"./info-circle-o.svg":30208,"./insight.svg":11615,"./instant-trade.svg":15888,"./key.svg":17325,"./list.svg":91702,"./locked.svg":81242,"./merchant.svg":82728,"./minus-circle.svg":1673,"./news.svg":27791,"./paperclip.svg":29908,"./people.svg":71372,"./photo-camera.svg":51498,"./plus-circle.svg":10785,"./poolmart.svg":7058,"./pools.svg":63114,"./power.svg":22765,"./prediction-large.svg":90874,"./prediction.svg":10411,"./qr-scan.svg":84185,"./question-circle.svg":15146,"./question-in-circle.svg":35479,"./server.svg":42641,"./settle.svg":99200,"./share.svg":93603,"./showcases.svg":7649,"./shuffle.svg":17047,"./swap.svg":20153,"./text.svg":60740,"./thumb-tack.svg":79006,"./thumb-untack.svg":95459,"./thumbs-up.svg":20044,"./times.svg":40293,"./trade.svg":5972,"./transfer.svg":80530,"./unlocked.svg":77814,"./user.svg":62075,"./voting.svg":48637,"./wallet.svg":42083,"./warning.svg":72007,"./withdraw.svg":36225,"./zoom.svg":74477};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=34031},21175:(e,t,a)=>{var s={"./en/accounts/general.md":74423,"./en/accounts/membership.md":21710,"./en/accounts/permissions.md":62313,"./en/accounts/proposed.md":60807,"./en/assets/Asset.md":8419,"./en/assets/EUR.md":10997,"./en/assets/USD.md":62816,"./en/assets/mpa.md":97548,"./en/assets/privbitassets.md":6225,"./en/assets/uia.md":89913,"./en/components/AccountAssetCreate.md":39856,"./en/components/AccountMembership.md":69329,"./en/components/AccountPermActive.md":36638,"./en/components/AccountPermMemo.md":63933,"./en/components/AccountPermOwner.md":8408,"./en/components/AccountVoting.md":28379,"./en/components/AccountVotingCommittee.md":2270,"./en/components/AccountVotingProxy.md":88336,"./en/components/AccountVotingWitnesses.md":80878,"./en/components/AccountVotingWorkers.md":95043,"./en/components/BorrowModal.md":85920,"./en/components/BorrowModalPrediction.md":56507,"./en/components/DepositWithdraw.md":99087,"./en/components/Fees.md":1911,"./en/components/InitError.md":29362,"./en/components/PredictionMarkets.md":80281,"./en/dex/introduction.md":38251,"./en/dex/shorting.md":21076,"./en/dex/trading.md":7607,"./en/disclaimer.md":46645,"./en/gateways/introduction.md":13069,"./en/gateways/ioxbank.md":81885,"./en/gateways/xbtsx.md":32604,"./en/glossary.md":77339,"./en/index.md":60700,"./en/introduction/backups.md":87117,"./en/introduction/bitshares.md":93275,"./en/introduction/blockchain.md":42438,"./en/introduction/bridges_gateways.md":46595,"./en/introduction/wallets.md":15851,"./en/toc.md":81821,"./en/voting.md":95008,"./es/accounts/general.md":62677,"./es/toc.md":68042,"./ja/components/AccountMembership.md":36272,"./ja/components/BorrowModal.md":20892,"./ja/components/DepositWithdraw.md":41063,"./ru/accounts/general.md":28438,"./ru/accounts/membership.md":12155,"./ru/accounts/permissions.md":43239,"./ru/assets/Asset.md":6193,"./ru/assets/EUR.md":35796,"./ru/assets/USD.md":65418,"./ru/assets/mpa.md":11387,"./ru/assets/privbitassets.md":74759,"./ru/assets/uia.md":6643,"./ru/components/AccountAssetCreate.md":53556,"./ru/components/AccountMembership.md":49046,"./ru/components/AccountPermActive.md":27281,"./ru/components/AccountPermMemo.md":47718,"./ru/components/AccountPermOwner.md":50010,"./ru/components/AccountVoting.md":21767,"./ru/components/AccountVotingCommittee.md":73849,"./ru/components/AccountVotingProxy.md":51413,"./ru/components/AccountVotingWitnesses.md":45485,"./ru/components/AccountVotingWorkers.md":91288,"./ru/components/BorrowModal.md":37091,"./ru/components/BorrowModalPrediction.md":38309,"./ru/components/DepositWithdraw.md":95781,"./ru/components/Fees.md":15015,"./ru/components/InitError.md":63037,"./ru/dex/introduction.md":53632,"./ru/dex/shorting.md":48167,"./ru/dex/trading.md":2373,"./ru/gateways/cryptobridge.md":42199,"./ru/gateways/introduction.md":49331,"./ru/gateways/openledger.md":58662,"./ru/gateways/rudex.md":77860,"./ru/gateways/spark.md":35672,"./ru/gateways/xbtsx.md":77207,"./ru/glossary.md":38038,"./ru/index.md":25528,"./ru/introduction/backups.md":3709,"./ru/introduction/bitshares.md":78997,"./ru/introduction/blockchain.md":63175,"./ru/introduction/bridges_gateways.md":90186,"./ru/introduction/committee.md":81950,"./ru/introduction/wallets.md":13366,"./ru/introduction/witness.md":99396,"./ru/introduction/workers.md":26134,"./ru/toc.md":69208,"./tr/accounts/general.md":95132,"./tr/accounts/membership.md":5845,"./tr/accounts/permissions.md":68211,"./tr/assets/Asset.md":3260,"./tr/assets/EUR.md":89215,"./tr/assets/USD.md":86978,"./tr/assets/mpa.md":55912,"./tr/assets/privbitassets.md":8862,"./tr/assets/uia.md":17600,"./tr/components/AccountAssetCreate.md":71792,"./tr/components/AccountMembership.md":49292,"./tr/components/AccountPermActive.md":26426,"./tr/components/AccountPermMemo.md":538,"./tr/components/AccountPermOwner.md":14261,"./tr/components/AccountVoting.md":60705,"./tr/components/AccountVotingCommittee.md":86744,"./tr/components/AccountVotingProxy.md":72137,"./tr/components/AccountVotingWitnesses.md":83455,"./tr/components/AccountVotingWorkers.md":83904,"./tr/components/BorrowModal.md":20254,"./tr/components/DepositWithdraw.md":45713,"./tr/components/Fees.md":14327,"./tr/components/InitError.md":63604,"./tr/dex/introduction.md":93416,"./tr/dex/shorting.md":16693,"./tr/dex/trading.md":92781,"./tr/glossary.md":71118,"./tr/index.md":57357,"./tr/introduction/backups.md":31901,"./tr/introduction/bitshares.md":58715,"./tr/introduction/blockchain.md":87597,"./tr/introduction/committee.md":35488,"./tr/introduction/wallets.md":45677,"./tr/introduction/witness.md":20315,"./tr/introduction/workers.md":1018,"./tr/toc.md":18405,"./zh/accounts/general.md":39356,"./zh/accounts/membership.md":99016,"./zh/accounts/permissions.md":26387,"./zh/assets/EUR.md":35722,"./zh/assets/USD.md":55854,"./zh/assets/mpa.md":16504,"./zh/assets/privbitassets.md":3910,"./zh/assets/uia.md":95276,"./zh/components/AccountAssetCreate.md":52419,"./zh/components/AccountMembership.md":85472,"./zh/components/AccountPermActive.md":13430,"./zh/components/AccountPermMemo.md":30489,"./zh/components/AccountPermOwner.md":86249,"./zh/components/AccountVoting.md":66678,"./zh/components/AccountVotingCommittee.md":92976,"./zh/components/AccountVotingProxy.md":24198,"./zh/components/AccountVotingWitnesses.md":33829,"./zh/components/AccountVotingWorkers.md":98689,"./zh/components/BorrowModal.md":59530,"./zh/components/DepositWithdraw.md":32684,"./zh/components/Fees.md":17490,"./zh/components/InitError.md":680,"./zh/components/PredictionMarkets.md":85354,"./zh/dex/introduction.md":43021,"./zh/dex/shorting.md":25432,"./zh/dex/trading.md":52182,"./zh/glossary.md":80111,"./zh/index.md":12484,"./zh/introduction/backups.md":77794,"./zh/introduction/bitshares.md":51341,"./zh/introduction/blockchain.md":94510,"./zh/introduction/bridges_gateways.md":40835,"./zh/introduction/committee.md":30265,"./zh/introduction/wallets.md":29706,"./zh/introduction/witness.md":8399,"./zh/introduction/workers.md":15357,"./zh/toc.md":86602,"help/en/accounts/general.md":74423,"help/en/accounts/membership.md":21710,"help/en/accounts/permissions.md":62313,"help/en/accounts/proposed.md":60807,"help/en/assets/Asset.md":8419,"help/en/assets/EUR.md":10997,"help/en/assets/USD.md":62816,"help/en/assets/mpa.md":97548,"help/en/assets/privbitassets.md":6225,"help/en/assets/uia.md":89913,"help/en/components/AccountAssetCreate.md":39856,"help/en/components/AccountMembership.md":69329,"help/en/components/AccountPermActive.md":36638,"help/en/components/AccountPermMemo.md":63933,"help/en/components/AccountPermOwner.md":8408,"help/en/components/AccountVoting.md":28379,"help/en/components/AccountVotingCommittee.md":2270,"help/en/components/AccountVotingProxy.md":88336,"help/en/components/AccountVotingWitnesses.md":80878,"help/en/components/AccountVotingWorkers.md":95043,"help/en/components/BorrowModal.md":85920,"help/en/components/BorrowModalPrediction.md":56507,"help/en/components/DepositWithdraw.md":99087,"help/en/components/Fees.md":1911,"help/en/components/InitError.md":29362,"help/en/components/PredictionMarkets.md":80281,"help/en/dex/introduction.md":38251,"help/en/dex/shorting.md":21076,"help/en/dex/trading.md":7607,"help/en/disclaimer.md":46645,"help/en/gateways/introduction.md":13069,"help/en/gateways/ioxbank.md":81885,"help/en/gateways/xbtsx.md":32604,"help/en/glossary.md":77339,"help/en/index.md":60700,"help/en/introduction/backups.md":87117,"help/en/introduction/bitshares.md":93275,"help/en/introduction/blockchain.md":42438,"help/en/introduction/bridges_gateways.md":46595,"help/en/introduction/wallets.md":15851,"help/en/toc.md":81821,"help/en/voting.md":95008,"help/es/accounts/general.md":62677,"help/es/toc.md":68042,"help/ja/components/AccountMembership.md":36272,"help/ja/components/BorrowModal.md":20892,"help/ja/components/DepositWithdraw.md":41063,"help/ru/accounts/general.md":28438,"help/ru/accounts/membership.md":12155,"help/ru/accounts/permissions.md":43239,"help/ru/assets/Asset.md":6193,"help/ru/assets/EUR.md":35796,"help/ru/assets/USD.md":65418,"help/ru/assets/mpa.md":11387,"help/ru/assets/privbitassets.md":74759,"help/ru/assets/uia.md":6643,"help/ru/components/AccountAssetCreate.md":53556,"help/ru/components/AccountMembership.md":49046,"help/ru/components/AccountPermActive.md":27281,"help/ru/components/AccountPermMemo.md":47718,"help/ru/components/AccountPermOwner.md":50010,"help/ru/components/AccountVoting.md":21767,"help/ru/components/AccountVotingCommittee.md":73849,"help/ru/components/AccountVotingProxy.md":51413,"help/ru/components/AccountVotingWitnesses.md":45485,"help/ru/components/AccountVotingWorkers.md":91288,"help/ru/components/BorrowModal.md":37091,"help/ru/components/BorrowModalPrediction.md":38309,"help/ru/components/DepositWithdraw.md":95781,"help/ru/components/Fees.md":15015,"help/ru/components/InitError.md":63037,"help/ru/dex/introduction.md":53632,"help/ru/dex/shorting.md":48167,"help/ru/dex/trading.md":2373,"help/ru/gateways/cryptobridge.md":42199,"help/ru/gateways/introduction.md":49331,"help/ru/gateways/openledger.md":58662,"help/ru/gateways/rudex.md":77860,"help/ru/gateways/spark.md":35672,"help/ru/gateways/xbtsx.md":77207,"help/ru/glossary.md":38038,"help/ru/index.md":25528,"help/ru/introduction/backups.md":3709,"help/ru/introduction/bitshares.md":78997,"help/ru/introduction/blockchain.md":63175,"help/ru/introduction/bridges_gateways.md":90186,"help/ru/introduction/committee.md":81950,"help/ru/introduction/wallets.md":13366,"help/ru/introduction/witness.md":99396,"help/ru/introduction/workers.md":26134,"help/ru/toc.md":69208,"help/tr/accounts/general.md":95132,"help/tr/accounts/membership.md":5845,"help/tr/accounts/permissions.md":68211,"help/tr/assets/Asset.md":3260,"help/tr/assets/EUR.md":89215,"help/tr/assets/USD.md":86978,"help/tr/assets/mpa.md":55912,"help/tr/assets/privbitassets.md":8862,"help/tr/assets/uia.md":17600,"help/tr/components/AccountAssetCreate.md":71792,"help/tr/components/AccountMembership.md":49292,"help/tr/components/AccountPermActive.md":26426,"help/tr/components/AccountPermMemo.md":538,"help/tr/components/AccountPermOwner.md":14261,"help/tr/components/AccountVoting.md":60705,"help/tr/components/AccountVotingCommittee.md":86744,"help/tr/components/AccountVotingProxy.md":72137,"help/tr/components/AccountVotingWitnesses.md":83455,"help/tr/components/AccountVotingWorkers.md":83904,"help/tr/components/BorrowModal.md":20254,"help/tr/components/DepositWithdraw.md":45713,"help/tr/components/Fees.md":14327,"help/tr/components/InitError.md":63604,"help/tr/dex/introduction.md":93416,"help/tr/dex/shorting.md":16693,"help/tr/dex/trading.md":92781,"help/tr/glossary.md":71118,"help/tr/index.md":57357,"help/tr/introduction/backups.md":31901,"help/tr/introduction/bitshares.md":58715,"help/tr/introduction/blockchain.md":87597,"help/tr/introduction/committee.md":35488,"help/tr/introduction/wallets.md":45677,"help/tr/introduction/witness.md":20315,"help/tr/introduction/workers.md":1018,"help/tr/toc.md":18405,"help/zh/accounts/general.md":39356,"help/zh/accounts/membership.md":99016,"help/zh/accounts/permissions.md":26387,"help/zh/assets/EUR.md":35722,"help/zh/assets/USD.md":55854,"help/zh/assets/mpa.md":16504,"help/zh/assets/privbitassets.md":3910,"help/zh/assets/uia.md":95276,"help/zh/components/AccountAssetCreate.md":52419,"help/zh/components/AccountMembership.md":85472,"help/zh/components/AccountPermActive.md":13430,"help/zh/components/AccountPermMemo.md":30489,"help/zh/components/AccountPermOwner.md":86249,"help/zh/components/AccountVoting.md":66678,"help/zh/components/AccountVotingCommittee.md":92976,"help/zh/components/AccountVotingProxy.md":24198,"help/zh/components/AccountVotingWitnesses.md":33829,"help/zh/components/AccountVotingWorkers.md":98689,"help/zh/components/BorrowModal.md":59530,"help/zh/components/DepositWithdraw.md":32684,"help/zh/components/Fees.md":17490,"help/zh/components/InitError.md":680,"help/zh/components/PredictionMarkets.md":85354,"help/zh/dex/introduction.md":43021,"help/zh/dex/shorting.md":25432,"help/zh/dex/trading.md":52182,"help/zh/glossary.md":80111,"help/zh/index.md":12484,"help/zh/introduction/backups.md":77794,"help/zh/introduction/bitshares.md":51341,"help/zh/introduction/blockchain.md":94510,"help/zh/introduction/bridges_gateways.md":40835,"help/zh/introduction/committee.md":30265,"help/zh/introduction/wallets.md":29706,"help/zh/introduction/witness.md":8399,"help/zh/introduction/workers.md":15357,"help/zh/toc.md":86602};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=21175},50379:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(67294),n=a(45697),r=a.n(n),o=a(72023),i=a.n(o),l=a(79489),c=a.n(l),d=0;class u extends s.Component{constructor(e){super(e),this.canvas_id="identicon_"+(this.props.account||"")+ ++d}shouldComponentUpdate(e){return e.size.height!==this.props.size.height||e.size.width!==this.props.size.width||e.account!==this.props.account}render(){let{account:e}=this.props,{height:t,width:a}=this.props.size,n=e?i()(e):null;return s.createElement("canvas",{id:this.canvas_id,ref:"canvas",style:{height:t,width:a},width:2*a,height:2*t,"data-jdenticon-hash":n})}repaint(){if(this.props.account)c().updateById(this.canvas_id);else{let e=this.refs.canvas.getContext("2d");e.fillStyle="rgba(100, 100, 100, 0.5)";let t=e.canvas.width;e.clearRect(0,0,t,t),e.fillRect(0,0,t,t),e.clearRect(1,1,t-2,t-2),e.font=`${t}px sans-serif`,e.fillText("?",t/4,t-t/6)}}componentDidMount(){this.repaint()}componentDidUpdate(){this.repaint()}}u.propTypes={size:r().object.isRequired,account:r().string};const p=u;var h=a(13973);class m extends s.Component{shouldComponentUpdate(e){return!h.Z.are_equal_shallow(e,this.props)}render(){let{account:e,image:t,style:a}=this.props,{height:n,width:r}=this.props.size,o=t?s.createElement("img",{src:t,height:n+"px",width:r+"px"}):s.createElement(p,{id:e,account:e,size:this.props.size});return s.createElement("div",{style:a,className:"account-image"},o)}}m.defaultProps={src:"",account:"",size:{height:120,width:120},style:{}},m.propTypes={src:r().string,account:r().string,size:r().object.isRequired,style:r().object};const g=m},108:(e,t,a)=>{"use strict";a.d(t,{Z:()=>E});var s=a(67294),n=a(13973),r=a(89449),o=a(50379),i=a(32793),l=a(82050),c=a(58074),d=a.n(c),u=a(30806),p=a(23037),h=a(82267),m=a(112),g=a.n(m),b=a(91684),f=a(36345),y=a(94184),_=a.n(y),w=a(45697),k=a.n(w),v=a(76660);class A extends s.Component{static propTypes={label:k().string,error:k().element,placeholder:k().string,onChange:k().func,onAccountChanged:k().func,onAction:k().func,accountName:k().string,account:p.Z.ChainAccount,tabIndex:k().number,disableActionButton:k().bool,allowUppercase:k().bool,typeahead:k().bool,excludeAccounts:k().array,includeMyActiveAccounts:k().bool,focus:k().bool,disabled:k().bool,editable:k().bool,locked:k().bool,requireActiveSelect:k().bool,noForm:k().bool};static defaultProps={autosubscribe:!1,excludeAccounts:[],includeMyActiveAccounts:!0,disabled:null,editable:null,locked:!1,requireActiveSelect:!0,noForm:!1};constructor(e){super(e),this.state={accountIndex:[],locked:null},this.timer=null}componentDidMount(){let{account:e,accountName:t}=this.props;t&&this._addThisToIndex(t),this.props.includeMyActiveAccounts&&this.props.myActiveAccounts.map((e=>{this._addThisToIndex(e)})),this.props.contacts.map((e=>{this._addThisToIndex(e)})),this._fetchAccounts(),this.props.onAccountChanged&&e&&this.props.onAccountChanged(e),!this.props.typeahead&&t&&this.onInputChanged(t)}componentDidUpdate(e){this.props.focus&&this.props.editable&&!this.props.disabled&&this.refs.user_input.focus(),e.account&&e.account!==this.props.account&&this.props.onAccountChanged&&this.props.onAccountChanged(this.props.account)}_addToIndex(e,t=!1){t?(this._addThisToIndex(e),this._fetchAccounts()):(clearTimeout(this.timer),this.timer=setTimeout((()=>{this._addToIndex(e,!0)}),500))}_addThisToIndex(e){let{accountIndex:t}=this.state;if(!e)return;let a=t.find((t=>t.name===e));e&&!a&&t.push({name:e,data:null,attempts:0})}_getIndex(e,t){return t.findIndex((t=>t.name===e))}_getSearchArray(){let{accountIndex:e}=this.state;return e.filter((e=>!e.data&&e.attempts<5?e.name:null)).map((e=>e.name))}_fetchAccounts(){let{accountIndex:e}=this.state,t=this._getSearchArray();t.length>0&&(0,u.FetchChainObjects)(u.ChainStore.getAccount,t,3e3,{}).then((a=>{for(let s=0;s{let a=this._getIndex(t,e);e[a].attempts++})),this.setState({accountIndex:e}),this.state.accountIndex.find((e=>!e.data&&e.attempts<5))&&setTimeout((()=>{this._fetchAccounts()}),500)}))}_populateAccountIndexWithPublicKey(e){return{name:e,attempts:0,data:{name:e,type:this.getInputType(e),rightLabel:"Public Key"}}}_populateAccountIndex(e){let{myActiveAccounts:t,contacts:a}=this.props;if(!e)return null;let s=e.get("name"),n=u.ChainStore.getAccountMemberStatus(e),r=this.getInputType(s),o=f.Z.isKnownScammer(s)?g().translate("account.member.suspected_scammer"):g().translate("account.member."+n),i="name"===r?"#"+e.get("id").substring(4):"id"===r?e.get("name"):"pubkey"==r&&this.props.allowPubKey?"Public Key":null;return{name:s,attempts:0,data:{id:e.get("id"),name:s,type:r,status:n,isOwnAccount:t.has(s),isContact:a.has(s),isKnownScammer:f.Z.isKnownScammer(s),statusLabel:o,rightLabel:i,className:f.Z.isKnownScammer(s)||!e?"negative":null}}}getAccount(){return this.props.account}getError(){let{account:e,accountName:t,error:a,typeahead:s}=this.props,n=t?this.getInputType(t):null;return s||!e&&t&&"pubkey"!==n&&(a=g().translate("account.errors.unknown")),a||!e||n||(a=g().translate("account.errors.invalid")),a}getInputType(e){return e?"#"===e[0]&&n.Z.is_object_id("1.2."+e.substring(1))?"id":u.ChainValidation.is_account_name(e,!0)?"name":this.props.allowPubKey&&u.PublicKey.fromPublicKeyString(e)?"pubkey":null:null}getVerifiedAccountName(e){let{allowUppercase:t}=this.props,a=null;a="string"==typeof e?e:e&&e.target?e.target.value.trim():"",t||(a=a.toLowerCase());let s=a.replace("#","").match(/(?:\/account\/)(.*)/);return s&&(a=s[1]),a}_notifyOnChange(e,t){let{props:a}=this;"input"==t&&this.props.typeahead&&this.props.requireActiveSelect&&(a.onAccountChanged&&a.onAccountChanged(null),a.onChange&&a.onChange(null));let s=this.getVerifiedAccountName(e);a.onChange&&(s||""===s)&&a.onChange(s),a.onAccountChanged&&(0,u.FetchChain)("getAccount",s,void 0,{[s]:!1}).then((e=>{e&&(this.props.requireActiveSelect&&"select"==t||!this.props.requireActiveSelect)&&a.onAccountChanged(e)})).catch((e=>{console.log(e)}))}onSelect(e){this._notifyOnChange(e,"select")}onInputChanged(e){this._addToIndex(this.getVerifiedAccountName(e)),this._notifyOnChange(e,"input")}onKeyDown(e){13!==e.keyCode&&9!==e.keyCode||this.onAction(e)}_onAddContact(){l.Z.addAccountContact(this.props.accountName)}_onRemoveContact(){l.Z.removeAccountContact(this.props.accountName)}onAction(e){let{onAction:t,disableActionButton:a,account:s,accountName:n}=this.props;e.preventDefault(),this.getError()||!t||a||(s?t(s):"pubkey"===this.getInputType(n)&&t(n))}render(){let{accountIndex:e}=this.state,{account:t,accountName:a,disableActionButton:n}=this.props,r=this.state.accountIndex.find((e=>!e.data&&e.attempts<5));const i=null!==this.state.locked?this.state.locked:this.props.locked;let l,c,u,p,h,m,f=this.getError();if(h=!i&&(null!=this.props.editable?this.props.editable:void 0),p=!!i||(null!=this.props.disabled?this.props.disabled:void 0),t){let a=this._getIndex(t.get("name"),e);c=e&&e[a]?e[a].data:null}if(this.props.allowPubKey){let t=e.findIndex((e=>e.name===a));c=e&&e[t]?e[t].data:null}if(u=!(t||c&&"pubkey"===c.type)||f||n,c&&c.isKnownScammer?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.scam_account")},s.createElement("span",{className:"tooltip red"},s.createElement(v.Icon,{type:"warning",theme:"filled"}))):c&&c.isContact?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.follow_user"),onClick:this._onRemoveContact.bind(this)},s.createElement("span",{className:"tooltip green"},s.createElement(v.Icon,{type:"star",theme:"filled"}))):c&&c.isOwnAccount?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.own_account")},s.createElement("span",{className:"tooltip green"},s.createElement(v.Icon,{type:"user"}))):c&&(m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.follow_user_add"),onClick:this._onAddContact.bind(this)},s.createElement("span",{className:"tooltip"},s.createElement(v.Icon,{type:"star"})))),this.props.typeahead){let t=e.filter((e=>e.data?-1!==this.props.excludeAccounts.indexOf(e.id)?null:this.props.includeMyActiveAccounts&&e.data.isOwnAccount||!this.props.locked&&e.data.isContact||a&&e.data.name===a?e:void 0:null)).sort(((e,t)=>e.data.isOwnAccountt.data.name?1:-1)).map((e=>s.createElement(v.Select.Option,{key:e.data.id,value:e.data.name,disabled:!!e.data.disabled||void 0},e.data.isKnownScammer?s.createElement(v.Icon,{type:"warning"}):e.data.isContact?s.createElement(v.Icon,{type:"star"}):e.data.isOwnAccount?s.createElement(v.Icon,{type:"user"}):null," ",e.data.name,s.createElement("span",{style:{float:"right"}},e.data.statusLabel))));l=s.createElement(v.Select,{showSearch:!0,optionLabelProp:"value",onSelect:this.onSelect.bind(this),onSearch:this.onInputChanged.bind(this),placeholder:g().translate("account.search"),notFoundContent:g().translate("global.not_found"),value:c?c.name:null,disabled:!!p||void 0},t)}else l=s.createElement(v.Input,{style:{textTransform:c&&"pubkey"===c.type?null:"lowercase",fontVariant:"initial"},name:"username",id:"username",autoComplete:this.props.editable?"username":void 0,type:"text",value:this.props.accountName||"",placeholder:this.props.placeholder||g().translate("account.name"),disabled:!!this.props.disabled||void 0,ref:"user_input",onChange:this.onInputChanged.bind(this),onKeyDown:this.onKeyDown.bind(this),tabIndex:!this.props.editable||this.props.disabled?-1:this.props.tabIndex,editable:h?h.toString():void 0,readOnly:h?(!h).toString():void 0});let y=this.props.hideImage?null:c&&"pubkey"===c.type?s.createElement("div",{className:"account-image"},s.createElement(b.Z,{name:"key",title:"icons.key",size:"4x"})):s.createElement(o.Z,{size:{height:this.props.size||33,width:this.props.size||33},account:c?c.name:null,custom_image:null}),w=i?s.createElement(v.Tooltip,{title:g().translate("tooltip.unlock_account_name")},s.createElement("div",{style:{lineHeight:"2rem",marginLeft:"10px",cursor:"pointer"},onClick:()=>this.setState({locked:!1})},s.createElement(v.Icon,{style:{fontSize:"1rem"},type:"edit"}))):null,k=this.props.label&&c?s.createElement("div",{className:"header-area"+(this.props.hideImage?" no-margin":"")},s.createElement("label",{className:_()("right-label",c.isKnownScammer?"negative":c.isContact||c.isOwnAccount?"positive":null),style:{marginTop:-30}},s.createElement("span",{style:{paddingRight:"0.5rem"}},c.rightLabel),m)):null;const A=this.props.noForm?s.Fragment:v.Form,E=this.props.noForm?{}:{className:"full-width",layout:"vertical",style:this.props.style};return s.createElement(v.Tooltip,{className:"input-area",title:this.props.tooltip,mouseEnterDelay:.5},s.createElement(A,E,s.createElement(v.Form.Item,{label:this.props.label?g().translate(this.props.label):"",validateStatus:f?"error":null,help:f||null},k,this.props.useHR&&s.createElement("hr",null),s.createElement("div",{className:"inline-label input-wrapper"},y,l,r?s.createElement(v.Icon,{type:"loading",style:{padding:10}}):null,w,this.props.children,this.props.onAction?s.createElement(v.Tooltip,{title:g().translate("tooltip.required_input",{type:g().translate("global.field_type.account")})},s.createElement(v.Button,{type:"primary",disabled:u,onClick:this.onAction.bind(this)},s.createElement(d(),{content:this.props.action_label}))):null))))}}A=(0,h.Z)(A);const E=A=(0,r.$)(A,{listenTo:()=>[i.Z],getProps:()=>({myActiveAccounts:i.Z.getState().myActiveAccounts,contacts:i.Z.getState().accountContacts})})},98107:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(82267),r=a(23037),o=a(43393),i=a.n(o);function l(){return l=Object.assign||function(e){for(var t=1;t!!e&&0!==e.get("balance"))).map((e=>e.get("asset_type"))),r=t.filter((e=>!!e)).reduce(((e,t)=>{let a=t.getIn(["sell_price","base","asset_id"]);return e[a]||(e[a]=0),e[a]+=parseInt(t.get("for_sale"),10),e}),{});for(let e in r)-1===n.indexOf(e)&&n.push(e);let o=e;return s.createElement(o,l({},a,{orders:r,balanceAssets:i().List(n)}))}}const d=(0,n.Z)(c)},74656:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(67294),n=a(80314),r=a(112),o=a.n(r),i=a(45697),l=a.n(i),c=a(72034),d=a(38216),u=a(89449);class p extends s.Component{static propTypes={block_number:l().number.isRequired};constructor(e){super(e),this.state={time:null}}UNSAFE_componentWillMount(){this.props.blockHeader||c.Z.getHeader.defer(this.props.block_number)}shouldComponentUpdate(e){return e.block_number!==this.props.block_number||e.blockHeader!==this.props.blockHeader}render(){return s.createElement("span",{className:"time",key:this.props.block_number},this.props.blockHeader?this.props.fullDate?o().localize(this.props.blockHeader.timestamp,{type:"date",format:"full"}):s.createElement(n.Z,{time:this.props.blockHeader.timestamp}):null)}}const h=p=(0,u.$)(p,{listenTo:()=>[d.Z],getProps:e=>({blockHeader:d.Z.getState().blockHeaders.get(e.block_number)})})},9739:(e,t,a)=>{"use strict";a.d(t,{Z:()=>b});var s=a(67294),n=a(79618),r=a(56934),o=a(112),i=a.n(o),l=a(91684),c=a(89449),d=a(29548),u=a(13973),p=a(87913),h=a(76660);class m extends s.Component{static defaultProps={fullLength:!1};shouldComponentUpdate(e){return!u.Z.are_equal_shallow(e.memo,this.props.memo)||e.wallet_locked!==this.props.wallet_locked}componentDidMount(){p.Z.rebuild()}_toggleLock(e){e.preventDefault(),r.Z.unlock().then((()=>{p.Z.rebuild()})).catch((()=>{}))}render(){let{memo:e,fullLength:t}=this.props;if(!e)return null;let{text:a,isMine:r}=n.Z.decodeMemo(e);if(!a&&r)return s.createElement("div",{className:"memo"},s.createElement("span",null,i().translate("transfer.memo_unlock")," "),s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(l.Z,{name:"locked",title:"icons.locked.action"})));a=u.Z.sanitize(a);let o=a;return a&&!t&&a.length>35&&(a=a.substr(0,35)+"..."),a?s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(h.Tooltip,{placement:"bottom",title:o!==a?o:null},s.createElement("span",{className:"inline-block","data-class":"memo-tip","data-offset":"{'bottom': 10}"},a))):null}}class g extends s.Component{render(){return s.createElement(m,this.props)}}const b=(0,c.$)(g,{listenTo:()=>[d.Z],getProps:()=>({wallet_locked:d.Z.getState().locked})})},79060:(e,t,a)=>{"use strict";a.d(t,{Z:()=>z});var s=a(67294),n=a(21019),r=a(73727),o=a(94184),i=a.n(o),l=a(58074),c=a.n(l),d=a(112),u=a.n(d),p=a(13973),h=a(74656),m=a(3841),g=a(38715),b=a(82267),f=a(23037),y=a(30806),_=a(89449),w=a(39014),k=a(45697),v=a.n(k),A=a(76660),E=a(59707);const{operations:x}=y.ChainTypes;a(64);let S=Object.keys(x);class C extends s.Component{shouldComponentUpdate(e){return e.color!==this.props.color||e.type!==this.props.type}render(){let e=u().translate("transaction.trxTypes"),t=i()("label",this.props.color||"info");return s.createElement("span",{className:t},e[S[this.props.type]])}}class T extends s.Component{static propTypes={dynGlobalObject:f.Z.ChainObject.isRequired};static defaultProps={dynGlobalObject:"2.1.0",tempComponent:"tr"};constructor(e){super(e)}shouldComponentUpdate(e){let{block:t,dynGlobalObject:a}=this.props,s=a.get("last_irreversible_block_num");return e.dynGlobalObject!==this.props.dynGlobalObject||t>s||this.props.color!==e.color}render(){let{block:e,fee:t,color:a,type:o,hideOpLabel:i,hidePending:l}=this.props,d=this.props.dynGlobalObject.get("last_irreversible_block_num"),m=null;return!l&&e>d&&(m=s.createElement("span",null,"(",s.createElement(c(),{content:"operation.pending",blocks:e-d}),")")),t.amount=parseInt(t.amount,10),s.createElement("tr",null,this.props.includeOperationId?s.createElement("td",{style:{textAlign:"left"}},this.props.operationId):null,i?null:s.createElement("td",{style:{textAlign:"left"},className:"left-td column-hide-tiny"},s.createElement(A.Tooltip,{placement:"bottom",title:u().translate("tooltip.show_block",{block:p.Z.format_number(this.props.block,0)})},s.createElement(r.rU,{className:"inline-block",to:`/block/${this.props.block}/${this.props.txIndex}`},s.createElement(C,{color:a,type:o})))),s.createElement("td",{style:{padding:"8px 5px",textAlign:"left"}},s.createElement("div",null,s.createElement("span",null,this.props.info)),s.createElement("div",{style:{fontSize:14,paddingTop:5}},m?s.createElement("span",null," - ",m):null)),!this.props.hideFee&&s.createElement("td",{style:{textAlign:"left"}},s.createElement(n.Z,{amount:t.amount,asset:t.asset_id})),s.createElement("td",null,this.props.hideDate?null:s.createElement(h.Z,{block_number:e,fullDate:this.props.fullDate})))}}T=(0,b.Z)(T);class B extends s.Component{state={labelColor:"info"};static defaultProps={op:[],current:"",block:null,hideOpLabel:!1,csvExportMode:!1};static propTypes={op:v().array.isRequired,current:v().string,block:v().number,csvExportMode:v().bool};UNSAFE_componentWillReceiveProps(e){e.marketDirections!==this.props.marketDirections&&this.forceUpdate()}shouldComponentUpdate(e,t){return!(!this.props.op||!e.op||p.Z.are_equal_shallow(e.op[1],this.props.op[1])&&e.marketDirections===this.props.marketDirections&&this.state.labelColor===t.labelColor)}linkToAccount(e){return e?p.Z.is_object_id(e)?s.createElement(m.Z,{account:e}):s.createElement(r.rU,{to:`/account/${e}`},e):s.createElement("span",null,"-")}linkToAsset(e){return e?p.Z.is_object_id(e)?s.createElement(g.Z,{asset:e}):s.createElement(r.rU,{to:`/asset/${e}`},e):s.createElement("span",null,"-")}changeColor=e=>{const{labelColor:t}=this.state;t!==e&&this.setState({labelColor:e})};render(){let{op:e,block:t}=this.props,a=null,r=null;if(r=(0,E.Z)(S[e[0]],this.props,{fromComponent:"operation",linkToAccount:this.linkToAccount,linkToAsset:this.linkToAsset,changeColor:this.changeColor}),this.props.csvExportMode){const a=y.ChainStore.getObject("2.0.0"),o=y.ChainStore.getObject("2.1.0"),i=p.Z.calc_block_time(t,a,o);return s.createElement("div",null,s.createElement("div",null,i?i.toLocaleString():""),s.createElement("div",null,S[e[0]]),s.createElement("div",null,r),s.createElement("div",null,s.createElement(n.Z,{amount:parseInt(e[1].fee.amount,10),asset:e[1].fee.asset_id})))}return a=r?s.createElement(T,{operationId:this.props.operationId,txIndex:this.props.txIndex,includeOperationId:this.props.includeOperationId,block:t,type:e[0],color:this.state.labelColor,fee:e[1].fee,hideOpLabel:this.props.hideOpLabel,hideDate:this.props.hideDate,info:r,hideFee:this.props.hideFee,hidePending:this.props.hidePending,fullDate:this.props.fullDate}):null,a||s.createElement("tr",null)}}const z=B=(0,_.$)(B,{listenTo:()=>[w.Z],getProps:()=>({marketDirections:w.Z.getState().marketDirections})})},53528:(e,t,a)=>{"use strict";a.d(t,{Z:()=>E,h:()=>k});var s=a(67294),n=a(21019),r=a(73727),o=a(58074),i=a.n(o),l=a(112),c=a.n(l),d=a(13973),u=a(3841),p=a(38715),h=a(30806),m=a(45697),g=a.n(m),b=a(59707),f=a(58466),y=a(76660);const{operations:_}=h.ChainTypes;a(64);let w=Object.keys(_);const k=({id:e,expiration:t,style:a,openJSONModal:n})=>{const r=c().localize(new Date(t),{format:"short"});return s.createElement("b",{style:a},n?s.createElement("span",{className:"cursor-pointer",onClick:n},e," ",s.createElement(y.Icon,{type:"file-search"})," | "):s.createElement("span",null,e," | "),s.createElement("span",null,s.createElement(i(),{content:"proposal.expires"}),": ",r))};k.propTypes={openJSONModal:g().func},k.defaultProps={openJSONModal:null};class v extends s.Component{constructor(e){super(e),this.showDetails=this.showDetails.bind(this)}showDetails(e){e.preventDefault(),this.props.history.push(`/block/${this.props.block}`)}render(){let{id:e,fee:t,hideFee:a,hideExpiration:r,expiration:o}=this.props;return t.amount=parseInt(t.amount,10),s.createElement("div",{style:{padding:"5px 0",textAlign:"left"}},s.createElement("span",null,this.props.info," ",a?null:s.createElement("span",{className:"facolor-fee"},"(",s.createElement(n.Z,{amount:t.amount,asset:t.asset_id})," ","fee)")),!r&&this.props.expiration&&s.createElement(k,{id:e,expiration:o,style:{paddingTop:5,fontSize:"0.85rem",paddingBottom:"0.5rem",display:"block"}}))}}class A extends s.Component{state={label_color:"info"};static defaultProps={op:[],current:"",block:null,hideDate:!1,hideFee:!1,hideOpLabel:!1,csvExportMode:!1,collapsed:!0};static propTypes={op:g().array.isRequired,current:g().string,block:g().number,hideDate:g().bool,hideFee:g().bool,csvExportMode:g().bool,collapsed:g().bool};linkToAccount(e){return e?d.Z.is_object_id(e)?s.createElement(u.Z,{account:e}):s.createElement(r.rU,{to:`/account/${e}/overview`},e):s.createElement("span",null,"-")}linkToAsset(e){return e?d.Z.is_object_id(e)?s.createElement(p.Z,{asset:e}):s.createElement(r.rU,{to:`/asset/${e}`},e):s.createElement("span",null,"-")}changeColor=e=>{const{label_color:t}=this.state;t!==e&&this.setState({label_color:e})};render(){let{op:e,proposer:t,block:a,hideExpiration:r,index:o,csvExportMode:i}=this.props;const{label_color:l}=this.state;let c=null,u=null;if(u=(0,b.Z)(w[e[0]],this.props,{fromComponent:"proposed_operation",linkToAccount:this.linkToAccount,linkToAsset:this.linkToAsset,changeColor:this.changeColor}),t&&(u=s.createElement("div",{className:"inline-block"},0==o?s.createElement("div",{style:{paddingBottom:"0.5rem"}},s.createElement(f.Z,{string:"operation.proposal_create",keys:[{type:"account",value:t,arg:"account"}]})):null,s.createElement("div",{style:{marginLeft:"0.5rem"}},u))),i){const t=h.ChainStore.getObject("2.0.0"),r=h.ChainStore.getObject("2.1.0"),o=d.Z.calc_block_time(a,t,r);return s.createElement("div",{key:this.props.key},s.createElement("div",null,o?o.toLocaleString():""),s.createElement("div",null,w[e[0]]),s.createElement("div",null,u),s.createElement("div",null,s.createElement(n.Z,{amount:parseInt(e[1].fee.amount,10),asset:e[1].fee.asset_id})))}return c=u?s.createElement(v,{index:o,id:this.props.id,block:a,type:e[0],color:l,fee:e[1].fee,hideDate:this.props.hideDate,hideFee:this.props.hideFee,hideOpLabel:this.props.hideOpLabel,info:u,expiration:this.props.expiration,hideExpiration:r}):null,c||s.createElement("div",null)}}const E=A},85158:(e,t,a)=>{"use strict";a.d(t,{Z:()=>W});var s=a(67294),n=a(45697),r=a.n(n),o=a(21019),i=a(73727),l=a(58074),c=a.n(l),d=a(112),u=a.n(d),p=a(94184),h=a.n(p),m=a(62254),g=a(86635),b=a.n(g),f=a(13973),y=a(76660),_=a(3841),w=a(38715),k=a(33951),v=a(17315),A=a.n(v),E=a(91684),x=a(79618),S=a(56934),C=a(53528),T=a(30806),B=a(87913),z=a(30381),P=a.n(z),N=(a(66261),a(91410)),M=a(7581);function Z(){return Z=Object.assign||function(e){for(var t=1;ts.createElement(c(),Z({content:"boolean."+(e?"true":"false")},t));class D extends s.Component{shouldComponentUpdate(e){return e.type!==this.props.type}render(){let e=u().translate("transaction.trxTypes"),t=h()("txtlabel",this.props.color||"info");return s.createElement("tr",null,s.createElement("td",null,s.createElement("span",{className:t},this.props.txIndex>=0?s.createElement("span",null,"#",this.props.txIndex+1,": "):"",e[O[this.props.type]])),s.createElement("td",{className:"json-link",onClick:this.props.openJSONModal},s.createElement(y.Icon,{type:"file-search"}),s.createElement(c(),{component:"a",content:"transaction.view_json"})))}}class R extends s.Component{render(){return s.createElement("span",null,this.props.children)}}class j extends s.Component{constructor(e){super(e),this.state={visible:!1}}openJSONModal=()=>{this.setState({visible:!0})};closeJSONModal=()=>{this.setState({visible:!1})};render(){const{operation:e}=this.props;let t=s.createElement("tr",null,s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.fee"})),s.createElement("td",null,e[1].fee.amount>0?s.createElement("span",null,s.createElement(o.Z,{color:"fee",amount:e[1].fee.amount,asset:e[1].fee.asset_id,style:{marginRight:"10px"}}),"  ",s.createElement(E.Z,{name:"question-circle",title:"settings.can_change_default_fee_asset_tooltip"})):s.createElement("label",null,s.createElement(c(),{content:"transfer.free"}))));const a=u().translate("transaction.trxTypes");return s.createElement("div",null,s.createElement("table",{style:{marginBottom:"1em"},className:"table op-table"},s.createElement("caption",null),s.createElement("tbody",null,s.createElement(D,{txIndex:this.props.txIndex,type:e[0],color:this.props.color,openJSONModal:this.openJSONModal}),this.props.children,t)),s.createElement(N.Z,{visible:this.state.visible,operation:e,title:a[O[e[0]]||""],hideModal:this.closeJSONModal}))}}class F extends s.Component{constructor(e){super(e),this.state={}}componentDidMount(){B.Z.rebuild()}linkToAccount(e){if(!e)return s.createElement("span",null,"-");let t=this.props.no_links?R:i.rU;return f.Z.is_object_id(e)?s.createElement(_.Z,{account:e}):s.createElement(t,{to:`/account/${e}/overview`},e)}linkToAsset(e){if(!e)return s.createElement("span",null,"-");let t=this.props.no_links?R:i.rU;return f.Z.is_object_id(e)?s.createElement(w.Z,{asset:e}):s.createElement(t,{to:`/asset/${e}`},e)}_toggleLock(e){e.preventDefault(),S.Z.unlock().then((()=>{this.forceUpdate()})).catch((()=>{}))}render(){let{trx:e}=this.props,t=null;t=[];let a=e.operations.length,n=null;return e.operations.forEach(((e,r)=>{let i=[],l=0,d="";switch(O[e[0]]){case"transfer":if(d="success",e[1].memo){let{text:t,isMine:a}=x.Z.decodeMemo(e[1].memo);n=t?s.createElement("td",{className:"memo",style:{wordBreak:"break-all"}},t):!t&&a?s.createElement("td",null,s.createElement(c(),{content:"transfer.memo_unlock"})," ",s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(E.Z,{name:"locked",title:"icons.locked.action"}))):null}i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,this.linkToAccount(e[1].from)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].to)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),n&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:"transfer.memo"})),n));break;case"limit_order_create":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"exchange.price"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:e[1].amount_to_sell.asset_id,quote_asset:e[1].min_to_receive.asset_id,base_amount:e[1].amount_to_sell.amount,quote_amount:e[1].min_to_receive.amount,noPopOver:!0})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"exchange.sell"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_sell.amount,asset:e[1].amount_to_sell.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(y.Tooltip,{placement:"left",title:u().translate("tooltip.buy_min")},s.createElement(c(),{component:"span",content:"exchange.buy_min"}))),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].min_to_receive.amount,asset:e[1].min_to_receive.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.seller"})),s.createElement("td",null,this.linkToAccount(e[1].seller)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.expiration"})),s.createElement("td",null,s.createElement(m.Ji,{value:P().utc(e[1].expiration),format:"full",timeZoneName:"short"}))));break;case"limit_order_cancel":case"short_order_cancel":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.order_id"})),s.createElement("td",null,e[1].order))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.fee_payer"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account))));break;case"call_order_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.funding_account"})),s.createElement("td",null,this.linkToAccount(e[1].funding_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.delta_collateral"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].delta_collateral.amount,asset:e[1].delta_collateral.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.delta_debt"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].delta_debt.amount,asset:e[1].delta_debt.asset_id})))),e[1].extensions&&e[1].extensions.target_collateral_ratio&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.collateral_target"})),s.createElement("td",null,e[1].extensions.target_collateral_ratio/1e3)));break;case"key_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.fee_payer"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.key"})),s.createElement("td",null,e[1].key_data[1])));break;case"account_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,this.linkToAccount(e[1].name)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.member.registrar"})),s.createElement("td",null,this.linkToAccount(e[1].registrar)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.member.lifetime_referrer"})),s.createElement("td",null,this.linkToAccount(e[1].referrer))));break;case"account_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,this.linkToAccount(e[1].account)))),e[1].new_options&&(e[1].new_options.voting_account?i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.proxy"})),s.createElement("td",null,this.linkToAccount(e[1].new_options.voting_account)))):(console.log("num witnesses: ",e[1].new_options.num_witness),console.log("===============> NEW: ",e[1].new_options),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.proxy"})),s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.no_proxy"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.num_committee"})),s.createElement("td",null,e[1].new_options.num_committee))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.num_witnesses"})),s.createElement("td",null,e[1].new_options.num_witness))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.votes"})),s.createElement("td",null,JSON.stringify(e[1].new_options.votes))))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.memo_key"})),s.createElement("td",null,e[1].new_options.memo_key.substring(0,10)+"...")))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.common_options"})),s.createElement("td",null,s.createElement(b(),{data:e[1],search:!1}))));break;case"account_whitelist":let t;for(var p=0;p{a.push(s.createElement("div",null,this.linkToAccount(e),s.createElement("br",null)))})),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.asset_update"})),s.createElement("td",null,this.linkToAsset(e[1].asset_to_update)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.new_producers"})),s.createElement("td",null,a)));break;case"asset_issue":if(d="warning",e[1].memo){let{text:t,isMine:a}=x.Z.decodeMemo(e[1].memo);n=t?s.createElement("td",null,t):!t&&a?s.createElement("td",null,s.createElement(c(),{content:"transfer.memo_unlock"})," ",s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(E.Z,{name:"locked",title:"icons.locked.action"}))):null}i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.assets.issuer"})),s.createElement("td",null,this.linkToAccount(e[1].issuer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.asset_issue"})),s.createElement("td",null,s.createElement(o.Z,{style:{fontWeight:"bold"},amount:e[1].asset_to_issue.amount,asset:e[1].asset_to_issue.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].issue_to_account)))),n&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:"transfer.memo"})),n));break;case"asset_burn":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].payer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_burn.amount,asset:e[1].amount_to_burn.asset_id}))));break;case"asset_fund_fee_pool":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].from_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount,asset:"1.3.0"}))));break;case"asset_settle":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].amount.asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id}))));break;case"asset_publish_feed":d="warning";let{feed:r}=e[1];i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.publisher"})),s.createElement("td",null,this.linkToAccount(e[1].publisher)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.price_feed.maximum_short_squeeze_ratio"})),s.createElement("td",null,(r.maximum_short_squeeze_ratio/1e3).toFixed(2)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.price_feed.maintenance_collateral_ratio"})),s.createElement("td",null,(r.maintenance_collateral_ratio/1e3).toFixed(2)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"markets.core_rate"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:r.core_exchange_rate.base.asset_id,quote_asset:r.core_exchange_rate.quote.asset_id,base_amount:r.core_exchange_rate.base.amount,quote_amount:r.core_exchange_rate.quote.amount,noPopOver:!0})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.feed_price"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:M.Z.extractRawFeedPrice(r).base.asset_id,quote_asset:M.Z.extractRawFeedPrice(r).quote.asset_id,base_amount:M.Z.extractRawFeedPrice(r).base.amount,quote_amount:M.Z.extractRawFeedPrice(r).quote.amount,noPopOver:!0}))));break;case"committee_member_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.committee_member.title"})),s.createElement("td",null,this.linkToAccount(e[1].committee_member_account))));break;case"witness_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.witness"})),s.createElement("td",null,this.linkToAccount(e[1].witness_account))));break;case"witness_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.witness"})),s.createElement("td",null,this.linkToAccount(e[1].witness_account)))),e[1].new_url&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.new_url"})),s.createElement("td",null,s.createElement("a",{href:e[1].new_url,target:"_blank",rel:"noopener noreferrer"},e[1].new_url))));break;case"balance_claim":d="success";let T=e[1].balance_to_claim.substring(5);i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.claimed"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].total_claimed.amount,asset:e[1].total_claimed.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.deposit_to"})),s.createElement("td",null,this.linkToAccount(e[1].deposit_to_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.balance_id"})),s.createElement("td",null,"#",T))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.balance_owner"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].balance_owner_key.substring(0,10),"...")));break;case"vesting_balance_withdraw":d="success",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].owner)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id}))));break;case"transfer_to_blind":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,this.linkToAccount(e[1].from)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.blinding_factor"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].blinding_factor))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.outputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].outputs[0],search:!1}))));break;case"transfer_from_blind":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].to)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.blinding_factor"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].blinding_factor))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.inputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].inputs[0],search:!1}))));break;case"blind_transfer":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.inputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].inputs[0],search:!1})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.outputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].outputs[0],search:!1}))));break;case"proposal_create":var h=new Date(e[1].expiration_time+"Z"),g=void 0!==e[1].review_period_seconds,v=g?h.getTime()-1e3*e[1].review_period_seconds:null;i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.review_period"})),s.createElement("td",null,g?s.createElement(m.Ji,{value:new Date(v),format:"full"}):s.createElement("span",null,"—")))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.expiration_time"})),s.createElement("td",null,s.createElement(m.Ji,{value:h,format:"full"}))));var S=[];for(let t of e[1].proposed_ops)S.push(t.op);let B=e[1].proposed_ops.map(((e,t)=>s.createElement(C.Z,{key:t,index:t,op:e.op,inverted:!1,hideFee:!0,hideOpLabel:!0,hideDate:!0,proposal:!0,collapsed:!0})));i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.proposed_operations"})),s.createElement("td",null,B))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account))));break;case"proposal_update":let z=["active_approvals_to_add","active_approvals_to_remove","owner_approvals_to_add","owner_approvals_to_remove","key_approvals_to_add","key_approvals_to_remove"];i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.id"})),s.createElement("td",null,e[1].proposal))),z.forEach((t=>{e[1][t].length&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:`proposal.update.${t}`})),s.createElement("td",null,e[1][t].map((e=>s.createElement("div",{key:e},this.linkToAccount(e)))))))}));break;case"proposal_delete":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_delete.using_owner_authority"})),s.createElement("td",null,s.createElement(L,{value:e[1].using_owner_authority})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.id"})),s.createElement("td",null,e[1].proposal)));break;case"asset_claim_fees":d="success",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.claimed"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_claim.amount,asset:e[1].amount_to_claim.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.deposit_to"})),s.createElement("td",null,this.linkToAccount(e[1].issuer))));break;case"asset_reserve":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"modal.reserve.from"})),s.createElement("td",null,this.linkToAccount(e[1].payer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].amount_to_reserve.asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_reserve.amount,asset:e[1].amount_to_reserve.asset_id}))));break;case"worker_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.title"})),s.createElement("td",null,e[1].name)));let N=u().localize(new Date(e[1].work_begin_date),{type:"date"}),Z=u().localize(new Date(e[1].work_end_date),{type:"date"});i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.period"})),s.createElement("td",null,N," - ",Z))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.daily_pay"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].daily_pay,asset:"1.3.0"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.website"})),s.createElement("td",null,f.Z.sanitize(e[1].url)))),e[1].initializer[1]&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.vesting_pay"})),s.createElement("td",null,e[1].initializer[1].pay_vesting_period_days)));break;case"asset_claim_pool":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,s.createElement(w.Z,{asset:e[1].asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_claim.amount,asset:e[1].amount_to_claim.asset_id}))));break;case"asset_update_issuer":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].new_issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,s.createElement(w.Z,{asset:e[1].asset_to_update}))));break;case"bid_collateral":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].bidder})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.collateral_bid.collateral"})),s.createElement("td",null,s.createElement(o.Z,{asset:e[1].additional_collateral.asset_id,amount:e[1].additional_collateral.amount})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.collateral_bid.debt"})),s.createElement("td",null,s.createElement(o.Z,{asset:e[1].debt_covered.asset_id,amount:e[1].debt_covered.amount}))));break;case"htlc_create":const I=this.props.block?this.props.block.timestamp.getTime():(new Date).getTime();let O=new Date(I+1e3*e[1].claim_period_seconds);i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].from})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].to})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.claim_period_due"})),s.createElement("td",null,s.createElement(m.Ji,{value:O,format:"full"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.preimage_hash"})),s.createElement("td",null,s.createElement(y.Tooltip,{placement:"bottom",title:u().translate("htlc.preimage_hash_explanation")},s.createElement("span",null,"("+e[1].preimage_size+", "+e[1].preimage_hash[0]+"): "+e[1].preimage_hash[1])))));break;case"htlc_redeem":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.id"})),s.createElement("td",null,s.createElement("span",null,e[1].htlc_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.redeemer"})),s.createElement("td",null,this.linkToAccount(e[1].redeemer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.preimage"})),s.createElement("td",null,this.linkToAccount(e[1].preimage))));break;case"htlc_extend":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.id"})),s.createElement("td",null,s.createElement("span",null,e[1].htlc_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.update_issuer"})),s.createElement("td",null,this.linkToAccount(e[1].update_issuer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.seconds_to_add"})),s.createElement("td",null,s.createElement("span",null,e[1].seconds_to_add))));break;default:console.log("unimplemented tx op:",e),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.op"})),s.createElement("td",null,s.createElement(b(),{data:e,search:!1}))))}t.push(s.createElement(j,{txIndex:this.props.index,key:r,opCount:a,index:r,color:d,operation:e},i))})),s.createElement("div",null,t)}}F.defaultProps={no_links:!1},F.propTypes={trx:r().object.isRequired,index:r().number.isRequired,no_links:r().bool};const W=F},17997:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(76660),r=a(34961);function o(){return o=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>y});var s=a(67294),n=a(45697),r=a.n(n),o=a(94184),i=a.n(o),l=a(82050),c=a(32793),d=a(30806),u=a(112),p=a.n(u),h=a(59851),m=a(87913),g=a(76660);function b(){return b=Object.assign||function(e){for(var t=1;te===this.state.value));this.props.accountShouldNotExist&&t&&(e=p().translate("account.name_input.name_is_taken")),this.props.accountShouldExist&&!t&&(e=p().translate("account.name_input.not_found"))}return e}validateAccountName(e){this.state.error=""===e?"Please enter valid account name":d.ChainValidation.is_account_name_error(e),this.state.warning=null,this.props.cheapNameOnly?this.state.error||d.ChainValidation.is_cheap_name(e)||(this.state.error=p().translate("account.name_input.premium_name_faucet")):this.state.error||d.ChainValidation.is_cheap_name(e)||(this.state.warning=p().translate("account.name_input.premium_name_warning")),this.setState({value:e,error:this.state.error,warning:this.state.warning}),this.props.onChange&&this.props.onChange({value:e,valid:!this.getError()}),(this.props.accountShouldExist||this.props.accountShouldNotExist)&&l.Z.accountSearch(e)}handleChange(e){e.preventDefault(),e.stopPropagation();var t=e.target.value.toLowerCase();t=(t=t.match(/[a-z0-9\.-]+/))?t[0]:"",this.setState({account_name:t}),this.validateAccountName(t)}onKeyDown(e){this.props.onEnter&&13===event.keyCode&&this.props.onEnter(e)}render(){let e=this.getError()||"",t=(i()("form-group","account-name",{"has-error":!1}),this.state.warning);return s.createElement(g.Form.Item,{label:this.props.label,help:e||t||"",validateStatus:e?"error":t?"warning":""},s.createElement(g.Input,{name:"username",id:"username",type:"text",ref:"input",autoComplete:"username",placeholder:this.props.placeholder,onChange:this.handleChange,onKeyDown:this.onKeyDown,value:this.state.account_name||this.props.initial_value}))}}class y extends s.Component{render(){return s.createElement(h.Z,{stores:[c.Z],inject:{searchAccounts:()=>c.Z.getState().searchAccounts}},s.createElement(f,b({ref:"nameInput"},this.props)))}}},47449:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(112),r=a.n(n),o=a(45697),i=a.n(o);class l extends s.Component{static propTypes={account_names:i().array,list_size:i().number,onChange:i().func,placeholder:i().string,center:i().bool,tabIndex:i().number,className:i().string};constructor(e){super(e),this.state={selected:null},this.default_placeholder=r().translate("account.select_placeholder")}componentDidMount(){}shouldComponentUpdate(e){return e.selected!==this.props.selected||e.list_size!==this.props.list_size||e.placeholder!==this.props.placeholder||e.account_names!==this.props.account_names}value(){return this.state.selected}reset(){this.setState({selected:null})}render(){var e=this.props.account_names,t=this.props.selected,a=this.props.placeholder||this.default_placeholder;a=this.props.list_size>1?s.createElement("option",{value:"",disabled:!0},a):s.createElement("option",{value:""},a);var n=0;return s.createElement("select",{ref:"account-selector",key:t,defaultValue:t,className:"form-control account-select bts-select "+(this.props.className||""),onChange:this._onAccountChange.bind(this),style:this.props.center?{margin:"0 auto"}:null,tabIndex:this.props.tabIndex},a,e.sort().map((e=>e&&""!==e?s.createElement("option",{key:n++,value:e},e):null)))}_onAccountChange(e){e.preventDefault();let t=e.target.value;this._selectAccount(t)}_selectAccount(e){e===(this.props.placeholder||this.default_placeholder)&&(e=null),this.setState({selected:e}),this.props.onChange&&this.props.onChange(e)}}},81082:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(67294),n=a(45697),r=a.n(n),o=a(94184),i=a.n(o),l=a(58074),c=a.n(l),d=a(23725),u=a.n(d),p=a(59485);class h extends s.Component{static propTypes={onChange:r().func,onEnter:r().func,confirmation:r().bool,wrongPassword:r().bool,noValidation:r().bool,noLabel:r().bool,passwordLength:r().number,checkStrength:r().bool,value:r().string,copy:r().bool,visible:r().bool,readonly:r().bool};static defaultProps={confirmation:!1,wrongPassword:!1,noValidation:!1,noLabel:!1,passwordLength:8,checkStrength:!1,value:"",copy:!1,visible:!1,readonly:!1};constructor(e){super(),this.handleChange=this.handleChange.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.state={value:e.value||"",error:null,wrong:!1,doesnt_match:!1}}value(){let e=this.refs.password;return e?e.value:""}clear(){this.refs.password.value="",this.props.confirmation&&(this.refs.confirm_password.value="")}focus(){this.refs.password.focus()}valid(){return!(this.state.error||this.state.wrong||this.state.doesnt_match)&&this.state.value.length>=this.props.passwordLength}handleChange(e){e.preventDefault(),e.stopPropagation();const t=!this.props.confirmation||this.refs.confirm_password.value,a=this.refs.password.value,s=!!this.props.confirmation&&t&&a!==t;let n,r=0;this.props.checkStrength&&(r=this.state.value.length>100?{score:4}:u().load({sync:!0})(this.state.value||""),n=Math.min(5,r.score+Math.floor(this.state.value.length/(1.5*this.props.passwordLength))));let o={valid:!this.state.error&&!this.state.wrong&&!(this.props.confirmation&&s)&&t&&a.length>=this.props.passwordLength,value:a,score:n,doesnt_match:s};this.props.onChange&&this.props.onChange(o),this.setState(o)}onKeyDown(e){this.props.onEnter&&13===e.keyCode&&this.props.onEnter(e)}render(){let{score:e,value:t}=this.state;const{copy:a,visible:n,readonly:r}=this.props;let o=null,l=null;this.state.wrong||this.props.wrongPassword?o=s.createElement("div",null,s.createElement(c(),{content:"wallet.pass_incorrect"})):this.state.error&&(o=s.createElement("div",null,this.state.error)),!this.props.noValidation&&!o&&this.state.value.length>0&&this.state.value.length{"use strict";a.d(t,{Z:()=>k});var s=a(67294),n=a(112),r=a.n(n),o=a(58074),i=a.n(o),l=a(89449),c=a(76660),d=a(39014),u=a(23316),p=a(60567),h=a(55294),m=a(41737),g=a(45697),b=a.n(g);a(23037);class f extends s.Component{static propTypes={showSalutation:b().bool};static defaultProps={showSalutation:!1};constructor(e){super(e)}render(){return s.createElement(s.Fragment,null,this.props.showSalutation&&s.createElement(i(),{content:"external_service_provider.welcome.hello",component:"h2"}),this.props.showSalutation&&s.createElement(i(),{content:"external_service_provider.welcome.first_line",component:"p"}),s.createElement("p",null,s.createElement(i(),{content:"external_service_provider.welcome.explanation_dex"}),s.createElement(i(),{content:"external_service_provider.welcome.explanation_service_providers"})),s.createElement("p",null,s.createElement(i(),{content:"external_service_provider.welcome.explanation_what_to_do"}),s.createElement(i(),{content:"external_service_provider.welcome.explanation_later"})))}}const y=f;var _=a(91822);class w extends s.Component{constructor(e){super(e),this.state={showIntroduction:!0,onChainConfig:{}}}onSubmit(){this.onClose()}onNone(){h.Z.changeSetting({setting:"filteredServiceProviders",value:[]}),this.onClose()}next(){this.setState({showIntroduction:!1})}onClose(){this.props.hasSeenExternalServices||h.Z.changeViewSetting({hasSeenExternalServices:!0}),(0,m.xA)(),this.props.hideModal()}_getRowHeaders(){return[{key:"name",title:r().translate("external_service_provider.selector.name"),render:e=>this.state.onChainConfig[e.key]?s.createElement(c.Tooltip,{title:"This gateway has been deactivated or is not functioning correctly. "+(this.state.onChainConfig[e.key].comment||"This can be due to several reasons.")},s.createElement("span",{style:{whiteSpace:"nowrap"}},e.name,s.createElement(c.Icon,{style:{marginLeft:"0.5rem"},type:"warning"}))):e.name},{key:"type",title:r().translate("external_service_provider.selector.type"),align:"left",render:e=>"bridge"==e.type?r().translate("external_service_provider.bridge.short"):s.createElement("div",null,s.createElement("span",null,r().translate("external_service_provider.gateway.short")),s.createElement("br",null),s.createElement("span",null,r().translate("external_service_provider.gateway.prefix"),": "+e.prefix))},{key:"landing",title:r().translate("external_service_provider.selector.landing"),align:"left",render:e=>e.landing?e.landing.startsWith("http")?s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e.landing},"External Link"):s.createElement("span",null,e.landing):"-"},{key:"wallet",title:r().translate("external_service_provider.selector.wallet"),align:"left",render:e=>e.wallet?e.wallet.startsWith("http")?s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e.wallet},"External Link"):s.createElement("span",null,e.wallet):"-"}]}_getReferrerLink(){return(0,p.dM)().referrer?"?r="+(0,p.dM)().referrer:""}async _checkOnChainConfig(){const e=this._getRows();let t={};for(let a=0;athis.state.onChainConfig[e.key]?void 0:e.key))}_getRows(){const e=Object.values(u.bg).map((e=>({key:e.id,type:"gateway",name:e.name,prefix:e.id,landing:e.landing?e.landing:void 0,wallet:e.wallet&&e.wallet.startsWith("http")?e.wallet+this._getReferrerLink():e.wallet,isEnabled:e.isEnabled}))),t=Object.values(u.$S).map((e=>({key:e.id,type:"bridge",name:e.name,landing:e.landing?e.landing:void 0,wallet:e.wallet&&e.wallet.startsWith("http")?e.wallet+this._getReferrerLink():e.wallet,isEnabled:e.isEnabled})));return e.concat(t).filter((e=>(0,p.rC)(e.key))).sort(((e,t)=>e.name.localeCompare(t.name)))}componentDidMount(){this._checkOnChainConfig()}render(){const e=this.state.showIntroduction?s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(c.Button,{key:"cancel",onClick:this.onClose.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.not_now"})),s.createElement(c.Button,{key:"submit",type:"primary",onClick:this.next.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.choose_services"}))):s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(c.Tooltip,{title:r().translate("external_service_provider.welcome.explanation_later")},s.createElement(c.Button,{key:"cancel",onClick:this.onClose.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.cancel"}))),s.createElement(c.Button,{key:"none",onClick:this.onNone.bind(this),type:"primary"},s.createElement(i(),{component:"span",content:"external_service_provider.selector.use_none"})),s.createElement(c.Button,{key:"submit",type:"primary",onClick:this.onSubmit.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.use_selected"}))),t={onChange:(e,t)=>{e.length==this._getRows().length?h.Z.changeSetting({setting:"filteredServiceProviders",value:["all"]}):h.Z.changeSetting({setting:"filteredServiceProviders",value:e})},getCheckboxProps:e=>({disabled:!!this.state.onChainConfig[e.key]&&!this.state.onChainConfig[e.key].enabled,key:e.key}),selectedRowKeys:1==this.props.filteredServiceProviders.length&&"all"==this.props.filteredServiceProviders[0]?this._getEnabledRowKeys():this.props.filteredServiceProviders};return s.createElement(c.Modal,{visible:this.props.visible,overlay:!0,title:s.createElement(i(),{content:"external_service_provider.selector.title"}),closable:!1,footer:[e],width:640},this.state.showIntroduction?s.createElement(y,{showSalutation:!this.props.hasSeenExternalServices}):s.createElement(s.Fragment,null,s.createElement(c.Collapse,null,s.createElement(c.Collapse.Panel,{header:"What is a Gateway?",showArrow:!1},s.createElement(i(),{component:"p",content:"external_service_provider.gateway.description"}))),s.createElement(c.Collapse,{style:{marginTop:"1rem"}},s.createElement(c.Collapse.Panel,{header:"What is a Bridge?",showArrow:!1},s.createElement(i(),{component:"p",content:"external_service_provider.bridge.description"}))),s.createElement("div",{style:{marginTop:"1rem"}},s.createElement(i(),{content:"external_service_provider.selector.table_description"})),s.createElement(c.Table,{style:{marginTop:"1rem"},columns:this._getRowHeaders(),pagination:{hideOnSinglePage:!0,pageSize:20},dataSource:this._getRows(),footer:null,rowSelection:t})))}}const k=w=(0,l.$)(w,{listenTo:()=>[d.Z],getProps:()=>({filteredServiceProviders:d.Z.getState().settings.get("filteredServiceProviders",[]),hasSeenExternalServices:d.Z.getState().viewSettings.get("hasSeenExternalServices",!1)})})},91684:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(67294),n=a(112),r=a.n(n),o=a(45697),i=a.n(o);let l=["photo-camera","adjust","alarm","assets","autolock","barter","borrow","checkmark-circle","chevron-down","clippy","clock","cog","cogs","coming_soon","connected","connect","cross-circle","dashboard","delete","deposit","disconnected","direct_debit","dollar-green","dollar","download","excel","eye","eye-striked","fi-star","folder","grouping","hamburger-x","hamburger","htlc","hourglass","key","list","locked","minus-circle","news","plus-circle","power","question-circle","server","settle","share","showcases","shuffle","text","thumb-tack","thumb-untack","thumbs-up","times","trade","transfer","unlocked","user","voting","warning","withdraw","filter","info-circle-o","zoom","people","fire","question-in-circle","attention","checkmark","paperclip","wallet","prediction","prediction-large","merchant","insight","create_account","swap","instant-trade","poolmart","arrow-down-1","arrow-up-down","pools","qr-scan","deployment-unit"],c={};for(let e of l)c[e]=a(34031)(`./${e}.svg`);const d=c;class u extends s.Component{shouldComponentUpdate(e){return e.className!==this.props.className||e.name!==this.props.name||e.title!==this.props.title||e.size!==this.props.size}render(){let e="icon ";if("warning"!==this.props.name&&(e+=this.props.name),this.props.size&&(e+=" icon-"+this.props.size),this.props.className&&(e+=" "+this.props.className),null!=this.props.title){let t=this.props.title;return"string"==typeof t&&t.indexOf(".")>0&&(t=r().translate(t)),s.createElement("span",{title:t,className:e,style:this.props.style||{},dangerouslySetInnerHTML:{__html:d[this.props.name]},onClick:this.props.onClick})}return s.createElement("span",{className:e,style:this.props.style||{},dangerouslySetInnerHTML:{__html:d[this.props.name]},onClick:this.props.onClick})}}u.propTypes={name:i().string.isRequired,title:i().string,size:i().oneOf(["1x","1_5x","2x","3x","4x","5x","10x"]),inverse:i().bool,className:i().string},u.defaultProps={title:null};const p=u},52531:(e,t,a)=>{"use strict";a.d(t,{Z:()=>i});var s=a(67294),n=a(45697),r=a.n(n);class o extends s.Component{static propTypes={type:r().string,loadingText:r().string};static defaultProps={type:null,loadingText:null};constructor(e){super(e),this.state={progress:0}}render(){switch(this.props.type){case"three-bounce":return s.createElement("div",{className:"three-bounce"},s.createElement("div",{className:"bounce1"}),s.createElement("div",{className:"bounce2"}),s.createElement("div",{className:"bounce3"}));case"circle":return s.createElement("div",{className:"circle-wrapper"},s.createElement("div",{className:"circle1 circle"}),s.createElement("div",{className:"circle2 circle"}),s.createElement("div",{className:"circle3 circle"}),s.createElement("div",{className:"circle4 circle"}),s.createElement("div",{className:"circle5 circle"}),s.createElement("div",{className:"circle6 circle"}),s.createElement("div",{className:"circle7 circle"}),s.createElement("div",{className:"circle8 circle"}),s.createElement("div",{className:"circle9 circle"}),s.createElement("div",{className:"circle10 circle"}),s.createElement("div",{className:"circle11 circle"}),s.createElement("div",{className:"circle12 circle"}));case"circle-small":return s.createElement("div",{className:"circle-wrapper",style:{height:"15px",minHeight:"15px"}},s.createElement("div",{className:"circle1 circle"}),s.createElement("div",{className:"circle2 circle"}),s.createElement("div",{className:"circle3 circle"}),s.createElement("div",{className:"circle4 circle"}),s.createElement("div",{className:"circle5 circle"}),s.createElement("div",{className:"circle6 circle"}),s.createElement("div",{className:"circle7 circle"}),s.createElement("div",{className:"circle8 circle"}),s.createElement("div",{className:"circle9 circle"}),s.createElement("div",{className:"circle10 circle"}),s.createElement("div",{className:"circle11 circle"}),s.createElement("div",{className:"circle12 circle"}));default:var e="loading-overlay";return this.progress>0&&(e+=" with-progress"),s.createElement("div",{className:e},s.createElement("div",{className:"loading-panel"},this.props.loadingText&&s.createElement("div",{className:"text-center",style:{paddingTop:"10px",color:"black"}},this.props.loadingText),s.createElement("div",{className:"spinner"},s.createElement("div",{className:"bounce1"}),s.createElement("div",{className:"bounce2"}),s.createElement("div",{className:"bounce3"})),s.createElement("div",{className:"progress-indicator"},s.createElement("span",null,this.state.progress))),!!this.props.children&&s.createElement("div",{className:"loading-panel--child"},this.props.children))}}}const i=o},4207:(e,t,a)=>{"use strict";a.d(t,{Z:()=>X});var s=a(67294),n=a(89449),r=a(112),o=a.n(r),i=a(32793),l=a(73727),c=a(58074),d=a.n(c),u=a(58466),p=a(54453),h=a(55294),m=a(56934),g=a(39014),b=a(51477),f=a(94184),y=a.n(f),_=a(82050),w=a(60830),k=a(81082),v=a(41075),A=a(47449),E=a(69730),x=a(52531),S=a(28969),C=a(30806),T=a(81038),B=a(87913),z=a(13973),P=a(5977),N=a(66261),M=a(60567),Z=a(76660);class I extends s.Component{constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrar_account:null,loading:!1,hide_refcode:!0,show_identicon:!1,step:1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.accountNameInput=null,this.scrollToInput=this.scrollToInput.bind(this)}UNSAFE_componentWillMount(){h.Z.changeSetting({setting:"passwordLogin",value:!1})}componentDidMount(){B.Z.rebuild(),this.scrollToInput()}shouldComponentUpdate(e,t){return!z.Z.are_equal_shallow(t,this.state)}isValid(){let e=0===i.Z.getMyAccounts().length,t=this.state.validAccountName;return v.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrar_account),t}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.show_identicon||(t.show_identicon=!0),this.setState(t)}onPasswordChange(e){this.setState({validPassword:e.valid})}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(E.Z.unlisten(this.onFinishConfirm),E.Z.reset(),(0,C.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{console.log("onFinishConfirm"),this.props.history.push("/wallet/backup/create?newAccount=true")})))}scrollToInput(){N.OK.scrollTo("scrollToInput",{duration:1500,delay:100,smooth:!0,containerId:"accountForm"})}createAccount(e){let t=this.refs.refcode?this.refs.refcode.value():null,a=i.Z.getState().referralAccount;m.Z.unlock().then((()=>{this.setState({loading:!0}),_.Z.createAccount(e,this.state.registrar_account,a||this.state.registrar_account,0,t).then((()=>{this.state.registrar_account?((0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1})})),E.Z.listen(this.onFinishConfirm)):(0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1})}))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&(a=t.remote_ip[0]),Z.Notification.error({message:o().translate("notifications.account_create_failure",{account_name:e,error_msg:a})}),this.setState({loading:!1})}))})).catch((()=>{}))}createWallet(e){return S.Z.setWallet("default",e).then((()=>{console.log("Congratulations, your wallet was successfully created.")})).catch((e=>{console.log("CreateWallet failed:",e),Z.Notification.error({message:o().translate("notifications.account_wallet_create_failure",{error_msg:e})})}))}onSubmit(e){if(e.preventDefault(),!this.isValid())return;let t=this.accountNameInput.getValue();if(v.Z.getWallet())this.createAccount(t);else{let e=this.refs.password.value();this.createWallet(e).then((()=>this.createAccount(t)))}}onRegistrarAccountChange(e){this.setState({registrar_account:e})}_renderAccountCreateForm(){let{registrar_account:e}=this.state,t=i.Z.getMyAccounts(),a=0===t.length,n=v.Z.getWallet(),r=this.isValid(),c=!1,u=e?C.ChainStore.getAccount(e):null;u&&u.get("lifetime_referrer")==u.get("id")&&(c=!0);let p=y()("submit-button button no-margin",{disabled:!r||e&&!c});return s.createElement("form",{style:{maxWidth:"40rem"},onSubmit:this.onSubmit.bind(this),noValidate:!0,className:"create-account-wrapper"},s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},a?s.createElement(d(),{content:"wallet.create_w_a"}):s.createElement(d(),{content:"wallet.create_a"})),s.createElement(w.Z,{ref:e=>{e&&(this.accountNameInput=e.refs.nameInput)},cheapNameOnly:!!a,onChange:this.onAccountNameChange.bind(this),accountShouldNotExist:!0,placeholder:o().translate("wallet.account_public"),noLabel:!0}),n?null:s.createElement(k.Z,{ref:"password",confirmation:!0,onChange:this.onPasswordChange.bind(this),noLabel:!0,checkStrength:!0}),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow"},s.createElement("label",null,s.createElement(d(),{content:"account.pay_from"})),s.createElement(A.Z,{account_names:t,onChange:this.onRegistrarAccountChange.bind(this)}),e&&!c?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(d(),{content:"wallet.must_be_ltm"})):null),s.createElement("div",{className:"divider"}),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement("button",{style:{width:"100%"},className:p},s.createElement(d(),{content:"account.create_account"})),s.createElement("div",{style:{paddingTop:40}},s.createElement("label",null,s.createElement(l.rU,{to:"/existing-account"},s.createElement(d(),{content:"wallet.restore"}))),s.createElement("label",null,s.createElement(l.rU,{to:"/create-wallet-brainkey"},s.createElement(d(),{content:"settings.backup_brainkey"})))),!n||a?null:s.createElement("div",{style:{paddingTop:20}},s.createElement("label",null,s.createElement("a",{onClick:()=>{this.setState({step:3})}},s.createElement(d(),{content:"wallet.go_get_started"})))))}_renderAccountCreateText(){let e=v.Z.getWallet(),t=0===i.Z.getMyAccounts().length;return s.createElement("div",{className:"confirm-checks"},s.createElement("h4",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",paddingBottom:15,marginTop:0}},s.createElement(d(),{content:"wallet.wallet_browser"})),s.createElement("p",null,e?null:s.createElement(d(),{content:"wallet.has_wallet",wallet_name:(0,M.w)()})),s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.create_account_text"}),t?s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.first_account_paid"}):s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.not_first_account"}))}_renderBackup(){return s.createElement("div",{className:"backup-submit"},s.createElement("p",null,s.createElement(d(),{unsafe:!0,content:"wallet.wallet_crucial"})),s.createElement("div",{className:"divider"}),s.createElement(T.Yy,{noText:!0,downloadCb:this._onBackupDownload}))}_onBackupDownload=()=>{this.setState({step:3})};_renderBackupText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"footer.backup"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.wallet_move",unsafe:!0})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{unsafe:!0,content:"wallet.wallet_lose_warning"})))}_renderGetStarted(){return s.createElement("div",null,s.createElement("table",{className:"table"},s.createElement("tbody",null,s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_dashboard"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/"},s.createElement(d(),{content:"header.dashboard"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_account"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:`/account/${this.state.accountName}/overview`},s.createElement(d(),{content:"wallet.link_account"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_deposit"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/deposit-withdraw"},s.createElement(d(),{content:"wallet.link_deposit"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_transfer"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/transfer"},s.createElement(d(),{content:"wallet.link_transfer"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_settings"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/settings"},s.createElement(d(),{content:"header.settings"})))))))}_renderGetStartedText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.congrat"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_explore"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_header"})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{content:"wallet.tips_login"})))}render(){let{step:e}=this.state;return s.createElement("div",{className:"sub-content",id:"scrollToInput",name:"scrollToInput"},s.createElement("div",{style:{maxWidth:"95vw"}},1!==e?s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.step_"+e})):null,1===e?this._renderAccountCreateForm():2===e?this._renderBackup():this._renderGetStarted()),s.createElement("div",{style:{maxWidth:"95vw",paddingTop:"2rem"}},1===e?this._renderAccountCreateText():2===e?this._renderBackupText():this._renderGetStartedText()),s.createElement(l.rU,{to:"/"},s.createElement("button",{className:"button primary hollow"},s.createElement(d(),{content:"wallet.back"}))))}}I=(0,P.EN)(I);const O=(0,n.$)(I,{listenTo:()=>[i.Z],getProps:()=>({})});var q=a(45697),L=a.n(q),D=a(59851);function R(){return R=Object.assign||function(e){for(var t=1;te===this.state.value));this.props.accountShouldNotExist&&t&&(e=o().translate("account.name_input.name_is_taken")),this.props.accountShouldExist&&!t&&(e=o().translate("account.name_input.not_found"))}return e}validateAccountName(e){this.state.error=""===e?"Please enter valid account name":C.ChainValidation.is_account_name_error(e),this.state.warning=null,this.props.cheapNameOnly?this.state.error||C.ChainValidation.is_cheap_name(e)||(this.state.error=o().translate("account.name_input.premium_name_faucet")):this.state.error||C.ChainValidation.is_cheap_name(e)||(this.state.warning=o().translate("account.name_input.premium_name_warning")),this.setState({value:e,error:this.state.error,warning:this.state.warning}),this.props.onChange&&this.props.onChange({value:e,valid:!this.getError()}),(this.props.accountShouldExist||this.props.accountShouldNotExist)&&_.Z.accountSearch(e)}handleChange(e){e.preventDefault(),e.stopPropagation();var t=e.target.value.toLowerCase();t=(t=t.match(/[a-z0-9\.-]+/))?t[0]:"",this.setState({account_name:t}),this.validateAccountName(t)}onKeyDown(e){this.props.onEnter&&13===event.keyCode&&this.props.onEnter(e)}render(){let e=this.getError()||"",t=y()("form-group","account-name",{"has-error":!1}),a=this.state.warning;return s.createElement("div",{className:t},s.createElement("section",null,s.createElement("label",{className:"left-label"},this.props.placeholder),s.createElement("input",{name:"username",id:"username",type:"text",ref:"input",autoComplete:"username",placeholder:null,onChange:this.handleChange,onKeyDown:this.onKeyDown,value:this.state.account_name||this.props.initial_value})),s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},e),s.createElement("div",{style:{textAlign:"left"},className:"facolor-warning"},e?null:a))}}class F extends s.Component{render(){return s.createElement(D.Z,{stores:[i.Z],inject:{searchAccounts:()=>i.Z.getState().searchAccounts}},s.createElement(j,R({ref:"nameInput"},this.props)))}}var W=a(91684),U=a(59485);class H extends s.Component{constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrar_account:null,loading:!1,hide_refcode:!0,show_identicon:!1,step:1,showPass:!1,generatedPassword:("P"+C.key.get_random_key().toWif()).substr(0,45),confirm_password:"",understand_1:!1,understand_2:!1,understand_3:!1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.accountNameInput=null,this.scrollToInput=this.scrollToInput.bind(this)}UNSAFE_componentWillMount(){v.Z.getWallet()||h.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){B.Z.rebuild(),this.scrollToInput()}shouldComponentUpdate(e,t){return!z.Z.are_equal_shallow(t,this.state)}scrollToInput(){N.OK.scrollTo("scrollToInput",{duration:1500,delay:100,smooth:!0,containerId:"accountForm"})}isValid(){let e=0===i.Z.getMyAccounts().length,t=this.state.validAccountName;return v.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrar_account),t&&this.state.understand_1&&this.state.understand_2}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.show_identicon||(t.show_identicon=!0),this.setState(t)}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(E.Z.unlisten(this.onFinishConfirm),E.Z.reset(),(0,C.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{this.props.history.push("/wallet/backup/create?newAccount=true")})))}_unlockAccount(e,t){h.Z.changeSetting({setting:"passwordLogin",value:!0}),v.Z.validatePassword(t,!0,e),m.Z.checkLock.defer()}createAccount(e,t){let a=this.refs.refcode?this.refs.refcode.value():null,s=i.Z.getState().referralAccount;this.setState({loading:!0}),_.Z.createAccountWithPassword(e,t,this.state.registrar_account,s||this.state.registrar_account,0,a).then((()=>{_.Z.setPasswordAccount(e),this.state.registrar_account?((0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1}),this._unlockAccount(e,t)})),E.Z.listen(this.onFinishConfirm)):(0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2}),this._unlockAccount(e,t)}))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&(a=t.remote_ip[0]),Z.Notification.error({message:o().translate("notifications.account_create_failure",{account_name:e,error_msg:a})}),this.setState({loading:!1})}))}onSubmit(e){if(e.preventDefault(),!this.isValid())return;let t=this.accountNameInput.getValue(),a=this.state.generatedPassword;this.createAccount(t,a)}onRegistrarAccountChange(e){this.setState({registrar_account:e})}_onInput(e,t){this.setState({[e]:"confirm_password"===e?t.target.value:!this.state[e],validPassword:"confirm_password"===e?t.target.value===this.state.generatedPassword:this.state.validPassword})}_renderAccountCreateForm(){let{registrar_account:e}=this.state,t=i.Z.getMyAccounts(),a=0===t.length,n=this.isValid(),r=!1,l=e?C.ChainStore.getAccount(e):null;l&&l.get("lifetime_referrer")==l.get("id")&&(r=!0);let c=y()("submit-button button no-margin",{disabled:!n||e&&!r});return s.createElement("div",{style:{textAlign:"left"}},s.createElement("form",{style:{maxWidth:"60rem"},onSubmit:this.onSubmit.bind(this),noValidate:!0},s.createElement(F,{ref:e=>{e&&(this.accountNameInput=e.refs.nameInput)},cheapNameOnly:!!a,onChange:this.onAccountNameChange.bind(this),accountShouldNotExist:!0,placeholder:o().translate("wallet.account_public"),noLabel:!0}),s.createElement("section",{className:"form-group"},s.createElement("label",{className:"left-label"},s.createElement(d(),{content:"wallet.generated"}),"  ",s.createElement(Z.Tooltip,{title:s.createElement("div",{dangerouslySetInnerHTML:{__html:o().translate("tooltip.generate")}})},s.createElement("span",{className:"tooltip"},s.createElement(W.Z,{name:"question-circle",title:"icons.question_circle"})))),s.createElement("div",{style:{paddingBottom:"0.5rem"}},s.createElement("span",{className:"inline-label"},s.createElement("textarea",{style:{padding:"0px",marginBottom:"0px"},rows:"3",readOnly:!0,disabled:!0,value:this.state.generatedPassword}),s.createElement(U.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top"})))),s.createElement("section",null,s.createElement("label",{className:"left-label"},s.createElement(d(),{content:"wallet.confirm_password"})),s.createElement("input",{type:"password",name:"password",id:"password",value:this.state.confirm_password,onChange:this._onInput.bind(this,"confirm_password")}),this.state.confirm_password&&this.state.confirm_password!==this.state.generatedPassword?s.createElement("div",{className:"has-error"},s.createElement(d(),{content:"wallet.confirm_error"})):null),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",onClick:this._onInput.bind(this,"understand_3")},s.createElement("label",{htmlFor:"checkbox-1",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-1",onChange:()=>{},checked:this.state.understand_3,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_3"})))),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",onClick:this._onInput.bind(this,"understand_1")},s.createElement("label",{htmlFor:"checkbox-2",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-2",onChange:()=>{},checked:this.state.understand_1,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_1"})))),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",style:{paddingBottom:"1.5rem"},onClick:this._onInput.bind(this,"understand_2")},s.createElement("label",{htmlFor:"checkbox-3",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-3",onChange:()=>{},checked:this.state.understand_2,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_2"})))),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow",style:{paddingTop:30}},s.createElement("label",null,s.createElement(d(),{content:"account.pay_from"})),s.createElement(A.Z,{account_names:t,onChange:this.onRegistrarAccountChange.bind(this)}),e&&!r?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(d(),{content:"wallet.must_be_ltm"})):null),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement("button",{style:{width:"100%"},className:c},s.createElement(d(),{content:"account.create_account"}))))}_renderAccountCreateText(){let e=0===i.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement("h4",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",paddingBottom:15}},s.createElement(d(),{content:"wallet.wallet_password"})),s.createElement(d(),{style:{textAlign:"left"},unsafe:!0,component:"p",content:"wallet.create_account_password_text"}),s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.create_account_text"}),e?null:s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.not_first_account"}))}_renderBackup(){return s.createElement("div",{className:"backup-submit"},s.createElement("p",null,s.createElement(d(),{unsafe:!0,content:"wallet.password_crucial"})),s.createElement("div",null,this.state.showPass?s.createElement("div",null,s.createElement("h5",null,s.createElement(d(),{content:"settings.password"}),":"),s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",textAlign:"center"}},this.state.generatedPassword)):s.createElement("div",{onClick:()=>{this.setState({showPass:!0})},className:"button"},s.createElement(d(),{content:"wallet.password_show"}))),s.createElement("div",{className:"divider"}),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{unsafe:!0,content:"wallet.password_lose_warning"})),s.createElement("div",{style:{width:"100%"},onClick:()=>{this.props.history.push("/")},className:"button"},s.createElement(d(),{content:"wallet.ok_done"})))}_renderGetStarted(){return s.createElement("div",null,s.createElement("table",{className:"table"},s.createElement("tbody",null,s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_dashboard"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/"},s.createElement(d(),{content:"header.dashboard"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_account"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:`/account/${this.state.accountName}/overview`},s.createElement(d(),{content:"wallet.link_account"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_deposit"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/deposit-withdraw"},s.createElement(d(),{content:"wallet.link_deposit"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_transfer"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/transfer"},s.createElement(d(),{content:"wallet.link_transfer"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_settings"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/settings"},s.createElement(d(),{content:"header.settings"})))))))}_renderGetStartedText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.congrat"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_explore_pass"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_header"})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{content:"wallet.tips_login"})))}render(){let{step:e}=this.state;return s.createElement("div",{className:"sub-content",id:"scrollToInput",name:"scrollToInput"},s.createElement("div",null,2===e?s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.step_"+e})):null,3===e?this._renderGetStartedText():null,1===e?s.createElement("div",null,this._renderAccountCreateForm()):2===e?this._renderBackup():this._renderGetStarted()))}}H=(0,P.EN)(H);const K=(0,n.$)(H,{listenTo:()=>[i.Z],getProps:()=>({})});var V=(0,M.R7)();class G extends s.Component{constructor(e){super(e),this.state={step:1,locales:g.Z.getState().defaults.locale,currentLocale:g.Z.getState().settings.get("locale")},this.unmounted=!1,this.handleLanguageSelect=this.handleLanguageSelect.bind(this)}UNSAFE_componentWillMount(){(0,p.Z)((e=>{this.unmounted||this.setState({incognito:e})}))}componentWillUnmount(){this.unmounted=!0}onSelect(e){this.props.history.push("/create-account/"+e)}handleLanguageSelect(e){b.Z.switchLocale(e),this.setState({currentLocale:e})}languagesFilter(e,t){return t.props.language.toLowerCase().indexOf(e.toLowerCase())>=0}render(){const e=a(112),t=s.createElement(Z.Select,{showSearch:!0,filterOption:this.languagesFilter,value:this.state.currentLocale,onChange:this.handleLanguageSelect,style:{width:"123px",marginBottom:"16px"}},this.state.locales.map((e=>s.createElement(Z.Select.Option,{key:e,language:o().translate("languages."+e)},o().translate("languages."+e)))));return s.createElement("div",{className:"grid-block align-center",id:"accountForm"},s.createElement("div",{className:"grid-block shrink vertical"},s.createElement("div",{className:"grid-content shrink text-center account-creation"},s.createElement("div",null,s.createElement("img",{src:V})),s.createElement("div",null,s.createElement(d(),{content:"header.create_account",component:"h4"})),s.createElement("div",null,s.createElement(d(),{content:"account.intro_text_title",component:"h4",wallet_name:(0,M.w)()}),s.createElement(d(),{unsafe:!0,content:"account.intro_text_1",component:"p"}),s.createElement("div",{className:"shrink text-center"},s.createElement("div",{className:"grp-menu-item overflow-visible account-drop-down"},s.createElement("div",{className:"grp-menu-item overflow-visible login-selector--language-select",style:{margin:"0 auto"},"data-intro":e.translate("walkthrough.language_flag")},s.createElement(Z.Row,{className:"login-selector--language-select--wrapper"},s.createElement(Z.Col,{span:4},s.createElement(Z.Icon,{type:"global",className:"login-selector--language-select--icon"})),s.createElement(Z.Col,{span:20},t)))))),s.createElement("div",{className:"grid-block account-login-options"},s.createElement(l.rU,{id:"account_login_button",to:(0,M.Sf)().includes("password")?"/create-account/password":"/create-account/wallet",className:"button primary","data-intro":e.translate("walkthrough.create_cloud_wallet")},s.createElement(d(),{content:"header.create_account"})),s.createElement("span",{className:"button hollow primary",onClick:()=>{h.Z.changeSetting.defer({setting:"passwordLogin",value:!0}),m.Z.unlock().catch((()=>{}))}},s.createElement(d(),{content:"header.unlock_short"}))),(0,M.Sf)().includes("wallet")&&s.createElement("div",{className:"additional-account-options"},s.createElement("h5",{style:{textAlign:"center"}},s.createElement(u.Z,{string:"account.optional.formatter",keys:[{type:"link",value:"/wallet/backup/restore",translation:"account.optional.restore_link",dataIntro:e.translate("walkthrough.restore_account"),arg:"restore_link"},{type:"link",value:"/create-account/wallet",translation:"account.optional.restore_form",dataIntro:e.translate("walkthrough.create_local_wallet"),arg:"restore_form"}]}))),(0,M.Sf)().includes("wallet")&&s.createElement(P.AW,{path:"/create-account/wallet",exact:!0,component:O}),(0,M.Sf)().includes("password")&&s.createElement(P.AW,{path:"/create-account/password",exact:!0,component:K}))))}}const X=(0,n.$)(G,{listenTo:()=>[i.Z],getProps:()=>({currentAccount:i.Z.getState().currentAccount||i.Z.getState().passwordAccount})})},70637:(e,t,a)=>{"use strict";a.d(t,{Z:()=>B});var s=a(67294),n=a(58074),r=a.n(n),o=a(13973),i=a(84224),l=a(30806),c=a(49554),d=a(59485),u=a(91684),p=a(52531),h=a(34961),m=a(93135),g=a(19490),b=a(23316),f=a(41737),y=a(45697),_=a.n(y),w=a(79361),k=a.n(w);class v extends s.Component{static assetTemplates={};static propTypes={asset:_().string.isRequired,address:_().string.isRequired,amount:_().number,message:_().string,size:_().number};static defaultProps={size:140};constructor(e){super(e),this.assetTemplates={BTS:{template:"{address}",params:[]},BTC:{template:"bitcoin:{address}",params:[{bind:"amount"},{bind:"message"}]},LTC:{template:"litecoin:{address}",params:[{bind:"amount"},{bind:"message"}]},ETH:{template:"ethereum:{address}",params:[{name:"value",bind:"amount"},{bind:"message"}]},BCH:{template:"bitcoincash:{address}",params:[{bind:"amount"},{bind:"message"}]}}}render(){let{size:e,asset:t}=this.props,a=this.props,n=this.assetTemplates[t];var r=!1;if(void 0!==n){let t=n.template.replace(/{([a-zA-Z0-9]+)}/g,(function(e,t){return t in a?a[t]:(r=!0,!0)}));if(r)return"";if(n.params.length>0){let e=[];n.params.forEach((function(t){var s="";void 0!==t.name&&(s=t.name),""==s&&(s=t.bind),void 0!==a[t.bind]&&e.push(s+"="+a[t.bind])})),e.length>0&&(t+="?"+e.join("&"))}return s.createElement("div",{className:"QR"},s.createElement(k(),{size:e,value:t}))}return""}}const A=v;var E=a(112),x=a.n(E),S=a(76660);function C(){return C=Object.assign||function(e){for(var t=1;te&&1==e.length?e[0]:null));a&&this._getDepositAddress(t,a)}_intitalState(){return{depositAddress:"",selectedAsset:"",selectedGateway:null,fetchingAddress:!1,backingAsset:null,gatewayStatus:b.bg,depositConfirmation:null}}_getDepositConfirmation(e){let t=null;e.confirmations&&e.confirmations.type&&("irreversible"===e.confirmations.type?t={type:"irreversible"}:"blocks"===e.confirmations.type&&e.confirmations.value&&(t={type:"blocks",value:e.confirmations.value})),this.setState({depositConfirmation:t})}_setDepositAsset(e){let t=g.PU.call(this);if(this.setState({coinToGatewayMapping:t}),!e)return;let a=e.split(".");if(this.state.gatewayStatus[a[0]]){let e=a[1],t=a[0];this._getDepositAddress(e,t)}else this.setState({selectedAsset:"BTS"})}_getDepositObject(e,t,a,s){let{props:n,state:r}=this,{account:o}=n,{gatewayStatus:i}=r;return{inputCoinType:i[a].useFullAssetName?t.toLowerCase():e.toLowerCase(),outputCoinType:t.toLowerCase(),outputAddress:o,url:s,stateCallback:this.addDepositAddress,selectedGateway:a}}_getDepositAddress(e,t){let{account:a}=this.props,{gatewayStatus:s}=this.state;this.setState({fetchingAddress:!0,depositAddress:null,gatewayStatus:f.GD.call(this,e)});let n,r=this.props.backedCoins.get(t.toUpperCase(),[]).find((t=>{let a=t.backingCoinType||t.backingCoin;return-1!==a.toUpperCase().indexOf("EOS.")&&(a=a.split(".")[1]),a.toUpperCase()===e.toUpperCase()}));if(!r)return console.log(t+" does not support "+e),void this.setState({depositAddress:null,selectedAsset:e,selectedGateway:t,fetchingAddress:!1});if(this._getDepositConfirmation(r),t&&e&&(!s[t].hasOwnProperty("depositCaching")||s[t].depositCaching)&&(n=this.deposit_address_cache.getCachedInputAddress(t.toLowerCase(),a,e.toLowerCase(),t.toLowerCase()+"."+e.toLowerCase())),s[t].simpleAssetGateway&&r.gatewayWallet){let e,o;if(r.memoType&&"btsid"===r.memoType){let n=l.ChainStore.getAccount(a,!1);e=s[t].fixedMemo.prepend_btsid+n.get("id").replace("1.2.","")+s[t].fixedMemo.append}if(r.memoType&&"tagid"===r.memoType){let e=l.ChainStore.getAccount(a,!1);o=s[t].fixedMemo.prepend_btsid+e.get("id").replace("1.2.","")+s[t].fixedMemo.append}else e=s[t].fixedMemo.prepend_default+a+s[t].fixedMemo.append,o=s[t].fixedMemo.prepend_default+a+s[t].fixedMemo.append;n={address:r.gatewayWallet,memo:e,tag:o},this.setState({depositAddress:n,fetchingAddress:!1})}else if(n)this.setState({depositAddress:n,fetchingAddress:!1});else{const e=r.backingCoinType||r.backingCoin,a=r.symbol;(0,i.Eu)(this._getDepositObject(e,a,t,s[t].baseAPI.BASE))}this.setState({selectedAsset:e,selectedGateway:t,backingAsset:r})}addDepositAddress(e){let{selectedGateway:t,selectedAsset:a}=this.state,{account:s}=this.props;this.deposit_address_cache.cacheInputAddress(t.toLowerCase(),s,a.toLowerCase(),t.toLowerCase()+"."+a.toLowerCase(),e.address,e.memo),this.setState({depositAddress:e,fetchingAddress:!1})}render(){let{selectedAsset:e,selectedGateway:t,depositAddress:a,fetchingAddress:n,gatewayStatus:i,backingAsset:l,depositConfirmation:c}=this.state,{account:h}=this.props,b=!0;null==t&&"BTS"==e&&(b=!1,a={address:h});let f=g.Mg.call(this),y=a&&"unknown"!==a&&!a.error,_=0;l&&(l.minAmount&&l.precision?_=o.Z.format_number(l.minAmount/o.Z.get_asset_precision(l.precision),l.precision,!1):l.gateFee&&(_=2*l.gateFee));const w=y?s.createElement(A,{size:140,address:b?a.address:h,asset:e}):s.createElement("div",null,s.createElement(u.Z,{size:"5x",name:"minus-circle",title:"icons.minus_circle.wrong_address"}),s.createElement("p",{className:"error-msg"},s.createElement(r(),{content:"modal.deposit.address_generation_error"})));return s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement("div",{className:"modal__body",style:{paddingTop:"0"}},s.createElement("div",{className:"container-row"},s.createElement("div",{className:"no-margin no-padding"},s.createElement("div",{className:"inline-label input-wrapper"},s.createElement(m.Z,{defaultValue:this.state.selectedAsset,onSelect:this.onAssetSelected.bind(this),selectOnBlur:!0})))),b&&e?g.uI.call(this,{selectedGateway:t,gatewayStatus:i,nAvailableGateways:f,error:a&&a.error,onGatewayChanged:this.onGatewayChanged.bind(this)}):null,n?s.createElement("div",{className:"container-row",style:{textAlign:"center",paddingTop:15}},s.createElement(p.Z,{type:"three-bounce"})):(!b||b&&t&&i[t].options.enabled)&&y&&!a.memo?s.createElement("div",{className:"container-row",style:{textAlign:"center"}},w):null,t&&i[t].options.enabled&&y?s.createElement("div",{className:"container-row"},s.createElement(r(),{className:"grid-block container-row maxDeposit",style:{fontSize:"1rem"},content:"gateway.min_deposit_warning_amount",minDeposit:_||0,coin:e}),s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.address,className:"copyIcon"})),s.createElement("div",{style:{wordBreak:"break-word"}},s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},content:"gateway.purchase_notice",inputAsset:e,outputAsset:t+"."+e}),s.createElement("div",{className:"modal__highlight",style:{fontSize:"0.9rem",wordBreak:"break-all"}},a.address))),a.memo?s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.memo,className:"copyIcon"})),s.createElement("div",null,s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},unsafe:!0,content:"gateway.purchase_notice_memo"}),s.createElement("div",{className:"modal__highlight",style:{wordBreak:"break-all"}},a.memo))):null,a.tag?s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.tag,className:"copyIcon"})),s.createElement("div",null,s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},unsafe:!0,content:"gateway.purchase_notice_tag"}),s.createElement("div",{className:"modal__highlight",style:{wordBreak:"break-all"}},a.tag))):null,c?s.createElement("div",{style:{fontSize:"0.8rem",fontWeight:"bold",fontStyle:"italic",paddingBottom:"0.3rem"}},"irreversible"===c.type?s.createElement(r(),{content:"gateway.gateway_deposit.confirmations.last_irreversible"}):"blocks"===c.type?s.createElement(r(),{content:"gateway.gateway_deposit.confirmations.n_blocks",blocks:c.value}):null):null,s.createElement(r(),{component:"span",style:{fontSize:"0.8rem"},content:"gateway.min_deposit_warning_asset",minDeposit:_||0,coin:e})):null,b?null:s.createElement("div",{className:"container-row deposit-directly"},s.createElement("h2",{className:"modal__highlight",style:{textAlign:"center"}},h),s.createElement(r(),{component:"h6",content:"modal.deposit.bts_transfer_description"}))))}}class B extends s.Component{constructor(){super(),this.state={open:!1}}show(){this.setState({open:!0},(()=>{this.props.hideModal()}))}onClose(){this.props.hideModal(),this.setState({open:!1})}render(){return s.createElement(S.Modal,{destroyOnClose:!0,title:this.props.account?x().translate("modal.deposit.header",{account_name:this.props.account}):x().translate("modal.deposit.header_short"),id:this.props.modalId,className:this.props.modalId,onCancel:this.onClose.bind(this),overlay:!0,footer:[s.createElement(S.Button,{key:"cancel",onClick:this.props.hideModal},x().translate("modal.close"))],visible:this.props.visible,noCloseBtn:!0},s.createElement(T,C({hideModal:this.props.hideModal},this.props,{open:this.props.visible})))}}},91410:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(67294),n=a(45697),r=a.n(n),o=a(112),i=a.n(o),l=a(76660),c=a(86635),d=a.n(c);function u({operation:e,visible:t,hideModal:a,title:n}){return s.createElement(l.Modal,{title:n||i().translate("explorer.block.op"),onCancel:a,overlay:!0,footer:[s.createElement(l.Button,{key:"cancel",onClick:a},i().translate("modal.close"))],visible:t},s.createElement(d(),{data:e,search:!1}))}u.propTypes={visible:r().bool.isRequired,hideModal:r().func.isRequired,operation:r().any,title:r().string},u.defaultProps={title:null,operation:[]}},42329:(e,t,a)=>{"use strict";a.d(t,{Z:()=>P});var s=a(69864),n=a(67294),r=a(88209),o=a.n(r),i=a(58074),l=a.n(i),c=a(30806),d=a(98485),u=a(73556),p=a(32793),h=a(108),m=a(69730),g=a(74366),b=a(81237),f=a(44015),y=a(82050),_=a(13973),w=a(112),k=a.n(w),v=a(89449),A=a(60567),E=a(76660),x=a(48764).Buffer;function S(){return S=Object.assign||function(e){for(var t=1;tn.createElement("div",{style:{display:"flex",justifyContent:"center"}},n.createElement("div",{style:{display:"grid",gridTemplateColumns:e.map((()=>"1fr")).join(" ")}},e)),T=()=>new g.xR({amount:0,asset_id:"1.3.0"});class B extends n.Component{constructor(e){super(e),this.state=this.getInitialState(e),this.nestedRef=null,this.onTrxIncluded=this.onTrxIncluded.bind(this),this._checkBalance=this._checkBalance.bind(this),o().subscribe("transaction_confirm_actions",((e,t)=>{"close"==t&&(this.setState({hidden:!1}),this.hideModal())})),this.showModal=this.showModal.bind(this),this.hideModal=this.hideModal.bind(this),this.onClose=this.onClose.bind(this)}showModal(){this.setState({isModalVisible:!0})}hideModal(){this.setState({isModalVisible:!1})}getInitialState(){return{isModalVisible:!1,from_name:"",to_name:"",from_account:null,to_account:null,orig_account:null,amount:"",asset_id:null,asset:null,memo:"",error:null,knownScammer:null,propose:!1,propose_account:"",feeAmount:T(),maxAmount:!1,hidden:!1}}show(){this.setState({open:!0,hidden:!1},(()=>{this.showModal(),this._initForm()}))}onClose(e=!0){o().unsubscribe("transaction_confirm_actions"),this.setState({open:!1,from_name:"",to_name:"",from_account:null,to_account:null,orig_account:null,amount:"",asset_id:null,asset:null,memo:"",error:null,knownScammer:null,propose:!1,propose_account:"",feeAmount:T(),maxAmount:!1,hidden:!1},(()=>{e&&this.hideModal()}))}onSubmit(e){e.preventDefault(),this.setState({error:null});const{asset:t}=this.state;let{amount:a}=this.state;const s=new g.xR({real:a,asset_id:t.get("id"),precision:t.get("precision")});this.setState({hidden:!0}),y.Z.transfer(this.state.from_account.get("id"),this.state.to_account.get("id"),s.getAmount(),t.get("id"),this.state.memo?new x(this.state.memo,"utf-8"):this.state.memo,this.state.propose?this.state.propose_account:null,this.state.feeAmount.asset_id).then((()=>{this.onClose(),m.Z.unlisten(this.onTrxIncluded),m.Z.listen(this.onTrxIncluded)})).catch((e=>{let t=e.message?e.message.split("\n")[1]||e.message:null;console.log("error: ",e,t),this.setState({error:t})}))}_initForm(){this.props.to_name!=this.props.from_name&&this.setState({to_name:this.props.to_name,to_account:c.ChainStore.getAccount(this.props.to_name)}),this.props.from_name&&this.setState({from_name:this.props.from_name,from_account:c.ChainStore.getAccount(this.props.from_name)});let{currentAccount:e}=this.props;if(this.state.from_name||this.setState({from_name:e}),this.props.asset_id&&this.state.asset_id!==this.props.asset_id){let e=c.ChainStore.getAsset(this.props.asset_id);e&&this.setState({asset_id:this.props.asset_id,asset:e})}}shouldComponentUpdate(e,t){let{asset_types:a}=this._getAvailableAssets(),{asset_types:s}=this._getAvailableAssets(t);if(1===s.length){let e=c.ChainStore.getAsset(s[0]);1!==a.length&&this.onAmountChanged({amount:t.amount,asset:e})}return t.open&&!this.state.open&&this._checkBalance(t),!(!t.open&&!this.state.open)}UNSAFE_componentWillReceiveProps(e){e.currentAccount!==this.state.from_name&&e.currentAccount!==this.props.currentAccount&&this.setState({from_name:e.from_name,from_account:c.ChainStore.getAccount(e.from_name),to_name:e.to_name?e.to_name:"",to_account:e.to_name?c.ChainStore.getAccount(e.to_name):null,feeAmount:T()})}_checkBalance(){const{feeAmount:e,amount:t,from_account:a,asset:s}=this.state;if(!s||!a)return;const n=a.getIn(["balances",s.get("id")]),r=a.getIn(["balances",e.asset_id]);if(!s||!a)return;if(!n)return this.setState({balanceError:!0});let o=c.ChainStore.getObject(n),i=r?c.ChainStore.getObject(r):null;if(i&&0!==i.get("balance")||this.setState({feeAmount:T()}),!o||!e)return;if(!t)return this.setState({balanceError:!1});const l=(0,b.cr)(t,s,e,o);null!==l&&this.setState({balanceError:!l})}_setTotal(e,t){const{feeAmount:a}=this.state;let s=c.ChainStore.getObject(t),n=c.ChainStore.getObject(e);if(s){let e=new g.xR({amount:s.get("balance"),asset_id:n.get("id"),precision:n.get("precision")});a.asset_id===e.asset_id&&e.minus(a),this.setState({maxAmount:!0,amount:e.getAmount({real:!0})},this._checkBalance)}}_getAvailableAssets(e=this.state){const{from_account:t,from_error:a}=e;let s=[];if(!t||!t.get("balances")||a)return{asset_types:s};let n=e.from_account.get("balances").toJS();s=Object.keys(n).sort(_.Z.sortID);for(let e in n){let t=c.ChainStore.getObject(n[e]);t&&0===t.get("balance")&&s.splice(s.indexOf(e),1)}return{asset_types:s}}setNestedRef(e){this.nestedRef=e}toChanged(e){this.setState({to_name:e,error:null})}fromChanged(e){this.setState({from_name:e})}onFromAccountChanged(e){this.setState({from_account:e})}onToAccountChanged(e){this.setState({to_account:e,error:null})}onAmountChanged({amount:e,asset:t}){t&&("object"!=typeof t&&(t=c.ChainStore.getAsset(t)),this.setState({amount:e,asset:t,asset_id:t.get("id"),error:null,maxAmount:!1},this._checkBalance))}onFeeChanged(e){e&&this.setState({feeAmount:e,error:null},this._checkBalance)}onMemoChanged(e){let{asset_types:t}=this._getAvailableAssets(),{from_account:a,from_error:s,maxAmount:n}=this.state;if(a&&a.get("balances")&&!s&&n){let e=a.get("balances").toJS(),s=t[0];this._setTotal(s,e[s])}this.setState({memo:e.target.value},this._checkBalance)}onTrxIncluded(e){(e.included&&e.broadcasted_transaction||e.closed)&&(m.Z.unlisten(this.onTrxIncluded),m.Z.reset())}onPropose=()=>{let{propose:e,orig_account:t,to_account:a,to_name:s,from_account:n,from_name:r}=this.state;e||this.setState({orig_account:n}),e&&(n=t,r=t.get("name")),e=!e,this.setState({propose:e,propose_account:e?n:null,from_account:e?null:n,from_name:e?"":r})};onProposeAccount(e){this.setState({propose_account:e})}render(){let{propose:e,from_account:t,to_account:a,asset:r,asset_id:o,propose_account:i,feeAmount:m,amount:g,to_name:b,from_name:y,memo:_,balanceError:w,hidden:v}=this.state,x=p.Z.isMyAccount(t)||y===this.props.passwordAccount,S=!(!t||x||e),{asset_types:T}=this._getAvailableAssets(),B=null;if(t&&t.get("balances")&&!S){let e=t.get("balances").toJS(),a=this.state.balanceError?"has-error":"";if(1===T.length&&(r=c.ChainStore.getAsset(T[0])),T.length>0){let t=r?r.get("id"):T[0];B=n.createElement("span",null,n.createElement(l(),{component:"span",content:"transfer.available"}),":"," ",n.createElement("span",{className:a,style:{borderBottom:"#A09F9F 1px dotted",cursor:"pointer"},onClick:this._setTotal.bind(this,t,e[t],m.getAmount({real:!0}),m.asset_id)},n.createElement(f.Z,{balance:e[t]})))}else B=n.createElement("span",null,n.createElement("span",{className:a},n.createElement(l(),{content:"transfer.errors.noFunds"})))}let z=e&&!i;const P=parseFloat(String.prototype.replace.call(g,/,/g,"")),N=P&&!(0,s.Z)(P),M=!t||!a||!N||!r||S||z||w||t.get("id")==a.get("id");let Z=this.props.tabIndex;return this.state.open?n.createElement("div",{id:"send_modal_wrapper",className:v||!this.state.open?"hide":""},n.createElement(E.Modal,{visible:this.state.isModalVisible,id:this.props.id,overlay:!0,onCancel:this.hideModal,footer:[n.createElement(E.Button,{key:"send",disabled:M,onClick:M?null:this.onSubmit.bind(this)},e?k().translate("propose"):k().translate("transfer.send")),n.createElement(E.Button,{key:"Cancel",tabIndex:Z++,onClick:this.onClose},n.createElement(l(),{component:"span",content:"transfer.cancel"}))]},n.createElement("div",{className:"grid-block vertical no-overflow"},n.createElement("div",{className:"content-block"},n.createElement(C,null,n.createElement(E.Button,{type:e?"ghost":"primary",onClick:this.onPropose},n.createElement(l(),{content:"transfer.send"})),n.createElement(E.Button,{type:e?"primary":"ghost",onClick:this.onPropose},n.createElement(l(),{content:"propose"})))),n.createElement("div",{className:"content-block",style:{textAlign:"center"}},n.createElement(l(),{content:e?"transfer.header_subheader_propose":"transfer.header_subheader",wallet_name:(0,A.w)()})),this.state.open?n.createElement(E.Form,{className:"full-width",layout:"vertical"},!!e&&n.createElement(n.Fragment,null,n.createElement(h.Z,{label:"transfer.by",accountName:this.props.currentAccount,account:this.props.currentAccount,typeahead:!0,tabIndex:Z++,locked:!0}),n.createElement("div",{className:"modal-separator"})),n.createElement(h.Z,{label:"transfer.from",accountName:y,account:t,onChange:this.fromChanged.bind(this),onAccountChanged:this.onFromAccountChanged.bind(this),typeahead:!0,tabIndex:Z++,locked:!e||void 0}),n.createElement(h.Z,{label:"transfer.to",accountName:b,account:a,onChange:this.toChanged.bind(this),onAccountChanged:this.onToAccountChanged.bind(this),typeahead:!0,includeMyActiveAccounts:!1,tabIndex:Z++}),n.createElement(d.Z,{label:"transfer.amount",amount:g,onChange:this.onAmountChanged.bind(this),asset:T.length>0&&r?r.get("id"):o||T[0],assets:T,display_balance:B,tabIndex:Z++,allowNaN:!0}),_&&_.length?n.createElement("label",{className:"right-label"},_.length):null,n.createElement(E.Form.Item,{label:k().translate("transfer.memo"),validateStatus:_&&e?"warning":"",help:_&&e?k().translate("transfer.warn_name_unable_read_memo"):""},n.createElement(E.Tooltip,{placement:"top",title:k().translate("tooltip.memo_tip")},n.createElement(E.Input.TextArea,{style:{marginBottom:0},rows:3,value:_,tabIndex:Z++,onChange:this.onMemoChanged.bind(this)}))),n.createElement(u.Z,{account:t,transaction:{type:"transfer",options:["price_per_kbyte"],data:{type:"memo",content:_}},onChange:this.onFeeChanged.bind(this),tabIndex:Z++})):null))):null}}class z extends n.Component{render(){return n.createElement(B,S({},this.props,{ref:this.props.refCallback}))}}const P=z=(0,v.$)(z,{listenTo:()=>[p.Z],getProps:e=>({currentAccount:p.Z.getState().currentAccount,passwordAccount:p.Z.getState().passwordAccount,tabIndex:e.tabIndex||0})})},6394:(e,t,a)=>{"use strict";a.d(t,{Z:()=>y});var s=a(67294),n=a(45697),r=a.n(n),o=a(112),i=a.n(o),l=a(58074),c=a.n(l),d=a(55294),u=a(30806),p=a(89449),h=a(73727),m=a(76660),g=a(39014),b=a(32793);class f extends s.Component{constructor(e){super(e),this.state={useByDefault:!!e.forceDefault,selectedAssetId:e.current_asset,balances:{}}}_updateStateForAccount(){const e=this.props.currentAccount.get("balances").toJS();this.setState({balances:Object.keys(e).reduce(((t,a)=>{const s=u.ChainStore.getObject(e[a]);return t[a]=s.get("balance"),t}),{})})}componentDidMount(){this._updateStateForAccount()}componentDidUpdate(e){this.props.account&&e.account.get("id")!==this.props.account.get("id")&&0===Object.keys(this.state.balances).length&&this._updateStateForAccount(),this.props.current_asset&&e.current_asset!==this.props.current_asset&&this.setState({selectedAssetId:this.props.current_asset})}_onSelectedAsset(e){e.target.checked&&this.setState({selectedAssetId:e.target.value})}_getAssetsRows(e){return e.filter((e=>!!e&&e.balance>0&&!!e.asset)).map((e=>({id:e.asset.get("id"),key:e.asset.get("id"),asset:e.asset.get("symbol"),link:`/asset/${e.asset.get("symbol")}`,balance:e.balance/Math.pow(10,e.asset.get("precision")),fee:e.fee})))}onSubmit(){const{selectedAssetId:e,useByDefault:t}=this.state;this.props.onChange(e),t&&d.Z.changeSetting({setting:"fee_asset",value:u.ChainStore.getAsset(e).get("symbol")}),this.props.close()}_getColumns(){const e=[{key:"id",title:"",render:e=>s.createElement(m.Radio,{onChange:this._onSelectedAsset.bind(this),checked:this.state.selectedAssetId===e.id,value:e.id})},{key:"asset",title:i().translate("account.asset"),align:"left",sorter:(e,t)=>"BTS"==e.asset||"BTS"==t.asset?"BTS"==e.asset?1:-1:["USD","CNY","EUR"].includes(e.asset)!==["USD","CNY","EUR"].includes(t.asset)?["USD","CNY","EUR"].includes(e.asset)?1:-1:e.assets.createElement(h.rU,{to:e.link},e.asset)},{key:"balance",title:i().translate("exchange.balance"),align:"right",render:e=>s.createElement("span",null,e.balance)}];return this.props.displayFees&&e.push({key:"fee",title:i().translate("account.transactions.fee"),align:"right",render:e=>s.createElement("span",null,e.fee)}),e}render(){let e=[];this.state.balances&&(e=Object.keys(this.state.balances).map((e=>({asset:u.ChainStore.getAsset(e),balance:this.state.balances[e]}))));let t=this._getAssetsRows(e);const a=s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(m.Button,{key:"cancel",onClick:this.props.close},s.createElement(c(),{component:"span",content:"transfer.cancel"})),s.createElement(m.Button,{key:"submit",type:"primary",disabled:!this.state.selectedAssetId,onClick:this.onSubmit.bind(this)},s.createElement(c(),{component:"span",content:"explorer.asset.fee_pool.use_selected_asset"})));return s.createElement(m.Modal,{visible:this.props.show,overlay:!0,onCancel:this.props.close,title:i().translate("explorer.asset.fee_pool.select_fee_asset"),footer:[a]},s.createElement(m.Table,{columns:this._getColumns(this.props.displayFees),pagination:{hideOnSinglePage:!0,pageSize:20},dataSource:t,footer:null}),s.createElement(m.Checkbox,{onClick:this._setSelectedAssetAsDefault.bind(this),disabled:this.props.forceDefault,checked:this.state.useByDefault,style:{paddingTop:"30px"}},s.createElement(c(),{component:"span",content:"explorer.asset.fee_pool.use_asset_as_default_fee"})))}_setSelectedAssetAsDefault(){this.setState({useByDefault:!this.state.useByDefault})}}f.propTypes={currentAccount:r().any,asset_types:r().array,displayFees:r().bool,forceDefault:r().bool,current_asset:r().string,onChange:r().func,show:r().bool,close:r().func},f.defaultProps={currentAccount:null,asset_types:[],displayFees:!1,forceDefault:!1,current_asset:"1.3.0",show:!1};const y=f=(0,p.$)(f,{listenTo:()=>[g.Z,b.Z],getProps(e){const t=e.currentAccount||u.ChainStore.getAccount(b.Z.getState().currentAccount);return{settings:g.Z.getState().settings,currentAccount:t}}})},64046:(e,t,a)=>{"use strict";a.d(t,{Z:()=>V});var s=a(72990),n=a(67294),r=a(82267),o=a(93135),i=a(58074),l=a.n(i),c=a(17997),d=a(99349),u=a(7437),p=a(89233),h=a(12326),m=a(22463),g=a(89449),b=a(39014),f=a(43393),y=a.n(f),_=a(74366),w=a(13973),k=a(5833),v=a(98107),A=a(82050),E=a(32793),x=a(23037),S=a(21019),C=a(44015),T=a(6311),B=a(76660),z=a(112),P=a.n(z),N=a(19490),M=a(41737),Z=a(23316),I=a(84224),O=a(73556),q=a(81237),L=a(108),D=a(30806),R=a(48764).Buffer;function j(){return j=Object.assign||function(e){for(var t=1;t{e.symbol!=[a,t].join(".")&&e.backingCoinType!=t||(s=e.gateFee)})),{selectedAsset:t,selectedGateway:a,gateFee:s}}UNSAFE_componentWillReceiveProps(e){if(this.setState(this._getAssetPairVariables(e)),""!=this.state.address&&this.onAddressSelected(this.state.address),e.initialSymbol!==this.props.initialSymbol){let t=this._getAssetAndGatewayFromInitialSymbol(e.initialSymbol);t.gatewayStatus=M.GD.call(this,t.selectedAsset,F),t.address="",t.quantity=0,this.setState(t)}}UNSAFE_componentWillUpdate(e,t){const{preferredCurrency:a,assets:s}=e,{selectedAsset:n,quantity:r,selectedGateway:o}=t;if(a&&n&&r){if(a===this.props.preferredCurrency&&n===this.state.selectedAsset&&r===this.state.quantity)return;let e=null,t=null,i=o+"."+n;s.forEach((s=>{(s=s.get?s:y().fromJS(s)).get("symbol")===a&&(e=s),s.get("symbol")===i&&(t=s)})),t&&e&&m.Z.getMarketStats(e,t,!0)}}_getAssetPairVariables(e=this.props,t=this.state){let{assets:a,marketStats:s,balances:n,preferredCurrency:r}=e,{selectedAsset:o,quantity:i,selectedGateway:l,gateFee:c}=t;isNaN(c)&&(c=0),i=Number(i),isNaN(i)&&(i=0),c=Number(c);let d=l?l+"."+o:o;"RUDEX"===l&&"PPY"===o&&(d="PPY");let u,p,h=0,m=null,g=null,b=null,f=0,_=null,w=null,v=0,A=a.find((e=>e.symbol===d));if(n&&n.forEach((e=>{e&&e.toJS&&A&&e.get("asset_type")==A.id&&(u=e,m=e.get("id"),h=e.get("balance"))})),h||(h=0),r&&o){let e=null;a.forEach((t=>{"1.3.0"==(t=t.get?t:y().fromJS(t)).get("id")&&(_=t),t.get("symbol")==r&&(e=t,b=t.get("precision")),t.get("symbol")==l+"."+o&&(p=t,g=t.get("precision")),t.get("symbol")==o&&(p=t,g=t.get("precision"))})),b&&g&&(f=g-b),i&&p&&e&&(v=i*k.Z.getFinalPrice(_,p,e,s,!0,!0),f>0&&(v*=Math.pow(10,f)))}if(Number.isFinite(h)&&g){let e=String(h),t=e.length;for(;t{this.setState(this._getAssetPairVariables(),this.updateFee)}))}onAssetChanged(e){let t={};"BTS"==(e=e.toUpperCase())&&(t={isBTS:!0}),e||(t={selectedAsset:"",selectedGateway:"",addressError:!1,fee:0,isBTS:!1}),t.estimatedValue=0,t.tag="",t.memo="",t.address="",this.setState(t)}onGatewayChanged(e){this.setState({selectedGateway:e},(()=>{this.setState(this._getAssetPairVariables()),this.updateGatewayFee()}))}onQuantityChanged(e){var t=null;if(parseFloat(e.target.value)==e.target.value)t=e.target.value.trim();else{var a=e.target.value.trim().replace(/[^\d.,-]/g,""),s=a.match(/(\,\d{1,2})$/g),n=s?s.length:0;s&&n&&(a=a.replace(",",".")),t=parseFloat(a.replace(",",""))||0}this.setState({quantity:Number(t)})}onEstimateChanged(e){this.setState({userEstimate:e.target.value})}onFocusAmount(e){let{value:t}=e.target;"0"==String(t)&&(e.target.value="")}onBlurAmount(e){let{value:t}=e.target;""==t&&(e.target.value=0)}onAddressChanged(e){this.setState({address:e})}onAddressSelected(e){this.validateAddress(e),this.setState({address:e})}_getBackingAssetProps(){let{selectedGateway:e,selectedAsset:t}=this.state;return this.props.backedCoins.get(e.toUpperCase(),[]).find((e=>{let a=e.backingCoinType||e.backingCoin;if(-1!==a.toUpperCase().indexOf("EOS.")){let[e,t]=a.split(".");a=t}return a===t}))}updateGatewayFee(){const{selectedGateway:e,selectedAsset:t}=this.state;let a=0;e&&t&&this.props.backedCoins.get(e).forEach((s=>{s.symbol!==[e,t].join(".")&&s.backingCoinType!==t||(a=s.gateFee||0)})),this.setState({gateFee:a})}validateAddress(e){let{selectedGateway:t,gatewayStatus:a}=this.state,s=this._getBackingAssetProps();(0,I.YN)({url:a[t].baseAPI.BASE,walletType:s.walletType,newAddress:e,output_coin_type:a[t].addressValidatorAsset?this.state.selectedGateway.toLowerCase()+"."+this.state.selectedAsset.toLowerCase():null,method:a[t].addressValidatorMethod||null}).then((e=>{void 0===e&&(e={isValid:!1}),this.setState({addressError:!e.isValid}),this.setState({withdraw_publicKey:e.hasOwnProperty("publicKey")?e.publicKey:"",withdraw_publicKey_not_empty:!!e.hasOwnProperty("publicKey")})}))}onSelectedAddressChanged(e){let{state:t}=this,{selectedAsset:a}=t,s=a.toLowerCase();I.So.setLast({wallet:s,address:e}),this.validateAddress(e),this.setState({address:e})}onMemoChanged(e){this.setState({memo:e.target.value})}onTagChanged(e){this.setState({tag:e.target.value})}onWithdrawPublicKeyChanged(e){let t=e.target.value.trim();this.setState({withdraw_publicKey:t,withdraw_publicKey_not_empty:""!=t})}onClickAvailableBalance(e){this.setState({quantity:Number(e)})}onDropDownList(){I.So.has(this.state.selectedAsset.toLowerCase())&&(!1===this.state.options_is_valid&&this.setState({options_is_valid:!0}),!0===this.state.options_is_valid&&this.setState({options_is_valid:!1}))}onSubmit(){const{withdrawalCurrencyId:e,withdrawalCurrencyBalance:t,withdrawalCurrencyPrecision:a,quantity:s,withdrawalCurrency:n,selectedGateway:r,selectedAsset:o,address:i,isBTS:l,gateFee:c,tag:d,memo:u,btsAccount:p,feeAmount:h}=this.state;let m=this.state.gatewayStatus[r],g=m.assetWithdrawlAlias&&m.assetWithdrawlAlias[o.toLowerCase()]||o.toLowerCase();const b=(0,M.in)(n.symbol,this.props.backedCoins),f=this.props.intermediateAccounts.find((e=>e&&(e.get("id")===b||e.get("name")===b)));if(!f)throw new Error("Unable to find intermediateAccount");if(I.So.has(g)){let e=I.So.get(g);-1==e.indexOf(i)&&(e.push(i),I.So.set({wallet:g,addresses:e}))}else{let e=[];e.push(i),I.So.set({wallet:g,addresses:e})}I.So.setLast({wallet:g,address:i});let y=new _.xR({asset_id:e,precision:a,real:s}),w=new _.xR({asset_id:e,precision:a,real:0});null!=t&&(w=y.clone(t));const k=new _.xR({asset_id:e,precision:a,real:c});y.plus(k),w.lt(y)&&(y=w);let v="",E="";l?(v=u?new R(u,"utf-8"):"",E=p.get("id")):(g=m.useFullAssetName?r.toLowerCase()+"."+g:g,v=g+":"+i+(this.state.withdraw_publicKey_not_empty?":"+this.state.withdraw_publicKey:"")+(d?":tag:"+new R(d,"utf-8"):"")+(u?":"+new R(u,"utf-8"):""),E=f.get("id"));let x=[this.props.account.get("id"),E,y.getAmount(),e,v,null,h?h.asset_id:"1.3.0"];A.Z.transfer(...x).then((()=>{this.props.hideModal()}))}onBTSAccountNameChanged(e){e||this.setState({btsAccount:null}),this.setState({btsAccountName:e,btsAccountError:null})}onBTSAccountChanged(e){this.setState({btsAccount:e,btsAccountError:null})}_renderStoredAddresses(){const{state:e}=this;let{selectedAsset:t,address:a}=e,s=I.So.get(t.toLowerCase());if(s.length>1&&e.options_is_valid)return n.createElement("div",{className:s.length?"blocktrades-options":"blocktrades-disabled-options"},s.filter((e=>e!=a)).map((function(e,t){return n.createElement("a",{key:t,onClick:this.onSelectedAddressChanged.bind(this,e)},e)}),this))}handleQrScanSuccess(e){this.state.quantity?this.setState({address:e.address}):this.setState({address:e.address,quantity:e.amount}),this.onAddressSelected(e.address)}render(){const{state:e,props:t}=this;let{preferredCurrency:a,assets:s,balances:r}=t,{selectedAsset:i,selectedGateway:u,gatewayStatus:p,addressError:h,gateFee:m,withdrawalCurrencyBalanceId:g,convertedBalance:b,nAvailableGateways:f,assetAndGateway:y,isBTS:k,canCoverWithdrawal:v,fee_asset_types:A,quantity:E,address:x,btsAccount:z,coinToGatewayMapping:M}=this.state,Z=[],q=this._getBackingAssetProps(),D=null,R=null;q&&q.minAmount?D=q.precision?w.Z.format_number(q.minAmount/w.Z.get_asset_precision(q.precision),q.precision,!1):q.minAmount:q&&(D="gateFee"in q&&(2*q.gateFee||0+q.transactionFee)||0),q&&q.maxAmount&&(R=q.maxAmount),r.forEach((e=>{let t=e.get("asset_type"),a=s.get(t);if(a&&e.get("balance")>0){let[e,t]=a.symbol.split("."),s=t||e;Z.push(s)}}));let{onFocus:j,onBlur:F}=this._getBindingHelpers();const W=k?!E||!z:!y||!E||!x||!v||h||E+R?n.createElement(l(),{component:"div",className:"error-msg",style:{position:"absolute",right:0,textTransform:"uppercase",fontSize:13},content:"gateway.limit_withdraw_asset_max",max:R,coin:u+"."+i}):null,!y&&!k||v?null:n.createElement(l(),{content:"modal.withdraw.cannot_cover",component:"div",className:"error-msg",style:{position:"absolute",right:0,textTransform:"uppercase",fontSize:13}})):null,y&&!k?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{component:"span",content:"modal.withdraw.address"})),h?n.createElement("div",{className:"has-error",style:{position:"absolute",right:"1em",marginTop:"-30px"}},n.createElement(l(),{content:"modal.withdraw.address_not_valid"})):null,n.createElement("div",null,n.createElement("div",{className:"inline-label"},n.createElement(B.Select,{showSearch:!0,style:{width:"100%"},value:x,onSearch:this.onAddressChanged.bind(this),onSelect:this.onAddressSelected.bind(this)},x&&-1==U.indexOf(x)?n.createElement(B.Select.Option,{value:x},x):null,U.map((e=>n.createElement(B.Select.Option,{value:e},e)))),n.createElement("span",null,n.createElement(T.Z,{label:"Scan",onSuccess:this.handleQrScanSuccess,submitBtnText:P().translate("qr_address_scanner.use_address"),dataFoundText:P().translate("qr_address_scanner.address_found")+":"}))))):null,k?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement(L.Z,{label:"transfer.to",accountName:e.btsAccountName,onChange:this.onBTSAccountNameChanged.bind(this),onAccountChanged:this.onBTSAccountChanged.bind(this),account:e.btsAccountName,size:60,error:e.btsAccountError})):null,q&&void 0!==q.supportsPublicKey?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.public_key"})),n.createElement(B.Input.TextArea,{value:e.withdraw_publicKey,onChange:this.onWithdrawPublicKeyChanged.bind(this),onInput:this.onWithdrawPublicKeyChanged.bind(this)})):null,k||q&&"tagid"===q.memoType?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.tag"})),n.createElement(B.Input.TextArea,{value:e.tag,onChange:this.onTagChanged.bind(this)})):null,k||q&&q.supportsMemos?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.memo"})),n.createElement(B.Input.TextArea,{value:e.memo,onChange:this.onMemoChanged.bind(this)})):null,y||k?n.createElement("div",{className:"grid-block no-overflow wrap shrink"},n.createElement("div",{className:"small-12 medium-6 withdraw-fee-selector",style:{paddingRight:5}},n.createElement(O.Z,{account:this.props.account,transaction:{type:"transfer",options:["price_per_kbyte"],data:{type:"memo",content:this.state.selectedAsset.toLowerCase()+":"+this.state.address+(this.state.tag?":"+this.state.tag:"")+(this.state.memo?":"+this.state.memo:"")}},onChange:this.onFeeChanged.bind(this)})),n.createElement("div",{className:"small-12 medium-6 ant-form-item-label withdraw-fee-selector"},n.createElement("label",{className:"amount-selector-field--label"},n.createElement(l(),{content:"gateway.fee"})),n.createElement("div",{className:"grid-block no-overflow wrap shrink"},n.createElement(c.Z,{placeholder:"0.0",id:"baseMarketFee",value:q&&"gateFee"in q?q.gateFee:0,disabled:!0,addonAfter:n.createElement("span",null,n.createElement(d.Z,{noTip:!0,name:q.symbol}))})))):null)))}}const U=(0,g.$)(W,{listenTo:()=>[u.Z,p.Z,b.Z,h.Z],getProps:()=>({backedCoins:u.Z.getState().backedCoins,preferredCurrency:b.Z.getSetting("unit"),marketStats:h.Z.getState().allMarketStats})});class H extends n.Component{static propTypes={account:x.Z.ChainAccount.isRequired,withdrawAssets:x.Z.ChainAssetsList,intermediateAccounts:x.Z.ChainAccountsList};static defaultProps={account:"",withdrawAssets:y().List(),intermediateAccounts:y().List()};render(){const{props:e}=this;if(!e.account)return null;let t=e.account.get("balances"),a=y().fromJS({});return t.forEach(((e,t)=>{try{let e=D.ChainStore.getAsset(t).toJS();a=a.set(t,e)}catch(e){}})),e.backedCoins.forEach((e=>{e.forEach((e=>{if(e.withdrawalAllowed)try{let t=D.ChainStore.getAsset(e.symbol).toJS();a.has(t.id)||(a=a.set(t.id,t))}catch(e){}}))})),n.createElement(v.Z,j({wrap:U},e,{balances:e.account.get("balances"),assets:a}))}}const K=(0,g.$)((0,r.Z)(H),{listenTo:()=>[E.Z],getProps:()=>({account:E.Z.getState().currentAccount})});class V extends n.Component{shouldComponentUpdate(e,t){return!(!this.props.visible&&!e.visible)}render(){let e=y().List(),t=y().List();return this.props.backedCoins.forEach((a=>{a.forEach((a=>{if(a.withdrawalAllowed){e.push(a.symbol);let s=(0,M.in)(a.symbol,this.props.backedCoins);s&&!t.includes(s)&&(t=t.push(s))}}))})),n.createElement(K,j({},this.props,{id:this.props.modalId,close:this.props.hideModal,withdrawAssets:e,intermediateAccounts:t}))}}},24647:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(73727),r=a(89449),o=a(39014),i=a(58074),l=a.n(i);class c extends s.Component{static defaultProps={subtitle:"page_not_found_subtitle"};render(){let e;return"lightTheme"===this.props.theme&&(e="data:image/png;base64,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"),"darkTheme"===this.props.theme&&(e="data:image/png;base64,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"),"midnightTheme"===this.props.theme&&(e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAB5CAYAAABbYO+mAAAACXBIWXMAAAsSAAALEgHS3X78AAAJ+UlEQVR4nO2dzXXbOBeGX8/59nEH0YJ7a1gAzakgTgWWKxingtAVjKaC0BV8mgosswCOtOdC6cCuwLPApQNRPxZJgACh9znH54S0RCFHfgjgAvfy4u3tDYQQO/zmugGEhAwFa0kUJ2kUJ7nrdpBxQMG6cRvFSR7FyaXrhhC/oWDduQWwpGTkGBSsH1dQkk1dN4T4CQXrzhrAMygZOQIF685LVRYpgEcAn6Aku3HaIuIdFKwnVVnMADxASfb/KE5mThtEvIKCGaAqiwzAnRz+iOJk7rA5xCMomCGqssgBfAXwCuBPrpURgIIZpSqLBYAUSrLbKE4Yxj9zKJhhqrJYAZhCRRmvwbWys4aCWaAqiw1UT7aGCuNvGMY/TyiYJaqyeIGSTA/jU7Izg4JZpCqLFwnj15L9yzD+eUHBBkAk08P49w6bQwaEgg2EhPFryf5iGP88oGADIpL9jl9hfKa8BA4FGxgJ46cAfoIpL8FDwRzQWCvjbvyAoWCO0ML4THkJGArmEAnjp2DKS7BQMA9gyku4UDBPYMpLmFAwj2DKS3hQMM9gyktYULD2bGx/AFNewoGCtURSUYb6nBRMeRk1FMxjmPIyfiiY5zDlZdxQsJEgkn2Tw5m7lpA2ULBxsXLdANIOCkaIRSgYIRahYIRYhIIRYhEKRohFRiVYFCeXUZykrttB3DDG739UgkHtz3ty3QjijNF9/2MTzCe4+ZZ8CAXrxiuAK+ZrkY+gYN1IodU2dNsU4jMUrANabUNKRo7yP9cNOIZEjHYmtVGcvOnHVVlcDNUm7TNX0r4llGT1hlxC3vFaMN/xQbLGTWgNlXG9ArCsymI5ZFvILhwi9sSz4eIVgC8AvgN4iuLkLYqTRRQnM5YccAN7MAP40JMd4Yv8/Iji5BFAPpaeLYqTCbZz3yZyPtPObaQal5dQsA7IF7z1xXouWc0tVNueAWQjEG0C1Rs30c89A8iHaEwXOETszo9m6r5nw8VjXEMNIRfSSxBLULB+7FTgHZFkgBo6rvjETXtQsP7sVOAdmWSfoJ64uWAgxDwUzAw7Eo1MMuBXb8aycAahYOYIQbLPYMUqozgVTNZnUpdtMMzYJXusyoLzMYO47sFmUH98ITFWyb41lxUCu/k5wbVgoTI2ye6qstiKhsoSxJNn7WyN7GZJXX0+BbPHWCS7a+6EELl+yOEtS3V3h4LZxXfJPpKrZs4F6W5QMPv4KtmpcgFqrSzfc54AkIck7l3eoGDD4JtkbeSqueZQ8SDXOFCjhYINhy+SdZGrZs7dHu0IXrAoTqYezR9cS9ZHLkANFblO1oLgBQMwh1+7E1xJ1leumnv2YqdzDoL5yNCSmZILUL3YrH+TzgMK5o5WkkVxcoNuwzOTctVwmHgizGh2y62Ed1N54Pm+zOhLqJLRn7X36U+63EA9v/kGqnfRsSEXAHyO4mQqN4Szo1nVTHiK4kQ//qMqiyV7MPdcAVjq85pGT/YFSq5nAF+rsrjQN+RWZbGpymJWlcUlgDsAP+VXtuSqmfW9gKwfZf2b4i8HezC5i05MFhSRaN5EO3UJYNLYK7apymJj6jNHQi3Zvp4sAzA/pX6GfFe5XGfr9YblAlSPyaHiBxwbIqbykxv8vBl2i5hcQRVjqXmA+qPqhKTw66vqU+xKnHtYiWivZFB/yK0YQC5ADRMnvt0M5f86aZxupkXlQ7U7xDnYFGplXecTtucwy8Fa044rqLYZyyqW4IhpuWpS+LeFaobd7/+2cbyEmrtaJ0TBxs6L4evZDERM2rxYAjr6GlrwUwQGOfwjM3kx+WN9NHlNjbTl6+dQZb7rn3p6oJ+bmWueeyiYXzxbKgY6//glneCOjg+gYH6R27ioBEt+fvjC9lxZuGZQvM/BZBycar9LocbHmXbO6zrgA7Ic2XUBFVJnSbaB0YMcKUZeB3woZBi3dNyMVlRlsQCwcN2Oc4NDREIsQsEIsQgFI0QjipNm3KEXXGjugDyN5C8Ll/4qcyXjRHGywfZuFhM8VGWRGb6mayZQcYfMxMWM9mBRnGQepefbxNbuiNTGRWUHhWm5gIG2G40Z00PE72i5fYZs0Xpj74nMLF13Y+m6wcA5WAcsPnr1s+nSaJJnZvSaGmeZcNkGzsG68xN2hl0ZzK41ptjNdDbBa51WYwu5kV3Ux7IZ4qkqi4tD7/EN9mDdWVq6bmbyYhI0uTN5TWFp4ZrB4XsPtoFKwKyZQO2+ftj34oFZYTfPqC87af4mqMoil3oRJvPClgavFSy9BDuwXrCVPdonjCupFu/vl+veehIaXsBsqH6vXF2zhqM4udSHcBYkC2LblVZUqGYq51Pt3EvXAj99e7B9exebd/Ws52d4SVUWmyhO1jCzo/yQXDmAmyhO5qfeVCSDOZN/p5YkWweUFDmFykNrop97xvYSynPjtdcA1thOln0B/B8i+k6O/r3YMbnqm9V3WdxeQNWTWDZem0KF+G/QKI1gSbKd9p4TVVmk+rGUcbvfF11mkKMffYdJp8hV80nOZXuukwH4E7tRzZ2ScMB79ak+gY+8x3v78ILd3sNrKFgPeqbjt5GrD6Yle7Qdnj9EVRarZu/hOxSsP3mH9wwlV41JyTJDbToLKFhPZNzdZtgytFw1JiR7DCi4MQgMcpjhHsC/J7zOlVw1O8VNgVaBj6zPh+8JDiwBLD1ZdunMsZ0l7MEMIGskf3/wMtdy1XTtyR7Ye7Vn0B5M7lRZfRzKHUzIsBsmr/FFrpq2Pdk6kO9ocNiDGUL+UGd7fuWbXDWn9mSvCKwY6JBQMINIwEPfJ+mrXDWnSHZ/rs8BMwEFM4wMpf6B/3LVHJPsd9bB7EeIUcTm3XYKtQNgo53bwCJVWezNTPZQrppDczL2XD0JTjD96Y+AP4EUj+Wq2SvZCLnHds38JwDfsH3jHezGEZxgPjICuWpGL1mz15Wo6MpimYejuBYsBwunkIDpK9gfjeN93fFBzmUCXZXFLIqTFezUUjTJY1UWM9eNCIlegu3JSwIcdsc+U5XFXOaDOfx77M8rgJmtoqee00yBuYT6fvRznedsroeIZ4XMD6ZSauEedqo9teURaq1rlHOuE3jAkWmIfCdpfaxVrkr3v6MdwQvmY/5QVRaZBD4yuAt+PAPIQh9tuI4ej0qwZp28MSMbZ2fSm2VQ+xiH6NH+ATAPXSxfGJVgIaKJdolfdTW+GP6YNdTcb+HZjvgVAo8iGxVsTBVXfUPmQDmAXGRL5WcKVbWoDWuoP94l1CL7xlAzjdLcFBAi7ME8RGTbeuSrVr9vXzCi3r2w8VWmc0UXLMd2tdYZ1Beq32VCjTR5j0i3PPA77hn0lHfB5M63qY8lXDnhZJiQ7jBdhRCLUDBCLMIgByEaptda2YMRYhEKRohFLt7e3ly3gZBgYQ9GiEX+A7LcwNy2a0l8AAAAAElFTkSuQmCC"),s.createElement("div",{className:"page-404"},s.createElement("div",{className:"page-404-container"},s.createElement("div",{className:"page-404-logo"},s.createElement("img",{src:e,alt:"Logo"})),s.createElement("div",{className:"page-404-title"},s.createElement(l(),{content:"page404.page_not_found_title"})),s.createElement("div",{className:"page-404-subtitle"},s.createElement(l(),{content:"page404."+this.props.subtitle})),s.createElement("div",{className:"page-404-button-back"},s.createElement(n.rU,{to:"/"},s.createElement(l(),{component:"button",className:"button",content:"page404.home"})))))}}const d=c=(0,r.$)(c,{listenTo:()=>[o.Z],getProps:()=>({theme:o.Z.getState().settings.get("themes")})})},6311:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(67294),n=a(57164),r=a.n(n),o=a(112),i=a.n(o),l=a(45697),c=a.n(l),d=a(76660);class u extends s.Component{modalId="qr_scanner_modal";state={visible:!1};static propTypes={onSuccess:c().func,onError:c().func,label:c().string,submitBtnText:c().string.isRequired,dataFoundText:c().string.isRequired};constructor(e){super(e),this.retry=this.retry.bind(this),this.submit=this.submit.bind(this),this.handleClick=this.handleClick.bind(this),this.handleClose=this.handleClose.bind(this),this.onScanSuccess=this.onScanSuccess.bind(this)}handleClick(){this.setState({visible:!0})}handleClose(){this.setState({visible:!1})}isBitcoinAddress(e){return/bitcoin:([a-zA-Z0-9]+)/.test(e)}parseBitcoinAddress(e){const t=e.match(/bitcoin:([a-zA-Z0-9]+)/),a=e.match(/amount=([0-9\.]+)/);return{address:t&&t[1]||null,amount:a&&a[1]||null}}onScanSuccess(e){if(this.isBitcoinAddress(e)){let t=this.parseBitcoinAddress(e);t&&this.setState({address:t.address,amount:t.amount})}else this.setState({address:e,amount:null})}retry(){this.setState({address:null,amount:null})}submit(){this.handleClose(),"function"==typeof this.props.onSuccess&&this.props.onSuccess({address:this.state.address,amount:this.state.amount})}render(){return s.createElement("div",{className:"qr-address-scanner"},s.createElement(d.Icon,{type:"camera",onClick:this.handleClick,style:{fontSize:"24px",padding:5}}),s.createElement(d.Modal,{visible:this.state.visible,className:"qr-address-scanner-modal",modalHeader:"global.scan_qr_code",id:this.modalId,overlay:!0,closable:!1,footer:this.state.address?s.createElement("div",{style:{justifyContent:"center"}},[s.createElement(d.Button,{onClick:this.retry,key:"qr-retry-button"},i().translate("qr_address_scanner.retry")),s.createElement(d.Button,{key:"qr-submit-button",type:"primary",onClick:this.submit},this.props.submitBtnText)]):s.createElement("div",{style:{justifyContent:"center"}},s.createElement(d.Button,{onClick:this.handleClose},"Close")),onCancel:this.handleClose},s.createElement(r(),{delay:100,onError:e=>{"function"==typeof this.props.onError&&this.props.onError(e)},onScan:e=>{e&&this.onScanSuccess(e)},style:{width:"calc(100% - 48px)",margin:"0 24px"}}),this.state.address&&s.createElement("div",null,s.createElement("div",{className:"qr-address-scanner-status"},s.createElement("div",{className:"qr-address-scanner-status-title"},this.props.dataFoundText),s.createElement("div",{className:"qr-address-scanner-status-address"},this.state.address),this.state.amount&&s.createElement("div",{className:"qr-address-scanner-status-title"},i().translate("qr_address_scanner.amount")),this.state.amount&&s.createElement("div",{className:"qr-address-scanner-status-amount"},this.state.amount)))))}}const p=u},7768:(e,t,a)=>{"use strict";a.d(t,{Z:()=>T});var s=a(67294),n=a(58074),r=a.n(n),o=a(55294),i=a(39014),l=(a(21712),a(30881)),c=a(89449),d=a(94184),u=a.n(d),p=a(91684),h=a(52531),m=a(112),g=a.n(m),b=a(73935),f=a(45697),y=a.n(f),_=a(76660);class w extends s.Component{static propTypes={id:y().string,className:y().string,type:y().string,style:y().object,caption:y().string.isRequired,onClick:y().func.isRequired,loadingType:y().string,loadingMessage:y().string,isLoading:y().bool};static defaultProps={style:{},isLoading:null,className:"button",type:"button",loadingType:"inside-feedback",loadingMessage:null};constructor(e){super(e),this.state={loading:null!=this.props.isLoading&&this.props.isLoading,overrideMessage:null,loadingButtonWidth:null},this.processingOnClick=!1}shouldComponentUpdate(e,t){return e.isLoading!==this.props.isLoading||t.loading!==this.state.loading}_feedback(e=null,t=null){null==e?(this.setState({overrideMessage:null,loading:!1}),this.processingOnClick=!1):"string"==typeof e?this.setState({overrideMessage:e}):"boolean"==typeof e&&(e?(this.setState({loading:!1}),this.processingOnClick=!1):this.setState({overrideMessage:t}))}_onClick(e){return this.processingOnClick=!0,!!this.state.loading||(null!=this.props.onClick?(this.setState({loadingButtonWidth:(0,b.findDOMNode)(this.loadingButton).getBoundingClientRect().width,loading:!0}),e.persist(),this.props.onClick(e,this._feedback.bind(this)),!0):void 0)}_isLoading(){return this.processingOnClick?this.state.loading:null!=this.props.isLoading&&this.props.isLoading}render(){let e=this.props.caption||this.props.text||null;"string"==typeof e&&e.indexOf(".")>0&&(e=g().translate(e)),null!=e&&""==e.trim()&&(e=null);let t=this.props.loadingMessage||null;null!=this.state.overrideMessage&&""!=this.state.overrideMessage.trim()&&(t=this.state.overrideMessage),"string"==typeof t&&t.indexOf(".")>0&&(t=g().translate(t)),null!=t&&""==t.trim()&&(t=null);let a=null,n=null,r=!1,o=s.createElement("span",null,e),i=this._isLoading();switch(this.props.loadingType){case"inside":i&&(r=!0,o=s.createElement("span",{style:{margin:"auto",display:"inline-block"}},s.createElement(h.Z,{type:"circle-small"})));break;case"inside-feedback":i&&(r=!0,o=s.createElement("span",{style:{float:"left"}},s.createElement("span",{style:{position:"absolute",whiteSpace:"nowrap",marginLeft:"12px"}},t),s.createElement("span",null,s.createElement(h.Z,{type:"circle-small"}))));break;case"overlay":i&&(r=!0,n=s.createElement(h.Z,{type:"loading-overlay"}));break;case"overlay-feedback":i&&(r=!0,n=s.createElement(h.Z,{loadingText:t,type:"loading-overlay"}));break;case"inside-feedback-resize":i&&(o=s.createElement("span",null,s.createElement("span",null,t),s.createElement("span",{style:{float:"left"}},s.createElement(h.Z,{type:"circle-small"}))));break;case"right-feedback":i&&(n=s.createElement("div",{style:{float:"left",marginLeft:"-9px",position:"relative"},className:"disabled"},s.createElement("span",null,s.createElement("span",{style:{float:"left",marginTop:"7px"}},s.createElement(h.Z,{type:"circle"})),s.createElement("span",{style:{float:"left",marginLeft:"6px",marginTop:"11px"}},t))));break;case"left-feedback":i&&(a=s.createElement("div",{style:{float:"left",marginRight:"6px",position:"relative"},className:"disabled"},s.createElement("span",null,s.createElement("span",{style:{float:"right",marginTop:"7px"}},s.createElement(h.Z,{type:"circle"})),s.createElement("span",{style:{float:"right",marginRight:"6px",marginTop:"11px"}},t))))}let l={overflow:"hidden",position:"relative"};return r&&null!=this.state.loadingButtonWidth&&(l.width=this.state.loadingButtonWidth),s.createElement("div",{style:this.props.style},null!=a&&a,s.createElement("span",{style:{float:"left"}},s.createElement(_.Button,{ref:e=>{this.loadingButton=e},disabled:i,type:this.props.type,className:this.props.className,id:this.props.id,onClick:this._onClick.bind(this),style:l},o)),null!=n&&n,s.createElement("div",{style:{clear:"both"}}))}}const k=w;var v=a(86853);const A="wss://fake.automatic-selection.com";function E(e){return-1!==e.indexOf("testnet")}class x extends s.Component{constructor(e){super(e)}activate(e){o.Z.changeSetting({setting:"apiServer",value:e}),i.Z.getSetting("activeNode")!=i.Z.getSetting("apiServer")&&setTimeout(function(){(0,l.Z)(!1)}.bind(this),50)}render(){const{isActive:e,connectedNode:t,totalNodes:a,popup:n}=this.props;return n?s.createElement("div",null,s.createElement(_.Switch,{style:{float:"right",position:"relative",top:"-15px"},checked:e,onChange:null!=t?this.activate.bind(this,e?t.url:A):()=>{}}),s.createElement("p",{style:{fontSize:"80%"}},s.createElement(r(),{content:"settings.automatic_short"}),":")):s.createElement("div",{className:"auto-node"},s.createElement("div",null,s.createElement(_.Switch,{checked:e,onChange:null!=t?this.activate.bind(this,e?t.url:A):()=>{}}),s.createElement(r(),{component:"div",style:{paddingLeft:"1rem",paddingTop:"0.2rem"},content:"settings.automatic",totalNodes:a})),s.createElement("div",{style:{float:"right",marginBottom:"0.5rem"}},s.createElement(v.Z,null)))}}class S extends s.Component{constructor(e){super(e)}activate(e){o.Z.changeSetting({setting:"apiServer",value:e}),i.Z.getSetting("activeNode")!=i.Z.getSetting("apiServer")&&setTimeout(function(){(0,l.Z)(!1)}.bind(this),50)}remove(e,t){this.props.showRemoveNodeModal(e,t)}show(e){o.Z.showWS(e)}hide(e){o.Z.hideWS(e)}_getPing(){if(E(this.props.node.url))return{toString:null,color:null,rating:null};if(!this.props.node.ping)return{toString:null,color:"high",rating:"node_down"};if(this.props.node.ping==1/0)return{toString:null,color:"high",rating:"node_down"};if(-1==this.props.node.ping)return{toString:null,color:"high",rating:"skipped"};let e,t,a=this.props.node.ping;return a<400?(e="low",t="low_latency"):a>=400&&a<800?(e="medium",t="medium_latency"):(e="high",t="high_latency"),{toString:a>=1e3?+(a/1e3).toFixed(2)+"s":a+"ms",color:e,rating:t}}render(){const{node:e,isActive:t,popup:a}=this.props;let n=this._getPing(),o=e.url,i=!t,l=!e.default&&!t,c=!!e.hidden,d=(e.location&&"object"==typeof e.location&&"translate"in e.location?g().translate(e.location.translate):e.location)||"";return e.country&&(d=e.country+(d?" - "+d:"")),e.region&&(d=e.region+(d?" - "+d:"")),a?s.createElement("div",{className:"api-status"},s.createElement("a",null,s.createElement(p.Z,{className:n.color+" default-icon",name:t?"connected":"disconnected",title:t?"icons.connected":"icons.disconnected",size:"1_5x",onClick:this.activate.bind(this,o)}),s.createElement(p.Z,{className:n.color+" hover-icon",name:"connect",title:"icons.connect",size:"1_5x",onClick:this.activate.bind(this,o)})),d):s.createElement("div",{className:"api-node"},s.createElement("div",{className:"api-node-left"},s.createElement("p",{className:"api-node-title"},d),!!e.operator&&s.createElement("p",{className:"api-node-operator"},e.operator,"   "),s.createElement("p",{className:"api-node-url",id:t?"active_node":null},o)),s.createElement("div",null,s.createElement("div",{className:"api-status"},s.createElement("span",{className:n.color},!!n.rating&&s.createElement(r(),{content:`settings.${n.rating}`}),!!n.toString&&s.createElement("p",null,n.toString)))),s.createElement("div",{style:{marginTop:"-5px"}},i&&s.createElement("a",{onClick:c?this.show.bind(this,o):this.hide.bind(this,o)},s.createElement(p.Z,{className:"shuffle",name:c?"eye-striked":"eye",title:c?"icons.eye_striked":"icons.eye",size:"1_5x"})),l&&s.createElement("a",{onClick:this.remove.bind(this,o,d)},s.createElement(p.Z,{name:"times",title:"icons.times",size:"1_5x"})),s.createElement("div",{className:"api-status"},t?s.createElement(p.Z,{className:n.color,name:"connected",title:"icons.connected",size:"2x"}):s.createElement("a",{id:o,onClick:this.activate.bind(this,o)},s.createElement(p.Z,{className:n.color+" default-icon",name:"disconnected",title:"icons.connect",size:"1_5x"}),s.createElement(p.Z,{className:n.color+" hover-icon",name:"connect",title:"icons.connect",size:"1_5x"})))))}}S.defaultProps={node:{}};class C extends s.Component{constructor(e){super(e),this.state={activeTab:"available_nodes"}}getNode(e){const{props:t}=this;let a={ping:t.apiLatencies[e.url]};return Object.keys(e).forEach((t=>{a[t]=e[t]})),a}_getConnectedNode(){let e=this.props.connectedNode||A;const t=this.props.nodes.find((t=>t.url==e));return t?this.getNode(t):null}_connectedNodeIsPersonal(){if(!this.props.connectedNode)return!1;let e=this.props.nodes.find((e=>e.url==this.props.connectedNode));return e&&this._nodeIsPersonal(e)}_nodeIsPersonal(e){return!e.default&&!e.hidden&&!E(e.url)}_getMainNetNodes(){return this.props.nodes.filter((e=>!E(e.url)))}renderNode(e,t){const{props:a}=this;return null==e?null:s.createElement(S,{node:e,key:e.url,showRemoveNodeModal:a.showRemoveNodeModal,isActive:null!==t&&e.url==t.url,popup:a.popup})}renderAutoSelection(e){const{props:t}=this;return s.createElement(x,{key:A,isActive:t.selectedNode===A,connectedNode:e,totalNodes:this._getMainNetNodes().length,popup:t.popup})}_changeTab(e){this.setState({activeTab:e})}_recalculateLatency(e,t){l._.doLatencyUpdate(!0,!1,1).finally((()=>{this.forceUpdate(),t()}))}render(){const{props:e}=this;let t=this.getNode.bind(this),a=this.renderNode.bind(this),n=this._getConnectedNode(),o=e.nodes.map((e=>t(e))).filter((e=>(null==n||e.url!==n.url)&&e.url!==A)).sort((function(e,t){let a=E(e.url);return e.ping&&t.ping?e.ping-t.ping:e.ping||t.ping?e.ping&&!t.ping?-1:t.ping&&!e.ping?1:0:a?-1:1})),i=null,c=!1;"my_nodes"===this.state.activeTab?(i=o.filter((e=>this._nodeIsPersonal(e))),c=this._connectedNodeIsPersonal()&&0===i.length):i="available_nodes"===this.state.activeTab?o.filter((e=>e.default&&!e.hidden&&!E(e.url))):"testnet_nodes"===this.state.activeTab?o.filter((e=>E(e.url))):o.filter((e=>e.hidden&&!E(e.url)));let d=0,p=!!l._&&l._.isBackgroundPingingInProgress();return this.props.popup?s.createElement("div",null,s.createElement("div",{style:{fontWeight:"bold",height:40}},s.createElement(r(),{content:"settings.switch"}),this.renderAutoSelection(n)),s.createElement("div",{className:"nodes-list",style:{display:e.selectedNode===A?"none":""}},i.map((e=>{if(d++,d<=5)return a(e,n)})))):s.createElement("div",{style:{paddingTop:"1em"}},this.renderAutoSelection(n),s.createElement("div",{style:{clear:"both"}}),s.createElement("div",{className:"active-node"},s.createElement(k,{style:{float:"right"},isLoading:p,caption:"settings.ping",loadingType:"inside-feedback-resize",loadingMessage:"settings.pinging",onClick:this._recalculateLatency.bind(this)}),s.createElement(r(),{component:"h4",style:{marginLeft:"1rem"},content:"settings.active_node"}),a(n,n)),s.createElement("div",{className:"nodes",style:{position:"relative",marginBottom:"2em"}},s.createElement("div",{className:"grid-block shrink",style:{marginLeft:0}},["available_nodes","my_nodes","hidden_nodes","testnet_nodes"].map((e=>s.createElement("div",{key:e,className:u()("nodes-header clickable",{inactive:this.state.activeTab!==e}),onClick:this._changeTab.bind(this,e)},s.createElement(r(),{content:"settings."+e}))))),"my_nodes"===this.state.activeTab&&s.createElement("div",{style:{paddingLeft:"1rem",paddingBottom:"1rem"}},s.createElement(_.Button,{type:"primary",onClick:e.showAddNodeModal},s.createElement(r(),{id:"add",component:"span",content:"settings.add_api"}))),"testnet_nodes"===this.state.activeTab&&s.createElement(r(),{component:"p",content:"settings.testnet_nodes_disclaimer"}),i.map((e=>a(e,n))),c?s.createElement("div",{className:"api-node"},s.createElement("p",{className:"api-node-title",style:{padding:"1rem"}},s.createElement(r(),{content:"settings.personal_active"}))):null))}}const T=C=(0,c.$)(C,{listenTo:()=>[i.Z],getProps:()=>({selectedNode:i.Z.getState().settings.get("apiServer"),connectedNode:i.Z.getState().settings.get("activeNode"),apiLatencies:i.Z.getState().apiLatencies})})},55474:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(67294),n=a(58074),r=a.n(n),o=a(55294),i=a(112),l=a.n(i),c=a(76660);const d="ws://",u="wss://";class p extends s.Component{constructor(){super();let e=window.location.protocol;this.state={protocol:e,ws:u,name:"My node",type:"remove",remove:{},addError:null,existsError:null},this.onRemoveSubmit=this.onRemoveSubmit.bind(this)}onServerInput(e){let t={ws:e.target.value};this.apiExists(t.ws)?t.existsError=!0:t.existsError=null,0!==t.ws.indexOf(u)&&0!==t.ws.indexOf(d)?t.addError=!0:t.addError=null,this.setState(t)}apiExists(e){return!!this.props.apis.find((t=>t.url===e))}onNameInput(e){this.setState({name:e.target.value})}close(){this.setState({isModalVisible:!1})}onAddSubmit(e){e.preventDefault(),o.Z.addWS({location:this.state.name,url:this.state.ws}),this.setState({ws:"https:"===this.state.protocol?u:d,name:""}),this.props.onAddNodeClose()}onRemoveSubmit(e){let t;e.preventDefault(),this.props.apis.forEach(((e,a)=>{e.url===this.props.removeNode.url&&(t=a)})),this.props.api===this.props.apis[t].url&&(o.Z.changeSetting.defer({setting:"apiServer",value:this.props.apis[0].url}),this.props.changeConnection(this.props.apis[0].url)),o.Z.removeWS(t),this.props.onRemoveNodeClose()}_renderAddModal(){let e="",t="";return this.state.existsError&&(t="error",e=l().translate("settings.node_already_exists")),this.state.addError&&(t="error",e=l().translate("settings.valid_node_url")),s.createElement(c.Modal,{visible:this.props.isAddNodeModalVisible,id:"ws_modal_add",ref:"ws_modal_add",title:l().translate("settings.add_ws"),overlay:!0,onCancel:this.props.onAddNodeClose,overlayClose:!1,footer:[s.createElement(c.Button,{key:"confirm",type:"primary",disabled:this.state.addError||this.state.existsError,onClick:this.onAddSubmit.bind(this)},l().translate("transfer.confirm")),s.createElement(c.Button,{key:"cancel",onClick:this.props.onAddNodeClose},l().translate("account.perm.cancel"))]},s.createElement("div",{className:"grid-content"},s.createElement(c.Form,{layout:"vertical"},s.createElement(c.Form.Item,{label:"Name"},s.createElement(c.Input,{onChange:this.onNameInput.bind(this),value:this.state.name})),s.createElement(c.Form.Item,{label:"Address",validateStatus:t,help:e},s.createElement(c.Input,{value:this.state.ws,onChange:this.onServerInput.bind(this)})))))}_renderRemoveModal(){if(!this.props.api)return null;const e=[s.createElement(c.Button,{key:"submit",onClick:this.onRemoveSubmit},l().translate("transfer.confirm")),s.createElement(c.Button,{key:"cancel",type:"primary",onClick:this.props.onRemoveNodeClose},l().translate("modal.cancel"))];return s.createElement(c.Modal,{onCancel:this.props.onRemoveNodeClose,title:l().translate("settings.remove_ws"),visible:this.props.isRemoveNodeModalVisible,footer:e},s.createElement("div",{className:"grid-content no-overflow"},s.createElement("section",{className:"block-list"},s.createElement("p",null,s.createElement(r(),{component:"span",content:"settings.confirm_remove",with:{name:this.props.removeNode&&this.props.removeNode.name}})))))}render(){return s.createElement("div",null,this._renderAddModal(),this._renderRemoveModal())}}const h=p},98485:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(67294),n=a(43393),r=a.n(n),o=a(112),i=a.n(o),l=a(52521),c=a(45697),d=a.n(c),u=a(34961),p=a(76660),h=a(554);class m extends u.C{static propTypes={label:d().string,assets:d().array,amount:d().string,placeholder:d().string,onChange:d().func,tabIndex:d().number,error:d().string,selectDisabled:d().bool};static defaultProps={disabled:!1,tabIndex:0,selectDisabled:!1};componentDidMount(){this.onAssetChange(this.props.asset)}formatAmount(e){return e||"number"==typeof e||(e=""),"number"==typeof e&&(e=e.toString()),e.toString().trim().replace(/,/g,"")}_onChange(e){this.props.onChange&&this.props.onChange({amount:this.getNumericEventValue(e),asset:this.props.asset})}_onLockChange(e){this.props.onLockChange&&this.props.onLockChange(e)}onAssetChange(e){this.props.onChange&&this.props.onChange({amount:this.props.amount,asset:e})}render(){let e=this.props.error?i().translate(this.props.error):this.formatAmount(this.props.amount);const t=this.props.label?s.createElement("div",{className:"amount-selector-field--label"},i().translate(this.props.label),this.props.display_balance&&s.createElement("div",{className:"amount-selector-field--balance"},this.props.display_balance)):null;let a="boolean"==typeof this.props.lockStatus?s.createElement(p.Icon,{className:this.props.lockStatus?"green":"grey",type:this.props.lockStatus?"lock":"unlock",onClick:this._onLockChange.bind(this,!this.props.lockStatus),style:{fontSize:"20px"}}):null,n=this.props.isPrice?s.createElement("div",null,this.props.asset.get("symbol"),"/",this.props.base):s.createElement(h.Z,{style:{width:"130px"},selectStyle:{width:"100%"},value:this.props.asset.get("symbol"),assets:r().List(this.props.assets),onChange:this.onAssetChange.bind(this),disabled:!!this.props.selectDisabled||void 0,tabIndex:this.props.tabIndex+1,onSearch:this.props.onSearch});return s.createElement(p.Form.Item,{label:t,style:this.props.style,className:"amount-selector-field",validateStatus:this.props.validateStatus,help:this.props.help},s.createElement(p.Input.Group,{compact:!0},s.createElement(p.Input,{type:"number",disabled:this.props.disabled,value:e||"",style:{width:"calc(100% - 130px)"},placeholder:this.props.placeholder,onChange:this._onChange.bind(this),tabIndex:this.props.tabIndex,onPaste:this.props.onPaste||this.onPaste.bind(this),onKeyPress:this.onKeyPress.bind(this),addonBefore:a,className:"input-group-unbordered-before"}),n))}}const g=m=(0,l.Z)(m)},99349:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(67294),n=a(13973),r=a(7581),o=a(52521),i=a(112),l=a.n(i),c=a(45697),d=a.n(c),u=a(76660),p=a(30806),h=a(7437),m=a(41737);function g(){return g=Object.assign||function(e){for(var t=1;t{this._isMounted&&this.setState({assetIssuerName:e[0]})}))}componentDidMount(){this._isMounted=!0}componentDidUpdate(){this._load()}componentWillUnmount(){this._isMounted=!1}render(){let{replace:e,asset:t,noPrefix:a,customClass:o,noTip:i}=this.props;if(!t)return null;const c=t.get("symbol"),d=this.state.assetIssuerName,p=t.has("bitasset"),h=p&&t.getIn(["bitasset","is_prediction_market"]);let{name:m,prefix:g}=n.Z.replaceName(t);const b="bit"===g;let f=p&&!h&&b;if(e&&m!==c||p){let e=r.Z.parseDescription(t.getIn(["options","description"])),a=c.split(".");a=a.length>1?a[0]:null,a&&(a+=".");let n="";try{n=a||f?l().translate("gateway.assets."+(b?"bit":a.replace(".","").toLowerCase()),{asset:c,backed:f?e.main:m}):""}catch(e){}p&&"CNY"===c&&(n=n+" "+l().translate("gateway.assets.bitcny"));const h=g&&"bit"===g?g:g?g.toUpperCase():g;let y=s.createElement("div",{className:"inline-block"+(this.props.noTip?"":" tooltip")+(o?" "+o:"")},s.createElement("span",{className:"asset-prefix-replaced"},g),s.createElement("span",null,m));if(i)return y;{let t=(h||"")+m.toUpperCase(),a=s.createElement("div",{style:{maxWidth:"25rem"}},e.short?e.short:e.main||"",""!==n&&s.createElement("br",null),""!==n&&s.createElement("br",null),n,s.createElement("br",null),s.createElement("br",null),d&&l().translate("explorer.assets.issuer")+": "+d);return s.createElement(u.Popover,{placement:this.props.dataPlace,content:a,title:t,mouseEnterDelay:.5},y)}}{let e=s.createElement("span",{className:o||null},s.createElement("span",{className:a?"":"asset-prefix-replaced"},a?null:g),s.createElement("span",null,m));if(i)return e;{let a=null;a="BTS"==m?{main:l().translate("assets.BTS")}:r.Z.parseDescription(t.getIn(["options","description"]));let n=(g||"")+m.toUpperCase(),o=s.createElement("div",{style:{maxWidth:"25rem"}},a.short?a.short:a.main||"",s.createElement("br",null),s.createElement("br",null),d&&l().translate("explorer.assets.issuer")+": "+d);return s.createElement(u.Popover,{placement:this.props.dataPlace,content:o,title:n,mouseEnterDelay:.5},e)}}}}b=(0,o.Z)(b);class f extends s.Component{render(){const e=(0,m.p3)(this.props.name);let t,a;if(e&&e.selectedGateway){const e=h.Z.getOnChainConfig((0,m.p3)(this.props.name).selectedGateway);t=!!e&&!e.enabled&&s.createElement(u.Tooltip,{placement:"topLeft",title:s.createElement("span",null,s.createElement("span",{dangerouslySetInnerHTML:{__html:l().translate("external_service_provider.disabled_asset_1")+". "}}),s.createElement("span",null,e.comment),s.createElement("br",null),s.createElement("br",null),s.createElement("span",null,l().translate("external_service_provider.disabled_asset_2")))}," ",s.createElement(u.Icon,{type:"warning"}))}return h.Z.isAssetBlacklisted(this.props.name)&&(a=s.createElement(u.Tooltip,{placement:"topLeft",title:s.createElement(s.Fragment,null,s.createElement("span",null,l().translate("explorer.assets.blacklisted")))}," ",s.createElement(u.Icon,{style:{color:"white"},type:"warning"}))),this.props.name?s.createElement(s.Fragment,null,s.createElement(b,g({},this.props,{asset:this.props.name})),t,a):null}}},554:(e,t,a)=>{"use strict";a.d(t,{Z:()=>_});var s=a(67294),n=a(58074),r=a.n(n),o=a(45697),i=a.n(o),l=a(76660),c=a(13973),d=a(112),u=a.n(d),p=a(23037),h=a(82267),m=a(43393),g=a(99349),b=a(52531);function f(){return f=Object.assign||function(e){for(var t=1;t{const y=t.filter(m.Map.isMap).length<=1&&!p,_=s.createElement(l.Select,f({showSearch:!0,onDropdownVisibleChange:p,showArrow:!y&&void 0,style:a,placeholder:s.createElement(r(),{content:i||"utility.asset_select_placeholder"}),value:d},h,{optionFilterProp:"children",filterOption:(e,t)=>t.key.toLowerCase().indexOf(e.toLowerCase())>=0,disabled:y,notFoundContent:u().translate("global.not_found")}),t.filter(m.Map.isMap).map((e=>{const{name:t,prefix:a}=c.Z.replaceName(e);return s.createElement(l.Select.Option,{key:`${a||""}${t}`,value:e.get("id")},s.createElement(g.Z,{noTip:!0,name:e.get("symbol")}))})),h.loading&&s.createElement(l.Select.Option,{key:"loading",value:"loading",disabled:!0},s.createElement(b.Z,{type:"three-bounce"})));return s.createElement("div",{className:"asset-select",style:o},e?s.createElement(l.Form.Item,{colon:!1,label:s.createElement(r(),{content:e}),style:n},_):_)};y.propTypes={assets:p.Z.ChainAssetsList,placeholder:i().string,label:i().string,style:i().object,formItemStyle:i().object,selectStyle:i().object},y.defaultPropTypes={assets:[],placeholder:null,label:null,style:"",formItemStyle:"",selectStyle:""};const _=(0,h.Z)(y)},52521:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(67294),n=a(13863),r=a(23037),o=a(82267),i=a(43393);class l extends s.Component{static propTypes={dos:r.Z.ChainObjectsList};static defaultProps={dos:(0,i.List)()};constructor(){super(),this.getDynamicObject=this.getDynamicObject.bind(this)}getDynamicObject(e){return this.props.dos.find((t=>t&&t.get("id")===e))}render(){return s.cloneElement(s.Children.only(this.props.children),{...this.props,getDynamicObject:this.getDynamicObject})}}l=(0,o.Z)(l);const c=function(e,t={}){t.propNames=t.propNames||[t.asList?"assets":"asset"];const a=t.propNames.reduce(((e,a)=>(e[a]=t.asList?r.Z.ChainAssetsList:r.Z.ChainAsset.isRequired,e)),{});let c=Object.keys(a).reduce(((e,a)=>{let s=t.defaultProps&&t.defaultProps[a];return e[a]=t.asList?(0,i.List)(s||[]):s||"1.3.0",e}),{});t.defaultProps&&t.defaultProps.tempComponent&&(c.tempComponent=t.defaultProps.tempComponent);class d extends s.Component{static propTypes=a;static defaultProps=c;render(){let e={},a={},n=(0,i.List)();Object.keys(this.props).forEach((s=>{this.props[s]&&-1!==t.propNames.indexOf(s)?(t.withDynamic&&(t.asList?this.props[s].forEach((e=>{e&&(n=n.push(e.get("dynamic_asset_data_id")))})):n=n.push(this.props[s].get("dynamic_asset_data_id"))),e[s]=t.asList?this.props[s].filter((e=>!!e)):this.props[s]):a[s]=this.props[s]}));let r=s.cloneElement(s.Children.only(this.props.children),{...a,...e});return t.withDynamic?s.createElement(l,{dos:n},r):r}}d=(0,o.Z)(d);class u extends s.Component{render(){return s.createElement(d,this.props,s.createElement(e,{ref:"bound_component"}))}}return u.displayName=`Wrapper(${(0,n.G)(e)})`,u}},44015:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(21019),r=a(23037),o=a(82267),i=a(45697),l=a.n(i);class c extends s.Component{static propTypes={balance:r.Z.ChainObject.isRequired,assetInfo:l().node,hide_asset:l().bool,trimZero:l().bool};static defaultProps={hide_asset:!1,trimZero:!1};render(){if(!this.props.balance||!this.props.balance.toJS)return null;let e=this.props.balance.get("balance");e=e||0==e?Number(this.props.balance.get("balance")):null;let t=this.props.balance.get("asset_type");return s.createElement(n.Z,{amount:e,asset:t,asPercentage:this.props.asPercentage,assetInfo:this.props.assetInfo,replace:this.props.replace,hide_asset:this.props.hide_asset,trimZero:this.props.trimZero})}}const d=(0,o.Z)(c)},82267:(e,t,a)=>{"use strict";a.d(t,{Z:()=>I});var s=a(87694),n=a(16423),r=a(12297),o=a(21705),i=a(92346),l=a(70414),c=a(8410),d=a(1626),u=a(67294),p=a(30806),h=a(23037),m=a(13973),g=a(13863),b=a(52531);function f(){return f=Object.assign||function(e){for(var t=1;tt[e],_=(0,d.Z)(y)(0),w=(0,d.Z)(y)(1),k=(0,d.Z)(((e,t)=>t===e||t===e.isRequired)),v=k(h.Z.ChainObject),A=k(h.Z.ChainAccount),E=k(h.Z.ChainKeyRefs),x=k(h.Z.ChainAddressBalances),S=k(h.Z.ChainAsset),C=k(h.Z.ChainLiquidityPool),T=k(h.Z.ChainObjectsList),B=k(h.Z.ChainAccountsList),z=k(h.Z.ChainAssetsList),P=k(h.Z.ChainAccountName);function N(e){for(let t in h.Z)if(e===h.Z[t].isRequired)return!0;return!1}function M(e,t={}){class a extends u.Component{constructor(a){super(a),this.hasErrored=!1;let s=(0,o.Z)(e.propTypes);t&&t.all_props?(this.chain_objects=(0,l.Z)(Object.keys(this.props),(e=>"children"===e||"show_loader"===e)),this.chain_accounts=[],this.chain_account_names=[],this.chain_key_refs=[],this.chain_address_balances=[],this.chain_assets=[],this.chain_liquidity_pools=[],this.chain_objects_list=[],this.chain_accounts_list=[],this.chain_assets_list=[],this.required_props=[],this.all_chain_props=this.chain_objects):(this.chain_objects=s.filter((0,c.Z)(w,v)).map(_),this.chain_accounts=s.filter((0,c.Z)(w,A)).map(_),this.chain_account_names=s.filter((0,c.Z)(w,P)).map(_),this.chain_key_refs=s.filter((0,c.Z)(w,E)).map(_),this.chain_address_balances=s.filter((0,c.Z)(w,x)).map(_),this.chain_assets=s.filter((0,c.Z)(w,S)).map(_),this.chain_liquidity_pools=s.filter((0,c.Z)(w,C)).map(_),this.chain_objects_list=s.filter((0,c.Z)(w,T)).map(_),this.chain_accounts_list=s.filter((0,c.Z)(w,B)).map(_),this.chain_assets_list=s.filter((0,c.Z)(w,z)).map(_),this.required_props=s.filter((0,c.Z)(w,N)).map(_),this.all_chain_props=[...this.chain_objects,...this.chain_accounts,...this.chain_account_names,...this.chain_key_refs,...this.chain_address_balances,...this.chain_assets,...this.chain_liquidity_pools,...this.chain_objects_list]),t&&t.require_all_props&&(this.required_props=this.all_chain_props),this.dynamic_props={},this.default_props=(0,i.Z)(e.defaultProps)||{};for(let e in this.default_props){let t=this.default_props[e];"string"==typeof t&&0===t.indexOf("props.")&&(this.dynamic_props[e]=(0,n.Z)(this,t))}this.tempComponent=e.defaultProps&&e.defaultProps.tempComponent||null,this.update=this.update.bind(this),this.state={resolved:!1}}shouldComponentUpdate(e,t){return!m.Z.are_equal_shallow(this.props,e)||!m.Z.are_equal_shallow(this.state,t)}componentDidCatch(e,t){this._errored(e,t)}_errored(t,a){console.error(`BindToChainState(${(0,g.G)(e)})`,t,a),this.setState({hasErrored:!0})}UNSAFE_componentWillMount(){p.ChainStore.subscribe(this.update),this.update()}componentWillUnmount(){p.ChainStore.unsubscribe(this.update)}UNSAFE_componentWillReceiveProps(e){if(t&&t.all_props){this.chain_objects=(0,l.Z)(Object.keys(e),(e=>"children"===e||"show_loader"===e)),this.all_chain_props=this.chain_objects;let t=(0,s.Z)(this.state,this.chain_objects);m.Z.are_equal_shallow(t,this.state)||this.setState(t)}let a=null;for(let t in this.dynamic_props){let s=this.default_props[t];a||(a={props:e});let r=(0,n.Z)(this,s),o=(0,n.Z)(a,s);o&&o!==r&&(this.dynamic_props[t]=(0,n.Z)(a,s))}this.update(e)}async update(e=null){try{await this._update(e)}catch(e){this._errored(e)}}async _update(e=null){let t=e||this.props,a={},s=0,n=0;for(let e of this.chain_objects){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getObject(r,!1,this.default_props.autosubscribe);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_accounts){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){"#"===r[0]&&Number.parseInt(r.substring(1))&&(r="1.2."+r.substring(1)),r instanceof Map&&r.get("name")&&1==r.size&&(r=r.get("name"));let t=p.ChainStore.getAccount(r,this.default_props.autosubscribe);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e]||null===t)&&(a[e]=t),++s,void 0!==t&&++n,"bitsharesblocksazdazdz"===r&&console.log("account:",r,"new_obj",t,"all_objects_counter",s,"resolved_objects_counter",n)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_account_names){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getAccountName(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_key_refs){let r=t[e]||this.dynamic_prop[e]||this.default_props[e];if(r){let t=p.ChainStore.getAccountRefsOfKey(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_address_balances){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getBalanceObjects(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_assets){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getAsset(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e]||null===t)&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_liquidity_pools){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){const t=await p.ChainStore.getLiquidityPoolsByShareAsset([r],this.default_props.autosubscribe);t.size>0?(a[e]=t.first(),++s,++n):a[e]=null}else this.state[e]&&(a[e]=null)}for(let e of this.chain_objects_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(++l,e){let a=p.ChainStore.getObject(e,!1,this.default_props.autosubscribe);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_accounts_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(e){let a=p.ChainStore.getAccount(e,this.default_props.autosubscribe);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++l,++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_assets_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(++l,e){let a=p.ChainStore.getAsset(e);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}s<=n&&(a.resolved=!0);let r=!1;function o(e){let t={};for(let a in e)null===e[a]?t[a]="null":t[a]=e[a];return t}let i=o(this.state),l=o(a);for(let e in l)m.Z.are_equal_shallow(l[e],i[e])?delete a[e]:r=!0;r&&this.setState(a)}render(){const a=(0,r.Z)(this.props,this.all_chain_props);for(let e of this.required_props)if(void 0===this.state[e])return this.hasErrored?u.createElement("span",{style:{color:"red"}},"Error rendering component, please report (see browser console for details)"):void 0!==t&&t.show_loader?u.createElement(u.Fragment,null,u.createElement(b.Z,null),u.createElement("span",{className:"text-center"},"Loading ...")):this.tempComponent?u.createElement(this.tempComponent):u.createElement("span",null);return u.createElement(e,f({ref:"bound_component"},a,this.state))}}return a.displayName=`BindToChainState(${(0,g.G)(e)})`,a}class Z extends u.Component{render(){return u.createElement("span",{className:"wrapper"},this.props.children(this.props))}}Z=M(Z,{all_props:!0,require_all_props:!0}),M.Wrapper=Z;const I=M},59485:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(112),r=a.n(n),o=a(36964),i=a.n(o),l=a(91684),c=a(76660);const d=({className:e="button",text:t="",tip:a="tooltip.copy_tip",dataPlace:n="right",buttonIcon:o="clippy",buttonText:d="",useDiv:u=!0})=>{const p=s.createElement(i(),{"data-clipboard-text":t,className:e},d||s.createElement(l.Z,{name:o,title:"icons.clippy.copy"}));return s.createElement(c.Tooltip,{placement:n,title:r().translate(a)},u?s.createElement("div",null,p):s.createElement("span",null,p))}},34961:(e,t,a)=>{"use strict";a.d(t,{C:()=>o});var s=a(67294),n=a(45697),r=a.n(n);class o extends s.Component{static propTypes={allowNaN:r().bool};static defaultProps={allowNaN:!1};getNumericEventValue(e){return""==e.target.value||null==e.target.value?"":parseFloat(e.target.value)==e.target.value?e.target.value.trim():parseFloat(e.target.value.trim().replace(/[^\d.-]/g,""))||0}onPaste(e){let t=this.props.allowNaN;var a=e.clipboardData.getData("text"),s=a.match(/\./g);(s?s.length:0)>1&&e.preventDefault(),t||parseFloat(a)==a||e.preventDefault()}onKeyPress(e){if(!e.nativeEvent.ctrlKey){"."===e.key&&""===e.target.value&&(e.target.value="0");var t=e.target.value+e.key,a=t.match(/\./g),s=a?a.length:0;"."===e.key&&s>1&&e.preventDefault(),parseFloat(t)!=t&&e.preventDefault(),this.props.onKeyPress&&this.props.onKeyPress(e)}}}},73556:(e,t,a)=>{"use strict";a.d(t,{Z:()=>k});var s=a(13973),n=a(67294),r=a(43393),o=a.n(r),i=a(112),l=a.n(i),c=a(52521),d=a(45697),u=a.n(d),p=a(76660),h=a(554),m=a(30806),g=a(6394),b=a(80563),f=a(89449),y=a(39014),_=a(81237);class w extends n.Component{static propTypes={defaultFeeAsset:u().any,transaction:u().any,assets:u().any,label:u().string,onChange:u().func,account:u().any,tabIndex:u().number,disabled:u().bool};static defaultProps={label:"transfer.fee",disabled:!1};constructor(e){super(e),this.state={feeAsset:e.defaultFeeAsset,calculatedFeeAmount:null,assets:null,assetsLoading:!1,isModalVisible:!1,error:null}}async _calculateFee(e=null){const{account:t,transaction:a}=this.props,s=null==e;e||(e=this.state.feeAsset);const n="string"==typeof e?e:e.get("id");try{const{fee:e,hasPoolBalance:r}=await(0,_.rX)({...a,accountID:t.get("id"),feeID:n});return s&&this.setState({calculatedFeeAmount:e.getAmount({real:!0}),error:!r&&{key:"noPoolBalanceShort",tooltip:"noPoolBalance"}},(()=>{this.props.onChange&&this.props.onChange(e)})),{fee:e,hasPoolBalance:r}}catch(e){throw s&&this.setState({calculatedFeeAmount:0,error:{key:"unknown"}}),console.error(e),e}}_accountChanges(e,t){return t.account&&(!e.account||t.account.get("id")!==e.account.get("id"))}_feeNeedCalculation(e,t,a,s){const n=this._accountChanges(e,t),r=t.transaction&&JSON.stringify(t.transaction)!==JSON.stringify(e.transaction),o=s.feeAsset&&(!a.feeAsset||s.feeAsset.get("id")!==a.feeAsset.get("id"));return t.account&&t.transaction&&s.feeAsset&&(n||r||o)}shouldComponentUpdate(e,t){if(t.assets){if(!this.state.assets)return!0;if(t.assets.length!==this.state.assets.length)return!0}return this._feeNeedCalculation(this.props,e,this.state,t)||t.calculatedFeeAmount!==this.state.calculatedFeeAmount||t.assetsLoading!==this.state.assetsLoading||t.isModalVisible!==this.state.isModalVisible||t.error!==this.state.error}_getAsset(){const{assets:e,feeAsset:t}=this.state;return t||(e&&e.length>0?e[0]:null)}_getSelectableAssets(){return this.state.assets?this.state.assets:[this._getAsset().get("symbol")]}async _syncAvailableAssets(e,t=this.props.account){if(this.state.assets)return this.state.assets;this.setState({assetsLoading:!0});let a=[this._getAsset().get("id")];const n=t.get("balances").toJS(),r=Object.keys(n).sort(s.Z.sortID);for(let e,t=0;e=r[t];t++){const t=await(0,m.FetchChain)("getObject",n[e]);try{const n=await this._calculateFee(e);t&&t.get("balance")>=n.fee.getAmount()&&!a.includes(e)&&(a.push(e),a=a.sort(s.Z.sortID),this.setState({assets:a}))}catch(e){}}this.setState({assetsLoading:!1})}componentDidMount(){this._feeNeedCalculation({},this.props,{},this.state)&&this._calculateFee()}componentDidUpdate(e,t){this._accountChanges(e,this.props)&&this.setState({assets:null}),this._feeNeedCalculation(e,this.props,t,this.state)&&this._calculateFee()}UNSAFE_componentWillReceiveProps(e,t){}async onAssetChange(e){const t=await(0,m.FetchChain)("getAsset",e);this.setState({feeAsset:t},this._calculateFee.bind(this))}render(){const e=this._getAsset();let t=this.state.error?l().translate("transfer.errors."+this.state.error.key):this.state.calculatedFeeAmount;const a=this.props.label?n.createElement("div",{className:"amount-selector-field--label"},l().translate(this.props.label),this.state.error&&this.state.error.tooltip&&n.createElement(p.Tooltip,{title:l().translate("transfer.errors."+this.state.error.tooltip)},"  ",n.createElement(p.Icon,{type:"question-circle"}))):null,s=!this.props.disabled&&!!this.props.account,r=n.createElement(p.Tooltip,{title:l().translate("settings.change_default_fee_asset_tooltip"),mouseEnterDelay:.5},n.createElement(p.Button,{type:"secondary",style:{right:"-12px"},onClick:this.openSetDefaultAssetModal.bind(this),disabled:!s},l().translate("settings.change_default"))),i=this._getSelectableAssets();return n.createElement("div",null,n.createElement(p.Form.Item,{label:a,style:{...this.props.style,margin:"0 0 0 0"},className:"amount-selector-field"},n.createElement(p.Input.Group,{compact:!0},n.createElement(p.Input,{style:{width:"calc(100% - 130px)"},disabled:!0,value:t||"",tabIndex:this.props.tabIndex,suffix:this.state.error?r:void 0}),n.createElement(h.Z,{loading:this.state.assetsLoading,onDropdownVisibleChange:this._syncAvailableAssets.bind(this),style:{width:"130px"},selectStyle:{width:"100%"},value:e.get("symbol"),assets:s?o().List(i):[],onChange:this.onAssetChange.bind(this)}))),this.state.isModalVisible&&n.createElement(g.Z,{className:"modal",show:this.state.isModalVisible,currentAccount:this.props.account,asset_types:void 0,displayFees:!0,forceDefault:!1,current_asset:e.get("id"),onChange:this.onAssetChange.bind(this),close:()=>{this.setState({isModalVisible:!1})}}))}openSetDefaultAssetModal(){this.setState({isModalVisible:!0})}}w=(0,b.ZP)(w,150,{leading:!1}),w=(0,c.Z)(w,{propNames:["defaultFeeAsset"]});const k=(0,f.$)(w,{listenTo:()=>[y.Z],getProps:()=>({defaultFeeAsset:y.Z.getState().settings.get("fee_asset")||"1.3.0"})})},21019:(e,t,a)=>{"use strict";a.d(t,{Z:()=>w});var s=a(67294),n=a(62254),r=a(13973),o=a(7581),i=a(45697),l=a.n(i),c=a(76660),d=a(21660),u=a(99349),p=a(2262),h=a(30806),m=a(52521),g=a(82267),b=a(23037);function f(){return f=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>S});var s=a(67294),n=a(62254),r=a(13973),o=a(52521),i=a(59851),l=a(39014),c=a(55294),d=a(27608),u=a.n(d),p=a(58074),h=a.n(p),m=a(99349),g=a(2262),b=a(5833),f=a(74366),y=a(45697),_=a.n(y),w=a(5977),k=a(76660),v=a(22463),A=a(73727);function E(){return E=Object.assign||function(e){for(var t=1;tl.Z.getState().marketDirections}},s.createElement(x,this.props))}}},21660:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(56855),n=a(67294),r=a(112),o=a.n(r),i=a(13973),l=a(5977),c=a(45697),d=a.n(c);let u=a(21175),p={};class h extends n.PureComponent{static propTypes={path:d().string.isRequired,section:d().string};static defaultProps={hide_issuer:"false"};constructor(e){super(e),window._onClickLink=this.onClickLink.bind(this)}UNSAFE_componentWillMount(){let e=this.props.locale||o().getLocale()||"en";u.keys().filter((t=>-1!==t.indexOf(`/${e}/`)||-1!==t.indexOf("/en/"))).forEach((function(e){var t=e.match(/\/(.+?)\/(.+)\./);let a=t[1],n=t[2],r=p[a];r||(p[a]=r={});let o=u(e).default;r[n]=function(e){let t=e.split(/\[#\s?(.+?)\s?\]/);if(1===t.length)return t[0];t[0].length<4&&t.splice(0,1);for(let e=t.length-1;e>=1;e-=2)t[e]=t[e].replace(/(^<\/p>|

$)/g,""),t[e-1]=[t[e-1],t[e]],t.splice(e,1);return(0,s.Z)(t)}(o.replace(/\{if(0===(t=i.Z.sanitize(t)).indexOf("#/"))return`e&&"#"!==e));if(0===t.length)return!1;let a="/"+t.join("/");return this.props.history.push(a),!1}setVars(e,t){return"true"==t&&(e=e.replace(/

[^<]*{issuer}[^<]*<\/p>/gm,"")),e.replace(/(\{.+?\})/gi,((e,t)=>{let a=t.substr(1,t.length-2),s=void 0!==this.props[a]?this.props[a]:t;return s&&"string"==typeof s&&(s=i.Z.sanitize(s)),s.amount&&s.asset&&(s=i.Z.format_asset(s.amount,s.asset,!1,!1)),s.date&&(s=i.Z.format_date(s.date)),s.time&&(s=i.Z.format_time(s.time)),s}))}render(){let e=this.props.locale||o().getLocale()||"en";p[e]||(console.error(`missing locale '${e}' help files, rolling back to 'en'`),e="en");let t=p[e][this.props.path];if(!t&&this.props.alt_path&&(console.warn(`missing path '${this.props.path}' for locale '${e}' help files, rolling back to alt_path '${this.props.alt_path}'`),t=p[e][this.props.alt_path]),t||"en"===e||(console.warn(`missing path '${this.props.path}' for locale '${e}' help files, rolling back to 'en'`),t=p.en[this.props.path]),!t&&this.props.alt_path&&"en"!=e&&(console.warn(`missing alt_path '${this.props.alt_path}' for locale '${e}' help files, rolling back to 'en'`),t=p.en[this.props.alt_path]),!t)return console.error(`help file not found '${this.props.path}' for locale '${e}'`),!0;if(this.props.section)for(let e in t)if(e.match(this.props.section)){t=e.replace(new RegExp("^"+this.props.section+","),"");break}return t?"object"==typeof t?(console.error(`help section content invalid ${this.props.path}#${this.props.section}`),null):n.createElement("div",{style:this.props.style,className:"help-content",dangerouslySetInnerHTML:{__html:this.setVars(t,this.props.hide_issuer)}}):(console.error(`help section not found ${this.props.path}#${this.props.section}`),null)}}const m=(0,l.EN)(h)},3841:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(73727),r=a(23037),o=a(82267),i=a(45697),l=a.n(i);class c extends s.Component{static propTypes={account:r.Z.ChainAccountName.isRequired,subpage:l().string.isRequired,maxDisplayAccountNameLength:l().number};static defaultProps={subpage:"overview",autosubscribe:!1,maxDisplayAccountNameLength:20};shouldComponentUpdate(e){return e.account!==this.props.account}render(){let e=this.props.account;if(!e)return s.createElement("span",null,this.props.account.get("id"));const t=this.props.maxDisplayAccountNameLength>0?20:1/0;return this.props.noLink?s.createElement("span",null,e.substr(0,t),e.length>t?"...":null):s.createElement(n.rU,{onClick:this.props.onClick?this.props.onClick:()=>{},to:`/account/${e}/${this.props.subpage}/`},e.substr(0,t),e.length>t?"...":null)}}const d=(0,o.Z)(c,{autosubscribe:!1})},38715:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(73727),r=a(52521),o=a(99349);class i extends s.Component{render(){const e=this.props.asset.get("symbol"),t=s.createElement(o.Z,{name:e,noTip:!0});return this.props.noLink?t:s.createElement(n.rU,{to:`/asset/${e}/`},t)}}const l=(0,r.Z)(i)},24265:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(22463),r=a(5833),o=a(13973);class i extends s.Component{constructor(){super(),this.fromStatsIntervals={},this.directStatsIntervals={},this.toStatsInterval=null}_statsChanged(e={},t={}){return!(!e.price||t.price&&e.volumeBase===t.volumeBase&&e.price.equals(t.price))}_useDirectMarket(e){const{fromAsset:t,toAsset:a,allMarketStats:s}=e;if(!t)return!1;const{marketName:n}=r.Z.getMarketName(a,t),o=s.get(n);return!o||0!==o.volumeBase}_checkDirectMarkets(e){let{fromAssets:t,fromAsset:a,toAsset:s,allMarketStats:n}=e;return!t&&a&&(t=[a]),t.filter((e=>!!e)).map((e=>this._useDirectMarket({fromAsset:e,toAsset:s,allMarketStats:n})?e.get("symbol"):null)).filter((e=>!!e))}UNSAFE_componentWillMount(){this._startUpdates(this.props)}UNSAFE_componentWillReceiveProps(e){const t=this._checkDirectMarkets(this.props),a=this._checkDirectMarkets(e);o.Z.are_equal_shallow(t,a)||this._startUpdates(e),e.toAsset&&this.props.asset&&this.props.toAsset.get("symbol")!==e.asset.get("symbol")&&this._startUpdates(e)}_startUpdates(e){if(this.updatesTimer)return;this.updatesTimer=setTimeout((()=>{this.updatesTimer=null}),1e4);let{coreAsset:t,fromAssets:a,fromAsset:s,toAsset:o}=e;!a&&s&&(a=[s]);let i=a.map((t=>{let{marketName:a}=r.Z.getMarketName(e.toAsset,t),s=this._useDirectMarket({toAsset:o,fromAsset:t,allMarketStats:e.allMarketStats});return s&&o&&o.get("id")!==t.get("id")&&(this.directStatsIntervals[a]||setTimeout((()=>{this.directStatsIntervals[a]=n.Z.getMarketStatsInterval(3e5,t,o)}),50)),s?a:null})).filter((e=>!!e)),l=a.filter((t=>{let{marketName:a}=r.Z.getMarketName(e.toAsset,t);return-1===i.indexOf(a)}));t&&l.length&&(l.forEach((e=>{if(e&&e.get("id")!==t.get("id")){let{marketName:a}=r.Z.getMarketName(t,e);this.fromStatsIntervals[a]||setTimeout((()=>{this.fromStatsIntervals[a]=n.Z.getMarketStatsInterval(3e5,t,e)}),50)}})),e.toAsset.get("id")!==t.get("id")&&(this.toStatsInterval=n.Z.getMarketStatsInterval(3e5,t,e.toAsset)))}_stopUpdates(){for(let e in this.fromStatsIntervals)this.fromStatsIntervals[e](),delete this.fromStatsIntervals[e];for(let e in this.directStatsIntervals)this.directStatsIntervals[e](),delete this.directStatsIntervals[e];this.toStatsInterval&&this.toStatsInterval(),this.toStatsInterval=null}componentWillUnmount(){this._stopUpdates()}shouldComponentUpdate(e){let{fromAsset:t,fromAssets:a}=this.props;const{marketName:s}=r.Z.getMarketName(e.toAsset,e.coreAsset);function n(e,t){return e.map((e=>{if(!e)return null;const{marketName:a}=r.Z.getMarketName(e,t);return a})).filter((e=>!!e))}!a&&t&&(a=[t]);const o=n(a,e.toAsset),i=n(a,e.coreAsset).reduce(((t,a)=>t||this._statsChanged(e.allMarketStats.get(a),this.props.allMarketStats.get(a))),!1),l=o.reduce(((t,a)=>t||this._statsChanged(e.allMarketStats.get(a),this.props.allMarketStats.get(a))),!1);return this._statsChanged(e.allMarketStats.get(s),this.props.allMarketStats.get(s))||i||l}}const l=i},86853:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(67294),n=a(92157),r=a(21712),o=a(45697),i=a.n(o),l=a(89449),c=a(39014),d=a(55294),u=a(112),p=a.n(u),h=a(76660);function m(){return m=Object.assign||function(e){for(var t=1;t{if(-1!==t.url.indexOf("fake.automatic-selection"))return;let a=t.region||"Unknown";-1!==t.url.indexOf("127.0.0.1")&&(a=" Localhost"),-1!==t.url.indexOf("testnet")&&(a=" "+a),e[a]||(e[a]={title:a,key:a,value:a,children:[]}),e[a].children.push({title:t.url,key:t.url,value:t.url,item:t})}));const t=Object.values(e).sort(((e,t)=>{let a=r.mk.indexOf(e.title),s=r.mk.indexOf(t.title);return-1!==a&&-1!==s?a>s?1:s>a?-1:0:-1!==a?-1:-1!==s?1:e.title>t.title?-1:t.title>e.title?1:0}));return t.forEach((e=>{e.title=e.title+" ("+e.children.length+")"})),t}onChange=e=>{d.Z.changeSetting({setting:"filteredApiServers",value:e}),this.props.onChange&&this.props.onChange(e)};constructor(e){super(e)}componentDidMount(){}render(){const e={treeData:this.state.treeData,value:this.props.filteredApiServers,onChange:this.onChange,treeCheckable:!0,showCheckedStrategy:g,searchPlaceholder:p().translate("connection.narrow_down_nodes"),size:this.props.size,style:{width:"88%"},key:"nodeSelector",getPopupContainer:e=>document.getElementById("node-selector--drop-down")};return s.createElement(s.Fragment,null,s.createElement("div",{style:{width:"100%",minWidth:"250px"}},s.createElement(n.Z,m({},e,{dropdownPopupAlign:{points:["tl","bl"],offset:[0,4],overflow:!1}})),s.createElement(h.Tooltip,{title:p().translate("connection.narrow_down_nodes_tooltip")},s.createElement(h.Icon,{style:{fontSize:"1.3rem",marginLeft:"0.5rem",marginTop:"0.3rem"},type:"question-circle"})),s.createElement("div",{id:"node-selector--drop-down",className:"node-selector--drop-down"})))}}const f=b=(0,l.$)(b,{listenTo:()=>[c.Z],getProps:()=>({filteredApiServers:c.Z.getState().settings.get("filteredApiServers",[])})})},2262:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(73935),r=a(94184),o=a.n(r);class i extends s.Component{constructor(){super(),this.state={value:null,pulse:""}}UNSAFE_componentWillReceiveProps(e){this.update(e)}UNSAFE_componentWillMount(){this.update(this.props)}compare(e,t){return e===t?null:t>e?"green":"red"}update(e){let t=this.state.value,a=e.value,s=e.compareFunction||this.compare;if(null===t||null===a)return void this.setState({value:a,pulse:""});let r=s(t,a);null===r?this.setState({value:a}):this.setState({value:a,pulse:""},(()=>{(0,n.findDOMNode)(this).offsetHeight,this.setState({pulse:r})}))}render(){let{pulse:e,value:t}=this.state,{children:a,reverse:n,fill:r}=this.props;return a||(a=t),e?(r=r||"none",s.createElement("span",{className:o()("pulsate",e,{reverse:n}),style:{animationFillMode:r}},a)):s.createElement("span",null,a)}}const l=i},80314:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(62254),r=a(30806),o=a(45697),i=a.n(o),l=a(76660);class c extends s.Component{static propTypes={time:i().any.isRequired,chain_time:i().bool,component:i().element,className:i().string};static defaultProps={chain_time:!0};shouldComponentUpdate(e){return e.time!==this.props.time}render(){let{time:e,chain_time:t}=this.props;var a=t?r.ChainStore.getEstimatedChainTimeOffset():0;if(!e)return null;"string"!=typeof e||-1!==e.indexOf("+")||/Z$/.test(e)||(e+="Z");let o,i=Math.round(((new Date).getTime()-new Date(e).getTime()+a)/1e3);return o=i<60?500:i<3600?3e4:18e5,s.createElement(l.Tooltip,{placement:"bottom",title:new Date(e).toString()},s.createElement("span",{className:"tooltip inline-block "+this.props.className,ref:"timeago_ttip_"+e},s.createElement(n.yJ,{updateInterval:o,value:new Date(e).getTime()+.75*a,initialNow:Date.now()})))}}const d=c},68555:(e,t,a)=>{"use strict";a.d(t,{Z:()=>T});var s=a(67294),n=a(21019),r=a(23037),o=a(82267),i=a(13973),l=a(5833),c=a(30806),d=a(89449),u=a(12326),p=a(39014),h=a(43393),m=a(58074),g=a.n(m),b=a(112),f=a.n(b),y=a(24265),_=a(52521),w=a(45697),k=a.n(w),v=a(76660);function A(){return A=Object.assign||function(e){for(var t=1;t{e&&(h[e.get("id")]=e)}));let m=0,b={};for(let e in o){let a=h[e];if(a){let s=this._convertValue(o[e],a,t,r,p);m+=s,b=this._assetValues(b,s,a.get("id"))}}for(let e in d){let a=h[e];if(a){let s=this._convertValue(d[e],a,t,r,p);m+=s,b=this._assetValues(b,s,a.get("id"))}}for(let e in l){let a=h[e];if(a){let s=this._convertValue(l[e],a,t,r,p);m-=s,b=this._assetValues(b,-s,a.get("id"))}}a.forEach((e=>{let a=h[e.asset_id];if(a){let s=a!==t?this._convertValue(e.amount,a,t,r,p):e.amount;m+=s,b=this._assetValues(b,s,a.get("id"))}}));let y=!1;for(let e in b)if(h[e]&&b[e]&&Math.abs(i.Z.get_asset_amount(b[e],t))<100){y=!0;break}const _="**";let w=!1,k="";for(let e in b)if(h[e]&&b[e]){let a=h[e].get("symbol"),s=i.Z.get_asset_amount(b[e],t);s?s<1e-12&&s>-1e-12?(s=_,w=!0):s=y?s>=0&&s<.01?"<0.01":s<0&&s>-.01?"-0.01<":i.Z.format_number(s,2):s>=0&&s<1?"<1":s<0&&s>-.01?"-1<":i.Z.format_number(s,0):(s=_,w=!0),k+=``}return w&&(k+=``),k+='',k+=``,k+="
${a}: ${s} ${t.get("symbol")}
 ${_} no data
 
${f().translate("account.total_estimate")}
",u?s.createElement(v.Tooltip,{placement:"bottom",title:k},s.createElement("div",{className:"tooltip inline-block"},this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null,s.createElement(n.Z,{noTip:!0,noPrefix:!0,hide_asset:this.props.hide_asset,amount:m,asset:t.get("id"),decimalOffset:-1===t.get("symbol").indexOf("BTC")?t.get("precision")-2:4}))):s.createElement("span",null,this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null,s.createElement(n.Z,{noTip:this.props.noTip,noPrefix:!0,hide_asset:this.props.hide_asset,amount:m,asset:t.get("id"),decimalOffset:-1===t.get("symbol").indexOf("BTC")?t.get("precision")-2:4}))}}E=(0,o.Z)(E),E=(0,_.Z)(E,{propNames:["fromAssets"],asList:!0});class x extends s.Component{render(){let e=this.props.settings.get("unit")?this.props.settings.get("unit"):"1.3.0";return s.createElement(E,A({},this.props,{toAsset:e}))}}x=(0,d.$)(x,{listenTo:()=>[u.Z,p.Z],getProps:()=>({allMarketStats:u.Z.getState().allMarketStats,settings:p.Z.getState().settings})});class S extends s.Component{static propTypes={balances:r.Z.ChainObjectsList};static defaultProps={collateral:{},debt:{},openOrders:{}};render(){let{balances:e,collateral:t,debt:a,openOrders:n,inHeader:r}=this.props,o=(0,h.List)(),i=[];e.forEach((e=>{e&&(o=o.push(e.get("asset_type")),i.push({asset_id:e.get("asset_type"),amount:parseInt(e.get("balance"),10)}))}));for(let e in t)o.includes(e)||(o=o.push(e));for(let e in a)o.includes(e)||(o=o.push(e));for(let e in n)o.includes(e)||(o=o.push(e));return s.createElement(x,{label:this.props.label,hide_asset:this.props.hide_asset,noTip:this.props.noTip,inHeader:r,balances:i,openOrders:n,debt:a,collateral:t,fromAssets:o})}}S=(0,o.Z)(S);class C extends s.Component{static propTypes={accounts:r.Z.ChainAccountsList.isRequired};shouldComponentUpdate(e){return!i.Z.are_equal_shallow(e.accounts,this.props.accounts)||!i.Z.are_equal_shallow(e.hiddenAssets.toJS(),this.props.hiddenAssets.toJS())}render(){let e=(0,h.List)(),t={},a={},n={};return this.props.accounts.forEach((s=>{if(s){s.get("orders")&&s.get("orders").forEach(((e,t)=>{let a=c.ChainStore.getObject(e);if(a){let e=a.getIn(["sell_price","base","asset_id"]);n[e]?n[e]+=parseInt(a.get("for_sale"),10):n[e]=parseInt(a.get("for_sale"),10)}})),s.get("call_orders")&&s.get("call_orders").forEach(((e,s)=>{let n=c.ChainStore.getObject(e);if(n){let e=n.getIn(["call_price","base","asset_id"]);t[e]?t[e]+=parseInt(n.get("collateral"),10):t[e]=parseInt(n.get("collateral"),10);let s=n.getIn(["call_price","quote","asset_id"]);a[s]?a[s]+=parseInt(n.get("debt"),10):a[s]=parseInt(n.get("debt"),10)}}));let r=s.get("balances");r&&r.forEach(((t,a)=>{if(this.props.hiddenAssets.includes(a))return null;let s=c.ChainStore.getObject(t);if(!s||!s.get("balance"))return null;e=e.push(t)}))}})),e.size||Object.keys(n).length||Object.keys(a).length?s.createElement(S,A({},this.props,{balances:e,openOrders:n,debt:a,collateral:t})):s.createElement("span",null,this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null," ","0")}}C=(0,o.Z)(C),S.AccountWrapper=C;const T=S},58466:(e,t,a)=>{"use strict";a.d(t,{Z:()=>b});var s=a(67294),n=a(112),r=a.n(n),o=a(13973),i=a(3841),l=a(38715),c=a(73727),d=a(21019),u=a(33951),p=a(99349),h=a(58074),m=a.n(h),g=a(91684);class b extends s.Component{shouldComponentUpdate(e){return!o.Z.are_equal_shallow(e.keys,this.props.keys)}linkToAccount(e){const{noLink:t}=this.props;return e?o.Z.is_object_id(e)?s.createElement(i.Z,{account:e,noLink:t}):t?s.createElement("span",null,e):s.createElement(c.rU,{to:`/account/${e}/overview`},e):s.createElement("span",null,"-")}linkToAsset(e){const{noLink:t,noTip:a}=this.props;return e?o.Z.is_object_id(e)?s.createElement(l.Z,{asset:e,noLink:t}):t?s.createElement(p.Z,{name:e,dataPlace:"top",noTip:a}):s.createElement(c.rU,{to:`/asset/${e}`},s.createElement(p.Z,{name:e,dataPlace:"top",noTip:a})):s.createElement("span",null,"-")}render(){let{string:e,params:t,keys:a}=this.props,n=r().translate(e,t),i=o.Z.get_translation_parts(n);a.forEach((e=>{if(i.indexOf(e.arg)){let t;switch(e.type){case"account":t=this.linkToAccount(e.value);break;case"amount":t=s.createElement("span",null,s.createElement(d.Z,{amount:e.value.amount,asset:e.value.asset_id,decimalOffset:e.decimalOffset,hide_asset:!0})," ",this.linkToAsset(e.value.asset_id));break;case"price":t=s.createElement(u.Z,{base_asset:e.value.base.asset_id,base_amount:e.value.base.amount,quote_asset:e.value.quote.asset_id,quote_amount:e.value.quote.amount});break;case"asset":t=this.linkToAsset(e.value);break;case"translate":t=s.createElement(m(),{content:e.value});break;case"link":t=s.createElement(c.rU,{to:e.value,"data-intro":e.dataIntro?e.dataIntro:null},s.createElement(m(),{content:e.translation}));break;case"icon":let a=name.replace("-","_");t=s.createElement(g.Z,{className:e.className,name:e.value,title:a});break;case"change":if(e.value&&Object.keys(e.value).length>0){const{votes:a,active:n,owner:o,memo:i}=e.value,l=a&&s.createElement("div",null,s.createElement(m(),{content:"proposal.votes"}),a.minus.length?s.createElement("div",null,"- "+r().translate("proposal.remove")+" "," ",a.minus.join(", ")):null,a.plus.length?s.createElement("div",null,"- "+r().translate("proposal.add")+" "," ",a.plus.join(", ")):null),c=(n||o||i)&&s.createElement("div",null,s.createElement(m(),{content:"proposal.permission_changes"}),", ",s.createElement(m(),{style:{color:"red"},content:"proposal.danger_operation"}),"!"),d=n&&s.createElement(s.Fragment,null,s.createElement(m(),{content:"proposal.changes_to_active"}),s.createElement("div",{style:{marginLeft:"0.5rem"}},(n.keys.plus.length>0||n.accounts.plus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.add")+" ",n.keys.plus.join(", "),n.keys.plus.length>0&&n.accounts.plus.length>0&&", ",n.accounts.plus.length>0?n.accounts.plus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),(n.keys.minus.length>0||n.accounts.minus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.remove")+" ",n.keys.minus.join(", "),n.keys.minus.length>0&&n.accounts.minus.length>0&&", ",n.accounts.minus.length>0?n.accounts.minus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),n.weight_threshold&&s.createElement("div",null,"- "+r().translate("proposal.set_threshold",{threshold:n.weight_threshold})))),u=o&&s.createElement(s.Fragment,null,s.createElement(m(),{content:"proposal.changes_to_owner"}),s.createElement("div",{style:{marginLeft:"0.5rem"}},(o.keys.plus.length>0||o.accounts.plus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.add")+" ",o.keys.plus.join(", "),o.keys.plus.length>0&&o.accounts.plus.length>0&&", ",o.accounts.plus.length>0?o.accounts.plus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),(o.keys.minus.length>0||o.accounts.minus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.remove")+" ",o.keys.minus.join(", "),o.keys.minus.length>0&&o.accounts.minus.length>0&&", ",o.accounts.minus.length>0?o.accounts.minus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),o.weight_threshold&&s.createElement("div",null,"- "+r().translate("proposal.set_threshold",{threshold:o.weight_threshold})))),p=i&&(i.keys.plus.length>0||i.keys.minus.length>0)&&s.createElement("div",null,s.createElement(m(),{content:"proposal.changes_to_memo"}),i.keys.plus.length>0&&s.createElement("div",null," ","+ ",i.keys.plus.join(", ")),i.keys.minus.length>0&&s.createElement("div",null," ","- ",i.keys.minus.join(", ")));t=s.createElement("div",{style:{marginLeft:"0.5rem",marginTop:"0.5rem"}},c,l,d,u,p)}else t="";break;case"date":t=null===e.value?"-":r().localize(e.value,{type:"date",format:"full"});break;default:t=e.value}i[i.indexOf(e.arg)]=t}}));let l=i.map(((e,t)=>s.createElement("span",{key:t},e)));return s.createElement("span",null,l)}}},81038:(e,t,a)=>{"use strict";a.d(t,{UW:()=>B,Yy:()=>x,aQ:()=>S});var s=a(67294),n=a(45697),r=a.n(n),o=a(73727),i=a(62254),l=a(89449),c=a(28969),d=a(39238),u=a(53299),p=a(41075),h=a(40678),m=a(78598),g=a(58074),b=a.n(g),f=a(30806),y=a(55294),_=a(96628),w=a(60567),k=a(76660),v=a(112),A=a.n(v);const E={listenTo:()=>[d.Z,u.Z],getProps:()=>({wallet:d.Z.getState(),backup:u.Z.getState()})};class x extends s.Component{render(){return s.createElement("div",{style:{maxWidth:"40rem"}},s.createElement(z,{noText:this.props.noText,newAccount:this.props.location&&this.props.location.query?this.props.location.query.newAccount:null},s.createElement(M,null),this.props.noText?null:s.createElement(I,null),s.createElement(B,{downloadCb:this.props.downloadCb})))}}x=(0,l.$)(x,E);class S extends s.Component{constructor(){super(),this.state={newWalletName:null}}UNSAFE_componentWillMount(){h.ZP.reset()}render(){let e=this.props.wallet.new_wallet;this.props.wallet.wallet_names.has(e);const t=s.createElement(o.rU,{to:"/help/introduction/wallets"},A().translate("wallet.wallet_types")),a=s.createElement(o.rU,{to:"/help/introduction/backups"},A().translate("wallet.backup_types"));return s.createElement("div",null,s.createElement(b(),{style:{textAlign:"left",maxWidth:"30rem"},component:"p",content:"wallet.import_backup_choose"}),s.createElement(b(),{className:"text-left",component:"p",wallet:t,backup:a,content:"wallet.read_more"}),(new FileReader).readAsBinaryString?null:s.createElement("p",{className:"error"},"Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup."),s.createElement(N,null,s.createElement(M,null),s.createElement(Z,{saveWalletObject:!0},s.createElement(T,null,s.createElement(C,null)))),s.createElement("br",null),s.createElement(o.rU,{to:"/"},s.createElement(k.Button,null,s.createElement(b(),{content:"wallet.back"}))))}}S=(0,l.$)(S,E);class C extends s.Component{constructor(){super(),this.state={}}isRestored(){let e=this.props.wallet.new_wallet;return this.props.wallet.wallet_names.has(e)}render(){let e=this.props.wallet.new_wallet;return this.isRestored()?s.createElement("span",null,s.createElement("h5",null,s.createElement(b(),{content:"wallet.restore_success",name:e.toUpperCase()})),s.createElement(o.rU,{to:"/"},s.createElement(k.Button,{type:"primary"},s.createElement(b(),{component:"span",content:"header.dashboard"}))),s.createElement("div",null,this.props.children)):s.createElement("span",null,s.createElement("h3",null,s.createElement(b(),{content:"wallet.ready_to_restore"})),s.createElement(k.Button,{type:"primary",onClick:this.onRestore.bind(this)},s.createElement(b(),{content:"wallet.restore_wallet_of",name:e})))}onRestore(){c.Z.restore(this.props.wallet.new_wallet,this.props.backup.wallet_object),y.Z.changeSetting({setting:"passwordLogin",value:!1})}}C=(0,l.$)(C,E);class T extends s.Component{constructor(){super(),this.state={new_wallet:null,accept:!1}}UNSAFE_componentWillMount(){let e=!!this.props.wallet.current_wallet;if(!e){let e="default";this.props.backup.name&&(e=this.props.backup.name.match(/[a-z0-9_-]*/)[0]),d.Z.setNewWallet(e),this.setState({accept:!0})}if(e&&this.props.backup.name&&!this.state.new_wallet){let e=this.props.backup.name.toLowerCase().match(/[a-z0-9_-]*/)[0];e&&this.setState({new_wallet:e})}}render(){if(this.state.accept)return s.createElement("span",null,this.props.children);let e=!!this.state.new_wallet,t=!!e&&this.props.wallet.wallet_names.has(this.state.new_wallet),a=!t&&e;return s.createElement("form",{onSubmit:this.onAccept.bind(this)},s.createElement("h5",null,s.createElement(b(),{content:"wallet.new_wallet_name"})),s.createElement(k.Input,{type:"text",id:"new_wallet",onChange:this.formChange.bind(this),value:this.state.new_wallet}),s.createElement("p",null,t?s.createElement(b(),{content:"wallet.wallet_exist"}):null),s.createElement(k.Button,{onClick:this.onAccept.bind(this),type:"primary",disabled:!a},s.createElement(b(),{content:"wallet.accept"})))}onAccept(e){e&&e.preventDefault(),this.setState({accept:!0}),d.Z.setNewWallet(this.state.new_wallet)}formChange(e){let t=e.target.id,a=e.target.value;if("new_wallet"===t&&(a=a.toLowerCase(),/[^a-z0-9_-]/.test(a)))return;let s={};s[t]=a,this.setState(s)}}T=(0,l.$)(T,E);class B extends s.Component{UNSAFE_componentWillMount(){try{this.isFileSaverSupported=!!new Blob}catch(e){}}componentDidMount(){this.isFileSaverSupported||k.Notification.error({message:A().translate("notifications.backup_file_save_unsupported")}),this.props.confirmation&&this.createBackup()}getBackupName(){return(0,_.a)(this.props.wallet.current_wallet)}createBackup(){const e=p.Z.getWallet().password_pubkey;(0,h.D$)(e).then((e=>{const t=this.getBackupName();h.ZP.incommingBuffer({name:t,contents:e})}))}render(){let e=!0;return this.props.confirmation&&(e=this.props.checkboxActive),s.createElement(k.Button,{type:"primary",disabled:!e,onClick:()=>{this.onDownload()},style:this.props.confirmation?{height:"initial",padding:0}:{}},this.props.confirmation?s.createElement("div",{className:"download-block",style:{padding:"1.25rem"}},s.createElement("img",{className:"bin-img",src:"/bin-file/default.svg",alt:"bin"}),s.createElement("span",{className:"text-left"},s.createElement(b(),{className:"download-text",content:"registration.downloadFile"}),s.createElement("p",{className:"file-name",style:{marginBottom:0}},this.props.backup.name))):s.createElement(b(),{content:"wallet.download"}))}onDownload(){const e=new Blob([this.props.backup.contents],{type:"application/octet-stream; charset=us-ascii"});if(e.size!==this.props.backup.size)throw new Error("Invalid backup to download conversion");(0,m.saveAs)(e,this.props.backup.name),c.Z.setBackupDate(),this.props.downloadCb&&this.props.downloadCb()}}B=(0,l.$)(B,E);class z extends s.Component{getBackupName(){return(0,_.a)(this.props.wallet.current_wallet)}render(){if(this.props.backup.contents)return s.createElement("div",null,this.props.children);let e=null!=p.Z.getWallet();return s.createElement("div",null,this.props.noText?null:s.createElement("div",{style:{textAlign:"left"}},this.props.newAccount?s.createElement(b(),{component:"p",content:"wallet.backup_new_account",wallet_name:(0,w.w)()}):null,s.createElement(b(),{component:"p",content:"wallet.backup_explain"})),s.createElement(k.Button,{type:"primary",onClick:this.onCreateBackup.bind(this),style:{marginBottom:10},disabled:!e},s.createElement(b(),{content:"wallet.create_backup_of",name:this.props.wallet.current_wallet})),s.createElement(P,null))}onCreateBackup(){let e=p.Z.getWallet().password_pubkey;(0,h.D$)(e).then((e=>{let t=this.getBackupName();h.ZP.incommingBuffer({name:t,contents:e})}))}}z=(0,l.$)(z,E);class P extends s.Component{render(){if(!p.Z.getWallet())return null;let e=p.Z.getWallet().backup_date,t=p.Z.getWallet().last_modified,a=e?s.createElement("h4",null,s.createElement(b(),{content:"wallet.last_backup"})," ",s.createElement(i.Ji,{value:e})):s.createElement(b(),{style:{paddingTop:20},className:"facolor-error",component:"p",content:"wallet.never_backed_up"}),n=null;return e&&(n=t.getTime()>e.getTime()?s.createElement("h4",{className:"facolor-error"},s.createElement(b(),{content:"wallet.need_backup"})):s.createElement("h4",{className:"success"},s.createElement(b(),{content:"wallet.noneed_backup"}))),s.createElement("span",null,a,n)}}class N extends s.Component{reset(){h.ZP.reset()}render(){let e=s.createElement("div",{style:{paddingTop:20}},s.createElement(k.Button,{disabled:!this.props.backup.contents,onClick:this.reset.bind(this)},s.createElement(b(),{content:"wallet.reset"})));if(this.props.backup.contents&&this.props.backup.public_key)return s.createElement("span",null,this.props.children,e);let t=this.props.backup.contents&&!this.props.backup.public_key;return s.createElement("div",null,s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backup_input_file",style:{border:"solid"},onChange:this.onFileUpload.bind(this)}),t?s.createElement("h5",null,s.createElement(b(),{content:"wallet.invalid_format"})):null,e)}onFileUpload(e){let t=e.target.files[0];h.ZP.incommingWebFile(t),this.forceUpdate()}}N=(0,l.$)(N,E);class M extends s.Component{render(){return s.createElement("span",null,s.createElement("h5",null,s.createElement("b",null,this.props.backup.name)," (",this.props.backup.size," ","bytes)"),this.props.backup.last_modified?s.createElement("div",null,this.props.backup.last_modified):null,s.createElement("br",null))}}M=(0,l.$)(M,E);class Z extends s.Component{static propTypes={saveWalletObject:r().bool};constructor(){super(),this.state=this._getInitialState()}_getInitialState(){return{backup_password:"",verified:!1}}render(){return this.state.verified?s.createElement("span",null,this.props.children):s.createElement("form",{onSubmit:this.onPassword.bind(this)},s.createElement("label",null,s.createElement(b(),{content:"wallet.enter_password"})),s.createElement(k.Input,{type:"password",id:"backup_password",onChange:this.formChange.bind(this),value:this.state.backup_password}),s.createElement(I,null),s.createElement(k.Button,{type:"primary",htmlType:"submit",onClick:this.onPassword.bind(this)},s.createElement(b(),{content:"wallet.submit"})))}onPassword(e){e&&e.preventDefault();let t=f.PrivateKey.fromSeed(this.state.backup_password||""),a=this.props.backup.contents;(0,h.ah)(t.toWif(),a).then((e=>{this.setState({verified:!0}),this.props.saveWalletObject&&u.Z.setWalletObjct(e)})).catch((e=>{console.error("Error verifying wallet "+this.props.backup.name,e,e.stack),"invalid_decryption_key"===e?k.Notification.error({message:A().translate("notifications.invalid_password")}):k.Notification.error({message:e})}))}formChange(e){let t={};t[e.target.id]=e.target.value,this.setState(t)}}Z=(0,l.$)(Z,E);class I extends s.Component{render(){return s.createElement("div",{className:"padding no-overflow"},s.createElement("pre",{className:"no-overflow",style:{lineHeight:"1.2"}},this.props.backup.sha1," * SHA1"),s.createElement("br",null))}}I=(0,l.$)(I,E)},66879:(e,t,a)=>{"use strict";a.d(t,{D:()=>P,z:()=>z});var s=a(67294),n=a(73727),r=a(58074),o=a.n(r),i=a(45697),l=a.n(i),c=a(94184),d=a.n(c),u=a(30806),p=a(76660);let h;class m extends s.Component{static propTypes={onChange:l().func.isRequired};constructor(){super(),this.state={brnkey:"",loading:!0}}UNSAFE_componentWillMount(){fetch("dictionary.json").then((e=>e.json().then((e=>{h=new Set(e.en.split(",")),this.setState({loading:!1})})))).catch((e=>{console.log("fetch dictionary error:",e)}))}_checkBrainKey(){let e,t=this.state.brnkey.split(" "),a=[];t.forEach(((e,t)=>{if(""===e)return;let n=e.toLowerCase();n=n.match(/[a-z]+/),null===n||h.has(n[0])?a.push(s.createElement("span",{key:t,style:{padding:"1px",margin:"1px"}},e)):a.push(s.createElement(g,{key:t},e))}));let n=!0,r=!0;return a.length>0&&(this.state.brnkey.length<50?(e=this.state.brnkey.length+" characters (50 minimum)",r=!1):a.length<16?e=a.length+" words (16 recommended)":(e=a.length+" words",n=!1)),{warn:n,valid:r,word_count_label:e,checked_words:a}}render(){if(this.state.loading||!h)return s.createElement("div",{style:{padding:20}},"Fetching dictionary....");let{warn:e,word_count_label:t,checked_words:a}=this._checkBrainKey();return s.createElement("span",{className:""},s.createElement("div",null,s.createElement(p.Input.TextArea,{tabIndex:this.props.tabIndex||1,onChange:this.formChange.bind(this),value:this.state.brnkey,id:"brnkey",style:{height:100,minWidth:450}}),s.createElement("div",{style:{textAlign:"left"},className:"grid-content no-padding no-overflow"},a),this.state.check_digits&&!this.props.hideCheckDigits?s.createElement("div",null,s.createElement("br",null),s.createElement("pre",{className:"no-overflow"},this.state.check_digits," * Check Digits"),s.createElement("br",null)):null,s.createElement("p",null,s.createElement("i",{className:d()({error:e})},t))))}formChange(e){const{id:t,value:a}=e.target;let{valid:s}=this._checkBrainKey();const n={};if(n[t]=a,"brnkey"===t){const e=u.key.normalize_brainKey(a);this.props.onChange(e.length<50?null:e),n.check_digits=e.length<50?null:u.hash.sha1(e).toString("hex").substring(0,4)}this.setState(n),this.props.errorCallback&&this.props.errorCallback(s)}}class g extends s.Component{render(){return s.createElement("span",{style:{borderBottom:"1px dotted #ff0000",padding:"1px",margin:"1px"}},s.createElement("span",{style:{borderBottom:"1px dotted #ff0000"}},this.props.children))}}var b=a(43393),f=a.n(b),y=a(112),_=a.n(y);const w=p.Form.Item;class k extends s.Component{static propTypes={onValid:l().func.isRequired};constructor(){super(),this.state={password:"",confirm:"",errors:f().Map(),valid:!1}}componentDidMount(){this.firstPassword&&this.firstPassword.focus()}getInputNode=e=>{this.firstPassword=e};formChange(e){let t={};t["current-password"===e.target.id?"password":"confirm"]=e.target.value,this.setState(t,this.validate)}validate(e=this.state){let{password:t,confirm:a}=e;a=a.trim(),t=t.trim();let s=f().Map();0!==t.length&&t.length<8&&(s=s.set("password_length","Password must be 8 characters or more")),""!==t&&""!==a&&t!==a&&(s=s.set("password_match","Passwords do not match"));let n=t.length>=8&&t===a;this.setState({errors:s,valid:n}),this.props.onValid(n?t:null)}render(){const{password:e,confirm:t,errors:a}=this.state;let{newPassword:n}=this.props,r=1;return s.createElement("div",{className:d()({"has-error":a.size})},s.createElement(w,{label:_().translate(n?"wallet.new_password":"wallet.password")},s.createElement("section",null,s.createElement(p.Input,{type:"password",id:"current-password",autoComplete:"current-password",ref:this.getInputNode(),onChange:this.formChange.bind(this),value:e,tabIndex:r++}))),s.createElement(w,{label:_().translate(n?"wallet.new_confirm":"wallet.confirm")},s.createElement("section",{className:d()({"has-error":a.size})},s.createElement(p.Input,{type:"password",id:"new-password",autoComplete:"new-password",onChange:this.formChange.bind(this),value:t,tabIndex:r++}),s.createElement("div",null,a.get("password_match")||a.get("password_length")))),this.props.children,s.createElement("br",null))}}var v=a(41075),A=a(39238),E=a(28969),x=a(89449),S=a(55294),C=a(60567);function T(){return T=Object.assign||function(e){for(var t=1;t{e.preventDefault();let{wallet_public_name:t,valid_password:a,custom_brainkey:s,errors:n}=this.state;!a||n.wallet_public_name||s&&!n.validBrainkey||(E.Z.setWallet(t,a,this.state.brnkey),S.Z.changeSetting({setting:"passwordLogin",value:!1}),this.setState({create_submitted:!0}))};formChange=e=>{let t=e.target.id,a=e.target.value;"wallet_public_name"===t&&(a=a.toLowerCase(),/[^a-z0-9_-]/.test(a))||(this.state[t]=a,this.setState(this.state),this.validate())};validate(e=this.state){let t=e.errors,{wallet_names:a}=this.props;t.wallet_public_name=a.has(e.wallet_public_name)?`Wallet ${e.wallet_public_name.toUpperCase()} exists, please change the name`:null;let s=null===t.wallet_public_name&&null!==e.valid_password;e.custom_brainkey&&s&&(s=null!==e.brnkey),this.setState({isValid:s,errors:t})}render(){let e=this.state.errors,t=!!this.props.current_wallet;return this.state.create_submitted&&this.state.wallet_public_name===this.props.current_wallet?s.createElement("div",null,s.createElement("h4",null,s.createElement(o(),{content:"wallet.wallet_created"})),s.createElement(n.rU,{to:"/"},s.createElement("div",{className:"button success"},s.createElement(o(),{content:"wallet.done"})))):s.createElement("div",{className:"wallet-create"},s.createElement(p.Form,{style:{maxWidth:"40rem"},onSubmit:this.onSubmit,onChange:this.formChange,noValidate:!0},s.createElement("div",{className:"grid-content",style:{textAlign:"left"}},this.props.restoreBrainkey?null:s.createElement(s.Fragment,null,s.createElement(o(),{component:"p",content:"wallet.create_importkeys_text"}),s.createElement(o(),{component:"p",content:"wallet.create_text",wallet_name:(0,C.w)()}))),s.createElement(k,{onValid:this.onPassword.bind(this)}),t?s.createElement(p.Form.Item,{label:_().translate("wallet.name")},s.createElement("div",{className:"no-overflow"},s.createElement("section",null,s.createElement(p.Input,{tabIndex:3,type:"text",id:"wallet_public_name",defaultValue:this.state.wallet_public_name}),s.createElement("div",{className:"has-error"},e.wallet_public_name)))):null,s.createElement("div",{className:"no-overflow"},this.state.custom_brainkey?s.createElement("div",null,s.createElement(p.Form.Item,{label:_().translate("wallet.brainkey")},s.createElement(m,{tabIndex:4,onChange:this.onBrainkey.bind(this),errorCallback:e=>{let{errors:t}=this.state;t.validBrainkey=e,this.setState({errors:t})}}))):null,s.createElement(p.Button,{type:"primary",htmlType:"submit",disabled:!this.state.isValid},s.createElement(o(),{content:"wallet.create_wallet"})),s.createElement(p.Button,{onClick:this.onBack.bind(this)},s.createElement(o(),{content:"wallet.cancel"}))),this.state.custom_brainkey?null:s.createElement("div",{style:{paddingTop:20}},s.createElement("label",null,s.createElement("a",{onClick:this.onCustomBrainkey.bind(this)},s.createElement(o(),{content:"wallet.custom_brainkey"}))))))}}B=(0,x.$)(B,{listenTo:()=>[A.Z],getProps:()=>A.Z.getState()});class z extends s.Component{render(){return v.Z.getWallet()&&this.props.children?s.createElement("div",null,this.props.children):s.createElement(B,this.props)}}const P=e=>{const t=s.createElement(n.rU,{to:"/help/introduction/wallets"},_().translate("wallet.wallet_types")),a=s.createElement(n.rU,{to:"/help/introduction/backups"},_().translate("wallet.backup_types"));return e.nested?s.createElement(z,T({restoreBrainkey:!0},e)):s.createElement("div",{className:"grid-container",style:{paddingTop:30}},s.createElement(o(),{content:"settings.backup_brainkey",component:"h3"}),s.createElement(o(),{content:"settings.restore_brainkey_text",component:"p",style:{maxWidth:"40rem"}}),s.createElement(o(),{component:"p",style:{paddingBottom:10},wallet:t,backup:a,content:"wallet.read_more"}),s.createElement(z,T({restoreBrainkey:!0},e)))}},33396:(e,t,a)=>{a(49181),window.Intl?a(10972):Promise.all([a.e(267),a.e(466)]).then((e=>{window.Intl=a(58267),Intl.__addLocaleData(a(30817)),a(10972)}).bind(null,a)).catch(a.oe)},82050:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(57296),n=a(36345),r=a(91507),o=a(55894),i=a(11390),l=a(41075),c=a(28969);let d={};const u=s.Z.createActions(class{accountSearch(e,t=50){let a=`${e}_${t}}`;return s=>{if(!d[a])return d[a]=!0,r.Z.lookupAccounts(e,t).then((t=>{d[a]=!1,s({accounts:t,searchTerm:e})}))}}setCurrentAccount(e){return e}tryToSetCurrentAccount(){return!0}addStarAccount(e){return e}removeStarAccount(e){return e}toggleHideAccount(e,t){return{account:e,hide:t}}transfer(e,t,a,s,r,o=null,l="1.3.0"){l=n.Z.getFinalFeeAsset(o||e,"transfer",l);try{return n=>i.Z.transfer({from_account:e,to_account:t,amount:a,asset:s,memo:r,propose_account:o,fee_asset_id:l}).then((e=>{n(e)}))}catch(e){return console.log("[AccountActions.js:90] ----- transfer error -----\x3e",e),new Promise(((t,a)=>{a(e)}))}}createAccount(e,t,a,s,n){return r=>c.Z.createAccount(e,t,a,s,n).then((()=>(r(e),e)))}createAccountWithPassword(e,t,a,s,n,r){return o=>c.Z.createAccountWithPassword(e,t,a,s,n,r).then((()=>(o(e),e)))}upgradeAccount(e,t){let a=n.Z.getFinalFeeAsset(e,"account_upgrade");var s=o.Z.new_transaction();return s.add_type_operation("account_upgrade",{fee:{amount:0,asset_id:a},account_to_upgrade:e,upgrade_to_lifetime_member:t}),l.Z.process_transaction(s,null,!0)}addAccountContact(e){return e}removeAccountContact(e){return e}setPasswordAccount(e){return e}createCommittee({url:e,account:t}){const a=t.get("id");var s=o.Z.new_transaction();return s.add_type_operation("committee_member_create",{fee:{amount:0,asset_id:"1.3.0"},committee_member_account:a,url:e}),e=>l.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Add Committee member error -----\x3e",t),e(!1)}))}createWitness({url:e,account:t,signingKey:a}){const s=t.get("id");var n=o.Z.new_transaction();return n.add_type_operation("witness_create",{fee:{amount:0,asset_id:"1.3.0"},witness_account:s,url:e,block_signing_key:a}),e=>l.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Create witness error -----\x3e",t),e(!1)}))}updateWitness({url:e,account:t,witness_id:a,signingKey:s}){console.log("asdsa");const n=t.get("id");var r=o.Z.new_transaction(),i={fee:{amount:0,asset_id:"1.3.0"},witness:a,witness_account:n};return i.new_signing_key=s,i.new_url=e,r.add_type_operation("witness_update",i),e=>l.Z.process_transaction(r,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Update witness error -----\x3e",t),e(!1)}))}})},7453:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(55420),r=a(13973),o=a(55894),i=a(41075),l=a(30806),c=a(44431),d=a.n(c),u=a(23316);a(17937);let p={};const h=s.Z.createActions(class{publishFeed({publisher:e,asset_id:t,mcr:a,mssr:s,feedPrice:n,cer:r}){let l=o.Z.new_transaction();return l.add_type_operation("asset_publish_feed",{publisher:e,asset_id:t,feed:{settlement_price:n.toObject(),maintenance_collateral_ratio:a,maximum_short_squeeze_ratio:s,core_exchange_rate:r.toObject()}}),e=>i.Z.process_transaction(l,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- fundPool error -----\x3e",t),e(!1)}))}fundPool(e,t,a,s){let n=o.Z.new_transaction(),l=r.Z.get_asset_precision(t.get("precision"));return n.add_type_operation("asset_fund_fee_pool",{fee:{amount:0,asset_id:"1.3.0"},from_account:e,asset_id:a.get("id"),amount:s*l}),e=>i.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- fundPool error -----\x3e",t),e(!1)}))}claimPool(e,t){let a=o.Z.new_transaction();return a.add_type_operation("asset_claim_pool",{fee:{amount:0,asset_id:"1.3.0"},issuer:e.get("issuer"),asset_id:e.get("id"),amount_to_claim:t.toObject()}),e=>i.Z.process_transaction(a,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimPool error -----\x3e",t),e(!1)}))}bidCollateral(e,t,a,s,n){let l=r.Z.get_asset_precision(t.get("precision")),c=r.Z.get_asset_precision(a.get("precision"));var d=o.Z.new_transaction();return d.add_type_operation("bid_collateral",{fee:{amount:0,asset_id:"1.3.0"},bidder:e,additional_collateral:{amount:Math.round(s*l),asset_id:t.get("id")},debt_covered:{amount:Math.round(n*c),asset_id:a.get("id")},extensions:[]}),e=>i.Z.process_transaction(d,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- collateralBid error -----\x3e",t),e(!1)}))}updateOwner(e,t){let a=o.Z.new_transaction();return a.add_type_operation("asset_update_issuer",{fee:{amount:0,asset_id:"1.3.0"},issuer:e.issuer,asset_to_update:e.id,new_issuer:t}),e=>i.Z.process_transaction(a,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- updateOwner error -----\x3e",t),e(!1)}))}updateFeedProducers(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_update_feed_producers",{fee:{amount:0,asset_id:"1.3.0"},issuer:e,asset_to_update:t.get("id"),new_feed_producers:a}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- updateFeedProducers error -----\x3e",t),e(!1)}))}claimPoolFees(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_claim_fees",{fee:{amount:0,asset_id:0},issuer:e,amount_to_claim:{asset_id:t.get("id"),amount:a.getAmount()}}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimFees error -----\x3e",t),e(!1)}))}claimCollateralFees(e,t,a,s){let n=o.Z.new_transaction();return n.add_type_operation("asset_claim_fees",{fee:{amount:0,asset_id:0},issuer:e,amount_to_claim:{asset_id:a.asset_id,amount:s.getAmount()},extensions:{claim_from_asset_id:t.get("id")}}),e=>i.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimFees error -----\x3e",t),e(!1)}))}assetGlobalSettle(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_global_settle",{fee:{amount:0,asset_id:0},issuer:t,asset_to_settle:e.id,settle_price:a}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("[AssetActions.js:223] ----- assetGlobalSettle error -----\x3e",t),e(!1)}))}createAsset(e,t,a,s,n,c,u,p,h){console.log("create asset:",t,"flags:",a,"isBitAsset:",c,"bitasset_opts:",p);let m=o.Z.new_transaction(),g=r.Z.get_asset_precision(t.precision);d().config({DECIMAL_PLACES:t.precision});let b=new(d())(t.max_supply).times(g).toString(),f=new(d())(t.max_market_fee||0).times(g).toString(),y=r.Z.get_asset_precision(l.ChainStore.getAsset(n.base.asset_id).get("precision")),_={fee:{amount:0,asset_id:0},issuer:e,symbol:t.symbol,precision:parseInt(t.precision,10),common_options:{max_supply:b,market_fee_percent:100*t.market_fee_percent||0,max_market_fee:f,issuer_permissions:s,flags:a,core_exchange_rate:{base:{amount:n.base.amount*y,asset_id:n.base.asset_id},quote:{amount:n.quote.amount*g,asset_id:"1.3.1"}},whitelist_authorities:[],blacklist_authorities:[],whitelist_markets:[],blacklist_markets:[],description:h,extensions:{reward_percent:t.reward_percent?100*t.reward_percent:void 0,whitelist_market_fee_sharing:[],taker_fee_percent:t.taker_fee_percent?100*t.taker_fee_percent:void 0}},is_prediction_market:u,extensions:null};return c&&(_.bitasset_opts=p),m.add_type_operation("asset_create",_),e=>i.Z.process_transaction(m,null,!0).then((t=>{e(!0)})).catch((t=>{console.log("----- createAsset error -----\x3e",t),e(!1)}))}updateAsset(e,t,a,s,n,c,u,p,h,m,g,b,f,y,_){let w=o.Z.new_transaction();if(_){let o=r.Z.get_asset_precision(n.get("precision"));d().config({DECIMAL_PLACES:n.get("precision")});let i=new(d())(a.max_supply).times(o).toString(),p=new(d())(a.max_market_fee||0).times(o).toString(),h=l.ChainStore.getAsset(s.quote.asset_id),m=r.Z.get_asset_precision(h.get("precision")),f=l.ChainStore.getAsset(s.base.asset_id),y=r.Z.get_asset_precision(f.get("precision")),_=new(d())(s.quote.amount).times(m).toString(),k=new(d())(s.base.amount).times(y).toString(),v=n.getIn(["options","extensions"]).toJS();void 0!==a.reward_percent&&(v.reward_percent=100*a.reward_percent),b.whitelist_market_fee_sharing&&(v.whitelist_market_fee_sharing=b.whitelist_market_fee_sharing.toJS()),void 0!==a.taker_fee_percent&&(v.taker_fee_percent=100*a.taker_fee_percent);let A={fee:{amount:0,asset_id:0},asset_to_update:n.get("id"),extensions:n.get("extensions"),issuer:e,new_issuer:t,new_options:{max_supply:i,max_market_fee:p,market_fee_percent:100*a.market_fee_percent,description:g,issuer_permissions:u,flags:c,whitelist_authorities:b.whitelist_authorities.toJS(),blacklist_authorities:b.blacklist_authorities.toJS(),whitelist_markets:b.whitelist_markets.toJS(),blacklist_markets:b.blacklist_markets.toJS(),extensions:v,core_exchange_rate:{quote:{amount:_,asset_id:s.quote.asset_id},base:{amount:k,asset_id:s.base.asset_id}}}};e!==t&&t||delete A.new_issuer,w.add_type_operation("asset_update",A)}if(console.log("bitasset_opts:",h,"original_bitasset_opts:",m),p&&(h.feed_lifetime_sec!==m.feed_lifetime_sec||h.minimum_feeds!==m.minimum_feeds||h.force_settlement_delay_sec!==m.force_settlement_delay_sec||h.force_settlement_offset_percent!==m.force_settlement_offset_percent||h.maximum_force_settlement_volume!==m.maximum_force_settlement_volume||h.short_backing_asset!==m.short_backing_asset)){let t={fee:{amount:0,asset_id:0},asset_to_update:n.get("id"),issuer:e,new_options:h};w.add_type_operation("asset_update_bitasset",t)}return console.log("feedProducers:",f,"originalFeedProducers:",y),p&&!r.Z.are_equal_shallow(f,y)&&w.add_type_operation("asset_update_feed_producers",{fee:{amount:0,asset_id:"1.3.0"},issuer:e,asset_to_update:n.get("id"),new_feed_producers:f}),i.Z.process_transaction(w,null,!0).then((e=>(console.log("asset create result:",e),!0))).catch((e=>(console.log("----- updateAsset error -----\x3e",e),!1)))}async loadAssets(){let e="A",t=[],a=null;for(;0==t.length||null==a||a.length>0;)a=await n.Apis.instance().db_api().exec("list_assets",[e,10]),t=t.concat(a),e=t[t.length-1].symbol+".";console.log("Assets loaded: ",t.length)}getAssetList(e,t,a=!1){let s=e+"_"+t;return r=>{if(!p[s]){let o;return p[s]=!0,r({loading:!0}),o=n.Apis.instance().db_api().exec("list_assets",[e,t]).then((e=>{let t=[],a=[];e.forEach((e=>{l.ChainStore._updateObject(e,!1),a.push(e.dynamic_asset_data_id),e.bitasset_data_id&&t.push(e.bitasset_data_id)}));let o=n.Apis.instance().db_api().exec("get_objects",[a]),i=t.length>0?n.Apis.instance().db_api().exec("get_objects",[t]):null;Promise.all([o,i]).then((t=>(delete p[s],r({assets:e,dynamic:t[0],bitasset_data:t[1],loading:!1}),e&&e.length)))})).catch((e=>{console.log("Error in AssetActions.getAssetList: ",e),r({loading:!1}),delete p[s]})),a&&u.nT.forEach((t=>{this.getAssetList(t+"."+e,10)})),o}}}getAssetsByIssuer(e,t,a,s=!1){let r=e+"_"+t;return console.log("getAssetsByIssuer id = ",r),o=>{if(!p[r]){let i;return p[r]=!0,o({loading:!0}),i=n.Apis.instance().db_api().exec("get_assets_by_issuer",[e,a,t]).then((e=>{let t=[];e.forEach((e=>{l.ChainStore._updateObject(e,!1),t.push(e.dynamic_asset_data_id)}));let a=n.Apis.instance().db_api().exec("get_objects",[t]);Promise.all([a]).then((t=>(delete p[r],o({assets:e,dynamic:t[0],loading:!1}),e&&e.length)))})).catch((e=>{console.log("Error in AssetActions.getAssetList: ",e),o({loading:!1}),delete p[r]})),s&&u.nT.forEach((e=>{this.getAssetList(e+"."+a,10)})),i}}}lookupAsset(e,t){let a=l.ChainStore.getAsset(e);return a?{assets:[a],searchID:t,symbol:e}:a=>{setTimeout((()=>{let s=l.ChainStore.getAsset(e);s&&a({assets:[s],searchID:t,symbol:e})}),200)}}reserveAsset(e,t,a){var s=o.Z.new_transaction();return s.add_type_operation("asset_reserve",{fee:{amount:0,asset_id:0},amount_to_reserve:{amount:e,asset_id:t},payer:a,extensions:[]}),e=>i.Z.process_transaction(s,null,!0).then((()=>(e(!0),!0))).catch((t=>(e(!1),console.log("----- reserveAsset error -----\x3e",t),!1)))}})},40678:(e,t,a)=>{"use strict";a.d(t,{D$:()=>d,ZP:()=>c,ah:()=>p,nu:()=>u});var s=a(57296),n=a(95768),r=a(19303),o=a(30806),i=a(28969),l=a(48764).Buffer;const c=s.Z.createActions(class{incommingWebFile(e){return t=>{let a=new FileReader;a.onload=a=>{let s=new l(a.target.result,"binary"),n=e.name,r=new Date(e.lastModified).toString();t({name:n,contents:s,last_modified:r})},a.readAsBinaryString(e)}}incommingBuffer(e){return e}reset(){return!0}});function d(e){return new Promise((t=>{t(n.Z.backup().then((t=>function(e,t,a,s){return new Promise((a=>{let s=o.PublicKey.fromPublicKeyString(e),n=o.key.get_random_key(undefined),i=JSON.stringify(t,null,0);(0,r.nN)(i,1,(e=>{let t=o.Aes.encrypt_with_checksum(n,s,null,e),r=n.toPublicKey(),i=l.concat([r.toBuffer(),t]);a(i)}))}))}(e,t))))}))}function u(e,t,a){return new Promise((s=>{s(p(e,t).then((e=>i.Z.restore(a,e))))}))}function p(e,t){return new Promise(((a,s)=>{l.isBuffer(t)||(t=new l(t,"binary"));let n,i=o.PrivateKey.fromWif(e);try{n=o.PublicKey.fromBuffer(t.slice(0,33))}catch(e){throw console.error(e,e.stack),new Error("Invalid backup file")}t=t.slice(33);try{t=o.Aes.decrypt_with_checksum(i,n,null,t)}catch(e){return console.error("Error decrypting wallet",e,e.stack),void s("invalid_decryption_key")}try{(0,r.Lj)(t,(e=>{try{let t=JSON.parse(e);a(t)}catch(t){e||(e=""),console.error("Error parsing wallet json",e.substring(0,10)+"..."),s("Error parsing wallet json")}}))}catch(e){return console.error("Error decompressing wallet",e,e.stack),void s("Error decompressing wallet")}}))}},33983:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{setPubkeys(e){return e}setSelectedBalanceClaims(e){return e}claimAccountChange(e){return e}})},72034:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(57296),n=a(55420);let r={},o={};const i=s.Z.createActions(class{getHeader(e){return o[e]?{}:(o[e]=!0,t=>n.Apis.instance().db_api().exec("get_block_header",[e]).then((a=>{t({header:{timestamp:a.timestamp,witness:a.witness},height:e})})))}getLatest(e,t){return a=>{!r[e]&&t&&(r[e]=!0,n.Apis.instance().db_api().exec("get_block",[e]).then((s=>{s&&(s.id=e,a({block:s,maxBlock:t}))})).catch((e=>{console.log("Error in BlockchainActions.getLatest: ",e)})))}}getBlock(e){return t=>{n.Apis.instance().db_api().exec("get_block",[e]).then((a=>{if(!a)return!1;a.id=e,t(a)})).catch((e=>{console.log("Error in BlockchainActions.getBlock: ",e)}))}}updateRpcConnectionStatus(e){return e}});n.Apis.setRpcConnectionStatusCallback(i.updateRpcConnectionStatus);const l=i},99659:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{set(e,t){return{name:e,value:t}}get(e){return{name:e}}reset(){return!0}})},56815:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(57296),n=a(84224),r=a(21712),o=a(91822);let i={};const l=1e4,c=(e,t)=>{e({down:t})},d=s.Z.createActions(class{fetchCoins({backer:e="OPEN",url:t,urlBridge:a,urlWallets:s}={}){return i["fetchCoins_"+e]?{}:(i["fetchCoins_"+e]=!0,r=>{let o=setTimeout(c.bind(null,r,e),l);Promise.all([(0,n.Yr)(t),(0,n.El)(a),(0,n.dV)(s)]).then((t=>{clearTimeout(o),delete i["fetchCoins_"+e];let[a,s,l]=t,c=(0,n.pQ)({allCoins:a,tradingPairs:s,backer:e}).filter((e=>!!e.walletType));c.forEach((e=>{e.isAvailable=-1!==l.indexOf(e.walletType)})),r({coins:a,backedCoins:c,backer:e})})).catch((()=>{clearTimeout(o),delete i["fetchCoins_"+e],r({coins:[],backedCoins:[],backer:e})}))})}fetchCoinsSimple({backer:e="RUDEX",url:t}={}){return i["fetchCoinsSimple_"+e]?{}:(i["fetchCoinsSimple_"+e]=!0,a=>{let s=setTimeout(c.bind(null,a,e),l);(0,n.vC)(t).then((t=>{clearTimeout(s),delete i["fetchCoinsSimple_"+e],a({coins:t,backer:e})})).catch((()=>{clearTimeout(s),delete i["fetchCoinsSimple_"+e],a({coins:[],backer:e})}))})}fetchPairs(){return i.fetchTradingPairs?{}:(i.fetchTradingPairs=!0,e=>{let t=setTimeout(c.bind(null,e,"TRADE"),l);Promise.all([(0,n.Yr)(r.q.BASE+r.q.COINS_LIST),(0,n.El)(r.q.BASE+r.q.TRADING_PAIRS),(0,n.dV)(r.q.BASE+r.q.ACTIVE_WALLETS)]).then((a=>{clearTimeout(t),delete i.fetchTradingPairs;let[s,n,r]=a;e({coins:s,bridgeCoins:n,wallets:r})})).catch((()=>{delete i.fetchTradingPairs,e({coins:[],bridgeCoins:[],wallets:[]})}))})}temporarilyDisable({backer:e}){return t=>{t({backer:e})}}loadOnChainGatewayConfig(){return e=>{(0,o.ET)().then((t=>e(t)))}}})},51477:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(57296);a(89515);const n=s.Z.createActions(class{switchLocale(e){return"en"===e?{locale:e}:t=>{fetch(`locale-${e}.json`).then((a=>a.json().then((a=>{t({locale:e,localeData:a})})))).catch((e=>(console.log("fetch locale error:",e),e=>{e({locale:"en"})})))}}getLocale(e){return e}})},22463:(e,t,a)=>{"use strict";a.d(t,{Z:()=>C});var s=a(57296),n=a(55894),r=a(41075),o=a(30806),i=a(55420),l=a(5833),c=a(36345),d=a(43393),u=a.n(d);let p,h={},m={},g=u().List(),b=null,f=u().List(),y=null,_=null,w="";function k(){clearTimeout(b),clearTimeout(y),b=null,y=null}const v=[];let A=!1,E=0,x=s.Z.createActions(class{changeBase(e){return k(),e}changeBucketSize(e){return e}getMarketStats(e,t,a=!1,s=null){const{marketName:n,first:r,second:o}=l.Z.getMarketName(e,t);return l=>{if(e===t)return;let c=new Date;if(m[n]&&!a){if(c-m[n].lastFetched<6e4)return!1;a=!0}if(!m[n]||a){m[n]={lastFetched:new Date},i.Apis.instance().db_api()&&v.push({promise:i.Apis.instance().db_api().exec("get_ticker",[o.get("id"),r.get("id")]),market:n,base:o,quote:r}),A||(A=!0,setTimeout((()=>{e()}),1500));let e=()=>{let t=v.slice(0,500);return Promise.all(t.map((e=>e.promise))).then((a=>(l({tickers:a,markets:t.map((e=>e.market)),bases:t.map((e=>e.base)),quotes:t.map((e=>e.quote))}),v.splice(0,a.length),0===v.length?void(A=!1):e()))).catch((e=>{console.log("getMarketStats error for "+n+":",e),null!=s&&s(e)}))}}}}switchMarket(){return!0}async getTicker(e,t){return e instanceof Object&&(e=e.get("id")),t instanceof Object&&(t=t.get("id")),await i.Apis.instance().db_api().exec("get_ticker",[e,t])}subscribeMarket(e,t,a,s){void 0===s?s=E:E=s,k();let n=t.get("id")+"_"+e.get("id");_=e.get("id")+"_"+t.get("id");let{isMarketAsset:r,marketAsset:o,inverted:c}=l.Z.isMarketAsset(t,e);const d=200;return l=>{let u=(s,u)=>{s===_&&(y?f=f.concat(u):(f=f.concat(u),y=setTimeout((()=>{let s=!1,u=!0,p=!1;f.forEach((e=>{e.forEach((e=>{if("string"==typeof e){let t=e.split(".");t.length>=2&&"7"===t[1]?s=!0:u=!1}else u=!1,2===e.length&&e[0]&&4===e[0][0]&&(p=!0)}))}));let h=null,m=null;r&&(h=i.Apis.instance().db_api().exec("get_call_orders",[o.id,300]),m=i.Apis.instance().db_api().exec("get_settle_orders",[o.id,300]));let g=[],b=[];0!==w&&(g=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[e.get("id"),t.get("id"),w,null,100]),b=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[t.get("id"),e.get("id"),w,null,100]));let _=new Date,k=new Date,v=new Date,A=new Date;_=new Date(_.getTime()-a*d*1e3),k=new Date(k.getTime()-a*d*2e3),v=new Date(v.getTime()-a*d*3e3),A.setDate(A.getDate()+1),f=f.clear(),y=null,Promise.all([i.Apis.instance().db_api().exec("get_limit_orders",[e.get("id"),t.get("id"),300]),u?null:h,u?null:m,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,_.toISOString().slice(0,-5),A.toISOString().slice(0,-5)]):null,p?i.Apis.instance().history_api().exec("get_fill_order_history",[e.get("id"),t.get("id"),200]):null,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,k.toISOString().slice(0,-5),_.toISOString().slice(0,-5)]):null,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,v.toISOString().slice(0,-5),k.toISOString().slice(0,-5)]):null,i.Apis.instance().db_api().exec("get_ticker",[e.get("id"),t.get("id")]),g,b]).then((a=>{const s=a[5]||[],r=a[6]||[];l({limits:a[0],calls:!u&&a[1],settles:!u&&a[2],price:p&&s.concat(r.concat(a[3])),history:p&&a[4],market:n,base:e,quote:t,inverted:c,ticker:a[7],groupedOrdersBids:a[8],groupedOrdersAsks:a[9]})})).catch((e=>{console.log("Error in MarketsActions.subscribeMarket: ",e)}))}),500)))};if(!h[n]||p!==a||w!==s){l({switchMarket:!0}),p=a,w=s;let m=null,g=null;r&&(m=i.Apis.instance().db_api().exec("get_call_orders",[o.id,300]),g=i.Apis.instance().db_api().exec("get_settle_orders",[o.id,300]));let b=[],f=[];0!==w&&(b=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[e.get("id"),t.get("id"),w,null,100]),f=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[t.get("id"),e.get("id"),w,null,100]));let y=new Date,_=new Date,k=new Date,v=new Date;return y=new Date(y.getTime()-a*d*1e3),_=new Date(_.getTime()-a*d*2e3),k=new Date(k.getTime()-a*d*3e3),v.setDate(v.getDate()+1),new Promise(((s,r)=>{Promise.all([i.Apis.instance().db_api().exec("subscribe_to_market",[u.bind(this,e.get("id")+"_"+t.get("id")),e.get("id"),t.get("id")]),i.Apis.instance().db_api().exec("get_limit_orders",[e.get("id"),t.get("id"),300]),m,g,i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,y.toISOString().slice(0,-5),v.toISOString().slice(0,-5)]),i.Apis.instance().history_api().exec("get_market_history_buckets",[]),i.Apis.instance().history_api().exec("get_fill_order_history",[e.get("id"),t.get("id"),200]),i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,_.toISOString().slice(0,-5),y.toISOString().slice(0,-5)]),i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,k.toISOString().slice(0,-5),_.toISOString().slice(0,-5)]),i.Apis.instance().db_api().exec("get_ticker",[e.get("id"),t.get("id")]),b,f]).then((a=>{const r=a[8]||[],o=a[7]||[];h[n]=u,l({limits:a[1],calls:a[2],settles:a[3],price:r.concat(o.concat(a[4])),buckets:a[5],history:a[6],market:n,base:e,quote:t,inverted:c,ticker:a[9],init:!0,resolve:s,groupedOrdersBids:a[10],groupedOrdersAsks:a[11]})})).catch((e=>{console.log("Error in MarketsActions.subscribeMarket: ",e),r(e)}))}))}return Promise.resolve(!0)}}unSubscribeMarket(e,t){let a=e+"_"+t;return k(),s=>h[a]?new Promise(((n,r)=>{i.Apis.instance().db_api().exec("unsubscribe_from_market",[h[a],e,t]).then((()=>{delete h[a],s({unSub:!0,resolve:n})})).catch((e=>{h[a]=!0,console.log("Error in MarketsActions.unSubscribeMarket: ",e),s({unSub:!1,market:a}),r(e)}))})):Promise.resolve(!0)}createLimitOrder(e,t,a,s,i,l,c,d){var u=n.Z.new_transaction();let p=o.ChainStore.getAsset(d);return"1.3.0"===p.getIn(["options","core_exchange_rate","base","asset_id"])&&"1.3.0"===p.getIn(["options","core_exchange_rate","quote","asset_id"])&&(d="1.3.0"),u.add_type_operation("limit_order_create",{fee:{amount:0,asset_id:d},seller:e,amount_to_sell:{amount:t,asset_id:a.get("id")},min_to_receive:{amount:s,asset_id:i.get("id")},expiration:l,fill_or_kill:c}),e=>r.Z.process_transaction(u,null,!0).then((t=>(e(!0),!0))).catch((t=>(console.log("order error:",t),e({error:t}),{error:t})))}createLimitOrder2(e){var t=n.Z.new_transaction();let a=[];return Array.isArray(e)?a=e.map((e=>e.toObject())):a.push(e.toObject()),a.forEach((e=>{t.add_type_operation("limit_order_create",e)})),r.Z.process_transaction(t,null,!0).then((e=>!0)).catch((e=>(console.log("order error:",e),{error:e})))}createPredictionShort(e,t,a,s,o,i,l,d,u,p,h="1.3.0"){var m=n.Z.new_transaction();return h=c.Z.getFinalFeeAsset(e.seller,"call_order_update",e.fee.asset_id),e.setExpiration(),m.add_type_operation("call_order_update",{fee:{amount:0,asset_id:h},funding_account:e.seller,delta_collateral:t.toObject(),delta_debt:e.amount_for_sale.toObject(),expiration:e.getExpiration()}),m.add_type_operation("limit_order_create",e.toObject()),r.Z.process_transaction(m,null,!0).then((e=>!0)).catch((e=>(console.log("order error:",e),{error:e})))}cancelLimitOrder(e,t){let a=c.Z.getFinalFeeAsset(e,"limit_order_cancel");var s=n.Z.new_transaction();return s.add_type_operation("limit_order_cancel",{fee:{amount:0,asset_id:a},fee_paying_account:e,order:t}),r.Z.process_transaction(s,null,!0).catch((e=>{console.log("cancel error:",e)}))}cancelLimitOrders(e,t,a="1.3.0"){let s=n.Z.new_transaction(),o=c.Z.getAccountBalances(e);for(let n=0;n{if(o[e]<0)throw"Insufficient balance: "+e})),s.add_type_operation("limit_order_cancel",{fee:{amount:0,asset_id:d},fee_paying_account:e,order:r})}return r.Z.process_transaction(s,null,!0).catch((e=>{console.log("cancel error:",e)}))}cancelLimitOrderSuccess(e){return t=>{b?g=g.concat(e):(g=g.concat(e),b=setTimeout((()=>{t(g.toJS()),b=null,g=g.clear()}),500))}}closeCallOrderSuccess(e){return e}callOrderUpdate(e){return e}feedUpdate(e){return e}settleOrderUpdate(e){return t=>{i.Apis.instance().db_api().exec("get_settle_orders",[e,100]).then((e=>{t({settles:e})}))}}toggleStars(){return!0}getTrackedGroupsConfig(){return e=>{i.Apis.instance().orders_api().exec("get_tracked_groups",[]).then((t=>{e({trackedGroupsConfig:t})})).catch((t=>{console.log("current node api does not support grouped orders."),e({trackedGroupsConfig:[]})}))}}changeCurrentGroupLimit(e){return e}}),S={};x.clearMarketStatsInInterval=function(e){S[e]&&(clearInterval(S[e]),delete S[e])},x.getMarketStatsInterval=function(e,t,a,s=!1){x.getMarketStats(t,a,s);const{marketName:n}=l.Z.getMarketName(t,a);return S[n]||(S[n]=setInterval((()=>{x.getMarketStats(t,a,s,(()=>{x.clearMarketStatsInInterval(t,a)}))}),e)),x.clearMarketStatsInInterval.bind(this,n)};const C=x},31972:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{addNotification(e){return n(e)}success(e){return n(e,"success")}error(e){return n(e,"error")}warning(e){return n(e,"warning")}info(e){return n(e,"info")}});var n=(e,t)=>("string"==typeof e&&(e={message:e}),t&&(e.level=t),e)},43143:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{addKey(e,t){return a=>new Promise((s=>{a({private_key_object:e,transaction:t,resolve:s})}))}loadDbData(){return e=>new Promise((t=>{e(t)}))}})},55294:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{changeSetting(e){return e}changeViewSetting(e){return e}changeMarketDirection(e){return e}addStarMarket(e,t){return{quote:e,base:t}}removeStarMarket(e,t){return{quote:e,base:t}}clearStarredMarkets(){return!0}setUserMarket(e,t,a){return{quote:e,base:t,value:a}}addWS(e){return e}removeWS(e){return e}hideWS(e){return e}showWS(e){return e}hideAsset(e,t){return{id:e,status:t}}hideMarket(e,t){return{id:e,status:t}}clearSettings(){return e=>new Promise((t=>{e(t)}))}updateLatencies(e){return e}setExchangeLastExpiration(e){return e}setExchangeTutorialShown(e){return e}modifyPreferedBases(e){return e}updateUnits(){return!0}setPriceAlert(e){return e}hideNewsHeadline(e){return e}addChartLayout(e){return e}deleteChartLayout(e){return e}})},69778:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(57296),n=a(55420),r=a(112),o=a.n(r),i=a(88209),l=a.n(i);const c=s.Z.createActions(class{confirm(e,t,a){return{transaction:e,resolve:t,reject:a}}broadcast(e,t,a){return s=>{s({broadcasting:!0,closed:!0});let r=setTimeout((()=>{s({broadcast:!1,broadcasting:!1,error:o().translate("trx_error.expire"),closed:!1}),a&&a()}),2e3*n.ChainConfig.expire_in_secs);e.broadcast((()=>{s({broadcasting:!1,broadcast:!0})})).then((e=>{clearTimeout(r),s({error:null,broadcasting:!1,broadcast:!0,included:!0,trx_id:e[0].id,trx_block_num:e[0].block_num,broadcasted_transaction:!0}),t&&t(e)})).catch((e=>{console.error(e),clearTimeout(r);let t,n,o="An error occured while broadcasting",i={},l=e.message.split("\n");if(1==l.length)o=l[0];else if(l.length>1)try{i=JSON.parse(l[1]),t=i.data,n=i.code,o=i.message}catch(e){l=l.map((e=>{try{let t=JSON.stringify(JSON.parse(e.substring(e.indexOf("{"),e.lastIndexOf("}")+1)),null,4);return e.substring(0,e.indexOf("{"))+"\n"+t+"\n"+e.substring(e.lastIndexOf("}")+1,e.length)}catch(t){return e}})),n=l[0],t=l.slice(1,l.length).join("\n")}s({broadcast:!1,broadcasting:!1,error:o,closed:!1,error_code:n,error_data:t}),a&&a()}))}}wasBroadcast(e){return e}wasIncluded(e){return e}close(e){return e(),l().publish("transaction_confirm_actions","close"),!0}error(e){return{error:e}}togglePropose(){return!0}proposeFeePayingAccount(e){return e}})},28969:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(41075),n=a(56934),r=a(99659),o=a(11390),i=a(30806),l=a(55420),c=a(57296),d=a(39014);const u=c.Z.createActions(class{restore(e="default",t){return{wallet_name:e=e.toLowerCase(),wallet_object:t}}setWallet(e,t,a){return n.Z.lock(),e||(e="default"),s=>new Promise((n=>{s({wallet_name:e,create_wallet_password:t,brnkey:a,resolve:n})}))}setBackupDate(){return r.Z.set("backup_recommended",!1),!0}setBrainkeyBackupDate(){return!0}deleteWallet(e){return e}createAccountWithPassword(e,t,a,n,r,i){let{privKey:l}=s.Z.generateKeyFromPassword(e,"owner",t),{privKey:c}=s.Z.generateKeyFromPassword(e,"active",t),{privKey:u}=s.Z.generateKeyFromPassword(e,"memo",t);return console.log("create account:",e),console.log("new active pubkey",c.toPublicKey().toPublicKeyString()),console.log("new owner pubkey",l.toPublicKey().toPublicKeyString()),console.log("new memo pubkey",u.toPublicKey().toPublicKeyString()),new Promise(((t,s)=>{if(a)return o.Z.create_account(l.toPublicKey().toPublicKeyString(),c.toPublicKey().toPublicKeyString(),u.toPublicKey().toPublicKeyString(),e,a,n,r,!0).then(t).catch(s);{let a=d.Z.getSetting("faucet_address");return window&&window.location&&"https:"===window.location.protocol&&(a=a.replace(/http:\/\//,"https://")),fetch(a+"/api/v1/accounts",{method:"post",mode:"cors",headers:{Accept:"application/json","Content-type":"application/json"},body:JSON.stringify({account:{name:e,owner_key:l.toPublicKey().toPublicKeyString(),active_key:c.toPublicKey().toPublicKeyString(),memo_key:u.toPublicKey().toPublicKeyString(),refcode:i,referrer:n}})}).then((e=>e.json().then((e=>{!e||e&&e.error?s(e.error):t(e)})))).catch(s).then((e=>{e&&e.error?s(e.error):t(e)})).catch((e=>{s(e)}))}}))}createAccount(e,t,a,n,r){if(s.Z.isLocked()){let e="wallet locked";return Promise.reject(e)}let i=s.Z.generateNextKey(),l=s.Z.generateNextKey(),c=s.Z.generateNextKey(),u=()=>{let e=s.Z.transaction_update_keys();return s.Z.saveKeys([i,l,c],e).catch((()=>e.abort()))};if(t)return o.Z.create_account(i.private_key.toPublicKey().toPublicKeyString(),l.private_key.toPublicKey().toPublicKeyString(),c.private_key.toPublicKey().toPublicKeyString(),e,t,a,n,!0).then((()=>u()));{let t=d.Z.getSetting("faucet_address");return window&&window.location&&"https:"===window.location.protocol&&(t=t.replace(/http:\/\//,"https://")),fetch(t+"/api/v1/accounts",{method:"post",mode:"cors",headers:{Accept:"application/json","Content-type":"application/json"},body:JSON.stringify({account:{name:e,owner_key:i.private_key.toPublicKey().toPublicKeyString(),active_key:l.private_key.toPublicKey().toPublicKeyString(),memo_key:l.private_key.toPublicKey().toPublicKeyString(),refcode:r,referrer:a}})}).then((e=>e.json())).then((e=>{if(e.error)throw e.error;return u()})).catch((e=>{throw s.Z.decrementBrainKeySequence(),s.Z.decrementBrainKeySequence(),s.Z.decrementBrainKeySequence(),e}))}}claimVestingBalance(e,t,a=!1){let n,r,o=new i.TransactionBuilder;if(t&&(n=t.balance.amount,r=2===t.policy[0]||0===t.policy[1].vesting_seconds||a?1:0,!r&&t.policy&&2!==t.policy[0])){let e=Math.floor(new Date(t.policy[1].start_claim+"Z").getTime()/1e3),a=Math.floor((new Date).getTime()/1e3);if(e>0)a-e>=t.policy[1].vesting_seconds&&(r=1);else{let e=Math.floor(new Date(t.policy[1].coin_seconds_earned_last_update+"Z").getTime()/1e3);r=(parseFloat(t.policy[1].coin_seconds_earned)+n*(a-e))/(t.policy[1].vesting_seconds*n),r=r>1?1:r}}return o.add_type_operation("vesting_balance_withdraw",{fee:{amount:"0",asset_id:"1.3.0"},owner:e,vesting_balance:t.id,amount:{amount:Math.floor(n*r),asset_id:t.balance.asset_id}}),s.Z.process_transaction(o,null,!0).then((e=>{})).catch((e=>{console.log("vesting_balance_withdraw err:",e)}))}importBalance(e,t,a){return r=>new Promise(((o,c)=>{l.Apis.instance().db_api();let d=(0,i.FetchChain)("getAccount",e),u=n.Z.unlock();o(Promise.all([u,d]).then((n=>{let o=n[1];if(null==o)return Promise.reject("Unknown account "+e);let l=[],c={};for(let e of t){let t,{vested_balance:a,public_key_string:s}=e;if(a){if(0==a.amount)continue;t=a.amount}else t=e.balance.amount;if(a&&a.asset_id!=e.balance.asset_id)throw new Error("Vested balance record and balance record asset_id missmatch",a.asset_id,e.balance.asset_id);c[s]=!0,l.push({fee:{amount:"0",asset_id:"1.3.0"},deposit_to_account:o.get("id"),balance_to_claim:e.id,balance_owner_key:s,total_claimed:{amount:t,asset_id:e.balance.asset_id}})}let d=new i.TransactionBuilder;for(let e of l)d.add_type_operation("balance_claim",e);return d.set_expire_seconds(900+l.length),s.Z.process_transaction(d,Object.keys(c),a).then((e=>(r(!0),e)))})).catch((()=>{})))}))}})},56934:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(57296).Z.createActions(class{unlock(){return e=>new Promise(((t,a)=>{e({resolve:t,reject:a})})).then((e=>{e&&s.change()})).catch((e=>{throw e}))}lock(){return e=>new Promise((t=>{e({resolve:t})})).then((e=>{e&&s.change()}))}cancel(){return!0}change(){return!0}checkLock(){return!0}});const n=s},57296:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=new(a(58830).Z)},11390:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(56934),n=a(36345),r=a(41075),o=a(30806),i=a(112),l=a.n(i),c=a(76660),d=a(48764).Buffer;const u={create_account:(e,t,a,s,i,l,c,d=!1)=>(o.ChainValidation.required(i,"registrar_id"),o.ChainValidation.required(l,"referrer_id"),new Promise(((u,p)=>Promise.all([(0,o.FetchChain)("getAccount",i),(0,o.FetchChain)("getAccount",l)]).then((l=>{let[h,m]=l,g=new o.TransactionBuilder;return g.add_type_operation("account_create",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(i,"account_create")},registrar:h.get("id"),referrer:m.get("id"),referrer_percent:c,name:s,owner:{weight_threshold:1,account_auths:[],key_auths:[[e,1]],address_auths:[]},active:{weight_threshold:1,account_auths:[],key_auths:[[t,1]],address_auths:[]},options:{memo_key:a,voting_account:"1.2.5",num_witness:0,num_committee:0,votes:[]}}),r.Z.process_transaction(g,null,d).then((e=>{console.log("process_transaction then",e),u()})).catch((e=>{console.log("process_transaction catch",e),p(e)}))}))))),_get_memo_keys(e,t=!0){let a={public_key:null,private_key:null};if(a.public_key=e.getIn(["options","memo_key"]),/111111111111111111111/.test(a.public_key)&&(a.public_key=null),t&&(a.private_key=r.Z.getPrivateKey(a.public_key),!a.private_key))throw c.Notification.error({message:l().translate("account.errors.memo_missing")}),new Error("Missing private memo key for sender: "+e.get("name"));return a},_create_transfer_op({from_account:e,to_account:t,amount:a,asset:r,memo:i,propose_account:l=null,encrypt_memo:c=!0,optional_nonce:u=null,fee_asset_id:p=null,transactionBuilder:h=null}){let m=s.Z.unlock();p||(p=n.Z.getFinalFeeAsset(e,"transfer"));let g=l||e;return Promise.all([(0,o.FetchChain)("getAccount",e),(0,o.FetchChain)("getAccount",t),(0,o.FetchChain)("getAccount",g),(0,o.FetchChain)("getAsset",r),(0,o.FetchChain)("getAsset",p),m]).then((e=>{let t,[s,n,r,m,g]=e,b=null;if(l&&(b=r),i){let e=this._get_memo_keys(r,c),a=this._get_memo_keys(n,!1);if(e.public_key&&a.public_key){let s=null==u?o.TransactionHelper.unique_nonce_uint64():u;t={from:e.public_key,to:a.public_key,nonce:s,message:c?o.Aes.encrypt_with_checksum(e.private_key,a.public_key,s,i):d.isBuffer(i)?i.toString("utf-8"):i}}}let f=g.toJS();"1.3.0"===f.options.core_exchange_rate.base.asset_id&&"1.3.0"===f.options.core_exchange_rate.quote.asset_id&&(p="1.3.0");let y=null;return y=null==h?new o.TransactionBuilder:h,{transfer_op:y.get_type_operation("transfer",{fee:{amount:0,asset_id:p},from:s.get("id"),to:n.get("id"),amount:{amount:a,asset_id:m.get("id")},memo:t}),chain_from:s,chain_to:n,chain_propose_account:b,chain_memo_sender:r,chain_asset:m,chain_fee_asset:g}})).catch((e=>{console.error(e)}))},transfer({from_account:e,to_account:t,amount:a,asset:s,memo:n,broadcast:i=!0,encrypt_memo:l=!0,optional_nonce:c=null,propose_account:d=null,fee_asset_id:u=null,transactionBuilder:p=null}){return null==p&&(p=new o.TransactionBuilder),this._create_transfer_op({from_account:e,to_account:t,amount:a,asset:s,memo:n,propose_account:d,encrypt_memo:l,optional_nonce:c,fee_asset_id:u,transactionBuilder:p}).then((e=>p.update_head_block().then((()=>(d?p.add_type_operation("proposal_create",{proposed_ops:[{op:e.transfer_op}],fee_paying_account:e.chain_propose_account.get("id")}):p.add_operation(e.transfer_op),r.Z.process_transaction(p,null,i)))).catch((e=>{console.error(e)}))))},transfer_list(e,t=null){return s.Z.unlock().then((()=>{let a=null,s=[],i=new o.TransactionBuilder;return e.forEach((e=>{e.transactionBuilder=i,s.push(this._create_transfer_op(e))})),Promise.all(s).then((s=>i.update_head_block().then((()=>{let o=[];return s.forEach(((s,r)=>{e[r].propose_account?(null==a&&(a=s.chain_propose_account,t||(t=n.Z.getFinalFeeAsset(a,"proposal_create")),"string"!=typeof t&&(t=t.get("id"))),o.push({op:s.transfer_op})):i.add_operation(s.transfer_op)})),i.add_type_operation("proposal_create",{fee:{amount:0,asset_id:t},proposed_ops:o,fee_paying_account:a.get("id")}),r.Z.process_transaction(i,null,!0)})))).catch((e=>{console.log(e)}))}))},issue_asset(e,t,a,i,l,c=!0,u=null){let p=s.Z.unlock();return Promise.all([(0,o.FetchChain)("getAccount",t),(0,o.FetchChain)("getAccount",e),p]).then((s=>{let p,h,m,g,[b,f]=s;if(l&&c&&(p=b.getIn(["options","memo_key"]),/111111111111111111111/.test(p)&&(p=null),h=f.getIn(["options","memo_key"]),/111111111111111111111/.test(h)&&(h=null)),c&&l&&(m=r.Z.getPrivateKey(p),!m))throw new Error("Missing private memo key for sender: "+t);if(l&&h&&p){let e=null==u?o.TransactionHelper.unique_nonce_uint64():u;g={from:p,to:h,nonce:e,message:c?o.Aes.encrypt_with_checksum(m,h,e,l):d.isBuffer(l)?l.toString("utf-8"):l}}let y=new o.TransactionBuilder;return y.add_type_operation("asset_issue",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(t,"asset_issue")},issuer:t,asset_to_issue:{amount:i,asset_id:a},issue_to_account:e,memo:g}),r.Z.process_transaction(y,null,!0)}))},createWorker:(e,t)=>new Promise(((a,s)=>{let i=new o.TransactionBuilder;const l=o.ChainStore.getAsset("1.3.0");l||s(new Error("Can't find core asset, please try again"));let c=Math.pow(10,l.get("precision"));const d=o.ChainStore.getAccount(t).get("id");d||s(new Error("Can't find the owner account, please try again"));try{i.add_type_operation("worker_create",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(t,"worker_create")},owner:d,work_begin_date:e.start,work_end_date:e.end,daily_pay:e.pay*c,name:e.title,url:e.url,initializer:[1,{pay_vesting_period_days:e.vesting}]})}catch(e){s(e)}r.Z.process_transaction(i,null,!0).then(a).catch(s)})),updateAccount(e){let t=new o.TransactionBuilder;return t.add_type_operation("account_update",e),r.Z.process_transaction(t,null,!0)},_ensureAccount:async e=>"object"==typeof e&&e.get("id")?e:await(0,o.FetchChain)("getAccount",e,!1),_ensureAsset:async e=>"object"==typeof e&&e.get("id")?e:await(0,o.FetchChain)("getAsset",e),async createWithdrawPermission(e,t,a,i,l,c,d=null,u=null,p=!0){null==d&&(d=new Date),"number"==typeof d&&(d=new Date(d)),await s.Z.unlock(),u||(u=n.Z.getFinalFeeAsset(e,"withdraw_permission_create"));let h={from:await this._ensureAccount(e),to:await this._ensureAccount(t),limitAsset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(u)},m=new o.TransactionBuilder,g=m.get_type_operation("withdraw_permission_create",{fee:{amount:0,asset_id:h.feeAsset.get("id")},withdraw_from_account:h.from.get("id"),authorized_account:h.to.get("id"),withdrawal_limit:{amount:i,asset_id:h.limitAsset.get("id")},withdrawal_period_sec:l,periods_until_expiration:c,period_start_time:d});if(m.add_operation(g),await r.Z.process_transaction(m,null,p),!m.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async updateWithdrawPermission(e,t,a,i,l,c,d,u=null,p=null,h=!0){null==u&&(u=new Date),"number"==typeof u&&(u=new Date(u)),await s.Z.unlock(),p||(p=n.Z.getFinalFeeAsset(t,"withdraw_permission_update"));let m={from:await this._ensureAccount(t),to:await this._ensureAccount(a),limitAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(p)},g=new o.TransactionBuilder,b=g.get_type_operation("withdraw_permission_update",{permission_to_update:e,fee:{amount:0,asset_id:m.feeAsset.get("id")},withdraw_from_account:m.from.get("id"),authorized_account:m.to.get("id"),withdrawal_limit:{amount:l,asset_id:m.limitAsset.get("id")},withdrawal_period_sec:c,periods_until_expiration:d,period_start_time:u});if(g.add_operation(b),await r.Z.process_transaction(g,null,h),!g.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async claimWithdrawPermission(e,t,a,i,l,c=null,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(a,"withdraw_permission_claim"));let p,h={from:await this._ensureAccount(t),to:await this._ensureAccount(a),claimAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)};if(c){let e=this._get_memo_keys(h.to,!0),t=this._get_memo_keys(h.from,!1);if(e.public_key&&t.public_key){let a=o.TransactionHelper.unique_nonce_uint64();p={from:e.public_key,to:t.public_key,nonce:a,message:o.Aes.encrypt_with_checksum(e.private_key,t.public_key,a,c)}}}let m=new o.TransactionBuilder,g=m.get_type_operation("withdraw_permission_claim",{fee:{amount:0,asset_id:h.feeAsset.get("id")},withdraw_permission:e,withdraw_from_account:h.from.get("id"),withdraw_to_account:h.to.get("id"),amount_to_withdraw:{amount:l,asset_id:h.claimAsset.get("id")},memo:p||void 0});if(m.add_operation(g),await r.Z.process_transaction(m,null,u),!m.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async deleteWithdrawPermission(e,t,a,i=null,l=!0){await s.Z.unlock(),i||(i=n.Z.getFinalFeeAsset(t,"withdraw_permission_delete"));let c={from:await this._ensureAccount(t),to:await this._ensureAccount(a),feeAsset:await this._ensureAsset(i)},d=new o.TransactionBuilder,u=d.get_type_operation("withdraw_permission_delete",{fee:{amount:0,asset_id:c.feeAsset.get("id")},withdrawal_permission:e,withdraw_from_account:c.from.get("id"),authorized_account:c.to.get("id")});if(d.add_operation(u),await r.Z.process_transaction(d,null,l),!d.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async createVestingBalance(e,t,a,i,l,c=null,d=!0){await s.Z.unlock(),c||(c=n.Z.getFinalFeeAsset(e,"vesting_balance_create"));let u={creator:await this._ensureAccount(e),owner:await this._ensureAccount(t),asset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(c)},p=new o.TransactionBuilder,h=p.get_type_operation("vesting_balance_create",{fee:{amount:0,asset_id:u.feeAsset.get("id")},creator:u.creator.get("id"),owner:u.owner.get("id"),amount:{amount:i,asset_id:u.asset.get("id")},policy:l});if(p.add_operation(h),await r.Z.process_transaction(p,null,d),!p.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async createTicket(e,t,a,i=o.ChainTypes.ticket_type.lock_forever,l=null,c=!0){await s.Z.unlock(),l||(l=n.Z.getFinalFeeAsset(e,"ticket_create"));let d={account:await this._ensureAccount(e),asset:await this._ensureAsset(t),feeAsset:await this._ensureAsset(l)},u=new o.TransactionBuilder,p=u.get_type_operation("ticket_create",{fee:{amount:0,asset_id:d.feeAsset.get("id")},account:d.account.get("id"),target_type:i,amount:{amount:a,asset_id:d.asset.get("id")},extensions:{}});if(u.add_operation(p),await r.Z.process_transaction(u,null,c),!u.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolCreate(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_create"));let p={account:await this._ensureAccount(e),assetA:await this._ensureAsset(t),assetB:await this._ensureAsset(a),shareAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_create",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),asset_a:p.assetA.get("id"),asset_b:p.assetB.get("id"),share_asset:p.shareAsset.get("id"),taker_fee_percent:l,withdrawal_fee_percent:c,extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolDelete(e,t,a=null,i=!0){await s.Z.unlock(),a||(a=n.Z.getFinalFeeAsset(e,"liquidity_pool_delete"));let l={account:await this._ensureAccount(e),feeAsset:await this._ensureAsset(a)},c=new o.TransactionBuilder,d=c.get_type_operation("liquidity_pool_delete",{fee:{amount:0,asset_id:l.feeAsset.get("id")},account:l.account.get("id"),pool:t,extensions:{}});if(c.add_operation(d),await r.Z.process_transaction(c,null,i),!c.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolDeposit(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_deposit"));let p={account:await this._ensureAccount(e),assetA:await this._ensureAsset(a),assetB:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_deposit",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),pool:t,amount_a:{amount:l,asset_id:p.assetA.get("id")},amount_b:{amount:c,asset_id:p.assetB.get("id")},extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolWithdraw(e,t,a,i,l=null,c=!0){await s.Z.unlock(),l||(l=n.Z.getFinalFeeAsset(e,"liquidity_pool_withdraw"));let d={account:await this._ensureAccount(e),shareAsset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(l)},u=new o.TransactionBuilder,p=u.get_type_operation("liquidity_pool_withdraw",{fee:{amount:0,asset_id:d.feeAsset.get("id")},account:d.account.get("id"),pool:t,share_amount:{amount:i,asset_id:d.shareAsset.get("id")},extensions:{}});if(u.add_operation(p),await r.Z.process_transaction(u,null,c),!u.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolExchange(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_exchange"));let p={account:await this._ensureAccount(e),saleAsset:await this._ensureAsset(a),receiveAsset:await this._ensureAsset(l),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_exchange",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),pool:t,amount_to_sell:{amount:i,asset_id:p.saleAsset.get("id")},min_to_receive:{amount:c,asset_id:p.receiveAsset.get("id")},extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"}}},55894:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(30806),n=a(11390);const r={new_transaction:()=>new s.TransactionBuilder,sign_and_broadcast:(e,t=!0)=>(s.SerializerValidation.required(e,"transaction"),WalletDb.process_transaction(e,null,t)),template(e){let t=s.TransactionHelper.template(e,{use_default:!0,annotate:!0});return console.error(JSON.stringify(t,null,4)),t=s.TransactionHelper.template(e,{use_default:!0,annotate:!1}),console.error(JSON.stringify(t)),t},transfer:(e,t,a,s,r,o=!0,i=!0,l=null)=>(console.error("deprecated, call application_api.transfer instead"),n.Z.transfer({from_account_id:e,to_account_id:t,amount:a,asset:s,memo_message:r,broadcast:o,encrypt_memo:i,optional_nonce:l}))}},91507:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(55420);const n=new class{lookupAccounts(e,t){return s.Apis.instance().db_api().exec("lookup_accounts",[e,t],!1)}lookupAccountByPublicKey(e){return s.Apis.instance().db_api().exec("get_key_references",[[e]])}}},21712:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d,Eu:()=>i,GB:()=>h,Jg:()=>u,Jt:()=>l,M1:()=>p,MU:()=>b,V9:()=>m,gL:()=>n,mk:()=>g,q:()=>r,ul:()=>c,yP:()=>o});var s=a(60567);const n={BASE:"https://api.ioxbank.com/bitshares",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",NEW_DEPOSIT_ADDRESS:"/simple-api/initiate-trade"},r={BASE:"https://api.blocktrades.us/v2",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},o={BASE:"https://ol-api1.openledger.info/api/v0/ol/support",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount",RPC_URL:"https://openledger.info/api/"},i={BASE:"https://gateway.rudex.org/api/rudex",COINS_LIST:"/coins",NEW_DEPOSIT_ADDRESS:"/simple-api/initiate-trade"},l={BASE:"https://dex-api.bitspark.io/api/v1",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},c={BASE:"https://api.crypto-bridge.org/api/v1",COINS_LIST:"/coins",ACTIVE_WALLETS:"/wallets",MARKETS:"/markets",TRADING_PAIRS:"/trading-pairs"},d={BASE:"https://citadel.li/trade",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},u={BASE:"https://openapi.52bts.net/adjust",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs"},p={BASE:"https://api.52bts.net",ASSET_LIST:"/gateway/asset/assetList",ASSET_DETAIL:"/gateway/asset/assetDetail",GET_DEPOSIT_ADDRESS:"/gateway/address/getAddress",CHECK_WITHDRAY_ADDRESS:"/gateway/address/checkAddress",DEPOSIT_RECORD_LIST:"/gateway/deposit/recordList",DEPOSIT_RECORD_DETAIL:"/gateway/deposit/recordDetail",WITHDRAW_RECORD_LIST:"/gateway/withdraw/recordList",WITHDRAW_RECORD_DETAIL:"/gateway/withdraw/recordDetail",GET_USER_INFO:"/gateway/user/getUserInfo",USER_AGREEMENT:"/gateway/user/isAgree",WITHDRAW_RULE:"/gateway/withdraw/rule"},h={BASE:"https://piratecash.net/dexapi",COINS_LIST:"/coins"},m={BASE:"https://apis.xbts.io/api/v2",COINS_LIST:"/coin"},g=["Northern Europe","Western Europe","Southern Europe","Eastern Europe","Northern Asia","Western Asia","Southern Asia","Eastern Asia","Central Asia","Southeastern Asia","Australia and New Zealand","Melanesia","Polynesia","Micronesia","Northern Africa","Western Africa","Middle Africa","Eastern Africa","Southern Africa","Northern America","Central America","Caribbean","South America"],b={DEFAULT_WS_NODE:"wss://fake.automatic-selection.com",WS_NODE_LIST:[{url:"wss://fake.automatic-selection.com",location:{translate:"settings.api_closest"}},{url:"ws://127.0.0.1:8090",location:"Locally hosted"},{url:"wss://dex.iobanker.com/ws",region:"Western Europe",country:"Germany",location:"Frankfurt",operator:"Witness: iobanker-core",contact:"email:admin@iobanker.com"},{url:"wss://api.bts.btspp.io:10100",region:"Eastern Asia",country:"China",location:"Hangzhou",operator:"Witness: btspp-witness",contact:"telegram:btsplusplus"},{url:"wss://api.bts.mobi/ws",region:"Northern America",country:"U.S.A.",location:"Virginia",operator:"Witness: in.abit",contact:"telegram:abitmore"},{url:"wss://btsws.roelandp.nl/ws",region:"Northern Europe",country:"Finland",location:"Helsinki",operator:"Witness: roelandp",contact:"telegram:roelandp"},{url:"wss://btsapi.magicw.net/ws",region:"Eastern Asia",country:"China",location:"Hangzhou",operator:"Witness: magicwallet.witness",contact:"telegram:plus_wave"},{url:"wss://api.61bts.com",region:"Eastern Asia",country:"China",location:"Shandong",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api-us.61bts.com",region:"Northern America",country:"USA",location:"St. Louis",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api.dex.trading/",region:"Western Europe",country:"France",location:"Paris",operator:"Witness: zapata42-witness",contact:"telegram:Zapata_42"},{url:"wss://eu.nodes.bitshares.ws",region:"Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: blocksights",contact:"telegram:blocksights"},{url:"wss://public.xbts.io/ws",region:"Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://cloud.xbts.io/ws",region:"Northern America",country:"U.S.A.",location:"VG, Ashburn",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://node.xbts.io/ws",region:"Western Europe",country:"Germany",location:"Falkenstein",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://bts.mypi.win",region:"Northern America",country:"U.S.A.",location:"Seattle, CA",operator:"Witness: gbac-ety001",contact:"email:work@akawa.ink"},{url:"wss://api.btslebin.com/ws",region:"Eastern Asia",country:"China",location:"Hong Kong",operator:"Witness: lebin-witness",contact:"telegram: lebinbit"},{url:"wss://bitsharesapi.loclx.io",region:"North America",country:"United States",location:"Chicago",operator:"bitshares.info",contact:"telegram:brekyrself"},{url:"wss://eu.nodes.testnet.bitshares.ws",region:"TESTNET - Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: blocksights",contact:"telegram:blocksights"},{url:"wss://testnet.dex.trading/",region:"TESTNET - Western Europe",country:"France",location:"Paris",operator:"Witness: zapata42-witness",contact:"telegram:Zapata_42"},{url:"wss://testnet.xbts.io/ws",region:"TESTNET - Europe",country:"Germany",location:"Nuremberg",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://api-testnet.61bts.com/ws",region:"Eastern Asia",country:"China",location:"Shandong",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api-us-testnet.61bts.com/ws",region:"Northern America",country:"USA",location:"St. Louis",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://btstestnet.cybertron.ninja/ws",region:"Northern America",country:"USA",location:"Utah",operator:"Witness: cn-faucet-test",contact:"email:codinheim@protonmail.com"},{url:"wss://bitsharestestnet.loclx.io",region:"Northern America",country:"USA",location:"Chicago",operator:"bitshares.info",contact:"telegram:brekyrself"}],ES_WRAPPER_LIST:[{url:"https://api.bitshares.ws/openexplorer",region:"Western Europe",country:"Germany",operator:"blocksights.info",contact:"telegram:blocksights"}],DEFAULT_FAUCET:(0,s.dM)().url,TESTNET_FAUCET:(0,s.GE)().url}},8804:(e,t,a)=>{a(37344),a(34921),a(44532),a(4552),a(32316),a(30649),a(6717),a(88918),a(41450),a(24019),a(77399),a(33902),a(59639),a(57681),a(57202),a(10372),a(93815),a(58728),a(65731),a(8476),a(79063),a(44851),a(20170),a(81610),a(72794),a(34661),a(47868),a(53289),a(61010),a(89776),a(22425),a(8971),a(17038),a(14935),a(64254),a(57634),a(47987),a(90378),a(65968),a(51797),a(6644),a(46195),a(41519),a(19612),a(99042),a(78331),a(72590),a(90037),a(26275),a(15234),a(34389),a(80790),a(74384),a(37199),a(44301),a(97835),a(6418),a(13221),a(87554),a(80265),a(10853),a(5228),a(51482),a(23254),a(1904),a(43368),a(21113),a(99139),a(50623),a(67063),a(92124),a(8131),a(36324),a(83408),a(89951),a(89773),a(61139),a(85977),a(81551),a(32275),a(13538),a(31253),a(63016),a(86741),a(64652),a(58661),a(54849),a(6047),a(26203),a(90859),a(1185),a(75919),a(42364),a(5119),a(25585),a(44704),a(18625),a(65953),a(89745),a(48810),a(86946),a(13176),a(59929)},86342:(e,t,a)=>{a(15663),a(2),a(33508),a(21912),a(69426),a(94770),a(118),a(27599),a(62821),a(87664),a(86633)},28065:(e,t,a)=>{a(24242),a(59628),a(30210),a(9967),a(72484),a(71466),a(89907),a(12710),a(79710),a(63600)},49181:(e,t,a)=>{a(71146),a(87056),a(76124),a(57147),a(42482),a(8804),a(86342),a(28065)},89515:e=>{e.exports=["de","es","fr","ko","it","tr","ru","zh","ja"]},60567:(e,t,a)=>{"use strict";a.d(t,{GE:()=>l,R7:()=>c,S2:()=>f,Sf:()=>_,Vx:()=>d,aJ:()=>b,dM:()=>i,dP:()=>o,f1:()=>u,qq:()=>k,rC:()=>y,rY:()=>p,sH:()=>w,sY:()=>g,v:()=>h,w:()=>r,wV:()=>m});var s=a(55420);function n(){return"4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8"!==s.Apis.instance().chain_id}function r(){return"BitShares"}function o(){return"https://wallet.bitshares.org"}function i(){return{url:"https://faucet.bitshares.eu/onboarding",show:!0,editable:!1,referrer:"onboarding.bitshares.foundation"}}function l(){return{url:"https://faucet.testnet.bitshares.eu",show:!0,editable:!1}}function c(){return a(30821).Z}function d(){return"darkTheme"}function u(){return"password"}function p(){return n()?["TEST"]:["BTS","USD","CNY","BTC","EUR","GBP"]}function h(){return n()?"USD_TEST":"BTS_CNY"}function m(){return n()?["TEST"]:["BTS","BTC","CNY","USD","USDT","ETH"]}function g(){if(n())return["TEST"];let e={nativeTokens:["BTC","BTC1.0","BTS","CNY","CNY1.0","EUR","EUR1.0","GOLD","GOLD1.0","RUBLE","RUB1.0","SILVER","SILVER1.0","USD","USD1.0"],gdexTokens:["GDEX.BTC","GDEX.BTO","GDEX.EOS","GDEX.ETH","GDEX.BKBT","GDEX.GXC","GDEX.SEER","GDEX.FOTA","GDEX.JRC","GDEX.EOSDAC","GDEX.MTS","GDEX.GUSD","GDEX.IQ","GDEX.NULS","GDEX.USDT"],openledgerTokens:[],rudexTokens:[],piratecashTockens:["PIRATE.PIRATE","PIRATE.BTC","PIRATE.LTC","PIRATE.BCC","PIRATE.DOGE","PIRATE.COSA"],xbtsxTokens:["XBTSX.STH","XBTSX.POST","XBTSX.DOGE","XBTSX.BTC","XBTSX.LTC","XBTSX.DASH","XBTSX.BTG","XBTSX.NVC","XBTSX.42","XBTSX.NMC","XBTSX.WAVES","XBTSX.ETH","XBTSX.ONION","XBTSX.EGC","XBTSX.BCH","XBTSX.MDL","XBTSX.SKY","XBTSX.SLB","XBTSX.GRS","XBTSX.XSM","XBTSX.XBB","XBTSX.EXR","XBTSX.BCCX","XBTSX.GUAP","XBTSX.AXAI","XBTSX.TUSD","XBTSX.USDT","XBTSX.RVN","XBTSX.TRD","XBTSX.SCH","XBTSX.USDN","XBTSX.FIL","XBTSX.EOS","XBTSX.RUB","XBTSX.USD","XBTSX.EUR","XBTSX.VTC","XBTSX.USDC","XBTSX.BAT","XBTSX.PING","XBTSX.ATRI","XBTSX.BNB","XBTSX.BUSD","XBTSX.TRX","XBTSX.HT","XBTSX.XRP","XBTSX.SHU","XBTSX.UNI","XBTSX.HIVE","XBTSX.EMC","XBTSX.NESS","XBTSX.PPC","XBTSX.SHIB","XBTSX.HBD","XBTSX.PIVX","XBTSX.AVAX","XBTSX.RTM","XBTSX.XAUT","XBTSX.TUSC","XBTSX.MATIC","XBTSX.HVQ","XBTSX.TCG","XBTSX.NCH","XBTSX.LUNR","XBTSX.LUNAREUM"],honestTokens:["HONEST","HONEST.MONEY","HONEST.AGORISM","HONEST.DEV","HONEST.CNY","HONEST.USD","HONEST.BTC","HONEST.XAU","HONEST.XAG","HONEST.ETH","HONEST.XRP","HONEST.XRP1","HONEST.ETH1","HONEST.USDSHORT","HONEST.BTCSHORT","HONEST.ADA","HONEST.DOT","HONEST.LTC","HONEST.SOL","HONEST.XMR","HONEST.ATOM","HONEST.XLM","HONEST.ALGO","HONEST.FIL","HONEST.EOS","HONEST.RUB","HONEST.EUR","HONEST.GBP","HONEST.JPY","HONEST.KRW","HONEST.ADASHORT","HONEST.DOTSHORT","HONEST.LTCSHORT","HONEST.SOLSHORT","HONEST.XMRSHORT","HONEST.ATOMSHORT","HONEST.XLMSHORT","HONEST.ALGOSHORT","HONEST.FILSHORT","HONEST.EOSSHORT","HONEST.RUBSHORT","HONEST.EURSHORT","HONEST.GBPSHORT","HONEST.JPYSHORT","HONEST.KRWSHORT","HONEST.XRPSHORT","HONEST.ETHSHORT","HONEST.XAUSHORT","HONEST.XAGSHORT","HONEST.CNYSHORT"],ioxbankTokens:["IOB.XRP","IOB.XLM"],otherTokens:["CVCOIN","HERO","OCT","HERTZ","YOYOW"]},t=[];for(let a in e)t=t.concat(e[a]);return t}function b(){return n()?[]:["XBTSX.","GDEX.","HONEST.","IOB.","PIRATE."]}function f(){return[]}function y(e){const t=["TRADE","OPEN","RUDEX","GDEX","PIRATE","XBTSX","IOB","CITADEL","BRIDGE","SPARKDEX"];return e?t.indexOf(e)>=0:t.length>0}function _(){return["password","wallet"]}function w(){let e=null;return e=n()?"NOTIFICATIONS":"TEST",{symbol:e,explanation:"This asset is used for decentralized configuration of the BitShares UI placed under bitshares.org."}}function k(){return"bitshares"}},59707:(e,t,a)=>{"use strict";a.d(t,{Z:()=>Pe});var s=a(67294),n=a(58466),r=a(9739);const o=({op:e,proposer:t,index:a,changeColor:o})=>{o("success");let i=null;return e[1].memo&&(i=s.createElement(r.Z,{memo:e[1].memo})),e[1].amount.amount=parseFloat(e[1].amount.amount),s.createElement("span",{className:"right-td"},s.createElement("div",{className:"inline-block"},s.createElement("div",null,s.createElement(n.Z,{string:"operation.transfer",keys:[{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount"},{type:"account",value:e[1].to,arg:"to"}]}),i)))};var i=a(82267),l=a(5833);const c=({op:e,changeColor:t,fromComponent:a,marketDirections:r,result:o})=>{if(t("warning"),"proposed_operation"===a){let t=l.Z.isAskOp(e[1]);return s.createElement("span",null,s.createElement(n.Z,{string:t?"proposal.limit_order_sell":"proposal.limit_order_buy",keys:[{type:"account",value:e[1].seller,arg:"account"},{type:"amount",value:t?e[1].amount_to_sell:e[1].min_to_receive,arg:"amount"},{type:"price",value:{base:t?e[1].min_to_receive:e[1].amount_to_sell,quote:t?e[1].amount_to_sell:e[1].min_to_receive},arg:"price"}]}))}{let t=e[1];return s.createElement("span",null,s.createElement(i.Z.Wrapper,{base:t.min_to_receive.asset_id,quote:t.amount_to_sell.asset_id},(({base:a,quote:i})=>{const{marketName:c,first:d,second:u}=l.Z.getMarketName(a,i),p=r.get(c),h=t.amount_to_sell.asset_id===(p?d.get("id"):u.get("id"));let m=h?t.amount_to_sell:t.min_to_receive,g=h?t.min_to_receive:t.amount_to_sell;const b=h?e[1].min_to_receive:e[1].amount_to_sell;let f=o&&"string"==typeof o[1]?"#"+o[1].substring(4):"";return s.createElement(n.Z,{string:h?"operation.limit_order_buy":"operation.limit_order_sell",keys:[{type:"account",value:e[1].seller,arg:"account"},{type:"amount",value:b,arg:"amount"},{type:"price",value:{base:m,quote:g},arg:"price"}],params:{order:f}})})))}};var d=a(58074),u=a.n(d);const p=({op:e,changeColor:t,fromComponent:a,linkToAccount:r})=>(t("cancel"),"proposed_operation"===a?s.createElement("span",null,r(e[1].fee_paying_account)," ",s.createElement(u(),{component:"span",content:"proposal.limit_order_cancel"})," #",e[1].order.substring(4)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.limit_order_cancel",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"}],params:{order:e[1].order.substring(4)}}))),h=({op:e,changeColor:t})=>(t("cancel"),s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.short_order_cancel"})," ",e[1].order)),m=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.call_order_update":"operation.call_order_update",keys:[{type:"account",value:e[1].funding_account,arg:"account"},{type:"asset",value:e[1].delta_debt.asset_id,arg:"debtSymbol"},{type:"amount",value:e[1].delta_debt,arg:"debt"},{type:"amount",value:e[1].delta_collateral,arg:"collateral"}]}))),g=()=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.create_key"})),b=({op:e,current:t,linkToAccount:a,fromComponent:r})=>"proposed_operation"===r?t===e[1].registrar?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.reg_account"})," ",a(e[1].name)):s.createElement("span",null,a(e[1].name)," ",s.createElement(u(),{component:"span",content:"proposal.was_reg_account"})," ",a(e[1].registrar)):s.createElement(n.Z,{string:"operation.reg_account",keys:[{type:"account",value:e[1].registrar,arg:"registrar"},{type:"account",value:e[1].name,arg:"new_account"}]});var f=a(30806);const y=(e,t)=>({minus:e.filter((e=>!t.includes(e))),plus:t.filter((t=>!e.includes(t)))}),_=e=>{if(e.id.startsWith("1.14")){let t=f.ChainStore.getAccountName(e.worker_account);return"Worker "+e.name+(t?" of "+t:" account "+e.worker_account)}if(e.id.startsWith("1.6.")){return"Witness "+(f.ChainStore.getAccountName(e.witness_account)||" account "+e.witness_account)}return"Committee "+(f.ChainStore.getAccountName(e.committee_member_account)||" account "+e.committee_member_account)},w=({op:e,fromComponent:t,collapsed:a})=>{const r=e[1].account,o=e[1].new_options?e[1].new_options.votes:void 0,i=e[1].new_options?e[1].new_options.memo_key:void 0,l=e[1].owner?e[1].owner:void 0,c=e[1].active?e[1].active:void 0;let d={},u=[],p=[];if(null==a&&(a=!0),"proposed_operation"===t&&!a){const e=f.ChainStore.getAccount(r,!1),t=e.get("options").get("votes").toArray();if(o){const e=y(t,o),a=f.ChainStore.getObjectsByVoteIds(e.plus),s=f.ChainStore.getObjectsByVoteIds(e.minus);a&&s&&(a.forEach((e=>{if(e){const t=_(e.toJS());t&&u.push(t)}})),s.forEach((e=>{if(e){const t=_(e.toJS());t&&p.push(t)}})),d.votes={minus:p,plus:u})}if(l){d.owner={};const t=e.get("owner").get("key_auths").map((e=>e.get(0))).toArray();d.owner.keys=y(t,l.key_auths.map((e=>e[0])));const a=e.get("owner").get("account_auths").map((e=>e.get(0))).toArray();d.owner.accounts=y(a,l.account_auths.map((e=>e[0]))),e.get("owner").get("weight_threshold")!==l.weight_threshold&&(d.owner.weight_threshold=l.weight_threshold)}if(c){d.active={};const t=e.get("active").get("key_auths").map((e=>e.get(0))).toArray();d.active.keys=y(t,c.key_auths.map((e=>e[0])));const a=e.get("active").get("account_auths").map((e=>e.get(0))).toArray();d.active.accounts=y(a,c.account_auths.map((e=>e[0]))),e.get("active").get("weight_threshold")!==c.weight_threshold&&(d.active.weight_threshold=c.weight_threshold)}if(i){d.memo={};const t=e.get("options").get("memo_key");d.memo.keys=y([t],[i]),0==d.memo.keys.minus.length&&0==d.memo.keys.plus.length&&(d.memo=void 0)}}return s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.update_account":"operation.update_account",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"change",value:d,arg:"change"}]}))};var k=a(17315),v=a.n(k);const A=({op:e,fromComponent:t})=>{let a=v().account_listing,r=e[1].new_listing===a.no_listing?"unlisted_by":e[1].new_listing===a.white_listed?"whitelisted_by":"blacklisted_by";return"proposed_operation"===t?s.createElement("span",null,s.createElement(i.Z.Wrapper,{lister:e[1].authorizing_account,listee:e[1].account_to_list},(({lister:e,listee:t})=>s.createElement(u(),{component:"span",content:"transaction."+r,lister:e.get("name"),listee:t.get("name")})))):s.createElement("span",null,s.createElement(n.Z,{string:"operation."+r,keys:[{type:"account",value:e[1].authorizing_account,arg:"lister"},{type:"account",value:e[1].account_to_list,arg:"listee"}]}))},E=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?e[1].upgrade_to_lifetime_member?s.createElement("span",null,t(e[1].account_to_upgrade),"  ",s.createElement(u(),{component:"span",content:"proposal.lifetime_upgrade_account"})):s.createElement("span",null,t(e[1].account_to_upgrade),"  ",s.createElement(u(),{component:"span",content:"proposal.annual_upgrade_account"})):s.createElement("span",null,s.createElement(n.Z,{string:e[1].upgrade_to_lifetime_member?"operation.lifetime_upgrade_account":"operation.annual_upgrade_account",keys:[{type:"account",value:e[1].account_to_upgrade,arg:"account"}]})),x=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.transfer_account"})," ",t(e[1].account_id),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].new_owner)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.account_transfer",keys:[{type:"account",value:e[1].account_id,arg:"account"},{type:"account",value:e[1].new_owner,arg:"to"}]})),S=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),"proposed_operation"===a?s.createElement(n.Z,{string:"proposal.asset_create",keys:[{type:"account",value:e[1].issuer,arg:"account"}],params:{asset:e[1].symbol}}):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_create",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].symbol,arg:"asset"}]}))),C=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.asset_update":"operation.asset_update",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]})),T=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),"proposed_operation"===a?s.createElement(n.Z,{string:"proposal.feed_producer",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_update_feed_producers",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}))),B=({op:e,changeColor:t,fromComponent:a})=>{let o;return t("warning"),e[1].memo&&(o=s.createElement(r.Z,{memo:e[1].memo})),e[1].asset_to_issue.amount=parseInt(e[1].asset_to_issue.amount,10),s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.asset_issue":"operation.asset_issue",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"amount",value:e[1].asset_to_issue,arg:"amount"},{type:"account",value:e[1].issue_to_account,arg:"to"}]}),o)},z=({op:e,fromComponent:t})=>s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.asset_reserve":"operation.asset_reserve",keys:[{type:"account",value:e[1].payer,arg:"account"},{type:"amount",value:e[1].amount_to_reserve,arg:"amount"}]}));var P=a(21019);const N=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>{if(t("warning"),"proposed_operation"===r){let t=f.ChainStore.getAsset(e[1].asset_id);return t=t?t.get("symbol"):e[1].asset_id,s.createElement("span",null,a(e[1].from_account),"  ",s.createElement(u(),{component:"span",content:"proposal.fund_pool",asset:t})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}))}return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_fund_fee_pool",keys:[{type:"account",value:e[1].from_account,arg:"account"},{type:"asset",value:e[1].asset_id,arg:"asset"},{type:"amount",value:{amount:e[1].amount,asset_id:"1.3.0"},arg:"amount"}]}))},M=({op:e,result:t,changeColor:a,fromComponent:r})=>{if(a("warning"),"proposed_operation"===r)return s.createElement("span",null,s.createElement(n.Z,{string:"proposal.asset_settle",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}));{const a=e[1].amount,r=2;if(t&&t[0]==r){const r=t[1];return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_settle_instant",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:a,arg:"amount"},{type:"price",value:{base:a,quote:r},arg:"price"}]}))}return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_settle",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}))}},Z=({op:e})=>s.createElement(n.Z,{string:"operation.asset_settle_cancel",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]});var I=a(33951);const O=({op:e,changeColor:t,linkToAsset:a,fromComponent:r})=>(t("warning"),"proposed_operation"===r?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.asset_global_settle"})," ",a(e[1].asset_to_settle)," ",s.createElement(u(),{component:"span",content:"proposal.at"})," ",s.createElement(I.Z,{style:{fontWeight:"bold"},quote_amount:e[1].settle_price.quote.amount,quote_asset:e[1].settle_price.quote.asset_id,base_asset:e[1].settle_price.base.asset_id,base_amount:e[1].settle_price.base.amount})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_global_settle",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_settle,arg:"asset"},{type:"price",value:e[1].settle_price,arg:"price"}]}))),q=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>(t("warning"),"proposed_operation"===r?s.createElement("span",null,a(e[1].publisher)," ",s.createElement(u(),{component:"span",content:"proposal.publish_feed"})," ",s.createElement(I.Z,{base_asset:e[1].feed.settlement_price.base.asset_id,quote_asset:e[1].feed.settlement_price.quote.asset_id,base_amount:e[1].feed.settlement_price.base.amount,quote_amount:e[1].feed.settlement_price.quote.amount})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.publish_feed",keys:[{type:"account",value:e[1].publisher,arg:"account"},{type:"price",value:e[1].feed.settlement_price,arg:"price"}]}))),L=({op:e})=>s.createElement(n.Z,{string:"operation.asset_claim_pool",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_id,arg:"asset"},{type:"amount",value:e[1].amount_to_claim,arg:"amount"}]}),D=({op:e})=>s.createElement(n.Z,{string:"operation.asset_update_issuer",keys:[{type:"account",value:e[1].issuer,arg:"from_account"},{type:"account",value:e[1].new_issuer,arg:"to_account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}),R=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_create"})," ",t(e[1].witness_account)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.witness_create",keys:[{type:"account",value:e[1].witness_account,arg:"account"}]})),j=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_update"})," ",t(e[1].witness_account)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.witness_update",keys:[{type:"account",value:e[1].witness_account,arg:"account"}]})),F=({op:e,current:t,linkToAccount:a,fromComponent:n})=>"proposed_operation"===n?t===e[1].witness_account?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_pay"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",a(e[1].witness_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.received"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",a(e[1].witness_account)):t===e[1].witness_account?s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.witness_pay"})," ",s.createElement(P.Z,{amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"transaction.to"})," ",a(e[1].witness_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.received"})," ",s.createElement(P.Z,{amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"transaction.from"})," ",a(e[1].witness_account));var W=a(53528);const U=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},H=({op:e,result:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_create"})):s.createElement("div",{className:"inline-block"},s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_create",keys:[{type:"account",value:e[1]&&e[1].fee_paying_account,arg:"account"},{value:t?s.createElement(U,{objectId:t[1]}):"",arg:"proposal"}]}),":"),s.createElement("div",null,e[1]&&e[1].proposed_ops.map(((e,t)=>s.createElement(W.Z,{op:e.op,key:t,index:t,inverted:!1,hideFee:!0,hideOpLabel:!0,hideDate:!0,proposal:!0}))))),K=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},V=({op:e,linkToAccount:t,fromComponent:a})=>{if("proposed_operation"===a)return s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_update"}));{const a=["active_approvals_to_add","active_approvals_to_remove","owner_approvals_to_add","owner_approvals_to_remove","key_approvals_to_add","key_approvals_to_remove"];return s.createElement("div",null,s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_update",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"},{value:s.createElement(K,{objectId:e[1].proposal}),arg:"proposal"}]})),s.createElement("div",{className:"proposal-update"},a.map((a=>e[1][a].length?s.createElement("div",{key:a},s.createElement(u(),{content:`proposal.updated.${a}`}),s.createElement("ul",null,e[1][a].map((e=>s.createElement("li",{key:e},a.startsWith("key")?e:t(e)))))):null))))}},G=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},X=({op:e,fromComponent:t})=>"proposed_operation"===t?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_update"})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_delete",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"},{value:s.createElement(G,{objectId:e[1].proposal}),arg:"proposal"}]})),J=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_create"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_create"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),Y=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_update"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_update"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),Q=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_claim"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].withdraw_to_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_claim"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].withdraw_to_account)),$=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_delete"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_delete"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),ee=({changeColor:e,op:t,linkToAccount:a,marketDirections:r,fromComponent:o})=>{e("success");const c=t[1];return"proposed_operation"===o?s.createElement("span",null,a(t.account_id)," ",s.createElement(u(),{component:"span",content:"proposal.paid"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:t.pays.amount,asset:t.pays.asset_id})," ",s.createElement(u(),{component:"span",content:"proposal.obtain"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:t.receives.amount,asset:t.receives.asset_id})," ",s.createElement(u(),{component:"span",content:"proposal.at"})," ",s.createElement(I.Z,{base_asset:c.pays.asset_id,base_amount:c.pays.amount,quote_asset:c.receives.asset_id,quote_amount:c.receives.amount})):s.createElement("span",null,s.createElement(i.Z.Wrapper,{base:c.receives.asset_id,quote:c.pays.asset_id},(({base:e,quote:a})=>{const{marketName:o,first:i,second:d}=l.Z.getMarketName(e,a),u=r.get(o),p=c.pays.asset_id===(u?i.get("id"):d.get("id"));let h=p?c.receives:c.pays,m=p?c.pays:c.receives,g=p?c.receives:c.pays,b=c.fee.asset_id===g.asset_id?g.amount-c.fee.amount:g.amount;return s.createElement(n.Z,{string:"operation.fill_order_"+(p?"buy":"sell"),keys:[{type:"account",value:t[1].account_id,arg:"account"},{type:"amount",value:{amount:b,asset_id:g.asset_id},arg:"amount"},{type:"price",value:{base:h,quote:m},arg:"price"}],params:{order:c.order_id.substring(4)}})})))},te=({fromComponent:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===e?"proposal.global_parameters_update":"transaction.global_parameters_update"})),ae=()=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.file_write"})),se=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null," ",t(e[1].creator),s.createElement(u(),{component:"span",content:"proposal.vesting_balance_create"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})," ",t(e[1].owner)):s.createElement("span",null," ",t(e[1].creator),s.createElement(u(),{component:"span",content:"transaction.vesting_balance_create"})," ",s.createElement(P.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})," ",t(e[1].owner)),ne=({op:e,fromComponent:t})=>s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.vesting_balance_withdraw":"operation.vesting_balance_withdraw",keys:[{type:"account",value:e[1].owner,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}),re=({op:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_create_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),oe=({op:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_cancel_offer"})," ",e[1].offer_id),ie=({op:e,linkToAccount:t,current:a})=>a===e[1].lender?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_accept_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount_borrowed.amount,asset:e[1].amount_borrowed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].borrower)):a===e[1].borrower?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_accept_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount_borrowed.amount,asset:e[1].amount_borrowed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",t(e[1].lender)):null,le=({op:e,linkToAccount:t,current:a})=>a===e[1].lender?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_pay_collateral"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].collateral_claimed.amount,asset:e[1].collateral_claimed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].claimer)):a===e[1].claimer?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_claim_collateral"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].collateral_claimed.amount,asset:e[1].collateral_claimed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",t(e[1].lender)):null,ce=({op:e,fromComponent:t})=>"proposed_operation"===t?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.create_worker"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].daily_pay,asset:"1.3.0"})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.worker_create",keys:[{type:"account",value:e[1].owner,arg:"account"},{type:"amount",value:{amount:e[1].daily_pay,asset_id:"1.3.0"},arg:"pay"}],params:{name:e[1].name}}));var de=a(13973);const ue=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>(t("success"),e[1].total_claimed.amount=parseInt(e[1].total_claimed.amount,10),"proposed_operation"===r?s.createElement("span",null,a(e[1].deposit_to_account)," ",s.createElement(i.Z.Wrapper,{asset:e[1].total_claimed.asset_id},(({asset:t})=>s.createElement(u(),{component:"span",content:"proposal.balance_claim",balance_amount:de.Z.format_asset(e[1].total_claimed.amount,t),balance_id:e[1].balance_to_claim.substring(5)})))):s.createElement("span",null,s.createElement(n.Z,{string:"operation.balance_claim",keys:[{type:"account",value:e[1].deposit_to_account,arg:"account"},{type:"amount",value:e[1].total_claimed,arg:"amount"}]}))),pe=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.committee_member_create":"transaction.committee_member_create"})," ",t(e[1].committee_member_account)),he=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,t(e[1].from)," ",s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.sent":"transaction.sent"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),me=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,t(e[1].to)," ",s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.received":"transaction.received"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),ge=({op:e,changeColor:t,linkToAccount:a})=>(t("success"),e[1].amount_to_claim.amount=parseInt(e[1].amount_to_claim.amount,10),s.createElement("span",null,a(e[1].issuer)," ",s.createElement(i.Z.Wrapper,{asset:e[1].amount_to_claim.asset_id},(({asset:t})=>s.createElement(n.Z,{string:"transaction.asset_claim_fees",keys:[{type:"amount",value:e[1].amount_to_claim,arg:"balance_amount"},{type:"asset",value:t.get("id"),arg:"asset"}]}))))),be=({fromComponent:e})=>s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===e?"proposal.committee_member_update_global_parameters":"operation.committee_member_update_global_parameters",keys:[{type:"account",value:"1.2.0",arg:"account"}]})),fe=({fromComponent:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===e?"proposal.custom":"transaction.custom"})),ye=({op:e,fromComponent:t})=>s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.override_transfer":"operation.override_transfer",keys:[{type:"account",value:e[1].issuer,arg:"issuer"},{type:"account",value:e[1].from,arg:"from"},{type:"account",value:e[1].to,arg:"to"},{type:"amount",value:e[1].amount,arg:"amount"}]});var _e=a(112),we=a.n(_e);const ke=({op:e})=>(console.log("unimplemented op:",e),s.createElement("span",null,we().translate("operation.unknown_operation")," ",e[0])),ve=({op:e})=>s.createElement(n.Z,{string:"operation.bid_collateral",keys:[{type:"account",value:e[1].bidder,arg:"bid_account"},{type:"amount",value:e[1].additional_collateral,arg:"collateral"},{type:"amount",value:e[1].debt_covered,arg:"debt"}]});var Ae=a(76660);const Ee=({op:e,block:t})=>{const a=f.ChainStore.getObject("2.0.0"),r=f.ChainStore.getObject("2.1.0");let o=de.Z.calc_block_time(t,a,r),i=!1;o||(o=de.Z.calc_block_time(t,a,r,!0),i=!0),e[1].amount.amount=parseFloat(e[1].amount.amount);let l=new Date;return l.setTime(o.getTime()+1e3*e[1].claim_period_seconds),s.createElement(s.Fragment,null,s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_create",keys:[{type:"date",arg:"lock_period",value:l},{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount",decimalOffset:"1.3.0"===e[1].amount.asset_id?5:null},{type:"account",value:e[1].to,arg:"to"}]}),s.createElement(Ae.Tooltip,{title:"Estimated"},i?"*":"")),s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(Ae.Tooltip,{placement:"bottom",title:we().translate("htlc.preimage_hash_explanation")},s.createElement("span",{className:"inline-block"},we().translate("htlc.preimage_hash")+" ("+e[1].preimage_size+", "+e[1].preimage_hash[0]+"): "+e[1].preimage_hash[1]))))},xe=({op:e})=>s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_extend",keys:[{type:"account",value:e[1].update_issuer,arg:"update_issuer"},{type:"timespan",arg:"seconds_to_add",value:e[1].seconds_to_add},{value:e[1].htlc_id,arg:"htlc_id"}]})),Se=({op:e,changeColor:t})=>(t("success"),s.createElement(s.Fragment,null,s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_redeem",keys:[{type:"account",value:e[1].redeemer,arg:"redeemer"},{value:e[1].htlc_id,arg:"htlc_id"}]})),s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(Ae.Tooltip,{placement:"bottom",title:we().translate("htlc.preimage_explanation")},s.createElement("span",{className:"inline-block"},we().translate("htlc.preimage")+": "+e[1].preimage))))),Ce=({op:e})=>s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_redeemed",keys:[{type:"account",value:e[1].to,arg:"to"},{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount",decimalOffset:"1.3.0"===e[1].amount.asset_id?5:null},{value:e[1].htlc_id,arg:"htlc_id"}]})),Te=({op:e,changeColor:t})=>(t("warning"),s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_refund",keys:[{value:e[1].htlc_id,arg:"htlc_id"},{type:"account",value:e[1].to,arg:"to"}]}))),Be=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,s.createElement(n.Z,{string:"operation.ticket_create",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}),"  (",we().translate("operation.ticket_types."+e[1].target_type),")");function ze(){return ze=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>u});var s=a(67294),n=a(89449),r=a(82267),o=a(7437),i=a(112),l=a.n(i),c=a(76660);class d extends s.Component{constructor(e){super(e),this.state={assets:[]}}componentDidMount(){this.getAssets()}getAssets(){let{backedCoins:e,include:t,includeBTS:a}=this.props,{assets:s}=this.state,n={};e.forEach((e=>{s=s.concat(e.map((e=>{let[t,a]=e.symbol.split(".");return!n[a]&&a&&t?(n[a]=!0,{id:a,label:a,gateway:t,gateFee:e.gateFee,issuer:e.issuerId||"1.2.96397"}):null}))).filter((e=>e)).filter((e=>"BTS"==e.id||!t||t.includes(e.id)))})),!1!==a&&s.push({id:"BTS",label:"BTS",gateway:""}),this.setState({assets:s})}getSelectedAssetArray(e){let t,{assets:a}=this.state;return a.map((a=>{a.id==e&&(t=a)})),t}_onSelect(e){let{onSelect:t}=this.props,a=this.getSelectedAssetArray(e);t&&t(a)}_onInputChanged(e){let{onChange:t}=this.props,a=this.getSelectedAssetArray(e);t&&a&&a.id&&t(a.id)}render(){let{usageContext:e}=this.props,t=this.state.assets.sort((function(e,t){if(e.id&&t.id)return e.id.localeCompare(t.id)}));return s.createElement(c.Select,{onSelect:this._onSelect.bind(this),onChange:this._onInputChanged.bind(this),onSearch:this._onInputChanged.bind(this),placeholder:l().translate("withdraw"==e?"gateway.asset_search_withdraw":"gateway.asset_search_deposit"),value:this.props.defaultValue,optionLabelProp:"value",showSearch:!0,style:{width:"100%"}},t.length>0?t.map((e=>s.createElement(c.Select.Option,{key:e.id,value:e.label},e.label))):s.createElement(c.Select.Option,{disabled:!0,key:0,value:0},l().translate("withdraw"==e?"modal.withdraw.no_assets":"modal.deposit.no_assets")))}}d=(0,r.Z)(d);const u=(0,n.$)(d,{listenTo:()=>[o.Z],getProps:()=>({backedCoins:o.Z.getState().backedCoins})})},23037:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(13973),n=a(43393),r=a.n(n),o=a(30806);const{object_type:i}=o.ChainTypes;function l(e){function t(t,a,s,n,r){return n=n||ANONYMOUS,null==a[s]?t?new Error("Required "+r+" `"+s+"` was not specified in `"+n+"`."):null:e(a,s,n,r)}let a=t.bind(null,!1);return a.isRequired=t.bind(null,!0),a}function c(e,t,a){return a=a||"ANONYMOUS",e[t]?"string"==typeof e[t]?null:new Error(`${t} in ${a} should be a key string`):null}const d={ChainObject:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let n=e[t];if("string"==typeof n)return s.Z.is_object_id(n)?null:new Error(`${t} in ${a} should be an object id`);if("object"!=typeof n)return new Error(`${t} in ${a} should be an object id or object`)}return null})),ChainAccount:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} of ${s} in ${a} should be an account id`);if(s instanceof Map&&s.get("name")&&1==s.size)return null}return null})),ChainAccountName:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return o.ChainValidation.is_account_name(s)?null:new Error(`${t} value of ${s} in ${a} is not a valid account name`)}return null})),ChainKeyRefs:l(c),ChainAddressBalances:l(c),ChainAsset:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} of ${s} in ${a} should be an asset symbol or id`)}return null})),ChainLiquidityPool:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainObjectsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainAccountsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainAssetsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainLiquidityPoolsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null}))}},49540:e=>{e.exports={formats:{date:{full:{second:"numeric",minute:"numeric",hour:"numeric",day:"numeric",month:"long",year:"numeric"},short:{second:"numeric",minute:"numeric",hour:"numeric",day:"numeric",month:"numeric",year:"numeric"},time:{second:"numeric",minute:"numeric",hour:"numeric"}}}}},80017:(e,t,a)=>{"use strict";let s,n;a.d(t,{Z:()=>r});const r=n={set_graphene_db:e=>{s=e},trx_readwrite:e=>s.transaction([e],"readwrite"),on_request_end:e=>new Promise(((t,a)=>{e.onsuccess=new o(e.onsuccess,t,e).event,e.onerror=new o(e.onerror,a,e).event})),on_transaction_end:e=>new Promise(((t,a)=>{e.oncomplete=new o(e.oncomplete,t).event,e.onabort=new o(e.onabort,a).event})),add:(e,t,a)=>function(t,a){let s=e.add(t),r=null;a&&(s.onsuccess=new o(s.onsuccess,(e=>{r=a(e)})).event);let i=n.on_request_end(s).then((e=>(null!=e.target.result&&(t.id=e.target.result),[t,e])));return r?Promise.all([r,i]):i}(t,a),cursor:(e,t,a)=>new Promise(((n,r)=>{a||((a=s.transaction([e],"readonly")).onerror=e=>{console.error("ERROR idb_helper.cursor transaction",e),r(e)});let o=a.objectStore(e).openCursor();o.onsuccess=e=>{let a=e.target.result,s=t(a,e);!1===s&&n(),a||n(s)},o.onerror=e=>{let t={error:e.target.error.message,data:e};console.log("ERROR idb_helper.cursor request",t),r(t)}})).then(),autoIncrement_unique:(e,t,a)=>e.createObjectStore(t,{keyPath:"id",autoIncrement:!0}).createIndex("by_"+a,a,{unique:!0})};class o{constructor(e,t,a){this.existing_on_event=e,this.callback=t,this.event=e=>{e.target.error&&console.error("---- transaction error ----\x3e",e.target.error),this.callback(e),this.existing_on_event&&this.existing_on_event(e)}}}},95768:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(55420),n=a(80017);class r{constructor(e){this.impl=e}setDbSuffix(e){this.database_name="graphene_db"+e}openIndexedDB(){return this.db?Promise.resolve(this.db):new Promise(((e,t)=>{var a=this.impl.open(this.database_name,1);a.onupgradeneeded=e=>{this.db=e.target.result,this.db.createObjectStore("properties",{keyPath:"name"})},a.onsuccess=t=>{this.db=t.target.result,e(this.db)},a.onerror=e=>{t(e.target.error)}}))}getProperty(e,t){return this.openIndexedDB().then((a=>{var s=a.transaction(["properties"],"readonly").objectStore("properties");return n.Z.on_request_end(s.get(e)).then((e=>{var a=e.target.result;return a?a.value:t}))})).catch((e=>{throw console.error(e),e}))}setProperty(e,t){return this.openIndexedDB().then((a=>{var s=a.transaction(["properties"],"readwrite").objectStore("properties");return t&&t.toJS&&(t=t.toJS()),n.Z.on_request_end(s.put({name:e,value:t}))})).catch((e=>{throw console.error(e),e}))}deleteDatabase(e=!1){return e?(console.log("deleting",this.database_name),iDB.impl.deleteDatabase(this.database_name).result):"Are you sure?"}close(){this.db.close(),this.db=null}}var o=a(91e3);const i="graphene_v2",l=["wallet","private_keys","linked_accounts"];o.Z.MAIN_NET;var c,d,u="default",p=function(e=u,t=s.Apis.instance().chain_id){return[i,t?t.substring(0,6):"",e].join("_")},h=function(e=this.getDatabaseName()){return new Promise(((t,a)=>{var s=m.impl.open(e,2);s.onupgradeneeded=function(e){var t,a;t=e.target.result,0===(a=e.oldVersion)&&(t.createObjectStore("wallet",{keyPath:"public_name"}),n.Z.autoIncrement_unique(t,"private_keys","pubkey"),t.createObjectStore("linked_accounts",{keyPath:"name"})),a<2&&t.createObjectStore("cached_properties",{keyPath:"name"})},s.onsuccess=function(a){var s=a.target.result;m.database_name=e,n.Z.set_graphene_db(s),t(s)},s.onerror=function(e){a(e.target.error)}}))},m={WALLET_BACKUP_STORES:l,getDatabaseName:p,getCurrentWalletName:()=>u,deleteDatabase:function(e=!1){return e?(console.log("deleting",this.database_name),m.impl.deleteDatabase(this.database_name).result):"Are you sure?"},set_impl:function(e){this.impl=e,this.root=new r(this.impl)},set_chain_id:function(e){this.chain_id=e;var t=e?e.substring(0,6):"";this.root.setDbSuffix("_"+t)},init_instance:function(e,t=s.Apis.instance().chain_id){return c||(e&&(this.set_impl(e),"__useShim"in e&&this.impl.__useShim()),this.set_chain_id(t),c=function(e){let t=function(e){return m.root.getProperty("current_wallet","default").then((t=>{u=t;var a=p(t,e);return h(a)}))}(e);return t.then((e=>{d=e})),{init_promise:t,db:()=>d}}(t)),c},instance:function(){if(!c)throw new Error("Internal Database instance is not initialized");return c},close:function(){c&&c.db()&&c.db().close(),n.Z.set_graphene_db(null),c=void 0},add_to_store:function(e,t){return new Promise(((a,s)=>{let n=this.instance().db().transaction([e],"readwrite").objectStore(e).add(t);n.onsuccess=()=>{a(t)},n.onerror=e=>{console.log("ERROR!!! add_to_store - can't store value in db. ",e.target.error.message,t),s(e.target.error.message)}}))},remove_from_store:function(e,t){return new Promise(((a,s)=>{let n=this.instance().db().transaction([e],"readwrite").objectStore(e).delete(t);n.onsuccess=()=>{a()},n.onerror=e=>{console.log("ERROR!!! remove_from_store - can't remove value from db. ",e.target.error.message,t),s(e.target.error.message)}}))},load_data:function(e){return new Promise(((t,a)=>{let s=[],n=this.instance().db().transaction([e],"readonly").objectStore(e).openCursor();n.onsuccess=e=>{let a=e.target.result;a?(s.push(a.value),a.continue()):t(s)},n.onerror=e=>{console.log("ERROR!!! open_store - can't get '`${store_name}`' cursor. ",e.target.error.message),a(e.target.error.message)}}))},getCachedProperty:function(e,t){var a=this.instance().db().transaction(["cached_properties"],"readonly").objectStore("cached_properties");return n.Z.on_request_end(a.get(e)).then((e=>{var a=e.target.result;return a?a.value:t})).catch((e=>{throw console.error(e),e}))},setCachedProperty:function(e,t){var a=this.instance().db().transaction(["cached_properties"],"readwrite").objectStore("cached_properties");return t&&t.toJS&&(t=t.toJS()),n.Z.on_request_end(a.put({name:e,value:t})).catch((e=>{throw console.error(e),e}))},backup:function(e=l){var t=[];for(var a of e)t.push(this.load_data(a));return Promise.all(t).then((t=>{var a={};for(let r=0;r{var a=Object.keys(t),s=e.transaction(a,"readwrite");for(let e of a){var r=s.objectStore(e),o=t[e];for(let e of o)r.put(e)}return n.Z.on_transaction_end(s)}))}};const g=m},10972:(e,t,a)=>{"use strict";a.r(t);var s=a(67294),n=a(73935),r=a(30806),o=a(32793),i=a(57296),l=a(31972);const c=i.Z.createStore(class{constructor(){this.bindListeners({addNotification:[l.Z.addNotification,l.Z.success,l.Z.warning,l.Z.error,l.Z.info]}),this.state={notification:null}}addNotification(e){this.setState({notification:e})}},"NotificationStore");var d=a(5977),u=a(89449),p=a(38216),h=a(39014),m=a(58074),g=a.n(m),b=a(55294),f=a(55420),y=a(91684),_=a(55474),w=a(112),k=a.n(w),v=a(7768);class A extends s.Component{constructor(e){super(e),this.state={isAddNodeModalVisible:!1,isRemoveNodeModalVisible:!1,removeNode:{name:null,url:null}},this.showAddNodeModal=this.showAddNodeModal.bind(this),this.hideAddNodeModal=this.hideAddNodeModal.bind(this),this.showRemoveNodeModal=this.showRemoveNodeModal.bind(this),this.hideRemoveNodeModal=this.hideRemoveNodeModal.bind(this)}showAddNodeModal(){this.setState({isAddNodeModalVisible:!0})}hideAddNodeModal(){this.setState({isAddNodeModalVisible:!1})}showRemoveNodeModal(e,t){this.setState({isRemoveNodeModalVisible:!0,removeNode:{url:e,name:t}})}hideRemoveNodeModal(){this.setState({isRemoveNodeModalVisible:!1,removeNode:{url:null,name:null}})}triggerModal(e){this.refs.ws_modal.show(e)}onChangeWS(e){b.Z.changeSetting({setting:"apiServer",value:e.target.value}),f.Apis.reset(e.target.value,!0),setTimeout((()=>{this.onReloadClick()}),50)}onReloadClick(e){e&&e.preventDefault(),window.electron?(window.location.hash="",window.remote.getCurrentWindow().reload()):window.location.href=""}triggerModal(e,...t){this.refs.ws_modal.show(e,...t)}render(){const{props:e}=this;return e.apis.map((e=>{let t=-1!==e.url.indexOf("fake.automatic-selection"),{location:a}=e;return a&&"object"==typeof a&&"translate"in a&&(a=k().translate(a.translate)),s.createElement("option",{key:e.url,value:e.url},a||e.url," ",!t&&a?`(${e.url})`:null)})),s.createElement("div",{className:"grid-frame vertical"},s.createElement("div",{className:"grid-container text-center",style:{padding:"5rem 10% 0 10%",maxWidth:"100%",overflowY:"auto",margin:"0 !important"}},s.createElement("h2",null,s.createElement(g(),{content:"sync_fail.title"})),s.createElement("br",null),s.createElement("p",{style:{marginBottom:0}},s.createElement(g(),{content:"sync_fail.sub_text_1"})),s.createElement(y.Z,{name:"clock",title:"icons.clock",size:"5x"}),s.createElement("p",null,s.createElement(g(),{unsafe:!0,content:"sync_fail.sub_text_2"})),s.createElement("hr",null),s.createElement(v.Z,{nodes:e.apis,onChange:this.onChangeWS.bind(this),showAddNodeModal:this.showAddNodeModal,showRemoveNodeModal:this.showRemoveNodeModal})),s.createElement(_.Z,{removeNode:this.state.removeNode,isAddNodeModalVisible:this.state.isAddNodeModalVisible,isRemoveNodeModalVisible:this.state.isRemoveNodeModalVisible,onAddNodeClose:this.hideAddNodeModal,onRemoveNodeClose:this.hideRemoveNodeModal,apis:e.apis,api:e.apiServer}))}}const E=A=(0,u.$)(A,{listenTo:()=>[p.Z,h.Z],getProps:()=>({rpc_connection_status:p.Z.getState().rpc_connection_status,apis:h.Z.getState().defaults.apiServer,apiServer:h.Z.getState().settings.get("apiServer"),defaultConnection:h.Z.getState().defaultSettings.get("apiServer"),apiLatencies:h.Z.getState().apiLatencies})});var x=a(52531),S=a(59851),C=a(23037),T=a(82267),B=a(13973),z=a(67652),P=a.n(z),N=a(45697),M=a.n(N);let{operations:Z}=r.ChainTypes,I=Object.keys(Z);class O extends s.Component{static propTypes={account:C.Z.ChainAccount.isRequired,settings:M().object};UNSAFE_componentWillMount(){P().needsPermission&&P().requestPermission()}UNSAFE_componentWillReceiveProps(e){if(!e.settings.get("browser_notifications").allow)return console.log("browser notifications disabled by settings"),!1;if(P().needsPermission)return console.log("browser notifications disabled by Browser Permissions"),!1;if(e.account&&this.props.account&&e.account.size&&this.props.account.get("history")&&e.account.get("history")){let t=this.props.account.get("history").first(),a=e.account.get("history").first();if(!a||!t)return!1;if(a.get("id")===t.get("id"))return!1;this._isOperationTransfer(a)&&this._isTransferToMyAccount(a)&&e.settings.get("browser_notifications").additional.transferToMe&&this._notifyUserAboutTransferToHisAccount(a)}}_getOperationName(e){return void 0!==e.getIn(["op",0])?I[e.getIn(["op",0])]:null}_isOperationTransfer(e){return"transfer"===this._getOperationName(e)}_isTransferToMyAccount(e){if(!this._isOperationTransfer(e))throw Error("Operation is not transfer");return e.getIn(["op",1,"to"])===this.props.account.get("id")}_notifyUserAboutTransferToHisAccount(e){const t=e.getIn(["op",1,"amount","asset_id"]),a=e.getIn(["op",1,"from"]),s=e.getIn(["op",1,"amount","amount"]);if(!t||!a||!s)throw Error("Operation has wrong format");const n=k().translate("browser_notification_messages.money_received_title",{from:this._getAccountNameById(a)});let r=this._getRealAmountByAssetId(s,t),o=this._getAssetSymbolByAssetId(t);if(null===r||null===o)return;const i=k().translate("browser_notification_messages.money_received_body",{amount:r,symbol:o});this.notifyUsingBrowserNotification({title:n,body:i,closeOnClick:!0})}notifyUsingBrowserNotification(e={}){if(!e.title&&!e.body)return null;const t={body:e.body};"function"==typeof e.onNotifyShow&&(t.notifyShow=e.onNotifyShow),"function"==typeof e.onNotifyClose&&(t.notifyClose=e.onNotifyShow),"function"==typeof e.onNotifyClick&&(t.notifyClick=e.onNotifyShow),"function"==typeof e.onNotifyError&&(t.notifyError=e.onNotifyShow),new(P())(e.title,t).show()}_getRealAmountByAssetId(e,t){const a=r.ChainStore.getAsset(t);return a?B.Z.get_asset_amount(e,a):null}_getAssetSymbolByAssetId(e){const t=r.ChainStore.getAsset(e);return t?t.get("symbol"):null}_getAccountNameById(e){const t=r.ChainStore.getAccount(e);return t?t.get("name"):""}render(){return null}}const q=O=(0,T.Z)(O),L=e=>e.account?s.createElement(q,e):null;class D extends s.Component{render(){return s.createElement(S.Z,{stores:[o.Z],inject:{account:()=>o.Z.getState().currentAccount,settings:()=>h.Z.getState().settings}},s.createElement(L,null))}}const R=D;var j=a(36378),F=a(82050),W=a(88209),U=a.n(W),H=a(42329),K=a(70637),V=a(7437),G=a(41075),X=a(29548),J=a(56934),Y=a(39238),Q=a(94184),$=a.n(Q),ee=a(68555),te=a(87913),ae=a(50379),se=a(64046),ne=a(43393),re=a(19475);const oe=Object.freeze({Never:Symbol("Never"),Always:Symbol("Always"),WhenUnlocked:Symbol("WhenUnlocked"),WhenAccount:Symbol("WhenAccount"),WhenNotMyAccount:Symbol("WhenNotMyAccount"),WhenNotInHeader:Symbol("WhenNotInHeader"),WhenMainnet:Symbol("WhenMainnet"),Dynamic:Symbol("Dynamic"),Divider:Symbol("Divider")});class ie extends s.Component{render(){const{target:e,currentPath:t,includePattern:a,excludePattern:n,additionalClassName:r,icon:o,text:i,behavior:l,submenu:c,hidden:d,disabled:u}=this.props;let p=o;(0,j.Z)(o)&&(p={name:o}),p&&!p.title&&(p.title="icons."+p.name),p&&!p.size&&(p.size="2x");let h=a;(0,j.Z)(a)&&(h=[a]);let m=n;(0,j.Z)(n)&&(m=[n]);let b=!1;if(a||n){if(b=!0,h)for(let e=0;e{e.stopPropagation()};let k=c&&!(0,re.Z)(c);return _?null:s.createElement("li",{className:$()({active:b,disabled:u,"has-submenu":(0,re.Z)(c)},r),onClick:u?w:e},p&&s.createElement("div",{className:"table-cell"},s.createElement(y.Z,{size:p.size,name:p.name,title:p.title})),s.createElement("div",{className:"table-cell"},s.createElement(g(),{content:i}),k?" ":null,k?s.createElement("span",{onClick:c.disabled?w:e=>{e.stopPropagation(),c.target(e)},className:$()("header-dropdown-sub-link",{enabled:!c.disabled})},s.createElement(g(),{content:c.text})):null))}}const le=ie;class ce extends s.Component{render(){const{additionalClassName:e,hidden:t}=this.props;return t?null:s.createElement("li",{className:$()("divider",e)})}}const de=ce;class ue extends s.Component{render(){const{target:e,text:t,hidden:a,icon:s}=this.props;return a?null:React.createElement("li",{onClick:e},React.createElement(Translate,{content:t,component:"div",className:"table-cell"}))}}class pe{static getData(e,t){return pe.getDropdownMenu().map((a=>function(a){let s=t;s.clickHandlers=e;let n=a(s);return n.inHeaderBehavior||(n.inHeaderBehavior=oe.Never),n.inDropdownBehavior||(n.inDropdownBehavior=oe.Never),n.inHeaderBehavior===oe.WhenAccount&&(n.hidden=!s.currentAccount,n.inHeaderBehavior=oe.Always),n.inDropdownBehavior===oe.WhenAccount&&(n.hidden=!s.currentAccount,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenUnlocked&&(n.hidden=!s.lo,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenNotMyAccount&&(n.hidden=s.isMyAccount||!s.currentAccount,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenNotInHeader&&(n.inDropdownBehavior=oe.Always),n}(a)))}static getHeader(){const e=pe.getAllEntries();return[e.dashboard,e.market,e.lending,e.explorer]}static getDropdownMenu(){const e=pe.getAllEntries();let t=e.settings_mobile;e.settings_mobile=function(a){let s=t(a),n=[e.settings_general,e.settings_wallet,e.settings_accounts,e.settings_password,e.settings_backup,e.settings_restore,e.settings_access,e.settings_faucet_address,e.settings_reset];return s.submenu=n.map((e=>e(a))),s};let a=e.insight;return e.insight=function(t){let s=a(t),n=[e.account_voting,e.account_assets,e.account_pools,e.account_signedmessages,e.account_stats,e.account_vesting,e.account_whitelist,e.account_permissions];return s.submenu=n.map((e=>e(t))),s},[e.login,e.create_account,e.follow,e.divider,e.dashboard,e.market,e.lending,e.poolmart,e.explorer,e.divider,e.transfer,e.deposit,e.withdraw,e.account_voting,e.spotlight,e.insight,e.divider,e.settings,e.settings_mobile,e.accounts,e.borrow,e.barter,e.direct_debit,e.prediction,e.htlc]}static getAllEntries(){return{login:e=>({target:e.clickHandlers.toggleLock,icon:"power",text:e.locked?"header.lock_short":"header.unlock_short",inDropdownBehavior:oe.Always}),divider:e=>({inDropdownBehavior:oe.Divider}),create_account:e=>({includePattern:e.passwordLogin?"/create-account/password":"/create-account/wallet",target:e.passwordLogin?"/create-account/password":"/create-account/wallet",icon:{name:"create_account",title:"icons.user.create_account"},text:"header.create_account",hidden:!!e.passwordLogin,inDropdownBehavior:oe.Always}),dashboard:e=>({includePattern:["/account","account/","/account/"],excludePattern:["/assets","/voting","/signedmessages","/member-stats","/vesting","/whitelist","/permissions"],target:`/account/${e.currentAccount}`,icon:"dashboard",text:"header.dashboard",inHeaderBehavior:oe.WhenAccount,inDropdownBehavior:oe.WhenAccount}),follow:e=>({target:e.clickHandlers.followUnfollow,icon:{name:e.isContact?"minus-circle":"plus-circle",title:e.isContact?"icons.minus_circle.remove_contact":"icons.plus_circle.add_contact"},text:e.isContact?"account.unfollow":"account.follow",inDropdownBehavior:oe.WhenNotMyAccount}),market:e=>({includePattern:"/market/",target:e.tradeUrl,icon:{name:"trade",title:"icons.trade.exchange"},text:"header.exchange",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),poolmart:e=>({includePattern:"/pools",target:"/pools",icon:{name:"poolmart",title:"icons.poolmart.title"},text:"header.poolmart",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.Always}),lending:e=>({includePattern:"/credit-offer",target:"/credit-offer",icon:"deployment-unit",text:"header.p2p_lending",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),explorer:e=>({includePattern:"/explorer",target:"/explorer/blocks",icon:{name:"server",size:"2x"},text:"header.explorer",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),transfer:e=>({target:e.clickHandlers.showSend,icon:"transfer",text:"header.payments",inDropdownBehavior:oe.WhenAccount}),deposit:e=>({target:e.clickHandlers.showDeposit,icon:{name:"deposit",title:"icons.deposit.deposit"},text:"modal.deposit.submit",submenu:{target:"/deposit-withdraw",text:"header.deposit_legacy",disabled:!e.enableDepositWithdraw},disabled:!e.enableDepositWithdraw,inDropdownBehavior:oe.WhenAccount}),withdraw:e=>({target:e.clickHandlers.showWithdraw,icon:"withdraw",text:"modal.withdraw.submit",submenu:{target:"/deposit-withdraw",text:"header.withdraw_legacy",disabled:!e.enableDepositWithdraw},disabled:!e.enableDepositWithdraw,inDropdownBehavior:oe.WhenAccount}),deposit_withdraw:e=>({includePattern:"deposit-withdraw",icon:{name:"deposit-withdraw",title:"icons.deposit.deposit_withdraw"},text:"header.deposit-withdraw",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),settings:e=>({includePattern:"/settings",target:"/settings",additionalClassName:"desktop-only",icon:"cogs",text:"header.settings",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),spotlight:e=>({includePattern:"/spotlight",target:"/spotlight",icon:"showcases",text:"header.showcases",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),settings_mobile:e=>({includePattern:"/settings",additionalClassName:"mobile-only",icon:"cogs",text:"header.settings",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.Always}),insight:e=>({includePattern:"/account",icon:"insight",text:"header.advanced",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),settings_general:e=>({target:"/settings/general",text:"settings.general"}),settings_wallet:e=>({target:"/settings/wallet",hidden:e.passwordLogin}),settings_accounts:e=>({target:"/settings/accounts",text:"settings.accounts"}),settings_password:e=>({target:"/settings/password",text:"settings.password",hidden:e.passwordLogin}),settings_backup:e=>({target:"/settings/backup",text:"settings.backup",hidden:e.passwordLogin}),settings_restore:e=>({target:"/settings/restore",text:"settings.restore",hidden:e.passwordLogin}),settings_access:e=>({target:"/settings/access",text:"settings.access"}),settings_faucet_address:e=>({target:"/settings/faucet_address",text:"settings.faucet_address"}),settings_reset:e=>({target:"/settings/reset",text:"settings.reset"}),news:e=>({includePattern:"/news",target:"/news",icon:"news",text:"news.news",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),account_voting:e=>({includePattern:"/voting",target:`/account/${e.currentAccount}/voting`,icon:{name:"thumbs-up",title:"icons.thumbs_up"},text:"account.voting",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_assets:e=>({includePattern:"/assets",excludePattern:"explorer",target:`/account/${e.currentAccount}/assets`,icon:"assets",text:"explorer.assets.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_pools:e=>({includePattern:"/pools",excludePattern:"explorer",target:`/account/${e.currentAccount}/pools`,icon:"pools",text:"account.liquidity_pools.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_signedmessages:e=>({includePattern:"/signedmessages",target:`/account/${e.currentAccount}/signedmessages`,icon:{name:"text",title:"icons.text.signed_messages"},text:"icons.text.signed_messages",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_stats:e=>({includePattern:"/member-stats",target:`/account/${e.currentAccount}/member-stats`,icon:{name:"text",title:"icons.text.membership_stats"},text:"account.member.stats",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_vesting:e=>({includePattern:"/vesting",target:`/account/${e.currentAccount}/vesting`,icon:"hourglass",text:"account.vesting.title",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),account_vesting_2:e=>({includePattern:"/vesting",target:`/account/${e.currentAccount}/vesting`,icon:"hourglass",text:"account.vesting.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),account_whitelist:e=>({includePattern:"/whitelist",target:`/account/${e.currentAccount}/whitelist`,icon:"list",text:"account.whitelist.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_permissions:e=>({includePattern:"/permissions",target:`/account/${e.currentAccount}/permissions`,icon:"warning",text:"account.permissions",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),accounts:e=>({includePattern:"/accounts",target:"/accounts",icon:"folder",text:"explorer.accounts.title",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),help:e=>({includePattern:"/help",icon:{name:"question-circle",title:"icons.question_circle"},text:"header.help",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),borrow:e=>({includePattern:"/borrow",icon:"borrow",text:"showcases.borrow.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),barter:e=>({includePattern:"/barter",icon:"barter",text:"showcases.barter.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),direct_debit:e=>({includePattern:"/direct-debit",icon:"direct_debit",text:"showcases.direct_debit.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),prediction:e=>({includePattern:"/prediction",icon:"prediction-large",text:"showcases.prediction_market.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),htlc:e=>({includePattern:"/htlc",icon:"htlc",text:"showcases.htlc.title_short",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never})}}}const he=pe;class me extends s.Component{constructor(){super(),this.state={dropdownSubmenuActive:!1,dropdownSubmenuActiveItem:{}}}_toggleDropdownSubmenu(e=this.state.dropdownSubmenuActiveItem,t){t&&t.stopPropagation(),this.setState({dropdownSubmenuActive:!this.state.dropdownSubmenuActive,dropdownSubmenuActiveItem:e})}shouldComponentUpdate(e,t){let a=!1;for(let t in e)"function"!=typeof e[t]&&(a=a||e[t]!==this.props[t]);for(let e in t)"function"!=typeof t[e]&&(a=a||t[e]!==this.state[e]);return a}_onAddContact(){F.Z.addAccountContact(this.props.currentAccount)}_onRemoveContact(){F.Z.removeAccountContact(this.props.currentAccount)}render(){const{dropdownActive:e,toggleLock:t,maxHeight:a,locked:n,active:r,passwordLogin:o,isMyAccount:i,showAccountLinks:l,tradeUrl:c,enableDepositWithdraw:d,currentAccount:u,contacts:p,showSend:h,showDeposit:m,showWithdraw:b}=this.props;let f=p.has(u),y={toggleLock:t,followUnfollow:this[f?"_onRemoveContact":"_onAddContact"].bind(this),showSend:h,showDeposit:m,showWithdraw:b},_={isAccountLocked:n,currentAccount:u,isContact:f,isMyAccount:i,showAccountLinks:l,tradeUrl:c,enableDepositWithdraw:d,passwordLogin:o},w=he.getData(y,_);return this.state.dropdownSubmenuActive?s.createElement("ul",{className:"dropdown header-menu header-submenu",style:{left:-200,top:64,maxHeight:e?a:0,overflowY:"auto"}},s.createElement("li",{className:"parent-item",onClick:this._toggleDropdownSubmenu.bind(this,{})},s.createElement("div",{className:"table-cell"},s.createElement("span",{className:"parent-item-icon"},"<"),s.createElement(g(),{content:this.state.dropdownSubmenuActiveItem.text,component:"span",className:"parent-item-name"}))),s.createElement(de,null),this.state.dropdownSubmenuActiveItem.submenu.map(((e,t)=>s.createElement(le,{key:t,target:e.target,text:e.text,hidden:e.hidden,icon:e.icon})))):s.createElement("ul",{className:"dropdown header-menu",style:{left:-200,top:64,maxHeight:e?a:0,overflowY:"auto"}},w.map(((e,t)=>{switch(e.inDropdownBehavior){case oe.Always:case oe.Dynamic:let a=(0,j.Z)(e.target)?this.props.onNavigate.bind(this,e.target):e.target;return e.submenu&&!(0,re.Z)(e.submenu)&&(e.submenu.target=(0,j.Z)(e.submenu.target)?this.props.onNavigate.bind(this,e.submenu.target):e.submenu.target),e.submenu&&(0,re.Z)(e.submenu)&&(a=this._toggleDropdownSubmenu.bind(this,e),e.submenu.map((e=>{e.target=(0,j.Z)(e.target)?this.props.onNavigate.bind(this,e.target):e.target}))),s.createElement(le,{key:t,currentPath:r,includePattern:e.includePattern,excludePattern:e.excludePattern,target:a,additionalClassName:e.additionalClassName,icon:e.icon,text:e.text,behavior:e.inDropdownBehavior,submenu:e.submenu,hidden:e.hidden,disabled:e.disabled});case oe.Divider:return s.createElement(de,{key:t,additionalClassName:e.additionalClassName,hidden:e.hidden})}})))}}var ge=a(76660);class be extends s.Component{constructor(e){super(e),this.state={previousAccountName:null,isModalVisible:!1},this.handleClose=this.handleClose.bind(this),this.handleSwitchBack=this.handleSwitchBack.bind(this),this.handleNeverShowAgain=this.handleNeverShowAgain.bind(this)}componentDidUpdate(e){e.currentAccount&&this.props.currentAccount&&this.props.currentAccount!==e.currentAccount&&!this.isMyAccount()&&this.isMyAccount(e.currentAccount)&&this.setState({isModalVisible:!1!==this.props.viewOnlyMode,previousAccountName:e.currentAccount})}handleSwitchBack(){const e=o.Z.getMyAccounts();let t=this.state.previousAccountName,a=null;this.isMyAccount(t)?a=t:Array.isArray(e)&&e.length&&(a=e[0]),F.Z.setCurrentAccount.defer(a)}isMyAccount(e){const t=e||this.props.currentAccount,a=o.Z.getMyAccounts();let s=!0;return Array.isArray(a)&&a.length&&t&&(s=a.indexOf(t)>=0),s}handleClose(){this.setState({isModalVisible:!1})}handleNeverShowAgain(){this.handleClose(),b.Z.changeSetting({setting:"viewOnlyMode",value:!1})}render(){const e=[s.createElement(ge.Button,{key:"ok",type:"primary",onClick:this.handleClose},k().translate("modal.ok")),s.createElement(ge.Button,{key:"cancel",onClick:this.handleNeverShowAgain},k().translate("account_browsing_mode.never_show_again"))];return this.props.usernameViewIcon?window.innerWidth<640&&!this.isMyAccount()?s.createElement(ge.Popover,{content:s.createElement(g(),{content:"account_browsing_mode.you_are_in_browsing_mode"}),placement:"bottom"},s.createElement(ge.Icon,{style:{marginLeft:10},className:"blue",type:"eye",onClick:this.handleSwitchBack})):null:s.createElement("div",{className:"account-browsing-mode"},s.createElement(ge.Modal,{title:k().translate("account_browsing_mode.modal_title"),closable:!1,visible:this.state.isModalVisible,footer:e},k().translate("account_browsing_mode.modal_description")),this.isMyAccount()?null:s.createElement(ge.Tooltip,{placement:"bottom",title:k().translate("account_browsing_mode.you_are_in_browsing_mode")},s.createElement(ge.Button,{onClick:this.handleSwitchBack,className:"hide-for-small-only account-browsing-mode--button"},k().translate("account_browsing_mode.view_mode"))))}}const fe=(0,u.$)(be,{listenTo:()=>[o.Z,h.Z],getProps:()=>({viewOnlyMode:h.Z.getState().settings.get("viewOnlyMode"),currentAccount:o.Z.getState().currentAccount})});var ye=a(19602),_e=a(73234);class we extends s.Component{render(){const{target:e,currentPath:t,includePattern:a,excludePattern:n,hideClassName:r,icon:o,text:i,behavior:l,hidden:c}=this.props;let d,u;(0,_e.Z)(e)&&(d=e),(0,j.Z)(e)&&(u=e);let p=o;(0,j.Z)(o)&&(p={name:o}),p&&!p.title&&(p.title="icons."+p.name),p&&!p.size&&(p.size="1_5x");let h=a;(0,j.Z)(a)&&(h=[a]);let m,b=n;(0,j.Z)(n)&&(b=[n]);let f=!1;if(a||n){if(f=!0,h)for(let e=0;e{this.unlisten&&this.state.active!==e.pathname&&this.setState({active:e.pathname})}))}componentDidMount(){setTimeout((()=>{te.Z.rebuild()}),1250),document.body.addEventListener("click",this.onBodyClick,{capture:!1,passive:!0})}componentWillUnmount(){this.unlisten&&(this.unlisten(),this.unlisten=null),document.body.removeEventListener("click",this.onBodyClick)}UNSAFE_componentWillReceiveProps(e){e.passwordLogin!==this.props.passwordLogin&&this.state.active.includes("/settings/")&&this.props.history.push("/settings/general")}shouldComponentUpdate(e,t){return e.myActiveAccounts!==this.props.myActiveAccounts||e.currentAccount!==this.props.currentAccount||e.passwordLogin!==this.props.passwordLogin||e.locked!==this.props.locked||e.current_wallet!==this.props.current_wallet||e.lastMarket!==this.props.lastMarket||e.starredAccounts!==this.props.starredAccounts||e.currentLocale!==this.props.currentLocale||t.active!==this.state.active||t.hiddenAssets!==this.props.hiddenAssets||t.dropdownActive!==this.state.dropdownActive||t.accountsListDropdownActive!==this.state.accountsListDropdownActive||e.height!==this.props.height||e.location.pathname!==this.props.location.pathname}_showSend(e){e.preventDefault(),this.send_modal&&this.send_modal.show(),this._closeDropdown()}_showDeposit(e){e.preventDefault(),this.showDepositModal(),this._closeDropdown()}_showWithdraw(e){e.preventDefault(),this._closeDropdown(),this.showWithdrawModal()}_triggerMenu(e){e.preventDefault(),U().publish("mobile-menu","toggle")}_toggleLock(e){e.preventDefault(),G.Z.isLocked()?J.Z.unlock().then((()=>{F.Z.tryToSetCurrentAccount()})).catch((()=>{})):(J.Z.lock(),X.Z.getState().rememberMe||((0,ye.oA)()||(0,ye.tc)("persistant"),F.Z.setPasswordAccount(null),o.Z.tryToSetCurrentAccount())),this._closeDropdown(),this._closeAccountNotifications()}_onNavigate(e,t){t.preventDefault(),"/accounts"==e&&b.Z.changeViewSetting({dashboardEntry:"accounts"}),this.props.history.push(e),this._closeDropdown()}_closeAccountsListDropdown(){this.state.accountsListDropdownActive&&this.setState({accountsListDropdownActive:!1})}_closeMenuDropdown(){this.state.dropdownActive&&this.setState({dropdownActive:!1})}_closeDropdown(){this._closeMenuDropdown(),this._closeAccountsListDropdown()}_onGoBack(e){e.preventDefault(),window.history.back()}_onGoForward(e){e.preventDefault(),window.history.forward()}_accountClickHandler(e,t){if(t.preventDefault(),U().publish("account_drop_down","close"),e!==this.props.currentAccount){F.Z.setCurrentAccount.defer(e);const t=`account-notification-${Date.now()}`;ge.Notification.success({message:k().translate("header.account_notify",{account:e}),key:t,onClose:()=>{this._accountNotificationActiveKeys=this._accountNotificationActiveKeys.filter((e=>e!==t))}}),this._accountNotificationActiveKeys.push(t),this._closeDropdown()}}_toggleAccountDropdownMenu(){if(!G.Z.getWallet())return!1;this._closeAccountNotifications(),this.setState({accountsListDropdownActive:!this.state.accountsListDropdownActive})}_toggleDropdownMenu(){this.setState({dropdownActive:!this.state.dropdownActive}),this._closeAccountNotifications()}_closeAccountNotifications(){this._accountNotificationActiveKeys.map((e=>ge.Notification.close(e))),this._accountNotificationActiveKeys=[]}onBodyClick(e){let t=e.target,a=!1,s=!1;do{if(t.classList&&t.classList.contains("account-dropdown-wrapper")){s=!0;break}if(t.classList&&t.classList.contains("menu-dropdown-wrapper")){a=!0;break}}while(t=t.parentNode);s||this._closeAccountsListDropdown(),a||this._closeMenuDropdown()}render(){let{active:e}=this.state,{currentAccount:t,starredAccounts:a,passwordLogin:n,passwordAccount:i,height:l}=this.props,c=o.Z.getMyAccounts(),d=Math.max(40,l-67-36)+"px";const u=r.ChainStore.getAccount(t),p=!!u,h=!!u&&(o.Z.isMyAccount(u)||n&&t===i),m=!!u&&f.Apis.instance()&&f.Apis.instance().chain_id&&"4018d784"===f.Apis.instance().chain_id.substr(0,8);if(a.size){for(let e=c.length-1;e>=0;e--)a.has(c[e])||c.splice(e,1);a.forEach((e=>{-1===c.indexOf(e.name)&&c.push(e.name)}))}let g,b,_=o.Z.getMyAccounts(),w=_.length,k=_.length&&this.props.currentAccount?s.createElement("div",{className:"total-value",onClick:this._toggleAccountDropdownMenu},s.createElement(ee.Z.AccountWrapper,{hiddenAssets:this.props.hiddenAssets,accounts:(0,ne.List)([this.props.currentAccount]),noTip:!0,style:{minHeight:15}})):null,v=s.createElement("a",{className:$()("logo",{active:"/"===e||-1!==e.indexOf("dashboard")&&-1===e.indexOf("account")}),onClick:this._onNavigate.bind(this,"/")},s.createElement("img",{style:{margin:0,height:40},src:Ae})),A=0===w||null,E=this.props.lastMarket?`/market/${this.props.lastMarket}`:"/market/"+(0,ve.v)();t&&(g=t.length>20?`${t.slice(0,20)}..`:t,c.indexOf(t)<0&&h&&c.push(t),c.length>=1&&(b=c.sort().filter((e=>e!==t)).map((t=>s.createElement("li",{key:t,className:$()({active:0===e.replace("/account/","").indexOf(t)}),onClick:this._accountClickHandler.bind(this,t)},s.createElement("div",{style:{paddingTop:0},className:"table-cell"},s.createElement(ae.Z,{style:{position:"relative",top:4},size:{height:20,width:20},account:t})),s.createElement("div",{className:"table-cell",style:{paddingLeft:10}},s.createElement("a",{className:"text lower-case"+(t===g?" current-account":"")},t)))))));let x=this.state.dropdownActive?s.createElement(y.Z,{className:"icon-18px",name:"hamburger-x",title:"icons.hamburger_x"}):s.createElement(y.Z,{className:"icon-18px",name:"hamburger",title:"icons.hamburger"});const S=!!G.Z.getWallet();let C={currentAccount:t,tradeUrl:E,createAccountLink:A},T=he.getData({},C);return s.createElement("div",{className:"header-container",style:{minHeight:"64px"}},s.createElement("div",null,s.createElement("div",{className:"header menu-group primary",style:{flexWrap:"nowrap",justifyContent:"none"}},null,s.createElement("ul",{className:"menu-bar"},s.createElement("li",null,v),T.map(((t,a)=>{switch(t.inHeaderBehavior){case oe.Always:case oe.Dynamic:let n=(0,j.Z)(t.target)?this._onNavigate.bind(this,t.target):t.target;return s.createElement(ke,{key:a,currentPath:e,includePattern:t.includePattern,excludePattern:t.excludePattern,target:n,hideClassName:t.hideClassName,icon:t.icon,text:t.text,behavior:t.inHeaderBehavior,hidden:t.hidden});case oe.Divider:return s.createElement(de,{key:a,additionalClassName:t.additionalClassName,hidden:t.hidden})}}))))),s.createElement("div",{className:"truncated active-account",style:{cursor:"pointer"}},s.createElement(fe,{location:this.props.location}),s.createElement("div",null,s.createElement("div",{className:"text account-name"},s.createElement("span",{onClick:this._toggleAccountDropdownMenu},t),s.createElement(fe,{location:this.props.location,usernameViewIcon:!0})),k),S&&s.createElement("ul",{className:"dropdown header-menu local-wallet-menu",style:{right:0,maxHeight:this.state.accountsListDropdownActive?d:0,overflowY:"auto",position:"absolute",width:"20em"}},s.createElement(ke,{currentPath:e,includePattern:"/accounts",target:this._onNavigate.bind(this,"/accounts"),icon:{name:"people",title:"icons.manage_accounts",size:"2x"},text:"header.accounts_manage"}),s.createElement(de,null),b)),s.createElement("div",null,null==this.props.currentAccount?null:s.createElement("span",{onClick:this._toggleLock.bind(this),style:{cursor:"pointer"}},s.createElement(y.Z,{className:"lock-unlock",size:"2x",name:this.props.locked?"locked":"unlocked",title:this.props.locked?"icons.locked.common":"icons.unlocked.common"}))),s.createElement("div",{className:"app-menu"},s.createElement("div",{onClick:this._toggleDropdownMenu,className:$()("menu-dropdown-wrapper dropdown-wrapper",{active:this.state.dropdownActive})},s.createElement("div",{className:"hamburger"},x),s.createElement(me,{dropdownActive:this.state.dropdownActive,toggleLock:this._toggleLock.bind(this),maxHeight:d,locked:this.props.locked,active:e,passwordLogin:n,onNavigate:this._onNavigate.bind(this),isMyAccount:h,contacts:this.props.contacts,showAccountLinks:p,tradeUrl:E,currentAccount:t,enableDepositWithdraw:m,showDeposit:this._showDeposit.bind(this),showWithdraw:this._showWithdraw.bind(this),showSend:this._showSend.bind(this)}))),s.createElement(H.Z,{id:"send_modal_header",refCallback:e=>{e&&(this.send_modal=e)},from_name:t}),this.state.hasDepositModalBeenShown&&s.createElement(K.Z,{visible:this.state.isDepositModalVisible,hideModal:this.hideDepositModal,showModal:this.showDepositModal,ref:"deposit_modal_new",modalId:"deposit_modal_new",account:t,backedCoins:this.props.backedCoins}),this.state.hasWithdrawalModalBeenShown&&s.createElement(se.Z,{visible:this.state.isWithdrawModalVisible,hideModal:this.hideWithdrawModal,showModal:this.showWithdrawModal,ref:"withdraw_modal_new",modalId:"withdraw_modal_new",backedCoins:this.props.backedCoins}))}}Ee=(0,u.$)(Ee,{listenTo:()=>[o.Z,X.Z,Y.Z,h.Z,V.Z],getProps(){const e=f.Apis.instance().chain_id;return{backedCoins:V.Z.getState().backedCoins,myActiveAccounts:o.Z.getState().myActiveAccounts,currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount,passwordAccount:o.Z.getState().passwordAccount,locked:X.Z.getState().locked,current_wallet:Y.Z.getState().current_wallet,lastMarket:h.Z.getState().viewSettings.get("lastMarket"+(e?"_"+e.substr(0,8):"")),starredAccounts:o.Z.getState().starredAccounts,passwordLogin:h.Z.getState().settings.get("passwordLogin"),currentLocale:h.Z.getState().settings.get("locale"),hiddenAssets:h.Z.getState().hiddenAssets,settings:h.Z.getState().settings,locales:h.Z.getState().defaults.locale,contacts:o.Z.getState().accountContacts}}});const xe=(0,d.EN)(Ee);var Se=a(26656),Ce=a.n(Se),Te=a(85158),Be=a(69778),ze=a(69730),Pe=a(47449),Ne=a(79060),Me=a(79361),Ze=a.n(Me);class Ie extends s.Component{constructor(e){super(e),this.state={isModalVisible:!1,isErrorDetailsVisible:!1,showQrCode:!1},this.onCloseClick=this.onCloseClick.bind(this),this.onConfirmClick=this.onConfirmClick.bind(this),this.onShowDetailsClick=this.onShowDetailsClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}shouldComponentUpdate(e,t){return!(!e.transaction||t.isErrorDetailsVisible===this.state.isErrorDetailsVisible&&t.showQrCode===this.state.showQrCode&&B.Z.are_equal_shallow(e,this.props))}componentDidUpdate(){this.props.closed?this.hideModal():this.showModal()}showModal(){this.setState({isModalVisible:!0})}hideModal(){this.setState({isModalVisible:!1,isErrorDetailsVisible:!1})}onKeyUp(e){13===e.keyCode?this.onConfirmClick(e):e.preventDefault()}onConfirmClick(e){if(e.preventDefault(),this.props.propose){const e={fee_paying_account:r.ChainStore.getAccount(this.props.fee_paying_account).get("id")};this.props.transaction.update_head_block().then((()=>{G.Z.process_transaction(this.props.transaction.propose(e),null,!0)}))}else Be.Z.broadcast(this.props.transaction,this.props.resolve,this.props.reject)}onCloseClick(e){e.preventDefault(),Be.Z.close(this.props.reject)}onShowDetailsClick(){this.setState((e=>({isErrorDetailsVisible:!e.isErrorDetailsVisible})))}onProposeClick(){Be.Z.togglePropose()}onProposeAccount(e){r.ChainStore.getAccount(e),Be.Z.proposeFeePayingAccount(e)}UNSAFE_componentWillReceiveProps(e){e.broadcast&&e.included&&!this.props.included&&!e.error&&l.Z.addNotification.defer({children:s.createElement("div",null,s.createElement("p",null,s.createElement(g(),{content:"transaction.transaction_confirmed"}),"  ",s.createElement("span",null,s.createElement(y.Z,{name:"checkmark-circle",title:"icons.checkmark_circle.operation_succeed",size:"1x",className:"success"}))),s.createElement("table",null,s.createElement(Ne.Z,{op:this.props.transaction.serialize().operations[0],block:1,current:"1.2.0",hideFee:!0,inverted:!1,hideOpLabel:!0,hideDate:!0}))),level:"success",autoDismiss:3})}_showQrCode(){let{transaction:e}=this.props,t="";e.tr_buffer?(t=JSON.stringify(e.serialize()),this.setState({showQrCode:!0,trStr:t})):(e.set_expire_seconds(60),e.finalize().then((()=>{t=JSON.stringify(e.serialize()),this.setState({showQrCode:!0,trStr:t})})))}_hideQrCode(){this.props.transaction.tr_buffer=null,this.setState({showQrCode:!1,trStr:""})}render(){let{broadcast:e,broadcasting:t}=this.props,{isErrorDetailsVisible:a,showQrCode:n,trStr:r}=this.state;if(!this.props.transaction||this.props.closed)return null;let i,l,c,d,u;return this.props.propose&&this.props.fee_paying_account,this.props.error||this.props.included?(l=this.props.error?k().translate("transaction.broadcast_fail",{message:""}):k().translate("transaction.transaction_confirmed"),({error:u,error_code:c,error_data:d}=this.props),c&&(u=c+" - "+u),d instanceof Object&&(d=JSON.stringify(d,null,4)),d=s.createElement("div",null,s.createElement("pre",null,d)),d&&(u=s.createElement("div",null,u,s.createElement("br",null),s.createElement("a",null,s.createElement(g(),{onClick:this.onShowDetailsClick,content:a?"transaction.hide":"transaction.show_more"})))),i=[s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("transfer.close"))]):e?(l=`${k().translate("transaction.broadcast_success")}. ${k().translate("transaction.waiting")}`,i=[s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("transfer.close"))]):t?(l=s.createElement("div",null,k().translate("transaction.broadcasting"),s.createElement(ge.Icon,{type:"loading"})),i=[]):(l=k().translate("transaction.confirm"),i=[s.createElement("div",{style:{float:"left",cursor:"pointer",marginTop:"4px"},key:"scan-qr",onClick:this._showQrCode.bind(this)},s.createElement(g(),{style:{marginTop:"3px",marginLeft:"5px"},content:"transaction.view_qr"}),s.createElement(y.Z,{name:"qr-scan",size:"1_5x"})),s.createElement(ge.Button,{key:"confirm",type:"primary",onClick:this.onConfirmClick},this.props.propose?k().translate("propose"):k().translate("transfer.confirm")),s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("account.perm.cancel"))]),s.createElement("div",{ref:"transactionConfirm",onKeyUp:this.onKeyUp},s.createElement(ge.Modal,{wrapClassName:"modal--transaction-confirm",title:l,visible:!this.props.closed,id:"transaction_confirm_modal",ref:"modal",footer:i,overlay:!0,onCancel:this.onCloseClick,overlayClose:!t,noCloseBtn:!0},s.createElement("div",{className:"grid-block vertical no-padding no-margin"},this.props.error?s.createElement(ge.Alert,{type:"error",message:u}):null,this.props.included?s.createElement(ge.Alert,{type:"success",message:k().translate("transaction.transaction_confirmed"),description:`#${this.props.trx_id}@${this.props.trx_block_num}`}):null,a?s.createElement(ge.Alert,{type:"error",style:{fontSize:"0.7rem"},message:d}):null,s.createElement("div",{className:"shrink",style:{maxHeight:"60vh",overflowY:"auto",overflowX:"hidden"}},s.createElement(Te.Z,{key:Date.now(),trx:this.props.transaction.serialize(),index:0,no_links:!0}),r?s.createElement(ge.Modal,{visible:n,onCancel:this._hideQrCode.bind(this),footer:s.createElement(ge.Button,{key:"cancel",onClick:this._hideQrCode.bind(this)},k().translate("cancel"))},s.createElement("div",{className:"text-center"},s.createElement("div",{style:{margin:"1.5rem 0"}},s.createElement(g(),{component:"h4",content:"transaction.title_qrcode"})),s.createElement("div",{className:"full-width"},s.createElement("span",{style:{background:"#fff",padding:".75rem",display:"inline-block"}},s.createElement(Ze(),{size:256,value:r}))))):null),this.props.propose?s.createElement("div",{className:"full-width-content form-group"},s.createElement("label",null,s.createElement(g(),{content:"account.propose_from"})),s.createElement(Pe.Z,{className:"full-width",account_names:o.Z.getMyAccounts(),onChange:this.onProposeAccount.bind(this)})):null,s.createElement("div",{className:"grid-block shrink",style:{paddingTop:"1rem"}},this.props.transaction.has_proposed_operation()||e||t||this.props.error?null:s.createElement("div",{className:"align-right grid-block"},s.createElement("label",{style:{paddingRight:"0.5rem"}},s.createElement(g(),{content:"propose"}),":"),s.createElement(ge.Switch,{checked:this.props.propose,onChange:this.onProposeClick.bind(this)}))))))}}const Oe=Ie=(0,u.$)(Ie,{listenTo:()=>[ze.Z],getProps:()=>ze.Z.getState()});var qe=a(53299),Le=a(28969),De=a(40678),Re=a(36345);class je extends s.Component{static propTypes={label:M().string,error:M().element,placeholder:M().string,onChange:M().func,onAccountChanged:M().func,onAction:M().func,accountName:M().string,account:C.Z.ChainAccount,tabIndex:M().number,disableActionButton:M().bool,allowUppercase:M().bool,typeahead:M().bool,excludeAccounts:M().array};static defaultProps={autosubscribe:!1,excludeAccounts:[]};constructor(e){super(e),this.state={inputChanged:!1}}componentDidMount(){let{account:e,accountName:t}=this.props;void 0===e&&(e=r.ChainStore.getAccount(t)),this.props.onAccountChanged&&e&&this.props.onAccountChanged(e),!this.props.typeahead&&t&&this.onInputChanged(t)}UNSAFE_componentWillReceiveProps(e){e.account&&e.account!==this.props.account&&this.props.onAccountChanged&&this.props.onAccountChanged(e.account)}getAccount(){return this.props.account}getError(){let{account:e,error:t}=this.props;return t||!e||this.getInputType(e.get("name"))||(t=k().translate("account.errors.invalid")),t}getInputType(e){return e?"#"===e[0]&&B.Z.is_object_id("1.2."+e.substring(1))?"id":r.ChainValidation.is_account_name(e,!0)?"name":this.props.allowPubKey&&r.PublicKey.fromPublicKeyString(e)?"pubkey":null:null}onSelected(e){this.setState({inputChanged:!1}),this._notifyOnChange(e)}_notifyOnChange(e){let{onChange:t,onAccountChanged:a,accountName:s}=this.props,n=this.getVerifiedAccountName(e);n!==s&&(t&&(n||""===n)&&t(n),a&&(0,r.FetchChain)("getAccount",n,void 0,{[n]:!1}).then((e=>{e&&a(e)})).catch((e=>{console.log(e)})))}onInputChanged(e){this.setState({inputChanged:!0}),this._notifyOnChange(e)}getVerifiedAccountName(e){let{allowUppercase:t}=this.props,a=null;a="string"==typeof e?e:e&&e.target?e.target.value.trim():"",t||(a=a.toLowerCase());let s=a.replace("#","").match(/(?:\/account\/)(.*)/);return s&&(a=s[1]),a}onKeyDown(e){13===e.keyCode&&this.onAction(e)}_onAddContact(){F.Z.addAccountContact(this.props.accountName)}_onRemoveContact(){F.Z.removeAccountContact(this.props.accountName)}onAction(e){let{onAction:t,disableActionButton:a,account:s,accountName:n}=this.props;e.preventDefault(),this.getError()||!t||a||(s?t(s):"pubkey"===this.getInputType(n)&&t(n))}render(){let{accountName:e,account:t,allowPubKey:a,typeahead:n,disableActionButton:o,contacts:i,myActiveAccounts:l,noPlaceHolder:c,useHR:d,labelClass:u,reserveErrorSpace:p}=this.props;const h=this.getInputType(e);let m,g=[],b=this.getError(),f=l;f=f.concat(i),t&&(t.isKnownScammer=Re.Z.isKnownScammer(t.get("name")),t.accountType=this.getInputType(t.get("name")),t.accountStatus=r.ChainStore.getAccountMemberStatus(t),t.statusText=t.isKnownScammer?k().translate("account.member.suspected_scammer"):k().translate("account.member."+t.accountStatus),m="name"===t.accountType?"#"+t.get("id").substring(4):"id"===t.accountType?t.get("name"):null),n?a&&"pubkey"===h||b||!e||t||(b=k().translate("account.errors.unknown")):!t&&e&&"pubkey"!==h&&(b=k().translate("account.errors.unknown")),a&&"pubkey"===h&&(m="Public Key"),t&&f&&(t.isFavorite=l.has(t.get("name"))||i.has(t.get("name"))),n&&f&&f.map((e=>{if(-1!==this.props.excludeAccounts.indexOf(e))return null;let t=r.ChainStore.getAccount(e),a=r.ChainStore.getAccountMemberStatus(t),s=Re.Z.isKnownScammer(e)?"account.member.suspected_scammer":"account.member."+a;g.push({id:e,label:e,status:k().translate(s),className:Re.Z.isKnownScammer(e)?"negative":"positive"})})).filter((e=>!!e));let _=!!e&&g.reduce(((t,a)=>t||a.label===e),!1);if(e&&!_&&this.state.inputChanged){let t=r.ChainStore.getAccount(e),a=t?r.ChainStore.getAccountMemberStatus(t):null,s=t?Re.Z.isKnownScammer(t.get("name"))?k().translate("account.member.suspected_scammer"):k().translate("account.member."+a):k().translate("account.errors.unknown");g.push({id:this.props.accountName,label:this.props.accountName,status:s,className:Re.Z.isKnownScammer(e)||!t?"negative":null,disabled:!t})}return g.sort(((e,t)=>e.label>t.label?1:-1)),this.props.account&&(l.has(t.get("name"))||i.has(t.get("name"))?(ge.Tooltip,k().translate("tooltip.follow_user"),this._onRemoveContact.bind(this),y.Z):(ge.Tooltip,k().translate("tooltip.follow_user_add"),this._onAddContact.bind(this),y.Z)),$()("button",{disabled:!(t||"pubkey"===h)||b||o}),s.createElement("div",{className:"account-selector",style:this.props.style},s.createElement("div",{className:"content-area"},(e=>this.props.label?s.createElement("div",null,s.createElement(ge.Form.Item,{label:k().translate(this.props.label),hasFeedback:!0,validateStatus:b?"error":t?"success":"",help:b||!!t&&s.createElement("span",{className:"positive"},t&&t.statusText," ",!!m&&m)},e)):e)(s.createElement(ge.Input,{style:{textTransform:"pubkey"===this.getInputType(e)?null:"lowercase",fontVariant:"initial"},name:"username",id:"username",autoComplete:"username",type:"text",value:this.props.accountName||"",placeholder:this.props.placeholder||k().translate("account.name"),ref:this.props.inputRef||"user_input",onChange:this.onInputChanged.bind(this),onKeyDown:this.onKeyDown.bind(this),tabIndex:this.props.tabIndex}))))}}je=(0,T.Z)(je);const Fe=je=(0,u.$)(je,{listenTo:()=>[o.Z],getProps:()=>({myActiveAccounts:o.Z.getState().myActiveAccounts,contacts:o.Z.getState().accountContacts})});var We=a(78598);const Ue=({value:e,onChange:t})=>s.createElement(ge.Form.Item,{label:k().translate("account.login_with")},s.createElement(ge.Select,{onChange:t,value:e},(0,ve.Sf)().includes("password")&&s.createElement(ge.Select.Option,{value:"cloud"},k().translate("account.name")," (",k().translate("wallet.password_model").toLowerCase(),")"),(0,ve.Sf)().includes("wallet")&&s.createElement(ge.Select.Option,{value:"local"},k().translate("wallet.key_file")," (",k().translate("wallet.wallet_model").toLowerCase(),")"))),He=e=>1==(0,ve.Sf)().length?null:s.createElement(S.Z,{stores:[X.Z],inject:{value:()=>X.Z.getState().passwordLogin?"cloud":"local"},actions:()=>({onChange:e=>{const t=e;if(!t in["cloud","local"])throw new Error("Invalid login type value");return b.Z.changeSetting({setting:"passwordLogin",value:"cloud"===t})}})},s.createElement(Ue,e)),Ke=()=>s.createElement("input",{type:"text",className:"no-padding no-margin",style:{visibility:"hidden",height:0}}),Ve=e=>e.stopPropagation(),Ge=({showUseOtherWalletLink:e,onUseOtherWallet:t})=>s.createElement("div",{className:"label-container"},s.createElement("label",{className:"left-label login-label"},s.createElement(g(),{content:"wallet.key_file_bin"})," ")," ",e&&s.createElement("a",{onClick:t},"(",s.createElement(g(),{content:"wallet.use_different"}),")"));class Xe extends s.Component{render(){return s.createElement("label",{className:"upload-button themed-input"},s.createElement(g(),{content:"wallet.restore_key_file"}),s.createElement($e,null),s.createElement("input",{type:"file",onClick:Ve,onChange:this.props.onFileChosen,accept:".bin"}))}}const Je=({onFileChosen:e,onRestoreOther:t})=>s.createElement("div",null,s.createElement(Xe,{onFileChosen:e}),s.createElement("div",{className:"login-hint"},s.createElement(g(),{content:"wallet.different_file_type"})," ",s.createElement("a",{onClick:t},s.createElement(g(),{content:"wallet.restore_it_here"})))),Ye=({onChange:e,checked:t})=>s.createElement("div",{className:"backup-warning"},s.createElement(ge.Alert,{type:"warning",message:k().translate("alert.warning"),description:k().translate("wallet.backup_warning")}),s.createElement("div",{className:"checkbox"},s.createElement(ge.Checkbox,{key:`checkbox_${t}`,onChange:e,checked:t},s.createElement(g(),{content:"wallet.dont_ask_for_backup"}))));class Qe extends s.Component{render=()=>React.createElement("div",{className:"content-block account-selector input-area"},React.createElement("label",{className:"left-label login-label"},React.createElement(Translate,{content:"settings.password"})),React.createElement("input",{ref:"password_input",name:"password",id:"password",type:"password",autoComplete:"current-password"}))}const $e=()=>s.createElement("svg",{viewBox:"0 0 6.349999 7.5313201",version:"1.1",className:"upload-button-logo"},s.createElement("g",{transform:"translate(-86.783338,-137.44666)"},s.createElement("path",{d:"m 89.958337,144.97798 h -3.174999 v -1.18208 -1.18208 l 0.387288,-1.11098 0.387288,-1.11097 h 0.847434 0.847434 v 0.31163 0.31163 l -0.65212,0.17054 -0.652119,0.17053 -0.196798,0.75256 -0.196798,0.75255 h 2.40339 2.403391 l -0.196798,-0.75255 -0.196798,-0.75256 -0.652119,-0.17053 -0.65212,-0.17054 v -0.31163 -0.31163 h 0.847434 0.847434 l 0.387288,1.11097 0.387288,1.11098 v 1.18208 1.18208 z m 0,-3.175 H 89.60556 v -1.2017 -1.20169 l -0.705556,0.1845 -0.705555,0.18451 v -0.33243 -0.33243 l 0.881944,-0.82854 0.881944,-0.82854 0.881945,0.82854 0.881944,0.82854 v 0.33243 0.33243 l -0.705555,-0.18451 -0.705556,-0.1845 v 1.20169 1.2017 z"}))),et=({name:e,onUseOtherWallet:t})=>s.createElement("div",{className:"content-box"},s.createElement("b",null,s.createElement(g(),{content:"wallet.using"}))," ",e," ",s.createElement("a",{onClick:t},"(",s.createElement(g(),{content:"wallet.use_different"}),")")),tt=({onCreate:e})=>s.createElement("div",{className:"login-hint"},s.createElement(g(),{content:"wallet.no_wallet",component:"span"})," ",s.createElement("span",{className:"button",onClick:e},s.createElement(g(),{content:"wallet.create_wallet"}))),at=({restoringBackup:e,walletNames:t,onWalletChange:a})=>s.createElement("select",{value:e?"upload.":"",onChange:a,className:"login-select"},s.createElement("option",{value:"",hidden:!0},k().translate("wallet.select_wallet")),t.map((e=>s.createElement("option",{className:"login-option",key:e,value:`wallet.${e}`},e))),s.createElement("option",{value:"upload."},k().translate("settings.backup_backup_short")));var st=a(96628);class nt extends s.Component{constructor(e){super(e),this.state=this.initialState(e),this.account_input=s.createRef(),this.handlePasswordChange=this.handlePasswordChange.bind(this)}initialState=(e=this.props)=>{const{passwordAccount:t,currentWallet:a}=e;return{isModalVisible:!1,passwordError:null,accountName:t,walletSelected:!!a,customError:null,isOpen:!1,restoringBackup:!1,stopAskingForBackup:!1,rememberMe:X.Z.getState().rememberMe,focusedOnce:!1,isAutoLockVisible:!1}};UNSAFE_componentWillReceiveProps(e){const{walletSelected:t,restoringBackup:a,accountName:s}=this.state,{currentWallet:n,passwordAccount:r}=e,o={};!t||a||n||(o.walletSelected=!1),this.props.passwordLogin!=e.passwordLogin&&(o.passwordError=!1,o.customError=null),this.setState(o)}shouldComponentUpdate(e,t){return!(this.state.isOpen&&!t.isOpen||B.Z.are_equal_shallow(e,this.props)&&B.Z.are_equal_shallow(t,this.state))}handlePasswordChange(e){this.setState({password:e.target.value})}handleModalClose=()=>{J.Z.cancel(),De.ZP.reset(),this.setState(this.initialState())};handleModalOpen=()=>{De.ZP.reset(),this.setState({isOpen:!0},(()=>{const{passwordLogin:e}=this.props;if(!e){const{password_input:e}=this.refs;e&&(e.clear(),e.focus());const{dbWallet:t}=this.props;t&&f.Apis.instance().chain_id!==t.chain_id&&(ge.Notification.error({message:k().translate("notifications.wallet_unlock_different_block_chain",{expectedWalletId:t.chain_id.substring(0,4).toUpperCase(),actualWalletId:f.Apis.instance().chain_id.substring(0,4).toUpperCase()})}),J.Z.cancel())}}))};componentDidMount(){const{modalId:e}=this.props;U().subscribe(e,((t,a)=>{const{isOpen:s}=this.state;t===e&&("close"===a&&s?this.handleModalClose():"open"!==a||s||this.handleModalOpen())}))}componentDidUpdate(){const{resolve:e,isLocked:t,passwordLogin:a}=this.props,{isModalVisible:s,accountName:n,focusedOnce:r}=this.state;if(!r&&s&&a){let e=this.account_input&&this.account_input.current,t=this.password_input;e&&t||this.forceUpdate(),n&&t?(t.input.focus(),this.setState({focusedOnce:!0})):e&&e.input&&"function"==typeof e.focus&&(e.focus(),this.setState({focusedOnce:!0}))}else if(!r&&s&&!a){let e=this.password_input2;e||this.forceUpdate(),e&&(e.input.focus(),this.setState({focusedOnce:!0}))}e?t?this.setState({isModalVisible:!0}):e():this.setState({isModalVisible:!1,password:""})}validate=(e,t)=>{const{passwordLogin:a,resolve:s}=this.props,{stopAskingForBackup:n}=this.state,{cloudMode:r}=G.Z.validatePassword(e||"",!0,t);G.Z.isLocked()?this.setState({passwordError:!0}):(a?(this.setState({password:""}),r&&F.Z.setPasswordAccount(t)):this.setState({password:""}),J.Z.change(),n?Le.Z.setBackupDate():this.shouldUseBackupLogin()&&this.backup(),s(),J.Z.cancel())};passwordInput=()=>this.refs.password_input||this.refs.custom_password_input.refs.password_input;restoreBackup=(e,t)=>{const{backup:a}=this.props,s=r.PrivateKey.fromSeed(e||""),n=a.name.split(".")[0];(0,De.nu)(s.toWif(),a.contents,n).then((()=>Le.Z.setWallet(n).then((()=>{De.ZP.reset(),t()})).catch((e=>this.setState({customError:e.message}))))).catch((e=>{const t="string"==typeof e?e:e.message,a="invalid_decryption_key"===t;this.setState({customError:a?null:t,passwordError:a})}))};handleLogin=e=>{e&&e.preventDefault();const{passwordLogin:t,backup:a}=this.props,{walletSelected:s,accountName:n}=this.state;t||s?this.setState({passwordError:null},(()=>{const e=this.state.password;if(!t&&a.name)this.restoreBackup(e,(()=>this.validate(e)));else{this.state.rememberMe?(0,ye.oA)()||(0,ye.tc)("persistant"):(0,ye.oA)()&&(0,ye.tc)("inram");const a=t?n:null;this.validate(e,a)}})):this.setState({customError:k().translate("wallet.ask_to_select_wallet")})};closeRedirect=e=>{J.Z.cancel(),this.props.history.push(e)};handleCreateWallet=()=>this.closeRedirect("/create-account/wallet");handleRestoreOther=()=>this.closeRedirect("/settings/restore");loadBackup=e=>{const t=e.target.value,a=e.target.files[0];this.setState({restoringBackup:!0},(()=>{const e=t.indexOf("\\")>=0?t.lastIndexOf("\\"):t.lastIndexOf("/");let s=t.substring(e);0!==s.indexOf("\\")&&0!==s.indexOf("/")||(s=s.substring(1)),De.ZP.incommingWebFile(a),this.setState({walletSelected:!0})}))};handleSelectedWalletChange=e=>{const{value:t}=e.target,a=t.split(".")[0],s=t.substring(t.indexOf(".")+1);De.ZP.reset(),"upload"===a?this.setState({restoringBackup:!0,customError:null}):Le.Z.setWallet(s).then((()=>this.setState({walletSelected:!0,customError:null,restoringBackup:!1})))};backup=()=>(0,De.D$)(this.props.dbWallet.password_pubkey).then((e=>{const{currentWallet:t}=this.props,a=(0,st.a)(t);De.ZP.incommingBuffer({name:a,contents:e});const{backup:s}=this.props;let n=new Blob([s.contents],{type:"application/octet-stream; charset=us-ascii"});if(n.size!==s.size)throw new Error("Invalid backup to download conversion");(0,We.saveAs)(n,a),Le.Z.setBackupDate(),De.ZP.reset()}));handleAskForBackupChange=e=>this.setState({stopAskingForBackup:e.target.checked});handleUseOtherWallet=()=>{this.setState({walletSelected:!1,restoringBackup:!1,passwordError:null,customError:null})};handleAccountNameChange=e=>this.setState({accountName:e,error:null});shouldShowBackupWarning=()=>!this.props.passwordLogin&&this.state.walletSelected&&!this.state.restoringBackup&&!(this.props.dbWallet&&this.props.dbWallet.backup_date);shouldUseBackupLogin=()=>this.shouldShowBackupWarning()&&!this.state.stopAskingForBackup;handleRememberMe=()=>{let e=!this.state.rememberMe;this.setState({rememberMe:e}),b.Z.changeSetting({setting:"rememberMe",value:e})};handleWalletAutoLock=e=>{let t=parseInt(e,10);isNaN(t)&&(t=0),isNaN(t)||"number"!=typeof t||b.Z.changeSetting({setting:"walletLockTimeout",value:t})};render(){const{backup:e,passwordLogin:t,modalId:a,currentWallet:n,walletNames:r,walletLockTimeout:o}=this.props,{walletSelected:i,restoringBackup:l,passwordError:c,customError:d,accountName:u,stopAskingForBackup:p,isOpen:h}=this.state,m=!(r.size>0),b=m&&!i,f=e.name||n,_=c?k().translate("wallet.pass_incorrect"):d;let w=[];return t&&(w.push(s.createElement(ge.Tooltip,{key:"wallet.remember_me_explanation",title:k().translate("wallet.remember_me_explanation")},s.createElement("div",{style:{float:"left",cursor:"pointer",marginTop:"6px"},onClick:this.handleRememberMe.bind(this)},s.createElement(g(),{content:"wallet.remember_me"}),s.createElement(ge.Switch,{checked:this.state.rememberMe,onChange:this.handleRememberMe.bind(this)})))),w.push(s.createElement("div",{style:{float:"left"},key:"settings.walletLockTimeoutTooltip"},s.createElement("span",null,s.createElement(ge.Tooltip,{title:k().translate("settings.walletLockTimeoutTooltip")},s.createElement("span",null,s.createElement(y.Z,{onClick:()=>{this.setState({isAutoLockVisible:!this.state.isAutoLockVisible})},name:"autolock",size:"1_5x",style:{cursor:"pointer",top:"5px",position:"relative",marginLeft:"12px"}}))),this.state.isAutoLockVisible&&s.createElement(ge.Tooltip,{title:k().translate("settings.walletLockTimeout")},s.createElement(ge.InputNumber,{value:o,onChange:this.handleWalletAutoLock,placeholder:"Auto-lock after...",style:{marginLeft:"7px",width:"65px"}})))))),w.push(s.createElement("span",{className:"auto-lock-wrapper",key:"wallet.backup_login"},s.createElement(ge.Button,{onClick:this.handleLogin,key:"login-btn"},k().translate(this.shouldUseBackupLogin()?"wallet.backup_login":"header.unlock_short")))),s.createElement(ge.Modal,{title:"Login",visible:this.state.isModalVisible,wrapClassName:"unlock_wallet_modal2",id:a,closeable:!1,ref:"modal",overlay:!0,overlayClose:!1,modalHeader:"header.unlock_short",onCancel:this.handleModalClose,leftHeader:!0,footer:w,zIndex:1001},s.createElement(ge.Form,{className:"full-width",layout:"vertical"},s.createElement(He,null),t?s.createElement("div",null,s.createElement(Ke,null),s.createElement(Fe,{label:"account.name",inputRef:this.account_input,accountName:u,account:u,onChange:this.handleAccountNameChange,onAccountChanged:()=>{},size:60,hideImage:!0,placeholder:" ",useHR:!0,labelClass:"login-label",reserveErrorSpace:!0}),s.createElement(ge.Form.Item,{label:k().translate("settings.password"),validateStatus:c?"error":"",help:c||""},s.createElement(ge.Input,{type:"password",value:this.state.password,onChange:this.handlePasswordChange,onPressEnter:this.handleLogin,ref:e=>{this.password_input=e}}))):s.createElement("div",null,s.createElement("div",{className:"key-file-selector "+(l&&!i?"restoring":"")},s.createElement(Ge,{showUseOtherWalletLink:l&&!e.name,onUseOtherWallet:this.handleUseOtherWallet}),s.createElement("hr",null),i?s.createElement(et,{name:f,onUseOtherWallet:this.handleUseOtherWallet}):s.createElement("div",null,l||m?s.createElement(Je,{onFileChosen:this.loadBackup,onRestoreOther:this.handleRestoreOther}):s.createElement(at,{onFileChosen:this.loadBackup,restoringBackup:l,walletNames:r,onWalletChange:this.handleSelectedWalletChange}),b&&s.createElement(tt,{onCreate:this.handleCreateWallet}))),s.createElement(ge.Form.Item,{label:k().translate("wallet.enter_password"),validateStatus:_?"error":"success",help:_},s.createElement(ge.Input,{type:"password",value:this.state.password,placeholder:k().translate("wallet.enter_password"),onChange:this.handlePasswordChange,onPressEnter:this.handleLogin,ref:e=>{this.password_input2=e}}))),this.shouldShowBackupWarning()&&s.createElement(Ye,{onChange:this.handleAskForBackupChange,checked:p})))}}nt.defaultProps={modalId:"unlock_wallet_modal2"},nt=(0,d.EN)(nt);class rt extends s.Component{render(){return s.createElement(S.Z,{stores:[X.Z,o.Z,Y.Z,G.Z,qe.Z,h.Z],inject:{currentWallet:()=>Y.Z.getState().current_wallet,walletNames:()=>Y.Z.getState().wallet_names,dbWallet:()=>G.Z.getWallet(),isLocked:()=>G.Z.isLocked(),backup:()=>qe.Z.getState(),resolve:()=>X.Z.getState().resolve,reject:()=>X.Z.getState().reject,locked:()=>X.Z.getState().locked,passwordLogin:()=>X.Z.getState().passwordLogin,passwordAccount:()=>o.Z.getState().passwordAccount||"",walletLockTimeout:()=>h.Z.getState().settings.get("walletLockTimeout")}},s.createElement(nt,this.props))}}const ot=rt;a(14169);class it extends s.Component{_openLink(){window.open("https://www.google.com/chrome/browser/desktop/","_blank").opener=null}render(){return s.createElement(ge.Modal,{visible:this.props.visible,onCancel:this.props.hideModal,title:k().translate("app_init.browser"),footer:[s.createElement(ge.Button,{key:"submit",type:"primary",onClick:this.props.hideModal},k().translate("app_init.understand"))]},s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement(g(),{component:"p",content:"app_init.browser_text",wallet_name:(0,ve.w)()}),s.createElement("br",null),s.createElement("p",null,s.createElement("a",{className:"external-link",onClick:this._openLink},"Google Chrome"))))}}var lt=a(73727),ct=a(86481),dt=a(34342),ut=a.n(dt);let pt=(0,ye.ZP)("__graphene__");const ht=i.Z.createActions(class{async setLog(e){return await pt.set("logs",JSON.stringify(e))}getLogs(){return new Promise((e=>{try{e(JSON.parse(pt.get("logs",[])))}catch(t){e(["Error loading logs from localStorage"])}}))}});var mt=a(59485),gt=a(51407);class bt extends s.Component{constructor(e){super(e),this.state=this.getInitialState(e),this.showLog=this.showLog.bind(this)}getInitialState(){return{loadingImage:!1,logEntries:[],logsCopySuccess:!1,showLog:!1,imageURI:null,showScreen:!1}}shouldComponentUpdate(e,t){let a=this.props.visible!==e.visible||this.state.imageURI!==t.imageURI||this.state.showLog!==t.showLog||this.state.showScreen!==t.showScreen;return e.visible&&this.props.visible!==e.visible&&(this.getLogs(),(0,gt.default)(document.getElementById("content")).then((e=>e.toDataURL("image/png"))).then((e=>this.setState({imageURI:e})),(e=>{console.error("Screenshot could not be captured",e),this.setState({imageURI:"Screenshot could not be captured"})}))),a}onLogEntryChanged(e){this.setState({logEntries:[e.target.value]})}showScreenshot=()=>{this.setState({showScreen:!this.state.showScreen})};getLogs=()=>{ht.getLogs().then((e=>{this.setState({logEntries:e.join("\n")})}))};showLog(){this.setState({showLog:!this.state.showLog})}render(){let{logEntries:e,loadingImage:t,logsCopySuccess:a,showLog:n,showScreen:r}=this.state;return s.createElement(ge.Modal,{title:k().translate("modal.report.title"),visible:this.props.visible,onCancel:this.props.hideModal,footer:[s.createElement(ge.Button,{key:"submit",onClick:this.props.hideModal},k().translate("modal.ok"))]},s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement("p",null,s.createElement(g(),{content:"modal.report.explanatory_text_1"})),s.createElement("span",{className:"raw",style:{border:"1px solid darkgray",marginBottom:"1em"}},s.createElement("div",{className:"right-label",style:{paddingBottom:"0em"}},s.createElement(mt.Z,{text:this.state.logEntries})),s.createElement(ge.Tooltip,{title:this.state.showLog?k().translate("modal.report.hideLog"):k().translate("modal.report.showLog")},s.createElement("div",{onClick:this.showLog,style:{cursor:"pointer"}},s.createElement("label",{className:"left-label",style:{paddingTop:"1em",paddingLeft:"0.5em",cursor:"pointer"}},this.state.showLog?"-":"+"," ",s.createElement(g(),{content:"modal.report.lastLogEntries"})))),(()=>{if(n)return s.createElement("textarea",{id:"logsText",style:{},rows:"20",value:e,onChange:this.onLogEntryChanged.bind(this)})})()),s.createElement("span",{className:"raw",style:{border:"1px solid darkgray",marginBottom:"1em"}},s.createElement("div",{className:"right-label",style:{paddingBottom:"0em"}},null!=this.state.imageURI?s.createElement("img",{style:{height:"2.8em",marginTop:"0em",marginRight:"0em"},src:this.state.imageURI}):"Failed"),s.createElement("div",{className:"right-label",style:{paddingBottom:"0em",paddingTop:"1em",paddingRight:"0.5em"}},s.createElement(g(),{content:"modal.report.copyScreenshot"})),s.createElement(ge.Tooltip,{title:this.state.showScreen?k().translate("modal.report.hideScreenshot"):k().translate("modal.report.takeScreenshot")},s.createElement("div",{onClick:this.showScreenshot,style:{cursor:"pointer"}},s.createElement("label",{className:"left-label",style:{paddingTop:"1em",paddingLeft:"0.5em",cursor:"pointer"}},this.state.showScreen?"-":"+"," ",s.createElement(g(),{content:"modal.report.screenshot"})))),(()=>{if(null!=this.state.imageURI&&r)return this.state.imageURI.length>100?s.createElement("img",{src:this.state.imageURI}):s.createElement("text",null,"this.state.imageURI")})()),s.createElement("br",null),s.createElement("p",null,s.createElement(g(),{content:"modal.report.explanatory_text_2"}),s.createElement("br",null),"  ",s.createElement("a",{href:"https://github.com/bitshares/bitshares-ui/issues",target:"_blank",rel:"noopener noreferrer",style:{textAlign:"center",width:"100%"},className:"external-link"},"https://github.com/bitshares/bitshares-ui/issues"),s.createElement("br",null),s.createElement(g(),{content:"modal.report.explanatory_text_3"}),s.createElement("br",null),s.createElement("br",null),s.createElement(g(),{content:"modal.report.explanatory_text_4"})),t&&s.createElement("div",{style:{textAlign:"center"}},s.createElement(x.Z,{type:"three-bounce"})),a&&s.createElement("p",null,s.createElement(g(),{content:"modal.report.copySuccess"}))))}}const ft=bt;var yt=a(30881);class _t extends s.Component{static propTypes={choices:M().array.isRequired,content:M().object};static defaultProps={content:null};confirmClicked(e,t){t.preventDefault(),setTimeout((()=>{this.props.hideModal()}),500),e()}render(){const e=[];return this.props.choices.map(((t,a)=>{e.push(s.createElement(ge.Button,{type:"primary",key:a,onClick:this.confirmClicked.bind(this,t.callback)},k().translate(t.translationKey)))})),e.push(s.createElement(ge.Button,{key:"cancel",onClick:this.props.hideModal},k().translate("modal.cancel"))),s.createElement(ge.Modal,{width:600,title:k().translate("connection.title_out_of_sync"),visible:this.props.visible,onCancel:this.props.hideModal,footer:e,id:this.props.modalId,overlay:!0},s.createElement("div",{className:"grid-block vertical"},this.props.content,s.Children.map(this.props.children,((e,t)=>{let a={};return a.key=t+"",s.cloneElement(e,a)}))))}}const wt=_t;var kt=a(2486),vt=a.n(kt);function At(){return At=Object.assign||function(e){for(var t=1;t!!t&&!!t.url&&t.url===e));return-1===t?null:t}getCurrentNodeIndex(){const{props:e}=this;return this.getNodeIndexByURL.call(this,e.currentNode)}getNode(e={url:"",operator:""}){if(!e||!e.url)throw"Node is undefined of has no url";const{props:t}=this,a=-1!==e.url.indexOf("testnet");e.location&&e.location.translate&&(e.location=k().translate(e.location.translate));let s=e.operator+" "+!!e.location?e.location:"";return"country"in e&&(s=e.country+(s?" - "+s:"")),{name:s,url:e.url,ping:e.url in t.apiLatencies?t.apiLatencies[e.url]:-1,testNet:a}}getBlockTime(){let e=r.ChainStore.getObject("2.1.0");if(e){let t=e.get("time");return/Z$/.test(t)||(t+="Z"),new Date(t)}throw new Error("Blocktime not available right now")}getBlockTimeDelta(){try{let e=(this.getBlockTime().getTime()+r.ChainStore.getEstimatedChainTimeOffset())/1e3,t=(new Date).getTime()/1e3;return Math.abs(t-e)}catch(e){return console.log(e),-1}}_closeOutOfSyncModal(){this._hideOutOfSyncModal()}_ensureConnectivity(){if(vt().now("active"))if("closed"!==this.props.rpc_connection_status)if(this.props.synced)setTimeout((()=>{this._closeOutOfSyncModal(),this.setState({hasOutOfSyncModalBeenShownOnce:!1})}),50);else{let e=this._getForceReconnectAfterSeconds(),t=10;setTimeout((()=>{this.props.synced||this._triggerReconnect()}),1e3*e),this.getBlockTimeDelta()>3&&(console.log("Your node is out of sync since "+this.getBlockTimeDelta()+" seconds, waiting "+t+" seconds, then we notify you"),setTimeout((()=>{this.getBlockTimeDelta()>3&&!1===this.state.hasOutOfSyncModalBeenShownOnce&&(this.setState({hasOutOfSyncModalBeenShownOnce:!0}),this._showOutOfSyncModal())}),1e3*t))}else console.log("Your connection was lost"),setTimeout((()=>{this._triggerReconnect()}),50)}_getForceReconnectAfterSeconds(){return 60}_triggerReconnect(e=!0){if((!e||yt._.isAutoSelection())&&!yt._.isTransitionInProgress()){this._closeOutOfSyncModal(),console.log("Trying to reconnect ...");let e=yt._.willTransitionTo(!1);e&&setTimeout((()=>{this.forceUpdate()}),10),e.then((()=>{console.log("... done trying to reconnect")}))}}_showAccessSettingsTooltip(e){this.state.isAccessSettingsPopoverVisible?this.setState({showAccessSettingsTooltip:!1}):this.setState({showAccessSettingsTooltip:e})}render(){const{state:e,props:t}=this,{synced:a}=t,n=!("closed"===this.props.rpc_connection_status);let r=this.props.defaults.apiServer,o=this.getCurrentNodeIndex.call(this),i=this.getNode(r[o]||r[0]);if("wss://fake.automatic-selection.com"==i.url){let e=t.activeNode;o=this.getNodeIndexByURL.call(this,e),i=o?this.getNode(r[o]):this.getNode(r[0])}let l=this.props.dynGlobalObject.get("head_block_number"),c="7dd98d3".match(/\d\.\d\.(\d{6}.{0,1}\d{0,1})/),d=c?`.${c[1]}`:" 7dd98d3",u="7dd98d3".match(/-rc[0-9]$/);return u&&(d+=u[0]),this._ensureConnectivity(),s.createElement("div",null,!!yt._&&yt._.isTransitionInProgress()&&s.createElement(x.Z,{loadingText:yt._.getTransitionTarget()}),s.createElement(wt,{showModal:this._showOutOfSyncModal,hideModal:this._hideOutOfSyncModal,visible:this.state.isOutOfSyncModalVisible,choices:[{translationKey:"connection.manual_reconnect",callback:()=>{this.props.synced||this._triggerReconnect(!1)}},{translationKey:"connection.manual_ping_and_narrow_down",callback:()=>{this.props.synced||this.onAccess()}}]},s.createElement("div",null,s.createElement(g(),{content:"connection.out_of_sync",out_of_sync_seconds:parseInt(this.getBlockTimeDelta())}),s.createElement("br",null),s.createElement("br",null),s.createElement(g(),{content:"connection.want_to_reconnect"}),yt._.isAutoSelection()&&s.createElement(g(),{content:"connection.automatic_reconnect",reconnect_in_seconds:parseInt(this._getForceReconnectAfterSeconds())}))),s.createElement("div",{className:"show-for-medium grid-block shrink footer"},s.createElement("div",{className:"align-justify grid-block"},s.createElement("div",{className:"grid-block"},s.createElement("div",At({className:"logo",style:{fontSize:e.newVersion?"0.9em":"1em",cursor:e.newVersion?"pointer":"normal",marginTop:e.newVersion?"-5px":"0px",overflow:"hidden"},onClick:e.newVersion?this.downloadVersion.bind(this):null},{}),e.newVersion&&s.createElement(y.Z,{name:"download",title:k().translate("icons.download",{wallet_name:(0,ve.w)()}),style:{marginRight:"20px",marginTop:"10px",fontSize:"1.35em",display:"inline-block"}}),s.createElement("span",{style:{display:"inline-block",verticalAlign:"top"}},s.createElement(g(),{content:"footer.title",wallet_name:(0,ve.w)()}),s.createElement("span",{className:"version"},d)),s.createElement("span",null," ","-"," ",s.createElement(lt.rU,{to:"/help/disclaimer"},"Disclaimer")," "),e.newVersion&&s.createElement(g(),{content:"footer.update_available",style:{color:"#FCAB53",position:"absolute",top:"8px",left:"36px"}}))),!!yt._&&yt._.isBackgroundPingingInProgress()&&s.createElement("div",{onClick:()=>{this._showNodesPopover()},style:{cursor:"pointer"},className:"grid-block shrink txtlabel"},yt._.getBackgroundPingingTarget(),s.createElement("div",{style:{marginTop:"0.4rem",marginLeft:"0.5rem"}},s.createElement(x.Z,{type:"circle"})),"   "),a?null:s.createElement("div",{className:"grid-block shrink txtlabel cancel"},s.createElement(g(),{content:"footer.nosync"}),"   "),n?null:s.createElement("div",{className:"grid-block shrink txtlabel error"},s.createElement(g(),{content:"footer.connection"}),"   "),this.props.backup_recommended?s.createElement("span",null,s.createElement("div",{className:"grid-block"},s.createElement(ge.Tooltip,{overlay:s.createElement("div",null,"Please understand that you are responsible for making your own backup…")},s.createElement("a",{className:"shrink txtlabel facolor-alert",onClick:this.onBackup.bind(this)},s.createElement(g(),{content:"footer.backup"}))),"  ")):null,this.props.backup_brainkey_recommended?s.createElement("span",null,s.createElement("div",{className:"grid-block"},s.createElement("a",{className:"grid-block shrink txtlabel facolor-alert",onClick:this.onBackupBrainkey.bind(this)},s.createElement(g(),{content:"footer.brainkey"})),"  ")):null,l?s.createElement("div",{className:"grid-block shrink"},s.createElement(ge.Tooltip,{title:k().translate("tooltip.nodes_popup"),mouseEnterDelay:.5,onVisibleChange:this._showAccessSettingsTooltip,visible:this.state.showAccessSettingsTooltip},s.createElement("div",{onClick:()=>{this._showNodesPopover()},style:{position:"relative",cursor:"pointer"}},s.createElement("div",{className:"footer-status"},n&&i.testNet&&s.createElement("span",{className:"testnet"},s.createElement(g(),{content:"settings.testnet_nodes"})," "),n?s.createElement("span",{className:"success"},i.name):s.createElement("span",{className:"warning"},s.createElement(g(),{content:"footer.disconnected"}))),s.createElement("div",{className:"footer-block"},s.createElement("span",null,s.createElement("span",{className:"footer-block-title"},s.createElement(g(),{content:"footer.latency"}))," ",n&&i.ping?parseInt(i.ping)+"ms":"-"," / ",s.createElement("span",{className:"footer-block-title"},s.createElement(g(),{content:"footer.block"}))," #",l)))),s.createElement("div",{className:"grid-block"},s.createElement(ge.Tooltip,{title:k().translate("tooltip.debug_report"),placement:"topRight",mouseEnterDelay:.5},s.createElement("div",{className:"introjs-launcher",onClick:e=>{this._showReportModal(e)}},s.createElement(g(),{content:"modal.report.button"}))),s.createElement(ge.Tooltip,{title:k().translate("tooltip.self_help"),placement:"topRight",mouseEnterDelay:.5},s.createElement("div",{className:"introjs-launcher",onClick:()=>{this.launchIntroJS()}},s.createElement(g(),{content:"global.help"}))))):s.createElement("div",{className:"grid-block shrink"},s.createElement(g(),{content:"footer.loading"})))),s.createElement("div",{onMouseLeave:()=>{this.setState({isAccessSettingsPopoverVisible:!1})},className:"node-access-popup",style:{display:this.state.isAccessSettingsPopoverVisible?"":"none"}},s.createElement(v.Z,{nodes:this.props.defaults.apiServer,popup:!0}),s.createElement("div",{style:{paddingTop:15}},s.createElement("a",{onClick:this.onAccess.bind(this)},s.createElement(g(),{content:"footer.advanced_settings"})))),s.createElement("div",{className:"introjs-launcher show-for-small-only",onClick:()=>{this.launchIntroJS()}},s.createElement(g(),{content:"global.help"})),s.createElement(ft,{showModal:this._showReportModal,hideModal:this._hideReportModal,visible:this.state.isReportModalVisible,refCallback:e=>{e&&(this.reportModal=e)}}))}_showNodesPopover(){this.state.showAccessSettingsTooltip&&this.state.isAccessSettingsPopoverVisible,this.setState({isAccessSettingsPopoverVisible:!this.state.isAccessSettingsPopoverVisible,showAccessSettingsTooltip:!1})}onBackup(){this.props.history.push("/wallet/backup/create")}onBackupBrainkey(){this.props.history.push("/wallet/backup/brainkey")}onPopup(){this.setState({isAccessSettingsPopoverVisible:!this.state.isAccessSettingsPopoverVisible})}onAccess(){b.Z.changeViewSetting({activeSetting:6}),this.props.history.push("/settings/access")}}Et=(0,T.Z)(Et);class xt extends s.Component{render(){var e=G.Z.getWallet();return s.createElement(S.Z,{stores:[ct.Z,p.Z,G.Z,h.Z],inject:{defaults:()=>h.Z.getState().defaults,apiLatencies:()=>h.Z.getState().apiLatencies,currentNode:()=>h.Z.getState().settings.get("apiServer"),activeNode:()=>h.Z.getState().settings.get("activeNode"),backup_recommended:()=>e&&(!e.backup_date||ct.Z.get("backup_recommended")),rpc_connection_status:()=>p.Z.getState().rpc_connection_status}},s.createElement(Et,this.props))}}const St=xt;var Ct=a(68356),Tt=a.n(Ct);Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,57805)),loading:x.Z});class Bt extends s.Component{hasWallet(){return!!WalletDb.getWallet()}renderForWallet(){return React.createElement("div",null,React.createElement(Translate,{content:"migration.text_1",component:"h4"}),React.createElement(Translate,{content:"migration.text_2",component:"p",unsafe:!0,wallet_url:getWalletURL()}))}renderForCloud(){return React.createElement("div",null,React.createElement(Translate,{content:"migration.text_3",unsafe:!0,component:"p",wallet_url:getWalletURL()}))}render(){return React.createElement("div",{className:"grid-frame"},React.createElement("div",{className:"grid-block vertical",style:{paddingBottom:"3rem"}},React.createElement("div",{className:"grid-content large-offset-2 large-8 shrink"},React.createElement(Translate,{content:"migration.title",component:"h2"}),React.createElement(Translate,{content:"migration.announcement_1",unsafe:!0,component:"p"}),React.createElement("p",null,React.createElement("a",{href:getWalletURL(),target:"blank",rel:"noopener noreferrer"},getWalletURL())),this.hasWallet()?this.renderForWallet():this.renderForCloud()),this.hasWallet()?React.createElement(Settings,Deprecate_extends({},this.props,{deprecated:!0})):null))}}class zt extends s.Component{render(){const{props:e}=this;return s.createElement("div",{id:"incognito"},s.createElement("div",{className:"dismiss",onClick:e.onClickIgnore},"×"),s.createElement("strong",null,s.createElement(g(),{content:"incognito.mode"})," "),s.createElement(g(),{content:"incognito.warning"}))}}const Pt=zt;var Nt=a(54453),Mt=a(41737);class Zt{static GetTitleByPath(e){let t=(0,ve.w)(),a=null;return e.split("/").forEach((e=>{""!=e&&(t+=" - ","account"===a?t+=e:"market"===a&&e.match(/_/)?t+=e.replace("_"," / "):null!=this.GetLocaleKey(e)?t+=k().translate(this.GetLocaleKey(e)):-1!==e.match(/-|_/)?e.split(/-|_/).forEach((e=>{t+=e.charAt(0).toUpperCase()+e.substring(1)+" "})):t+=e.charAt(0).toUpperCase()+e.substring(1),a=e)})),t}static GetLocaleKey(e){switch(e){case"access":return"settings.access";case"account":return"header.account";case"accounts":return"explorer.accounts.title";case"asset":return"explorer.asset.title";case"assets":return"explorer.assets.title";case"backup":return"settings.backup";case"block":return"explorer.block.title";case"blocks":return"explorer.blocks.title";case"committee-members":return"explorer.committee_members.title";case"dashboard":return"header.dashboard";case"faucet_address":return"settings.faucet_address";case"market":return"exchange.market";case"markets":return"markets.title";case"password":return"settings.password";case"settings":return"header.settings";case"reset":return"settings.reset";case"restore":return"settings.restore";case"signedmessages":return"account.signedmessages.title";case"voting":return"account.voting";case"wallet":return"wallet.title";case"witnesses":return"explorer.witnesses.title";default:return null}}}var It=a(90706),Ot=a(91822);const qt=e=>r.hash.sha1(e.type+e.begin_date+e.end_date+e.content).toString("hex"),Lt=(e,t)=>({...Object.values(e).filter((e=>!!("object"==typeof e&&e.type&&e.begin_date&&e.end_date&&e.content)&&-1==t.indexOf(qt(e))))});class Dt extends s.Component{constructor(){super(),this.state={news:{},hiddenNewsHeadlineSize:0}}componentDidMount(){this.getNewsThroughAsset()}static getDerivedStateFromProps(e,t){return e.hiddenNewsHeadline.size!==t.hiddenNewsHeadlineSize?{news:Lt(t.news,e.hiddenNewsHeadline),hiddenNewsHeadlineSize:e.hiddenNewsHeadline.size}:null}shouldComponentUpdate(e,t){return Object.keys(this.state.news).length!==Object.keys(t.news).length||e.hiddenNewsHeadline.size!==this.props.hiddenNewsHeadline.size}getNewsFromGitHub(){fetch("https://api.github.com/repos/blockchainprojects/bitshares-ui/contents/news.json?ref=news_feed_on_the_very_top").then((e=>e.json())).then((e=>{const t=Lt(JSON.parse(atob(e.content)),this.props.hiddenNewsHeadline);this.setState({news:t})}).bind(this))}async getNewsThroughAsset(){const e=await(0,Ot.TH)(),t=Lt(e,this.props.hiddenNewsHeadline);this.setState({news:t})}onClose(e){let t=qt(e);-1==this.props.hiddenNewsHeadline.indexOf(qt(e))&&b.Z.hideNewsHeadline(t)}render(){const{news:e}=this.state;if(!Object.keys(e).length)return null;const t=Object.values(e).reduce(((e,t,a)=>{const n=new Date,r="critical"===t.type?"error":t.type,o=new Date(t.begin_date.split(".").reverse()),i=new Date(t.end_date.split(".").reverse());let l=t.content;if(n>=o&&n<=i){let n=/(https?):\/\/(www\.)?[^!]+/g,o=l.match(n);o&&o.length&&o.forEach((e=>{let t=l.split(e);l=s.createElement("span",null,t[0],s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e,style:{cursor:"pointer"}},e),t[1])})),e=[...e,s.createElement("div",{className:"git-info",key:`git-alert${a}`},s.createElement(ge.Alert,{type:r,message:l,banner:!0}),"info"===r||"warning"===r?s.createElement(ge.Icon,{type:"close",className:"close-icon",style:{cursor:"pointer"},onClick:this.onClose.bind(this,t)}):null)]}return e}),[]);return s.createElement(It.Z,{autoplaySpeed:15e3,autoplay:!0,dots:!1},t)}}const Rt=Dt=(0,u.$)(Dt,{listenTo:()=>[h.Z],getProps:()=>({hiddenNewsHeadline:h.Z.getState().hiddenNewsHeadline})});var jt=a(24647),Ft=a(4207),Wt=a(98750);class Ut extends s.Component{constructor(e){super(e),this.state={isInputActive:!1},this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleInputChange=this.handleInputChange.bind(this)}componentDidUpdate(){this.props.focus&&this.refs.input.focus()}handleBlur(){this.setState({isInputActive:!1})}handleFocus(){this.setState({isInputActive:!0})}handleInputChange(e){this.props.onChange(e.target.value)}isAccountScammer(){let e=Wt.Z.getAccount(this.props.value);return!(!e||!e.get)&&Re.Z.isKnownScammer(e.get("name"))}getAccountStatus(){let e=Wt.Z.getAccount(this.props.value);if(e&&e.get){if(this.isAccountScammer())return k().translate("account.member.suspected_scammer");let t=Wt.Z.getAccountMemberStatus(e);return k().translate("account.member."+t)+" #"+e.get("id").substring(4)}return null}isAccountFound(){return!!Wt.Z.getAccount(this.props.value)}getValidateStatus(){return this.state.isInputActive||!this.props.value?"":this.isAccountFound()?"success":"error"}getHelp(){return this.state.isInputActive||!this.props.value||this.isAccountFound()?"":k().translate("account.errors.unknown")}getPlaceholder(){return this.props.placeholder?k().translate(this.props.placeholder):""}input(){const e=this.props.value,t=this.handleInputChange;return s.createElement(ge.Input,{ref:"input",placeholder:this.getPlaceholder(),value:e,onChange:t,onBlur:this.handleBlur,onFocus:this.handleFocus})}labelComponent(){let e=this.getAccountStatus(),t=()=>{if(this.isAccountScammer())return"account-input-style-guide--account-status--scammer"};return s.createElement(ge.Form.Item,{style:{textAlign:"left"},label:(()=>s.createElement("span",{className:"account-input-style-guide--label"},k().translate(this.props.label),s.createElement("span",{className:`account-input-style-guide--account-status ${t()}`},e)))(),help:this.getHelp(),validateStatus:this.getValidateStatus()},this.input())}simpleComponent(){this.input()}render(){return s.createElement("div",{className:"account-input-style-guide"},this.props.label?this.labelComponent():this.simpleComponent())}}const Ht=Ut;class Kt extends s.Component{static propTypes={active:M().bool.isRequired,onChangeActive:M().func.isRequired,goToWalletModel:M().func.isRequired};constructor(e){super(),this.state=this.getInitialState(e),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.onPasswordEnter=this.onPasswordEnter.bind(this),this.accountChanged=this.accountChanged.bind(this),this.onAccountChanged=this.onAccountChanged.bind(this)}getInitialState(e=this.props){return{password:"",passwordError:null,accountName:e.passwordAccount,account:null,passwordVisible:!1}}componentDidUpdate(e){te.Z.rebuild(),!e.active&&this.props.active&&this.state.accountName&&this.refs.password.focus()}UNSAFE_componentWillReceiveProps(e){e.passwordAccount&&!this.state.accountName&&this.setState({accountName:e.passwordAccount})}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(e,this.props)||!B.Z.are_equal_shallow(t,this.state)}handlePasswordChange(e){this.setState({password:e.target.value})}onPasswordEnter(e){e&&e.preventDefault();const t=this.state.password,a=this.state.accountName;return this.setState({passwordError:null}),G.Z.validatePassword(t,!0,a),setTimeout((()=>{if(G.Z.validatePassword(t,!0,a),G.Z.isLocked())return this.setState({passwordError:!0}),!1;this.setState({password:""}),F.Z.setPasswordAccount(a),b.Z.changeSetting({setting:"passwordLogin",value:!0}),this.props.history.push("/"),J.Z.change()}),550),!1}onAccountChanged(e){this.setState({account:e,error:null})}accountChanged(e){if(e){let t=Wt.Z.getAccount(e);this.setState({accountName:e,error:null,account:t})}else this.setState({account:null,accountName:null})}reset(){this.setState(this.getInitialState())}hideTooltip(){document.getElementById("password-error").classList.remove("custom-tooltip"),te.Z.hide()}renderButtons(){return s.createElement(ge.Form.Item,{style:{textAlign:"center"}},this.props.active?s.createElement(ge.Button,{onClick:this.onPasswordEnter,type:"primary"},k().translate("login.loginButton")):s.createElement(ge.Button,null,k().translate("registration.select")))}renderTooltip(){return s.createElement(te.Z,{id:"password-error",className:"custom-tooltip text-left"},s.createElement("div",{className:"tooltip-text"},s.createElement(g(),{content:"tooltip.login-tooltip.incorrectPassword.begin"}),s.createElement(g(),{onClick:this.props.goToWalletModel,className:"active-upload-text without-bin cursor-pointer",content:"tooltip.login-tooltip.incorrectPassword.model"}),s.createElement(g(),{content:"tooltip.login-tooltip.incorrectPassword.end"}),s.createElement("span",{onClick:()=>this.hideTooltip(),className:"close-button"},"×")))}renderNameInput(){const{accountName:e}=this.state,{active:t}=this.props;return s.createElement(Ht,{label:"account.name",value:e,onChange:this.accountChanged,placeholder:"account.name",size:60,hideImage:!0,focus:t&&!this.state.accountName})}renderPasswordInput(){const{passwordError:e,passwordVisible:t}=this.state;return s.createElement(ge.Form.Item,{label:"Password",help:null!==e?s.createElement(g(),{"data-for":"password-error","data-tip":!0,"data-place":"bottom","data-effect":"solid","data-delay-hide":500,content:"wallet.pass_incorrect"}):null,validateStatus:null!==e?"error":""},s.createElement(ge.Input,{ref:"password",placeholder:k().translate("wallet.enter_password"),style:{width:"100%"},value:this.state.password,onChange:this.handlePasswordChange,type:t?"text":"password",className:(e?"input-warning":"")+" input create-account-input"}))}render(){return s.createElement("div",{onClick:this.props.onChangeActive,className:"account-block"},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(ge.Form,{layout:"vertical",className:this.props.active?"":"display-none",style:{textAlign:"left"}},this.renderNameInput(),this.renderPasswordInput(),this.renderButtons()),this.renderTooltip())}}const Vt=function(e){return s.createElement(S.Z,{stores:[o.Z],inject:{passwordAccount:()=>o.Z.getState().passwordAccount||""}},s.createElement(Kt,e))};class Gt extends s.Component{static propTypes={active:M().bool,currentAccount:M().string,backup:M().object,wallet:M().object,history:M().object.isRequired};static defaultProps={active:!1,currentAccount:"",backup:{},wallet:{}};constructor(){super(),this.state={backupPassword:"",formError:""},this.onPassword=this.onPassword.bind(this),this.formChange=this.formChange.bind(this)}componentDidUpdate(e){this.props.active&&this.refs.passwordInput&&this.refs.passwordInput.focus&&this.refs.passwordInput.focus(),!e.currentAccount&&this.props.currentAccount&&this.props.history.push("/")}onRestore(){const{backupPassword:e}=this.state;G.Z.validatePassword(e||"",!0),J.Z.change(),b.Z.changeSetting({setting:"passwordLogin",value:!1}),De.ZP.reset()}onPassword(e){e&&e.preventDefault();const t=r.PrivateKey.fromSeed(this.state.backupPassword||""),{contents:a,name:s}=this.props.backup,n=s.split(".")[0];(0,De.nu)(t.toWif(),a,n).then((()=>Le.Z.setWallet(n).then((()=>{this.onRestore(n)})))).catch((e=>{console.error(`Error verifying wallet ${this.props.backup.name}`,e,e.stack),"invalid_decryption_key"===e?this.setState({formError:k().translate("notifications.invalid_password")}):this.setState({formError:e}),this.setState({passwordError:!0})}))}formChange(e){const t={};t[e.target.id]=e.target.value,this.setState({...t,formError:""})}renderButtons(){return s.createElement("div",{className:"button-group"},this.props.active?s.createElement(ge.Button,{onClick:this.onPassword,type:"primary"},k().translate("login.loginButton")):s.createElement(ge.Button,null,k().translate("registration.select")))}render(){return s.createElement("div",null,s.createElement("div",{className:(this.props.active?"":"display-none")+" password-block"},s.createElement(ge.Form,{layout:"vertical",style:{textAlign:"left"},onSubmit:this.onPassword},s.createElement(ge.Form.Item,{label:k().translate("settings.password"),validateStatus:(()=>this.state.formError?"error":"")(),help:(()=>this.state.formError?this.state.formError:"")()},s.createElement(ge.Input,{className:(this.state.passwordError?"input-warning":this.state.backupPassword?"input-success":"")+" input create-account-input",type:this.state.passwordVisible?"text":"password",placeholder:k().translate("wallet.enter_password"),id:"backupPassword",onChange:this.formChange,value:this.state.backupPassword,ref:"passwordInput",autoFocus:!0}))),this.state.passwordVisible?s.createElement("span",{className:"no-width eye-block",onClick:()=>this.setState({passwordVisible:!1})},s.createElement(y.Z,{name:"eye-invisible",className:"eye-icon icon-opacity"})):s.createElement("span",{className:"no-width eye-block",onClick:()=>this.setState({passwordVisible:!0})},s.createElement(y.Z,{name:"eye-visible",className:"eye-icon icon-opacity"}))),this.renderButtons())}}const Xt={listenTo:()=>[Y.Z,qe.Z,o.Z],getProps:()=>({wallet:Y.Z.getState(),backup:qe.Z.getState(),currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount})},Jt=(0,u.$)(Gt,Xt);class Yt extends s.Component{static propTypes={active:M().bool,backup:M().object,onChangeActive:M().func.isRequired,goToAccountModel:M().func.isRequired};static defaultProps={active:!1,backup:{}};constructor(e){super(e),this.state={isDrop:!1}}componentDidMount(){De.ZP.reset()}onFileUpload(e,t){const a=t||e.target.files[0];De.ZP.incommingWebFile(a),this.forceUpdate()}onDropBinFile(e){e.preventDefault(),this.onFileUpload(e,e.dataTransfer.files[0])}onPlaceFile(e){this.setState({isDrop:e})}renderTooltip(){return s.createElement(te.Z,{id:"without-bin",className:"custom-tooltip text-left",globalEventOff:"click"},s.createElement("div",{className:"tooltip-text",onClick:e=>e.stopPropagation()},s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.begin"}),s.createElement(lt.rU,{to:"/create-wallet-brainkey"},s.createElement(g(),{component:"u",className:"active-upload-text cursor-pointer",content:"tooltip.login-tooltip.withoutBinFileBlock.brainkey"})),s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.middle"}),s.createElement(g(),{onClick:this.props.goToAccountModel,className:"without-bin cursor-pointer",content:"tooltip.login-tooltip.withoutBinFileBlock.model"}),s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.end"}),s.createElement("span",{onClick:()=>te.Z.hide(),className:"close-button"},"×")))}renderUploadInputForSmall(){const e=this.props.backup.contents&&this.props.backup.public_key;return s.createElement("div",null,s.createElement("span",{className:"text-left left-label show-for-small-only"},s.createElement(g(),{content:this.props.backup.contents?"login.selectDifferent":"login.browseFileLabel"})),s.createElement("div",{onDragOver:e=>e.preventDefault(),onDragEnter:e=>e.preventDefault(),onDrop:e=>this.onDropBinFile(e),className:"small-container"},e?s.createElement("span",{className:"bin-name"},this.props.backup.name):s.createElement("span",null," "),s.createElement("span",{className:"upload-text"},s.createElement("u",{className:"active-upload-text"},s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backupFile",className:"upload-bin-input",onChange:e=>this.onFileUpload(e)}),s.createElement(y.Z,{name:"paperclip",className:"attach-bin"})))))}renderUploadInput(){const{isDrop:e}=this.state,{backup:t}=this.props,a=t.contents&&!t.public_key,n=t.contents&&t.public_key;return s.createElement("label",{onDragOver:()=>{this.onPlaceFile(!0)},onDragLeave:()=>{this.onPlaceFile(!1)},className:"cursor-pointer",htmlFor:"backupFile"},s.createElement("div",{onDragOver:e=>e.preventDefault(),onDrop:e=>this.onDropBinFile(e),className:`file-input-container ${a?"invalid":""} ${e?"dropHover":""} ${n?"downloaded":""}`},s.createElement("img",{className:"rounded-arrow",src:"bin-file/rounded-arrow.svg",alt:"arrow"}),n?s.createElement("img",{className:"bin-file",src:"bin-file/downloaded.svg",alt:"bin-file"}):a?s.createElement("img",{className:"bin-file",src:"bin-file/error.svg",alt:"bin-file"}):s.createElement("span",null,s.createElement("img",{className:"bin-file initial-bin",src:"bin-file/hover.svg",alt:"bin-file"})),s.createElement("span",{className:"upload-text text-left no-overflow"},n?s.createElement("p",{className:"bin-name"},this.props.backup.name," (",this.props.backup.size," bytes)"):a?s.createElement(g(),{className:"facolor-error",content:"login.invalidFormat"}):s.createElement(g(),{content:"login.dropFile"}),s.createElement("u",{className:"active-upload-text"},s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backupFile",className:"upload-bin-input",onChange:e=>this.onFileUpload(e)}),s.createElement(g(),{content:this.props.backup.contents?"login.selectDifferent":"login.browseFile"})))))}render(){return s.createElement("div",{onClick:this.props.onChangeActive,className:"wallet-block"},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),(new FileReader).readAsBinaryString||!this.props.active?null:s.createElement(g(),{component:"p",className:"error",content:"login.supportWarning"}),s.createElement("div",{className:this.props.active?"":"display-none"},this.renderUploadInput(),this.renderUploadInputForSmall(),s.createElement(g(),{component:"p",className:"text-left without-bin cursor-pointer hide-for-small-only",content:"login.withoutBinFile","data-for":"without-bin","data-tip":!0,"data-event":"click","data-place":"right","data-effect":"solid"}),s.createElement(g(),{component:"p",className:"text-left without-bin cursor-pointer show-for-small-only",content:"login.withoutBinFile","data-for":"without-bin","data-tip":!0,"data-event":"click","data-place":"bottom","data-effect":"solid"}),this.renderTooltip()),s.createElement(Jt,{active:this.props.active,history:this.props.history}))}}const Qt={listenTo:()=>[qe.Z],getProps:()=>({backup:qe.Z.getState()})},$t=(0,u.$)(Yt,Qt);function ea(e){return s.createElement("div",{onClick:e.onChangeActive,className:(e.forSmall?"hide-block-for-medium inactive-left-block":"")+" small-horizontal small-only-block header-block"},e.forSmall?null:s.createElement("div",null,e.active?s.createElement("img",{className:"model-img",src:"model-type-images/flesh-active.svg",alt:"wallet"}):s.createElement("img",{className:"model-img inactive-img",src:"model-type-images/flesh-inactive.svg",alt:"wallet"})),s.createElement("div",{className:"small-only-text-left"},s.createElement(g(),{content:"registration.walletModelTitle",component:"p",className:"selection-title "+(e.active?"":"inactive-title inactive-text")}),s.createElement(g(),{content:"wallet.wallet_model",className:"choice-model "+(e.active?"":"inactive-text")}),e.forSmall?null:s.createElement(ge.Tooltip,{title:e.active?k().translate("tooltip.registration.walletModel"):""},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon"}))),s.createElement(g(),{content:"registration.recommended",component:"p",className:"recommended "+(e.active||e.forSmall?"":"inactive-text")})))}function ta(e){return s.createElement("div",{onClick:e.onChangeActive,className:(e.forSmall?"hide-block-for-medium inactive-right-block":"")+" small-horizontal small-only-block header-block"},e.forSmall?null:s.createElement("div",null,e.active?s.createElement("img",{className:"model-img",src:"model-type-images/account-active.svg",alt:"wallet"}):s.createElement("img",{className:"model-img inactive-img",src:"model-type-images/account-inactive.svg",alt:"wallet"})),s.createElement("div",{className:"small-only-text-left"},s.createElement(g(),{unsafe:!0,content:"registration.accountModelTitle",component:"p",className:"selection-title "+(e.active?"":"inactive-title inactive-text")}),s.createElement(g(),{content:"wallet.password_model",component:"p",className:"choice-model choice-account "+(e.active?"":"inactive-text")}),e.forSmall?null:s.createElement(ge.Tooltip,{title:e.active?k().translate("tooltip.registration.accountModel"):""},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon"})))))}ea.propTypes={active:M().bool.isRequired,forSmall:M().bool,onChangeActive:M().func},ea.defaultProps={forSmall:!1,onChangeActive:null},ta.propTypes={active:M().bool.isRequired,forSmall:M().bool,onChangeActive:M().func},ta.defaultProps={forSmall:!1,onChangeActive:null};class aa extends s.Component{constructor(){super(),this.state={activeWalletModel:!0}}changeActiveModel(e){this.setState({activeWalletModel:e})}render(){const{activeWalletModel:e}=this.state;return s.createElement("div",{className:"grid-block align-center registration-layout"},s.createElement("div",{className:"grid-block shrink vertical text-center registration-selector"},s.createElement(g(),{content:"login.title",component:"p",className:"registration-title"}),s.createElement("div",null,s.createElement("div",{className:"v-align login-page-selector"},s.createElement("div",{className:(e?"":"inactive-model-block")+" selection-block align-center plate"},s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:e,onChangeActive:()=>this.changeActiveModel(!0),loginPage:!0}),s.createElement(ta,{active:!e,onChangeActive:()=>this.changeActiveModel(!1),forSmall:!0,loginPage:!0})),s.createElement($t,{active:e,onChangeActive:()=>e?null:this.changeActiveModel(!0),goToAccountModel:()=>this.changeActiveModel(!1),history:this.props.history})),s.createElement("div",{className:(e?"inactive-model-block":"")+" selection-block align-center plate"},s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:e,onChangeActive:()=>this.changeActiveModel(!0),forSmall:!0,loginPage:!0}),s.createElement(ta,{active:!e,onChangeActive:()=>this.changeActiveModel(!1),loginPage:!0})),s.createElement(Vt,{active:!e,history:this.props.history,onChangeActive:()=>e?this.changeActiveModel(!1):null,goToWalletModel:()=>this.changeActiveModel(!0)}))))))}}function sa(e){return s.createElement("div",{className:"wallet-block-registration",onClick:e.onChangeActive},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(g(),{content:"registration.securityKey",component:"p",className:"model-option security-key "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.securityWalletModel",component:"p",className:"model-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.loginByKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.walletLoginByValue",component:"p",className:"model-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.backUpRestoreKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"settings.yes",component:"p",className:"model-option-value "+(e.active?"":"inactive-text")}),e.active?s.createElement(ge.Button,{onClick:e.onSelect,type:"primary"},k().translate("registration.continue")):s.createElement(ge.Button,null,k().translate("registration.select")))}function na(e){return s.createElement("div",{className:"account-block-registration",onClick:e.onChangeActive},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(g(),{content:"registration.securityKey",component:"p",className:"model-option security-key "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.securityAccountModel",component:"p",className:"model-option-value account-security option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.loginByKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.accountLoginByValue",component:"p",className:"model-option-value account-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.backUpRestoreKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"settings.no",component:"p",className:"model-option-value account-option-value "+(e.active?"":"inactive-text")}),e.active?s.createElement(ge.Button,{onClick:e.onSelect,type:"primary"},k().translate("registration.continue")):s.createElement(ge.Button,null,k().translate("registration.select")))}sa.propTypes={active:M().bool.isRequired,onSelect:M().func.isRequired,onChangeActive:M().func.isRequired},na.propTypes={active:M().bool.isRequired,onSelect:M().func.isRequired,onChangeActive:M().func.isRequired};class ra extends s.Component{static propTypes={children:M().element};static contextTypes={router:M().object.isRequired};static defaultProps={children:null};constructor(){super(),this.state={activeWalletModel:!0}}onSelect(e){this.props.history.push(`/registration/${e}`)}changeActiveModel(e){this.setState({activeWalletModel:e})}renderHeader(e){const{activeWalletModel:t}=this.state;return s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:t,onChangeActive:()=>this.changeActiveModel(!0),forSmall:!e}),s.createElement(ta,{active:!t,onChangeActive:()=>this.changeActiveModel(!1),forSmall:e}))}render(){if(this.props.children)return this.props.children;const{activeWalletModel:e}=this.state;return s.createElement("div",{className:"grid-block align-center registration-layout"},s.createElement("div",{className:"grid-block shrink vertical text-center registration-selector"},s.createElement(g(),{content:"registration.title",component:"p",className:"registration-title"}),s.createElement("div",{className:"registration-container"},s.createElement("div",{className:"v-align"},s.createElement("div",{className:(e?"":"inactive-model-block")+" selection-block align-center plate"},this.renderHeader(!0),s.createElement(sa,{onSelect:()=>this.onSelect("local"),active:e,onChangeActive:()=>this.changeActiveModel(!0)})),s.createElement("div",{className:(e?"inactive-model-block":"")+" selection-block align-center plate"},this.renderHeader(!1),s.createElement(na,{onSelect:()=>this.onSelect("cloud"),active:!e,onChangeActive:()=>this.changeActiveModel(!1)}))))))}}var oa=a(81038);class ia extends s.Component{static propTypes={toggleConfirmed:M().func.isRequired,checkboxUploaded:M().bool.isRequired,checkboxRecover:M().bool.isRequired,checkboxRemember:M().bool.isRequired,history:M().object.isRequired};onBackupDownload=()=>{this.props.history.push("/")};static renderWarning(){return s.createElement("div",{className:"attention-note"},s.createElement(y.Z,{name:"attention",size:"1x"}),s.createElement(g(),{content:"registration.attention",className:"attention-text"}),s.createElement(g(),{component:"p",content:"registration.walletNote"}))}renderTooltip(){return s.createElement(te.Z,{id:"wallet-confirm",className:"custom-tooltip text-left",globalEventOff:"click"},s.createElement("div",{className:"tooltip-text",onClick:e=>e.stopPropagation()},s.createElement(g(),{content:"tooltip.registration.whyBinFile"}),s.createElement("span",{onClick:()=>te.Z.hide(),className:"close-button cursor-pointer"},"×")))}render(){return s.createElement("div",{className:"text-left"},s.createElement("div",{className:"confirm-checks"},s.createElement(g(),{component:"h3",content:"registration.createAccountTitle"}),ia.renderWarning()),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxRemember")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxRemember?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxRemember"})),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxUploaded")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxUploaded?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxUploaded"})),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxRecover")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxRecover?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxRecover"})),s.createElement(oa.UW,{confirmation:!0,checkboxActive:this.props.checkboxUploaded&&this.props.checkboxRemember&&this.props.checkboxRecover,downloadCb:this.onBackupDownload}),s.createElement(g(),{component:"p",className:"cursor-pointer why-bin-file checkbox-text",content:"registration.whyBinFile","data-for":"wallet-confirm","data-tip":!0,"data-event":"click","data-place":"bottom","data-effect":"solid"}),this.renderTooltip())}}const la=ia;var ca=a(60830),da=a(23725),ua=a.n(da);class pa extends s.Component{static propTypes={onChange:M().func,onEnter:M().func,confirmation:M().bool,wrongPassword:M().bool,noValidation:M().bool,noLabel:M().bool,passwordLength:M().number,checkStrength:M().bool,value:M().string,copy:M().bool,visible:M().bool,readonly:M().bool};static defaultProps={confirmation:!1,wrongPassword:!1,noValidation:!1,noLabel:!1,passwordLength:8,checkStrength:!1,value:"",copy:!1,visible:!1,readonly:!1};constructor(){super(),this.onKeyDown=this.onKeyDown.bind(this),this.state={password:"",confirmPassword:"",isPasswordInputActive:!1,isConfirmPasswordInputActive:!1},this.handlePasswordBlur=this.handlePasswordBlur.bind(this),this.handlePasswordFocus=this.handlePasswordFocus.bind(this),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.handleValidationChange=this.handleValidationChange.bind(this),this.handleConfirmPasswordBlur=this.handleConfirmPasswordBlur.bind(this),this.handleConfirmPasswordFocus=this.handleConfirmPasswordFocus.bind(this),this.handleConfirmPasswordChange=this.handleConfirmPasswordChange.bind(this)}handleConfirmPasswordBlur(){this.setState({isConfirmPasswordInputActive:!1})}handleConfirmPasswordFocus(){this.setState({isConfirmPasswordInputActive:!0})}handlePasswordBlur(){this.setState({isPasswordInputActive:!1})}handlePasswordFocus(){this.setState({isPasswordInputActive:!0})}handlePasswordChange(e){this.setState({password:e.target.value},(()=>{this.props.onChange&&this.props.onChange(this.state.password),this.calculatePasswordScore(this.state.password||""),this.handleValidationChange()}))}handleConfirmPasswordChange(e){this.setState({confirmPassword:e.target.value},(()=>{this.handleValidationChange()}))}handleValidationChange(){let e={errorMessage:this.getPasswordErrorMessage()||this.getConfirmPasswordErrorMessage()||" ",valid:!this.getPasswordErrorMessage()&&!this.getConfirmPasswordErrorMessage()};console.log(e),this.props.onValidationChange&&this.props.onValidationChange(e)}calculatePasswordScore(e){let{passwordLength:t}=this.props,a=ua().load({sync:!0})(e||""),s=Math.floor(e.length/(1.5*t)),n=Math.min(5,a.score+s);console.log(n,a.score,s,e),this.setState({score:n})}onKeyDown(e){this.props.onEnter&&13===e.keyCode&&this.props.onEnter(e)}getPasswordErrorMessage(){let{password:e}=this.state;return e.lengththis.state.isPasswordInputActive||!this.state.password?"":n||"")(),validateStatus:(()=>this.state.isPasswordInputActive||!this.state.password?"":n&&n.length?"error":"")()},s.createElement(ge.Input,{id:"current-password",onBlur:this.handlePasswordBlur,onFocus:this.handlePasswordFocus,type:a?"text":"password",name:"password",placeholder:k().translate("wallet.enter_password"),ref:"password",onChange:this.handlePasswordChange,onKeyDown:this.onKeyDown,value:this.state.password,readOnly:t}),s.createElement(ge.Progress,{percent:20*e,showInfo:!1})),s.createElement(ge.Form.Item,{label:k().translate("wallet.confirm"),key:"confirm-password-field",help:(()=>this.state.confirmPassword&&this.state.password&&r||"")(),validateStatus:(()=>!this.state.isConfirmPasswordInputActive&&this.state.confirmPassword&&this.state.password&&r&&r.length?"error":"")()},s.createElement(ge.Input,{id:"confirm-password",onBlur:this.handleConfirmPasswordBlur,onFocus:this.handleConfirmPasswordFocus,type:a?"text":"password",name:"confirmPassword",placeholder:k().translate("wallet.enter_password"),ref:"confirmPassword",onChange:this.handleConfirmPasswordChange,onKeyDown:this.onKeyDown,value:this.state.confirmPassword,readOnly:t}))]}}const ha=pa;class ma extends s.Component{static propTypes={continue:M().func.isRequired,history:M().object.isRequired};constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrarAccount:void 0,loading:!1,showIdenticon:!1,password:""},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.onRegistrarAccountChange=this.onRegistrarAccountChange.bind(this),this.unmounted=!1,this.onSubmit=this.onSubmit.bind(this),this.onPasswordChange=this.onPasswordChange.bind(this),this.onPasswordValidationChange=this.onPasswordValidationChange.bind(this)}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}componentWillUnmount(){this.unmounted=!0}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.showIdenticon||(t.showIdenticon=!0),this.setState(t)}onPasswordChange(e){this.setState({password:e})}onPasswordValidationChange(e){this.setState({validPassword:e.valid})}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(ze.Z.unlisten(this.onFinishConfirm),ze.Z.reset(),(0,r.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{console.log("onFinishConfirm"),this.props.history.push("/wallet/backup/create?newAccount=true")})))}onRegistrarAccountChange(e){this.setState({registrarAccount:e})}onSubmit(e){if(e.preventDefault(),!this.isValid())return;const{accountName:t}=this.state;if(G.Z.getWallet())this.createAccount(t);else{const e=this.state.password;this.createWallet(e).then((()=>this.createAccount(t)))}}createAccount(e){const{referralAccount:t}=o.Z.getState();J.Z.unlock().then((()=>{this.setState({loading:!0}),F.Z.createAccount(e,this.state.registrarAccount,t||this.state.registrarAccount,0).then((()=>{(0,r.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.props.continue(),this.unmounted||this.setState({loading:!1})})),this.state.registrarAccount&&ze.Z.listen(this.onFinishConfirm)})).catch((t=>{this.setState({loading:!1}),console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&([a]=t.remote_ip),ge.Notification.error({message:k().translate("notifications.account_create_failure",{account_name:e,error_msg:a})})}))}))}createWallet(e){return this.setState({loading:!0}),Le.Z.setWallet("default",e).then((()=>{console.log("Congratulations, your wallet was successfully created.")})).catch((e=>{this.setState({loading:!1}),console.log("CreateWallet failed:",e),ge.Notification.error({message:k().translate("notifications.account_wallet_create_failure",{error_msg:e})})}))}isValid(){const e=0===o.Z.getMyAccounts().length;let t=this.state.validAccountName;return G.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrarAccount),t}renderDropdown(e,t){const{registrarAccount:a}=this.state;return s.createElement(ge.Form.Item,{label:k().translate("account.pay_from")},s.createElement(ge.Select,{placeholder:k().translate("account.select_placeholder"),style:{width:"100%"},value:this.state.registrarAccount,onChange:this.onRegistrarAccountChange},e.map((e=>s.createElement(ge.Select.Option,{key:e,value:e},e)))))}renderPasswordInput(){return s.createElement(ha,{ref:"password",onChange:this.onPasswordChange,onValidationChange:this.onPasswordValidationChange,label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("settings.password"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.password")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"}))))})}renderAccountCreateForm(){const{registrarAccount:e}=this.state,t=o.Z.getMyAccounts(),a=0===t.length,n=G.Z.getWallet(),i=this.isValid();let l=!1;const c=e?r.ChainStore.getAccount(e):null;return c&&c.get("lifetime_referrer")===c.get("id")&&(l=!0),s.createElement(ge.Form,{layout:"vertical",onSubmit:this.onSubmit},s.createElement(ca.Z,{cheapNameOnly:!!a,onChange:e=>this.onAccountNameChange(e),accountShouldNotExist:!0,placeholder:k().translate("account.name"),label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("account.name"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.accountName")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"})))),noLabel:!0}),n?null:this.renderPasswordInput(),a?null:this.renderDropdown(t,l),c&&!l?s.createElement(ge.Form.Item,null,s.createElement(ge.Alert,{type:"error",description:s.createElement(g(),{content:"wallet.must_be_ltm"})})):null,s.createElement(ge.Form.Item,null,s.createElement(ge.Button,{type:"primary",disabled:this.state.loading||!i||e&&!l,htmlType:"submit",loading:this.state.loading},k().translate("registration.continue"))))}render(){const e=G.Z.getWallet(),t=0===o.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement("div",{className:"text-left"},t?s.createElement(g(),{component:"h3",content:"registration.createAccountTitle"}):s.createElement(g(),{component:"h3",content:"wallet.create_a"}),e?null:s.createElement(g(),{component:"p",content:"registration.walletDescription",className:"model-description"})),this.renderAccountCreateForm())}}const ga=ma;class ba extends s.Component{constructor(){super(),this.state={confirmationStep:!1,checkboxRemember:!1,checkboxUploaded:!1,checkboxRecover:!1},this.toggleConfirmed=this.toggleConfirmed.bind(this)}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!1})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}continue(){this.setState({confirmationStep:!0})}toggleConfirmed(e){this.setState({[e]:!this.state[e]})}render(){const{confirmationStep:e,checkboxRemember:t,checkboxUploaded:a,checkboxRecover:n}=this.state;return s.createElement("div",{className:"no-margin grid-block registration-layout registration"},s.createElement("div",{className:"grid-block horizontal align-center text-center"},s.createElement("div",null,s.createElement("img",{className:(t&&a&&n?"confirmed":"")+" model-img",src:"/model-type-images/flesh-drive.svg",alt:"wallet"})),s.createElement("div",{className:"create-account-block"},e?s.createElement(la,{history:this.props.history,toggleConfirmed:this.toggleConfirmed,checkboxRemember:t,checkboxUploaded:a,checkboxRecover:n}):s.createElement(ga,{history:this.props.history,continue:()=>this.continue()}))))}}const fa=ba;class ya extends s.Component{static propTypes={continue:M().func.isRequired};constructor(){super(),this.state={validAccountName:!1,accountName:"",registrarAccount:null,loading:!1,generatedPassword:`P${r.key.get_random_key().toWif()}`,confirmPassword:""},this.onSubmit=this.onSubmit.bind(this),this.onRegistrarAccountChange=this.onRegistrarAccountChange.bind(this),this.onAccountNameChange=this.onAccountNameChange.bind(this),this.onConfirmation=this.onConfirmation.bind(this),this.accountNameInput=null}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.setState(t)}onRegistrarAccountChange(e){this.setState({registrarAccount:e})}onSubmit(e){e.preventDefault(),this.isValid()&&this.props.continue({accountName:this.state.accountName,password:this.state.generatedPassword})}onConfirmation(e){const t=e.currentTarget.value;this.setState({confirmPassword:t,passwordConfirmed:t===this.state.generatedPassword})}isValid(){const e=0===o.Z.getMyAccounts().length;let t=this.state.validAccountName;return G.Z.getWallet(),e||(t=t&&this.state.registrarAccount),t}renderAccountCreateForm(){const{registrarAccount:e}=this.state,t=o.Z.getMyAccounts(),a=0===t.length,n=this.isValid();let i=!1;const l=e?r.ChainStore.getAccount(e):null;return l&&l.get("lifetime_referrer")===l.get("id")&&(i=!0),s.createElement("div",null,s.createElement(ge.Form,{onSubmit:this.onSubmit,layout:"vertical"},s.createElement(ca.Z,{cheapNameOnly:a,onChange:this.onAccountNameChange,accountShouldNotExist:!0,placeholder:k().translate("account.name"),label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("account.name"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.accountName")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"})))),noLabel:!0}),s.createElement(ge.Form.Item,{label:k().translate("wallet.generated")},s.createElement(ge.Input.TextArea,{disabled:!0,style:{paddingRight:"50px"},rows:2,id:"password",value:this.state.generatedPassword}),s.createElement(mt.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top",className:"button registration-layout--copy-password-btn"})),s.createElement(ge.Form.Item,{label:k().translate("wallet.confirm_password"),help:(()=>this.state.confirmPassword&&!this.state.passwordConfirmed?k().translate("wallet.confirm_error"):"")(),validateStatus:(()=>this.state.confirmPassword&&!this.state.passwordConfirmed?"error":"")()},s.createElement(ge.Input,{placeholder:k().translate("wallet.confirm_password"),type:"password",name:"password",id:"confirmPassword",value:this.state.confirmPassword,onChange:this.onConfirmation})),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow"},s.createElement("label",{htmlFor:"account"},s.createElement(g(),{content:"account.pay_from"})),s.createElement(Pe.Z,{id:"account",account_names:t,onChange:this.onRegistrarAccountChange}),e&&!i?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(g(),{content:"wallet.must_be_ltm"})):null),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement(ge.Button,{htmlType:"submit",type:"primary",disabled:!n||!this.state.passwordConfirmed||e&&!i},s.createElement(g(),{content:"registration.continue"}))))}renderAccountCreateText(){const e=0===o.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement(g(),{component:"p",className:"model-description",content:"registration.accountDescription"}),e?null:s.createElement(g(),{component:"p",content:"wallet.not_first_account"}))}render(){return s.createElement("div",null,this.renderAccountCreateText(),this.renderAccountCreateForm())}}const _a=(0,u.$)(ya,{listenTo:()=>[o.Z],getProps:()=>({})});class wa extends s.Component{static propTypes={accountName:M().string.isRequired,password:M().string.isRequired,toggleConfirmed:M().func.isRequired,history:M().object.isRequired};constructor(){super(),this.state={confirmed:!1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.toggleConfirmed=this.toggleConfirmed.bind(this),this.createAccount=this.createAccount.bind(this),this.onCreateAccount=this.onCreateAccount.bind(this)}shouldComponentUpdate(e,t){return t.confirmed!==this.state.confirmed}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(ze.Z.unlisten(this.onFinishConfirm),ze.Z.reset(),(0,r.FetchChain)("getAccount",this.state.accountName).then((()=>{this.props.history.push("/wallet/backup/create?newAccount=true")})))}onCreateAccount(e){e.preventDefault(),this.createAccount(this.props.accountName,this.props.password)}createAccount(e,t){const{referralAccount:a}=o.Z.getState();F.Z.createAccountWithPassword(e,t,this.state.registrarAccount,a||this.state.registrarAccount,0).then((()=>{F.Z.setPasswordAccount(e),this.state.registrarAccount?((0,r.FetchChain)("getAccount",e).then((()=>{this.unlockAccount(e,t)})),ze.Z.listen(this.onFinishConfirm)):((0,r.FetchChain)("getAccount",e).then((()=>{})),this.unlockAccount(e,t),this.props.history.push("/"))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&([a]=t.remote_ip),ge.Notification.error({message:k().translate("account_create_failure",{account_name:e,error_msg:a})})}))}unlockAccount(e,t){G.Z.validatePassword(t,!0,e),J.Z.checkLock.defer()}toggleConfirmed(e){this.setState({confirmed:e.target.checked})}render(){return s.createElement(ge.Form,{layout:"vertical"},s.createElement(ge.Form.Item,{label:k().translate("registration.copyPassword")},s.createElement(ge.Input.TextArea,{disabled:!0,rows:2,id:"password",value:this.props.password}),s.createElement(mt.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top",className:"button registration-layout--copy-password-btn"})),s.createElement(ge.Form.Item,null,s.createElement(ge.Alert,{showIcon:!0,type:"warning",message:"",description:k().translate("registration.accountNote")})),s.createElement(ge.Form.Item,null,s.createElement(ge.Checkbox,{checked:this.state.confirmed,onChange:this.toggleConfirmed},s.createElement(g(),{content:"registration.accountConfirmation",className:"checkbox-text"}))),s.createElement(ge.Form.Item,null,s.createElement(ge.Button,{type:"primary",disabled:!this.state.confirmed,onClick:this.onCreateAccount},s.createElement(g(),{content:"account.create_account"}))))}}const ka=(0,u.$)(wa,{listenTo:()=>[o.Z],getProps:()=>({})});class va extends s.Component{constructor(){super(),this.state={accountName:""},this.continue=this.continue.bind(this),this.toggleConfirmed=this.toggleConfirmed.bind(this)}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}continue({accountName:e,password:t}){this.setState({accountName:e,password:t,confirmationStep:!0})}toggleConfirmed(){const{active:e}=this.state;this.setState({active:!e})}render(){return s.createElement("div",{className:"no-margin grid-block registration-layout registration"},s.createElement("div",{className:"grid-block horizontal align-center text-center"},s.createElement("div",null,s.createElement("img",{className:"model-img "+(this.state.active?"confirmed":""),src:"/model-type-images/account.svg",alt:"account"})),s.createElement("div",{className:"create-account-block"},s.createElement(g(),{component:"h3",className:"registration-account-title",content:"registration.createByPassword"}),this.state.confirmationStep?s.createElement(ka,{accountName:this.state.accountName,password:this.state.password,toggleConfirmed:this.toggleConfirmed,history:this.props.history}):s.createElement(_a,{continue:this.continue}))))}}const Aa=va;var Ea=a(66879);class xa extends s.Component{static propTypes={target:M().func.isRequired,title:M().string.isRequired,description:M().string.isRequired,icon:M().string.isRequired,disabled:M().bool,comingSoon:M().bool};static defaultProps={disabled:!1};constructor(){super()}render(){return this.props.disabled||this.props.comingSoon?s.createElement(ge.Tooltip,{title:"string"==typeof this.props.disabled?this.props.disabled:"Coming soon"},s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--disabled disabled",onClick:()=>{},tabIndex:"0"},s.createElement("h2",{className:"no-margin"},!!this.props.comingSoon&&s.createElement(y.Z,{style:{float:"right"},name:"coming_soon",size:"4x"}),s.createElement(g(),{content:this.props.title})),s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--content disabled"},s.createElement(y.Z,{name:this.props.icon,size:"5x"}),s.createElement("span",{className:"padding showcases-grid--wrapper--item--wrapper--content--description disabled"},s.createElement(g(),{content:this.props.description}))))):s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper",onClick:this.props.target,tabIndex:"0"},s.createElement(g(),{content:this.props.title,className:"no-margin",component:"h2"}),s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--content"},s.createElement(y.Z,{name:this.props.icon,size:"5x"}),s.createElement("span",{className:"padding showcases-grid--wrapper--item--wrapper--content--description"},s.createElement(g(),{content:this.props.description}))))}}var Sa=a(98817);class Ca extends s.Component{constructor(){super(),this.state={currentAccount:null}}UNSAFE_componentWillMount(){this.setState({currentAccount:r.ChainStore.getAccount(this.props.currentAccount)})}UNSAFE_componentWillReceiveProps(e){e.currentAccount!==this.props.currentAccount&&this.setState({currentAccount:r.ChainStore.getAccount(e.currentAccount)})}render(){let e=null!==this.state.currentAccount,t=this;const a=[{title:"showcases.paper_wallet.title",target:()=>{e&&(0,Sa.$)(this.state.currentAccount)},description:"showcases.paper_wallet.description",icon:"wallet",disabled:!e&&"Please login to use this functionality"},{title:"showcases.voting.title",target:a=>{e&&t.props.history.push("/account/"+this.state.currentAccount.get("name")+"/voting")},description:"showcases.voting.description",icon:"voting",disabled:!e&&"Please login to use this functionality"},{title:"showcases.barter.title",target:e=>{t.props.history.push("/barter")},description:"showcases.barter.description",icon:"barter",disabled:!e&&"Please login to use this functionality"},{title:"showcases.borrow.title",target:()=>{e&&t.props.history.push("/borrow")},description:"showcases.borrow.description",icon:"borrow",disabled:!e&&"Please login to use this functionality"},{title:"showcases.direct_debit.title",target:e=>{t.props.history.push("/direct-debit")},description:"showcases.direct_debit.description",icon:"direct_debit",disabled:!e&&"Please login to use this functionality"},{title:"showcases.htlc.title",target:e=>{t.props.history.push("/htlc")},description:"showcases.htlc.description",icon:"htlc",disabled:!e&&"Please login to use this functionality"},{title:"showcases.prediction_market.title",target:e=>{t.props.history.push("/prediction")},description:"showcases.prediction_market.description",icon:"prediction",disabled:!e&&"Please login to use this functionality"},{title:"showcases.merchant_protocol.title",target:e=>{t.props.history.push("/invoice/request")},description:"showcases.merchant_protocol.description",icon:"merchant",disabled:!e&&"Please login to use this functionality"},{title:"showcases.timed_transfer.title",target:()=>{},description:"showcases.timed_transfer.description",icon:"alarm",disabled:!0,comingSoon:!0},{title:"showcases.instant_trade.title",target:e=>{t.props.history.push("/instant-trade")},description:"showcases.instant_trade.description",icon:"instant-trade",disabled:!e&&"Please login to use this functionality"}];return s.createElement("div",{className:"overflow-visible showcases-grid",style:{align:"center"}},s.createElement("div",{className:"showcases-grid--wrapper"},a.map((e=>s.createElement("div",{key:e.title,className:"showcases-grid--wrapper--item"},e.disabled?s.createElement(xa,{target:e.target,title:e.title,description:e.description,icon:e.icon,disabled:e.disabled,comingSoon:e.comingSoon||!1}):s.createElement(xa,{target:e.target,title:e.title,description:e.description,icon:e.icon}))))))}}const Ta=Ca=(0,u.$)(Ca,{listenTo:()=>[o.Z],getProps:()=>({currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount})});var Ba=a(12326),za=a(13379),Pa=a(99349);class Na extends s.Component{_getRulesForCheck(e,t){return e.map(((e,a)=>{let s=`${e.quoteAssetSymbol}_${e.baseAssetSymbol}`,n=null;try{let e=t.get(s);n=e&&e.price&&e.price.toReal()}catch(e){console.error(`PriceAlertNotifications: Unable to get real price for pair ${s}: `,e)}return{ruleKey:a,type:e.type,pair:s,quoteAssetSymbol:e.quoteAssetSymbol,baseAssetSymbol:e.baseAssetSymbol,actualPrice:n,expectedPrice:e.price}}))}_getFulfilledRules(e){return e.filter((e=>!isNaN(Number(e.actualPrice))&&(Number(e.type)===Number(za.je.HIGHER_THAN)&&Number(e.actualPrice)>=Number(e.expectedPrice)||Number(e.type)===Number(za.je.LOWER_THAN)&&Number(e.actualPrice)<=Number(e.expectedPrice))))}_filterByFulfilledRules(e){return(t,a)=>!e.some((e=>a===e.ruleKey))}notifyAboutRules(e){e.forEach((e=>{Number(e.type)===Number(za.je.LOWER_THAN)&&ge.Notification.info({duration:30,message:k().translate("exchange.price_alert.title"),description:s.createElement(g(),{content:"exchange.price_alert.notification.lower_than",component:"div",pair:s.createElement("span",{className:"price-alert--notification--pair-name"},s.createElement(Pa.Z,{name:e.quoteAssetSymbol}),"/",s.createElement(Pa.Z,{name:e.baseAssetSymbol})),expectedPrice:s.createElement("span",{className:"price-alert--notification--expected-price"},e.expectedPrice),actualPrice:s.createElement("span",{className:"price-alert--notification--actual-price price-alert--notification--actual-price-down"},e.actualPrice)}),icon:s.createElement(ge.Icon,{type:"caret-down",className:"price-alert--notification--icon price-alert--notification--icon--down"})}),Number(e.type)===Number(za.je.HIGHER_THAN)&&ge.Notification.info({duration:30,message:k().translate("exchange.price_alert.title"),description:s.createElement(g(),{content:"exchange.price_alert.notification.higher_than",component:"div",pair:s.createElement("span",{className:"price-alert--notification--pair-name"},s.createElement(Pa.Z,{name:e.quoteAssetSymbol}),"/",s.createElement(Pa.Z,{name:e.baseAssetSymbol})),expectedPrice:s.createElement("span",{className:"price-alert--notification--expected-price"},e.expectedPrice),actualPrice:s.createElement("span",{className:"price-alert--notification--actual-price price-alert--notification--actual-price-up"},e.actualPrice)}),icon:s.createElement(ge.Icon,{type:"caret-up",className:"price-alert--notification--icon price-alert--notification--icon--up"})})}))}render(){const{priceAlert:e,allMarketStats:t}=this.props;if(!(e&&e.length&&t&&t.size))return null;const a=this._getRulesForCheck(e,t),s=this._getFulfilledRules(a);this.notifyAboutRules(s);let n=this.props.priceAlert.filter(this._filterByFulfilledRules(s));return n.length!==this.props.priceAlert.length&&b.Z.setPriceAlert(n),null}}const Ma=(0,u.$)(Na,{listenTo:()=>[Ba.Z,h.Z],getProps:()=>({allMarketStats:Ba.Z.getState().allMarketStats,priceAlert:h.Z.getState().priceAlert.toJS()})});var Za=a(82391),Ia=a(56815);function Oa(){return Oa=Object.assign||function(e){for(var t=1;tPromise.all([a.e(605),a.e(891),a.e(696),a.e(164),a.e(343),a.e(197),a.e(941),a.e(663)]).then(a.bind(a,94136)),loading:x.Z}),La=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(164),a.e(343),a.e(197),a.e(941),a.e(663)]).then(a.bind(a,36771)),loading:x.Z}),Da=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(695),a.e(14),a.e(197),a.e(857),a.e(214)]).then(a.bind(a,22919)),loading:x.Z}),Ra=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(695),a.e(14),a.e(197),a.e(857),a.e(214)]).then(a.bind(a,52928)),loading:x.Z}),ja=Tt()({loader:()=>a.e(810).then(a.bind(a,19814)),loading:x.Z}),Fa=Tt()({loader:()=>Promise.all([a.e(605),a.e(473),a.e(695),a.e(49),a.e(14),a.e(343),a.e(941),a.e(857),a.e(809)]).then(a.bind(a,68801)),loading:x.Z}),Wa=Tt()({loader:()=>Promise.all([a.e(891),a.e(473),a.e(835),a.e(223),a.e(49),a.e(25)]).then(a.bind(a,22686)),loading:x.Z}),Ua=Tt()({loader:()=>Promise.all([a.e(835),a.e(590),a.e(697)]).then(a.bind(a,97889)),loading:x.Z}),Ha=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,57805)),loading:x.Z}),Ka=Tt()({loader:()=>a.e(39).then(a.bind(a,91795)),loading:x.Z}),Va=Tt()({loader:()=>a.e(521).then(a.bind(a,1514)),loading:x.Z}),Ga=Tt()({loader:()=>a.e(584).then(a.bind(a,12474)),loading:x.Z}),Xa=Tt()({loader:()=>Promise.all([a.e(473),a.e(49),a.e(884)]).then(a.bind(a,22053)),loading:x.Z}),Ja=Tt()({loader:()=>a.e(966).then(a.bind(a,85831)),loading:x.Z}),Ya=Tt()({loader:()=>Promise.all([a.e(478),a.e(327),a.e(882)]).then(a.bind(a,46327)),loading:x.Z}),Qa=Tt()({loader:()=>Promise.all([a.e(478),a.e(397)]).then(a.bind(a,30478)),loading:x.Z}),$a=Tt()({loader:()=>a.e(975).then(a.bind(a,82959)),loading:x.Z}),es=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,49980)),loading:x.Z}),ts=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,18995)),loading:x.Z}),as=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,65379)),loading:x.Z}),ss=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,42415)),loading:x.Z}),ns=Tt()({loader:()=>a.e(58).then(a.bind(a,76285)),loading:x.Z}),rs=Tt()({loader:()=>Promise.all([a.e(14),a.e(970)]).then(a.bind(a,7414)),loading:x.Z});class os extends s.Component{constructor(){super();let e=!(!r.ChainStore.subError||"ChainStore sync error, please check your system clock"!==r.ChainStore.subError.message);this.state={isBrowserSupportModalVisible:!1,isGatewaySelectorModalVisible:!1,loading:!1,synced:this._syncStatus(),syncFail:e,incognito:!1,incognitoWarningDismissed:!1,height:window&&window.innerHeight},this._rebuildTooltips=this._rebuildTooltips.bind(this),this._chainStoreSub=this._chainStoreSub.bind(this),this._syncStatus=this._syncStatus.bind(this),this._getWindowHeight=this._getWindowHeight.bind(this),this.showBrowserSupportModal=this.showBrowserSupportModal.bind(this),this.hideBrowserSupportModal=this.hideBrowserSupportModal.bind(this),this.hideGatewaySelectorModal=this.hideGatewaySelectorModal.bind(this),ge.Notification.config({duration:4.5,top:90})}componentWillUnmount(){window.removeEventListener("resize",this._getWindowHeight),c.unlisten(this._onNotificationChange),r.ChainStore.unsubscribe(this._chainStoreSub),clearInterval(this.syncCheckInterval)}getBlockTime(){let e=r.ChainStore.getObject("2.1.0");if(e){let t=e.get("time");return/Z$/.test(t)||(t+="Z"),new Date(t)}throw new Error("Blocktime not available right now")}getBlockTimeDelta(){try{let e=(this.getBlockTime().getTime()+r.ChainStore.getEstimatedChainTimeOffset())/1e3,t=(new Date).getTime()/1e3;return Math.abs(t-e)}catch(e){return-1}}hideBrowserSupportModal(){this.setState({isBrowserSupportModalVisible:!1})}hideGatewaySelectorModal(){this.setState({isGatewaySelectorModalVisible:!1})}showBrowserSupportModal(){this.setState({isBrowserSupportModalVisible:!0})}_syncStatus(e=!1){let t=this.getBlockTimeDelta()<5;return e&&t!==this.state.synced&&this.setState({synced:t}),t}_setListeners(){try{window.addEventListener("resize",this._getWindowHeight,{capture:!1,passive:!0}),c.listen(this._onNotificationChange.bind(this)),r.ChainStore.subscribe(this._chainStoreSub),o.Z.tryToSetCurrentAccount()}catch(e){console.error("e:",e)}}componentDidMount(){this._setListeners(),this.syncCheckInterval=setInterval(this._syncStatus.bind(this,!0),5e3);const e=navigator.userAgent.toLowerCase();window.electron||e.indexOf("firefox")>-1||e.indexOf("chrome")>-1||e.indexOf("edge")>-1||this.showBrowserSupportModal(),this.props.history.listen(this._rebuildTooltips),this._rebuildTooltips(),(0,Nt.Z)(function(e){this.setState({incognito:e})}.bind(this)),Ia.Z.loadOnChainGatewayConfig(),(0,ve.rC)()&&this._ensureExternalServices()}_ensureExternalServices(){setTimeout((()=>{o.Z.getState().myActiveAccounts.size>0||o.Z.getState().passwordAccount?this._checkExternalServices():this._ensureExternalServices()}),5e3)}_checkExternalServices(){h.Z.getState().viewSettings.get("hasSeenExternalServices",!1)?(0,Mt.xA)():this.setState({isGatewaySelectorModalVisible:!0})}componentDidUpdate(e){this.props.location!==e.location&&this.onRouteChanged()}onRouteChanged(){document.title=Zt.GetTitleByPath(this.props.location.pathname)}_onIgnoreIncognitoWarning(){this.setState({incognitoWarningDismissed:!0})}_rebuildTooltips(){this.rebuildTimeout||(te.Z.hide(),this.rebuildTimeout=setTimeout((()=>{this.refs.tooltip&&this.refs.tooltip.globalRebuild(),this.rebuildTimeout=null}),1500))}_chainStoreSub(){let e=this._syncStatus();if(e!==this.state.synced&&this.setState({synced:e}),r.ChainStore.subscribed!==this.state.synced||r.ChainStore.subError){let e=!(!r.ChainStore.subError||"ChainStore sync error, please check your system clock"!==r.ChainStore.subError.message);this.setState({syncFail:e})}}_onNotificationChange(){let e=c.getState().notification;void 0===e.autoDismiss&&(e.autoDismiss=10),this.refs.notificationSystem&&this.refs.notificationSystem.addNotification(e)}_getWindowHeight(){this.setState({height:window&&window.innerHeight})}render(){let{incognito:e,incognitoWarningDismissed:t}=this.state,{walletMode:a,theme:n,location:r,match:i,...l}=this.props,c=null;if(this.state.syncFail)c=s.createElement(E,null);else if(this.state.loading)c=s.createElement("div",{className:"grid-frame vertical"},s.createElement(x.Z,{loadingText:"Connecting to APIs and starting app"}));else{let e=o.Z.getState().currentAccount||o.Z.getState().passwordAccount;e=e&&"null"!==e?e:"committee-account",c=s.createElement("div",{className:"grid-frame vertical"},s.createElement(Rt,null),s.createElement(xe,Oa({height:this.state.height},l)),s.createElement("div",{id:"mainContainer",className:"grid-block"},s.createElement("div",{className:"grid-block vertical"},s.createElement(d.rs,null,s.createElement(d.AW,{path:"/",exact:!0,component:Ja}),s.createElement(d.AW,{path:"/account/:account_name",component:Fa}),s.createElement(d.AW,{path:"/accounts",component:Xa}),s.createElement(d.AW,{path:"/market/:marketID",component:La}),s.createElement(d.AW,{path:"/credit-offer",component:Da}),s.createElement(d.AW,{path:"/settings/:tab",component:Ha}),s.createElement(d.AW,{path:"/settings",component:Ha}),s.createElement(d.AW,{path:"/invoice/:data",component:qa}),s.createElement(d.AW,{path:"/deposit-withdraw",exact:!0,component:Wa}),s.createElement(d.AW,{path:"/create-account",component:Ft.Z}),s.createElement(d.AW,{path:"/login",component:aa}),s.createElement(d.AW,{path:"/registration",exact:!0,component:ra}),s.createElement(d.AW,{path:"/registration/local",exact:!0,component:fa}),s.createElement(d.AW,{path:"/registration/cloud",exact:!0,component:Aa}),s.createElement(d.AW,{path:"/news",exact:!0,component:Ua}),s.createElement(d.l_,{path:"/voting",to:{pathname:`/account/${e}/voting`}}),s.createElement(d.AW,{path:"/explorer/:tab",component:Ra}),s.createElement(d.AW,{path:"/explorer",component:Ra}),s.createElement(d.AW,{path:"/asset/:symbol",component:Va}),s.createElement(d.AW,{exact:!0,path:"/block/:height",component:Ga}),s.createElement(d.AW,{exact:!0,path:"/block/:height/:txIndex",component:Ga}),s.createElement(d.AW,{path:"/borrow",component:ts}),s.createElement(d.AW,{path:"/barter",component:es}),s.createElement(d.AW,{path:"/direct-debit",component:ss}),s.createElement(d.AW,{path:"/spotlight",component:Ta}),s.createElement(d.AW,{path:"/wallet",component:Ya}),s.createElement(d.AW,{path:"/create-wallet-brainkey",component:Ea.D}),s.createElement(d.AW,{path:"/existing-account",component:Qa}),s.createElement(d.AW,{path:"/create-worker",component:$a}),s.createElement(d.AW,{exact:!0,path:"/help",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1/:path2",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1/:path2/:path3",component:Ka}),s.createElement(d.AW,{path:"/htlc",component:as}),s.createElement(d.AW,{path:"/prediction",component:ja}),s.createElement(d.AW,{exact:!0,path:"/instant-trade",component:ns}),s.createElement(d.AW,{exact:!0,path:"/instant-trade/:marketID",component:ns}),s.createElement(d.AW,{path:"/pools",component:rs}),s.createElement(d.AW,{path:"*",component:jt.Z})))),s.createElement(St,{synced:this.state.synced,history:this.props.history}),s.createElement(te.Z,{ref:"tooltip",place:"top",type:"lightTheme"===n?"dark":"light",effect:"solid"}))}return s.createElement("div",{style:{backgroundColor:n?null:"#2a2a2a"},className:n},s.createElement(ge.BodyClassName,{className:n},a&&e&&!t?s.createElement(Pt,{onClickIgnore:this._onIgnoreIncognitoWarning.bind(this)}):null,s.createElement("div",{id:"content-wrapper"},c,s.createElement(Ce(),{ref:"notificationSystem",allowHTML:!0,style:{Containers:{DefaultStyle:{width:"425px"}}}}),s.createElement(Oe,null),s.createElement(R,null),s.createElement(Ma,null),s.createElement(ot,null),s.createElement(it,{visible:this.state.isBrowserSupportModalVisible,hideModal:this.hideBrowserSupportModal,showModal:this.showBrowserSupportModal}),s.createElement(Za.Z,{visible:this.state.isGatewaySelectorModalVisible,hideModal:this.hideGatewaySelectorModal}))))}}const is=(0,d.EN)(os);var ls=a(51477),cs=a(774),ds=a(49540),us=a.n(ds),ps=a(62254);const hs={enableCrypto:!0,enableOrders:!0};class ms extends s.Component{constructor(e){super(e),this.state={isModalVisible:!1},this.handleModalClose=this.handleModalClose.bind(this)}UNSAFE_componentWillReceiveProps(e){"open"===e.rpc_connection_status&&e.apiServer!==this.props.apiServer&&b.Z.showWS(e.apiServer)}handleModalClose(){this.setState({isModalVisible:!1})}triggerModal(e){this.setState({isModalVisible:!0})}onChangeWS(e){b.Z.changeSetting({setting:"apiServer",value:e}),f.Apis.reset(e,!0,4e3,hs)}onReloadClick(e){e&&e.preventDefault(),window.electron?(window.location.hash="",window.remote.getCurrentWindow().reload()):window.location.href=""}onReset(){b.Z.changeSetting({setting:"apiServer",value:this.props.defaultConnection}),b.Z.clearSettings()}render(){let e=this.props.apis.reduce(((e,t)=>(t&&t.url&&(-1!==e.findIndex((e=>e.url===t.url))||e.push(t)),e)),[]).map((e=>{let t=-1!==e.url.indexOf("fake.automatic-selection"),{location:a}=e;return a&&"object"==typeof a&&"translate"in a&&(a=k().translate(a.translate)),s.createElement(ge.Select.Option,{key:e.url,value:e.url},a||e.url," ",!t&&a?`(${e.url})`:null)}));return s.createElement("div",{className:"grid-block"},s.createElement("div",{className:"grid-container"},s.createElement("div",{className:"grid-content no-overflow"},s.createElement("br",null),s.createElement(g(),{component:"h3",content:"app_init.title"}),s.createElement(ge.Form,{layout:"vertical"},s.createElement(ge.Form.Item,{label:k().translate("settings.apiServer")},s.createElement(ge.Input.Group,{compact:!0},s.createElement(ge.Select,{style:{width:"calc(100% - 175px)"},onChange:this.onChangeWS.bind(this),value:this.props.apiServer},e),s.createElement(ge.Button,{id:"add",style:{width:"175px"},onClick:this.triggerModal.bind(this),icon:"plus"},k().translate("settings.add_api")))),s.createElement(ge.Form.Item,{label:k().translate("app_init.ws_status")},"open"===this.props.rpc_connection_status?s.createElement("span",{className:"txtlabel success"},s.createElement(g(),{content:"app_init.connected"})):s.createElement("span",{className:"txtlabel warning"},s.createElement(g(),{content:"app_init.not_connected"}))),s.createElement(ge.Button,{type:"primary",onClick:this.onReloadClick},k().translate("app_init.retry")),s.createElement(ge.Button,{style:{marginLeft:"16px"},onClick:this.onReset.bind(this)},k().translate("settings.reset"))),s.createElement(_.Z,{ref:"ws_modal",isAddNodeModalVisible:this.state.isModalVisible,onAddNodeClose:this.handleModalClose,apis:this.props.apis}))))}}const gs=(0,u.$)(ms,{listenTo:()=>[p.Z,h.Z],getProps:()=>({rpc_connection_status:p.Z.getState().rpc_connection_status,apis:h.Z.getState().defaults.apiServer,apiServer:h.Z.getState().settings.get("apiServer"),defaultConnection:h.Z.getState().defaultSettings.get("apiServer")})});var bs=a(86853);function fs(){return fs=Object.assign||function(e){for(var t=1;t19&&a.splice(0,1),s.indexOf(a[a.length-1])&&(a.push(s),this.mounted?this.setState({extendeLogText:a}):ht.setLog(a))}_enablePersistingLog(){}UNSAFE_componentWillMount(){this._enablePersistingLog(),setTimeout((()=>{this.setState({showNodeFilter:!0})}),5e3),(0,yt.Z)(!0,this._statusCallback.bind(this)).then((()=>{this.setState({apiConnected:!0,apiError:!1,syncError:null})})).catch((e=>{console.log("willTransitionTo err:",e),this.setState({apiConnected:!1,apiError:!0,syncError:e?-1!==(e&&e.message).indexOf("ChainStore sync error"):null})}))}componentDidMount(){if(this.mounted=!0,navigator.platform.indexOf("Win")>-1){var e=document.getElementById("content");-1===e.className.indexOf("windows")&&(e.className=e.className+(e.className.length?" ":"")+"windows")}}componentWillUnmount(){this.mounted=!1}_statusCallback(e){this.setState({status:e})}_onNodeFilterChange(){this.setState({nodeFilterHasChanged:!0})}_renderLoadingScreen(){let e=this.props.apiServer;return e||(e=""),s.createElement(s.Fragment,null,s.createElement(x.Z,{loadingText:this.state.status||k().translate("app_init.connecting",{server:e})},this.state.showNodeFilter&&s.createElement("div",{className:"padding"},s.createElement(bs.Z,{onChange:this._onNodeFilterChange.bind(this)}),this.state.nodeFilterHasChanged&&s.createElement("div",{style:{marginTop:"1rem"}},"Please reload for the changes to take effect"))))}render(){const{theme:e}=this.props,{apiConnected:t,apiError:a,syncError:n}=this.state;return t?s.createElement(_s,fs({},this.props,this.state)):s.createElement("div",{style:{backgroundColor:e?null:"#2a2a2a"},className:e},s.createElement("div",{id:"content-wrapper"},s.createElement("div",{className:"grid-frame vertical"},s.createElement(ge.BodyClassName,{className:e},a?n?s.createElement(E,null):s.createElement(gs,null):this._renderLoadingScreen()))))}}ws=(0,u.$)(ws,{listenTo:()=>[cs.Z,Y.Z,h.Z],getProps:()=>({locale:cs.Z.getState().currentLocale,walletMode:!h.Z.getState().settings.get("passwordLogin")||!!Y.Z.getState().current_wallet,theme:h.Z.getState().settings.get("themes"),apiServer:h.Z.getState().settings.get("activeNode","")})});const ks=ws=(0,u.V)(i.Z)(ws),vs=document.getElementById("content");n.render(s.createElement(ks,null),vs)},17315:e=>{e.exports={account_listing:{no_listing:0,white_listed:1,black_listed:2,white_and_black_listed:3}}},35922:e=>{e.exports={permission_flags:{charge_market_fee:1,white_list:2,override_authority:4,transfer_restricted:8,disable_force_settle:16,global_settle:32,disable_confidential:64,witness_fed_asset:128,committee_fed_asset:256,lock_max_supply:512,disable_new_supply:1024,disable_mcr_update:2048,disable_icr_update:4096,disable_mssr_update:8192,disable_bsrm_update:16384,disable_collateral_bidding:32768},uia_permission_mask:["charge_market_fee","white_list","override_authority","transfer_restricted","disable_confidential"],GRAPHENE_100_PERCENT:1e4,GRAPHENE_1_PERCENT:100,GRAPHENE_MAX_SHARE_SUPPLY:"1000000000000000"}},91e3:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s={MAIN_NET:"4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8",TEST_NET:"39f5e2ede1f8bc1a3a54a7914414e3779e33193f1f5693510e73cb7a87617447"}},91822:(e,t,a)=>{"use strict";a.d(t,{AQ:()=>c,ET:()=>u,TH:()=>i,d$:()=>d,zV:()=>l});var s=a(30806),n=a(60567),r=a(7581);const o=async function(){let e=(0,n.sH)();if(!e.symbol)return{};const t=[await(0,s.FetchChain)("getAsset",e.symbol)];let a={};return t.forEach((t=>{if(t)try{t=t.toJS();let s=r.Z.parseDescription(t.options.description);if(s.main&&(s=s.main.split(e.explanation),s.length>1&&s[1])){let e=JSON.parse(s[1]);a=Object.assign(a,e)}}catch(e){console.error("JSON payload could not be parsed from asset description "+t.symbol,t)}})),a},i=async function(){const e=await o();if(!e.notifications)return[];let t=[];return e.notifications.forEach((e=>{t.push(e)})),t},l=async function(){return(await o()).predictionMarketIssuers||[]},c=async function(e){const t=await o();return!!t.gateways&&!!t.gateways[e]&&!1===t.gateways[e].enabled},d=async function(e){const t=await o();return t.gateways?e?t.gateways[e]?t.gateways[e]:null:t.gateways:null},u=async function(){return await o()||{}}},49554:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(41075);const n=(0,a(19602).ZP)("__bts__"),r=class{constructor(){this.current_blocktrades_address_cache_version_string="2"}getIndexForDepositKeyInExchange(e,t,a){return[this.current_blocktrades_address_cache_version_string,e,t,a].reduce((function(e,t){return e.concat("[",t,"]")}),"")}getCachedInputAddress(e,t,a,r){let o=s.Z.getWallet();const i=this.getIndexForDepositKeyInExchange(t,a,r);if(o){o.deposit_keys=o.deposit_keys||{},o.deposit_keys[e]=o.deposit_keys[e]||{},o.deposit_keys[e][i]=o.deposit_keys[e][i]||[];let t=o.deposit_keys[e][i].length;return t?o.deposit_keys[e][i][t-1]:null}{let t=n.get("deposit_keys",{});t[e]=t[e]||{},t[e][i]=t[e][i]||[];let a=t[e][i].length;return a?t[e][i][a-1]:null}}cacheInputAddress(e,t,a,r,o,i){if(!o)return;let l=s.Z.getWallet();const c=this.getIndexForDepositKeyInExchange(t,a,r);if(l)l.deposit_keys&&l.deposit_keys.undefined&&delete l.deposit_keys.undefined,Object.keys(l.deposit_keys||{}).forEach((e=>{for(let t in l.deposit_keys[e])if(l.deposit_keys[e][t]&&l.deposit_keys[e][t].length)for(let a=l.deposit_keys[e][t].length-1;a>=0;a--)l.deposit_keys[e][t][a]&&"unknown"===l.deposit_keys[e][t][a].address&&l.deposit_keys[e][t].splice(a,1)})),l.deposit_keys=l.deposit_keys||{},l.deposit_keys[e]=l.deposit_keys[e]||{},l.deposit_keys[e][c]=l.deposit_keys[e][c]||[],l.deposit_keys[e][c].push({address:o,memo:i}),s.Z._updateWallet();else{let t=n.get("deposit_keys",{});t[e]=t[e]||{},t[e][c]=t[e][c]||[],t[e][c].push({address:o,memo:i}),n.set("deposit_keys",t)}}}},74366:(e,t,a)=>{"use strict";a.d(t,{DI:()=>f,F6:()=>u,Gy:()=>h,Pz:()=>i,aN:()=>g,ad:()=>d,eN:()=>p,l4:()=>m,tA:()=>c,te:()=>b,xR:()=>l});var s=a(13973),n=a(44431);function r(e,t=8){if("number"!=typeof t)throw new Error("Input must be a number");let a=e.toString(),s=a.split(".");return 1===s.length||2===s.length&&s[1].length<=t?parseFloat(a):parseFloat(s[0]+"."+s[1].substr(0,t))}function o(e){if("number"!=typeof e)throw new Error("Input must be a number");return Math.pow(10,e)}function i(e,t){let a=t&&t.size!==e.size;return a||(e.forEach(((e,s)=>{let n=t.get(s);n?e.market_base===n.market_base&&(a=a||e.ne(n)):a=!0})),a)}class l{constructor({asset_id:e="1.3.0",amount:t=0,precision:a=5,real:s=null}={}){this.satoshi=o(a),this.asset_id=e,this.setAmount({sats:t,real:s}),this.precision=a}hasAmount(){return this.amount>0}toSats(e=1){return Math.round(e*this.satoshi)}setAmount({sats:e,real:t}){if("string"==typeof e&&(e=parseInt(e,10)),"string"==typeof t&&(t=parseFloat(t)),"number"!=typeof e&&"number"!=typeof t)throw new Error("Invalid arguments for setAmount");if("number"==typeof t)this.amount=this.toSats(t),this._clearCache();else{if("number"!=typeof e)throw new Error("Invalid setAmount input");this.amount=Math.floor(e),this._clearCache()}}_clearCache(){this._real_amount=null}getAmount({real:e=!1}={}){return e?this._real_amount?this._real_amount:this._real_amount=r(this.amount/this.toSats(),this.precision):Math.floor(this.amount)}plus(e){if(e.asset_id!==this.asset_id)throw new Error("Assets are not the same type");this.amount+=e.amount,this._clearCache()}minus(e){if(e.asset_id!==this.asset_id)throw new Error("Assets are not the same type");this.amount-=e.amount,this.amount=Math.max(0,this.amount),this._clearCache()}equals(e){return this.asset_id===e.asset_id&&this.getAmount()===e.getAmount()}ne(e){return!this.equals(e)}gt(e){return this.getAmount()>e.getAmount()}lt(e){return this.getAmount()1e5&&(e=r(e,5));let s=new n.BigNumber(e.toString()).toFraction(),o=t.toSats(),i=a.toSats(),l=o/i,c=i/o;o>=i?c=1:l=1,t.setAmount({sats:s[0]*l}),a.setAmount({sats:s[1]*c})}else 0===e&&(t.setAmount({sats:0}),a.setAmount({sats:0}))}getUnits(){return this.base.asset_id+"_"+this.quote.asset_id}isValid(){return 0!==this.base.amount&&0!==this.quote.amount&&!isNaN(this.toReal())&&isFinite(this.toReal())}toReal(e=!1){const t=e?"_samebase_real":"_not_samebase_real";if(this[t])return this[t];let a=e?this.quote.amount*this.base.toSats()/(this.base.amount*this.quote.toSats()):this.base.amount*this.quote.toSats()/(this.quote.amount*this.base.toSats());return this[t]=parseFloat(a.toFixed(8))}invert(){return new c({base:this.quote,quote:this.base})}clone(e=null){return new c({base:this.base,quote:this.quote,real:e})}equals(e){return this.base.asset_id===e.base.asset_id&&this.quote.asset_id===e.quote.asset_id&&e.quote.amount*this.base.amount==this.quote.amount*e.base.amount}lt(e){if(this.base.asset_id!==e.base.asset_id||this.quote.asset_id!==e.quote.asset_id)throw new Error("Cannot compare prices for different assets");return e.quote.amount*this.base.amountnull}}clone(e=this.feed_price){return new h(this.order,this.assets,this.market_base,e,this.mcr)}setFeed(e){this.feed_price=e,this._clearCache()}getPrice(e=!0,t=this.call_price){return e?this.getSqueezePrice():this._real_price?this._real_price:this._real_price=t.toReal(t.base.asset_id===this.market_base)}getFeedPrice(e=this.feed_price){return this._feed_price?this._feed_price:this._feed_price=e.toReal(e.base.asset_id===this.market_base)}getSqueezePrice(e=this.feed_price){return this._squeeze_price?this._squeeze_price:this._squeeze_price=e.getSqueezePrice().toReal()}isMarginCalled(){return!this.is_prediction_market&&(this.isBid()?this.call_price.lt(this.feed_price):this.call_price.gt(this.feed_price))}isBid(){return!this.inverted}isCall(){return!0}sellPrice(e=!0){return e?this.isBid()?this.feed_price.getSqueezePrice():this.feed_price.getSqueezePrice().invert():this.call_price}getCollateral(){return this._collateral?this._collateral:this._collateral=new l({amount:this.collateral,asset_id:this.collateral_id,precision:this.assets[this.collateral_id].precision})}_getMaxCollateralToSell(){if(this.target_collateral_ratio&&this.getRatio(){"use strict";a.d(t,{Z:()=>p});var s=a(30806),n=a(13973),r=a(112),o=a.n(r),i=a(81237);const l=["polonie-wallet","1.2.27842","polonie-xwallet","1.2.27850","poloniewallet","1.2.20873","poloniex-deposit","1.2.25426","poloniex-wallet","1.2.20821","poloniexwall-et","1.2.28079","poloniexwallett","1.2.28188","poloniexwall-t","1.2.28072","poloniexwalle","1.2.20580","poloniexwallet-coinfarm","1.2.1822973","poloniex","1.2.2340","poloneix","1.2.24900","poloniexeos1","1.2.1049362"],c=["bittrex-deopsit","1.2.34361","bittrex-deposi","1.2.23638","bittrex-depositt","1.2.23640","bittrex-dposit","1.2.32594","bittrex","1.2.2343","bittrex-deposits","1.2.161093","bittrexacct1","1.2.1649570"],d=["aaex-bitcny-deposit-wallet","1.2.492535","aacoin","1.2.1005892","abucoins","1.2.463335","acinq","1.2.878058","aex-bitcny-deposit","1.2.455052","aex-bitcny-dopesit-wallet","1.2.1795613","aex-bts-deposit-walle","1.2.454205","aex-cnc-cza","1.2.878029","aex88","1.2.831039","aexdepositbm","1.2.1031653","aida","1.2.539184","aidosmarket","1.2.787065","allah-iraq","1.2.979541","aliant","1.2.878061","alta","1.2.878079","altcointrader","1.2.787049","antpool","1.2.524132","aporoo","1.2.1018792","apus","1.2.999997","arcbit","1.2.465096","archive","1.2.786888","armory","1.2.465097","ate-io-bts","1.2.730842","atoken","1.2.599845","azex","1.2.986608","b2bx","1.2.897119","bancor.network","1.2.781941","barterdex","1.2.787093","baseline","1.2.599803","bbex","1.2.484215","bbts001","1.2.815730","bc1q","1.2.791043","bcoin","1.2.1029906","bcos","1.2.446259","beechat","1.2.599849","bepal","1.2.605394","bft-dpos","1.2.1026134","bgogo","1.2.1007568","bhex","1.2.1030020","bibox.com","1.2.621440","bigbag","1.2.789783","bigether","1.2.694013","bigether.vip","1.2.694015","bilaxy","1.2.1023782","binance-btc-1","1.2.467525","binance-bts-05","1.2.1823010","binance-bts-1-05","1.2.1823008","binance-bts-1-accumulation","1.2.1823002","binance-bts-1-action","1.2.1822863","binance-bts-1-actions","1.2.1822892","binance-bts-1-actlon","1.2.1822953","binance-bts-1-ad","1.2.1823057","binance-bts-1-adstrategy","1.2.1823066","binance-bts-1-advance","1.2.1823056","binance-bts-1-advancement","1.2.1823060","binance-bts-1-airdrop","1.2.1822868","binance-bts-1-allocation","1.2.1822817","binance-bts-1-attraction","1.2.1823054","binance-bts-1-award","1.2.1822754","binance-bts-1-awards","1.2.1822862","binance-bts-1-benefit","1.2.1822747","binance-bts-1-benefits","1.2.1822758","binance-bts-1-bid","1.2.1823029","binance-bts-1-binance","1.2.1822929","binance-bts-1-bitshares","1.2.1822844","binance-bts-1-block","1.2.1823047","binance-bts-1-blockaward","1.2.1823045","binance-bts-1-blockawards","1.2.1823046","binance-bts-1-blockreward","1.2.1823043","binance-bts-1-blockrewards","1.2.1823044","binance-bts-1-bonus","1.2.1822608","binance-bts-1-bonus-pool","1.2.1822736","binance-bts-1-bonus2023","1.2.1822639","binance-bts-1-boun","1.2.1822970","binance-bts-1-bounti","1.2.1822968","binance-bts-1-bounty","1.2.1822777","binance-bts-1-box","1.2.1822921","binance-bts-1-boyntu","1.2.1822962","binance-bts-1-bridge-huobi-pro","1.2.1822965","binance-bts-1-bridge-mxccom","1.2.1822989","binance-bts-1-cap","1.2.1823062","binance-bts-1-capital","1.2.1823064","binance-bts-1-capitalization","1.2.1823063","binance-bts-1-cash","1.2.1822906","binance-bts-1-cashback","1.2.1822812","binance-bts-1-coin","1.2.1822933","binance-bts-1-convert","1.2.1822927","binance-bts-1-crowdfunding","1.2.1823049","binance-bts-1-crowdsale","1.2.1823050","binance-bts-1-crowdsourcing","1.2.1823051","binance-bts-1-deal","1.2.1822964","binance-bts-1-debet","1.2.1823037","binance-bts-1-dick","1.2.1822731","binance-bts-1-distribution","1.2.1822864","binance-bts-1-drop","1.2.1822732","binance-bts-1-equity","1.2.1823036","binance-bts-1-farm","1.2.1822828","binance-bts-1-farming","1.2.1823000","binance-bts-1-fork","1.2.1823027","binance-bts-1-freein","1.2.1822999","binance-bts-1-funding","1.2.1823048","binance-bts-1-get","1.2.1822788","binance-bts-1-gift","1.2.1822723","binance-bts-1-gift-05","1.2.1822984","binance-bts-1-giveaway","1.2.1822749","binance-bts-1-gold","1.2.1822786","binance-bts-1-hardcap","1.2.1823030","binance-bts-1-hardfork","1.2.1823028","binance-bts-1-ico","1.2.1822998","binance-bts-1-ido","1.2.1822997","binance-bts-1-in","1.2.1823007","binance-bts-1-ipo","1.2.1823031","binance-bts-1-instamine","1.2.1822870","binance-bts-1-liquidity","1.2.1822915","binance-bts-1-listing","1.2.1822725","binance-bts-1-mainnet","1.2.1822937","binance-bts-1-marketing","1.2.1823065","binance-bts-1-mev","1.2.1823033","binance-bts-1-mine","1.2.1823003","binance-bts-1-minepool","1.2.1823039","binance-bts-1-miningpos","1.2.1823071","binance-bts-1-miningpow","1.2.1823072","binance-bts-1-mint","1.2.1822957","binance-bts-1-money","1.2.1822795","binance-bts-1-newblock","1.2.1823042","binance-bts-1-node-reward","1.2.1822742","binance-bts-1-node","1.2.1823041","binance-bts-1-nodes","1.2.1823005","binance-bts-1-partnership","1.2.1823004","binance-bts-1-pool","1.2.1823038","binance-bts-1-pos","1.2.1823035","binance-bts-1-posmining","1.2.1823070","binance-bts-1-pow","1.2.1823034","binance-bts-1-powmining","1.2.1823068","binance-bts-1-premined","1.2.1823006","binance-bts-1-premium","1.2.1822975","binance-bts-1-prize","1.2.1822797","binance-bts-1-prizes","1.2.1822806","binance-bts-1-prime","1.2.1823015","binance-bts-1-pro","1.2.1822794","binance-bts-1-profit","1.2.1822813","binance-bts-1-prom","1.2.1822898","binance-bts-1-promaction","1.2.1822972","binance-bts-1-promo","1.2.1822663","binance-bts-1-promo-05","1.2.1822955","binance-bts-1-promo-1","1.2.1822958","binance-bts-1-promo-code","1.2.1822793","binance-bts-1-promo-rewards","1.2.1822718","binance-bts-1-promoaction","1.2.1822866","binance-bts-1-promocode","1.2.1822692","binance-bts-1-promoloot","1.2.1822948","binance-bts-1-promop2p","1.2.1822936","binance-bts-1-promotion","1.2.1822781","binance-bts-1-promotion-1","1.2.1822896","binance-bts-1-promotion-code","1.2.1822727","binance-bts-1-promotions","1.2.1822894","binance-bts-1-promousd","1.2.1822994","binance-bts-1-public","1.2.1823040","binance-bts-1-receive","1.2.1822768","binance-bts-1-referal","1.2.1822772","binance-bts-1-referral-bonus","1.2.1822769","binance-bts-1-return","1.2.1822939","binance-bts-1-reward","1.2.1822719","binance-bts-1-rewarding","1.2.1822798","binance-bts-1-rewards","1.2.1822712","binance-bts-1-rewards-pool","1.2.1822743","binance-bts-1-rewards-promo","1.2.1822722","binance-bts-1-rise","1.2.1823061","binance-bts-1-send","1.2.1822847","binance-bts-1-sourcing","1.2.1823053","binance-bts-1-spread","1.2.1823001","binance-bts-1-staking","1.2.1823067","binance-bts-1-start","1.2.1822931","binance-bts-1-stmb","1.2.1822842","binance-bts-1-strides","1.2.1823059","binance-bts-1-temka","1.2.1822792","binance-bts-1-test","1.2.1822701","binance-bts-1-testnet","1.2.1822935","binance-bts-1-testnet-1","1.2.1822996","binance-bts-1-trust","1.2.1823026","binance-bts-1-vip","1.2.1822871","binance-bts-1-volumeup","1.2.1823055","binance-bts-1-wallet","1.2.1822945","binance-bts-1-wallet1","1.2.1822960","binance-bts-1-wheelet","1.2.1822903","binance-bts-152","1.2.1822837","binance-bts-2-promoname","1.2.1822710","binance-bts-bonus-1","1.2.1822708","binance-bts-bonus-2","1.2.1822633","binance-bts-i","1.2.467527","binance-bts-l","1.2.467526","binance-bts-promo","1.2.1822780","binancecleos","1.2.1017616","binance-nbs-02","1.2.1792577","binanse-bts-1-premium","1.2.1823020","bishengtopex","1.2.1029188","bisq","1.2.787078","bisq.network","1.2.787079","bit-shares-1-promo","1.2.1822787","bitarg","1.2.878042","bitasiaex","1.2.878018","bitbill","1.2.524063","bitbill.app","1.2.1000037","bitbns","1.2.782094","bitcoinindonesi","1.2.609628","bitcointrade","1.2.781957","bitfinexdep1","1.2.1019320","bitflip","1.2.787068","bitflyer.com","1.2.901469","bithd","1.2.745701","bitholic","1.2.787035","bitinka","1.2.781928","bitkk","1.2.878012","bitkkchubei00","1.2.815733","bitkkchubei001","1.2.815732","bitkkchubei02","1.2.815734","bitkonan","1.2.787113","bitkop","1.2.962262","bitmaszyna","1.2.787101","bitoex","1.2.599690","bitonic","1.2.781953","bitopro","1.2.885538","bitpaction","1.2.878571","bitpal","1.2.599671","bitpesa","1.2.742633","bitpie","1.2.465092","bitrefill","1.2.878076","bits.farm","1.2.749087","bitsblockchain","1.2.781926","bitsfarm","1.2.749090","bitshares-app","1.2.1000006","bitshares.app","1.2.1000008","bitspark-hold","1.2.1032019","bitun","1.2.782084","bitupro","1.2.878037","bitvip.com","1.2.599832","bjex","1.2.540676","bkex","1.2.988882","blind","1.2.745696","blind-transfer","1.2.745698","blocktrade","1.2.161090","bloex","1.2.1030028","blox","1.2.940022","bonus-event-in-end-of-years-2018","1.2.1208797","bsend001","1.2.815731","btc-alpha.com","1.2.781944","btc.eos","1.2.659986","btc38.com","1.2.92089","btcalph","1.2.878023","btcmarkets.net","1.2.781936","btcxindia","1.2.782095","btex","1.2.1026071","bts.app","1.2.1000010","bts.eos","1.2.659985","btsalpha","1.2.878025","btsid","1.2.599680","btsmoney","1.2.32810","burstnation","1.2.787122","buyucoin","1.2.812978","buyucoin-walle","1.2.812979","bybit-promo","1.2.1822938","c-patex","1.2.787114","cash-in-cash-out","1.2.1822916","cashaddr","1.2.791045","cashierest","1.2.878112","cetus","1.2.1000009","cex.com","1.2.599797","chaince","1.2.939977","chaince.com","1.2.939982","chainceoneos","1.2.1020153","changelly","1.2.599892","changenow","1.2.620292","chaoex.com","1.2.599812","cionex-deposit","1.2.1822954","citcon","1.2.878074","cobo","1.2.742630","cobowalletcn","1.2.1026084","cobowalletio","1.2.1026083","cohescure","1.2.705164","coin.space","1.2.599877","coin2co","1.2.1026070","coin900","1.2.557720","coin900.com","1.2.620298","coinbase","1.2.709","coinbase.com","1.2.92130","coinbe","1.2.787120","coinbell","1.2.782088","coinbene","1.2.465091","coinbig","1.2.707653","coinbig.com","1.2.707655","coincode","1.2.599683","coincoming","1.2.620294","coineal","1.2.999276","coinegg.main","1.2.447093","coinex","1.2.467667","coinex.com","1.2.553120","coinexchange","1.2.463328","coinexmarket","1.2.897140","coinfloorex","1.2.812983","coingeto","1.2.878077","coinhouse","1.2.787106","coinhub","1.2.897122","coinlink","1.2.787076","coinmate","1.2.463339","coinoah","1.2.940511","coinoah.com","1.2.940514","coinpark","1.2.999275","coinrail","1.2.781937","coinsave","1.2.999292","coinstocks","1.2.745645","cointiger-deposit-bts","1.2.1029192","cointiger-deposit-bts0","1.2.1029193","cointiger-deposit-bts1","1.2.1029194","cointobe","1.2.599669","cointome","1.2.693998","cointopay","1.2.742639","coinut","1.2.463336","coinut.com","1.2.781955","coinw","1.2.462799","coinw.com","1.2.599798","coinyee","1.2.878013","coldlar","1.2.465101","committee","1.2.599999","committee-101","1.2.999719","committee-102","1.2.999727","committee-103","1.2.999720","committee-104","1.2.999724","committee-105","1.2.999722","committee-106","1.2.999721","committee-107","1.2.999723","committee-108","1.2.999725","committee-109","1.2.999728","committee-110","1.2.999726","committee-accou","1.2.999694","committee-accoun","1.2.807841","committee-accounr","1.2.500266","committee-cnytrade","1.2.999697","committee-usdoperato","1.2.999696","committe-security","1.2.1273199","contractland","1.2.878062","counterwallet","1.2.787112","crux","1.2.999998","cryptobridg","1.2.614370","cryptobridge-payout","1.2.745721","cryptoderivatives","1.2.787129","cryptoderivatives.market","1.2.787130","cryptomkt","1.2.787095","cryptomkt.com","1.2.787094","crypton","1.2.1026067","cryptonize","1.2.999284","crypviser","1.2.1026359","ctpmall","1.2.599726","cx-bitcny-deposit-wallet","1.2.827934","cx-bitcny-withdraw-wallet","1.2.827938","cx-bts-deposit-wallet","1.2.827946","cx-bts-withdraw-wallet","1.2.827943","daex","1.2.792704","dax-deposit","1.2.970985","dax-exchange","1.2.970987","dax-mn","1.2.970989","dax-withdraw","1.2.970993","ddex","1.2.599757","decred","1.2.742642","dewone","1.2.749261","dex.top","1.2.962058","dexko","1.2.694029","dgtmarket","1.2.787107","diceex","1.2.999511","diceex-bit","1.2.999518","diceex-bitcn","1.2.999513","diceex-bitusd","1.2.999517","diceex-btc","1.2.999514","diceex-cny","1.2.999516","dig-exchange","1.2.795378","digifinex","1.2.878066","digitaex","1.2.693969","door.one","1.2.620671","dragonex","1.2.599785","eclair","1.2.878057","ecoex-bts-1","1.2.990386","eidoo","1.2.782093","eip-20","1.2.658953","eip20","1.2.658949","electrum","1.2.465095","eligma","1.2.878056","entapay","1.2.787075","enumivo","1.2.898598","eos.btc","1.2.659984","eos.bts","1.2.659983","eosdac","1.2.878054","eosfinix","1.2.742627","erc-20","1.2.611002","erc-721","1.2.611005","erc721","1.2.611000","etherflyer","1.2.749253","etherflyer.com","1.2.749255","ethfinex","1.2.781930","ewex","1.2.999306","excambriorex","1.2.787124","exnow","1.2.1006068","expie","1.2.658199","expie.com","1.2.658200","exvo","1.2.878032","exx.com","1.2.599826","exxbtc001","1.2.815746","exxbts00","1.2.815718","exxbts01","1.2.815719","exxsend00","1.2.815720","exxsend01","1.2.815723","ezbtc","1.2.787057","fargobase","1.2.463337","fhex","1.2.1030027","firefoxotc","1.2.812985","forkdelta","1.2.766759","freiexchange","1.2.787118","gate-io-b","1.2.743303","gate-io-bit66","1.2.1830464","gate-io-bls66","1.2.1830501","gate-io-bst66","1.2.1829993","gate-io-bsts66","1.2.1830424","gate-io-bt","1.2.730841","gate-io-bt66","1.2.1830065","gate-io-btc","1.2.730836","gate-io-btx66","1.2.1830066","gateio","1.2.797076","gateiowallet","1.2.1020027","gatie-io-bts66","1.2.1830458","gcox","1.2.789782","gdexioforeos","1.2.1031969","geos","1.2.940146","geta-io-bts","1.2.730843","geth","1.2.599793","ggex","1.2.999285","glidera","1.2.878068","greenaddress","1.2.599879","greenbits","1.2.599875","grus","1.2.999999","guldentrader","1.2.787126","hackers","1.2.21846","hadax","1.2.705160","hadax.com","1.2.705162","hbus","1.2.1026050","hcoin","1.2.1018787","heatwallet","1.2.787111","heatwallet.com","1.2.787109","heztanrqgene","1.2.1020148","hitbtc-exchang","1.2.984724","hitbtc.exchange","1.2.984983","hotbit","1.2.643056","huobi-bts-deposi","1.2.852510","huobi-deposi","1.2.852506","huobideposit","1.2.1019310","huobipro","1.2.764427","iceex-bitcny","1.2.999519","ico-china","1.2.705561","icoape","1.2.706057","icoape.com","1.2.706060","idax","1.2.787045","idax-deposi","1.2.970984","idax-exchang","1.2.970986","idax-nm","1.2.970988","idax-withdra","1.2.970991","idax.deposit","1.2.970994","idax.exchange","1.2.970995","idax.withdraw","1.2.970997","idex","1.2.749252","idex.market","1.2.749251","idle","1.2.900001","ifish","1.2.800510","independentreserve","1.2.781950","indodax","1.2.878015","indus","1.2.1000007","infinitycoin","1.2.787092","infinitycoin.exchange","1.2.787091","iquant","1.2.787044","issuer","1.2.424070","itbtc-exchange","1.2.984791","jaxx","1.2.524055","jrex","1.2.1030022","kairex","1.2.878049","kcash","1.2.562936","keepkey","1.2.599863","kkcoin","1.2.519919","kkcoin.wallet","1.2.519960","kkcoinwallet","1.2.519959","koineks.com","1.2.781952","koinim.com","1.2.781958","krakenkraken","1.2.1020138","kucoin","1.2.463330","kucoindoteos","1.2.1084351","lakebtc","1.2.463326","lakebtc.com","1.2.781938","latoken","1.2.897147","lbank.info","1.2.621443","leoxchange","1.2.787121","licai.deposit","1.2.675961","liteforex","1.2.782098","litepay","1.2.742614","liteshares","1.2.899346","livecoi-net","1.2.183860","livecoin.net","1.2.322811","livecoinnet","1.2.322812","llex","1.2.999290","locktrades","1.2.161091","loois","1.2.999301","loom","1.2.897934","ls123","1.2.394942","luckygame","1.2.971018","luckygames","1.2.971013","luckygames-i","1.2.971014","lupus","1.2.1000005","lykke.com","1.2.787036","lyra","1.2.1000000","mai1100","1.2.158598","mark.space","1.2.897148","meet-up","1.2.999282","meet.one","1.2.782091","meetup","1.2.999280","memo.cash","1.2.878020","mensa","1.2.1000004","mercadobitcoin","1.2.781951","metamask","1.2.963272","mexc","1.2.924294","mmex","1.2.999287","more.top","1.2.782089","morphtoken","1.2.878065","msigna","1.2.465098","mxccom-bridge-binance-bts-1","1.2.1822990","mycelium","1.2.599873","mycrypto","1.2.742624","mydicewallet","1.2.787099","mydicewallet.com","1.2.787096","myetherwallet","1.2.599843","mywallet-1023","1.2.999689","n0stradumpus","1.2.435299","nanex","1.2.897150","negociecoins","1.2.897142","neraex","1.2.463333","neraex.pro","1.2.781933","nevbit","1.2.463340","new.one","1.2.782090","nicehash","1.2.812986","nix-e","1.2.787123","nocks","1.2.787070","oasisdex","1.2.787061","obit-wallet","1.2.800539","octaex","1.2.897139","ocx-bitcny-deposit-walle","1.2.827932","ocx-bitcny-withdraw-walle","1.2.827937","ocx-bts-deposit-walle","1.2.827945","ocx-bts-withdraw-walle","1.2.827942","oex.com","1.2.694035","ointiger-deposit-bts01","1.2.1029195","ojbk","1.2.878030","okbtothemoon","1.2.1029923","okcoinkr","1.2.854387","omicrex","1.2.897131","ommittee-account","1.2.999695","omniexplorer","1.2.787128","omniexplorer.info","1.2.787127","onchainfx","1.2.742618","onchainfx.com","1.2.742621","ooex","1.2.1026069","ooobtc","1.2.897124","openledger-support","1.2.153124","otcbtc","1.2.599673","otcbtcdotcom","1.2.1020116","otcbtcdotnet","1.2.1028053","otcwallet","1.2.1029165","otcx","1.2.492286","ourdax","1.2.599817","ovis","1.2.897135","p2pbucks","1.2.766633","palmpay","1.2.745458","paradex","1.2.962048","pavo","1.2.1000001","pay.bts.com","1.2.92203","pay.coinbase.com","1.2.92185","paymium","1.2.787072","pieotc","1.2.878047","pinocaitoken","1.2.1026118","pocketeos","1.2.1026453","poim","1.2.475488","pomelo","1.2.965566","protokenbank","1.2.1026086","pxn-eos","1.2.1028325","pxn-incom","1.2.1026076","pxn.eos","1.2.1028326","pxn.one","1.2.999512","pxneos","1.2.1028324","pxneos-income","1.2.1028328","pxneosincome","1.2.1028322","pxnincome","1.2.1026079","pyxis","1.2.1000003","qbao","1.2.650495","qcash","1.2.473774","qlink","1.2.878073","qtum-electrum","1.2.761861","quadrigacx","1.2.463332","rabobit","1.2.782096","radarrelay","1.2.787081","radarrelay.com","1.2.787080","ranswiser-wallet","1.2.161364","referrer","1.2.745704","renrenbit","1.2.999291","richcore","1.2.688600","richcore.com","1.2.688621","rippex","1.2.787117","ripple.com","1.2.92097","ripplechina.net","1.2.787054","ripplefox","1.2.787038","rootoken","1.2.742632","rrex","1.2.999289","rudexgateway","1.2.1031975","safewallet","1.2.693983","secp256k1","1.2.539247","sendy","1.2.878072","simex.global","1.2.781934","sistemkoin","1.2.897127","spectrocoin","1.2.898120","stealth","1.2.745699","stellarterm","1.2.787039","stellarterm.com","1.2.787040","stex","1.2.749264","stex.exchange","1.2.749263","stronghold","1.2.781945","superleague1","1.2.1026458","support-team","1.2.1265329","swft.pro","1.2.940110","swftc","1.2.533080","swftcoin","1.2.533082","tcalpha","1.2.878024","tcash","1.2.749256","tdax","1.2.693995","tdax.com","1.2.693996","tdex","1.2.1002884","therocktrading","1.2.787052","therocktrading.com","1.2.787051","thinkbit","1.2.1007570","tidebit","1.2.787053","token.store","1.2.787056","token360","1.2.999298","token365","1.2.999295","tokenlon","1.2.878033","tokenxx","1.2.754276","top.one","1.2.599746","topbtc","1.2.463334","topbtc.com","1.2.781935","toshi","1.2.878046","tradebytrade","1.2.781947","tradebytrade.com","1.2.781946","tradeogre","1.2.787088","tradesatoshi.com","1.2.787041","transwiser-walle","1.2.161362","transwiser-wallets","1.2.161363","truecoin","1.2.800533","trueusd","1.2.791378","trusty.fund","1.2.878014","tusd","1.2.800535","tuxexchange","1.2.787103","tuxexchange.com","1.2.787102","u-coin","1.2.494585","uckygames-io","1.2.971015","unblock","1.2.878069","uncoinex","1.2.475307","unicode","1.2.800540","uniex","1.2.1007569","uobi-bts-deposit","1.2.852511","uobi-deposit","1.2.852508","upbitwallets","1.2.1020123","usadae","1.2.887944","usadae.com","1.2.887947","usdc","1.2.929449","utxo","1.2.878026","uuex","1.2.1026068","uyucoin-wallet","1.2.812980","vebitcoin","1.2.781940","vela","1.2.1000002","virtacoinworld","1.2.787131","vuniyuoxoeub","1.2.1026794","vvbtc","1.2.959755","walletdunamu","1.2.1020156","wazirx","1.2.742650","wetez","1.2.1026072","winex.pro","1.2.599675","wirex","1.2.599807","www.binance.com","1.2.553014","www.coinex.com","1.2.553121","www.hadax.com","1.2.705161","www.usadae.com","1.2.887949","www.yyex.com","1.2.731038","www.zhaobi.com","1.2.675956","xbrick","1.2.458197","xbrick.btc","1.2.459690","xbrick.cny","1.2.459688","xbrick.usd","1.2.459689","xbtce","1.2.463329","xdaex","1.2.1026062","xdag","1.2.999278","xn-income","1.2.1026077","xxbts001","1.2.815729","xxsend001","1.2.815727","yex.com","1.2.734592","yhex","1.2.1030023","yobit-wall","1.2.800538","yobit-walle","1.2.800536","yobtc","1.2.599688","yun.bts","1.2.161529","yunbi.com","1.2.92101","yuxiao","1.2.1031166","yyex","1.2.731035","yyex.com","1.2.731037","z-201","1.2.1025474","zbbtc","1.2.442315","zbbtc001","1.2.815745","zbbts00","1.2.815716","zbbts01","1.2.815717","zbeoscharge1","1.2.1019012","zbsen","1.2.745722","zbsend00","1.2.815712","zbsend01","1.2.815714","zecoex","1.2.990383","zecoex-btc","1.2.990385","zecoex-bts","1.2.990384","zeniex","1.2.681261","zhaobi","1.2.599681","zhaobi.com","1.2.675955","zhex","1.2.1030026","zilla","1.2.878051","openledger-gex","1.2.1540900","enter","1.2.12300","hi","1.2.707","bts","1.2.383","eos-bounties","1.2.1055529","jobs001","1.2.1147979","noble-group","1.2.997905","my-change","1.2.637403","openledger-upgrade","1.2.1544053","cryptobridge-upgrade","1.2.1570095","aex-bts-deposite-wallet","1.2.1586667","gdex-security","1.2.1568938","escrow-pannf","1.2.1586672","openledger-security","1.2.1547751","openlegder-dex","1.2.1566849","committee-collateral","1.2.1607515","toolate1488","1.2.486728","beos-upgrade","1.2.1600697","cryptobridge-guarantee","1.2.1602050","construction-rates","1.2.184377","committee-update","1.2.1600131","committee-securuti","1.2.1544160","committee-seccurity","1.2.1546307","committee-proposalss","1.2.1559233","committee-account-update","1.2.1589838","committee-security-update","1.2.1592605","committee-delegate","1.2.1621188","binance-witness","1.2.1700190","binanace-bts-0103","1.2.1828105","binanace-bts-1","1.2.1593437","zbbs001","1.2.886790","zbbt001","1.2.886122","huibi-pro","1.2.852941","hubi-pro","1.2.852641","hubio-pro","1.2.1829791","bts-binance-1","1.2.1037039","binance-bts1","1.2.467722","collateral-update","1.2.1623407","bue","1.2.18513","openledger-safety","1.2.1682058","gdex-wallet-security","1.2.1691946","bridge-security","1.2.1691907","criptobridge-security","1.2.1691905","rudex-upgrade","1.2.1682487","openledger-guarantee","1.2.1602048","bitshares-guarantee","1.2.1655608","huilao000","1.2.1640223","china-cash","1.2.673914","cryptobridge-security","1.2.1574325","nextt0","1.2.1588395","putler666","1.2.1589085","bankofamerica1488","1.2.649072","ooops0","1.2.1602141","ikarus2","1.2.671426","toolate6238","1.2.486167","huibao000","1.2.1615149","tkyjpn0109","1.2.1606009","rz120","1.2.1045915","demon2443","1.2.1653463","bit-token","1.2.777552","jk700","1.2.284217","mnstr","1.2.875801","hltbb","1.2.867020","mitu-kine","1.2.622294","tanhayir666","1.2.1588321","porro777","1.2.1601740","poroh777","1.2.1597967","clgc1972","1.2.897040","memet92","1.2.732890","rich4231","1.2.1574048","kbak19","1.2.183440","prvtrl","1.2.1059156","cement-wallet","1.2.739132","hui-lusha","1.2.690318","bot-ho-bot","1.2.809180","drugtvoejmami888","1.2.661618","china-na","1.2.641953","update-wallet","1.2.1621516","acrll-confirm","1.2.1677131","postup5","1.2.567061","wallet-upgrade","1.2.1638214","bit-daozhi","1.2.1605117","openledger-dex.com","1.2.1670833","openledger-secure","1.2.1640825","chen-woo","1.2.1641140","cryptobridge-confirm","1.2.1634946","get-free-btc","1.2.1593095","chey-woochey","1.2.1638351","p0202p","1.2.1638431","jd84053589","1.2.432753","yanlee-che","1.2.1593044","tele-gram","1.2.659614","cryptobridge-withdraw","1.2.1571944","khalil84","1.2.1080837","n8wmajor","1.2.1081311","aj357911","1.2.788421","supercoiner-666","1.2.1298993","stepcoin-wallet","1.2.688768","cryptobridge-update","1.2.1589426","china-capuchina","1.2.630495","zbbttss001","1.2.1588916","security-upgrade","1.2.1640943","mind-alkemist","1.2.381456","norbitz1510","1.2.104355","mrk86","1.2.1211789","hbscc","1.2.270441","pnc1","1.2.93052","arnaud2","1.2.529684","hack-tiras","1.2.985746","derek-molden","1.2.983604","alvinauh86","1.2.635321","argo9north9","1.2.706723","gjf-1","1.2.857833","ydnah2","1.2.1096704","driss19999","1.2.913826","oyxm","1.2.20177","thunder-thor","1.2.1575892","btc-profit","1.2.962295","neffos14","1.2.1602008","neffos1488","1.2.1601731","ardis-29","1.2.1591593","tigriri909","1.2.96396","eror404","1.2.155124","toolate111","1.2.977735","mcavoy5","1.2.452330","laniakea-corp","1.2.491952","openledger.com-wallet","1.2.1680581","clockwork-delegate","1.2.1653886","gdex-delegate","1.2.1697884","cni-hotwallet.update","1.2.1674304","abit.committee-delegate","1.2.1676892","p3732551","1.2.397891","witness-blockchain","1.2.1702664","esrcow-67zgh","1.2.1795658","esrcow-panff","1.2.1795683","escrow-fgj7a","1.2.1795566","yykuxxu830905","1.2.1797839","aex-bitcny-depousit-wallet","1.2.1804412","aex-bts-depocit-wallet","1.2.1799880","aex-bts-depoesit-wallet","1.2.1803769","aex-bts-deposit-wellat","1.2.1799240","aex-bts-deposite-walet","1.2.1795541","aex-bts-depositt-wallet","1.2.1801028","aex-bts-dopesit-wallet","1.2.1795663","aex-bts-withbrawal-wallet","1.2.1806311","banince-bts-0103","1.2.1829441","beinance-bts-1","1.2.1805855","benence-bts-1","1.2.1807831","bianance-bts-0103","1.2.1829606","bianance-bts-1","1.2.1801625","bicance-bts-1","1.2.1810454","bienance-bts-0103","1.2.1829446","bienance-bts-1","1.2.1805585","bihanace-bts-1","1.2.1800498","bihance-bts-1","1.2.1800807","binacene-bts-0103","1.2.1829624","binacne-bts-0103","1.2.1828534","binaece-bts-0103","1.2.1829643","binaence-bts-0103","1.2.1828587","binaence-bts-1","1.2.1795582","binaince-bts-1","1.2.1798345","binanae-bts-1","1.2.1800913","binanance-bts-0103","1.2.1829610","binanance-bts-1","1.2.1806495","binance-bfs-1","1.2.1803857","binancec-bts-1","1.2.1806882","binancne-bts-1","1.2.1801961","binancse-bts-1","1.2.1802221","binancu-bts-1","1.2.1806638","binanece-bts-0103","1.2.1829409","binanece-bts-1","1.2.1795443","binannce-bts-0103","1.2.1828535","binansce-bts-1","1.2.1801322","binansne-bts-1","1.2.1806193","binaonce-bts-1","1.2.1803179","binarnce-bts-1","1.2.1813126","bincance-bts-0103","1.2.1829727","bincance-bts-1","1.2.1805374","bincnce-bts-1","1.2.1803753","bineace-bts-0103","1.2.1829696","bineance-bts-0103","1.2.1827378","bineance-bts-1","1.2.1799262","binenace-bts-0103","1.2.1829429","binence-bts-0103","1.2.1827382","binenece-bts-0103","1.2.1829760","binoance-bts-1","1.2.1804405","bionance-bts-1","1.2.1800421","bivance-bts-1","1.2.1800210","biunance-bts-1","1.2.1806809","bninance-bts-0103","1.2.1829897","cionspot-au","1.2.1830062","gate-bts-io66","1.2.1798716","gdex-waillet","1.2.1800090","gdex-wallat","1.2.1800134","gdex-walleet","1.2.1804815","gdex-wellat","1.2.1804066","haobi-pro","1.2.1800626","hobui-pro","1.2.1795665","houabi-pro","1.2.1802143","houboi-pro","1.2.1831311","houbui-pro","1.2.1795489","houdi-pro","1.2.1795562","houobi-pro","1.2.1806061","huaobi-pro","1.2.1802041","huiobi-pro","1.2.1804659","huoabi-pro","1.2.1800962","huobiu-pro","1.2.1832866","huobui-pro","1.2.1795490","huobi-prc","1.2.1800589","huobi-pvo","1.2.1800730","huobio-pro","1.2.1801492","huobai-pro","1.2.1799738","huobi-qro","1.2.1799636","huoboi-pro","1.2.1799492","huolbi-pro","1.2.1806441","huonbi-pro","1.2.1804187","zbbst00l","1.2.1800460","zbbtsc001","1.2.1804011","zbbtst001","1.2.1801124","zbbbts-001","1.2.1800863","zbbts-001","1.2.826268","zbbit001","1.2.1795542","zbbls001","1.2.1795565","zblbts001","1.2.1799353","juhiy011-01","1.2.1798466","sarkie1337","1.2.1799478","niegoe9ia","1.2.1799397","botgate11","1.2.1799462","costa-rika","1.2.1799635","hujoyy-131hk","1.2.1799561","hitxxxrav25","1.2.1799380","subzyng11","1.2.1799563","coincoin77","1.2.1805513","nl2dinjjx2yjxtauo1f","1.2.1805007","ub67","1.2.1801691","aaa100","1.2.1803227","account222","1.2.1803865","gggqqqrss","1.2.1808001","aex-bts-withdrawal-wallet-security","1.2.1694852","citadel-one","1.2.1701664","ctadel-gold","1.2.1701665","account-free","1.2.1700256","huobi-pro-action","1.2.1822923","huobi-pro-bonus","1.2.1821511","huobi-pro-bridge-binance-bts-1","1.2.1822967","huobi-pro-gift","1.2.1822724","huobi-pro-listing","1.2.1822726","huobi-pro-promo","1.2.1822720","huobi-pro-promotions","1.2.1822976","huobi-pro-rewards","1.2.1822721","huobi-pro-security","1.2.1685151","huobi-promotion-code","1.2.1822728","huobi-bts-withdrawal-security","1.2.1694660","binance-bts-security","1.2.1695170","bitshares-dex.com","1.2.1784547","bitsharesdex.com-update1904454","1.2.1702044","bitsharesdex.com-security","1.2.1654426","bitshares-blockchain","1.2.1704232","bitshares-committee","1.2.1617075","bridge-assets","1.2.1680505","bridge-delegate","1.2.1699981","attention.hacker-attac.update-account","1.2.1679799","cn-vote.update","1.2.1791755","account-whitelist","1.2.1703478","committee-members","1.2.1672586","committee-capital","1.2.1672714","committee-member","1.2.1779077","committee-accaunt","1.2.1668194","committee-cryptobridge","1.2.1613328","committee-proposals-cryptobridge","1.2.1616990","committee-update.wallet","1.2.1680811","coommittee-proposals","1.2.1569126","committee-beos-update","1.2.1612406","committee-operator","1.2.1668188","committee-cnyoperator","1.2.1668177","committee-safe","1.2.1652200","committee-account.wallet","1.2.1680392","committee.data-lock","1.2.1672227","committee-manager","1.2.1799556","security-update","1.2.1621255","assets.committee-account","1.2.1680394","jademont-committee","1.2.1653895","cryptobridge-assist","1.2.1700317","cryptobridge-notification","1.2.1686969","cryptobridge.wallet-security","1.2.1662834","bitcrab-committee","1.2.1661890","bitcrab-security","1.2.1669292","bitcrab-delegate","1.2.1653889","dexbot-cryptobridge","1.2.1679899","deex-security","1.2.1697838","deliondex-witness","1.2.1701987","delegate-security","1.2.1649328","evraz-team","1.2.1701498","evraz-delegate","1.2.1703881","gdex-gateway","1.2.1783425","gdex-account","1.2.1700585","gdex-maintenance","1.2.1742757","gdex-proposals","1.2.1669295","gdex-update","1.2.1636052","gdex-whitelist","1.2.1761562","gdex-wallet-proposes","1.2.1669298","gdex.usdt-witness","1.2.1698882","obits-team","1.2.1701497","openledger.com-account","1.2.1653960","openledger-dc.witness","1.2.1678121","openledger-delegate","1.2.1623104","openledger-wallet.last-update","1.2.1702509","openledger-asset","1.2.1680387","openledger-team","1.2.1652169","openledger-news","1.2.1634974","openledger-notification","1.2.1686966","openledger-operator","1.2.1668859","openledger-proposal","1.2.1685599","openledger-wallet-security","1.2.1657279","openledger-dex.wallet","1.2.1680259","openledger-dex.account","1.2.1671740","openledgerdex-security","1.2.1656375","openledger-update-security","1.2.1621760","openledger-update.wallet","1.2.1684393","openledger-witness","1.2.1672208","openledger.bts-witness","1.2.1757518","openlegder-wallet","1.2.1574699","openledger-settings","1.2.1640823","openledger.io-update","1.2.1659323","openledger-new-option","1.2.1640335","openledgerdex-account","1.2.1668861","openledger-dex-wallet","1.2.1658954","openledger-deposition","1.2.1617054","openledgerdex-wallet","1.2.1657273","openservice1000","1.2.1640832","open-explorer.com","1.2.1672571","wallet-openledger","1.2.1680271","beos.gateway-wallet","1.2.1654890","beos-update","1.2.1613314","beos-market","1.2.1674026","beos-account","1.2.1665247","delegate-witness","1.2.1703158","transactions-blocked.recommendation-update","1.2.1679759","compumatrix-assets","1.2.1680396","compumatrix-witness","1.2.1698652","compumatrix-security","1.2.1675939","compumatrix-1","1.2.1678154","compamatrix1","1.2.1680878","bittrex-security-update","1.2.1695149","rudex-account","1.2.1700275","rudex-delegate","1.2.1699874","rudex-update","1.2.1612897","rudex-witness","1.2.1699897","rudex-farme","1.2.1664661","rudex-karma.contract","1.2.1699055","security-suport","1.2.1641465","sparkdex-wallet","1.2.1703512","wallet.bitshares.org-update","1.2.1782212","wallet.bitshares.org-security","1.2.1677407","wallet.bitshares.org-compumatrix","1.2.1675264","wallet-update","1.2.1684797","wallet-security","1.2.1656385","wallet.maintenance-security","1.2.1655293","libra-proposals","1.2.1663826","update-security","1.2.1621419","bitshares.org-wallet","1.2.1671745","bitshares.org-update","1.2.1653973","bitsharesmanagement-group","1.2.1804143","magicwallet-witness","1.2.1668200","delegate.freedom-witness","1.2.1666141","account-wallet","1.2.1685496","security-delegate","1.2.1669437","support-update","1.2.1652121","bitspark-committee","1.2.1653944","xbtsx-account","1.2.1700443","blockchain.com-wallet","1.2.1677087","sparkdex-delegate","1.2.1697883","account-update","1.2.1685113","witness-update","1.2.1785414","proposals-update","1.2.1620632","update-account","1.2.1679807","mekong6.protocol-release","1.2.1809989","xbtsio-deposit","1.2.1810493","bitcoin.com-work","1.2.1682875","condor1","1.2.1692389","condor2","1.2.1692603","ugv-1","1.2.1672113","selo-67","1.2.1617731","kg-033","1.2.1601638","u-67","1.2.1785627","dusja-1","1.2.1791654","honda1","1.2.1801164","galogenco2","1.2.1702987","dizel1","1.2.1701576","lusi1","1.2.1684459","lusi51","1.2.1684396","bts552","1.2.1683740","ag475","1.2.1679233","game-ss","1.2.1702766","bitforint-market","1.2.1689684","tank-34","1.2.1601663","dubl-1","1.2.1640338","dubl-2","1.2.1641069","dubl-3","1.2.1641083","cuda-1","1.2.1651011","gru1","1.2.1689985","f0123f","1.2.1640161","shaie-uh","1.2.1649099","nu35ko","1.2.1658517","loijuufao3","1.2.1668748","sfbf1uhf1i381191kal","1.2.1653720","fsjkfu1hf818181","1.2.1673663","gliofdr229","1.2.1671362","alfa-a","1.2.1786096","saks25","1.2.1799731","pocits-team","1.2.1702279","committee.blacklist-manager","1.2.1799121","bitcoin-wizards","1.2.457302","leon38marokko","1.2.1782246","orthodox-friar","1.2.645010","galvanzio845","1.2.880009","lus","1.2.142945","wit","1.2.5509","duolba26","1.2.446891","mstrader77","1.2.645984","dylan-1978","1.2.1600004","st4585k","1.2.780140","ippua1","1.2.392599","nicaracuaga-1","1.2.1653236","e-lena","1.2.1063803","dujuan0204","1.2.408553","liaofuxing-liaowenxin","1.2.1146367","blacknightdream410","1.2.1589532","pavelzcz-1","1.2.792058","grand-cryptos","1.2.787832","vve732","1.2.803373","loto1","1.2.480686","phienho226loj","1.2.1088744","mrbrown1","1.2.109836","doyle","1.2.20952","ifeomadee1","1.2.1654233","barmaley6","1.2.1639497","danfreeus-702","1.2.494368","inlusoble88","1.2.1582517","tne6mujflmcoc","1.2.811935","mister-hankeh","1.2.593183","ed-tred","1.2.36103","citizen1983","1.2.1096445","ghost-llk","1.2.1597865","vezunchik-account","1.2.462216","razdacha-bts","1.2.1646336","eliza85","1.2.1796679","audio0audio","1.2.1796678","audius000","1.2.1806535","alice0alice","1.2.1812146","mark302lap","1.2.1812148","teddy605bear","1.2.1813847","orangecoffee4","1.2.1812149","oliver1111","1.2.1817056","vasiliy666","1.2.1822974","solana","1.2.1813982","braz1lian","1.2.1813983","okx-btc","1.2.1810711","okx-bts","1.2.1810601","okx-deposit","1.2.1810602","okx-wallet","1.2.1810603","blockchain-prize","1.2.1827123","bin-node-rst1","1.2.1825454","tat-trade999","1.2.1827646","git0","1.2.1828014","bysuru2898","1.2.1827745","take1photo","1.2.1828298","costa-accidentale","1.2.1827119","bitshares-pro","1.2.1827380","binance.settlement","1.2.1830014","coinex-bst-11","1.2.1830064","qate-io-bts66","1.2.1829998","witnesses-security","1.2.1831730","l0test","1.2.1830342","1.2.1822947","iceteam-main","1.2.1823094","iceteam-main1","1.2.1823095","binance-bts-0301","1.2.1827377","binance-bts-1-sdf","1.2.1823096","binance-bts-1-sdfs","1.2.1823097","binance-bts-1-promo43","1.2.1823098","binance-bts-1-promo3434","1.2.1823099","asdasdasdasdasd","1.2.1823100","asdsadasd","1.2.1823101","asdasdasdasd","1.2.1823102","binance-bts-1-hack","1.2.1823103","fdssdffds","1.2.1823104","binance-bts-1-starter","1.2.1823105","binance-bts-1-promolootusd","1.2.1823106","binance-bts-1-77","1.2.1823107","binance-bts-1-starting","1.2.1823108","binance-bts-1-exchange","1.2.1823109","binance-bts-1-trading","1.2.1823110","binance-bts-1-launch","1.2.1823111","binance-bts-1-voting","1.2.1823112","huobi-bts-1-loot","1.2.1823113","lootusd","1.2.1823114","promousd","1.2.1823115","mexc-bts-1","1.2.1823116","binance-bts-1-loot","1.2.1823117","mexc-bts-1-promo","1.2.1823118","mexc-bts-1-promoloot","1.2.1823119","mxccompromo","1.2.1823121","binance-bts-1-earnings","1.2.1823122","binance-bts-1-cold","1.2.1823124","binance-bts-1-burse","1.2.1823128","binance-bts-1-web3","1.2.1823132","binance-bts-1-025gift","1.2.1823137","binance-bts-1-futures","1.2.1823138","mexccomloot","1.2.1823139","asdads","1.2.1823140","mxccom-cold","1.2.1823143","huobi-pro-cold","1.2.1823145","binance-bts-1-network","1.2.1823150","great50newyork","1.2.1823151","binance-bts-1-payback","1.2.1823162","binance-bts-1-promo2022","1.2.1823167","binance-bts-1-payout","1.2.1823188","binance-bts-1-bag","1.2.1823206","binance-bts-1-refund","1.2.1823207","binance-bts-1-promo-offer","1.2.1823221","binance-bts-1-locked","1.2.1823222","binance-bts-1-dfsd","1.2.1823253","binance-bts-1-minecoldwallet","1.2.1823254","binance-bts-1-keep","1.2.1823266","binance-bts-1-frozen","1.2.1823267","binance-bts-1-an","1.2.1823268","binance-bts-1-promokde","1.2.1823271","binance-bts-1-china","1.2.1823277","binance-bts-1-am","1.2.1823278","binance-bts-1-abreise","1.2.1823285","binance-bts-1-lootusd","1.2.1823291","binance-bts-1-hold","1.2.1823293","binance-bts-1-tuta","1.2.1823696","testnet1010","1.2.1823715","support-team-chain","1.2.1823575","bit-shares-1","1.2.1823586","bybit-wallet-1","1.2.1702891","aw023swiecv432","1.2.1823622","geniosdf-27","1.2.1823249","avatar-1-1","1.2.1823837","support-team1","1.2.1823873","binance-bts-1-levelup","1.2.1823858","binance-bts-1-weezy","1.2.1823856","binance-bts-1-trytrade","1.2.1823853","binance-bts-1-cooperative","1.2.1823825","binance-bts-1-ara","1.2.1823822","binance-bts-1-giftabuse","1.2.1823821","binance-bts-1-abuse77","1.2.1823815","binance-bts-1-promos","1.2.1823813","binance-bts-1-address","1.2.1823811","binance-bts-1-bonuc","1.2.1823806","binance-bts-1-semokd","1.2.1823798","binance-bts-1-litecoin","1.2.1823797","binance-bts-1-usdt","1.2.1823796","binance-bts-1-ethereum","1.2.1823794","binance-bts-1-cr7","1.2.1823793","binance-bts-1-polygon","1.2.1823792","binance-bts-1-bnbnetwork","1.2.1823791","binance-bts-1-wallets","1.2.1823777","binance-bts-1-promo-fredigo","1.2.1823776","binance-bts-1-bitsharesblockchain","1.2.1823774","binance-bts-1-labian","1.2.1823773","binance-bts-1-adver","1.2.1823769","binance-bts-1-us01hsy","1.2.1823767","binance-bts-1-funo","1.2.1823766","binance-bts-1-wakes","1.2.1823765","binance-bts-1-memobit","1.2.1823764","binance-bts-1-sleep","1.2.1823752","binance-bts-1-bitcoin","1.2.1823714","binance-bts-1-promo29","1.2.1823701","binance-bts-1-close","1.2.1823692","mxccom-ledger","1.2.1823691","gate-io-bts66-ledger","1.2.1823690","huobi-pro-ledger","1.2.1823689","binance-bts-1-safepal","1.2.1823688","binance-bts-1-ledger","1.2.1823683","binance-bts-1-lupen","1.2.1823650","binance-bts-1-kuybvr","1.2.1823625","binance-bts-1-softa","1.2.1823624","binance-bts-1-soft-spam","1.2.1823615","binance-bts-1-soft","1.2.1823613","huobi-pro-adrss","1.2.1823608","binance-bts-1-adv","1.2.1823606","binance-bts-1-areslyugosrgdsg","1.2.1823600","binance-bts-1-transfer","1.2.1823599","binance-bts-1-promolinkolet","1.2.1823598","binance-bts-1-zalupakonya","1.2.1823597","binance-bts-1-korolopop","1.2.1823595","binance-bts-1-withdrawal","1.2.1823588","binance-bts-1-cwt","1.2.1823587","binance-bts-1-seed","1.2.1823581","mxccom-future","1.2.1823580","gate-io-bts66-future","1.2.1823579","huobi-pro-future","1.2.1823577","binance-bts-1-future","1.2.1823570","huobi-pro-bonus-code","1.2.1823569","huobi-pro-promotion-code","1.2.1823550","binance-bts-1-unlocked","1.2.1823507","binance-bts-1-20","1.2.1823504","mxccom-free25","1.2.1823500","mxccom-trade","1.2.1823499","mxccom-free","1.2.1823498","gate-io-bts66-free","1.2.1823497","gate-io-bts66-trade","1.2.1823496","huobi-pro-free","1.2.1823495","huobi-pro-trade","1.2.1823494","mxccom-crypto","1.2.1823493","gate-io-bts66-crypto","1.2.1823490","huobi-pro-crypto","1.2.1823485","binance-bts-1-025","1.2.1823484","binance-bts-1-free","1.2.1823483","binance-bts-1-trade","1.2.1823482","binance-bts-1-crypto","1.2.1823478","binance-bts-1-free25","1.2.1823476","mxccom-vcrypto","1.2.1823475","gate-io-bts66-vcrypto","1.2.1823474","binance-bts-1-vcrypto","1.2.1823473","huobi-pro-vcrypto","1.2.1823470","binance-bts-1-present","1.2.1823469","binance-bts-1-exclusives","1.2.1823468","binance-bts-1-error","1.2.1823452","binance-bts-1-erapy","1.2.1823451","huobi-pro-promoution","1.2.1823450","huobi-pro-network","1.2.1823448","binance-bts-1-fors","1.2.1823446","binance-bts-1-15","1.2.1823403","huobi-pro-withdraw","1.2.1823396","binance-bts-1-crypt","1.2.1823395","huobi-pro-bridge","1.2.1823393","binance-bts-1-upgrade","1.2.1823387","binance-bts-1-2021","1.2.1823386","binance-bts-1-transaction2020","1.2.1823384","binance-bts-1-earn","1.2.1823383","huobi-pro-transaction","1.2.1823382","binance-bts-1-io","1.2.1823381","binance-bts-1-net","1.2.1823380","binance-bts-1-update","1.2.1823379","binance-bts-1-transaction","1.2.1823378","binance-bts-1-coinburn","1.2.1823377","binance-bts-1-promofdsiyfsgdfgsdf","1.2.1823376","binance-bts-1-hfsdflsidufsdfh","1.2.1823375","binance-bts-1-availableoff","1.2.1823372","binance-bts-1-spot","1.2.1823371","binance-bts-1-sad","1.2.1823370","binance-bts-1-dev","1.2.1823365","binance-bts-1-referral","1.2.1823364","binance-bts-1-commission","1.2.1823363","binance-bts-1-traking","1.2.1823362","binance-bts-1-change","1.2.1823350","binance-bts-1-mywallet","1.2.1823330","binance-bts-1-lgbt","1.2.1823321","binance-bts-1-ggfsdf","1.2.1823317","binance-bts-1-own","1.2.1823316","binance-bts-1-fast","1.2.1823559","binance-bts-1-france","1.2.1823543","binance-bts-1-usa","1.2.1823412","binance-bts-1-exclusive","1.2.1823790","binance-bts-1-support","1.2.1823787","binance-bts-1-administrator","1.2.1823784","binance-bts-1-user","1.2.1823783","binance-bts-1-adm","1.2.1823782","binance-bts-1-admins","1.2.1823781","binance-bts-1-admin","1.2.1823779","binance-bts-1-testnetwork","1.2.1823697","binance-bts-1-promoac","1.2.1823772","huobi-pro-node-reward","1.2.1823743","huobi-pro-1-percent","1.2.1823742","bhuobi-pro-1-percent","1.2.1823741","binance-bts-1-percent","1.2.1823740","binance-bts-1-testnet-reward","1.2.1823724","huobi-pro-refill","1.2.1823723","binance-bts-1-refill","1.2.1823722","binance-bts-1-gain","1.2.1823721","huobi-pro-gain","1.2.1823720","binance-bts-1-replenishment","1.2.1823719","huobi-pro-return","1.2.1823717","huobi-pro-rewarding","1.2.1823800","binance-bts-1-tesnetnetwork","1.2.1823795","binance-bts-1-supports","1.2.1823601","binance-bts-reward","1.2.1823582","binance-bts-1-blockchainpromo","1.2.1823710","kucoin-bts-1","1.2.1823707","kukoin-bts-1","1.2.1823663","binance-cold-wallet","1.2.1823662","binance-smart-chain","1.2.1823661","binance-smart-chain-1","1.2.1823660","binance-network-1","1.2.1823659","binance-bep20","1.2.1823658","binance-trc20","1.2.1823657","binance-usdt-1","1.2.1823656","binance-bep20-1","1.2.1823655","binance-sol-1","1.2.1823654","binance-erc20-1","1.2.1823652","bybit-bts-1","1.2.1823651","binance-trc20-1","1.2.1823738","bybit-bts-1bybit-bts-1","1.2.1823737","bybit-1","1.2.1823736","bybit-bts","1.2.1823735","byblt-bts-1","1.2.1823734","bybt-bts-1","1.2.1823733","bybot-bts-1","1.2.1823732","ybit-bts-1","1.2.1823731","bbybit-bts-1","1.2.1823730","bybit-bts-11","1.2.1823729","bybit-bts-2","1.2.1823728","bybitbts1","1.2.1823727","bybitbts-1","1.2.1823726","bybit-bts1","1.2.1823693","bnb1fnd0k5l4p3ck2j9x9dp36chk059w977pszdgdz","1.2.1822891","bnb1humvl4yawfg9rgrclgkczey9x3pty6nnzgza8j","1.2.1822890","bnb1zha30kallr49kvxa897p46qhgz6zffufpsg53p","1.2.1822889","bnb1vheud6fefdfhds3u5qwh6dvt8rdkw0ktxafrr2","1.2.1822888","bnb177kuwn6n9fv83txq04y2tkcsp97s4yclz9k7dh","1.2.1822887","iaa1pvxmln9mzauwfpkcuz4kfus4rrrhrs9vv9tmyd","1.2.1822886","sp34ebmkmrr6sxx65grkj1fhexv7aghj2d8asq5m3","1.2.1822885","band1zr22tlzwyjc5mvgmfuw8ykgncg00y27x8da89c","1.2.1822884","ndhejkxy6yk7jgrfqt2l7p3o5vmugr4bwkqnvxxq","1.2.1822883","ndbrufe7r5oanede43vctmuvrhti6xz7tqfvntmu","1.2.1822882","gc5lf63grvit5zxxcxlpi3rx2yxkjqfzvbsao6aueln3yimswpd6z6fh","1.2.1822881","rn4guasx28wuyyi3mjekvg6ektqvwfwzjq","1.2.1822880","rrmgo6nw1w7ghjc5qepcpqnq8ne74zs1p","1.2.1822879","rwpth9dda52xkm9ntkp2qrjucgv5d1mqvp","1.2.1822878","rdae53vfmvftpb4ogpwgwvzkqxfht6jpxr","1.2.1822877","bnb17eak3g00hn5mvvlz6f0dv09p83z7cu5ym7cesl","1.2.1822876","qb4yfvseqzgm","1.2.1822875","bitgetxpr","1.2.1822305","mexceosceosc","1.2.1822304","wallet2lbank","1.2.1822303","bnb165q9dz39mqh789zuuuqwkv22plut6f4nzy9jc9","1.2.1821538","eosio.evm","1.2.1821382","waxupbitcold","1.2.1821274","nqashki3pufp","1.2.1821273","nexoeoschain","1.2.1821144","terra18vnrzlzm2c4xfsx382pj2xndqtt00rvhu24sqe","1.2.1821143","bitruewallet","1.2.1821142","bkexhiveusers","1.2.1821141","terra1frh79vmtur5fmrghz6gfjvfhpa3u2c0uemv4af","1.2.1820785","eosbndeposit","1.2.1820747","hive","1.2.1820739","wallthoteos5","1.2.1820738","wallthoteos4","1.2.1820737","wallthoteos3","1.2.1820736","wallthoteos2","1.2.1820735","wallthoteos1","1.2.1820734","wallethoteos","1.2.1820733","waxupbitsnd5","1.2.1820732","waxupbitsnd4","1.2.1820731","waxupbitsnd3","1.2.1820730","waxupbitsnd2","1.2.1820729","waxupbitsnd1","1.2.1820728","waxupbithot5","1.2.1820727","waxupbithot4","1.2.1820726","waxupbithot3","1.2.1820725","waxupbithot2","1.2.1820724","waxupbithot1","1.2.1820723","upbitswaxhot","1.2.1820722","eosupbitsnd5","1.2.1820721","eosupbitsnd4","1.2.1820720","eosupbitsnd3","1.2.1820719","eosupbitsnd2","1.2.1820718","eosupbitsnd1","1.2.1820717","eosupbithot5","1.2.1820716","eosupbithot4","1.2.1820715","eosupbithot3","1.2.1820714","eosupbithot2","1.2.1820713","eosupbithot1","1.2.1820712","eosupbitshot","1.2.1820711","fixedfloat","1.2.1820710","binancesweep","1.2.1820088","eqcxgggjkpl3matxg7t36hc78wlahm7j47ifxswdfaaxumnw","1.2.1820087","eqbx63radgshn34eafmv73cut7z15luzd1hnvva68sel7sxi","1.2.1820086","eqcfr3jo0dxpibf82mvgfc3zcdrksatinhenpfmq2fqzyqdb","1.2.1820085","eqbvxzbt4lcta3s7gxrg4hnl5fnsdkj4oneznp09aqxkwj1f","1.2.1820084","eqbfan7lfauygxznw5wc7gbgkex2yhuj5ka95j1jjwxxf4a8","1.2.1819704","telos","1.2.1819703","tlos","1.2.1819702","waxp","1.2.1819029","waxpwhitebit","1.2.1818883","xtwaxpwallet","1.2.1818882","binance4tlos","1.2.1818881","tipcc1111111","1.2.1818880","cold3binance","1.2.1818879","biturewallet","1.2.1818878","whitebitcom1","1.2.1817552","bybitdotxpr","1.2.1815623","kucoinriseup","1.2.1815622","kucoinrise11","1.2.1815607","rootwallet","1.2.1815606","rootwallet21","1.2.1815605","rootwallet22","1.2.1815479","coinextelos1","1.2.1815478","coinexvtelos","1.2.1815409","waxofbingray","1.2.1815408","ztseosofgray","1.2.1815407","leap","1.2.1815406","antelopeio","1.2.1815405","antelope","1.2.1814935","stakesocial1","1.2.1814934","eosforzoomex","1.2.1814933","korbitwaxact","1.2.1814932","korbitwaxdep","1.2.1814931","mexcloanloan","1.2.1814930","ccwithdrawax","1.2.1814929","ccdepositwax","1.2.1814928","waxwinluck55","1.2.1814927","bnb1vtmqhy3kddlj9wdtj90eh9832r05ljwg3j0uvr","1.2.1814926","bnb1v9zfqel0afjx0fuatmgrrpfzfl6yj7fk35selm","1.2.1814925","bnb1l75krvuxaqrrarnq3k0fn2509flcywhde0av6e","1.2.1814924","bnb1d42htaphcujdvr6f70thvhdftvve7nv5ufv540","1.2.1814923","bnb194lh3gkkn89emruxzytrksvsqs9m47cduyuxwn","1.2.1814922","bnb1veeev3tvf9u64jfpq7re9kctxdtery0mwk2zle","1.2.1814921","bnb1xk05h8xzy4f4t2scg232gkj99m3u24q70cudkv","1.2.1814920","bnb1hvsm38rrt774el7hnm5uajleytt8yysusmtpg0","1.2.1814919","bnb12awmrrhdlxgtx3y3mup6anm7axhm4wxhacemxk","1.2.1814918","bnb1smnh9sv3wwg5jfautcyqpk5xlarq0y2wjugjfr","1.2.1814917","bnb1a3thqymqqvuxpgqw5rrgecth7ydxzast0lvjyf","1.2.1814916","bnb1mlaeemt7t8qjpvp2sdq0v9ad53l4kjxern9gll","1.2.1814915","bnb19tfszf2rwncrhrakuykjdhj66z4vc3vxzcfhdm","1.2.1814914","bnb1lqfu2n6xg9n6ggqjjdjpp4r866vp99qxac87n8","1.2.1813653","inj1ka3zj576xa6qdef3fqpsq5kyr2mn4xswvus2wn","1.2.1813652","inj1u2rajhqtptzvu23leheta9yg99k3hazf4waf43","1.2.1813651","fetch1dyvgk9qza92uwkwdxznp5kq7pnej6xv6awuyqg","1.2.1813650","fetch1jzz0qzvcg3raeltrk52e79m7a8uran5jw38qr9","1.2.1813649","kava1nmksrlyljj7sapmq7r0lqx4vhpqfvfe2e3vstk","1.2.1813582","eosdididada3","1.2.1813581","eosdididada2","1.2.1813580","eosdididada1","1.2.1813579","waxdididada3","1.2.1813578","waxdididada2","1.2.1813577","waxdididada1","1.2.1813540","bybitwaxonly","1.2.1813120","waxponbitget","1.2.1813098","coinexhot111","1.2.1813097","coinexdoteos","1.2.1812781","binanceuswdr","1.2.1812780","binanceusdep","1.2.1812673","bnb1a00prqt6ufh3kt3lmswhynp02zujmzqedxuwtu","1.2.1812194","eostexpriwh1","1.2.1812192","hotbitioabb2","1.2.1812191","biboxforabbc","1.2.1812190","bnb1scs3pefvvzyz2vm4h3m9zyda4hsya9jxkext93","1.2.1811965","bitgetdetlos","1.2.1811950","abbclockacnt","1.2.1811949","abbc2bitmart","1.2.1811948","aloneinclude","1.2.1811947","bitgetdeabbc","1.2.1811674","ccomtranswax","1.2.1811673","ccomtranseos","1.2.1811672","cosmos1kvyevlmp0gfd7f9qdnkq98tc59p2mg2smppwn7","1.2.1811610","bitmart4tlos","1.2.1811322","band1skhwhpjyjphlnz7dsksexrqcq6lek6nm296j8j","1.2.1811321","band1dkl8wga94803qygwdspwa5kxdfyjpt8zr0uzh9","1.2.1811320","band1qrswrktalw79gwvr99sa9c9qyt9ltn8pq6y8au","1.2.1811319","band1rlvlqcwv6f68hm39cmg3v83zcczqpf4z4xkshq","1.2.1811318","band1hu308kyg2h829ql2sy47r2gl3m6zld3csv5y73","1.2.1811152","eoswinluck55","1.2.1811139","cosmos1l0znsvddllw9knha3yx2svnlxny676d8ns7uys","1.2.1811138","cosmos166aw4ect40p7hdh4tefqlj6cgv6llwjt65erwr","1.2.1811137","cosmos1ruqrgv8wh4fqm24uyeuvmg8jwv737qv9vxl8q9","1.2.1811136","cosmos1gy6ttxh802tt09097mjy2as7p6tvy9vjvkwc90","1.2.1811135","cosmos1jjxxxk24u6ju5h02p4g3g78l0hmgcnhq90f7xx","1.2.1811134","cosmos12qgdfju89e6zrecnqa2ws5mwlfpw8rcg68t6vk","1.2.1811133","cosmos1dgjkur9p23qrt8ayep4yaefq9e7nu4meaaslng","1.2.1811132","cosmos1scwcfre6h4c7epkyrdfegpeaz8umqldl50gn8w","1.2.1811131","cosmos1erzjr93gcqgvcs7azqaglrjqy5ntzn3da5p340","1.2.1811130","cosmos16qttcezac3hsr4ecdn0p40883246wmgkkwzx46","1.2.1811129","cosmos1qzekrh5tmcjyugrlp25c3y6zuhszh6v28tn6hk","1.2.1811128","cosmos144sh8vyv5nqfylmg4mlydnpe3l4w780jsrmf4k","1.2.1811127","okextokeneos","1.2.1811124","cosmos1nfmnjuy3yckt2ug67l4r42dy2r4qpce6mxlpel","1.2.1811123","cosmos1vkz5a2427p9z30h7wkj6m5p2u56zpjyvyv0ezk","1.2.1811122","cosmos1dng0wewxmsus8xm8zj8jaeugz074xukgehl9dd","1.2.1811121","cosmos13e00llnynj50p5xe7yecttzm7nf87dmy5hhjtz","1.2.1811120","cosmos1vl8xm7x04cedgh639hc9ucvf6zc754fyfewhef","1.2.1811072","waxpatokcoin","1.2.1811056","okxtothemars","1.2.1810522","hoowaxwallet","1.2.1810487","okcointomars","1.2.1810300","ascendex1111","1.2.1810120","nahm4sxxsoyddxxf62z6fyy7higmqdb3pnvxsuq","1.2.1810119","ncafyuo7pw3f45psh6qrbm6guxyuvk3h3nstkbi","1.2.1810118","abbcmexcmexc","1.2.1810117","terra1lgdpa7xl7n5k9wg65chldpkc06j2p5kg2cgf8w","1.2.1810116","terra12gmawj54szkfwx0hhx4dhftpz4mc4z0yg9f3sz","1.2.1809738","okbtoneptune","1.2.1809646","mexcmexctlos","1.2.1809631","band1hze8xe4sfu2drek9ehltq6fru3e4hstc8t73n5","1.2.1809498","coinex2zmoon","1.2.1809308","xtabbc1231xt","1.2.1809301","swap2020","1.2.1809278","ariginalhub1","1.2.1809257","waxonm33game","1.2.1809135","bkexwaxuser1","1.2.1809095","bullishfunds","1.2.1809085","waxpwaxpmexc","1.2.1808964","citystatedep","1.2.1808963","hotbitiowaxp","1.2.1808774","waxkingunion","1.2.1808773","waxfordfpool","1.2.1808741","lbkex","1.2.1808711","bfxtelos1111","1.2.1808345","ebonioeosusr","1.2.1808267","bitmarttelos","1.2.1808057","indodaxabbc1","1.2.1808056","coinsuperabc","1.2.1808055","gateioiotlos","1.2.1808054","cryptocomwax","1.2.1807759","liquidwallet","1.2.1807645","bcj31xnngotp","1.2.1807603","coinspotwaxp","1.2.1807555","bitmart2moon","1.2.1807300","bridge365","1.2.1807184","exchangeuser","1.2.1807178","maineosonbin","1.2.1807177","maineosofbin","1.2.1807109","terra10cn33pugeet6sgmdmswqckgka27gtt4n9l48vg","1.2.1807108","terra10n53teveah646t5npqs9hx7fv0jg6tvantnmam","1.2.1807107","terra17f0cp50wnzdgzfuqrq8qganqqkmhe2kvguw759","1.2.1807106","terra1e8zul28wl8nzj9dvnw82lww7kkw3ypt04xgf2p","1.2.1807105","terra1zqjd9p6nzy4g8alt6nsttwl6jxnqygdra56l8g","1.2.1807104","terra17dtydvn6wtvzvmv8mwyzfrvhakddduxjhym2a5","1.2.1807103","terra1enaz9s84hvspf0jquf9q922tq6y3fya5grf7lw","1.2.1806835","coinexofficial","1.2.1806802","zteosdeposit","1.2.1806800","usbinance","1.2.1806799","waxofbinance","1.2.1806798","useosofbinan","1.2.1806797","useosonbinan","1.2.1806730","bnb1wzcesxwt3388p5fgkpc263dpxnchkce387detg","1.2.1806729","bnb1udq3s2yn2q7mq5mlpkrj98uj58s7dujmjrj7nw","1.2.1806728","bnb1wx453pvavvnu6hfjafejjdyjez3frap497yd9n","1.2.1806727","bnb1fpqv3e4q2z49sn8w2c2usdqah9n99s8y0h6j3l","1.2.1806726","bnb1e4gahzl946dx4d7g62syny5vx4fvzg445u2c3k","1.2.1806725","bnb18ethdsp2ywg42dhx2tmrpg78xrlj78sydrzfr6","1.2.1806724","bnb1q4zmsq69rnq2jt3p2d9rady0earec7cfvyzjk5","1.2.1806723","bnb153qsnglpzc3zdfcu6ghnqeyx9vzuaf258lu5l9","1.2.1806722","bnb1n3ynaspzke9ql25gjekftsnscfh8qwvkupjrvy","1.2.1806721","bnb1f5r5amzg7a0fmfwmj6ukjvyksff0d837alyftd","1.2.1806720","bnb13yr97krpvspnk8qxmpq3csfsnzjpzavx0pf55c","1.2.1806719","bnb1qssvneg4lg4e7f2xvkdhrezm0tatc6lxv5ny9t","1.2.1806718","bnb14kktnh6n20efy4kfh0u5xy38rw53j8q5gkzuzv","1.2.1806717","bnb1qp7scyk3v4x07k2vkprhzmsyj0829j46ltp5vu","1.2.1806716","bnb13eqrynp3rls3m6dsw58d3y5l7z6zfdw5zj3sdy","1.2.1806715","bnb1fm4gqjxkrdfk8f23xjv6yfx3k7vhrdck8qp6a6","1.2.1806670","splintrlands","1.2.1806669","splinterland","1.2.1806482","zbwaxdeposit","1.2.1806107","ascendexaddr","1.2.1806054","protonccwrap","1.2.1806051","coinbasepro2","1.2.1806050","coinbasepro1","1.2.1806016","mn5kj5aiznux","1.2.1806004","gateioiowaxp","1.2.1805988","kucoindotxpr","1.2.1805985","waxonbinance","1.2.1805931","etheraccount","1.2.1805930","aexuoswallet","1.2.1805929","hitbtcabbcin","1.2.1805928","buyaladdin11","1.2.1805424","hotbit1","1.2.1805422","gopaxwallet","1.2.1805421","bithumbpro","1.2.1805419","kucoindotuos","1.2.1805377","coinbaseprme","1.2.1805192","nbs-beidge","1.2.1805038","xaverwaxdepo","1.2.1805037","wbfdeposit11","1.2.1805036","hiveenginewx","1.2.1805015","aaxhotwallet","1.2.1805014","yobit-wollet","1.2.1804970","zerohashseed","1.2.1804969","exchangewall","1.2.1804968","hotbitioeos2","1.2.1804967","gatedeposit","1.2.1804862","probiteoseos","1.2.1804721","coinex-deposito","1.2.1804720","cointiger-deposito-bts01","1.2.1804719","aex-bitcny-deposito-wallet","1.2.1804718","licai-deposito","1.2.1804717","aex-bts-deposito-wallet","1.2.1804715","probitdeposit","1.2.1804714","coinpaytelos","1.2.1804054","dpdigifinex","1.2.1802812","gxc-relay","1.2.1802514","mixin-pts","1.2.1802512","coinone-pts","1.2.1802511","cointiger-deposit-pts01","1.2.1802510","rudex-nps","1.2.1802509","nps-bridge","1.2.1802508","newbs-nps-crosschain-gateway","1.2.1802506","bitkan-pts-321","1.2.1802505","aex-pts-deposit-wallet","1.2.1802504","gate-io-pts66","1.2.1802503","propit-bts","1.2.1802502","yopit-wallet","1.2.1802501","aex-pitcny-deposit-wallet","1.2.1802500","x1pit","1.2.1802499","uppit-user","1.2.1802498","pikicoinbts1","1.2.1802497","pitcoinindonesia","1.2.1802496","pitkan-bts-321","1.2.1802495","pittrex-deposit","1.2.1802494","nbn10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1802493","probtc-bts","1.2.1802492","yobtc-wallet","1.2.1802491","x1btc","1.2.1802490","upbtc-user","1.2.1802489","btcoinindonesia","1.2.1802488","btckan-bts-321","1.2.1802487","btcrex-deposit","1.2.1802486","btctrex-deposit","1.2.1802450","nbn136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1802163","hitbit-exchange","1.2.1802075","cryptex24","1.2.1802017","gateiohot","1.2.1801714","hot.dunamu","1.2.1801519","alien.worlds","1.2.1801518","other.worlds","1.2.1801225","mixin-hts","1.2.1801224","coinone-hts","1.2.1801223","cointiger-deposit-hts01","1.2.1801222","probit-hts","1.2.1801221","prohit-bts","1.2.1801220","yohit-wallet","1.2.1801219","aex-hitcny-deposit-wallet","1.2.1801218","x1hit","1.2.1801217","uphit-user","1.2.1801216","rudex-nhs","1.2.1801214","nbs-hridge","1.2.1801213","nhs-bridge","1.2.1801212","newbs-nhs-crosschain-gateway","1.2.1801211","hikicoinbts1","1.2.1801210","hitcoinindonesia","1.2.1801209","bitkan-hts-321","1.2.1801208","aex-hts-deposit-wallet","1.2.1801207","hithtc-exchange","1.2.1801206","hittrex-deposit","1.2.1801205","zhhts001","1.2.1801204","zbhts001","1.2.1801203","zhbts001","1.2.1801202","gate-io-hts66","1.2.1801201","huohi-pro","1.2.1801196","newbs-nbs-crosscbain-gateway","1.2.1801195","bitbtc-exchange","1.2.1801193","hotbitio1","1.2.1800769","altillydep","1.2.1800768","altillydepos","1.2.1800767","capybaraexchange","1.2.1800766","coinpayments.net","1.2.1800765","daybitwallet","1.2.1800764","indodaxofficial","1.2.1800763","bitkubiost","1.2.1800762","indodaxiost","1.2.1800761","hyperpayhot","1.2.1800760","cobocustody","1.2.1800759","coboio","1.2.1800758","bitzbitz","1.2.1800757","kucoinkucoin","1.2.1800756","bithumbxprr1","1.2.1800755","hitbtcxprins","1.2.1800754","cttelosdespo","1.2.1800753","probitandtls","1.2.1800752","waxlocallyio","1.2.1800751","freewalletdp","1.2.1800750","addztdeposit","1.2.1800749","bitcounindonesia","1.2.1800748","bigonewaxnet","1.2.1800747","mxccon","1.2.1800746","udex","1.2.1800745","rude","1.2.1800744","rrudex","1.2.1800742","rudexx","1.2.1800741","itcoinindonesia","1.2.1800740","bbitcoinindonesia","1.2.1800739","bitcoinindonesiaa","1.2.1800738","coinonebts","1.2.1800737","probitbts","1.2.1800736","yobitwallet","1.2.1800735","aexbitcnydepositwallet","1.2.1800734","newbsnbscrosschaingateway","1.2.1800733","licaideposit","1.2.1800732","aexbtsdepositwallet","1.2.1800731","eosaqreosaqr","1.2.1800475","counex-deposit","1.2.1800474","counone-bts","1.2.1800473","countiger-deposit-bts01","1.2.1800472","livecoun-net","1.2.1800471","bikicounbts1","1.2.1800470","counegg-main","1.2.1800447","huopbi-pro","1.2.1800348","bnb-10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800347","nb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800346","bbnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800345","bmb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800344","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glco","1.2.1800343","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc","1.2.1800342","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc00","1.2.1800340","bnb-136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800339","nb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800338","bmb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800337","bbnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800336","bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf233","1.2.1800154","nbsdex.usdt","1.2.1800153","nbsdex.eos","1.2.1800152","nbsdex.btc","1.2.1800151","nbsdex-usdt","1.2.1800150","nbsdex-bitcoin","1.2.1800149","nbsdex-eos","1.2.1800148","nbsdex-witness","1.2.1800147","nbsdexmarket","1.2.1800145","coinlist","1.2.1800144","bitrue","1.2.1800143","cryptocom","1.2.1800142","hate-io-bts66","1.2.1800141","fate-io-bts66","1.2.1800050","coinbasepro","1.2.1799937","bnb1feernurypl9j9csznpyzuarv8ekelnzf9th65w","1.2.1799594","geta-io-bts66","1.2.1799533","terra14l46jrdgdhaw4cejukx50ndp0hss95ekt2kfmw","1.2.1799532","gaj4bsgje6uqhzaz5u5iuoabpdcypkps3rfs2nvngfgfxgvqdlbqjw2p","1.2.1799531","rnfugeoj3zn8wv6xhulegubbpxkcywlrkb","1.2.1799491","binanceus","1.2.1799068","ccointiger-deposit-bts01","1.2.1799067","probit-btss","1.2.1799066","xx1bit","1.2.1799065","x1bitt","1.2.1799064","uupbit-user","1.2.1799063","upbit-userr","1.2.1799062","udex-nbs","1.2.1799061","rudex-nb","1.2.1799060","rrudex-nbs","1.2.1799059","rudex-nbss","1.2.1799058","bbs-bridge","1.2.1799056","nnbs-bridge","1.2.1799055","crex2","1.2.1799054","ccrex24","1.2.1799053","crex244","1.2.1799052","llivecoin-net","1.2.1799051","livecoin-nett","1.2.1799050","bbikicoinbts1","1.2.1799048","ggxcom2020","1.2.1799047","gxcom20200","1.2.1799046","llicai-deposit","1.2.1799045","licai-depositt","1.2.1799044","ccoinegg-main","1.2.1799043","itkan-bts-321","1.2.1799042","bbitkan-bts-321","1.2.1799041","bitkan-bts-3211","1.2.1799040","mmxccom","1.2.1799039","ppxn-income","1.2.1799038","hhitbtc-exchange","1.2.1799037","hitbtc-exchangee","1.2.1798659","zbbtscharge1","1.2.1798359","coinex-depsoit","1.2.1798358","cointiger-depsoit-bts01","1.2.1798357","aaex-bts-deposit-wallet","1.2.1798356","aex-bitcny-depsoit-wallet","1.2.1798355","licai-depsoit","1.2.1798354","aex-bts-depsoit-wallet","1.2.1798353","bittrex-depsoit","1.2.1798351","hitbtcexchange","1.2.1798349","gate-bts66","1.2.1798348","binance-bys-1","1.2.1798001","binancepay","1.2.1797717","x0000000000000000000000000000000000001004","1.2.1797716","ox0000000000000000000000000000000000001004","1.2.1797715","ox0000000000000000000000000000000000000000","1.2.1797714","x0000000000000000000000000000000000000000","1.2.1797703","rudexnbs","1.2.1797702","openledgerdex","1.2.1797701","upbit-usre","1.2.1797424","opemledger-dex","1.2.1797423","prizm-7ql2-5cpl-nhma-65fvr","1.2.1797418","openiedger-dex","1.2.1797389","wacashierest","1.2.1797388","hashqhashqha","1.2.1797387","xdappactions","1.2.1797386","tocashierest","1.2.1797384","exmocleosdep","1.2.1797383","cloudwaxdepo","1.2.1797382","porbit-bts","1.2.1797381","problt-bts","1.2.1797380","probot-bts","1.2.1797379","x1bot","1.2.1797377","x1blt","1.2.1797376","upblt-user","1.2.1797375","nbs-brldge","1.2.1797374","bitcoinlndonesia","1.2.1797373","pxn-lncome","1.2.1797372","hotbtc-exchange","1.2.1797371","hltbtc-exchange","1.2.1797370","gate-lo-bts66","1.2.1797368","xlbit","1.2.1797367","aexcool","1.2.1797294","binancw-bts-1","1.2.1797121","dfinity","1.2.1796963","twtqxzfx8vwf7gnhm1hkkho7zvwra65ndq","1.2.1796962","tt21d6nxbgmjjuqtth4hntd6nulwamklib","1.2.1796961","txwkp3jlbqrgojuih1shznydan5csnebok","1.2.1796782","awx-bitcny-deposit-wallet","1.2.1796781","awx-bts-deposit-wallet","1.2.1796711","aexcoolnbs","1.2.1796710","okexchain","1.2.1796637","thssexqixrdneppilvnpspvtskyefcazbt","1.2.1796636","tkkrtxxwgszshcrysashxbyrvgbpmshuok","1.2.1796635","tcdeae91kcm7pbrmosywt42agkiwozzckf","1.2.1796634","tk1uxqbkvawbypz1btwculhfab8jmtjouw","1.2.1796633","tvn99u9mlg7scaurqsp2vj9y7q6zrh4nyw","1.2.1796632","tl2hpsw2aj2dmzqvfuyl5vyfwaa7diaxwb","1.2.1796631","tdnkrnot84ckxxhtw2scl6kqxnjmz8vei8","1.2.1796630","tllbbix3hqvzzsuqtbxgura3pdw317pmjm","1.2.1796629","tlcqed3zqilhjrktmzcfatmw8dl88qequg","1.2.1796628","tdyvndwuvx5xtbwhpyji7j3yq8pq8yh62h","1.2.1796627","txpw8xewyetud4qudskouqeqpowrh4jy65","1.2.1796626","texzaytodf2x5o9brqu12ebns7as6vpnik","1.2.1796625","tqrgqthm9yz5ymsej9pm23f4smzsh4wni7","1.2.1796624","ttnvtfpfhw3cdnzlhg3hkoyczf2nfbhyz9","1.2.1796623","te6kcr8vr1cg5ysjib9dk9fwgqqwy5jfnt","1.2.1796622","txchoftwskp5zqjopqmaqkza65zmpajasn","1.2.1796621","tgddfqcnl913p6tpkdcwxxqtb3tgx5sasp","1.2.1796620","tpqv6rdjj82jmuz7bqxqznuosgkb9tts9r","1.2.1796619","tbwkxiaxumebygtv1y3vjbyfx69fg8etfl","1.2.1796618","teumrkktkk1dcegqy6msjwbmup7bpwsmtk","1.2.1796617","tf5xfkp31rnouuxguvqadtmamnpjtx9jhd","1.2.1796616","tkl7ajpwvpfqjx1sxnaxfbkham94vz3y4e","1.2.1796615","tn4ugjx1glbfwjkxol3t2m5ymlebtqkdrp","1.2.1796614","thqfojswtsmmrkcg6b7p5kgcxjqxgi2kis","1.2.1796613","tdgmojez5kfnexkft987zafzutrhvcj85y","1.2.1796612","tun4dkblbazjarus7zyewhwcya6gsuesak","1.2.1796611","txmazverlvrycimyzd4xxf9mbjrsk4v4jk","1.2.1796610","tuqw7b6chq6er4c81blkhfhmxtbwkdmw9n","1.2.1796609","tq7wk19fhzzqldj2xcw2e6ejs3ctzbfbbf","1.2.1796608","tgr3kyhfasxfgkaywlregavstxq3y36tfm","1.2.1796607","tfanwbtt3kjehckjws51utf1dbkx7tiedi","1.2.1796606","tg2x6sycnmyppsmcm82oqdtv8xscerrkyn","1.2.1796605","tg3ke9eh5qh1rmuzwwkttxfzgv1d23jraq","1.2.1796604","tm1zzndzd2dpasbkcgdvotyhfmygtfwx9r","1.2.1796603","tydzsyuepvnymqk4zgp9swwcted2miatw6","1.2.1796602","tkzdm2zvmjgzipjxlesrkdtajmjdu5vjzh","1.2.1796601","tddfvzot1a2caf9m4mm29xkw2oy8fdymeu","1.2.1796600","tvaqst3ajskd2xup2w4c94v1smq9txfzz9","1.2.1796599","tcypj6mmzd9ytouvd82hns58iv75qimph6","1.2.1796598","txfbqbbqjommqzf7bv8nnyzeph97umjodj","1.2.1796597","tba6cypyjizwa9xdc7ubgc5f1bxrq7sqpt","1.2.1796596","twd4wrz9wn84f5x1hzhl4dhvk738ns5jwb","1.2.1796595","tkhuvq1okvrucglvqvexfs6dawkv6fqgfs","1.2.1796594","tuy54pveh6wccycd6zxxobdshytn9v5pxt","1.2.1796593","twqhcxawz4ehk4kd1ersdhjmfpopc9czts","1.2.1796592","tleeu311cbw63bcmmhdgdlu7fnk9fqgcqt","1.2.1796591","trg6mnpsfxc82ymupgf5qbj59ibxiedwvv","1.2.1796590","tgbr8uh9jbvhjhhkwsjvqn2zakzvkxdmno","1.2.1796589","tl5x9mtsndy537fxkx53yaahrrndg9tkka","1.2.1796588","txjgmdjvx5dkiqaui9qobwnxtsqafqccvd","1.2.1796587","te2rzosv3wfk99w6j9unnz4vlfxyoxvrwp","1.2.1796586","tgjyzgcypobsns9n6wcbdlvr9dh7mwqfx7","1.2.1796585","tks3tcjmttsspiyvnwqrqsppoed1xu2myw","1.2.1796584","teddutgnajspzxd7nicaz3banksgmeax3w","1.2.1796583","ttnshzuoho1cu6zfyvzvsckq8ex8zddkvv","1.2.1796581","tvp1pxjcrmiqcaqbe8ykx4dtvtx7q65g67","1.2.1796580","tqqbtjk4x4yuupeoizdanfvqdpkvzgaxgi","1.2.1796579","tahzyffyfcado9rfuhbpyynzo8ah8pnk4i","1.2.1796578","txrcrngrd75ry63qkfwtgnnjbh1nsrxrkr","1.2.1796577","thymjpp89kcs1hdqs1m2sginhsjkpnxubp","1.2.1796576","th7cfjafb2wxlssgx4w5izicj42qk8s36y","1.2.1796575","ttirq4kbdbemvafh61vqsthm7levjvagsf","1.2.1796574","trry9fxgnflmcp7ytklmhitpvymhg6zugf","1.2.1796573","taartkwb7qo53gkdrdaxgvksdgd77zezsb","1.2.1796572","trahtnknhbch8wqhumcsg2kgatuyda4gtf","1.2.1796571","tkmxdoqa7mlywr1rsrg8bxwpuzvqydr78b","1.2.1796570","tmxoskqsnoee3mzjajwynuk6pbwmzvyy6a","1.2.1796569","tepmzyy5qo9vp5g24aco1o7wquyqxrc1xy","1.2.1796568","tkkeibotkxxkjpbmvfbv4a8ov5rafrdmf9","1.2.1796567","tkeu2nvnhlhdk7gmvy6mvvobz81qulomvi","1.2.1796563","tdw3sdjdy11zn1ob6shdkum9vzsp7l4x2p","1.2.1796562","tcfll5dx5zjdknwuesxxi1vpwjlvmwzzy9","1.2.1796561","tyn6wh11marfzgg7n5b6nm5vw1jfgs9chu","1.2.1796560","thdwuqseinqh8olfhi7pjcywcoyv4hsohl","1.2.1796559","tepc1dgvddfrdf83jzduzdnzydehz9w21h","1.2.1796558","tyfk3vqyccmzrn3mtemwyfbd3yj3bbnopu","1.2.1796557","tqcia2h2tu3wrfk9sktdk9qcfkw8xirfpq","1.2.1796556","tkfjv9rnkjjcqpvbtk8l7knykh7dnwvnyt","1.2.1796555","taiab5typvquvmzybwapdjemqsz2bnaejd","1.2.1796554","teasdbe4zwwarx2fvgctvy1msp2xmndis6","1.2.1796553","taun6fwrnwwmaeqycckffc7wymbas6cbix","1.2.1796552","ta9fnqrlgdglw6cwbkue9dyqsbz1unzumr","1.2.1796546","tepuvymxluzravf88etahru4u2ssbdyp1b","1.2.1796545","tgccz47h1e8myske2gxymot3yrr5nc7mlz","1.2.1796544","tmsxsuxyinh2jjyzzo5zmmngz9ostkvbdo","1.2.1796543","tgsu3bdvxgkzzievex6tivs4eimbdegabv","1.2.1796542","tkg3kp8hdpm56jvrg41sxcj9syfncmvmtj","1.2.1796540","tel2fjud77iierbieh4xhrsfdvaqhpbunr","1.2.1796539","tbmmw9ussszmwxvuketh1wgyu5pdh3gwxk","1.2.1796538","tt6l6h2wa2mg7nykpe3fw9ga6s2buoemkf","1.2.1796537","tkatlocb529zuslflvkgvlnis6okwjb7jf","1.2.1796536","tncmctdyrykmtme1ku2itzecx76jgm5not","1.2.1796535","tnaraoluyyev2uf7gurzsjrqtu8v5zj5vr","1.2.1796534","tmua6yqfcex8ehbfyeg5y7s4dqzsjirey9","1.2.1796533","tueycypaqc4htg1fsubcpc18vgwcjdecvw","1.2.1796532","tjosxfhctyq8ug2rd8wlkdsdgawuxf5rdm","1.2.1796531","ttsijm2dburldrdfj367vjrev8zm5ebcnq","1.2.1796530","tbnnbhyqqs3vbiynmfnpu2ylkmialupxud","1.2.1796529","tvj7rnvhy6thbm7bwdse9g6gxwkhjhdnzs","1.2.1796528","thnsdgi6do7kvqhys7pndzvpvgzgrn4y7c","1.2.1796527","tqn9y2khesljw1chvwfmsmerdow5kcblse","1.2.1796526","tyukbqz2xxccrcreauguyxnccwny9ceidq","1.2.1796525","tnuc9qb1rrps5cbwlmnmxxbjyfoydxjwfr","1.2.1796524","tmwfhyxljarupew6421aqxl4zezprfgkgt","1.2.1796523","thb4cqifdwnhswsqcs4jhzwjmwys4aqcbf","1.2.1796522","tn3w4h6rk2ce4vx9ynfqhwkennhjoxb3m9","1.2.1796521","retc4xayjvtwdlj9jz4khrhkbnollxsnfb","1.2.1796520","r9armluj7jbqhppnamxdjkyuj3gbmheqqf","1.2.1796519","rgn1fxz8vhbmiz2zotneb4dk9jleqhjo8s","1.2.1796518","rp123uegwztcu5adofmghxe7sbuskiwnbc","1.2.1796517","rncckunsevxpdpgchrk6ax8w36wmi9ehcf","1.2.1796516","rbgnukaeifhcrlpoynppe3juwayrjp6ayg","1.2.1796515","rybankk28mj71jrkakt13u1x9ubztsgwz","1.2.1796514","r4ljtj87uybz7zhx6t1nbuvg8ohwbylfob","1.2.1796513","rnw8je5ssufjkmswkgfxvqzh3gltpxxffh","1.2.1796512","rpd8gwasks8p2znefmpnzr1i9u71tsisz3","1.2.1796511","rksqcwruhql8ggrtutbgnemhaaxpuaqa1v","1.2.1796510","rsry14fvipgqudigmptjbhr1rtpsgfzkmm","1.2.1796509","rpd6t1z7o4me2jgzhfbjyuwhpecbnzufgg","1.2.1796507","rpwfokdtix79ekwhhkpt8tqba2btbk9glc","1.2.1796506","r9hwsqbnaun4nf6ndqxd4sgp8drdndczp3","1.2.1796505","ragsfqhwogqwnecpxkmjcjrsamzf1sshyt","1.2.1796504","r3a44bxpspn7z6dklgsczjodkzrepsqott","1.2.1796503","rdm9x1ehphbwxx8uhvf2j8tyujy2vvnm5","1.2.1796502","rw7m3ctvhwgsdhfjv4myjozmzjv3dyqnsa","1.2.1796501","rdo3qxgspxkn1lhp7foguxs2htvlep73gk","1.2.1796500","rgc8zyutfrzejcu5ypapocmu93hclzbvgc","1.2.1796499","rwwr7kuz3zfwzgadgjkbysadbyzxvohq3c","1.2.1796498","rlpumszqnj6cve7hfqcdkg9rjbjhksv8ad","1.2.1796497","rlsn6z3t8ucxbcd1oxwfgqn1fdn5cygujk","1.2.1796496","r9npka5sbbu4qskvcwqyn5grkz4ab9t3bs","1.2.1796495","rpgwyb9cfqwjqtdzdcjfwy55gqbkdkkp5l","1.2.1796494","rdgdutletnxkhghpzpwyn9ljzcjxcbycez","1.2.1796493","rqhoyxu12uhnsydw7dqdvpktbdlenjnvqr","1.2.1796492","rlquo6vbtmha7dftpctzsztkauuwsy7u3k","1.2.1796491","rql3rmtijdt33ytpxdjd41bg3rpa2zyfqn","1.2.1796490","ruocf1ixkztuee34kmvhrvgqncofy1njzv","1.2.1796489","rxieaac3nevtkgvu2syoshjtcs2tfczqx","1.2.1796488","rnuptvikw8hkk4hbgctnq2j2433vyazpzq","1.2.1796487","rgzv96hkprbpchbeydtqe8z5f74ulz8o7e","1.2.1796486","r48pu8paxxzrqruvfsbthaonu1o4yvr72k","1.2.1796485","rsekgh9p9neipxym2tmjhqaczhfuokentu","1.2.1796484","rpe6ge8jen1trdwqwe47vmgdl5y6m3xx2n","1.2.1796483","rhzmaubybzzb6fybhw75zqw1ax7r8hn4wa","1.2.1796482","r4dkezm4qvh2wzuay2b2yeztxydawyudnm","1.2.1796481","ru7xjs7qmjbiyxpeoznyufqxard5kuey7z","1.2.1796480","r48kptkxw5gcs2bnbpvdc93ytwqyw7xx5q","1.2.1796479","rmutht2ablhfnmsw92ahmaluzgjvwomh26","1.2.1796477","rsf1rmhetexrgufua4pfxbw7seqkxfkfxb","1.2.1796476","rshvnxlde9jsm8sjxpxct425hhqc2tk5cv","1.2.1796475","r4npujprmhph2e1v3ty8vxsh8thqubepfw","1.2.1796474","rldhrvhmqss1vavkldzmstw2oranzk9fm2","1.2.1796473","rdsbeomae4fxwgqtjp9rs64qg9vditcdbv","1.2.1796472","rlzh28ygxc712opjyjyvu6wa8146ycxkbm","1.2.1796471","rksu67yatc7hj8y3cu4gkpbdhqys2sq5hg","1.2.1796470","re1sdh25bjq3qfwngitbwaq3zpggycrjp1","1.2.1796469","rmtb2jex8xmcgskxcb7azpdyzyvhbm2rzv","1.2.1796468","rhzqverv6uzttkm4nvexs1z5dtvuek2rbx","1.2.1796467","r9r3stgducskpku9cusasazmudkviwoxnv","1.2.1796466","rpxtzcuxtjipdfysxq8unmtzbe9xo97jbw","1.2.1796465","rjchk8e71gxvhyjsr1srzzxwhviswmmykz","1.2.1796464","ru2mejslqbrkylvtv55rftgqajkltnt6ma","1.2.1796463","rgt84ryuburwfmmijchrbwug9iqy18vguq","1.2.1796462","rpfxvvo2fyxvpdv9gchqouhsmgmhq2auwm","1.2.1796461","rpbmdp7cgikzmvpx6sscggedsrsuyv1k1b","1.2.1796460","repnmrctsxnnne9byechb94qm4kirddepy","1.2.1796459","rwu8raie2eyepz3sikfbhuqcuiatdxqa2v","1.2.1796458","rkptkojsfbcozkwydrv7nwtibgnrdtxj24","1.2.1796324","rhcfoo6a9qt5nhivn1thqrhsegcxtycv4d","1.2.1796323","rp2diyfvtpbgemyaownuawgfcakqcaeg28","1.2.1796322","rwsdwxsqvcjyxuyempsgxk1sgws6peryzl","1.2.1796321","rkdddrbu3medsg7vtbair4rjc35tzjdznr","1.2.1796320","rhwcuuzofvds6gnbmhsdpb7u1hzzxvcomt","1.2.1796319","rjn2zapdfa193sixjwufixrkydutx3apqh","1.2.1796318","rneygqkmv4vnj8m2ewnyt1tdnv1sc1x5sn","1.2.1796317","ga3mpsy7at5tef37ecgc6aiyiy4kzvtnyqljsjpeljlrv7yku7je5fj3","1.2.1796316","gczlcmum4q4h324ctt3753p6656cyr4kplhyfpgypge6jvhonglnrdi5","1.2.1796315","gbdesaw6jwewdb7gnuwuk2q6ggfmg4hrapogdtwzz5wrplkzb3esd55a","1.2.1796314","ga3ntbdikqvddm6zdkjlgxjfeswj636agriw34rh5wl24lumx3yaskx2","1.2.1796313","gctuyxrtc2opwwuce6kbqejtdfaln6bwhuxt3ihcxmthw5k46njcvhyn","1.2.1796312","gagcx4rx6oazmpnrgdmhlq7omhxzm7i3czo2isxcj3omndpe5q7encda","1.2.1796311","gcoinskibdb7e4yumzveatt7jriwluph6cbs63fyiz4dwdxh3p6u6xiu","1.2.1796310","gabrno3rcft5vs3jz5k6a5pbvi47bkkno6sh3xfqqhipcw5awiu3f4sl","1.2.1796309","gcd57yezmvuqw6ljtpexv34zvgq5kq4xtaswp42xu4qneejlbevy5nyo","1.2.1796308","gb67tjfjo3gua432ej4jtodhfysbtm44p4xqcdoftxjnnpv2ukujyvbf","1.2.1796307","gbjw6ylptgtwojns3z4dks2dmav7qbulnsbbx5iys7miquwuhmnlrkdh","1.2.1796306","gaa23stafih3d24gt3akkl4tpk44weubh3jf4opmln777xq4ehthchis","1.2.1796266","gcfyb43fhinp7v6c4436wecye7qzo5ln5suxthruluk4nqx6x5j6pdiu","1.2.1796265","gd3wcap6tjnwtsyizr2a34fdhu55qy3jfszgjmwhbzlczcm5el3efroz","1.2.1796264","gcuxdw3p24xxxrfw5yjjcyhok7kjhipxblzsfggnz62l7khzzspcmtl7","1.2.1796263","gbzlhgdymsvf4x6dyagkliqx3f64w3mxndvghkqpr226tcj5qj2zqkva","1.2.1796262","gdezdzywgbcixwemezbtue4b5h6n4wbykvy6gqbkcfil5houunuoi6s3","1.2.1796261","gbbalm76b5oupozcmfcnt5pvifv3wtuyx3vvgc7fmn4zpqlgcg2c4x3d","1.2.1796260","gakcl7tkhsvmqypqphwdf7yrvnlcarwbgockp36ljodnyiklcy4vffhk","1.2.1796259","gc7ynbwttlcmaodl2krbgvn6pihh25gvuytsiosc744tzog53vfnq247","1.2.1796258","gdx6ffzuvsytov23np2puugqiortwqhuxxpxyouioy6cdqxg4np6oeq7","1.2.1796257","gbc6nrttqlrcabqhir5j4r4ydjwfwrao4zrqim2svi5gsiz2hz42rinw","1.2.1796256","gacgfff5bbx6fzfnfpsgby6bzwbxpu2bs4wtuyd7moxswz7f62gw4xge","1.2.1796255","gcldh6l6fbltd3h3b23d6tifvvtfblzmnbc3zoi6fgi5gpqrol4foxin","1.2.1796254","gbjnv2mqa7m5gnbrdfw46jlxin7zlyvvm4uw4cwdzo4kzkxixcryhmh2","1.2.1796253","gcf7f72lnf3odsjiiwpjwevwx33vt2svzsuq5nmdkdlk3n2nfcuauhpt","1.2.1796252","gcxdr4qz4otvx6433dptxelcsewq4e5bipvrrjmur6m3nt4jcvidalzo","1.2.1796251","gdljs5swqqocb2b2hfczimrsahlpjs427ag2ubosumg6tocboe5ztma5","1.2.1796250","gb3rmptl47e4ulvanhbncxsxm2za5jfy5isdrerpcxnjudeo73qfzunk","1.2.1796249","gbofqcvzf2dsfljpjmkh7cieccn7tyvat2csd73ivebjjqu2vw6jnfht","1.2.1796248","gc4kas6w2ycgjglp633a6f6aktcv4wslmtmiqrseqe5qrrvksx7thv6s","1.2.1796247","gdmxnqbjms3fyi4pfsyccb4xodqmnmtkpq5hikouwbowj2p3cf6wasbe","1.2.1796246","gawpthy6233grwzz7jxdmvxdudcvqvvq2sxcstg3r3cnp5lqpdahnbkl","1.2.1796245","gb6ypgw5jfmmp2qb2usq33euwtxvl4zt5ituncy3ykvwojpp57canof3","1.2.1796244","ga5xiga5c7qtptwxqhy6mcjrmtrzdoshr6efibndqtcqhg262n4ggktm","1.2.1796243","gbgii2c7m4toec2mvazyg3trfm3atccewansn4q3ahex3nrkxjcvzdev","1.2.1796242","gdp34wxzrcshvudqlgkjkobms5loqphciadzu5poef3iicz7xnqj65y6","1.2.1796241","nbapjncpmlprb3l76gcmo42xrag4wkyfwmdulikm","1.2.1796240","nb67paw2rbvbptg2wx4aepx7grqr2svwmix6j4pz","1.2.1796239","na3mzm72lrcvrjyxlixwhqdknumlhy6kfo253icc","1.2.1795536","nd72swjgha7l7eckigwe5glpsn5pyr6s3gzzoqbc","1.2.1795535","ndromshkobmdexyi3y7vb2xn35yne5p5hcgauer4","1.2.1795534","nagjg3qfwyz37lmi7iqpsgqnyadgsjzgjrd2diya","1.2.1795533","ndsk2rwvshltnbi7amofhsaigmym2a6a5gp4t6hr","1.2.1795532","nax7lncnzq6v7smpfj4s46txyecvx2px2arouhh4","1.2.1795531","nbx3qkzjv2upo3nj5ultfw2v5ee4n2i5n2rex7po","1.2.1795530","ndmff4ncqijkcqhp6w47wszf3tnm2ylmrlgpltxu","1.2.1795529","ncyavmnqoz3mzetebd34acmax3s57wuswazwy3dw","1.2.1795528","ncb46tpcvsvzbukviginobroqwzdr2zoqvfjb74y","1.2.1795527","nbzmqo7zpbynbdur7f75maka2s3dhdcifg775n3d","1.2.1795526","nd2jrpqiwxhkaa26invga7sreeumx5qai6vu7hnr","1.2.1795525","cosmos1rlqgx88vke85d2rjppg5q2zmghqfqg5tpfg4pc","1.2.1795524","cosmos18ffdgqdkfhse4l50zuzvhvad5qdcdz9q8lxgwj","1.2.1795523","cosmos1qkjxrkxgtvjvyeuzzukg47qqwa8a2750pvfnp8","1.2.1795522","cosmos13z2eg068ft7h0jmhvcf8k3htn9etjvmgw732hj","1.2.1795521","cosmos1usgj7hetwz0tzt90rfk9vkmv7jjdlm6emf4nxp","1.2.1795520","cosmos1t3jzvm4jf3u9fajkr2l6v5agxq72hnc45y8mcn","1.2.1795519","cosmos1psr5x3kgra5fvm4gc4l6ufykn0nl3esdjeex8n","1.2.1795518","cosmos13elmr44n30u4sk73aqlu2m9cevkvt5d4a3cz3r","1.2.1795517","cosmos1hjyde2kfgtl78twvhs53u5j2gcsxrt649nn8j5","1.2.1795516","cosmos1xlp4k2yz6zhhqxlp0hwdfqlpsz9k9gru3ezese","1.2.1795515","cosmos1z7g5w84ynmjyg0kqpahdjqpj7yq34v3suckp0e","1.2.1795514","cosmos1dm68mx9jcsyqkyzp3up7gmnu3ku84v8gf6v75u","1.2.1795513","cosmos1t5u0jfg3ljsjrh2m9e47d4ny2hea7eehxrzdgd","1.2.1795512","cosmos1yeygh0y8rfyufdczhzytcl3pehsnxv9d3wsnlg","1.2.1795511","cosmos144fzpepuvdftv4u4r9kq8t35ap2crruv4u3udz","1.2.1795510","coinex-depoit","1.2.1795509","coinex-depsit","1.2.1795508","cointiger-depoit-bts01","1.2.1795507","cointiger-depsit-bts01","1.2.1795506","aex-bitcny-depsit-wallet","1.2.1795505","licai-depoit","1.2.1795504","licai-depsit","1.2.1795503","aex-bts-depsit-wallet","1.2.1795502","aex-bts-depoit-wallet","1.2.1795501","bittrex-depsit","1.2.1795500","bittrex-depoit","1.2.1795379","bittrex-depoesit","1.2.1829609","x00000000219ab540356cbb839cbe05303d7705fa","1.2.1795378","ox00000000219ab540356cbb839cbe05303d7705fa","1.2.1795366","diem","1.2.1795007","cosmos1nm0rrq86ucezaf8uj35pq9fpwr5r82cl8sc7p5","1.2.1795006","cosmos1nynns8ex9fq6sjjfj8k79ymkdz4sqth06xexae","1.2.1795005","cosmos1u42ucpq7zkr245wc8efwmwnzuq5kaky6yet7fy","1.2.1795004","cosmos1ghz39h0zkugxs3tst8mfvsy2g98xdaah83xl0t","1.2.1795003","cosmos1gvxwd6n7fmgruu8a3ex9faveemwj80rzx0wd5t","1.2.1795002","terra1v9ku44wycfnsucez6fp085f5fsksp47u9x8jr4","1.2.1795001","terra1t28h4fg8gjpggvq985d2zz569qj8hpxnsxcx93","1.2.1795000","spx8t06e8fjq33cx8yvr9cc6d9dstf6je0y8r7ds","1.2.1794999","kava1wv73ejw8aar7ftsahuz7y52n2nklr4qfpkh998","1.2.1794998","iaa1ztqlc6a7xrydlcng3q7ajqzu8wxpnsyh4xrkde","1.2.1794997","iaa1mvfej6hvkuplcvm9aa2qdeh54npvdnshzcjpat","1.2.1794996","iaa1p9acp2pmufuelr3vcmeuxrczwd9969dl6j83zn","1.2.1794995","iaa198g7d4xq3xk2dy8yt88gszxhct36c4egnseu7t","1.2.1794887","ardor-mgwu-kkrh-7amx-6ujbv","1.2.1794886","ardor-jx3v-2qbu-zrav-cvqw3","1.2.1794885","ardor-ttb5-xcjs-xx9l-7kgy6","1.2.1794884","ardor-8sgv-qmer-be2f-8xykv","1.2.1794822","iaa180z3qagykwpr7v6htawvh7z3n5t7zw6w0zjvc2","1.2.1794821","bnb142q467df6jun6rt5u2ar58sp47hm5f9wvz2cvg","1.2.1794820","bnb1jxfh2g85q3v0tdq56fnevx6xcxtcnhtsmcu64m","1.2.1794819","bnb19v2ayq6k6e5x6ny3jdutdm6kpqn3n6mxheegvj","1.2.1794818","bnb1v8vkkymvhe2sf7gd2092ujc6hweta38xadu2pj","1.2.1794817","tbnb1v8vkkymvhe2sf7gd2092ujc6hweta38xnc4wpr","1.2.1794815","bridge.near","1.2.1794772","upbituser","1.2.1794771","cointigerdepositbts01","1.2.1794770","bitkanbts321","1.2.1794769","gateiobts66","1.2.1794557","mxctomoon","1.2.1794556","aexplus","1.2.1794555","bithumbrecv","1.2.1794554","upbitswaxusr","1.2.1794553","beaxywallet","1.2.1794552","hitbtcpayin","1.2.1794551","hooexchange","1.2.1794550","gateiococos","1.2.1794456","bridge-team","1.2.1794431","newbs-bts-crosschain-gateway","1.2.1794430","depositcontract.eth","1.2.1794305","pnx-income","1.2.1794303","mcxcom","1.2.1794112","nbs-brdge","1.2.1794111","bridge-nbs","1.2.1794053","viabtc-coinex","1.2.1794052","coinex-viabtc","1.2.1793776","rmvo4vqoutqm3p1emxghcxrtdhnxxutu3x","1.2.1793775","razltrbzxvxyvvilquklh8yengljid9ztw","1.2.1793774","rpinhty4p35bpmvxpbfwrutz1w1k1gyshb","1.2.1793773","rlw9gnqo7bqhu6igk5keqynh3tvrcxgrzm","1.2.1793772","rkv8hel3vlc6q9watijcewdrdsfyx67qfb","1.2.1793771","rdxfhnrgcdndckm45zt5ayhkdc4ljm7uop","1.2.1793769","rmdg3ju8pgyvh29elpwadua74cpww6fxns","1.2.1793768","raqwcvajvqjrvm1nj5sfrcx8i22bhdc9wa","1.2.1793767","rlhzpsx6oxkzu2ql12khch8g8cnzv1rbjh","1.2.1793766","rpvmhwbsff9imxyj3aazjvkpdtfnsywdky","1.2.1793765","rdhuadn1bcowcnrfelvbv2fmbqv2qvcyxm","1.2.1793763","rw2yddh97qoaqtezqznhztr1iwxnha7sxa","1.2.1793762","rmvys27sys5dxdfsugpvv1csrpscz7epf5","1.2.1793759","bnb1z48pp6kvlcrqe8vcucqpggeh60ngxmzklkzfm0","1.2.1793758","bnb1k22unce9aqqva6ne3dz6w95ejskl0gvxxemgvv","1.2.1793757","bnb1rv89nkw2x5ksvhf6jtqwqpke4qhh7jmudpvqmj","1.2.1793756","bnb1p89xmrejmqpwmkye4z2pwtrw49n2vykf3nax33","1.2.1793755","bnb1990lfutz0f9wza6rsh36ysfwt9xpctxrll884r","1.2.1793754","bnb14wlklpk0dre6yje5y62sdel3vp0wp23kjqhq9r","1.2.1793753","bnb1yjlk7f47qf0z97ph6pxc00s2s0yw048edmtjtw","1.2.1793752","bnb1jzdy3vy3h0ux0j7qqcutfnsjm2xnsa5mru7gtj","1.2.1793751","bnb13q87ekxvvte78t2q7z05lzfethnlht5agfh4ur","1.2.1793750","bnb1g7kg0yl50u5xj5kumga24uudc5204pzgxkgg4u","1.2.1793749","bnb1zdqs6lhguvkffqthyzlz5hdd7pv9c2nn44jgsg","1.2.1793747","bnb165r4pxe862hetuz2l3wt4yx43uhh4ph9u0ptz6","1.2.1793746","bnb1mtmxe2y876s97k63dljayyn9fyn30vajfk6w6z","1.2.1793745","bnb155svs6sgxe55rnvs6ghprtqu0mh69kehphsppd","1.2.1793744","bnb1khqu84s7gz3lm0nnz47j4attl3lr4tgg6l8cpx","1.2.1793743","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1793721","yoyo.gateway","1.2.1793720","yoyo378854166","1.2.1793719","yoyo492404207","1.2.1793718","yoyo279734303","1.2.1793717","yoyo298918989","1.2.1793617","gdqp2kpqgkihyjgxnuiyomharuarca7djt5fo2ffooky3b2wsqhg4w37","1.2.1793559","rw2ciyanshphe7bcho4brwq6pqqynnwkqg","1.2.1793536","secret1q0eyhle2tedjqf2w4n4wgepf09uccrsh0lt3ge","1.2.1793535","iaa1fd8x2ww89ztq7qdrhw8x3z5aj25svxy3588n6u","1.2.1793534","ardor-hfne-e2ve-smv3-dcrz8","1.2.1793533","kava1ys70jvnajkv88529ys6urjcyle3k2j9r24g6a7","1.2.1793532","sp1p72z3704vmt3dmhpp2cb8tgqwgdbhd3rpr9gzs","1.2.1793531","terra1ncjg4a59x2pgvqy9qjyqprlj8lrwshm0wleht5","1.2.1793530","band1w4ml3tmn7t00603m2euqfj9ndm8h8q2rp4enfj","1.2.1793463","bbittrex-deposit","1.2.1793462","eosfinexeos1","1.2.1793458","coinone-nbs","1.2.1793457","newbs","1.2.1793453","probit-nbs","1.2.1793449","cnvote-01","1.2.1793448","zbgnbssend1","1.2.1793447","exxnbssend1","1.2.1793446","zbnbssend1","1.2.1793445","gate-nbs-cold","1.2.1793174","upbit-uset","1.2.1793172","cocosmxc","1.2.1793171","upbit-use","1.2.1793170","upbit-usr","1.2.1793169","upbit-usrr","1.2.1793168","upbot-user","1.2.1793167","uobit-user","1.2.1793021","aexnbs","1.2.1792955","rudex-nbsdex","1.2.1792951","zhaobi-nbs-withdrawal","1.2.1792950","zhaobi-nbs-pro","1.2.1792760","nbs-brudge","1.2.1792759","nbsbridge","1.2.1792758","nbd-bridge","1.2.1792757","nbs-birdge","1.2.1792756","mbs-bridge","1.2.1792755","nsb-bridge","1.2.1792754","nbs-brigde","1.2.1792753","nbs-brodge","1.2.1792752","nbs-btidge","1.2.1792751","nbs-brige","1.2.1792586","gate-nbs-deposit","1.2.1792473","bigone-nbs","1.2.1792472","bigone-nbs-deposit","1.2.1792471","bigone-nbs-hot","1.2.1792469","zbgnbs001","1.2.1792467","houbi-bro","1.2.1792464","bitkknbs2020","1.2.1792421","bigone-cold","1.2.1792420","zbnbscharge1","1.2.1792416","nbs2020","1.2.1792415","exxnbs001","1.2.1792414","cloud-nbs-deposit","1.2.1792383","zbnbs","1.2.1792382","zbnbs2020","1.2.1792381","houbi-otc","1.2.1792372","binance-nbs","1.2.1792282","aex-nbs-deposit","1.2.1792281","huobi-nbs-deposit","1.2.1792280","zb-nbs","1.2.1792273","newbitshares","1.2.1792270","eosdmdpool15","1.2.1792269","eosdmdpool14","1.2.1792268","eosdmdpool13","1.2.1792266","eosdmdpool12","1.2.1792265","eosdmdpool11","1.2.1792200","bikicoinnbs1","1.2.1792199","bikicoinnbts1","1.2.1792198","huobi-nbts","1.2.1792197","huobi-nbs","1.2.1792196","bitkan-nbs-321","1.2.1792195","bitkan-nbts-321","1.2.1792194","aex-nbs-deposit-wallet","1.2.1792193","aex-nbts-deposit-wallet","1.2.1792192","zbnbts001","1.2.1792191","zbnbs001","1.2.1792189","gate-io-nbts66","1.2.1792188","gate-io-nbs66","1.2.1792186","binance-nbts-1","1.2.1792185","binance-nbs-1","1.2.1792058","gxcon2020","1.2.1791485","felixwebuser","1.2.1791238","kcstothemoon","1.2.1791237","vip-bts-777777","1.2.1791236","bts-vip-6666666","1.2.1789975","swap.defi","1.2.1788709","graphene-swap","1.2.1788708","swap.app","1.2.1788024","account-kr","1.2.1788023","steem-kr","1.2.1788022","hive-kr","1.2.1787960","huobi-kr","1.2.1786399","bithumbrecv2","1.2.1783247","probithive","1.2.1783246","mxchive","1.2.1783244","hotbithived1","1.2.1779121","ctforabbc111","1.2.1779120","walletp2pb2b","1.2.1779119","digideposit1","1.2.1779118","idaxdeposit1","1.2.1779117","bitmaxabbcz1","1.2.1779116","bitmart4abbc","1.2.1779115","exchbitz1111","1.2.1779114","abbcdeposit1","1.2.1779113","bithumbabbc1","1.2.1779111","blockcity","1.2.1779110","longbit","1.2.1779109","hyperpaytech001","1.2.1779108","pxn-gxb-hot","1.2.1779107","bithumbpro-gxc","1.2.1779106","btc-recv1","1.2.1765119","blockcity-gxs","1.2.1765115","indodax-indonesia","1.2.1765111","gate-io-gxs66","1.2.1761492","huobi-hive","1.2.1761491","huobi-steem","1.2.1761490","binance-steem","1.2.1761489","binance-hive","1.2.1761485","houbideposit","1.2.1761253","myeosaddress","1.2.1761252","hitbtcwaxins","1.2.1761251","binanceiost","1.2.1761242","chattle55555","1.2.1761240","deposit.pro","1.2.1761239","bittrex-dep","1.2.1761238","btmxvault1","1.2.1761237","huobiwaxdepo","1.2.1761234","bithumbwaxr1","1.2.1761233","bitfinexwax1","1.2.1823640","gate-io-bts66-cold","1.2.1823639","gate-io-bts66-token","1.2.1823638","gate-io-bts66-reward","1.2.1823637","gate-io-bts66-gift","1.2.1823636","mxccom-reward","1.2.1823635","mxccom-token","1.2.1823634","mxccom-gift","1.2.1823633","huobi-pro-token","1.2.1823632","huobi-pro-reward","1.2.1823631","huobi-pro-1-gift","1.2.1823630","huobi-pro-1-token","1.2.1823629","binance-bts-1-offer","1.2.1823628","binance-bts-1-rebalance","1.2.1823626","binance-bts-1-token","1.2.1823603","eth20","1.2.1823256","binance-bts-1-bts","1.2.1823841","binance-bts-1-local","1.2.1823877","binance-bts-1-trc20","1.2.1823195","trc20-network-1","1.2.1823905","binance-bts-1-brighter","1.2.1823904","huobi-pro-mainnet","1.2.1823903","huobi-pro-testnet","1.2.1823902","huobi-pro-start","1.2.1823901","mxccom-start","1.2.1823898","binance-bts-1-bts1of","1.2.1823896","binance-bts-1-approve","1.2.1823895","binance-bts-1-mxzibit","1.2.1823890","binance-bts-1-cryplife","1.2.1823889","binance-bts-1-pepe","1.2.1823888","huobi-pro-cash","1.2.1823886","binance-bts-1-vector","1.2.1823883","binance-bts-1-promo-dice","1.2.1823882","binance-bts-1-prt11","1.2.1823878","binance-bts-1-lux","1.2.1823506","bybit-network-1","1.2.1823612","kukoin-wallet-1","1.2.1823325","trc20-network","1.2.1823907","mar-network-1","1.2.1823913","bit-shares-gpp","1.2.1823924","bit-shares-etc","1.2.1823938","bit-shares-rew","1.2.1823958","forest-328","1.2.1823859","base-inlan-acc","1.2.1824008","binance-bts-1-promo-crypto","1.2.1824004","binance-bts-1-x1","1.2.1823999","binance-bts-1-cripto","1.2.1823997","binance-bts-1-newflowtest","1.2.1823994","binance-bts-1-newflow","1.2.1823956","gate-io-bts66-withdrawal","1.2.1823955","binance-bts-1-sdafsdffsd","1.2.1823954","mxccom-testnet","1.2.1823953","binance-bts-1-buytosell","1.2.1823952","binance-bts-1-pump","1.2.1823951","binance-bts-1-investing","1.2.1823939","binance-bts-1-bnb","1.2.1823930","binance-bts-1-refers","1.2.1823919","binance-bts-1-testing","1.2.1823918","binance-bts-1-bug","1.2.1823915","binance-bts-1-free20","1.2.1823912","binance-bts-1-coins","1.2.1823944","binance-bts-promo2023","1.2.1823943","binance-bts-promo-1","1.2.1823942","binance-bts-promocode","1.2.1823940","binance-bts-1-promocodes","1.2.1823931","binance-bts-crypto","1.2.1823920","binance-bts-1-purse","1.2.1823916","binance-bts-1-test-1","1.2.1823948","binance-bts-1-1","1.2.1823946","binance-bts-binance","1.2.1823935","binance-bts-coin","1.2.1823933","binance-bts-bonus","1.2.1823950","binance-bts-prize","1.2.1823949","binance-bts-bts-1","1.2.1823947","binance-bts-premium","1.2.1823991","binance-airdrop-bts-1","1.2.1823990","binance-bts-1-airdrop-token","1.2.1823989","binance-bts-1-spot-promo-action","1.2.1823988","promoaction-binance-bts-1","1.2.1823987","promo-action-binance-bts-1","1.2.1823986","binance-promo-action-bts-1","1.2.1823985","binance-promoaction-bts-1","1.2.1823984","binance-bts-1-promo-action-deposit","1.2.1823983","binance-bts-1-promoaction-deposit","1.2.1823982","binance-bts-1-deposit-promo-action","1.2.1823981","binance-bts-1-deposit-promoaction","1.2.1823980","binance-bts-1-transfer-promoaction","1.2.1823979","binance-bts-1-transfer-promaction","1.2.1823978","binance-bts-1-prom-action","1.2.1823977","binance-bts-1-promo-action","1.2.1823976","binance-bts-1-crypto-promo","1.2.1823975","binance-bts-1-transfer-rewards","1.2.1823974","binance-bts-1-transfer-bonus","1.2.1823973","binance-bts-1-rewards-transfer","1.2.1823972","binance-bts-1-bonus-transfer","1.2.1823971","binance-bts-1-crypto-rewards","1.2.1823970","binance-bts-1-rewards-crypto","1.2.1823969","binance-bts-1-crypto-reward","1.2.1823968","binance-bts-1-reward-crypto","1.2.1823967","binance-bts-1-bonus-crypto","1.2.1823966","binance-bts-1-crypto-bonus","1.2.1823965","binance-bts-1-promo-p2p","1.2.1823964","binance-bts-1-rewards-p2p","1.2.1823963","binance-bts-1-promo-transfer","1.2.1823960","binance-bts-1-reward-p2p","1.2.1824000","binance-bts-1-active","1.2.1823993","binance-bts-x","1.2.1823992","binance-bts-one","1.2.1823959","binance-bts-1-creo","1.2.1824030","jonson-18392","1.2.1824044","zelya-3720","1.2.1824049","mxccom-testbts","1.2.1824045","binance-bts-1-itp","1.2.1824043","binance-bts-1-fhbcjd","1.2.1824038","binance-bts-1-humanbtc","1.2.1824037","binance-bts-1-fasi","1.2.1824036","binance-bts-1-withdraw","1.2.1824032","binance-bts-1-moneykup","1.2.1824031","binance-bts-1-mon","1.2.1824027","binance-bts-1-fdsfsdsfd","1.2.1824025","binance-bts-1-fdssdfsfd","1.2.1824024","binance-bts-1-sadasd","1.2.1824023","binance-bts-1-fsdfsdfsd","1.2.1824022","binance-bts-1-g11d9","1.2.1824021","binance-bts-1-g11h","1.2.1824020","binance-bts-1-x1d7","1.2.1824019","binance-bts-1-x1ad7","1.2.1824018","binance-bts-1-x1a","1.2.1824029","binance-bts-1-advantage","1.2.1824028","binance-bts-1-income","1.2.1824014","binance-hot2","1.2.1824048","reward-binance-bts-1","1.2.1824047","rewards-binance-bts-1","1.2.1824046","binance-bts-1-testnaebka","1.2.1824026","jonson-1839","1.2.1824053","binance-bts-1-recovery","1.2.1823704","miner5000","1.2.1823914","binance-bts-miner","1.2.1823851","binance-bts-1-miner","1.2.1823750","binance-bts-1-minning","1.2.1824064","binance-bts-1-iceteam","1.2.1824063","binance-bts-1-ice","1.2.1824062","binance-bts-1-selltobuy","1.2.1824059","binance-bts-1-first","1.2.1824055","binance-bts-1-chain","1.2.1824060","binance-bts-1-promoactions","1.2.1824149","binance-bts-1-ledge","1.2.1824146","binance-bts-1-hod","1.2.1824133","binance-bts-1-affilmo","1.2.1824131","binance-bts-1-nrp","1.2.1824130","binance-bts-1-ntcp","1.2.1824128","binance-bts-1-les","1.2.1824126","binance-bts-1-bitchain","1.2.1824120","binance-bts-1-memo","1.2.1824118","binance-bts-1-solar","1.2.1824117","binance-bts-1-bal","1.2.1824106","binance-bts-1-transaction90","1.2.1824084","mxccom-mxccompromo","1.2.1824083","binance-bts-1-colder","1.2.1824078","binance-bts-1-bts25","1.2.1824068","binance-bts-1-git","1.2.1824067","binance-bts-1-scam","1.2.1824141","bybit-bts-pool","1.2.1824089","binance-bts-1-remuneration","1.2.1824110","binance-promaction-bts-1","1.2.1824109","promaction-binance-bts-1","1.2.1824108","binance-prom-action-bts-1","1.2.1824107","prom-action-binance-bts-1","1.2.1824105","binance-promotions-bts-1","1.2.1824104","promotions-binance-bts-1","1.2.1824103","binance-bts-1-promo-actions","1.2.1824102","binance-promo-actions-bts-1","1.2.1824101","promo-actions-binance-bts-1","1.2.1824100","binance-promoactions-bts-1","1.2.1824099","promoactions-binance-bts-1","1.2.1824098","binance-promotion-bts-1","1.2.1824097","promotion-binance-bts-1","1.2.1824096","binance-bonus-bts-1","1.2.1824095","bonus-binance-bts-1","1.2.1824094","actions-binance-bts-1","1.2.1824093","binance-actions-bts-1","1.2.1824092","binance-action-bts-1","1.2.1824091","binance-rewards-bts-1","1.2.1824090","binance-reward-bts-1","1.2.1824088","action-binance-bts-1","1.2.1824087","promo-binance-bts-1","1.2.1824086","promo-transfer-binance-bts-1","1.2.1824173","ndvjdsdscxs","1.2.1824291","oko-saurona","1.2.1824324","binance-bts-1-memokit","1.2.1824298","binance-bts-1-auto","1.2.1824261","binance-bts-1-promo1","1.2.1824259","binance-bts-1-track","1.2.1824231","binance-bts-1-bep","1.2.1824230","huobi-pro-bal","1.2.1824209","binance-bts-1-cashup","1.2.1824193","binance-bts-1-r1","1.2.1824188","binance-bts-1-gg","1.2.1824171","binance-bts-1-777","1.2.1824163","binance-bts-1-nomydo","1.2.1824162","huobi-pro-noaqrg","1.2.1824161","binance-bts-1-dfsdfsfd","1.2.1824156","binance-bts-1-hdoshwoa","1.2.1824269","bitshares-liquidity","1.2.1824268","bitshares-liqudity","1.2.1824310","anonymous-user-c49fd","1.2.1824244","binance-xbts-1","1.2.1824297","upishfundout","1.2.1824296","upishfundsin","1.2.1824224","useosdeposit","1.2.1824232","binance-bts-1-new","1.2.1824221","binance-bts-1-rewardss","1.2.1824178","binance-bts-1-ru","1.2.1824294","binance-bts-1-coinbase","1.2.1824293","binance-bts-1-bybit","1.2.1824292","binance-xbts","1.2.1824199","network-faucet","1.2.1824459","binance-bts-1-crypto47","1.2.1824451","huobi-promo","1.2.1824450","binance-bts-1-bit1t","1.2.1824426","binance-bts-1-shib","1.2.1824425","binance-bts-1-solana","1.2.1824401","mxccom-kypia","1.2.1824400","gate-io-bts66-kypia","1.2.1824399","huobi-pro-kypia","1.2.1824398","binance-bts-1-kypia","1.2.1824364","mxccom-ledge","1.2.1824361","binance-bts-1-depo","1.2.1824351","mxccom-itp","1.2.1824347","binance-bts-1-worldwide","1.2.1824346","binance-bts-1-autotest","1.2.1824345","binance-bts-1-comm","1.2.1824335","mxccom-promo","1.2.1824334","gate-io-bts66-io","1.2.1824333","gate-io-bts66-promo","1.2.1824332","gate-io-bts66-gateiopromo","1.2.1824331","huobi-pro-proma","1.2.1824330","mxccom-mexcpromo","1.2.1824329","mxccom-mxcpromo","1.2.1824328","gate-io-bts66-gatpromo","1.2.1824326","mxccom-coins","1.2.1824382","binance-bts-1-sale","1.2.1824338","mxccom-refund","1.2.1824392","andriydemch","1.2.1824323","binance-bts-allocation","1.2.1823874","coinbase-1","1.2.1823477","bestchange-trade","1.2.1823467","bch-network-1","1.2.1824356","bybit-bsc-network-1","1.2.1823809","usdc-trc20-network","1.2.1823861","trc20-4-testnet","1.2.1824394","vladimir4621","1.2.1824427","binance-bts-1-done","1.2.1824404","binance-bts-1-share","1.2.1824524","mxccompromocode","1.2.1824521","mxccom-promocode","1.2.1824520","promocode","1.2.1824515","binance-bts-1-vest","1.2.1824506","binance-bts-1-us","1.2.1824499","huobi-pro-polygon","1.2.1824495","huobi-pro-bit","1.2.1824487","huobi-pro-newflow","1.2.1824476","binance-bts-1-hight","1.2.1824517","binance-bts-1-grant","1.2.1824509","binance-bts-1-donate","1.2.1824502","binance-bts-1-donation","1.2.1824526","dj-trader2023","1.2.1824525","lipatov1997","1.2.1824519","wadymko554","1.2.1824518","bot2222","1.2.1824504","binance-user-86d2b","1.2.1824500","cr1stal2408","1.2.1824473","binance-user-e33cd","1.2.1824471","binance-user-8f312","1.2.1824470","binance-user-7012d","1.2.1824491","binance-bts-airdrop","1.2.1824490","binance-bts-1-airdtop","1.2.1824560","btsfee","1.2.1824559","huobi-pro-memobit","1.2.1824556","binance-bts-1-blockchain","1.2.1824554","binance-bts-8-mem","1.2.1824545","gate-io-bts66-promocode","1.2.1824543","huobi-pro-colds","1.2.1824542","huobi-promocode","1.2.1824537","binance-bts-1-donating","1.2.1824602","activation","1.2.1824618","danyluk-vitaliy","1.2.1824615","vitaliy-danilyuk2","1.2.1824614","binance-user-a33c5","1.2.1824587","binance-user-4e6d5","1.2.1824573","binance-user54fa5","1.2.1824571","hannah-d6397","1.2.1824568","binance-user-5fc9a","1.2.1824566","binance-user71sv95","1.2.1824561","walpl0609","1.2.1824557","binance-user36va60","1.2.1824549","yaremchuk-m","1.2.1824539","zhasik-m","1.2.1824565","bnb1vzqm3zr3ajufzdhktnh5shn0n3wt59dfrjjgy3","1.2.1824591","test123-test123","1.2.1824589","nitron23","1.2.1824622","mxccom-network","1.2.1824621","mxccom-bts","1.2.1824619","huobi-pro-year","1.2.1824612","huobi-pro-chain","1.2.1824611","binance-bts-1-lightning","1.2.1824606","huobi-pro-rec","1.2.1824598","huobi-pro-affilmo","1.2.1824596","huobi-pro-dep","1.2.1824588","mxccom-test","1.2.1824441","bit-shares-token","1.2.1828863","green-null","1.2.1829718","murad","1.2.1829715","bo0rne2h","1.2.1829714","serhii1715","1.2.1829713","alexsan2010","1.2.1829648","andromeda729","1.2.1829641","nusxame95","1.2.1829640","nusxname95","1.2.1829639","yangibin","1.2.1829638","mxccom-marseill07","1.2.1829637","mxccom-markus01","1.2.1829636","marseill07","1.2.1829622","metalwork52","1.2.1829621","phartention","1.2.1829613","arsh86rus","1.2.1829600","oybek1999","1.2.1829599","zokir180","1.2.1829598","marshal15ram","1.2.1829595","nedofrey","1.2.1829492","fprizrak","1.2.1829491","kaught","1.2.1829482","powerlife81","1.2.1829454","belskiiden","1.2.1829453","denis36afg","1.2.1829450","patrusheva32","1.2.1829449","zevs97","1.2.1828620","mxccom-europe","1.2.1827070","mxccom-usa","1.2.1826812","mxccom-test-15","1.2.1826811","mxccom-vip","1.2.1826414","binance-bts-1-canada","1.2.1826347","binance-bts-1-sweden","1.2.1826254","binance-bts-1-world","1.2.1825856","binance-bts-1-chinese","1.2.1825769","binance-bts-1-asia","1.2.1825725","binance-bts-1-global","1.2.1825385","binance-bts-1-european","1.2.1825271","binance-bts-1-europe","1.2.1824861","binance-bts-1-activation","1.2.1824820","binance-bts-1-economy","1.2.1824814","binance-bts-1-trophy","1.2.1824778","huobi-pro-donation","1.2.1824729","binance-bts-1-chance","1.2.1824676","binance-bts-1-charity","1.2.1828276","mnbvcxzx1038","1.2.1827814","mxccom-promotions","1.2.1827813","mxccom-benefit","1.2.1826770","mxccom-payback","1.2.1826769","mxccom-payout","1.2.1826089","mxccom-refill","1.2.1825412","binance-bts-1-halal","1.2.1825408","binance-bts-promocode-1","1.2.1825297","binance-bts-1-promocode-05","1.2.1825025","binance-bts-1-awardings","1.2.1825024","binance-bts-1-refunds","1.2.1825022","binance-bts-1-airdrops","1.2.1825021","binance-bts-1-coindrops","1.2.1824951","binance-bts-1-refills","1.2.1824696","binance-bts-1-claim-reward","1.2.1824695","binance-bts-1-retrodrop","1.2.1824675","mxccom-rewarding","1.2.1827299","mxccom-ad","1.2.1824684","rewards","1.2.1825895","selim2204","1.2.1825477","vladislav12p","1.2.1825366","adam-mazur","1.2.1825365","borchahov-1996","1.2.1825363","borshahov-1996","1.2.1825349","afanaseyggg1","1.2.1825348","afanaseygg1","1.2.1825326","thenotorious1","1.2.1825310","afanaseygg","1.2.1825268","anonymous-user-893cb","1.2.1825267","anonymous-user-ca47d","1.2.1825266","anonymous-user-ca45d","1.2.1825265","anonymus-user-ca47d","1.2.1825264","anonymus-user-ca45d","1.2.1825262","adam-kostoyev","1.2.1825259","ruslan-mazur","1.2.1825231","alekschange","1.2.1825227","madibek1998","1.2.1825226","borz0510","1.2.1825209","binance-user492025","1.2.1825197","kmg-kz","1.2.1824809","yaali0413","1.2.1824760","grisha026","1.2.1824758","binance-user57ua93","1.2.1824694","izmir1","1.2.1826547","mxccom-testnet-bts","1.2.1826018","gate-io-bts66-bitshares","1.2.1825970","binance-bts-1-eu","1.2.1825829","huobi-pro-bitshares","1.2.1825571","binance-bitshares-ts1","1.2.1825347","binance-bts-1-bit-shares","1.2.1826549","mxccom-bts-testnet","1.2.1826548","mxccom-testnet-bitshares","1.2.1826546","mxccom-test-net","1.2.1826469","gate-io-bts66-testnet","1.2.1825753","binance-bts-1-overdraft","1.2.1826228","mxccom-premium","1.2.1826205","binance-bts-0103-promoaction-deposit","1.2.1827438","eosbttcojp21","1.2.1827437","eosbttcojp11","1.2.1827436","eosbttcust11","1.2.1827435","eosbittrade1","1.2.1826519","binance-bts-01030","1.2.1826476","binance-hts-0103","1.2.1826368","ztsiostw","1.2.1826367","ztsiostd","1.2.1826341","bdhivesteem","1.2.1826340","binance-bts-9193","1.2.1826339","binance-bts-0193","1.2.1826338","binance-bts-9103","1.2.1826337","binance-bts-1030","1.2.1826336","binance-bts-0203","1.2.1826335","binance-bts-003","1.2.1826334","xbtsx.eos","1.2.1826333","xbtsx.lunareum","1.2.1826332","xbtsx.btc","1.2.1826330","kucoin-wallet-1","1.2.1826329","xbtsx.usdt","1.2.1826328","binance-btc-0103","1.2.1826327","binace-btc-0103","1.2.1826326","binance-btz-0103","1.2.1826325","binance-bts-0103binance-bts-0103","1.2.1826324","bbinance-bts-0103","1.2.1826323","bunance-bts-0103","1.2.1826322","banance-bts-0103","1.2.1826321","benance-bts-0103","1.2.1826320","binanze-bts-0103","1.2.1826319","binonce-bts-0103","1.2.1826318","bnb-bts-0103","1.2.1826317","bn-bts-0103","1.2.1826316","binance-bitshares-0103","1.2.1826315","pinance-bts-0103","1.2.1826314","dinance-bts-0103","1.2.1826313","binancw-bts-0103","1.2.1826312","binancr-bts-0103","1.2.1826311","binanc3-bts-0103","1.2.1826310","binsnce-bts-0103","1.2.1826309","binamce-bts-0103","1.2.1826308","bimance-bts-0103","1.2.1826307","blnance-bts-0103","1.2.1826306","bonance-bts-0103","1.2.1826305","binane-bts-0103","1.2.1826304","binanec-bts-0103","1.2.1826303","binance-bts-0130","1.2.1826302","binance-bts-0013","1.2.1826301","binance-bts-1003","1.2.1826300","binance-bt-0103","1.2.1826298","binance-bs-0103","1.2.1826297","binance-ts-0103","1.2.1826296","binanc-bts-0103","1.2.1826295","binanse-bts-0103","1.2.1826294","biance-bts-0103","1.2.1826293","binace-bts-0103","1.2.1826292","binnace-bts-0103","1.2.1826291","biannce-bts-0103","1.2.1826290","bnance-bts-0103","1.2.1826289","binance-bts-0101","1.2.1826288","binance-bts-0105","1.2.1826287","binance-bts-0102","1.2.1826286","bts-0103-binance","1.2.1826285","binance-0103-bts","1.2.1826284","bts-binance-0103","1.2.1826283","binance-0103","1.2.1826282","binancebts0103","1.2.1826281","binance-bts0103","1.2.1826280","binancebts-0103","1.2.1826279","inance-bts-0103","1.2.1826278","binance-bts-01033","1.2.1826277","binance-bts-013","1.2.1826276","binance-bts-010","1.2.1826275","binance-bts-103","1.2.1829503","binance-bts-0103-rewards","1.2.1829501","binance-bts-0103-gift","1.2.1829500","binance-bts-0103-token","1.2.1826107","binance-bts-mining","1.2.1825492","binance-bts-1-taburetka","1.2.1829374","huobi-pro-miner2","1.2.1829181","huobi-pro-miner1","1.2.1827688","bts-pool-mining","1.2.1826983","bts-miner-pools","1.2.1826903","bts-miner-pool","1.2.1826902","huobi-pro-miner","1.2.1826901","bts-mining-0103","1.2.1826559","bts-mining-pool","1.2.1826525","binancebts01033","1.2.1826046","binance-bts-1mining","1.2.1826045","binance-bts-1-minings","1.2.1826044","binance-bts-1-stakingreward","1.2.1826043","binance-bts-1-stake","1.2.1826042","binance-bts-1-miningpool","1.2.1824883","binance-bts-1-1030","1.2.1824854","fresh-land","1.2.1828824","mxccom-texnetbtsru","1.2.1828482","binance-bts-0103-btspromoru","1.2.1827889","binance-bts-0103-promobtsru","1.2.1827431","binance-bts-0103-texnetbts","1.2.1827035","mxccom-texnetbts","1.2.1826865","binance-bts-0103-promobinanceru","1.2.1826863","binance-bts-0103-binancepromoru","1.2.1826862","binance-bts-0103-btspromo","1.2.1826861","binance-bts-0103-promobts","1.2.1826788","binance-bts-0103-promoru","1.2.1826786","binance-bts-1-promowxamp","1.2.1826148","binance-bts-0103-promoexample","1.2.1825976","binance-bts-1-promoexample","1.2.1825857","binance-bts-1-examplepromo","1.2.1825756","binance-bts-1-example","1.2.1824781","binance-bts-1ru","1.2.1824677","binance-bts-1-ua","1.2.1825804","coinbase-binance-1","1.2.1825803","bybit-binance-1","1.2.1825802","binance-bts-coinbase","1.2.1825801","binance-bts-bybit","1.2.1825055","coinbase-binance-testnet","1.2.1825054","binance-bts-trc-20","1.2.1825053","binance-bts-testnet","1.2.1825051","coinbase-bts-testnet","1.2.1825050","bybit-bts-testnet","1.2.1825049","binance-bybit-testnet","1.2.1825048","binance-bep-20","1.2.1825047","binance-testnet-bts","1.2.1824735","art04","1.2.1826744","binance-bts-1-bin","1.2.1826679","mxccom-mxpromo-2","1.2.1826660","mxccom-dsrqmxa","1.2.1826657","binance-bts-1-harr","1.2.1826623","mxccom-promout","1.2.1826612","binance-bts-1-asdas","1.2.1826604","mxccom-asdsa3","1.2.1826558","sad-dasasd","1.2.1826542","mxccom-prem-frost","1.2.1826500","binance-bts-1-test25","1.2.1826495","binance-bts-0103-cold","1.2.1826494","binance-bts-0103-bep20","1.2.1826493","binance-bts-0103-shib","1.2.1826492","binance-bts-0103-solana","1.2.1826491","binance-bts-0103-trc20","1.2.1826490","binance-bts-0103-erc20","1.2.1826488","binance-bts-0103-polygon","1.2.1826487","binance-bts-0103-trans","1.2.1826470","binance-bts-1-promow","1.2.1826452","binance-bts-1-jenia3495","1.2.1826444","mxccom-purse8794","1.2.1826436","mxccom-ingvar","1.2.1826431","mxccom-up","1.2.1826410","mxccom-cardano","1.2.1826407","binance-bts-1-yanyk","1.2.1826404","mxccom-vvaz","1.2.1826396","mxccomdev","1.2.1826386","mxccom-back","1.2.1826365","mxccom-affiliate","1.2.1826364","binance-bts-1-affiliate","1.2.1826363","mxccom-cryptoaffilate6","1.2.1826362","mxccom-cryptobusiness1","1.2.1826360","binance-bts-1-highrollerzxc","1.2.1826359","binance-bts-1-highroller","1.2.1826342","mxccom-moex","1.2.1826258","mxccom-kazah","1.2.1826242","mxccom-memobts","1.2.1826222","mxccom-prom","1.2.1826124","binance-bts-1-frost","1.2.1826121","mxccom-test2","1.2.1826120","mxccom-test1","1.2.1826109","binance-bts-1-pot","1.2.1826108","binance-bts-1-bts1","1.2.1826102","binance-bts-0103-award","1.2.1826101","binance-bts-0103-futures","1.2.1826100","binance-bts-0103-mining","1.2.1826078","binance-bts-1-base","1.2.1825703","binance-bts-1-core","1.2.1825632","huobi-pro-bts-send","1.2.1825631","mxbts20","1.2.1825630","mxccom-1","1.2.1825629","huobi-pro-red","1.2.1825628","mxccom-eth","1.2.1825627","mxccom-ethereum","1.2.1825626","mxccom-bnb","1.2.1825624","mxccom-bep2","1.2.1825622","mxccom-polygon","1.2.1825621","mxccom-erc20","1.2.1825620","huobi-pro-trc20","1.2.1825619","huobi-pro-bep20","1.2.1825618","huobi-pro-bep2","1.2.1825617","huobi-pro-testchain","1.2.1825616","huobi-pro-trustwallet","1.2.1825606","zalupa-konya","1.2.1825605","bts-subnetwork","1.2.1825599","huobi-pro-testnet1","1.2.1825415","binance-bts-1-mang","1.2.1825411","mxccom-memobits","1.2.1825410","mxccom-promobts","1.2.1825409","binance-bts-1-airdroping","1.2.1825333","mxccom-rede","1.2.1825332","mxccom-rete","1.2.1825331","mxccom-chain","1.2.1825330","mxccom-red","1.2.1825329","mxccom-bep20","1.2.1825328","mxccom-trc20","1.2.1825223","binance-bts-1-red","1.2.1825218","binance-bts-1-aasd","1.2.1825217","binance-bts-1-usas","1.2.1825138","binance-bts-1-deposhit","1.2.1825111","binance-bts-1-edge","1.2.1825108","binance-bts-1-memobits","1.2.1824938","binance-bts-1-fxkfop2018","1.2.1824847","binance-bts-1-subnetwork","1.2.1824793","huobi-pro-1-withdraw","1.2.1824783","binance-bts-1-fix","1.2.1824686","huobi-pro-025","1.2.1824685","huobi-pro-026","1.2.1824674","huobi-pro-erc20","1.2.1824673","huobi-pro-ethereum","1.2.1824665","mxccom-money","1.2.1824664","mxccom-binance","1.2.1824644","binance-bts-1-iceteam-pidorasy","1.2.1825838","huobi-pro-id","1.2.1825830","huobi-pro-0","1.2.1825596","huobi-pro-memo","1.2.1825595","huobi-pro-tag","1.2.1824829","huobi-bts-memo","1.2.1824827","gate-bts-memo","1.2.1824755","mxccom-bts-memo","1.2.1824754","mexc-bts-memo","1.2.1824707","binance-memo","1.2.1824617","binance-bts-memo","1.2.1824442","binance-bts-2-token","1.2.1830111","bitcoiindonesia","1.2.1830059","bictoinindonesia","1.2.1830056","mexcom","1.2.1830055","mccom","1.2.1829979","bitocinindonesia","1.2.1829978","mxcoom","1.2.1829891","bitcoinindonecia","1.2.1829889","bitcoinndonesia","1.2.1829888","bitcoinindodax","1.2.1829887","bitconindonesia","1.2.1829886","bitcoinindomesia","1.2.1829884","bitcoinindonesa","1.2.1829883","bitcionindonesia","1.2.1829635","mxccoom","1.2.1829577","binance-pro-0103","1.2.1829533","mexccom","1.2.1829302","mxccommxccom","1.2.1829253","gate-io--bts66","1.2.1829252","gate--io-bts66","1.2.1829249","huobi--pro","1.2.1829248","binance--bts-0103","1.2.1829247","binance-bts--0103","1.2.1829031","u86882318976131072","1.2.1829030","coinex-bts11","1.2.1829028","coinex-11","1.2.1828973","nxccom","1.2.1828951","simpleswap","1.2.1828949","zxfgft5","coinbasebase","1.2.1603952","accountcreat","1.2.1799179","atomintlexch","1.2.1799180","bcgame222333","1.2.1799181","bcgameeoswin","1.2.1799182","beexpayioeos","1.2.1799183","bikicoineos5","1.2.1593635","bilaxyeos111","1.2.1799184","bitforexcoin","1.2.1596635","bithumbeos15","1.2.1677135","bithumbrecv1","1.2.1635360","bitmaxaddrz1","1.2.1109244","bitoctoeosio","1.2.1799185","bitruebitrue","1.2.1799186","bitvavodepos","1.2.1799187","bkexeosusers","1.2.1234827","btcturkeosio","1.2.1761232","btflwnetex24","1.2.1799188","bweosdeposit","1.2.1282180","bybitdeposit","1.2.1761243","catexioeosio","1.2.1799189","changenoweos","1.2.1799119","coinboxstore","1.2.1799190","coincolasave","1.2.1653599","coinealeoswa","1.2.1799191","coinexviabtc","1.2.1087752","coinonekorea","1.2.1150124","coinspoteos1","1.2.1603157","crexpayments","1.2.1799192","cryptocomeos","1.2.1761230","cryptomkteos","1.2.1799193","ctforeos2222","1.2.1147939","dcoindeposit","1.2.1212186","dfttothemoon","1.2.1158646","e1k2m1ynpoof","1.2.1703024","eoshoowallet","1.2.1080697","eosprimedice","1.2.1799194","eosupbitsusr","1.2.1703357","eoswithmixin","1.2.1212806","exmodeposits","1.2.1799195","exodussignup","1.2.1689962","freewalletin","1.2.1797385","gopaxdeposit","1.2.1150123","gxgxcomtotal","1.2.1799196","gyztsojzgage","1.2.1799197","hitbtcpayins","1.2.1080701","hotbitioeoss","1.2.1606463","hotbitkorean","1.2.1799198","ilovebityard","1.2.1799199","indodaxaccnt","1.2.1594372","koineksadres","1.2.1594877","korbiteosdep","1.2.1797390","kunaexchange","1.2.1211841","latokeneos11","1.2.1799200","lbkexdeposit","1.2.1637485","luckyfish321","1.2.1799201","makeaccounts","1.2.1799202","mathmathmath","1.2.1794559","mercatoxeos1","1.2.1604773","metalcccceos","1.2.1799203","mxcexdeposit","1.2.1261064","myeostokenin","1.2.1799204","nobitexeosw1","1.2.1799205","okcoincomeos","1.2.1761246","orinocotrade","1.2.1799206","paribuwallet","1.2.1273867","probitwallet","1.2.1799207","radardeposit","1.2.1653604","stakecasino1","1.2.1799208","th3f4tw4113t","1.2.1681437","tokenbankpro","1.2.1211831","trustbitopro","1.2.1799209","unocoinindia","1.2.1799210","useosbinance","1.2.1761231","utexiopayin1","1.2.1799211","uytt1epvvwtn","1.2.1799212","wablockchain","1.2.1799213","walleteos125","1.2.1700871","whaleextrust","1.2.1147873","x1bitpaygate","1.2.1799214","xq3bcloi5tox","1.2.1799215","youhodlereos","1.2.1799216","yuo4dirjxmz4","1.2.1799217","z1wdmuuosmes","1.2.1770761","zebpaypayins","1.2.1799218","kucoin4telos","1.2.1804311","dadusdtokens","1.2.1804093","usdxusdxusdx","1.2.1804092","depositusd11","1.2.1804091","tethertether","1.2.1804089","kucointoabbc","1.2.1803967","roqquloveeos","1.2.1803409","eosctoxforce","1.2.1803312","gateioioabbc","1.2.1802728","coinbeneabbc","1.2.1802727","bikicoinpts1","1.2.1802507","coinex111111","1.2.1801732","bitsonicpro","1.2.1799436","bitvavo","1.2.1785173","deepcrypto8","1.2.1211130","deposit-kr","1.2.1787961","gateiodeposit","1.2.1783716","ionomy","1.2.1799435","mxcsteem","1.2.1785904","orinoco","1.2.1794558","probitsteem","1.2.1791239","receiver-kr","1.2.1787962","receiver-pro","1.2.1787963","user.dunamu","1.2.1761235","roqqulovesteem","1.2.1803408","roqqulovehive","1.2.1803407","bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1607940","bnb1jdy9svxl8jk3s9grsvencvrhx7pt3nvel68uk5","1.2.1798126"];var u=a(39014);class p{static checkFeePool(e,t){if(!(e=e.toJS?e:s.ChainStore.getAsset(e)))return;const a=s.ChainStore.getObject(e.get("dynamic_asset_data_id"));return a?parseInt(a.get("fee_pool"),10)>=t:void 0}static getPossibleFees(e,t,a=!1){let r=s.ChainStore.getAsset("1.3.0");if(!(e=!e||e.toJS?e:s.ChainStore.getAccount(e))||!r)return{assets:["1.3.0"],fees:{"1.3.0":0}};let o=[],l={},c=s.ChainStore.getObject("2.0.0"),d=(0,i.uQ)(t,null,c),u=e.get("balances");if(!u||0==Object.keys(u).length)return{assets:[],fees:{}};for(const[t,a]of Object.entries(this.getAccountBalances(e))){let e,i=!1;if("1.3.0"===t&&a>=d)i=!0;else if(a&&s.ChainStore.getAsset(t)){let o=s.ChainStore.getAsset(t),l=n.Z.convertPrice(r,o.getIn(["options","core_exchange_rate"]).toJS(),null,o.get("id"));e=parseInt(n.Z.convertValue(l,d,r,o),10),parseInt(e,10)!==e&&(e+=1),a>=e&&this.checkFeePool(o,e)&&(i=!0)}i&&(o.push(t),l[t]=e||d)}if(a&&0==o.length)throw"Insufficient balance for fee";return{assets:o,fees:l}}static getFinalFeeAsset(e,t,a="1.3.0",n=!1){let r=u.Z.getSetting("fee_asset"),o=s.ChainStore.getAsset(r).toJS(),{assets:i}=this.getPossibleFees(e,t,n);return i.length>0?-1!==i.indexOf(o.id)?o.id:-1!==i.indexOf(a)?a:i[0]:o.id}static getAccountBalances(e){let t=(e=!e||e.toJS?e:s.ChainStore.getAccount(e)).get("balances"),a={};return t.forEach(((e,t)=>{let n=s.ChainStore.getObject(e),r=n?parseInt(n.get("balance"),10):0;a[t]=r})),a}static isKnownScammer(e){let t=null;return-1!==l.indexOf(e)?t=o().translate("account.polo_scam"):-1!==c.indexOf(e)?t=o().translate("account.bittrex_scam"):-1!==d.indexOf(e)&&(t=o().translate("account.other_scam")),t}}},19490:(e,t,a)=>{"use strict";a.d(t,{Mg:()=>h,PU:()=>p,ei:()=>m,uI:()=>g});var s=a(67294),n=a(58074),r=a.n(n),o=a(112),i=a.n(o),l=a(41737),c=a(73727),d=a(76660),u=a(13973);function p(e="depositAllowed"){let t={};return this.props.backedCoins.forEach(((a,s)=>{a.forEach((n=>{let r=n.symbol.split(".").pop();t[r]||(t[r]=[]),n[e]&&("OPEN"!=a||n.isAvailable)&&t[r].push(s)}))})),t}function h(){const{gatewayStatus:e,selectedAsset:t}=this.state;var a=0;for(let s in e)this.props.backedCoins.get(s.toUpperCase(),[]).find((e=>{((t==e.backingCoinType||t==e.backingCoin)&&e.depositAllowed||e.isAvailable)&&a++}));return a}function m(e,t="depositAllowed",a=null){const{balances:s,assets:n}=this.props||{};let r=l.GD.call(this,e,t),o=this.state.selectedGateway||null,i={};s&&n&&s.forEach((e=>{if(e&&e.toJS){let t=n.get(e.get("asset_type"));if(t){let a=t.symbol.split(".");if(2==a.length){let t=a[1],s=a[0];i[t]||(i[t]={}),i[t][s]=e.get("balance")}}}}));let{coinToGatewayMapping:c}=this.state;if(e!=this.state.selectedAsset&&c&&c[e]){let t=c[e];if(t.length&&!a)if(i[e]){let a=null,s=null;for(var d in i[e]){let t=i[e][d];a||(a=t),s||(s=d)}o=t[t.indexOf(s)]||t[0]}else o=t[0];else t.length&&a&&(o=a(c[e],i[e]))}return this.setState({selectedAsset:e,selectedGateway:o,gatewayStatus:r}),{selectedAsset:e,selectedGateway:o}}function g(e){let{selectedGateway:t,gatewayStatus:a,nAvailableGateways:n,error:o,onGatewayChanged:l,selectedAsset:p=null,balances:h=null,assets:m=null}=e,g={};h&&m&&h.forEach((e=>{if(e&&e.toJS){let t=m.get(e.get("asset_type"));if(t){let a=t.symbol.split(".");if(2==a.length){let s=a[1],n=a[0];g[s]||(g[s]={}),g[s][n]=[e.get("balance"),t]}}}}));let b=t&&a[t]?"/help/gateways/"+a[t].name.toLowerCase().replace("-",""):null,f=[];return Object.keys(a).map((e=>{f.push(a[e]),a[e].id==t&&(t=a[e].name)})),f.sort(((e,t)=>e.name>t.name?1:e.name{if(e.options.enabled)return s.createElement(d.Select.Option,{key:e.name,value:e.id},e.name,g&&g[p]&&g[p][e.id]?s.createElement("span",{style:{float:"right"}},u.Z.format_asset(g[p][e.id][0],g[p][e.id][1])):null)})))))))}},7581:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});var s=a(35922),n=a.n(s),r=a(13973);class o{static getFlagBooleans(e,t=!1){let a={charge_market_fee:!1,white_list:!1,override_authority:!1,transfer_restricted:!1,disable_force_settle:!1,global_settle:!1,disable_confidential:!1,witness_fed_asset:!1,committee_fed_asset:!1,lock_max_supply:!1,disable_new_supply:!1,disable_mcr_update:!1,disable_icr_update:!1,disable_mssr_update:!1,disable_bsrm_update:!1,disable_collateral_bidding:!1};if("all"===e){for(let e in a)t||-1!==n().uia_permission_mask.indexOf(e)?a[e]=!0:delete a[e];return a}for(let s in a)t||-1!==n().uia_permission_mask.indexOf(s)?e&n().permission_flags[s]&&(a[s]=!0):delete a[s];return a}static getFlags(e){let t=Object.keys(n().permission_flags),a=0;return t.forEach((t=>{e[t]&&"global_settle"!==t&&(a+=n().permission_flags[t])})),a}static getPermissions(e,t=!1){let a=t?Object.keys(n().permission_flags):n().uia_permission_mask,s=0;return a.forEach((t=>{e[t]&&"global_settle"!==t&&(s+=n().permission_flags[t])})),t&&e.global_settle&&(s+=n().permission_flags.global_settle),s}static parseDescription(e){let t;e=r.Z.sanitize(e);try{t=JSON.parse(e)}catch(e){}for(let e in t)t[e]=r.Z.sanitize(t[e]);return t||{main:e}}static extractRawFeedPrice(e){if(e.bitasset)return e.bitasset.current_feed.settlement_price;if(e.current_feed)return e.current_feed.settlement_price;if(e.settlement_price)return e.settlement_price;if(e.get("bitasset"))return e.getIn(["bitasset","current_feed","settlement_price"]);if(e.get("settlement_price"))return e.getIn(["settlement_price"]);if(e.get("current_feed"))return e.getIn(["current_feed","settlement_price"]);throw"Feed price not found!"}}},96628:(e,t,a)=>{"use strict";a.d(t,{a:()=>n});var s=a(55420);function n(e,t=new Date){let a=e,n=s.ChainConfig.address_prefix.toLowerCase();0!==a.indexOf(n)&&(a=n+"_"+a);let r=t.getMonth()+1,o=t.getDate();return a=`${a}_${t.getFullYear()}${r>=10?r:"0"+r}${o>=10?o:"0"+o}.bin`,a}},84224:(e,t,a)=>{"use strict";a.d(t,{AN:()=>v,El:()=>m,Eu:()=>k,Im:()=>f,Ob:()=>S,Pk:()=>_,So:()=>C,YN:()=>E,Yr:()=>p,aK:()=>g,dV:()=>y,pQ:()=>A,r$:()=>b,vC:()=>h});var s=a(19602),n=a(21712),r=a(23316);const o=(0,s.ZP)("");let i=(0,s.ZP)("oidc.user:https://blocktrades.us/:10ecf048-b982-467b-9965-0b0926330869"),l={},c={},d={};function u(e){d[e]=setTimeout((()=>{delete c[e],delete d[e]}),3e4)}function p(e=n.yP.BASE+n.yP.COINS_LIST){const t="fetchCoins_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchCoins error from ${e}: ${t}`),t}))),new Promise(((e,s)=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)})).catch(s)})))}function h(e=n.yP.BASE+n.yP.COINS_LIST){return fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchCoinsSimple error from ${e}: ${t}`),t}))}function m(e=n.q.BASE+n.q.TRADING_PAIRS){const t="fetchTradingPairs_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e,{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchTradingPairs error from ${e}: ${t}`),t}))),new Promise(((e,s)=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)})).catch(s)})))}function g(e,t,a=n.q.BASE+n.q.DEPOSIT_LIMIT){return fetch(a+"?inputCoinType="+encodeURIComponent(e)+"&outputCoinType="+encodeURIComponent(t),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((a=>{console.log("error fetching deposit limit of",e,t,a)}))}function b(e,t,a,s=n.q.BASE+n.q.ESTIMATE_OUTPUT){return fetch(s+"?inputAmount="+encodeURIComponent(e)+"&inputCoinType="+encodeURIComponent(t)+"&outputCoinType="+encodeURIComponent(a),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("error fetching deposit limit of",t,a,e)}))}function f(e,t,a,s=n.q.BASE+n.q.ESTIMATE_INPUT){return fetch(s+"?outputAmount="+encodeURIComponent(e)+"&inputCoinType="+encodeURIComponent(t)+"&outputCoinType="+encodeURIComponent(a),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("error fetching deposit limit of",t,a,e)}))}function y(e=n.yP.BASE+n.yP.ACTIVE_WALLETS){const t="getActiveWallets_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{console.log("error fetching blocktrades active wallets",t,e)}))),new Promise((e=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)}))})))}function _({coin:e,account:t,stateCallback:a}){let s={coin:e,account:t},r=JSON.stringify(s);fetch(n.yP.BASE+"/simple-api/get-last-address",{method:"POST",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:r}).then((e=>{e.json().then((e=>{let t={address:e.address,memo:e.memo||null,error:e.error||null,loading:!1};a&&a(t)}),(e=>{console.log("error: ",e),a&&a({address:e.message,memo:null})}))}),(e=>{console.log("error: ",e),a&&a({address:e.message,memo:null})})).catch((e=>{console.log("fetch error:",e)}))}let w={};function k({inputCoinType:e,outputCoinType:t,outputAddress:a,url:s=n.yP.BASE,stateCallback:o,selectedGateway:i}){let l=r.bg[i],c={inputCoinType:e=l&&l.assetWithdrawlAlias?l.assetWithdrawlAlias[e.toLowerCase()]||e.toLowerCase():e,outputCoinType:t,outputAddress:a},d=JSON.stringify(c);w[d]||(w[d]=!0,fetch(s+"/simple-api/initiate-trade",{method:"post",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:d}).then((e=>{e.json().then((e=>{delete w[d];let t={address:e.inputAddress||"unknown",memo:e.inputMemo,error:e.error||null};o&&o(t)}),(e=>{console.log("error: ",e),delete w[d],o&&o(null)}))}),(e=>{console.log("error: ",e),delete w[d],o&&o(null)})).catch((e=>{console.log("fetch error:",e),delete w[d]})))}function v(e,t,a){let s=JSON.stringify({inputCoinType:e,outputCoinType:t,outputAddress:{address:a}}),r=e+t+a;return o.has(`history_mapping_${r}`)?Promise.resolve(o.get(`history_mapping_${r}`)):new Promise(((e,t)=>{let a={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${i.get("").access_token}`};fetch(`${n.q.BASE}/mappings`,{method:"post",headers:a,body:s}).then((a=>{a.json().then((a=>{a.inputAddress?(o.set(`history_mapping_${r}`,a.inputAddress),e(a&&a.inputAddress)):t()}))})).catch((e=>{console.log("Error: ",e),t()}))}))}function A({allCoins:e,tradingPairs:t,backer:a}){let s=r.bg[a],n={};s.singleWallet&&e.forEach((e=>n[e.backingCoinType]=e)),e.forEach((e=>n[e.coinType]=e));let o={};t.forEach((e=>{o[e.inputCoinType]||(o[e.inputCoinType]={}),o[e.inputCoinType][e.outputCoinType]=!0}));let i=[];return e.forEach((e=>{let t=n[e.backingCoinType];if(e.walletSymbol.startsWith(a+".")&&e.backingCoinType&&t){let a=o[e.backingCoinType]&&o[e.backingCoinType][e.coinType],n=o[e.coinType]&&o[e.coinType][e.backingCoinType];i.push({name:t.name,intermediateAccount:s.intermediateAccount?s.intermediateAccount:t.intermediateAccount,gateFee:t.gateFee||t.transactionFee,walletType:t.walletType,backingCoinType:s.singleWallet?e.backingCoinType.toUpperCase():t.walletSymbol,minAmount:t.minAmount||0,maxAmount:t.maxAmount||999999999,symbol:e.walletSymbol,supportsMemos:t.supportsOutputMemos,depositAllowed:a,withdrawalAllowed:n})}})),i}function E({url:e=n.q.BASE,walletType:t,newAddress:a,output_coin_type:s=null,method:r=null}){return a?r&&"GET"!=r?"POST"==r?fetch(e+"/wallets/"+t+"/check-address",{method:"post",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:JSON.stringify({address:a})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("validate error:",e)})):void 0:(e+="/wallets/"+t+"/address-validator?address="+encodeURIComponent(a),s&&(e+="&outputCoinType="+s),fetch(e,{method:"get",headers:new Headers({Accept:"application/json","Content-Type":"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("validate error:",e)}))):new Promise((e=>e()))}let x={};function S(e,t=null){const{input_coin_type:a,output_coin_type:s,url:n,account_name:r}=e;if(!a||!s)return Promise.reject();const o=JSON.stringify({inputCoinType:a,outputCoinType:s,outputAddress:r,inputMemo:"blocktrades conversion: "+a+"to"+s}),i=n+a+s+r;return new Promise(((e,a)=>{if(x[i])return e(x[i]);let s={Accept:"application/json","Content-Type":"application/json"};t&&(s={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${t}`}),fetch(n+"/simple-api/initiate-trade",{method:"post",headers:s,body:o}).then((t=>{t.json().then((t=>{x[i]=t,e(t)}),a).catch(a)})).catch(a)}))}const C={has:function(e){return o.has(`history_address_${e}`)},set:function({wallet:e,addresses:t}){o.set(`history_address_${e}`,t)},get:function(e){return o.get(`history_address_${e}`,[])},setLast:function({wallet:e,address:t}){o.set(`history_address_last_${e}`,t)},getLast:function(e){return o.get(`history_address_last_${e}`,"")}}},41737:(e,t,a)=>{"use strict";a.d(t,{E0:()=>h,GD:()=>u,R2:()=>c,in:()=>p,p3:()=>m,v$:()=>d,xA:()=>g});var s=a(55420),n=a(56815),r=a(23316),o=a(112),i=a.n(o),l=a(91822);function c(e){if("1.2.0"===e.get("issuer"))return i().translate("exchange.native");let t="PPY"===e.get("symbol")?"RUDEX":e.get("symbol").split(".")[0];return d("PPY"===e.get("symbol")?"RUDEX.PPY":e.get("symbol"))?r.bg[t].name:null}function d(e){let t="";return t="PPY"===e?"RUDEX":e.split(".")[0],-1!==r.nT.indexOf(t)}function u(e,t="depositAllowed"){let{gatewayStatus:a}=this.state;for(let s in a)a[s].options.enabled=!1,a[s].enabled&&this.props.backedCoins.get(s.toUpperCase(),[]).find((n=>{let r=n.backingCoinType||n.backingCoin,o=void 0===n.isAvailable||"boolean"==typeof n.isAvailable&&n.isAvailable;if(-1!==r.toUpperCase().indexOf("EOS.")){let[e,t]=r.split(".");r=t}n[t]&&o&&e==r&&(a[s].options.enabled=!0)}));return a}function p(e,t){let{selectedGateway:a}=m(e),s=h(e,t);return s?"RUDEX"===a?s.issuerId||s.issuer:s.intermediateAccount||s.issuer:void 0}function h(e,t){let{selectedGateway:a}=m(e);return t.get(a,[]).find((t=>t.symbol.toUpperCase()===e.toUpperCase()))||{}}function m(e){if(e){let[t,a]=e.split(".");return"PPY"===e&&(t="RUDEX",a="PPY"),a||(a=t,t=void 0),{selectedGateway:t,selectedAsset:a}}}async function g(e="4018d784"){if(s.Apis.instance().chain_id&&s.Apis.instance().chain_id.substr(0,8)===e){if(1!==Object.values(r.$S).length)throw"Multiple bridges not yet supported!";r.$S.TRADE.enabled=await r.$S.TRADE.isEnabled(),r.$S.TRADE.enabled&&(n.Z.fetchPairs.defer(),await(0,l.AQ)("TRADE")&&n.Z.temporarilyDisable("TRADE"));for(let e in r.bg){let t=r.bg[e];t.enabled=await t.isEnabled(),t.enabled?t.isSimple?n.Z.fetchCoinsSimple.defer({backer:t.id,url:t.baseAPI.BASE+t.baseAPI.COINS_LIST}):n.Z.fetchCoins.defer({backer:r.bg[e].id,url:t.baseAPI.BASE+t.baseAPI.COINS_LIST,urlBridge:t.baseAPI.BASE+t.baseAPI.TRADING_PAIRS,urlWallets:t.baseAPI.BASE+t.baseAPI.ACTIVE_WALLETS}):n.Z.temporarilyDisable({backer:e})}}}},23316:(e,t,a)=>{"use strict";a.d(t,{$S:()=>c,bg:()=>l,bn:()=>u,nT:()=>d});var s=a(21712),n=a(60567),r=a(91822),o=a(39014);const i=e=>async function(t={}){if(!t.onlyOnChainConfig){if(!(0,n.rC)(e))return!1;if(t.onlyBranding)return!0}if(await(0,r.AQ)(e))return!1;if(t.onlyOnChainConfig)return!0;let a=o.Z.getState().settings.get("filteredServiceProviders",[]);a||(a=[]);let s=!1;return s=1==a.length&&"all"==a[0]||a.indexOf(e)>=0,!!s},l={IOB:{id:"IOB",name:"ioxbank",baseAPI:s.gL,isEnabled:i("IOB"),isSimple:!0,selected:!1,simpleAssetGateway:!0,fixedMemo:{prepend_default:"dex:",prepend_btsid:"",append:""},addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://ioxbank.com",wallet:"https://dex.iobanker.com/"},OPEN:{id:"OPEN",name:"OpenLedger",baseAPI:s.yP,isEnabled:()=>!1,selected:!1,options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},RUDEX:{id:"RUDEX",name:"RuDEX",baseAPI:s.Eu,isEnabled:()=>!1,isSimple:!0,selected:!1,simpleAssetGateway:!0,fixedMemo:{prepend_default:"dex:",prepend_btsid:"btsid-",append:""},addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},SPARKDEX:{id:"SPARKDEX",name:"BitSpark",baseAPI:s.Jt,isEnabled:()=>!1,selected:!1,options:{enabled:!1,selected:!1},landing:"https://www.bitspark.io/",wallet:"Shutdown"},BRIDGE:{id:"BRIDGE",name:"CryptoBridge",baseAPI:s.ul,isEnabled:()=>!1,selected:!1,singleWallet:!0,addressValidatorAsset:!0,useFullAssetName:!0,intermediateAccount:"cryptobridge",options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},GDEX:{id:"GDEX",name:"GDEX",baseAPI:s.Jg,isEnabled:()=>!1,options:{enabled:!1,selected:!1},landing:"https://bitsharestalk.org/index.php?topic=33861",wallet:"Only manual deposit / withdraw",comment:"Only manual deposit / withdraw"},PIRATE:{id:"PIRATE",name:"PirateCash",baseAPI:s.GB,isEnabled:i("PIRATE"),isSimple:!0,selected:!1,addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://piratecash.net",wallet:"https://wallet.piratecash.net/"},XBTSX:{id:"XBTSX",name:"XBTS Native Chains",baseAPI:s.V9,isEnabled:i("XBTSX"),isSimple:!0,selected:!1,addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://xbts.io/",wallet:"https://ex.xbts.io/"},CITADEL:{id:"CITADEL",name:"Citadel",baseAPI:s.Ay,isEnabled:()=>!1,selected:!1,assetWithdrawlAlias:{monero:"xmr"},options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"}},c={TRADE:{id:"TRADE",name:"Blocktrades",isEnabled:i("TRADE"),landing:"https://blocktrades.us"}},d=Object.keys(l);function u(e){return d.reduce(((t,a)=>(e.forEach((e=>{t.push(`${a}.${e}`)})),t)),[])}},19602:(e,t,a)=>{"use strict";a.d(t,{ZP:()=>p,oA:()=>c,tc:()=>l});const s="undefined"==typeof localStorage?null:localStorage;class n{constructor(e){this._storage_prefix=e}_translateKey(e){return this._storage_prefix+e}get(e,t={}){try{if(this.has(e)){e=this._translateKey(e);var a=this._get(e);return null==a?t:a}return t}catch(e){return t}}_get(e){throw Error("Needs implementation")}set(e,t){this._set(this._translateKey(e),t)}_set(e){throw Error("Needs implementation")}remove(e){this._remove(this._translateKey(e))}has(e){return this._has(this._translateKey(e))}_remove(e){throw Error("Needs implementation")}_has(e){throw Error("Needs implementation")}}class r extends n{_get(e){let t=s.getItem(e);return""===t?t:JSON.parse(t)}_set(e,t){""===t?s.setItem(e,t):s.setItem(e,JSON.stringify(t))}_remove(e){s.removeItem(e)}_has(e){return function(e,t){return e in t}(e,s)}_getLocalStorage(){return s}}class o extends n{constructor(e){super(e),this._dict={}}_get(e){return this._dict.get(e)}_set(e,t){this._dict[e]=JSON.stringify(t)}_remove(e){delete this._dict[e]}_has(e){return e in this._dict}}var i=null;const l=e=>{if("inram"!==e&&"persistant"!==e)throw"Please choose inram or persistant storage type";i=e},c=()=>null==i||"persistant"==i;class d extends n{constructor(e){super(e),null===s?this.useInRam():this.usePersistant()}isPersistant(){return this._impl instanceof r}_switchIfNecessary(){null!=i&&("inram"==i?this.useInRam():this.usePersistant())}_get(e){return this._switchIfNecessary(),this._impl._get(e)}_set(e,t){this._switchIfNecessary(),this._impl._set(e,t)}_remove(e){this._switchIfNecessary(),this._impl._remove(e)}_has(e){return this._switchIfNecessary(),this._impl._has(e)}useInRam(){let e={};if(this.isPersistant()){console.log("Switching to InRam storage for private session");for(var t=0,a=this._impl._getLocalStorage().length;t(e in u||(u[e]=new d(e)),u[e])},5833:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(13973),n=a(30806),r=a(74366);let{object_type:o}=n.ChainTypes,i=Object.keys(o),l={};const c={order_type(e){if("string"!=typeof e)return!1;let t=e.split(".")[1];return i[t]},isAsk(e,t){let a=t.toJS?t.get("id"):t.id;return e.sell_price?e.sell_price.quote.asset_id===a:e.call_price?e.call_price.quote.asset_id===a:void 0},isAskOp:e=>e.amount_to_sell.asset_id!==e.fee.asset_id,limitByPrecision(e,t,a=!0){let n=t.toJS?t.get("precision"):t.precision,r=e.toString().split(".");if(1===r.length||2===r.length&&r[1].length<=n)return e;let o=s.Z.get_asset_precision(n);return e=a?Math.floor(e*o)/o:Math.round(e*o)/o,isNaN(e)||!isFinite(e)?0:e},getFeedPrice(e,t=!1){let a=n.ChainStore.getAsset(e.getIn(["quote","asset_id"])),r=n.ChainStore.getAsset(e.getIn(["base","asset_id"])),o=s.Z.get_asset_price(e.getIn(["quote","amount"]),a,e.getIn(["base","amount"]),r);return t?1/o:o},getFinalPrice(e,t,a,s,n=!1,r=!1){if(a.get("id")===t.get("id"))return 1;const{marketName:o}=this.getMarketName(a,e),{marketName:i}=this.getMarketName(t,e),{marketName:c}=this.getMarketName(t,a);if(l[c]&&!r)return n?l[c].toReal(a.get("id")!==l[c].base.asset_id):l[c];const d=s.get(c);if(d&&d.price&&0!==d.volumeBase)return n?d.price.toReal(a.get("id")!==d.price.base.asset_id):d.price;let u,p;const h=s.get(i);if(h&&h.price){if(0===h.volumeBase&&0===h.volumeQuote)return null;p=h.price.clone()}const m=s.get(o);let g;if(m&&m.price&&(u=m.price.clone()),u&&p){if(0==p.base.amount||0==u.base.amount)return null;g=u.times(p)}else u?g=u:p&&(g=p);if(!g)return null;const b=[g.base.asset_id,g.quote.asset_id];return-1===b.indexOf(a.get("id"))||-1===b.indexOf(t.get("id"))?null:(l[c]=g,setTimeout((function(){delete l[undefined]}),3e4),n?g.toReal(a.get("id")!==g.base.asset_id):g)},convertValue(e,t,a,s,n,o=!0){let i=o?new r.xR({amount:e,asset_id:a.get("id"),precision:a.get("precision")}):new r.xR({real:e,asset_id:a.get("id"),precision:a.get("precision")});if(!t)return;let l=this.getFinalPrice(n,a,t,s,!1);return 1===l?i.getAmount({real:!o}):l&&l.toReal?i.times(l).getAmount({real:!o}):null},parseOrder(e,t,a,n=!1){let r,o,i,l=this.isAsk(e,t),c=s.Z.get_asset_precision(a.toJS?a.get("precision"):a.precision),d=s.Z.get_asset_precision(t.toJS?t.get("precision"):t.precision);if(e.call_price?a.toJS?a.get("precision"):a.precision:t.toJS?t.get("precision"):t.precision,e.sell_price)r=l?e.sell_price.base:e.sell_price.quote,o=l?e.sell_price.quote:e.sell_price.base;else if(e.call_price){r=e.call_price.base,o=e.call_price.quote;let t=r.amount/d/(o.amount/c);i=n?1/t:t}"number"!=typeof o.amount&&(o.amount=parseInt(o.amount,10)),"number"!=typeof r.amount&&(r.amount=parseInt(r.amount,10));let u,p,h=i||o.amount/d/(r.amount/c),m=s.Z.price_to_text(h,e.call_price?t:a,e.call_price?a:t);return e.debt?n?(p=e.debt/c,u=this.limitByPrecision(p/m.full,t)):(u=this.limitByPrecision(e.debt/c,a),p=m.full*u):l?(u=this.limitByPrecision(e.for_sale/c,a),p=m.full*u):(u=this.limitByPrecision(r.amount/o.amount*e.for_sale/c,a),p=e.for_sale/d),p=this.limitByPrecision(p,t),!l&&e.for_sale&&(p=this.limitByPrecision(m.full*u,t)),{value:p,price:m,amount:u}},split_price(e,t){let a=s.Z.format_number(e,Math.max(5,t)).split(".");return{int:a[0],dec:a[1]}},flatten_orderbookchart_highcharts(e,t,a,s){let n,r=[];if(a=void 0!==a&&a){if(e&&e.length)if(n=e.length-1,r.unshift([e[n][0],e[n][1]]),e.length>1)for(let a=e.length-2;a>=0;a--)t&&(e[a][1]+=e[a+1][1]),r.unshift([e[a][0],e[a][1]]);else r.unshift([0,e[n][1]])}else if(e&&e.length)if(r.push([e[0][0],e[0][1]]),e.length>1)for(var o=1;o1e-8*e);if("ask"===t)return{base:a,quote:n};if("bid"===t)return{quote:a,base:n};throw"Unknown type"},isMarketAsset(e,t){let a,s=!1,n=!1;return e.get("bitasset")&&t.get("id")===e.getIn(["bitasset","options","short_backing_asset"])?(s=!0,a={id:e.get("id")}):t.get("bitasset")&&e.get("id")===t.getIn(["bitasset","options","short_backing_asset"])&&(n=!0,s=!0,a={id:t.get("id")}),{isMarketAsset:s,marketAsset:a,inverted:n}},getMarketName(e,t){if(!e||!t)return{marketName:"_"};let a=parseInt(e.get("id").split(".")[2],10),s=parseInt(t.get("id").split(".")[2],10),n=s>a?t:e,r=s>a?e:t;return{baseID:a,quoteID:s,marketName:`${n.get("symbol")}_${r.get("symbol")}`,first:n,second:r}}}},98817:(e,t,a)=>{"use strict";a.d(t,{$:()=>o});var s=a(27851),n=a(92592),r=a(41075);const o=function(e){let t=function(t){return e.get(t).get("key_auths").map((e=>e.get(0)))};!function(e,t,a,o){const i=225/2.8;let l=i+50;const c=[t,e,a],d=["Active Key","Owner Key","Memo Key"];let u=r.Z.isLocked();const p=new s.default({orientation:"portrait",format:[300,450],compressPdf:!0}),h=(e,t,a)=>(t>=a&&(e.addPage(),l=10),p.internal.getNumberOfPages()),m=e=>{let t=h(p,l,400),a=null;u||(a=r.Z.getPrivateKey(e),a&&(a=a.toWif())),g(e,5,l+10,t),!u&&a&&g(a,245,l+10,t),p.text("PublicKey",57,l+20),p.text(e,57,l+30),p.rect(56,l+24,187,8),u||(p.text("PrivateKey",57,l+40),a?p.text(a,57,l+50):p.text("Not found.",57,l+50),p.rect(56,l+44,187,8)),l+=50},g=(e,t,a,s)=>{n.toDataURL(e).then((e=>{p.setPage(s),p.addImage(e,"JPEG",t,a,50,50)})).catch((e=>{console.error(e)}))};let b=new Image;b.src="data:image/png;base64,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",p.addImage(b,"PNG",37.5,30,225,i,"","MEDIUM"),p.text("Account:",18,l-10),p.text(o,42,l-10);let f=c.map(((e,t)=>{t>=1&&(l+=25),h(p,l,400),p.text("Public",22,l+7),p.text(d[t],120,l+7),u||p.text("Private",260,l+7),p.line(5,l+1,295,l+1),p.line(5,l+9,295,l+9),"string"==typeof e?m(e):e.map((e=>{m(e)}))}));Promise.all(f).then((()=>{p.save("bitshares-paper-wallet-"+(u?"public-":"private-")+o+".pdf")}))}(t("owner"),t("active"),e.get("options").get("memo_key"),e.get("name"))}},13863:(e,t,a)=>{"use strict";function s(e){return e.displayName||e.name||"Component"}a.d(t,{G:()=>s})},81237:(e,t,a)=>{"use strict";a.d(t,{cr:()=>f,rX:()=>d,uQ:()=>b});var s=a(30806),n=a(74366),r=a(48764).Buffer;const{operations:o}=s.ChainTypes;function i(e,t=null,a={}){return new Promise(((n,r)=>{(0,s.FetchChain)("getObject","2.0.0").then((s=>{try{n(b(e,t,s,a))}catch(e){r(e)}})).catch(r)}))}function l({assetID:e,type:t="transfer",options:a=null,data:n}={}){return new Promise(((r,o)=>{"1.3.0"===e?r(!0):Promise.all([i(t,a,n),(0,s.FetchChain)("getObject",e.replace(/^1\./,"2."))]).then((e=>{const[t,a]=e;r(parseInt(a.get("fee_pool"),10)>=t)})).catch(o)}))}let c={};function d({accountID:e,feeID:t="1.3.0",type:a="transfer",options:r=null,data:o,operationsCount:d=1}={}){let u=e+"_"+t+"_"+a+"_"+JSON.stringify(r)+"_"+JSON.stringify(o)+"_"+d;return c[u]?c[u].result?Promise.resolve(c[u].result):new Promise(((e,t)=>{c[u].queue.push({res:e,rej:t})})):new Promise(((p,h)=>{c[u]={queue:[{res:p,rej:h}],result:null},Promise.all([i(a,r,o),l({assetID:t,type:a,options:r,data:o}),(0,s.FetchChain)("getAccount",e),(0,s.FetchChain)("getAsset","1.3.0"),"1.3.0"!==t?(0,s.FetchChain)("getAsset",t):null]).then((e=>{let[a,r,o,i,l]=e,p=!1;"1.3.0"===t&&(l=i);let h=o.getIn(["balances","1.3.0"]),m=o.getIn(["balances",t]);if("1.3.0"===t&&!h)return c[u].queue.forEach((e=>{e.res({fee:new n.xR({amount:a*d}),hasBalance:p,hasPoolBalance:r})})),c[u]={result:{fee:new n.xR({amount:a*d}),hasBalance:p,hasPoolBalance:r}},void setTimeout((()=>{delete c[u]}),6e4);Promise.all([h?(0,s.FetchChain)("getObject",h):null,m?(0,s.FetchChain)("getObject",m):null]).then((e=>{let[s,o]=e,h=new n.xR({amount:a*d}),m=!0;if("1.3.0"!==t){let e=l.getIn(["options","core_exchange_rate"]),a=e.get("base").toJS();a.precision=a.asset_id===t?l.get("precision"):i.get("precision");let c=new n.xR(a),d=e.get("quote").toJS();d.precision=d.asset_id===t?l.get("precision"):i.get("precision");let u=new n.xR(d);try{let e=new n.tA({base:c,quote:u});h=h.times(e,!0)}catch(e){o=s,m=!1,r=!1}}o&&o.get("balance")>=h.getAmount()&&(p=!0),c[u].queue.forEach((e=>{e.res({fee:h,hasBalance:p,hasPoolBalance:r,hasValidCER:m})})),c[u]={result:{fee:h,hasBalance:p,hasPoolBalance:r,hasValidCER:m}},setTimeout((()=>{delete c[u]}),6e4)}))})).catch((e=>{c[u].queue.forEach((t=>{t.rej(e)}))}))}))}const u=s.TransactionHelper.unique_nonce_uint64();let p,h,m,g={};function b(e,t,a,n={}){if(n.content&&(n.content=new Array(n.content.length+1).join("a")),!a)return 0;const i=e+JSON.stringify(t)+JSON.stringify(n);if(g[i])return g[i];let l=o[e],c=null,d=a.getIn(["parameters","current_fees","parameters"]),b=d.findIndex((e=>e.get(0)==l));c=b>-1?d.getIn([b,1]):a.getIn(["parameters","current_fees","parameters",0,1]),c=c.toJS();let f=0;if(c.fee&&(f+=c.fee),t)for(let e of t){const t=c[e];if("price_per_kbyte"===e){if("memo"===n.type&&n.content){let e=p||s.PrivateKey.fromWif("5KikQ23YhcM7jdfHbFBQg1G7Do5y6SgD9sdBZq7BqQWXmNH7gqo");p&&(p=e);let a,o="BTS6B1taKXkDojuC1qECjvC7g186d8AdeGtz8wnqWAsoRGC6RY8Rp",i="BTS8eLeqSZZtB1YHdw7KjQxRSRmaKAseCxhUSqaLxUdqvdGpp6nck";a=n.content===m&&h?h:h=s.Aes.encrypt_with_checksum(e,i,u,n.content);let l={from:o,to:i,nonce:u,message:a},c=s.ops.memo_data.fromObject(l);const d=JSON.stringify(s.ops.memo_data.toHex(c));f+=t*r.byteLength(d,"hex")/1024,m=n.content}}else t&&(f+=t)}return f=f*a.getIn(["parameters","current_fees","scale"])/1e4,g[i]=f,setTimeout((()=>{delete g[i]}),3e5),f}function f(e,t,a,s){if(!e)return null;if("string"==typeof e&&(e=parseFloat(String.prototype.replace.call(e,/,/g,""))),!s||0===s.get("balance"))return!1;let r=new n.xR({asset_id:t.get("id"),precision:t.get("precision"),real:e}),o=r.clone(s.get("balance"));return!(o.lt(r)||r.asset_id===a.asset_id&&(r.plus(a),o.lt(r)))}},13973:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(68924),n=a.n(s),r=a(7581),o=a(30806),i=a(60567),l=a(92077);let c=/\b\d+\.\d+\.(\d+)\b/;var{object_type:d}=o.ChainTypes;const u={is_object_id:e=>"string"==typeof e&&(null!==c.exec(e)&&3===e.split(".").length),is_object_type:(e,t)=>{let a=d[t];return a&&e?(a="1."+a.toString(),e.substring(0,a.length)===a):null},get_asset_precision:e=>(e=e.toJS?e.get("precision"):e,Math.pow(10,e)),get_asset_amount:function(e,t){return 0===e?e:e?e/this.get_asset_precision(t.toJS?t.get("precision"):t.precision):null},convert_satoshi_to_typed:function(e,t){return 0===e?e:e?e/this.get_asset_precision(t.toJS?t.get("precision"):t.precision):null},convert_typed_to_satoshi:function(e,t){return e*this.get_asset_precision(t.toJS?t.get("precision"):t.precision)},get_asset_price:function(e,t,a,s,n=!1){if(!t||!s)return 1;var r=this.get_asset_amount(e,t)/this.get_asset_amount(a,s);return n?1/r:r},format_volume(e,t=3){return e<1e4?this.format_number(e,t):e<1e6?(Math.round(e/10)/100).toFixed(2)+"k":(Math.round(e/1e4)/100).toFixed(2)+"M"},format_number:(e,t,a=!0)=>{if(isNaN(e)||!isFinite(e)||null==e)return"";let s=".";for(var n=0;n0&&!a?r.replace(/0+$/,"").replace(/\.$/,""):r},format_asset:function(e,t,a,s=!0){let n,r=0;if(void 0===t)return;"symbol"in t?(n=t.symbol,r=t.precision):(n=t.get("symbol"),r=t.get("precision"));let o=this.get_asset_precision(r);return`${this.format_number(e/o,r,s)}${a?"":" "+n}`},price_text:function(e,t,a){let s,n=a.toJS?a.get("id"):a.id,r=a.toJS?a.get("precision"):a.precision,o=t.toJS?t.get("id"):t.id,i=t.toJS?t.get("precision"):t.precision,l={"1.3.113":5,"1.3.121":5};return s="1.3.0"===n?this.format_number(e,r):"1.3.0"===o?this.format_number(e,Math.min(8,r+2)):l[n]?this.format_number(e,l[n]):this.format_number(e,Math.min(8,Math.max(r+i,2))),s},price_to_text:function(e,t,a,s=null){if("number"!=typeof e||!t||!a)return;let n;e===1/0&&(e=0),n=s?this.format_number(e,s):this.price_text(e,t,a);let r,o=n.split("."),i=o[0],l=o[1],c=0;if(l)if(e>1)for(r=l.length-1;r>=0&&"0"===l[r];r--)c++;else{let e=l.length;for(r=0;rt.length)return!1;if("string"==typeof e&&"string"==typeof t)return e===t;if("string"==typeof e&&"string"!=typeof t||"string"!=typeof e&&"string"==typeof t)return!1;if(e&&e.toJS&&t&&t.toJS)return e===t;for(var a in e)if(e.hasOwnProperty(a)&&!(a in t)||e[a]!==t[a])return!1;for(var a in t)if(t.hasOwnProperty(a)&&!(a in e)||e[a]!==t[a])return!1;return!0},makeISODateString:e=>("string"!=typeof e||/Z$/.test(e)||(e+="Z"),e),format_date:function(e){return e=this.makeISODateString(e),new Date(e).toLocaleDateString()},format_time:function(e){return e=this.makeISODateString(e),new Date(e).toLocaleString()},limitByPrecision:function(e,t){let a=e.toString(),s=a.split(".");return 1===s.length||2===s.length&&s[1].length<=t?a:s[0]+"."+s[1].substr(0,t)},convertPrice:function(e,t,a,s){if(!e||!t)return null;e.toJS&&this.is_object_type(e.get("id"),"asset")&&(a=e.get("id"),e=e.get("bitasset")?r.Z.extractRawFeedPrice(e).toJS():e.getIn(["options","core_exchange_rate"]).toJS()),t.toJS&&this.is_object_type(t.get("id"),"asset")&&(s=t.get("id"),t=t.get("bitasset")?r.Z.extractRawFeedPrice(t).toJS():t.getIn(["options","core_exchange_rate"]).toJS());let n,o,i,l,c,d,u,p=e.quote.asset_id,h=t.quote.asset_id;return p===a?(n=e.quote.amount,o=e.base.amount):(n=e.base.amount,o=e.quote.amount),h===s?(i=t.quote.amount,l=t.base.amount):(i=t.base.amount,l=t.quote.amount),l>o?(c=l/o,d=n*c,u=i):(c=o/l,d=n,u=i*c),{quote:{amount:d,asset_id:s},base:{amount:u,asset_id:a}}},convertValue:function(e,t,a,s){e=e.toJS?e.toJS():e;let n=this.get_asset_precision(a.get("precision")),r=this.get_asset_precision(s.get("precision")),o=this.get_asset_price(e.quote.amount,a,e.base.amount,s),i=a.get("id")!==s.get("id")?r*(t/n)/o:t;return isNaN(i)||!isFinite(i)?null:i},sortText:(e,t,a=!1)=>e>t?a?1:-1:ee.split(/{(.*?)}/g),get_percentage:(e,t)=>Math.round(e/t*100)+"%",replaceName(e){if(!e)return{name:"",prefix:null,isBitAsset:!1};let t=e.get("symbol");const a=e.get("bitasset")&&!e.getIn(["bitasset","is_prediction_market"])&&"1.2.0"===e.get("issuer");let s,n=(0,i.aJ)();for(s=0;s-1!==e.indexOf(r)))||(o=r?r.toLowerCase():null),{name:t,prefix:o,isBitAsset:!!a}},sanitize:e=>(e=(e=(e=(e=(e=n()(e,{whiteList:[],stripIgnoreTag:!0})).replace(/%3A/gi,":")).replace(/javascript:/gi,"")).replace(/vbscript:/gi,"")).replace(/data:/gi,"")).replace(/tcl:/gi,"")}},54453:(e,t,a)=>{"use strict";function s(e){navigator.userAgent.toLowerCase();let t=function(){let e=navigator.userAgent.toLowerCase();return e.indexOf("firefox")>-1?"firefox":e.search("safari")>=0&&e.search("chrome")<0?"safari":window.chrome?"chrome":e.indexOf("msie")>-1||e.match(/trident.*rv\:11\./)?"ie":e.indexOf("opera")>-1?"opera":e}();if("firefox"===t){var a=indexedDB.open("test");a.onerror=function(){e(!0)},a.onsuccess=function(){e(!1)}}else if("safari"===t){var s=window.sessionStorage;try{s.setItem("someKeyHere","test"),s.removeItem("someKeyHere"),e(!1)}catch(t){t.code===DOMException.QUOTA_EXCEEDED_ERR&&0===s.length?e(!0):e(!1)}}else if("chrome"===t||"opera"===t){var n=window.RequestFileSystem||window.webkitRequestFileSystem;if(!n)return void e(!1);n(window.TEMPORARY,100,(function(t){e(!1)}),(function(t){e(!0)}))}else"ie"===t&&(window.indexedDB||!window.PointerEvent&&!window.MSPointerEvent?e(!1):e(!0))}a.d(t,{Z:()=>s})},30881:(e,t,a)=>{"use strict";a.d(t,{Z:()=>k,_:()=>w});var s=a(55420),n=a(30806),r=a(83429),o=a.n(r),i=a(95768),l=a(44034),c=a(39238),d=a(41075),u=a(39014),p=a(32793),h=a(19602),m=a(112),g=a.n(m),b=a(43143),f=a(55294),y=a(76660);const _=(0,h.ZP)("__graphene__");n.ChainStore.setDispatchFrequency(60);let w=new class{constructor(){this._connectionManager,this._oldChain=null,this._autoSelection=null,this._connectInProgress=!1,this._connectionStart=null,this._willTransitionToInProgress=!1,this._transitionDone=this._transitionDone.bind(this),this._statusCallback=null}willTransitionTo(e=!0,t=(()=>{})){return this.isTransitionInProgress()?new Promise(((e,t)=>{e()})):(this._statusCallback=t,this._willTransitionToInProgress=!0,new Promise(((t,a)=>{const s=u.Z.getState().apiLatencies;let n=Object.keys(s).length>0,r=this._getLatencyChecks(1);r>=8?(this._setLatencyChecks(0),n=!1):e&&this._setLatencyChecks(r+1);let o=this._getNodesToConnectTo(!1,s);this._autoSelection=-1!==this._getLastNode().indexOf("fake.automatic-selection"),this._initConnectionManager(o),n&&0!=Object.keys(s).length?this._initiateConnection(e,t,a):this.doLatencyUpdate().then(this._initiateConnection.bind(this,e,t,a)).catch((e=>{console.log("catch doLatency",e)}))})))}isAutoSelection(){return this._autoSelection}isTransitionInProgress(){return!!this._willTransitionToInProgress&&"object"!=typeof this._willTransitionToInProgress}isBackgroundPingingInProgress(){return!!this._willTransitionToInProgress&&"object"==typeof this._willTransitionToInProgress}getBackgroundPingingTarget(){return this.isBackgroundPingingInProgress()?this._willTransitionToInProgress.key:null}getTransitionTarget(){return this.isTransitionInProgress()?this._willTransitionToInProgress:null}updateTransitionTarget(e){this._willTransitionToInProgress=e,null!=this._statusCallback&&this._statusCallback(e)}doQuickLatencyUpdate(e){return new Promise(((t,a)=>{let s=this._connectionManager.url,n=this._connectionManager.urls;"string"==typeof e&&(e=[e]),this._connectionManager.url=e[0],this._connectionManager.urls=e.slice(1,e.length),this._connectionManager.checkConnections().then((e=>{console.log("Following nodes have been pinged:",e);const t=u.Z.getState().apiLatencies;for(var a in e)t[a]=e[a];f.Z.updateLatencies(t)})).catch((e=>{console.log("doLatencyUpdate error",e)})).finally((()=>{this._connectionManager.url=s,this._connectionManager.urls=n,t()}))}))}doLatencyUpdate(e=!1,t=!1,a=5e3){this.updateTransitionTarget(g().translate("app_init.check_latency"));let s=this;return new Promise(((n,r)=>{null==s._connectionManager&&s._initConnectionManager();let o=s._getNodesToConnectTo(!0,null,!0);e&&this._clearLatencies();let i=this._connectionManager.url,l=new v(s._connectionManager,s._updateLatencies.bind(s),s.updateTransitionTarget.bind(s),t);new E(o,l,(function(){let e=s._getNodesToConnectTo(!1,null,!0);if(s._connectionManager.urls=e.map((e=>e.url)),s._setLatencyPreferences({region:e[0].region,country:e[0].country}),s.isAutoSelection()&&i!==s._connectionManager.urls[0]?(s._connectionManager.url=s._connectionManager.urls[0],console.log("auto selecting to "+s._connectionManager.url+" after latency update")):s._connectionManager.url=i,s._transitionDone(n),a>0){let e=function(){s._willTransitionToInProgress?setTimeout(e,2e3):(l.enableBackgroundPinging(),l.pingNodes((()=>{let e=s._getNodesToConnectTo(!1,null,!0);s._connectionManager.urls=e.map((e=>e.url)),s._transitionDone()})))};setTimeout(e,a)}}),s.getNodes.bind(s)).ping(this.isAutoSelection()?null:this._getLastNode(),this._getLatencyPreferences())}))}_getLatencyPreferences(){return _.get("latency_preferences",{})}_setLatencyPreferences(e){_.set("latency_preferences",e)}_getLatencyChecks(){return _.has("latencyChecks")&&_.remove("latencyChecks"),_.get("latency_checks",0)}_setLatencyChecks(e){_.set("latency_checks",e)}_clearLatencies(){f.Z.updateLatencies({})}_updateLatencies(e,t=!0,a=null){let s=u.Z.getState().apiLatencies;for(let n in e)!t&&n in s||(s[n]=e[n],null!=a&&(a[n]=e[n]));f.Z.updateLatencies(s)}_transitionDone(e=null){null!=e&&e(),this._willTransitionToInProgress=!1,this._statusCallback=null}_initConnectionManager(e=null){null==e&&(e=this._getNodesToConnectTo(!0));let t=this._getFirstToTry(e);this._willTransitionToInProgress=t,this._connectionManager=new s.Manager({url:t,urls:e,closeCb:this._onConnectionClose.bind(this),optionalApis:{enableOrders:!0},urlChangeCallback:e=>{console.log("fallback to new url:",e),e&&this.updateTransitionTarget(g().translate("app_init.connecting",{server:e})),f.Z.changeSetting({setting:"activeNode",value:e})}})}_onConnectionClose(){}_apiUrlSecuritySuitable(e){return"https:"!==window.location.protocol||-1==e.indexOf("ws://")}_isTestNet(e){return-1!==e.indexOf("testnet")}getAllApiServers(){return u.Z.getState().defaults.apiServer.filter((e=>{let t=u.Z.getState().settings.get("filteredApiServers",[]);return!(t.length>0&&-1===t.indexOf(e.url)&&(!e.region||-1===t.indexOf(e.region)))}))}getNodes(e=null,t=!0,a=!1,s=!1,n=!1){null==e&&(e=u.Z.getState().apiLatencies),t&&(t=Object.keys(e).length>0);let r=this.getAllApiServers().filter((r=>!(!a&&r.hidden||!n&&this._isTestNet(r.url)||-1!==r.url.indexOf("fake.automatic-selection")||!s&&!this._apiUrlSecuritySuitable(r.url)||t&&!e[r.url])));return r=r.map((t=>(t.hidden=!!t.hidden,t.name=t.location||"Unknown",null!=e&&t.url in e?t.latency=e[t.url]:t.latency=null,t))),r=r.sort(((e,t)=>null!=e.latency&&null!=t.latency?e.latency-t.latency:null==e.latency&&null==t.latency?this._isTestNet(e.url)?-1:1:null!=e.latency&&null==t.latency?-1:null!=t.latency&&null==e.latency?1:0)),r.length?r:(console.warn("No nodes length, returning all of them"),this.getAllApiServers())}_getNodesToConnectTo(e=!1,t=null,a=!1){let s=this.getNodes(t,!e);return a?s:s.map((e=>e.url))}_getLastNode(){return u.Z.getSetting("apiServer")}_setLastNode(e){u.Z.getSetting("apiServer")!==e&&f.Z.changeSetting({setting:"apiServer",value:e})}_getFirstToTry(e){let t=this._getLastNode();if(t||(t=e[0]),this.isAutoSelection()&&(t=e[0],console.log("auto selecting to "+t)),!t)throw"No node to connect to found, this should not happen.";return this._apiUrlSecuritySuitable(t)||(t=e[0]),t}_getIndexDBImpl(){return window.openDatabase&&shimIndexedDB||indexedDB}_initiateConnection(e,t,a){this._willTransitionToInProgress=this._connectionManager.url,this._connectionStart=(new Date).getTime(),console.log("Connecting to "+this._connectionManager.url),e?(this.updateTransitionTarget(g().translate("app_init.connecting",{server:this._connectionManager.url})),this._connectionManager.connectWithFallback(!0).then((()=>{this.isAutoSelection()||this._setLastNode(this._connectionManager.url),this._onConnect(t,a)})).catch((e=>{console.error("----- App.willTransitionTo error -----\x3e",e,(new Error).stack),"InvalidStateError"===e.name?alert("Can't access local storage.\nPlease make sure your browser is not in private/incognito mode."):this._transitionDone(a)}))):(this.isAutoSelection()||this._setLastNode(""),this._attemptReconnect(t,a))}_onResetError(e,t){console.error("onResetError:",t,e),this._willTransitionToInProgress=!1,this._statusCallback=!1,this._oldChain="old",y.Notification.error({message:g().translate("settings.connection_error",{url:e||"",error:t})});let a=u.Z.getState().apiLatencies;return delete a[e],f.Z.updateLatencies(a),s.Apis.close().then((()=>this.willTransitionTo(!0)))}_attemptReconnect(e,t){this._oldChain="old",s.Apis.reset(this._connectionManager.url,!0,void 0,{enableOrders:!0}).then((a=>{a.init_promise.then(this._onConnect.bind(this,e,t)).catch(this._onResetError.bind(this,this._connectionManager.url))}))}_onConnect(e,t){if(this._connectInProgress)return void console.error("MULTIPLE CONNECT IN PROGRESS");if(this.updateTransitionTarget(g().translate("app_init.database")),this._connectInProgress=!0,s.Apis.instance()){s.Apis.instance().orders_api()||console.log(`${s.Apis.instance().url} does not support the orders api`);let e=s.Apis.instance().url;this.isAutoSelection()||this._setLastNode(e);let t={};t[e]=(new Date).getTime()-this._connectionStart,this._updateLatencies(t,!1)}const a=s.Apis.instance().chain_id,r=this._oldChain!==a;this._oldChain=a;var o=Promise.resolve();try{r&&(i.Z.close(),o=i.Z.init_instance(this._getIndexDBImpl()).init_promise)}catch(e){return console.error("db init error:",e),this._connectInProgress=!1,this._transitionDone(t)}return Promise.all([o,u.Z.init()]).then((()=>(r?n.ChainStore.resetCache(!1):Promise.resolve()).then((()=>Promise.all([b.Z.loadDbData().then((()=>l.Z.loadDbData())),d.Z.loadDbData().then((()=>{if(r)return p.Z.reset(),p.Z.loadDbData(a).catch((e=>{console.error(e)}))})).catch((e=>{console.error("----- WalletDb.willTransitionTo error -----\x3e",e),this._transitionDone(t)})),c.Z.init()]).then((()=>{this._connectInProgress=!1,f.Z.changeSetting({setting:"activeNode",value:this._connectionManager.url}),this._transitionDone(e)})))).catch((e=>{this._connectInProgress=!1,this._transitionDone(t.bind(this,e))})))).catch((e=>{console.error(e),this._connectInProgress=!1,this._transitionDone(t)}))}};const k=w.willTransitionTo.bind(w);class v{constructor(e,t,a,s=!0){this._connectionManager=e,this._updateLatencies=t,this._updateTransitionTarget=a,this._beSatisfiedWith=s?{instant:0,low:0,medium:0}:{instant:500,low:800,medium:1500}}addNodes(e,t=!0,a=null){this._translationKey=a,t||void 0===this._nodeURLs?(this._nodeURLs=e,this._current=0,this._counter={instant:0,low:0,medium:0},this._localLatencyCache={},this._suitableNodeFound=!1,this._pingInBackGround=!1):e.forEach((e=>{-1===this._nodeURLs.indexOf(e)&&this._nodeURLs.push(e)}))}getLocalLatencyMap(){return this._localLatencyCache}enableBackgroundPinging(){this._beSatisfiedWith={instant:0,low:0,medium:0},this._counter={instant:0,low:0,medium:0},this._suitableNodeFound=!1,this._pingInBackGround=!0}doCallbackAndEnableBackgroundPinging(){this._beSatisfiedWith={instant:0,low:0,medium:0},this._counter={instant:0,low:0,medium:0},this._suitableNodeFound=!0,this._pingInBackGround=!0}pingNodes(e,t=null){null!=t&&this.addNodes(t,!0),this._callbackWasCalled=!1,this._callback=e,this._range=3,this._pingNodesInBatches()}_continueToPing(){return this._current{console.log("doLatencyUpdate error",e)})).finally((()=>{this._current=this._current+e.length,setTimeout(this._pingNodesInBatches.bind(this),500)}))}catch(e){console.error(e)}}else this._updateTransitionTarget(!1)}_updateSuitabilityCounter(e=null){for(let t in e)null!=this._beSatisfiedWith&&(e[t]0||this._counter.low>=2||this._counter.medium>=3)&&(this._suitableNodeFound=!0)}_handlePingResult(e){e&&Object.keys(e).length>0&&(console.log("Latency result:",e),this._updateSuitabilityCounter(e),this._updateLatencies(e,!0,this._localLatencyCache))}}class A{constructor(e){this.urls=[],this.timeout=e}async check(e){e.forEach((e=>{this.addURL(e)}));try{await this._runCheck()}catch(e){console.error(e)}let t={};return this._result.forEach((e=>{t[e.url]=e.latency})),t}addURL(e){this.urls.push({url:e,latency:NaN})}_checkURL(e){return new Promise((t=>{setTimeout((function(){t(null)}),this.timeout);try{let a=new WebSocket(e);a.openTime=o()(),a.onerror=e=>{t(null)},a.onopen=e=>{a.onmessage=function(){this.closeTime=a.openTime(o().MS),a.close(),t(this.closeTime)},a.onmessage.bind(a),a.send('{"id":1,"method":"call","params":[1,"login",["",""]]}')}}catch(e){t(null)}}))}async _runCheck(){for(let e=0;e{this.urls[e].latency=t}));await Promise.all(this.urls.map((e=>e.latency))),this.urls.sort(((e,t)=>Number(e.latency)-Number(t.latency))),this._result=this.urls.slice()}}class E{constructor(e,t,a,s){this._nodesToPing=e,this._pinger=t,this._callback=a,this._getNodes=s,this._sortNodesToTree()}ping(e,t={}){function a(){this._pinger.addNodes(this._nodesToPing.map((e=>e.url)),!1,"app_init.check_latency_feedback_rest"),this._pinger.pingNodes(this._callback)}function s(e=null){if(null==e){let t=this._getNodes(this._pinger.getLocalLatencyMap());e=t&&t[0].region}e&&this._pinger.addNodes(this.getFromRegion(e).map((e=>e.url)),!1,"app_init.check_latency_feedback_region"),this._pinger.pingNodes(a.bind(this))}function n(e=null,t=null){if(null==e){let a=this._getNodes(this._pinger.getLocalLatencyMap());e=a&&a[0].region,t=a&&a[0].country}e&&t&&this._pinger.addNodes(this.getFromRegion(e,t).map((e=>e.url)),!1,"app_init.check_latency_feedback_country"),this._pinger.pingNodes(s.bind(this))}function r(){this._pinger.addNodes(this.getFromEachRegion().map((e=>e.url)),!1,"app_init.check_latency_feedback_world"),this._pinger.pingNodes(n.bind(this))}function o(){t.region&&t.country?n.bind(this)(t.region,t.country):t.region?s.bind(this)(t.region):r.bind(this)()}e?(this._pinger.addNodes([e],!1,"app_init.check_latency_feedback_last"),this._pinger.pingNodes(o.bind(this))):o.bind(this)()}getFromEachRegion(e=2,t=!0){let a=[];return Object.keys(this._nodeTree).forEach((t=>{let s,n=this._nodeTree[t].all;for(s=1;s<=e;s++)n.length>=s&&a.push(n[s-1])})),console.log("Node tree",a),t?this._getShuffleArray(a):a}getFromRegion(e,t=null,a=10,s=!0){let n=[],r=null;return r=t?[t]:["all"],r.forEach((t=>{if(!this._nodeTree[e]||!this._nodeTree[e][t])return;let r,o=this._nodeTree[e][t],i=s?this._getShuffleArray(o):o;for(r=1;r<=a;r++)i.length>=r&&n.push(i[r-1])})),n}_getShuffleArray(e){for(let t=(e=e.slice(0)).length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[e[t],e[a]]=[e[a],e[t]]}return e}_sortNodesToTree(){let e={};this._nodesToPing.forEach((t=>{void 0===e[t.region]&&(e[t.region]={},e[t.region].all=[]),void 0===e[t.region][t.country]&&(e[t.region][t.country]=[]),e[t.region].all.push(t),e[t.region][t.country].push(t)})),this._nodeTree=e}}},13379:(e,t,a)=>{"use strict";a.d(t,{je:()=>s,vg:()=>n});const s={HIGHER_THAN:"1",LOWER_THAN:"2"},n={BUY:"buy",SELL:"sell"}},44034:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(57296),n=a(95768),r=a(43393),o=a.n(r),i=a(16912),l=a(30806),c=a(55420),d=a(79618),u=a(43143),p=a(91e3);class h extends i.Z{constructor(){super(),this._export("loadDbData","getAccountRefs"),this.state=this._getInitialState(),this.bindListeners({onAddPrivateKey:u.Z.addKey}),this.no_account_refs=o().Set(),l.ChainStore.subscribe(this.chainStoreUpdate.bind(this))}_getInitialState(){this.chainstore_account_ids_by_key=null,this.chainstore_account_ids_by_account=null;let e=new(o().Map);return e=e.set(this._getChainId(),o().Set()),{account_refs:e}}getAccountRefs(e=this._getChainId()){return this.state.account_refs.get(e,o().Set())}_getChainId(){return c.Apis.instance().chain_id||p.Z.MAIN_NET}onAddPrivateKey({private_key_object:e}){void 0!==l.ChainStore.getAccountRefsOfKey(e.pubkey)&&this.chainStoreUpdate()}loadDbData(){this.chainstore_account_ids_by_key=null,this.chainstore_account_ids_by_account=null,this.no_account_refs=o().Set();let e=new(o().Map);return e=e.set(this._getChainId(),o().Set()),this.state={account_refs:e},function(){let e=c.Apis.instance().chain_id,t="no_account_refs"+(e?"_"+e.substr(0,8):"");return n.Z.root.getProperty(t,[]).then((e=>o().Set(e)))}().then((e=>this.no_account_refs=e)).then((()=>this.chainStoreUpdate()))}chainStoreUpdate(){this.chainstore_account_ids_by_key===l.ChainStore.account_ids_by_key&&this.chainstore_account_ids_by_account===l.ChainStore.account_ids_by_account||(this.chainstore_account_ids_by_key=l.ChainStore.account_ids_by_key,this.chainstore_account_ids_by_account=l.ChainStore.account_ids_by_account,this.checkPrivateKeyStore())}checkPrivateKeyStore(){let e=this.no_account_refs,t=o().Set();d.Z.getState().keys.keySeq().forEach((a=>{if(e.has(a))return;let s=l.ChainStore.getAccountRefsOfKey(a);if(void 0!==s)if(s.size)t=t.add(s.valueSeq());else{if("number"==typeof d.Z.getState().keys.get(a).brainkey_sequence)return;e=e.add(a)}})),t=t.flatten(),t.forEach((e=>{let a=l.ChainStore.getAccountRefsOfAccount(e);void 0!==a&&a.size&&(t=t.add(a.valueSeq()))})),t=t.flatten(),this.getAccountRefs().equals(t)||(this.state.account_refs=this.state.account_refs.set(this._getChainId(),t)),this.no_account_refs.equals(e)||(this.no_account_refs=e,function(e){let t=[],a=c.Apis.instance().chain_id,s="no_account_refs"+(a?"_"+a.substr(0,8):"");for(let a of e)t.push(a);n.Z.root.setProperty(s,t)}(e))}}const m=s.Z.createStore(h,"AccountRefsStore")},32793:(e,t,a)=>{"use strict";a.d(t,{Z:()=>y});var s=a(16912),n=a(43393),r=a.n(n),o=a(57296),i=a(82050),l=a(55294),c=a(28969),d=a(95768),u=a(79618),p=a(30806),h=a(55420),m=a(44034),g=a(71452);let b=(0,a(19602).ZP)("__graphene__");class f extends s.Z{constructor(){super(),this.bindListeners({onSetCurrentAccount:i.Z.setCurrentAccount,onCreateAccount:i.Z.createAccount,onAccountSearch:i.Z.accountSearch,tryToSetCurrentAccount:i.Z.tryToSetCurrentAccount,onSetPasswordAccount:i.Z.setPasswordAccount,onChangeSetting:l.Z.changeSetting,onSetWallet:c.Z.setWallet,onAddStarAccount:i.Z.addStarAccount,onRemoveStarAccount:i.Z.removeStarAccount,onAddAccountContact:i.Z.addAccountContact,onRemoveAccountContact:i.Z.removeAccountContact,onToggleHideAccount:i.Z.toggleHideAccount}),this._export("loadDbData","tryToSetCurrentAccount","onCreateAccount","getMyAccounts","isMyAccount","getMyAuthorityForAccount","isMyKey","reset","setWallet");const e=b.get("settings_v4",{});void 0===e.passwordLogin&&(e.passwordLogin=!0);const t=this._checkReferrer();this.state={subbed:!1,myActiveAccounts:r().Set(),myHiddenAccounts:r().Set(),currentAccount:null,passwordAccount:null,starredAccounts:r().Map(),searchAccounts:r().Map(),accountContacts:r().Set(),linkedAccounts:r().Set(),referralAccount:t,passwordLogin:e.passwordLogin},this.getMyAccounts=this.getMyAccounts.bind(this),this.chainStoreUpdate=this.chainStoreUpdate.bind(this),this._getStorageKey=this._getStorageKey.bind(this),this.setWallet=this.setWallet.bind(this)}_migrateUnfollowedAccounts(e){try{let t=b.get("unfollowed_accounts",[]),a=b.get(this._getStorageKey("hiddenAccounts",e),[]);t.length&&!a.length&&(b.set(this._getStorageKey("hiddenAccounts",e),t),b.remove("unfollowed_accounts"),this.setState({myHiddenAccounts:r().Set(t)}))}catch(e){console.error(e)}}_checkReferrer(){let e="";if(window){let s=["r","ref","referrer","referral"];for(let n=0;n{d.Z.load_data("linked_accounts").then((n=>{this.state.linkedAccounts=r().fromJS(n||[]).toSet();let o=this.state.passwordLogin&&this.state.passwordAccount?[(0,p.FetchChain)("getAccount",this.state.passwordAccount)]:this.state.passwordLogin?[]:n.filter((e=>!e.chainId||e.chainId===t)).map((e=>(0,p.FetchChain)("getAccount",e.name)));Promise.all(o).then((t=>{t.forEach((t=>{t&&this.isMyAccount(t)&&!this.state.myHiddenAccounts.has(t.get("name"))?e.add(t.get("name")):t&&!this.isMyAccount(t)&&this._unlinkAccount(t.get("name"))}));let s=e.asImmutable();this.state.myActiveAccounts!==s&&this.setState({myActiveAccounts:e.asImmutable()}),!1===this.state.accountsLoaded&&this.setState({accountsLoaded:!0}),this.state.subbed||p.ChainStore.subscribe(this.chainStoreUpdate),this.state.subbed=!0,this.emitChange(),this.chainStoreUpdate(),a()})).catch((e=>{this.state.subbed||p.ChainStore.subscribe(this.chainStoreUpdate),this.state.subbed=!0,this.emitChange(),this.chainStoreUpdate(),s(e)}))})).catch((e=>{s(e)}))}))}chainStoreUpdate(){this.addAccountRefs()}addAccountRefs(){let e=m.Z.getAccountRefs();if(!this.initial_account_refs_load&&this.account_refs===e)return void(!1===this.state.refsLoaded&&this.setState({refsLoaded:!0}));this.account_refs=e;let t=!1;if(this.addAccountRefsInProgress)return;this.addAccountRefsInProgress=!0;let a=this.state.myActiveAccounts.withMutations((a=>{e.forEach((e=>{let s=p.ChainStore.getAccount(e);if(void 0===s)return void(t=!0);let n=s.get("name"),r=h.Apis.instance().chain_id,o=this.state.linkedAccounts.find((e=>e.get("name")===n&&e.get("chainId")===r));const i=this.state.linkedAccounts.findKey((e=>e.get("name")===n&&!e.has("chainId")));i&&(this.state.linkedAccounts=this.state.linkedAccounts.delete(i),this._unlinkAccount(s.get("name")),o=!1),s&&this.isMyAccount(s)&&!o&&this._linkAccount(s.get("name")),!s||a.includes(s.get("name"))||this.state.myHiddenAccounts.has(s.get("name"))||a.add(s.get("name"))}))}));this.state.passwordLogin&&(a=r().Set(this.state.passwordAccount?[this.state.passwordAccount]:[])),a!==this.state.myActiveAccounts&&this.setState({myActiveAccounts:a}),this.initial_account_refs_load=t,this.tryToSetCurrentAccount(),this.addAccountRefsInProgress=!1}getMyAccounts(){if(!this.state.subbed)return[];let e=[];for(let t of this.state.myActiveAccounts){let a=p.ChainStore.getAccount(t);if(void 0===a)continue;if(null==a){console.log("WARN: non-chain account name in myActiveAccounts",t);continue}let s=this.getMyAuthorityForAccount(a);void 0!==s&&("full"!==s&&"partial"!==s||e.push(t))}return this.state.passwordLogin?this.state.passwordAccount?[this.state.passwordAccount]:[]:e.sort()}getMyAuthorityForAccount(e,t=1){if(!e)return;let a=e.get("owner"),s=e.get("active"),n=_(a);if("full"==n)return"full";let r=_(s);if("full"==r)return"full";let o=w(a);if("full"==o)return"full";let i,l,c=w(s);if("full"==c)return"full";if(t<3){if(i=this._accountThreshold(a,t),void 0===i)return;if("full"==i)return"full";if(l=this._accountThreshold(s,t),void 0===l)return;if("full"==l)return"full"}return"partial"===n||"partial"===r||"partial"===o||"partial"===c||"partial"===i||"partial"===l?"partial":"none"}_accountThreshold(e,t){let a=e.get("account_auths");if(!a.size)return"none";let s=a.map((e=>{let a=p.ChainStore.getAccount(e.get(0),!1);if(void 0!==a)return this.getMyAuthorityForAccount(a,++t)})).reduce(((e,t)=>e.set(t,!0)),r().Map());return s.get("full")&&1===s.size?"full":s.get("partial")&&1===s.size?"partial":s.get("none")&&1===s.size?"none":s.get("full")||s.get("partial")?"partial":void 0}isMyAccount(e){let t=this.getMyAuthorityForAccount(e);if(void 0!==t)return"partial"===t||"full"===t}onAccountSearch(e){this.state.searchTerm=e.searchTerm,this.state.searchAccounts=this.state.searchAccounts.clear(),e.accounts.forEach((e=>{this.state.searchAccounts=this.state.searchAccounts.withMutations((t=>{t.set(e[1],e[0])}))}))}_getStorageKey(e="currentAccount",t=this.state){const a=t.wallet_name,s=h.Apis.instance().chain_id;return e+(s?`_${s.substr(0,8)}`:"")+(a?`_${a}`:"")}tryToSetCurrentAccount(){const e=this._getStorageKey("passwordAccount"),t=this._getStorageKey("currentAccount");if(b.has(e)){const t=b.get(e,null);return this.state.passwordAccount!==t&&this.setState({passwordAccount:t}),this.setCurrentAccount(t)}if(b.has(t))return this.setCurrentAccount(b.get(t,null));let{starredAccounts:a}=this.state;return a.size?this.setCurrentAccount(a.first().name):this.state.myActiveAccounts.size?this.setCurrentAccount(this.state.myActiveAccounts.first()):void 0}setCurrentAccount(e){this.state.passwordAccount&&(e=this.state.passwordAccount);const t=this._getStorageKey();e||(e=null),this.state.currentAccount!==e&&this.setState({currentAccount:e}),b.set(t,e||null)}onSetCurrentAccount(e){this.setCurrentAccount(e)}onCreateAccount(e){let t=e;if("string"==typeof t&&(t={name:t}),t.toJS&&(t=t.toJS()),""==t.name||this.state.myActiveAccounts.get(t.name))return Promise.resolve();if(!p.ChainValidation.is_account_name(t.name))throw new Error("Invalid account name: "+t.name);return d.Z.add_to_store("linked_accounts",{name:t.name,chainId:h.Apis.instance().chain_id}).then((()=>{console.log("[AccountStore.js] ----- Added account to store: -----\x3e",t.name),this.state.myActiveAccounts=this.state.myActiveAccounts.add(t.name),1===this.state.myActiveAccounts.size&&this.setCurrentAccount(t.name)}))}onAddAccountContact(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);if(!this.state.accountContacts.has(e)){const t=this.state.accountContacts.add(e);b.set(this._getStorageKey("accountContacts"),t.toArray()),this.setState({accountContacts:t})}}onRemoveAccountContact(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);if(this.state.accountContacts.has(e)){const t=this.state.accountContacts.remove(e);b.set(this._getStorageKey("accountContacts"),t),this.setState({accountContacts:t})}}_linkAccount(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);const t={name:e,chainId:h.Apis.instance().chain_id};try{d.Z.add_to_store("linked_accounts",t),this.state.linkedAccounts=this.state.linkedAccounts.add(r().fromJS(t)),this.state.myHiddenAccounts.has(e)||(this.state.myActiveAccounts=this.state.myActiveAccounts.add(e)),1===this.state.myActiveAccounts.size&&this.setCurrentAccount(e)}catch(e){console.error(e)}}_unlinkAccount(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);d.Z.remove_from_store("linked_accounts",e)}isMyKey(e){return u.Z.hasKey(e)}onChangeSetting(e){"passwordLogin"===e.setting&&(!1===e.value?(this.onSetPasswordAccount(null),b.remove(this._getStorageKey()),this.loadDbData()):this.setState({myActiveAccounts:r().Set()}),this.setState({passwordLogin:e.value}))}}const y=o.Z.createStore(f,"AccountStore");function _(e){let t=0,a=e.get("weight_threshold"),s=e.get("key_auths");for(let e of s)if(u.Z.hasKey(e.get(0))&&(t+=e.get(1)),t>=a)break;return t>=a?"full":t>0?"partial":"none"}function w(e){let t=0,a=e.get("weight_threshold"),s=e.get("address_auths");if(!s.size)return"none";let n=g.Z.getState().addresses;for(let e of s){let s=e.get(0),r=n.get(s);if(u.Z.hasKey(r)&&(t+=e.get(1)),t>=a)break}return t>=a?"full":t>0?"partial":"none"}},71452:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(57296),n=a(95768),r=a(30806),o=a(55420),i=a(43393),l=a.n(i),c=a(16912);let d;class u extends c.Z{constructor(){super(),this.state={addresses:l().Map(),saving:!1},this.pubkeys=new Set,this._export("add","addAll","loadAddyMap")}saving(){this.state.saving||(this.state.saving=!0,this.setState({saving:!0}))}add(e){this.loadAddyMap().then((()=>{var t=!1;if(!this.pubkeys.has(e)){this.pubkeys.add(e),this.saving();var a=r.key.addresses(e);for(let s of a)this.state.addresses=this.state.addresses.set(s,e),t=!0;t?(this.setState({addresses:this.state.addresses}),this.saveAddyMap()):this.setState({saving:!1})}})).catch((e=>{throw e}))}addAll(e){return new Promise(((t,s)=>{this.saving(),this.loadAddyMap().then((()=>{d=a(47835).Z;let n=new d;n.postMessage({pubkeys:e,address_prefix:o.ChainConfig.address_prefix}),n.onmessage=a=>{try{let s=a.data,n=!1,r=this.state.addresses.withMutations((t=>{for(let a=0;a{throw e}))}))}loadAddyMap(){return this.loadAddyMapPromise||(this.loadAddyMapPromise=n.Z.root.getProperty("AddressIndex").then((e=>{this.state.addresses=e?l().Map(e):l().Map(),this.state.addresses.valueSeq().forEach((e=>this.pubkeys.add(e))),this.setState({addresses:this.state.addresses})}))),this.loadAddyMapPromise}saveAddyMap(){clearTimeout(this.saveAddyMapTimeout),this.saveAddyMapTimeout=setTimeout((()=>(this.setState({saving:!1}),n.Z.root.setProperty("AddressIndex",this.state.addresses.toObject()))),100)}}const p=s.Z.createStore(u,"AddressIndex")},89233:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(16912),n=a(43393),r=a.n(n),o=a(57296),i=a(7453);class l extends s.Z{constructor(){super(),this.assets=r().Map(),this.asset_symbol_to_id={},this.searchTerms={},this.lookupResults=[],this.assetsLoading=!1,this.bindListeners({onGetAssetList:i.Z.getAssetList,onLookupAsset:i.Z.lookupAsset,onGetAssetsByIssuer:i.Z.getAssetsByIssuer})}onGetAssetList(e){if(!e)return!1;this.assetsLoading=e.loading,e.assets&&e.assets.forEach((t=>{for(var a=0;a{for(var a=0;a{"use strict";a.d(t,{Z:()=>l});var s=a(57296),n=a(40678),r=a(16912),o=a(30806);class i extends r.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onIncommingFile:n.ZP.incommingWebFile,onIncommingBuffer:n.ZP.incommingBuffer,onReset:n.ZP.reset}),this._export("setWalletObjct")}_getInitialState(){return{name:null,contents:null,sha1:null,size:null,last_modified:null,public_key:null,wallet_object:null}}setWalletObjct(e){this.setState({wallet_object:e})}onReset(){this.setState(this._getInitialState())}onIncommingFile({name:e,contents:t,last_modified:a}){var s=o.hash.sha1(t).toString("hex"),n=t.length,r=c(t);this.setState({name:e,contents:t,sha1:s,size:n,last_modified:a,public_key:r})}onIncommingBuffer({name:e,contents:t,public_key:a}){this.onReset();var s=o.hash.sha1(t).toString("hex"),n=t.length;a||(a=c(t)),this.setState({name:e,contents:t,sha1:s,size:n,public_key:a})}}const l=s.Z.createStore(i,"BackupStore");function c(e){try{return o.PublicKey.fromBuffer(e.slice(0,33))}catch(e){console.error(e,e.stack)}}},54742:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(43393),r=a.n(n),o=a(16912),i=a(30806),l=a(55420),c=a(95768),d=a(33983),u=a(69778);class p extends o.Z{constructor(){super(),this.state=this._getInitialState(),this.no_balance_address=new Set,this._export("reset"),this.bindListeners({onSetPubkeys:d.Z.setPubkeys,onSetSelectedBalanceClaims:d.Z.setSelectedBalanceClaims,onClaimAccountChange:d.Z.claimAccountChange,onTransactionBroadcasted:u.Z.wasBroadcast})}_getInitialState(){this.pubkeys=null,this.addresses=new Set;var e=this.getInitialViewState();return e.address_to_pubkey=new Map,e}getInitialViewState(){return{balances:void 0,checked:r().Map(),selected_balances:r().Seq(),claim_account_name:void 0,loading:!0}}reset(){this.setState(this._getInitialState())}onTransactionBroadcasted(){this.refreshBalances()}onSetPubkeys(e){if(Array.isArray(e)&&(e=r().Seq(e)),!this.pubkeys||!this.pubkeys.equals(e)){if(this.reset(),this.pubkeys=e,0===e.size)return this.setState({loading:!1}),!0;this.setState({loading:!0}),this.loadNoBalanceAddresses().then((()=>(this.indexPubkeys(e),this.refreshBalances(),!1))).catch((e=>console.error(e)))}}onSetSelectedBalanceClaims(e){var t=e.valueSeq().flatten().toSet();this.setState({checked:e,selected_balances:t})}onClaimAccountChange(e){this.setState({claim_account_name:e})}loadNoBalanceAddresses(){return this.no_balance_address.size?Promise.resolve():c.Z.root.getProperty("no_balance_address",[]).then((e=>{this.no_balance_address=new Set(e)}))}indexPubkeys(e){let{address_to_pubkey:t}=this.state;for(let a of e)for(let e of i.key.addresses(a))this.no_balance_address.has(e)||(t.set(e,a),this.addresses.add(e));this.setState({address_to_pubkey:t})}indexPubkey(e){for(let t of i.key.addresses(e))this.no_balance_address.has(t)||(this.state.address_to_pubkey.set(t,e),this.addresses.add(t));this.setState({address_to_pubkey:this.state.address_to_pubkey})}refreshBalances(){this.lookupBalanceObjects().then((e=>{var t=this.getInitialViewState();t.balances=e,t.loading=!1,this.setState(t)}))}lookupBalanceObjects(){var e=l.Apis.instance().db_api(),t=new Set(this.no_balance_address),a=t.size;for(let e of this.addresses)t.add(e);return e.exec("get_balance_objects",[Array.from(this.addresses)]).then((s=>{var n=[];for(let e of s)n.push(e.id);return e.exec("get_vested_balances",[n]).then((e=>r().List().withMutations((n=>{for(let a=0;aconsole.error(e)))}))))}))}saveNoBalanceAddresses(e){this.no_balance_address=e;var t=[];for(let e of this.no_balance_address)t.push(e);return c.Z.root.setProperty("no_balance_address",t)}}const h=s.Z.createStore(p,"BalanceClaimActiveStore")},16912:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=class{constructor(){}_export(...e){let t={};e.forEach((e=>{if(!this[e])throw new Error(`BaseStore._export: method '${e}' not found in ${this.__proto__._storeName}`);this[e]=this[e].bind(this),t[e]=this[e]})),this.exportPublicMethods(t)}}},38216:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(43393),n=a.n(s),r=a(57296),o=a(72034),i=a(30806);const l=r.Z.createStore(class{constructor(){this.blocks=n().Map(),this.latestBlocks=n().List(),this.latestTransactions=n().List(),this.rpc_connection_status=null,this.no_ws_connection=!1,this.blockHeaders=new Map,this.bindListeners({onGetBlock:o.Z.getBlock,onGetLatest:o.Z.getLatest,onGetHeader:o.Z.getHeader,onUpdateRpcConnectionStatus:o.Z.updateRpcConnectionStatus}),this.maxBlocks=30}onGetHeader({header:e,height:t}){if(!e||!t)return!1;/Z$/.test(e.timestamp)||(e.timestamp+="Z"),e.timestamp=new Date(e.timestamp),this.blockHeaders.set(t,e)}onGetBlock(e){this.blocks.get(e.id)||(/Z$/.test(e.timestamp)||(e.timestamp+="Z"),e.timestamp=new Date(e.timestamp),this.blocks=this.blocks.set(e.id,e))}onGetLatest(e){let{block:t,maxBlock:a}=e;"string"==typeof t.timestamp&&(/Z$/.test(t.timestamp)||(t.timestamp+="Z")),t.timestamp=new Date(t.timestamp),this.blocks=this.blocks.set(t.id,t),t.id>a-this.maxBlocks&&(this.latestBlocks=this.latestBlocks.unshift(t),this.latestBlocks.size>this.maxBlocks&&(this.latestBlocks=this.latestBlocks.pop()),t.transactions.length>0&&t.transactions.forEach((e=>{e.block_num=t.id,this.latestTransactions=this.latestTransactions.unshift(e)})),this.latestTransactions.size>this.maxBlocks&&(this.latestTransactions=this.latestTransactions.pop()))}onUpdateRpcConnectionStatus(e){let t=this.rpc_connection_status;"reconnect"===e?i.ChainStore.resetCache(!1):this.rpc_connection_status=e,null===t&&"error"===e&&(this.no_ws_connection=!0),this.no_ws_connection&&"open"===e&&(this.no_ws_connection=!1),"closed"===e&&(this.no_ws_connection=!0)}},"BlockchainStore")},86481:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(57296),n=a(43393),r=a.n(n),o=a(95768),i=a(16912),l=a(99659);class c extends i.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onSet:l.Z.set,onGet:l.Z.get}),this._export("get","reset")}_getInitialState(){return{props:r().Map()}}get(e){return this.onGet({name:e})}onSet({name:e,value:t}){if(this.state.props.get(e)!==t){var a=this.state.props.set(e,t);this.state.props=a,o.Z.setCachedProperty(e,t).then((()=>this.setState({props:a})))}}onGet({name:e}){var t=this.state.props.get(e);if(void 0!==t)return t;try{o.Z.getCachedProperty(e,null).then((t=>{var a=this.state.props.set(e,t);this.state.props=a,this.setState({props:a})}))}catch(e){console.error("getCachedProperty error:",e)}}reset(){this.state=this._getInitialState(),this.setState(this.state)}}const d=s.Z.createStore(c,"CachedPropertyStore")},7437:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(43393),n=a.n(s),r=a(57296),o=a(56815),i=a(19602),l=a(60567);let c=(0,i.ZP)("__graphene__");const d=r.Z.createStore(class{static isAllowed(e){return(0,l.rC)(e)}static anyAllowed(){return(0,l.rC)()}static isDown(e){return!!this.getState().down.get(e)}static getOnChainConfig(e){if(!e)return{};const t=this.getState().onChainGatewayConfig;return t&&t.gateways?t.gateways[e]:void 0}static getGlobalOnChainConfig(){return this.getState().onChainGatewayConfig}static isAssetBlacklisted(e){let t=null;"object"==typeof e?e.symbol?t=e.symbol:e.get&&(t=e.get("symbol")):t=e;const a=this.getState().onChainGatewayConfig;return!!(a&&a.blacklists&&a.blacklists.assets&&a.blacklists.assets.includes)&&a.blacklists.assets.includes(t)}constructor(){this.backedCoins=n().Map(c.get("backedCoins",{})),this.bridgeCoins=n().Map(n().fromJS(c.get("bridgeCoins",{}))),this.bridgeInputs=["btc","dash","eth","steem","sbd","doge","bch","ppy","ltc"],this.down=n().Map({}),this.onChainGatewayConfig=null,this.bindListeners({onFetchCoins:o.Z.fetchCoins,onFetchCoinsSimple:o.Z.fetchCoinsSimple,onFetchPairs:o.Z.fetchPairs,onTemporarilyDisable:o.Z.temporarilyDisable,onLoadOnChainGatewayConfig:o.Z.loadOnChainGatewayConfig})}onFetchCoins({backer:e,coins:t,backedCoins:a,down:s}={}){e&&t&&(this.backedCoins=this.backedCoins.set(e,a),c.set("backedCoins",this.backedCoins.toJS()),this.down=this.down.set(e,!1)),s&&(this.down=this.down.set(s,!0))}onFetchCoinsSimple({backer:e,coins:t,down:a}={}){e&&t&&(this.backedCoins=this.backedCoins.set(e,t),c.set("backedCoins",this.backedCoins.toJS()),this.down=this.down.set(e,!1)),a&&(this.down=this.down.set(a,!0))}onFetchPairs({coins:e,bridgeCoins:t,wallets:a,down:s}={}){if(e&&t&&a){let s={};e.forEach((e=>s[e.coinType]=e)),t=t.filter((e=>e&&s[e.outputCoinType]&&"bitshares2"===s[e.outputCoinType].walletType&&-1!==this.bridgeInputs.indexOf(e.inputCoinType))).forEach((e=>{e.isAvailable=-1!==a.indexOf(s[e.outputCoinType].walletType),this.bridgeCoins=this.bridgeCoins.setIn([s[e.outputCoinType].walletSymbol,e.inputCoinType],n().fromJS(e))})),c.set("bridgeCoins",this.bridgeCoins.toJS())}s&&(this.down=this.down.set(s,!0))}onTemporarilyDisable({backer:e}){this.down=this.down.set(e,!0),this.backedCoins.get(e)&&(this.backedCoins=this.backedCoins.remove(e),c.set("backedCoins",this.backedCoins.toJS())),this.bridgeCoins.get(e)&&(this.bridgeCoins=this.bridgeCoins.remove(e),c.set("bridgeCoins",this.bridgeCoins.toJS()))}onLoadOnChainGatewayConfig(e){this.onChainGatewayConfig=e||{}}},"GatewayStore")},774:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(57296),n=a(51477),r=a(55294),o=a(112),i=a.n(o),l=a(19602),c=a(62254),d=a(89515),u=a.n(d),p=a(36079);let h=(0,l.ZP)("__graphene__");i().registerTranslations("en",p),i().setFallbackLocale("en");for(let e of u())(0,c.oK)(a(80888)(`./${e}`));const m=s.Z.createStore(class{constructor(){const e=h.get("settings_v4",{});void 0===e.locale&&(e.locale="en"),this.currentLocale=e.locale,this.locales=["en"],this.localesObject={en:p},this.bindListeners({onSwitchLocale:n.Z.switchLocale,onGetLocale:n.Z.getLocale,onClearSettings:r.Z.clearSettings})}hasLocale(e){return-1!==this.locales.indexOf(e)}getCurrentLocale(){return this.currentLocale}onSwitchLocale({locale:e,localeData:t}){"en"===e?i().registerTranslations("en",this.localesObject.en):i().registerTranslations(e,t),i().setLocale(e),this.currentLocale=e}onGetLocale(e){-1===this.locales.indexOf(e)&&this.locales.push(e)}onClearSettings(){this.onSwitchLocale({locale:"en"})}},"IntlStore")},12326:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(43393),n=a.n(s),r=a(57296),o=a(22463),i=a(5833),l=a(19602),c=a(30806),d=a(13973),u=a(74366),p=a(7581);const h={getPrice:()=>0,sellPrice:()=>0};let m=(0,l.ZP)("__graphene__");const g=r.Z.createStore(class{constructor(){this.markets=n().Map(),this.asset_symbol_to_id={},this.pendingOrders=n().Map(),this.marketLimitOrders=n().Map(),this.marketCallOrders=n().Map(),this.allCallOrders=[],this.feedPrice=null,this.marketSettleOrders=n().OrderedSet(),this.activeMarketHistory=n().OrderedSet(),this.marketData={bids:[],asks:[],calls:[],combinedBids:[],highestBid:h,combinedAsks:[],lowestAsk:h,flatBids:[],flatAsks:[],flatCalls:[],flatSettles:[],groupedBids:[],groupedAsks:[]},this.totals={bid:0,ask:0,call:0},this.priceData=[],this.pendingCreateLimitOrders=[],this.activeMarket=null,this.quoteAsset=null,this.pendingCounter=0,this.buckets=[15,60,300,3600,86400],this.bucketSize=this._getBucketSize(),this.priceHistory=[],this.lowestCallPrice=null,this.marketBase="BTS",this.marketStats=n().Map({change:0,volumeBase:0,volumeQuote:0}),this.marketReady=!1;let e=m.get("allMarketStats",{});for(let t in e)e[t].price&&(e[t].price=new u.tA({base:new u.xR({...e[t].price.base}),quote:new u.xR({...e[t].price.quote})}));this.allMarketStats=n().Map(e),this.onlyStars=m.get("onlyStars",!1),this.baseAsset={id:"1.3.0",symbol:"BTS",precision:5},this.coreAsset={id:"1.3.0",symbol:"CORE",precision:5},this.trackedGroupsConfig=[],this.currentGroupLimit=0,this.bindListeners({onSubscribeMarket:o.Z.subscribeMarket,onUnSubscribeMarket:o.Z.unSubscribeMarket,onChangeBase:o.Z.changeBase,onChangeBucketSize:o.Z.changeBucketSize,onCancelLimitOrderSuccess:o.Z.cancelLimitOrderSuccess,onCloseCallOrderSuccess:o.Z.closeCallOrderSuccess,onCallOrderUpdate:o.Z.callOrderUpdate,onGetMarketStats:o.Z.getMarketStats,onSettleOrderUpdate:o.Z.settleOrderUpdate,onSwitchMarket:o.Z.switchMarket,onFeedUpdate:o.Z.feedUpdate,onToggleStars:o.Z.toggleStars,onGetTrackedGroupsConfig:o.Z.getTrackedGroupsConfig,onChangeCurrentGroupLimit:o.Z.changeCurrentGroupLimit}),this.subscribers=new Map,this.exportPublicMethods({subscribe:this.subscribe.bind(this),unsubscribe:this.unsubscribe.bind(this),clearSubs:this.clearSubs.bind(this)})}subscribe(e,t){if(this.subscribers.has(e)&&this.subscribers.get(e)===t)return console.error("Subscribe callback already exists",t);this.subscribers.set(e,t)}unsubscribe(e){this.subscribers.has(e)&&this.subscribers.delete(e)}_notifySubscriber(e,t){this.subscribers.has(e)&&this.subscribers.get(e)(t)}clearSubs(){this.subscribers.clear()}onGetCollateralPositions(e){this.borrowMarketState={totalDebt:e.totalDebt,totalCollateral:e.totalCollateral}}_getBucketSize(){return parseInt(m.get("bucketSize",3600))}_setBucketSize(e){this.bucketSize=e,m.set("bucketSize",e)}onChangeBase(e){this.marketBase=e}onChangeBucketSize(e){this._setBucketSize(e)}onToggleStars(){this.onlyStars=!this.onlyStars,m.set("onlyStars",this.onlyStars)}onUnSubscribeMarket(e){e.unSub?this.activeMarket=null:this.activeMarket=e.market,e.resolve&&e.resolve()}onSwitchMarket(){this.marketReady=!1}onClearMarket(){this.activeMarket=null,this.is_prediction_market=!1,this.marketLimitOrders=this.marketLimitOrders.clear(),this.marketCallOrders=this.marketCallOrders.clear(),this.allCallOrders=[],this.feedPrice=null,this.marketSettleOrders=this.marketSettleOrders.clear(),this.activeMarketHistory=this.activeMarketHistory.clear(),this.marketData={bids:[],asks:[],calls:[],combinedBids:[],highestBid:h,combinedAsks:[],lowestAsk:h,flatBids:[],flatAsks:[],flatCalls:[],flatSettles:[],groupedBids:[],groupedAsks:[]},this.totals={bid:0,ask:0,call:0},this.lowestCallPrice=null,this.pendingCreateLimitOrders=[],this.priceHistory=[],this.marketStats=n().Map({change:0,volumeBase:0,volumeQuote:0})}_marketHasCalls(){const{quoteAsset:e,baseAsset:t}=this;return!(!e.has("bitasset")||e.getIn(["bitasset","options","short_backing_asset"])!==t.get("id"))||!(!t.has("bitasset")||t.getIn(["bitasset","options","short_backing_asset"])!==e.get("id"))}onSubscribeMarket(e){let t=!1;if(e.switchMarket)return this.marketReady=!1,this.emitChange();let a=!1,s=!1;this.invertedCalls=e.inverted,this.quoteAsset=c.ChainStore.getAsset(e.quote.get("id")),this.baseAsset=c.ChainStore.getAsset(e.base.get("id"));const n={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};if(e.market&&e.market!==this.activeMarket&&(this.onClearMarket(),this.activeMarket=e.market,t=!0,this.unsubscribe("subscribeBars")),this.feedPrice=this._getFeed(),e.buckets&&(this.buckets=e.buckets,-1===e.buckets.indexOf(this.bucketSize)&&(this.bucketSize=e.buckets[e.buckets.length-1])),e.buckets&&(this.buckets=e.buckets),e.limits){const t=this.marketLimitOrders;this.marketLimitOrders=this.marketLimitOrders.clear(),e.limits.forEach((e=>{"number"!=typeof e.for_sale&&(e.for_sale=parseInt(e.for_sale,10)),e.expiration=new Date(e.expiration),this.marketLimitOrders=this.marketLimitOrders.set(e.id,new u.eN(e,n,this.quoteAsset.get("id")))})),a=(0,u.Pz)(this.marketLimitOrders,t);for(let e=this.pendingCreateLimitOrders.length-1;e>=0;e--){let t=this.pendingCreateLimitOrders[e];this.marketLimitOrders.find((e=>t.seller===e.seller&&t.expiration===e.expiration))&&this.pendingCreateLimitOrders.splice(e,1)}0===this.pendingCreateLimitOrders.length&&(this.pendingCounter=0)}if(e.calls){const t=this.marketCallOrders;this.allCallOrders=e.calls,this.marketCallOrders=this.marketCallOrders.clear(),e.calls.forEach((e=>{try{let t=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]),a=new u.Gy(e,n,this.quoteAsset.get("id"),this.feedPrice,t,this.is_prediction_market);a.isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(e.id,a,t))}catch(e){console.error("Unable to construct calls array, invalid feed price or prediction market?")}})),s=(0,u.Pz)(this.marketCallOrders,t)}if(this.updateSettleOrders(e),e.history&&(this.activeMarketHistory=this.activeMarketHistory.clear(),e.history.forEach((e=>{e.op.is_maker||0==e.op.receives.amount||0==e.op.pays.amount||(this.activeMarketHistory=this.activeMarketHistory.add(new u.te(e,n,this.quoteAsset.get("id"))))}))),e.fillOrders&&e.fillOrders.forEach((e=>{this.activeMarketHistory=this.activeMarketHistory.add(new u.te(e[0][1],n,this.quoteAsset.get("id")))})),e.ticker){let t=this.quoteAsset.get("symbol")+"_"+this.baseAsset.get("symbol"),a=this._calcMarketStats(this.baseAsset,this.quoteAsset,t,e.ticker);this.allMarketStats=this.allMarketStats.set(t,a);let{invertedStats:s,invertedMarketName:n}=this._invertMarketStats(a,t);this.allMarketStats=this.allMarketStats.set(n,s),this._saveMarketStats(),this.marketStats=this.marketStats.set("change",a.change),this.marketStats=this.marketStats.set("volumeBase",a.volumeBase),this.marketStats=this.marketStats.set("volumeQuote",a.volumeQuote)}if((s||a)&&(this._orderBook(a,s),this._depthChart()),e.price&&(this.priceHistory=e.price,this._priceChart()),e.groupedOrdersBids.length>0||e.groupedOrdersAsks.length>0){const t=[],a=[];e.groupedOrdersBids.forEach(((e,a)=>{t.push(new u.aN(e,n,!0))})),e.groupedOrdersAsks.forEach(((e,t)=>{a.push(new u.aN(e,n,!1))})),this._groupedOrderBook(t,a),this._depthChart()}this.marketReady=!0,this.emitChange(),t&&this._notifySubscriber("market_change",this.quoteAsset.get("symbol")+"_"+this.baseAsset.get("symbol")),e.resolve&&e.resolve()}onCancelLimitOrderSuccess(e){if(!e||!e.length)return!1;{let t=!1;e.forEach((e=>{e&&this.marketLimitOrders.has(e)&&(t=!0,this.marketLimitOrders=this.marketLimitOrders.delete(e))})),0===this.marketLimitOrders.size&&(this.marketData.bids=[],this.marketData.flatBids=[],this.marketData.asks=[],this.marketData.flatAsks=[]),t&&(this._orderBook(!0,!1),this._depthChart())}}onCloseCallOrderSuccess(e){if(!e||!this.marketCallOrders.has(e))return!1;this.marketCallOrders=this.marketCallOrders.delete(e),0===this.marketCallOrders.size&&(this.marketData.calls=[],this.marketData.flatCalls=[]),this._orderBook(!1,!0),this._depthChart()}onCallOrderUpdate(e){if(!(e&&this.quoteAsset&&this.baseAsset&&this.feedPrice))return!1;if(e.call_price.quote.asset_id===this.quoteAsset.get("id")||e.call_price.quote.asset_id===this.baseAsset.get("id")){const t={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]),s=new u.Gy(e,t,this.quoteAsset.get("id"),this.feedPrice,a);s.isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(e.id,s,a),this._orderBook(!1,!0),this._depthChart())}catch(t){console.error("Unable to construct calls array, invalid feed price or prediction market?",e,this.quoteAsset&&this.quoteAsset.get("id"),this.baseAsset&&this.baseAsset.get("id"))}}}onFeedUpdate(e){if(!this.quoteAsset||!this.baseAsset)return!1;if(e.get("id")!==this[this.invertedCalls?"baseAsset":"quoteAsset"].get("id"))return!1;this[this.invertedCalls?"baseAsset":"quoteAsset"]=e;let t=!1,a=this._getFeed();if((a&&!this.feedPrice||this.feedPrice&&this.feedPrice.ne(a))&&(t=!0),t){this.feedPrice=a;const e={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};this.marketCallOrders=this.marketCallOrders.clear(),this.allCallOrders.forEach((t=>{try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]);new u.Gy(t,e,this.quoteAsset.get("id"),this.feedPrice,a,this.is_prediction_market).isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(t.id,new u.Gy(t,e,this.quoteAsset.get("id"),this.feedPrice,a)))}catch(e){console.error("Unable to construct calls array, invalid feed price or prediction market?")}})),this._orderBook(!0,!0),this._depthChart()}}_getFeed(){if(!this._marketHasCalls())return this.bitasset_options=null,this.is_prediction_market=!1,null;const e={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};let t=p.Z.extractRawFeedPrice(this[this.invertedCalls?"baseAsset":"quoteAsset"]);try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maximum_short_squeeze_ratio"]),s=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","options","extensions","margin_call_fee_ratio"]);if(this.is_prediction_market=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","is_prediction_market"],!1),this.bitasset_options=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","options"]).toJS(),this.is_prediction_market&&t.getIn(["base","asset_id"])===t.getIn(["quote","asset_id"])){const s=this.bitasset_options.short_backing_asset;e[s]||(e[s]={precision:this.quoteAsset.get("precision")}),t=t.setIn(["base","amount"],1),t=t.setIn(["base","asset_id"],s),t=t.setIn(["quote","amount"],1),t=t.setIn(["quote","asset_id"],this.quoteAsset.get("id")),a=1e3}return new u.ad({priceObject:t,market_base:this.quoteAsset.get("id"),sqr:a,mcfr:s,assets:e})}catch(e){return console.error(this.activeMarket,"does not have a properly configured feed price"),null}}_priceChart(){let e,t,a,s,n,r=[];for(let o=0;o(e+s)/2*1.3&&(t=c(e,s)),a<(e+s)/2*.7&&(a=u(e,s)),r.push({time:l.getTime(),open:e,high:t,low:a,close:s,volume:n})}this.priceData=r,this._notifySubscriber("subscribeBars")}_orderBook(e=!0,t=!1){e&&(this.marketData.bids=(e=>{let t=this.marketLimitOrders.filter((e=>e.isBid())).sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>e)).toArray();if(t.length>1)for(let e=t.length-2;e>=0;e--)t[e].getPrice()===t[e+1].getPrice()&&(t[e]=t[e].sum(t[e+1]),t.splice(e+1,1));return t})(),this.marketData.asks=(e=>{let t=this.marketLimitOrders.filter((e=>!e.isBid())).sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>e)).toArray();if(t.length>1)for(let e=t.length-2;e>=0;e--)t[e].getPrice()===t[e+1].getPrice()&&(t[e]=t[e].sum(t[e+1]),t.splice(e+1,1));return t})(),t||this._combineOrders()),t&&(this.marketData.calls=this.constructCalls(this.marketCallOrders),this._combineOrders())}_groupedOrderBook(e=null,t=null){if(e&&t){let a=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),s=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")});e.sort(((e,t)=>t.getPrice()-e.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!0)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),a=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")}),s=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),t.sort(((e,t)=>e.getPrice()-t.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!1)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),this.marketData.groupedBids=e,this.marketData.groupedAsks=t}}constructCalls(e){let t=[];if(e.size){if(t=e.sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>(this.invertedCalls?this.lowestCallPrice=this.lowestCallPrice?Math.max(this.lowestCallPrice,e.getPrice(!1)):e.getPrice(!1):this.lowestCallPrice=this.lowestCallPrice?Math.min(this.lowestCallPrice,e.getPrice(!1)):e.getPrice(!1),e))).toArray(),t.length>1)for(let e=t.length-2;e>=0;e--)t[e]=t[e].sum(t[e+1]),t.splice(e+1,1)}else this.lowestCallPrice=null;return t}_saveMarketStats(){this.saveStatsTimeout||(this.saveStatsTimeout=setTimeout((()=>{m.set("allMarketStats",this.allMarketStats.toJS()),this.saveStatsTimeout=null}),3e4))}_combineOrders(){let e,t;this.marketCallOrders.size&&this.marketCallOrders.first().isBid()?(e=this.marketData.bids.concat(this.marketData.calls),t=this.marketData.asks.concat([])):(e=this.marketData.bids.concat([]),t=this.marketData.asks.concat(this.marketData.calls));let a=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),s=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")});e.sort(((e,t)=>t.getPrice()-e.getPrice())).forEach((e=>{a.plus(e.amountToReceive(!0)),s.plus(e.amountForSale()),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),a=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")}),s=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),t.sort(((e,t)=>e.getPrice()-t.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!1)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),this.marketData.lowestAsk=t.length?t[0]:h,this.marketData.highestBid=e.length?e[0]:h,this.marketData.combinedBids=e,this.marketData.combinedAsks=t}_depthChart(){let e=[],t=[],a=[],s=0,n=0,r=0,o=[],l=[],c=[],d=[];if(this.marketLimitOrders.size&&(this.marketData.bids.forEach((t=>{e.push([t.getPrice(),t.amountToReceive().getAmount({real:!0})]),s+=t.amountForSale().getAmount({real:!0})})),this.marketData.asks.forEach((e=>{t.push([e.getPrice(),e.amountForSale().getAmount({real:!0})])})),t.sort(((e,t)=>e[0]-t[0])),e.sort(((e,t)=>e[0]-t[0])),o=i.Z.flatten_orderbookchart_highcharts(e,!0,!0,1e3),o.length>0&&o.unshift([0,o[0][1]]),l=i.Z.flatten_orderbookchart_highcharts(t,!0,!1,1e3),l.length>0&&(l.push([1.5*l[l.length-1][0],l[l.length-1][1]]),n=l[l.length-1][1])),this.marketData.calls.length){let e=this.marketData.calls[0].isBid();this.marketData.calls.forEach((e=>{a.push([e.getSqueezePrice(),e[e.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0})])})),a.forEach((e=>{this.invertedCalls?r+=e[1]:r+=e[1]*e[0]})),e?s+=r:n+=r,a.sort(((e,t)=>e[0]-t[0])),this.invertedCalls?(c=i.Z.flatten_orderbookchart_highcharts(a,!0,!1,1e3),l.length>0&&c[c.length-1][0]0&&c.unshift([0,c[0][1]]))}this.marketSettleOrders.size&&(d=this.marketSettleOrders.reduce(((e,t)=>e?(e[0][1]=e[0][1]+t[t.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0}),e):[[t.getPrice(),t[t.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0})]]),null),this.feedPrice.inverted?l.length>0&&d.push([l[l.length-1][0],d[0][1]]):d.unshift([0,d[0][1]])),this.marketData.groupedBids.length>0&&this.marketData.groupedAsks.length>0&&(e=[],t=[],s=0,n=0,this.marketData.groupedBids.forEach((t=>{e.push([t.getPrice(),t.amountToReceive().getAmount({real:!0})]),s+=t.amountForSale().getAmount({real:!0})})),this.marketData.groupedAsks.forEach((e=>{t.push([e.getPrice(),e.amountForSale().getAmount({real:!0})])})),t.sort(((e,t)=>e[0]-t[0])),e.sort(((e,t)=>e[0]-t[0])),o=i.Z.flatten_orderbookchart_highcharts(e,!0,!0,1e3),o.length>0&&o.unshift([0,o[0][1]]),l=i.Z.flatten_orderbookchart_highcharts(t,!0,!1,1e3),l.length>0&&(l.push([1.5*l[l.length-1][0],l[l.length-1][1]]),n=l[l.length-1][1])),this.marketData.flatAsks=l,this.marketData.flatBids=o,this.marketData.flatCalls=c,this.marketData.flatSettles=d,this.totals={bid:s,ask:n,call:r}}_calcMarketStats(e,t,a,s){let n,r=new u.xR({real:parseFloat(s.base_volume),asset_id:e.get("id"),precision:e.get("precision")}),o=new u.xR({real:parseFloat(s.quote_volume),asset_id:t.get("id"),precision:t.get("precision")});try{n=new u.tA({base:r,quote:o,real:parseFloat(s.latest)})}catch(e){}let i=n?{base:n.base.toObject(),quote:n.quote.toObject()}:null;return n&&isNaN(n.toReal())&&(n=void 0,i=null),{change:parseFloat(s.percent_change).toFixed(2),volumeBase:r.getAmount({real:!0}),volumeQuote:o.getAmount({real:!0}),price:n,close:i}}_invertMarketStats(e,t){let a=t.split("_")[1]+"_"+t.split("_")[0];return{invertedStats:{change:(100*(1/(1+parseFloat(e.change)/100)-1)).toFixed(2),price:e.price?e.price.invert():e.price,volumeBase:e.volumeQuote,volumeQuote:e.volumeBase,close:e.close?{base:e.close.quote,quote:e.close.base}:e.close},invertedMarketName:a}}onGetMarketStats(e){if(e&&e.tickers){for(var t=0;t{e.settlement_date=new Date(e.settlement_date+"Z"),this.marketSettleOrders=this.marketSettleOrders.add(new u.l4(e,t,this.quoteAsset.get("id"),this.feedPrice,this.bitasset_options))}))}}onGetTrackedGroupsConfig(e){e.trackedGroupsConfig.length>0&&(this.trackedGroupsConfig=e.trackedGroupsConfig)}onChangeCurrentGroupLimit(e){this.currentGroupLimit=e}},"MarketsStore")},79618:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(43393),n=a.n(s),r=a(57296),o=a(16912),i=a(80017),l=a(41075),c=a(48126),d=a(43143),u=a(99659),p=a(71452),h=a(30806);class m extends o.Z{constructor(){super(),this.state=this._getInitialState(),this.pending_operation_count=0,this.bindListeners({onLoadDbData:d.Z.loadDbData,onAddKey:d.Z.addKey}),this._export("hasKey","getPubkeys","getTcomb_byPubkey","getPubkeys_having_PrivateKey","addPrivateKeys_noindex","decodeMemo","setPasswordLoginKey")}_getInitialState(){return{keys:n().Map(),privateKeyStorage_error:!1,pending_operation_count:0,privateKeyStorage_error_add_key:null,privateKeyStorage_error_loading:null}}setPasswordLoginKey(e){let t=this.state.keys.set(e.pubkey,e);this.setState({keys:t})}onLoadDbData(e){this.pendingOperation(),this.setState(this._getInitialState());let t=n().Map().asMutable();e(i.Z.cursor("private_keys",(e=>{if(!e)return void this.setState({keys:t.asImmutable()});let a=(0,c.E)(e.value);t.set(a.pubkey,a),p.Z.add(a.pubkey),e.continue()})).then((()=>{this.pendingOperationDone()})).catch((e=>{throw this.setState(this._getInitialState()),this.privateKeyStorageError("loading",e),e})))}hasKey(e){return this.state.keys.has(e)}getPubkeys(){return this.state.keys.keySeq().toArray()}getPubkeys_having_PrivateKey(e,t=null){let a=[];if(e)for(let t of e)this.hasKey(t)&&a.push(t);if(t){let e=p.Z.getState().addresses;for(let s of t){let t=e.get(s);a.push(t)}}return a}getTcomb_byPubkey(e){return e?(e.Q&&(e=e.toPublicKeyString()),this.state.keys.get(e)):null}onAddKey({private_key_object:e,transaction:t,resolve:a}){if(this.state.keys.has(e.pubkey))return void a({result:"duplicate",id:null});this.pendingOperation(),this.state.keys=this.state.keys.set(e.pubkey,(0,c.E)(e)),this.setState({keys:this.state.keys}),p.Z.add(e.pubkey);let s=new Promise(((a,s)=>{(0,c.E)(e);let n=!1,r=i.Z.add(t.objectStore("private_keys"),e);r.catch((e=>{let t=e.target.error;if(console.log("... error",t,e),"ConstraintError"!=t.name||-1==t.message.indexOf("by_encrypted_key"))throw this.privateKeyStorageError("add_key",t),e;n=!0,e.preventDefault()})).then((()=>(this.pendingOperationDone(),n?{result:"duplicate",id:null}:(null==e.brainkey_sequence&&this.binaryBackupRecommended(),i.Z.on_transaction_end(t).then((()=>{this.setState({keys:this.state.keys})})),{result:"added",id:e.id})))),a(r)}));a(s)}addPrivateKeys_noindex(e,t){let a=t.objectStore("private_keys"),s=0,n=this.state.keys.withMutations((t=>{for(let n of e){if(this.state.keys.has(n.pubkey)){s++;continue}let e=(0,c.E)(n);a.add(n),t.set(n.pubkey,e),h.ChainStore.getAccountRefsOfKey(n.pubkey)}}));return this.setState({keys:n}),this.binaryBackupRecommended(),s}binaryBackupRecommended(){u.Z.set("backup_recommended",!0)}pendingOperation(){this.pending_operation_count++,this.setState({pending_operation_count:this.pending_operation_count})}pendingOperationDone(){if(0==this.pending_operation_count)throw new Error("Pending operation done called too many times");this.pending_operation_count--,this.setState({pending_operation_count:this.pending_operation_count})}privateKeyStorageError(e,t){this.pendingOperationDone();let a={privateKeyStorage_error:!0};a["privateKeyStorage_error_"+e]=t,console.error("privateKeyStorage_error_"+e,t),this.setState(a)}decodeMemo(e){let t,a=!1,s=!1,n=this.state.keys.get(e.from),r=this.state.keys.get(e.to),o=n||r,i=n?e.to:e.from;i=h.PublicKey.fromPublicKeyString(i);try{o=l.Z.decryptTcomb_PrivateKey(o)}catch(e){a=!0,o=null,s=!0}if(o){let a=!1;try{t=o?h.Aes.decrypt_with_checksum(o,i,e.nonce,e.message).toString("utf-8"):null}catch(e){console.log("transfer memo exception ...",e),t="*",a=!0}if(o&&a)try{t=h.Aes.decrypt_with_checksum(o,i,e.nonce,e.message,!0).toString("utf-8")}catch(e){console.log("transfer memo exception ...",e),t="**"}}return{text:t,isMine:s}}}const g=r.Z.createStore(m,"PrivateKeyStore")},39014:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(55294),r=a(51477),o=a(43393),i=a.n(o),l=a(19602),c=a(55420),d=a(21712),u=a(60567);let p=(0,l.ZP)("__graphene__");const h=s.Z.createStore(class{constructor(){this.exportPublicMethods({init:this.init.bind(this),getSetting:this.getSetting.bind(this),getLastBudgetObject:this.getLastBudgetObject.bind(this),setLastBudgetObject:this.setLastBudgetObject.bind(this),hasAnyPriceAlert:this.hasAnyPriceAlert.bind(this)}),this.bindListeners({onSetPriceAlert:n.Z.setPriceAlert,onSetExchangeLastExpiration:n.Z.setExchangeLastExpiration,onSetExchangeTutorialShown:n.Z.setExchangeTutorialShown,onChangeSetting:n.Z.changeSetting,onChangeViewSetting:n.Z.changeViewSetting,onChangeMarketDirection:n.Z.changeMarketDirection,onAddStarMarket:n.Z.addStarMarket,onRemoveStarMarket:n.Z.removeStarMarket,onClearStarredMarkets:n.Z.clearStarredMarkets,onAddWS:n.Z.addWS,onRemoveWS:n.Z.removeWS,onShowWS:n.Z.showWS,onHideWS:n.Z.hideWS,onHideAsset:n.Z.hideAsset,onHideMarket:n.Z.hideMarket,onClearSettings:n.Z.clearSettings,onSwitchLocale:r.Z.switchLocale,onSetUserMarket:n.Z.setUserMarket,onUpdateLatencies:n.Z.updateLatencies,onModifyPreferedBases:n.Z.modifyPreferedBases,onUpdateUnits:n.Z.updateUnits,onHideNewsHeadline:n.Z.hideNewsHeadline,onAddChartLayout:n.Z.addChartLayout,onDeleteChartLayout:n.Z.deleteChartLayout}),this.initDone=!1,this.settings=i().Map(this._getSetting()),this.defaultSettings=i().Map(this._getDefaultSetting()),this.defaults=this._getChoices(),this.viewSettings=i().Map(p.get("viewSettings_v1")),this.marketDirections=i().Map(p.get("marketDirections")),this.hiddenAssets=i().List(p.get("hiddenAssets",[])),this.hiddenMarkets=i().List(p.get("hiddenMarkets",[])),this.apiLatencies=p.get("apiLatencies",{}),this.mainnet_faucet=p.get("mainnet_faucet",d.MU.DEFAULT_FAUCET),this.testnet_faucet=p.get("testnet_faucet",d.MU.TESTNET_FAUCET),this.exchange=(0,o.fromJS)(p.get("exchange",{})),this.priceAlert=(0,o.fromJS)(p.get("priceAlert",[])),this.hiddenNewsHeadline=i().List(p.get("hiddenNewsHeadline",[])),this.chartLayouts=i().List(p.get("chartLayouts",[]))}_getDefaultSetting(){return{locale:"en",apiServer:d.MU.DEFAULT_WS_NODE,filteredApiServers:[],filteredServiceProviders:["all"],faucet_address:d.MU.DEFAULT_FAUCET,unit:"BTS",fee_asset:"BTS",showSettles:!1,showAssetPercent:!1,walletLockTimeout:600,themes:(0,u.Vx)(),passwordLogin:"password"==(0,u.f1)(),browser_notifications:{allow:!0,additional:{transferToMe:!0}},rememberMe:!0,viewOnlyMode:!0,showProposedTx:!1}}_getDefaultChoices(){return{locale:["en","zh","fr","ko","de","es","it","tr","ru","ja"],apiServer:d.MU.WS_NODE_LIST.slice(0),filteredApiServers:[[]],filteredServiceProviders:[[]],unit:(0,u.rY)(),fee_asset:(0,u.rY)(),showProposedTx:[{translate:"yes"},{translate:"no"}],showSettles:[{translate:"yes"},{translate:"no"}],showAssetPercent:[{translate:"yes"},{translate:"no"}],themes:["darkTheme","lightTheme","midnightTheme"],passwordLogin:[{translate:"cloud_login"},{translate:"local_wallet"}],browser_notifications:{allow:[!0,!1],additional:{transferToMe:[!0,!1]}},rememberMe:[!0,!1],viewOnlyMode:[{translate:"show"},{translate:"hide"}]}}_isEmpty(e){let t=!0;return Object.keys(e).forEach((a=>{e.hasOwnProperty(a)&&null!==e[a]&&(t=!1)})),t}_replaceDefaults(e="saving",t,a=null){null==a&&(a=this._getDefaultSetting());let s=["activeNode"],n={};return"saving"===e?Object.keys(t).forEach((e=>{if(!s.includes(e)&&typeof t[e]==typeof a[e])if(t[e]instanceof Array||"object"!=typeof t[e])t[e]!==a[e]&&(t[e]instanceof Array?JSON.stringify(t[e])!==JSON.stringify(a[e])&&(n[e]=t[e]):n[e]=t[e]);else{let s=this._replaceDefaults("saving",t[e],a[e]);this._isEmpty(s)||(n[e]=s)}})):(Object.keys(a).forEach((e=>{let s=!1;void 0!==t[e]?typeof t[e]!=typeof a[e]?s=!0:t[e]instanceof Array||"object"!=typeof t[e]?n[e]=t[e]:n[e]=this._replaceDefaults("loading",t[e],a[e]):s=!0,s&&("object"==typeof t[e]?n[e]=JSON.parse(JSON.stringify(a[e])):n[e]=a[e])})),Object.keys(t).forEach((e=>{null==n[e]&&(n[e]=JSON.parse(JSON.stringify(t[e])))}))),n}_getSetting(){let e=new Date("2018-10-20T00:00:00Z");if(!p.has("settings_v4")&&new Date{"apiServer"!=t&&(a[t]=e[t])})),a.apiServer=this._getApiServerChoices(e,t),a}_getApiServerChoices(e,t){let a=e.apiServer.slice(0);return t.apiServer.forEach((e=>{let t=a.find((t=>t.url==e.url));t?this._injectApiConfiguration(t,e):e.default||a.push(e)})),a=a.map((t=>{let a=e.apiServer.find((e=>e.url==t.url));return t.default=!!a,t.hidden=!!t.hidden,t})),a}_ensureBackwardsCompatibilityChoices(e){if(e&&e.locale){let t=e.locale.findIndex((e=>"cn"===e));-1!==t&&(e.locale[t]="zh")}if(e&&e.themes){let t=e.themes.findIndex((e=>"olDarkTheme"===e));-1!==t&&(e.themes[t]="midnightTheme")}return e&&e.apiServer&&(e.apiServer=e.apiServer.map((e=>("string"==typeof e&&(e={url:e,location:null}),e)))),e}init(){return new Promise((e=>{this.initDone&&e(),this.starredKey=this._getChainKey("markets"),this.marketsKey=this._getChainKey("userMarkets"),this.basesKey=this._getChainKey("preferredBases");let t={markets_4018d784:(0,u.sY)(),markets_39f5e2ed:["PEG.FAKEUSD","BTWTY"]},a={markets_4018d784:(0,u.wV)(),markets_39f5e2ed:["TEST"]},s={markets_4018d784:"BTS",markets_39f5e2ed:"TEST"}[this.starredKey]||"BTS";this.onUpdateUnits(),this.defaults.unit[0]=s;let n=a[this.starredKey]||a.markets_4018d784,r=p.get(this.basesKey,[]);this.preferredBases=i().List(r.length?r:n),this.chainMarkets=t[this.starredKey]||[];let o=this._getDefaultMarkets();this.defaultMarkets=i().Map(o),this.starredMarkets=i().Map(p.get(this.starredKey,[])),this.userMarkets=i().Map(p.get(this.marketsKey,{})),this.initDone=!0,e()}))}_getDefaultMarkets(){let e=[];return this.preferredBases.forEach((t=>{!function(e,t,a){a.filter((e=>e!==t)).forEach((a=>{e.push([`${a}_${t}`,{quote:a,base:t}])}))}(e,t,this.chainMarkets)})),e}getSetting(e){return this.settings.get(e)}onChangeSetting(e){let t=!0;switch(e.setting){case"faucet_address":-1===e.value.indexOf("testnet")?(this.mainnet_faucet=e.value,p.set("mainnet_faucet",e.value)):(this.testnet_faucet=e.value,p.set("testnet_faucet",e.value));break;case"walletLockTimeout":p.set("lockTimeout",e.value);break;case"activeNode":t=!0}this.settings.get(e.setting)!==e.value&&(this.settings=this.settings.set(e.setting,e.value),t&&this._saveSettings())}onChangeViewSetting(e){for(let t in e)this.viewSettings=this.viewSettings.set(t,e[t]);p.set("viewSettings_v1",this.viewSettings.toJS())}onChangeMarketDirection(e){for(let t in e)e[t]?this.marketDirections=this.marketDirections.set(t,e[t]):this.marketDirections=this.marketDirections.delete(t);p.set("marketDirections",this.marketDirections.toJS())}onHideAsset(e){e.id&&(e.status?this.hiddenAssets=this.hiddenAssets.push(e.id):this.hiddenAssets=this.hiddenAssets.delete(this.hiddenAssets.indexOf(e.id))),p.set("hiddenAssets",this.hiddenAssets.toJS())}onHideMarket(e){e.id&&(e.status?this.hiddenMarkets=this.hiddenMarkets.push(e.id):this.hiddenMarkets=this.hiddenMarkets.delete(this.hiddenMarkets.indexOf(e.id))),p.set("hiddenMarkets",this.hiddenMarkets.toJS())}onAddStarMarket(e){let t=e.quote+"_"+e.base;if(this.starredMarkets.has(t))return!1;this.starredMarkets=this.starredMarkets.set(t,{quote:e.quote,base:e.base}),p.set(this.starredKey,this.starredMarkets.toJS())}onSetUserMarket(e){let t=e.quote+"_"+e.base;e.value?this.userMarkets=this.userMarkets.set(t,{quote:e.quote,base:e.base}):this.userMarkets=this.userMarkets.delete(t),p.set(this.marketsKey,this.userMarkets.toJS())}onRemoveStarMarket(e){let t=e.quote+"_"+e.base;this.starredMarkets=this.starredMarkets.delete(t),p.set(this.starredKey,this.starredMarkets.toJS())}onClearStarredMarkets(){this.starredMarkets=i().Map({}),p.set(this.starredKey,this.starredMarkets.toJS())}onAddWS(e){"string"==typeof e&&(e={url:e,location:null}),this.defaults.apiServer.push(e),p.set("defaults_v1",this.defaults)}onRemoveWS(e){this.defaults.apiServer.splice(e,1),p.set("defaults_v1",this.defaults)}onHideWS(e){this.defaults.apiServer.find((t=>t.url===e)).hidden=!0,p.set("defaults_v1",this.defaults)}onShowWS(e){this.defaults.apiServer.find((t=>t.url===e)).hidden=!1,p.set("defaults_v1",this.defaults)}onClearSettings(e){p.remove("settings_v3"),p.remove("settings_v4"),this.settings=this.defaultSettings,this._saveSettings(),e&&e()}onSwitchLocale({locale:e}){this.onChangeSetting({setting:"locale",value:e})}_getChainId(){return(c.Apis.instance().chain_id||"4018d784").substr(0,8)}_getChainKey(e){const t=this._getChainId();return e+(t?`_${t.substr(0,8)}`:"")}onUpdateLatencies(e){p.set("apiLatencies",e),this.apiLatencies=e}getLastBudgetObject(){return p.get(this._getChainKey("lastBudgetObject"),"2.13.1")}setLastBudgetObject(e){p.set(this._getChainKey("lastBudgetObject"),e)}setExchangeSettings(e,t){this.exchange=this.exchange.set(e,t),p.set("exchange",this.exchange.toJS())}getPriceAlert(){return this.priceAlert.toJS()}onSetPriceAlert(e){this.priceAlert=(0,o.fromJS)(e),p.set("priceAlert",e)}hasAnyPriceAlert(e,t){return this.priceAlert.some((a=>a.get("quoteAssetSymbol")===e&&a.get("baseAssetSymbol")===t))}getExchangeSettings(e){return this.exchange.get(e)}onSetExchangeLastExpiration(e){this.setExchangeSettings("lastExpiration",(0,o.fromJS)(e))}onSetExchangeTutorialShown(e){this.setExchangeSettings("tutorialShown",e)}getExhchangeLastExpiration(){return this.getExchangeSettings("lastExpiration")}onModifyPreferedBases(e){if("newIndex"in e&&"oldIndex"in e){let t=this.preferredBases.get(e.newIndex);this.preferredBases=this.preferredBases.set(e.newIndex,this.preferredBases.get(e.oldIndex)),this.preferredBases=this.preferredBases.set(e.oldIndex,t)}else if("remove"in e){this.preferredBases=this.preferredBases.delete(e.remove);let t=this._getDefaultMarkets();this.defaultMarkets=i().Map(t)}else if("add"in e){this.preferredBases=this.preferredBases.push(e.add);let t=this._getDefaultMarkets();this.defaultMarkets=i().Map(t)}p.set(this.basesKey,this.preferredBases.toArray())}onUpdateUnits(){this.defaults.unit=(0,u.rY)(),-1===this.defaults.unit.indexOf(this.settings.get("unit"))&&(this.settings=this.settings.set("unit",this.defaults.unit[0]),this.settings=this.settings.set("fee_asset",this.defaults.unit[0]))}onHideNewsHeadline(e){e&&this.hiddenNewsHeadline.indexOf(e)&&(this.hiddenNewsHeadline=this.hiddenNewsHeadline.push(e),p.set("hiddenNewsHeadline",this.hiddenNewsHeadline.toJS()))}onAddChartLayout(e){if(e.name){e.enabled=!0;const t=this.chartLayouts.findIndex((t=>t.name===e.name&&t.symbol===e.symbol));-1!==t&&(this.chartLayouts=this.chartLayouts.delete(t)),this.chartLayouts=this.chartLayouts.map((t=>(t.symbol===e.symbol&&(t.enabled=!1),t))),this.chartLayouts=this.chartLayouts.push(e),p.set("chartLayouts",this.chartLayouts.toJS())}}onDeleteChartLayout(e){if(e){const t=this.chartLayouts.findIndex((t=>t.name===e));-1!==t&&(this.chartLayouts=this.chartLayouts.delete(t)),p.set("chartLayouts",this.chartLayouts.toJS())}}},"SettingsStore")},69730:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(57296),n=a(69778);const r=s.Z.createStore(class{constructor(){this.bindActions(n.Z),this.state=this.getInitialState(),this.exportPublicMethods({reset:this.reset.bind(this)})}getInitialState(){return{transaction:null,error:null,broadcasting:!1,broadcast:!1,included:!1,trx_id:null,trx_block_num:null,closed:!0,broadcasted_transaction:null,propose:!1,fee_paying_account:null}}onConfirm({transaction:e,resolve:t,reject:a}){let s={...this.getInitialState(),transaction:e,closed:!1,broadcasted_transaction:null,resolve:t,reject:a};this.setState(s)}onClose(){this.setState({closed:!0})}onBroadcast(e){this.setState(e),e.broadcasted_transaction&&this.setState({broadcasted_transaction:this.state.transaction})}onWasBroadcast(e){this.setState({broadcasting:!1,broadcast:!0})}onWasIncluded(e){this.setState({error:null,broadcasting:!1,broadcast:!0,included:!0,trx_id:e[0].id,trx_block_num:e[0].block_num,broadcasted_transaction:this.state.transaction})}onError({error:e}){this.setState({broadcast:!1,broadcasting:!1,error:e})}onTogglePropose(){this.setState({propose:!this.state.propose})}onProposeFeePayingAccount(e){this.setState({fee_paying_account:e})}reset(){this.state=this.getInitialState()}},"TransactionConfirmStore")},41075:(e,t,a)=>{"use strict";a.d(t,{Z:()=>C});var s=a(68652),n=a(57296),r=a(16912),o=a(95768),i=a(80017),l=a(79618),c=a(39014),d=a(48126),u=a(69778),p=a(56934),h=a(43143),m=a(82050),g=a(30806),b=a(55420),f=a(71452),y=a(55294),_=a(76660),w=a(112),k=a.n(w),v=a(48764).Buffer;let A,E=null,x=null;class S extends r.Z{constructor(){super(),this.state={wallet:null,saving_keys:!1},this.confirm_transactions=!0,g.ChainStore.subscribe(this.checkNextGeneratedKey.bind(this)),this.generateNextKey_pubcache=[],this._export("checkNextGeneratedKey","getWallet","onLock","isLocked","decryptTcomb_PrivateKey","getPrivateKey","process_transaction","transaction_update","transaction_update_keys","getBrainKey","getBrainKeyPrivate","onCreateWallet","validatePassword","changePassword","generateNextKey","incrementBrainKeySequence","saveKeys","saveKey","setWalletModified","setBackupDate","setBrainkeyBackupDate","_updateWallet","loadDbData","importKeysWorker","resetBrainKeySequence","decrementBrainKeySequence","generateKeyFromPassword"),this.generatingKey=!1}checkNextGeneratedKey(){if(this.state.wallet&&E&&this.state.wallet.encrypted_brainkey&&this.chainstore_account_ids_by_key!==g.ChainStore.account_ids_by_key){this.chainstore_account_ids_by_key=g.ChainStore.account_ids_by_key;try{this.generateNextKey(!1)}catch(e){console.error(e)}}}getWallet(){return this.state.wallet}onLock(){x=null,E=null}isLocked(){return!(E||x)}decryptTcomb_PrivateKey(e){if(!e)return null;if(this.isLocked())throw new Error("wallet locked");if(x&&x[e.pubkey])return x[e.pubkey];let t=E.decryptHex(e.encrypted_key);return g.PrivateKey.fromBuffer(new v(t,"hex"))}getPrivateKey(e){if(x)return x[e];if(!e)return null;e.Q&&(e=e.toPublicKeyString());let t=l.Z.getTcomb_byPubkey(e);return t?this.decryptTcomb_PrivateKey(t):null}process_transaction(e,t,a,s=[]){return!c.Z.getState().settings.get("passwordLogin")&&this.state.wallet&&b.Apis.instance().chain_id!==this.state.wallet.chain_id?Promise.reject("Mismatched chain_id; expecting "+this.state.wallet.chain_id+", but got "+b.Apis.instance().chain_id):p.Z.unlock().then((()=>(m.Z.tryToSetCurrentAccount(),Promise.all([e.set_required_fees(),e.update_head_block()]).then((()=>{let n={};if(t){let a=l.Z.getPubkeys_having_PrivateKey(t);if(!a.length)throw new Error("Missing signing key");for(let t of a){let a=this.getPrivateKey(t);e.add_signer(a,t),n[t]=!0}}return e.get_potential_signatures().then((({pubkeys:t,addys:a})=>{let r=l.Z.getPubkeys_having_PrivateKey(t.concat(s),a);return e.get_required_signatures(r).then((t=>{for(let a of t){if(n[a])continue;let t=this.getPrivateKey(a);if(!t)throw new Error("Missing signing key for "+a);e.add_signer(t,a)}}))})).then((()=>{if(a){if(this.confirm_transactions){return new Promise(((t,a)=>{u.Z.confirm(e,t,a)}))}return e.broadcast()}return e.serialize()}))}))))).catch((e=>{console.error(e)}))}transaction_update(){return o.Z.instance().db().transaction(["wallet"],"readwrite")}transaction_update_keys(){return o.Z.instance().db().transaction(["wallet","private_keys"],"readwrite")}getBrainKey(){let e=this.state.wallet;if(!e.encrypted_brainkey)throw new Error("missing brainkey");if(!E)throw new Error("wallet locked");return E.decryptHexToText(e.encrypted_brainkey)}getBrainKeyPrivate(e=this.getBrainKey()){if(!e)throw new Error("missing brainkey");return g.PrivateKey.fromSeed(g.key.normalize_brainKey(e))}onCreateWallet(e,t,a=!1,s="default"){let n=n=>new Promise(((r,o)=>{if("string"!=typeof e)throw new Error("password string is required");let l;if(t){if("string"!=typeof t)throw new Error("Brainkey must be a string");if(""===t.trim())throw new Error("Brainkey can not be an empty string");if(t.length<50)throw new Error("Brainkey must be at least 50 characters long");l=new Date}let c=g.Aes.fromSeed(e),u=g.key.get_random_key().toBuffer(),h=c.encryptToHex(u),m=g.Aes.fromSeed(u);t=t?g.key.normalize_brainKey(t):g.key.suggest_brain_key(n.en);let f=this.getBrainKeyPrivate(t).toPublicKey().toPublicKeyString(),y=m.encryptToHex(t),_=g.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString(),w={public_name:s,password_pubkey:_,encryption_key:h,encrypted_brainkey:y,brainkey_pubkey:f,brainkey_sequence:0,brainkey_backup_date:l,created:new Date,last_modified:new Date,chain_id:b.Apis.instance().chain_id};(0,d.j)(w);let k=this.transaction_update(),v=i.Z.add(k.objectStore("wallet"),w),A=i.Z.on_transaction_end(k).then((()=>{this.state.wallet=w,this.setState({wallet:w}),a&&(E=m,p.Z.unlock().catch((()=>{})))}));Promise.all([v,A]).then((()=>{r()})).catch((e=>{o(e)}))}));{let e=t?null:fetch("dictionary.json");return Promise.all([e]).then((e=>t?n(null):e[0].json().then(n))).catch((e=>{console.log("unable to fetch dictionary.json",e)}))}}generateKeyFromPassword(e,t,a){let s=e+t+a,n=g.PrivateKey.fromSeed(s),r=n.toPublicKey().toString();return{privKey:n,pubKey:r}}validatePassword(e,t=!1,a=null,s=["active","owner","memo"]){if(a){let n,r=0;function o(e,t,s){x||(x={}),x[s]=t,r++,l.Z.setPasswordLoginKey({pubkey:s,import_account_names:[a],encrypted_key:null,id:r,brainkey_sequence:null})}try{n=g.PrivateKey.fromWif(e)}catch(d){}let i,c=g.ChainStore.getAccount(a,!1);if(n&&(i={privKey:n,pubKey:n.toPublicKey().toString()}),s.forEach((t=>{n||(i=this.generateKeyFromPassword(a,t,e));let s=!1;if(c)if("memo"===t)c.getIn(["options","memo_key"])===i.pubKey&&(o(0,i.privKey,i.pubKey),s=!0);else if(c.getIn([t,"key_auths"]).forEach((e=>{if(e.get(0)===i.pubKey)return o(0,i.privKey,i.pubKey),s=!0,!1})),!s){let e="active"===t?"owner":"active";c.getIn([e,"key_auths"]).forEach((e=>{if(e.get(0)===i.pubKey)return o(0,i.privKey,i.pubKey),s=!0,!1}))}})),!x&&this.state.wallet){let{success:u,cloudMode:p}=this.validatePassword(e,!0);if(u&&!p)return _.Notification.success({message:k().translate("wallet.local_switch")}),y.Z.changeSetting({setting:"passwordLogin",value:!1}),{success:!0,cloudMode:!1}}return{success:!!x,cloudMode:!0}}{let h=this.state.wallet;try{let m=g.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString();if(h.password_pubkey!==m)return!1;if(t){let b=g.Aes.fromSeed(e).decryptHexToBuffer(h.encryption_key);E=g.Aes.fromSeed(b)}return{success:!0,cloudMode:!1}}catch(f){return console.error(f),{success:!1,cloudMode:!1}}}}changePassword(e,t,a=!1){return new Promise((s=>{let n=this.state.wallet,{success:r}=this.validatePassword(e);if(!r)throw new Error("wrong password");let o=g.Aes.fromSeed(e),i=g.Aes.fromSeed(t);if(!n.encryption_key)throw new Error("This wallet does not support the change password feature.");let l=o.decryptHexToBuffer(n.encryption_key);n.encryption_key=i.encryptToHex(l);let c=g.PrivateKey.fromSeed(t);n.password_pubkey=c.toPublicKey().toPublicKeyString(),E=a?g.Aes.fromSeed(l):null,s(this.setWalletModified())}))}generateNextKey(e=!0){if(this.generatingKey)return;this.generatingKey=!0;let t=this.getBrainKey(),a=this.state.wallet,s=Math.max(a.brainkey_sequence,0),n=null;this.brainkey_look_ahead=Math.min(10,(this.brainkey_look_ahead||0)+1);const r=s?s+this.brainkey_look_ahead:Math.max(s+this.brainkey_look_ahead,10);for(let e=s;e{let n=[];for(let t of e)n.push(t.public_key_string);let r=f.Z.addAll(n),o=[];for(let t of e)o.push(t.private_plainhex);A=a(81895).Z;let c=new A;c.postMessage({private_plainhex_array:o,key:E.key,iv:E.iv});let d=this;this.setState({saving_keys:!0}),c.onmessage=a=>{try{console.log("Preparing for private keys save");let n=a.data,o=[];for(let t=0;t{console.log("Done saving keys",(new Date).toString())})))}catch(e){c.abort(),console.error(e),s(e)}}catch(e){console.error("AesWorker.encrypt",e)}}}))}saveKeys(e,t,a){let s=[];for(let n of e)s.push(this.saveKey(n.private_key,n.sequence,null,a,t));return Promise.all(s)}saveKey(e,t,a,s,n=this.transaction_update_keys()){let r=E.encryptToHex(e.toBuffer());if(this.state.wallet,s){if(0!=s.indexOf(b.ChainConfig.address_prefix))throw new Error("Public Key should start with "+b.ChainConfig.address_prefix)}else s=e.toPublicKey().toPublicKeyString();let o={import_account_names:a,encrypted_key:r,pubkey:s,brainkey_sequence:t};return h.Z.addKey(o,n).then((e=>e))}setWalletModified(e){return this._updateWallet(e)}setBackupDate(){return this.state.wallet.backup_date=new Date,this._updateWallet()}setBrainkeyBackupDate(){return this.state.wallet.brainkey_backup_date=new Date,this._updateWallet()}_updateWallet(e=this.transaction_update()){let t=this.state.wallet;if(!t)return void function(e){throw console.error("----- WalletDb reject error -----",e),new Error(e)}("missing wallet");let a=(0,s.Z)(t);a.last_modified=new Date,(0,d.j)(a);let n=e.objectStore("wallet"),r=i.Z.on_request_end(n.put(a)),o=i.Z.on_transaction_end(e).then((()=>{this.state.wallet=a,this.setState({wallet:a})}));return Promise.all([r,o])}loadDbData(){return i.Z.cursor("wallet",(e=>{if(!e)return!1;let t=e.value;t.created=new Date(t.created),t.last_modified=new Date(t.last_modified),t.backup_date=t.backup_date?new Date(t.backup_date):null,t.brainkey_backup_date=t.brainkey_backup_date?new Date(t.brainkey_backup_date):null;try{(0,d.j)(t)}catch(e){console.log("WalletDb format error",e)}return this.state.wallet=t,this.setState({wallet:t}),!1}))}}const C=n.Z.createStore(S,"WalletDb")},39238:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(57296),n=a(41075),r=a(44034),o=a(32793),i=a(54742),l=a(86481),c=a(43143),d=a(28969),u=a(30806),p=a(16912),h=a(95768),m=a(43393),g=a.n(m);class b extends p.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onRestore:d.Z.restore,onSetWallet:d.Z.setWallet,onSetBackupDate:d.Z.setBackupDate,onSetBrainkeyBackupDate:d.Z.setBrainkeyBackupDate,onDeleteWallet:d.Z.deleteWallet}),super._export("init","setNewWallet","onDeleteWallet","onDeleteAllWallets")}_getInitialState(){return{new_wallet:void 0,current_wallet:void 0,wallet_names:g().Set()}}onRestore({wallet_name:e,wallet_object:t}){h.Z.restore(e,t).then((()=>(o.Z.setWallet(e),this.onSetWallet({wallet_name:e})))).catch((e=>(console.error(e),Promise.reject(e))))}onSetWallet({wallet_name:e="default",create_wallet_password:t,brnkey:a,resolve:s}){var d=new Promise((s=>{if(/[^a-z0-9_-]/.test(e)||""===e)throw new Error("Invalid wallet name");if(this.state.current_wallet!==e){var d;if(!this.state.wallet_names.has(e)){var p=this.state.wallet_names.add(e);d=h.Z.root.setProperty("wallet_names",p),this.setState({wallet_names:p})}var m=h.Z.root.setProperty("current_wallet",e);s(Promise.all([d,m]).then((()=>(h.Z.close(),u.ChainStore.clearCache(),i.Z.reset(),h.Z.init_instance().init_promise.then((()=>(l.Z.reset(),Promise.all([n.Z.loadDbData().then((()=>o.Z.loadDbData())),c.Z.loadDbData().then((()=>r.Z.loadDbData()))]).then((()=>{if(t)return n.Z.onCreateWallet(t,a,!0,e).then((()=>this.setState({current_wallet:e})));this.setState({current_wallet:e})})))))))))}else s()})).catch((e=>(console.error(e),Promise.reject(e))));s&&s(d)}setNewWallet(e){this.setState({new_wallet:e})}init(){return h.Z.root.getProperty("current_wallet").then((e=>h.Z.root.getProperty("wallet_names",[]).then((t=>{this.setState({wallet_names:g().Set(t),current_wallet:e}),o.Z.setWallet(e)}))))}onDeleteAllWallets(){var e=[];return this.state.wallet_names.forEach((t=>e.push(this.onDeleteWallet(t)))),Promise.all(e)}onDeleteWallet(e){return new Promise((t=>{var{current_wallet:a,wallet_names:s}=this.state;if(!s.has(e))throw new Error("Can't delete wallet, does not exist in index");s=s.delete(e),h.Z.root.setProperty("wallet_names",s),a===e&&(a=s.size?s.first():void 0,h.Z.root.setProperty("current_wallet",a),a&&d.Z.setWallet(a)),this.setState({current_wallet:a,wallet_names:s});var n=h.Z.getDatabaseName(e);h.Z.impl.deleteDatabase(n),t(n)}))}onSetBackupDate(){n.Z.setBackupDate()}onSetBrainkeyBackupDate(){n.Z.setBrainkeyBackupDate()}}const f=s.Z.createStore(b,"WalletManagerStore")},29548:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(57296),n=a(56934),r=a(55294),o=a(41075),i=a(19602);let l=(0,i.ZP)("__graphene__");const c=s.Z.createStore(class{constructor(){this.bindActions(n.Z);const e=l.get("settings_v4",{});void 0===e.passwordLogin&&(e.passwordLogin=!0);let t=e.passwordLogin;this.state={locked:!0,passwordLogin:t,rememberMe:void 0===e.rememberMe||e.rememberMe},this.walletLockTimeout=this._getTimeout(),this.timeout=null,this.bindListeners({onChangeSetting:r.Z.changeSetting})}onUnlock({resolve:e,reject:t}){if(this._setLockTimeout(),!o.Z.isLocked())return this.setState({locked:!1}),void e();this.setState({resolve:e,reject:t,locked:o.Z.isLocked()})}onLock({resolve:e}){o.Z.isLocked()||(o.Z.onLock(),this.setState({resolve:null,reject:null,locked:o.Z.isLocked()}),this.state.rememberMe||(0,i.oA)()||(0,i.tc)("persistant")),e()}onCancel(){"function"==typeof this.state.reject&&this.state.reject({isCanceled:!0}),this.setState({resolve:null,reject:null})}onChange(){this.setState({locked:o.Z.isLocked()})}onChangeSetting(e){"walletLockTimeout"===e.setting?(this.walletLockTimeout=e.value,this._clearLockTimeout(),this._setLockTimeout()):"passwordLogin"===e.setting?this.setState({passwordLogin:e.value}):"rememberMe"===e.setting&&this.setState({rememberMe:e.rememberMe})}_setLockTimeout(){this._clearLockTimeout(),this.walletLockTimeout&&(this.timeout=setTimeout((()=>{o.Z.isLocked()||(console.log("auto locking after",this.walletLockTimeout,"s"),o.Z.onLock(),this.setState({locked:!0}))}),1e3*this.walletLockTimeout))}_clearLockTimeout(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null)}_getTimeout(){return parseInt(l.get("lockTimeout",600),10)}onCheckLock(){this.setState({locked:o.Z.isLocked()})}},"WalletUnlockStore")},48126:(e,t,a)=>{"use strict";a.d(t,{E:()=>r,j:()=>n});var s=a(4893);let n=(0,s.struct)({public_name:s.Str,created:s.Dat,last_modified:s.Dat,backup_date:(0,s.maybe)(s.Dat),password_pubkey:s.Str,encryption_key:s.Str,encrypted_brainkey:(0,s.maybe)(s.Str),brainkey_pubkey:s.Str,brainkey_sequence:s.Num,brainkey_backup_date:(0,s.maybe)(s.Dat),deposit_keys:(0,s.maybe)(s.Obj),chain_id:s.Str},"WalletTcomb"),r=(0,s.struct)({id:(0,s.maybe)(s.Num),pubkey:s.Str,label:(0,s.maybe)(s.Str),import_account_names:(0,s.maybe)(s.Arr),brainkey_sequence:(0,s.maybe)(s.Num),encrypted_key:s.Str},"PrivateKeyTcomb")},37199:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/atn.png"},64652:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/atri.png"},58661:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bat.png"},85977:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bch.png"},13221:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bkbt.png"},8971:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bkt.png"},34661:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/blockpay.png"},6717:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btc.png"},81551:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btg.png"},15234:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btm.png"},26275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bto.png"},34921:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bts.png"},79063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btsr.png"},47987:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btwty.png"},32316:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/cny.png"},13538:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/cof.png"},44851:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dao.png"},47868:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dash.png"},14935:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dct.png"},1904:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dgb.png"},65731:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dgd.png"},87554:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dht.png"},43368:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/doge.png"},51482:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/egem.png"},6644:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eos.png"},10372:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eth.png"},4552:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eur.png"},53289:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eurt.png"},31253:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/exr.png"},54849:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/fil.png"},61010:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/game.png"},97835:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gas.png"},74384:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gbg.png"},65968:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gdex.btc.png"},30649:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gold.png"},80790:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/golos.png"},89776:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/grc.png"},80265:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gxs.png"},51797:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hempsweet.png"},41519:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hero.png"},23254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hertz.png"},72794:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/icoo.png"},64254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/incnt.png"},89951:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kec.png"},90037:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kexcoin.png"},34389:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/krm.png"},63016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/lcrt.png"},20170:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/lisk.png"},89773:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ltc.png"},32275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/mdl.png"},58728:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/mkr.png"},44301:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/neo.png"},86741:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/nvc.png"},57634:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/nxc.png"},8476:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/obits.png"},99042:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/oct.png"},90378:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/open.btc.png"},81610:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/peerplays.png"},59639:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.bcc.png"},33902:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.btc.png"},24019:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.cosa.png"},57681:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.doge.png"},77399:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.ltc.png"},57202:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.pirate.png"},41450:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.png"},61139:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/post.png"},90859:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ppy.png"},6418:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/qtum.png"},19612:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ruble.png"},1185:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.btc.png"},42364:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.eos.png"},5119:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.eth.png"},25585:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.gbg.png"},44704:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.golos.png"},18625:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.grc.png"},65953:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.krm.png"},59929:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.pzm.png"},89745:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.sbd.png"},48810:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.smoke.png"},86946:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.steem.png"},75919:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.usdt.png"},13176:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.wls.png"},36324:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/sbd.png"},10853:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/scr.png"},78331:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/smoke.png"},72590:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/stealth.png"},93815:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/steem.png"},83408:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/sth.png"},21113:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/tusd.png"},37344:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/unknown.png"},44532:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usd.png"},6047:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdc.png"},26203:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdn.png"},22425:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdt.png"},50623:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/waves.png"},8131:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/xmr.png"},92124:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/xrp.png"},46195:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/yoyow.png"},99139:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zec.png"},5228:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zeph.png"},67063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zrx.png"},17038:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kapital.png"},88918:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/silver.png"},118:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/default.svg"},27599:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/downloaded.svg"},62821:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/error.svg"},87664:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/hover.svg"},86633:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/rounded-arrow.svg"},87056:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"favicon.ico"},24242:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/EN.png"},89907:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/KO.png"},72484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/DE.png"},12710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/ES.png"},59628:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/FR.png"},71466:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/IT.png"},63600:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/JA.png"},79710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/RU.png"},30210:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/TR.png"},9967:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/ZH.png"},15663:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account-active.svg"},2:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account-inactive.svg"},94770:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account.svg"},33508:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-active.svg"},69426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-drive.svg"},21912:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-inactive.svg"},74423:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Accounts

As you may have already noticed by now, this blockchain technology requires you to register an account name. This comes with many advantages: Besides improved scalability, we have separated the identity from the transaction authorizing signature. In practice, owning an account name is independent from being able to spend its funds. Furthermore, both rights (we call them permissions) can split among an arbitrary complex relation of people (we call them authorities) using weights and a required thresholds.

'},21710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Memberships

Accounts in BitShares are separated into three groups. We decided to give users the option to upgrade their accounts into a VIP-like status if they desire and profit from reduced fees and additional features.

Non-Members

A regular account is a non-member.

Lifetime Members

Lifetime Members get a percentage cashback on every transaction fee they pay and income from referrals. A Lifetime membership is associated with a certain one-time fee defined in this schedule.

Fee Division

Every time an account you referred pays a transaction fee, that fee is divided among several different accounts. The network takes a cut, and the Lifetime Member who referred the account gets a cut.

The registrar is the account that paid the transaction fee to register the account with the network. The registrar gets to decide how to divide the remaining fee between themselves and their own affiliate.

Pending Fees

Fees paid are only divided among the network, referrers, and registrars once every maintenance interval.

Vesting Fees

Most fees are made available immediately, but fees over the vesting threshold (such as those paid to upgrade your membership or register a premium account name) must vest for some period of time as defined by the committee.

'},62313:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Permissions

In BitShares, each account is separated into

  • Active Permission: control over its funds and
  • Owner Permission: control over the account.

Both can be defined in the Permissions tab of your account using so called authorities (see below) together with a so called threshold that has to be exceeded in order for a transaction to be valid.

Authorities

In BitShares an authority consists of one or many entities that authorize an action, such as transfers or trades.

An authority consists of one or several pairs of an account name with a weight.

In order to obtain a valid transaction, the sum of the weights from signing the parties has to exceed the threshold as defined in the permissions.

Examples

Let's discuss some examples to shed some light on the used terminology and the use-cases. We assume that a new account is created with it's active permissions set as described below. Note that the same scheme also works for the owner permissions!

(Flat) Multi-Signature

A flat multi-signature scheme is composed of M entities of which N entities must sign in order for the transaction to be valid. Now, in BitShares, we have weights and a threshold instead of M and N. Still we can achieve the very same thing with even more flexibility as we will see now.

Let's assume, Alice, Bob, Charlie and Dennis have common funds. We want to be able to construct a valid transaction if only two of those agree. Hence a 2-of-4 (N-of-M) scheme can look as follows:

Account Weight
Alice 33%
Bob 33%
Charlie 33%
Dennis 33%
---------- ------
Threshold: 51%

All four participants have a weight of 33% but the threshold is set to 51%. Hence only two out of the four need to agree to validate the transaction.

Alternatively, to construct a 3-of-4 scheme, we can either decrease the weights to 17 or increase the threshold to 99%.

(Flat) Flexible Multi-Signature

With the threshold and weights, we now have more flexibility over our funds, or more precisely, we have more control. For instance, we can have separate weights for different people. Let's assume Alice wants to secure here funds against theft by a multi-signature scheme but she does not want to hand over too much control to her friends. Hence, we create an authority similar to:

Account Weight
Alice 49%
Bob 25%
Charlie 25%
Dennis 10%
---------- ------
Threshold: 51%

Now the funds can either be accessed by Alice and a single friend or by all three friends together.

Multi-Hierarchical Flexible Multi-Signature

Let's take a look at a simple multi-hierarchical corporate account setup. We are looking at a company that has a Chief of Financial Officer (CFO) and a some departments working for him, such as the Treasurer, Controller, Tax Manager, Accounting, etc. The company also has a CEO that wants to have spending privileges. Hence we construct an authority for the funds according to:

Account Weight
CEO.COMPANY 51%
CFO.COMPANY 51%
---------- ------
Threshold: 51%

whereas CEO.COMPANY and CFO.COMPANY have their own authorities. For instance, the CFO.COMPANY account could look like:

CFO.COMPANY Weight
Chief.COMPANY 51%
Treasurer.COMPANY 33%
Controller.COMPANY 33%
Tax Manager.COMPANY 10%
Accounting.COMPANY 10%
------------------- ------
Threshold: 51%

This scheme allows:

  • the CEO to spend funds
  • the Chief of Finance Officer to spend funds
  • Treasurer together with Controller to spend funds
  • Controller or Treasurer together with the Tax Manager and Accounting to spend funds.

Hence, a try of arbitrary depth can be spanned in order to construct a flexible authority to reflect mostly any business use-case.

'},60807:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Proposed Transactions

With the feature of proposals, anyone can submit a transaction to the blockchain with a "Proposed" action. This is an advanced feature and it allows you to suggest actions of accounts you do not control yourself.

For example, an account can be a multi-sig of several other accounts. One of the parties submit a proposal (e.g. the transfer of some asset), and the others accounts being part of the multi-sig approve the proposal. When it surpasses the threshold, the proposal is executed.

If one have been submitted to your account without you expecting one, be very careful. If you don't know the account that proposed something for you, ignore it, even if the account name sounds familiar. When in doubt, always contact third parties directly, such as gateways, bridges or other accounts.

A proposed transaction has an expiration date, and when that is surpassed, the proposal will disappear by itself.

'},8419:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Asset {symbol}

{description}

Issued by: {issuer}

[# annual]

If a lifetime membership is too much you can still get {feesCashback}% cashback for the next year by becoming an annual subscriber for just {price} per year. GitHub Logo

[# fee-division]

Fee Division

Every time {account} pays a transaction fee, that fee is divided among several different accounts. The network takes a {networkFee}% cut, and the Lifetime Member who referred {account} gets a {lifetimeFee}% cut.

The registrar is the account that paid the transaction fee to register {account} with the network. The registrar gets to decide how to divide the remaining {referrerTotalFee}% between themselves and their own Affiliate Referrer program.

{account}'s registrar chose to share {referrerFee}% of the total fee with the Affiliate Referrer and keep {registrarFee}% of the total fee for themselves.

Pending Fees

Fees paid by {account} are only divided among the network, referrers, and registrars once every maintenance interval ({maintenanceInterval} seconds). The next maintenance time is {nextMaintenanceTime}.

Vesting Fees

Most fees are made available immediately, but fees over {vestingThreshold} (such as those paid to upgrade your membership or register a premium account name) must vest for a total of {vestingPeriod} days.

'},10997:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Asset {symbol}

{description}

Issued by: {issuer}

The Euro (sign: €; symbol: EUR) is the official currency of participating countries in the Europ zone.

'},62816:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Asset {symbol}

{description}

Issued by: {issuer}

The United States dollar (sign: $; symbol: USD) is the official currency of the United States of America.

'},97548:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Market Pegged Assets

A crypto-currency, with the properties and advantages of Bitcoin, that is capable of maintaining price parity with a globally adopted currency (e.g. U.S. dollar), has high utility for convenient and censorship resistant commerce. This can be achieved by BitShares' market pegged assets (MPA), a new type of freely traded digital asset whose value is meant to track the value of a conventional underlying asset by means of contracts for difference (CFD).

A SmartCoin (synonym for MPA) is a crypto-currency that always has 100% or more of its value backed by the BitShares core currency (BTS), to which they can be converted at any time, as collateral in a CFD.

What makes MPAs unique is that they are free from counterparty risk even though they resemble a CFD backed by collateral. This is achievable by letting the network itself (implemented as a software protocol) be responsible for securing the collateral and performing settlements as will be described in more detail below.

This is a subset of the available market pegged assets:

  • BitUSD
  • BitCNY
  • BitEUR
  • BitGOLD
  • ...
'},6225:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Privatized BitAssets

Privatized BitAssets serve those customers that would like to issue a market pegged asset but do not want the witnesses to publish the prices. Instead, when creating a privatized bitasset, the issuer can define a set of authorities that are allowed to publish the price for that particular asset. The issuer can further define all kinds of fees involving this asset and make a profit.

This feature is of particular interest for exchanges and institutes that have access to real-time prices and would like to increase exposure and volume.

'},89913:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

User Issued Assets

In addition to the aforementioned market pegged assets, BitShares allows individuals and companies to create and issue their own tokens for anything they can imagine. The potential use cases for so called user-issued assets (UIA) are innumerable. On the one hand, UIAs can be used as simple event tickets deposited on the customers mobile phone to pass the entrance of a concert. On the other hand, they can be used for crowd funding, ownership tracking or even to sell equity of a company in form of stock.

Obviously, the regulations that apply to each kind of token vary widely and are often different in every jurisdiction. Hence, BitShares comes with tools that allow issuers to remain compliant with all applicable regulations when issuing assets assuming regulators allow such assets in the first place.

'},39856:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# permissions] Permissions define the available features for an asset. However, even if a feature is permitted, it must still be activated using the corresponding flag in order to be enforced by the blockchain.

After creation, you may only remove a given permission, you cannot enable a permission that was disabled on creation.

[# flags] Flags define which asset features are active or inactive. They can be switched on and off by the asset owner at any time.

"},69329:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# lifetime]

Get {feesCashback}% Cashback on Fees

Every transaction on the BitShares network is divided between the network and referrers. By registering to a Lifetime Membership the account will receive {feesCashback}% cashback on every transaction fee paid. As a bonus it will also qualify to earn referral income from users registered with or refered to the network.

A Lifetime Membership price will change over time, right now it is only {price}.

[# fee-division]

Fee Division

Every time {account} pays a transaction fee, that fee is divided among several different accounts. The network takes a {networkFee}% cut, and the Lifetime Member who referred {account} gets a {lifetimeFee}% cut.

The registrar is the account that paid the transaction fee to register {account} with the network. The registrar gets to decide how to divide the remaining {referrerTotalFee}% between themselves and their own Affiliate Referrer program.

{account}'s registrar chose to share {referrerFee}% of the total fee with the Affiliate Referrer and keep {registrarFee}% of the total fee for themselves.

Pending Fees

Fees paid by {account} are divided among the network, referrers, and registrars once every maintenance interval ({maintenanceInterval} seconds). The next maintenance time is {nextMaintenanceTime}.

Vesting Fees

Most fees are made available immediately, but fees over {vestingThreshold} (such as those paid to upgrade your membership or register a premium account name) must vest for a total of {vestingPeriod} days.

'},36638:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Active permissions define the accounts that have permission to spend funds for this account.

They can be used to easily setup a multi-signature scheme, see permissions for more details.

'},63933:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

The memo key is where you receive memos, in order to decode the memos you need to control the private key for the public key.

By using a public/private key pair without spending authority, you may give read-only access to your memos to third parties.

"},8408:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Owner permissions define who has control over the account. Owners may overwrite all keys and change any account settings.

See permissions for more details.

'},28379:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Voting

Voting in BitShares is important for both the security and the development of the network. Votes determine which Witnesses are selected to handle the network, which Committee Members have the power to vote on important policies and which Worker Proposals are accepted to improve or expand features.

If you don't fully understand the various roles listed above, you may choose to delegate your voting power to a Proxy, who can then vote on your behalf. If you do choose to use a Proxy, you will be unable to vote for Witnesses, Committee Members and Worker Proposals. You can always release your proxy at a later date if you decide to participate in the full voting process.

Be sure to select Publish Changes once you've made your selection.

'},2270:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Committee members may propose changes to the dynamic parameters of the blockchain, such as fees, block time and many other things. It is a position of great responsibility that requires a good understanding of how BitShares works.

'},88336:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

If you don't fully understand the roles of Witnesses, Committee Members and Workers, you may elect to choose a Proxy. A proxy is an account that you trust to make decisions about the Bitshares network on your behalf. You may find people proposing to act as proxies in the BitShares forum at BitSharestalk. Additionally, you may choose from the list below, or you can manually enter any account you choose.

Be sure to select publish changes above once you've made your selection.

'},80878:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Witnesses are the block producers of BitShares. They validate transactions and ensure the safety of the network. You may vote for as many witnesses as you'd like, and they will all receive the same amount of votes. Witness proposals can be found here: BitSharestalk - Stakeholder Proposals Board.

'},95043:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Workers are a unique concept to BitShares. They are proposals to provide services in return for a salary from the blockchain itself. A proposal should include a link to a website or forum thread that explains the purpose of the proposal, a collection of proposals can be found here: BitSharestalk - Stakeholder Proposals Board.

'},85920:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Borrow {debt} from blockchain, by locking up at least {mr} times the value in {collateral} as collateral. If a target collateral ratio (TCR) is set, you need at least TCR times the value (not supported in UI yet).

Collateral and debt levels can be adjusted in any way you desire, as long as your collateral ratio stays above the maintenance collateral ratio of {mr}, or the target collateral ratio if it is set. If your collateral value risks dropping under the maintenance ratio of {mr} by price changes you need to add collateral or reduce debt in order to avoid a margin call.

Read more or check out the Explanation Wizard.

'},56507:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

This is a binary prediction market.

The collateral ratio of this market is 1:1.

"},99087:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# receive]

Receiving BTS

In order to receive BTS from another person or from an exchange, simply give them your account name: {account}

[# deposit-short]

Depositing or withdrawing coins

If you want to deposit or withdraw funds, either in fiat or from other blockchains, you may use a bridge or gateway service to do so.

'},1911:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Fees

In the BitShares ecosystem every operation is assigned an individual fee. These fees are subject to change. However, they are defined solely by shareholder approval, thus each and every shareholder of the BitShares core asset (BTS) has a say as to what the fees should be. If shareholders can be convinced to reduce a certain fee and consensus is reached, the fee will be reduced automatically by the blockchain. Changes of blockchain parameters are proposed by members of the committee. These members are voted by shareholders and improve the flexibility and reaction rate.

*: These operations require Lifetime membership!

'},29362:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# connection-error] We couldn't establish websocket connection to a full node.

Possible reasons: TODO

  • reason #1
  • reason #2
"},80281:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Prediction Market Assets

A prediction market asset allows you to agree or disagree with the prediction (condition) of the asset and put collateral behind your opinion. A prediction market is resolved by its issuer after the resolution date to reflect the real world outcome of the prediction on-chain.

On the blockchain, a prediction market asset is special kind of SmartCoin that anyone can borrow. The total debt and total collateral are always equal amounts (borrowing 1:1), margin calls or force settlements are deactivated. A prediction market asset has the active market of itself with its collateral. Agreeing with the prediction means to buy the prediction market asset, whereas disagreeing with the prediction means to borrow it and sell it. Resolving a prediction market asset is done by forcing global settlement, with a global settlement price given by the issuer. After resolution (global settlement), and if the prediction proves true (global settlement price is 1), holders of the prediction market asset can instantly force settle it to obtain the same amount of the underlying collateral. If the prediction is incorrect (global settlement price 0), owners of margin positions will automatically get back all the collateral that was locked up in the position.

'},38251:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Decentralized Exchange

The decentralized exchange (further denoted simply as the DEX) allows for direct exchange of digital goods traded in the BitShares ecosystem.

A decentralized exchange has a very particular set of advantages over traditional centralized exchanges and we would like to address some of them briefly below. Although the BitShares DEX comes with all of them, it is up to the reader and customer to leverage those features in full or only partially.

  • Separation of Powers: There is no reason why the same entity needs to be responsible for issuing IOUs and for processing the order book. In BitShares, order matching is performed by the protocol, which is unaware of implications concerning the involved assets.

  • Global Unified Order Book: Since BitShares is global, anybody with an internet access can use the DEX for trading. This brings the world's liquidity to a single order book for decentralized trading.

  • Trade Almost Anything: The BitShares DEX is asset agnostic. Hence you can trade at any pair. While some pairs may end up with low liquidity, such as SILVER:GOLD, other pairs such as USD:EUR for FOREX trading will see huge volume.

  • No Limits: The BitShares protocol is unable to limit your trading experience.

  • Decentralized: The DEX is decentralized across the globe. This not only means that there is no single point of failure, but it also implies that the BitShares exchange is open for trading 24/7 because it's always daytime somewhere.

  • Secure: Your funds and trades are secured with industry-grade elliptic curve cryptography. No one will be able to access your funds unless you let them. To further strengthen the security, we allow our customers to setup escrow and multi-signature schemes.

  • Fast: In contrast to other decentralized networks, the BitShares DEX allows for real-time trading and is only limited by the speed of light and the size of the planet.

  • Provable Order Matching Algorithm: What makes the BitShares DEX unique is the provable order matching algorithm. Given a set of orders, you will always be able to provably verify that these orders have been matched properly.

  • Collateralized Smartcoins: One of the biggest features of BitShares are its smartcoins such as bitUSD, bitEUR, bitCNY, and others. For the sake of convenience, these assets are denotes simply as USD, EUR, CNY, etc. in the wallet. These digital tokens represent the same value as their underlaying physical asset. Hence 1 USD in this wallet is worth $1 and can be redeemed as such. Any of these tokens is backed by BitShares' company shares (BTS) being locked up as collateral and being available for settlement at its current price.

'},21076:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Short Selling BitAssets

In order to increase your exposure to BTS and offer liquidity to BitAssets, such as USD, EUR, GOLD, etc., you can go borrow this bitAsset from the network and sell it short. We will here briefly describe the procedure.

Borrowing

The BitShares network is capable of issuing any amount of any BitAsset and lend it out to participants given enough collateral.

  • settlement price: The price for 1 BTS as it is traded on external exchanges.
  • maintenance collateral ratio (MCR): A ratio defined by the witnesses as minimum required collateral ratio
  • maximum short squeeze ratio (MSQR): A ratio defined by the witnesses as to how far shorts are protected against short squeezes
  • short squeeze protection (SQP): Defines the most that a margin position will ever be forced to pay to cover
  • call price (CP): The price at which short/borrow positions are margin called

Margin Call

The BitShares network is capable of margin calling those positions that do not have enough collateral to back their borrowed bitAssets. A margin call will occur any time the highest bid is less than the call price and greater than SQP. The margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (x/BTS).

SQP = settlement price / MSQR\ncall price = DEBT / COLLATERAL * MCR

The margin call will take the collateral, buy shares of borrowed bitAsset at market rates up to the SQP and close the position. The remaining BTS of the collateral are returned to the customer.

Settlement

Holders of any bitAsset can request a settlement at a fair price at any time. The settlement closes the borrow/short positions with lowest collateral ratio and sells the collateral for the settlement.

Selling

After borrowing bitAssets, they can be sold free at any of the corresponding markets at any price a buyer is willing to pay. With this step, the short-selling is now complete and you are short that particular bitAsset.

Updating Collateral Ratio

At any time, the holder of a borrow/short position can modify the collateral ratio in order to flexibly adjust to market behavior. If the collateral ratio is increase, an additional amount of BTS is locked as collateral, while reducing the collateral ratio will require an amount of the corresponding BitAsset to be payed back to the network.

Covering

To close a borrow/short position, one must hold the borrowed amount of that particular bitAsset to hand it over to the BitShares network. After that, the BitAssets are reduced from the corresponding supply and the collateral is released and given back to its owner.

'},7607:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Trading

This page will give a very quick introduction on how to interpret the terms used by the DEX and how trading pairs are presented.

Pairs

In BitShares, almost any asset can be traded with all other assets. Once we have picked two assets, we usually refer to a market pair. For instance, we can trade USD against EUR in the USD:EUR pair.

For sake of consistency, we will use the generalized terms base and quote such that pairs are represented as

*quote* : *base*

and for instance with base being USD and quote being EUR, denote the EUR:USD pair.

Order Books

The order book consists of an ask and a bid side. Since trading pairs do not have a preferred orientation, and can be flipped, the following table shall give an overview of ask/bid and the corresponding buy/sell operations for each side:

Side Sell Buy
Ask quote base
Bid base quote
---------- ------- -------

Obviously, what is on the bid side of the USD:EUR pair will be on the ask side on the EUR:USD pair. Of course prices are internally represented as fractions, and thus results in both pairs being identical.

Trading

To place a trading order, it is required to fill the form on either the ask or the bid side (respectively, buy or sell side). You will need to define a price and an amount to sell/buy. The cost for this order will be calculated automatically. Note that there will be an additional fee required to actually place the order.

Once the order is filled (i.e. someone sold/bought your offer), your account will be credited by the corresponding asset.

Unfilled orders can be canceled at any time.

'},46645:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Disclaimer

Information Published

This Website or Software (hereinafter, referred to as the "Platform") provides information and material of a general nature. You are not authorized and nor should you rely on the Platform for legal advice, business advice, or advice of any kind. You act at your own risk in reliance on the contents of this Platform. Should you make a decision to act or not act you should contact a licensed attorney in the relevant jurisdiction in which you want or need help. In no way are the owners of, or contributors to, this Platform responsible for the actions, decisions, or other behavior taken or not taken by you in reliance upon the Platform.

Information and Material Nature

This Platform is an interface connecting to the BitShares Blockchain, hence information appearing over the platform are the means of their creators and users over BitShares Blockchain. By using this Platform, you understand and agree that the Platform is only a terminal that is interfacing with the BitShares Blockchain "as is", and that contents are NOT made by the Platform, but by BitShares Blockchain Users.

Translations

The Website may contain translations of the English version of the content available on the Website. These translations are provided only as a convenience. In the event of any conflict between the English language version and the translated version, the English language version shall take precedence. If you notice any inconsistency, please report them on GitHub.

General Risks

This Platform will not be responsible for any losses, damages or claims arising from events falling within the scope of the following five categories:

(1) Mistakes made by the user of any BitShares Blockchain related software or service, e.g., forgotten passwords, payments sent to wrong BitShares Blockchain addresses, and accidental deletion of wallets information and credentials.

(2) Platform problems and/or any BitShares Blockchain related software or service, e.g., corrupted wallet file, incorrectly constructed transactions, unsafe cryptographic libraries, malware affecting the Platform and/or any BitShares Blockchain related software or service.

(3) Technical failures in the hardware of the user of any BitShares Blockchain related software or service, e.g., data loss due to a faulty or damaged storage device.

(4) Security problems experienced by the user of any BitShares Blockchain related software or service, e.g., unauthorized access to users' wallets and/or accounts.

(5) Actions or inactions of third parties and/or events experienced by third parties, e.g., bankruptcy of service providers, information security attacks on service providers, and fraud conducted by third parties.

Investment Risks

The investment in BitShares Blockchain can lead to loss of money over short or even long periods. The investors in BitShares Blockchain should expect prices to have large range fluctuations. The information published on the Platform cannot guarantee that the investors in BitShares Blockchain would not lose money.

Compliance with Tax Obligations

The users of the Platform are solely responsible to determinate what, if any, taxes apply to their BitShares Blockchain transactions. The owners of, or contributors to, the Platform are NOT responsible for determining the taxes that apply to BitShares Blockchain transactions.

The Platform does not store, send, receive or otherwise manipulate any assets

The Platform does not store, send, receive or otherwise manipulate any assets. This is because BitShares Blockchain assets exist only by virtue of the ownership record maintained in the BitShares Blockchain. Any transaction that affects assets in the BitShares Blockchain occurs within a decentralized BitShares Blockchain, and not on the Platform.

No Warranties

Your use or inability to use this Platform and BitShares Blockchain is carried out solely at your own risk and you don't put any responsibility on platform hosting company. The Platform is provided on an "as is" basis without any warranties of any kind regarding the Platform and/or any content, data, materials and/or services provided on the Platform.

Limitation of liability

Unless otherwise required by law, in no event shall the owners of, or contributors to, the Platform be liable for any damages of any kind, including, but not limited to, loss of use, loss of profits, or loss of data arising out of or in any way connected with the use of the Platform.

Arbitration

The user of the Platform agrees to arbitrate any dispute arising from or in connection with the Platform or this disclaimer, except for disputes related to copyrights, logos, trademarks, trade names, trade secrets or patents.

Last amendment

This disclaimer was amended for the last time on Sep 14th, 2022.

'},13069:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitShares Gateways

Gateways and Bridges are external service providers that allow you to deposit, trade and withdraw assets into the BitShares Blockchain that are not native to it. For example, you can send your BTC on the Bitcoin Blockchain to a Gateway, who will in turn give you an UIA (user issued asset) on the BitShares Blockchain, with the promise that you can withdraw it again (for a fee of course). While you are holding such an UIA on the BitShares Blockchain, the Gateway becomes the custodian of your funds. A external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.

'},81885:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

ioxbank Instant Gateway Service

ioxbank instant gateway service is connecting cryptocurrencies between BitShares and other Blockchains. Blockchain transactions are being settled immediately once blocks are confirmed over Blockchain. You can easily identify those cryptocurrencies supported by ioxbank, they are prefixed with IOB. and can be found under assets explore page.

Gateway Transparency Information

XRP

XLM

Gateway Features

IOB.XRP Features

  • Instant Gateway
  • Min. amount: 50 XRP
  • No KYC
  • No limits
  • 0% market fee for maker/taker
  • Low withdraw fee

IOB.XLM features

  • Instant Gateway
  • Min. amount: 50 XLM
  • No KYC
  • No limits
  • 0% market fee for maker/taker
  • Low withdraw fee

Gateway Methods

Deposit/Withdraw Using Referencec Wallet UI

  • Deposit: Click on Deposit From the burger menu then pick up XRP or XLM; an Address and (Tag or Memo) will appear to you, you should use them externally to deposit to them; make sure you are mentioning Tag or Memo at source of your transaction to the Gateway.
  • Withdraw: Click on Withdraw From the burger menu then pick up XRP or XLM; you should right carefully your destination withdraw Address and (Tag or Memo), you should use what was provided the address that was provided to you in case you're using an exchange address and not your own address.

XRP Deposit in case you already know your BitShares user-id

  • XRP Gateway Destination Address: rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y
  • XRP Gateway Destination (Tag or Memo): BitShares user-id (without 1.2.)

XLM Deposit in case you already know your BitShares user-id

  • XLM Gateway Destination Address: GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH
  • XLM Gateway Destination (Tag or Memo): BitShares user-id (without 1.2.)

Withdraw Manually using send assets

For XRP Withdraw from your BitShares wallet to your XRP wallet

Send your IOB.XRP assets to BitShares Blockchain Account ioxbank-gateway and include in BitShares Memo your XRP destination address and destination (Tag or Memo) as per the following examples, you need to replace xrp-address with your XRP destination address and replace tag-or-memo-number with your destination (Tag or Memo) number, in case you do NOT need (Tag or Memo) number as you might own the destination address keys then you can just send your IOB.XRP asset to ioxbank-gateway and just include your xrp-destination-address without including any (Tag or Memo) number:

BitShares Memo Format

  • xrp:xrp-destination-address:tag:tag-or-memo-number
  • xrp:xrp-destination-address:tag:tag-or-memo-number:any notes
  • xrp:xrp-destination-address

BitShares Memo Format Examples

  • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y:tag:485738
  • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y:tag:485738:thanks ioxbank
  • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y

For XLM Withdraw from your BitShares wallet to your XLM wallet

Send your IOB.XLM assets to BitShares Blockchain Account ioxbank-gateway and include in BitShares Memo your XLM destination address and destination (Tag or Memo) as per the following examples, you need to replace xlm-address with your XLM destination address and replace tag-or-memo-number with your destination (Tag or Memo) number, in case you do NOT need (Tag or Memo) number as you might own the destination address keys then you can just send your IOB.XLM asset to ioxbank-gateway and just include your xlm-destination-address without including any (Tag or Memo) number:

BitShares Memo Format

  • xlm:xlm-destination-address:tag:tag-or-memo-number
  • xlm:xlm-destination-address:tag:tag-or-memo-number:any notes
  • xlm:xlm-destination-address

BitShares Memo Format Examples

  • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH:tag:485738
  • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH:tag:485738:thanks ioxbank
  • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH

Technical Support

'},32604:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Xbtsx Gateway Service

Xbtsx is a gateway service built on the Bitshares Exchange. A gateway service is responsible for moving cryptocurrencies to and from the Bitshares Exchange. They support a wide range of popular assets. You can easily identify those supported by XbtsX because they are prefixed with the word XBTSX.*. For example XBTSX.STH, XBTSX.POST etc.

Website

XBTS.io

Support

'},77339:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Glossary

Back to index

'},60700:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Help

This is the reference wallet of BitShares Blockchain which connects to BitShares Blockchain nodes (bitshares-core).

This help section gives a brief overview and describes the most basic concepts of this application.

Introduction

Accounts

Assets

Decentralized Exchange

Development


Glossary

'},87117:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Backups

Local Wallet

It is recommended to make regular backups of your Local Wallet even though in most cases a single backup may be sufficient. Please note that in order to recover from a backup you will also need to provide the passphrase (password) because backups are encrypted. Hence, if you either lose your wallet or your passphrase you will be unable to access any of your funds again!

You can create a backup from Settings -> Backup.

  • Store this backup in at least two secure locations only accessible by you
  • The backup is encrypted with your passphrase/password so do not store your passwrod in the same location

Advanced Users Only

Brainkey

If you never manually imported an account key into your wallet, you can alternatively backup your accounts and their funds by exporting the brainkey, a string of words from which your keys are derived deterministically.

Remark: Hierarchical Authorities (advanced uses ONLY)

If you are using hierarchical authorities (account and/or active permissions), backing up your keys alone may not be sufficient to regain access to your funds! Please revise the documentations about hierarchical authorities.

'},93275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitShares

This is the reference wallet of BitShares Blockchain which connects to BitShares Blockchain nodes (bitshares-core).

This reference wallet is a browser based wallet. Your keys are stored locally in your browser and never leave it as transactions are signed locally before broadcasting them. Never expose your keys to anyone.

Support

If you have an issue related to a Gateway provider, please be sure to contact them directly. See Gateways in the left menu.

BitShares Chat

You can chat with other member of the BitShares community in real time at:

If you seek support for this wallet, there are community members offering that in Telegram:

Developers

If you are a software developer, you may contribute to the BitShares Blockchain via:

Introduction

Welcome to the worlds fastest decentralized exchange (DEX).

BitShares looks to extend the innovation of the blockchain to all industries that rely upon the internet to provide their services. Whether its banking, stock exchanges, lotteries, voting, music, auctions or many others, a digital public ledger allows for the creation of distributed autonomous companies (or DACs) that provide better quality services at a fraction of the cost incurred by their more traditional, centralized counterparts. The advent of DACs ushers in a new paradigm in organizational structure in which companies can run without any human management and under the control of an incorruptible set of business rules. These rules are encoded in publicly auditable open source software distributed across the computers of the companies’ shareholders, who effortlessly secure the company from arbitrary control.

BitShares does for business what bitcoin did for money by utilizing distributed consensus technology to create companies that are inherently global, transparent, trustworthy, efficient and most importantly profitable.

BitShares Blockchain has enabled several financial innovations such as: User Issued Asset (UIA), Market Pegged Asset (MPA), Non-Fungible Tokens (NFT), Decentralized Exchange (DEX), Automated Market Maker (AMM) and Hashed Time-lock Contract (HTLC).

Wallet

This wallet allows access most features of the BitShares network including:

The main focuses for the design of BitShares Blockchain Reference wallet and BitShares Blockchain are:

  • No custody of core cryptocurrency funds: traders maintain control of their own private keys and core cryptocurrency funds.
  • High performance: low latency, high throughput for a large user base, and high ability of liquidity trading.
  • Low cost of transaction: in both transaction fees and liquidity trading cost.
  • Fair trading features: transparency for all.
  • Evolving: able to develop with forever-improving technology stack, architecture, and ideas.
'},42438:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Blockchain

As most crypto currencies, Graphene makes use of a blockchain to update participants about transfers and market activities. Since blocks always refer to the previous block, we get a chain of blocks (blockchain) that contains all transactions every made in the network. Because the blockchain is a publicly accessible and auditable ledger, everyone can take a closer look and verify transfers as well as market orders and order books.

Of course, this web wallet offers a block explorer to assist you with your audit.

Consensus Mechanism

Who exactly is allows to produce a block at which time instant is defined by a consensus mechanism called Delegated Proof of Stake. In essence, the shareholders of BitShares (holders of the BTS token) can cast a vote for their preferred block producers on the blockchain. Those so called witnesses with the most votes are allowed to produce blocks.

Transactions

The Graphene blockchain technology offers a variety of transaction types. Users are not only able to simply transfer assets between each other, but there are also transactions to interact with the decentralized exchange. Most of these transaction types are labeled with a self-explaining tag, others require more knowledge about the inner workings of the company.

'},46595:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Bridge and gateway services

Both bridges and gateways allow you to deposit and withdraw coins, but there is a difference in the amount of trust you need to place in the service providers.

Bridges: trust-free model

A bridge service provides a way to deposit an amount of a crypto-currency other than BitShares, and in turn receive a SmartCoin equivalent. SmartCoins have no counterparty risk, so the only risk you experience when using a bridge is during the short time it takes to complete the transfer. This is better than a centralized exchange such as Poloniex, where you are always at risk of the exchange being hacked, going bankrupt, or experiencing any number of other issues.

Gateways: trust-based model

Gateways are basically equivalent to the standard exchange model where you depend on the solvency of the exchange to be able to redeem your coins. Generally gateways issue assets prefixed with their symbol, like OPEN, TRADE, or META. These assets are backed 100% by the real BTC or ETH or any other coin that people deposit with the gateways.

An OPEN.BTC is thus in theory equivalent to the BTC you get on Poloniex, which could be prefixed POLO.BTC. In both cases you rely on the service provider, CCEDK for OPEN. assets and Poloniex for POLO. assets, to remain solvent in order to back the value of the assets they've issued. Because gateways only provide this one service which is normally only one part of running an exchange, one might even argue that they have an easier job of securing their holdings.

'},15851:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Wallet

As you may have noticed already, this application is a web application and runs in a browser. A connection is established to a trusted node in the network that serves as a gateway to the rest of the ecosystem.

Cloud Wallet

If you registered with a username and password, you have a cloud wallet. Although nothing is technically stored in the cloud, we use the term Cloud Wallet because you can use these credentials (username and password) from any web browser at any time to gain access to your account. The cloud wallet only allows for a single account to be accessed at a time. This is generally the correct choice for new users. While it is possible to change the auto-generated password, we do not recommend doing so at this time. The team is working on a responsible way to manage the password change that requires no technical knowledge. We will make an announcement once it's released.

Local Wallet

The local wallet creates a database within your browser. This means that access to your funds it tied to that browser only. If you attempt to access your local wallet from any other computer, or any other browser, it will fail unless you actively import your backup file from the original browser backup file. The process actually easy. See managing backups.

Security

Rest assured that our servers do not have access to your funds because none of your private keys ever leave your browser. Instead, they are encrypted with your passphrase and are stored in your local browser's database. As such, you should make sure to have a proper Backup in the event something happens to your computer or browser.

Management

The user interface is capable of carrying and accessing several separated wallets each containing possible several accounts and corresponding funds. You can create, backup, and switch existing wallets in Settings->Wallets.

'},81821:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Help

'},95008:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Voting

Voting is important in Bitshares in the same way it is important to the community in which you live. The weight of your vote is directly correlated to the number of BTS you own. If you aren't heavily involved in the community, you are encouraged to choose a proxy who represents your interests. If you would like to be more involved in the community, check out these channels.

Proxy

You may choose to not be active in the governance of Bitshares. If this is the case, it's important that you choose someone in the Bitshares community who you identify with and set that entity as your proxy. This gives them to the power to vote on your behalf with your BTS shares backing their vote. This is similar to electing a representative.

Witnesses

Witnesses are entities that work for the blockchain by constructing new blocks. Their role is similar to the role of miners for Bitcoin and other blockchains. Each witness is approved by the shareholders and constructs and signs blocks from validated transactions. Every transaction made in the network is required to be validated by all witnesses.

Consensus Mechanism

Who exactly is allowed to produce a block at which time instant is defined by a consensus mechanism called Delegated Proof of Stake. In essence, you, the shareholders of BitShares can cast a vote for your preferred block producers on the blockchain. Those witnesses with the most votes are allowed to produce blocks.

Committee

The committee is a set of entities that are approved by the shareholders and set policy for the Bitshares blockchain including:

  • Transaction and trading fees
  • Blockchain parameters, such as block size, block interval
  • Referral and vesting parameters such as cash back percentage and vesting periods

Workers

Workers are proposals to perform a service in return for a salary from the blockchain. A worker proposal contains at a minimum the following information:

  • A start and end date
  • A daily pay
  • A maximum total pay
  • A link to a webpage where the worker proposal is explained

Worker Lifecycle

Proposed

These worker proposals have been submitted to the blockchain and are being actively voted on. In order to become active, they must exceed the refund400k worker in total votes.

Active

These worker proposals have exceeded the threshold and are being actively paid. Active workers can be defunded if their vote threshold is reduced below the refund400k worker level.

Expired

These worker proposals are displayed for historical purposes. You will find propsals that have ended based upon their end date.

Worker budget mechanics

Workers receive pay from a fixed daily budget on a first-come, first-serve basis until there are no more funds left.

  • A daily total budget of 400k BTS for all workers
  • 5 worker proposals with a positive votes total, with daily pay requests of 100k BTS each

Now the four workers with the most votes will all receive 100k BTS each per day, but once they've been paid the worker budget is empty. Therefore the fifth worker will receive nothing.

'},62677:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Cuentas

Como ya se habrá notado, esta tecnología blockchain requiere que usted registre un nombre de cuenta. Esto trae numerosas ventajas. Además de incrementar la escalabilidad, hemos separado la identidad de la firma autorizante de las transacciones. En la práctica, ser propietario de una cuenta es independiente de poder utilizar sus fondos". Adicionalmente, ambos derechos (que llamamos "permisos") pueden combinarse en una compleja relación arbitraria entre personas (que llamamos "autoridades") usando los parámetros *peso y humbral.

'},68042:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Indice

'},36272:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# lifetime]

取引手数料の{feesCashback}%のキャッシュバックを受けよう

終身会員になることで、取引手数料に対して{feesCashback}%のキャッシュバックを受けられ、ネットワークにユーザーを紹介することで紹介収入を得ることができるようになります。終身会員権の価格はたったの{price}です。

[# fee-division]

手数料割り当てについて

{account}が取引手数料を支払う度に、その手数料はいくつかの異なる口座に分けられていきます。まず、ネットワークは{networkFee}%、{account}を紹介した終身会員は{lifetimeFee}%を受け取ります。

レジストラとは、{account}をネットワークに登録するための取引手数料を支払ったアカウントのことです。レジストラは、残りの{referrerTotalFee}%を自分自身と、レジストラが展開しているアフィリエイト紹介プログラムの間でどのように分割するかを決定することができます。

{account}のレジストラは、総費用の{referrerFee}%をアフィリエイト紹介者と共有し、総費用の{registrarFee}%を自己で保つことを選択しました。

保留中の取引手数料

{account}によって支払われた取引手数料は、メンテナンスインターバル({maintenanceInterval}秒)ごとに1回、ネットワーク、紹介者、レジストラの間で分割されます。次のメンテナンス時間は{nextMaintenanceTime}です。

権利確定手数料

ほとんどの手数料は即座に有効になりますが、{vestingThreshold}を超える手数料(会員権のアップグレードやプレミアムアカウント名の登録費用など)は{vestingPeriod}日間の権利付与期間後に有効になります。

'},20892:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

賃借および担保のレベルを調整すれば{debt}のマージンポジションを更新できます。

担保比率がメンテナンス担保比率である{mr}を超えている限り、担保および賃借のレベルは任意に調整できます。もっと知る

'},41063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# receive]

BTSの受け取り

他の人や取引所からBTSを受け取るには、次のアカウント名を入力するだけです: {account}

[# deposit-short]

コインの入出金

フィアットや他のブロックチェーンから資金を預け入れる、または引き出す場合は、ブリッジまたはゲートウェイサービスを利用することができます。

'},28438:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Аккаунты

Как Вы могли заметить, эта блокчейн технология требует регистрации имени аккаунта. Это дает множество преимуществ: помимо улучшенной масштабируемости теперь личность и подпись, авторизующая транзакцию, существуют отдельно. На практике это значит, что владение именем аккаунта полностью независимо от возможности распоряжаться его средствами. Более того, оба права (мы называем их разрешениями) можно разделить между произвольным сложным отношением людей (мы называем их полномочиями) с использованием весов и требуемых порогов.

'},12155:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Подписки

Аккаунты в BitShares разделены на три группы. Мы решили дать пользователям возможность по желанию обновлять свои аккаунты до подобного VIP статуса, чтобы получать выгоду от сниженных комиссий и дополнительных функций.

Не имеющие подписки

Обычный аккаунт не имеет членства.

Пожизненная подписка

Пожизненные члены получают процентный кэшбэк с каждой комиссии за транзакцию, которую они оплачивают, и имеют право получать реферальный доход от пользователей, которых они регистрируют, или рефереров сети. Пожизненное членство подразумевает единоразовую оплату членского взноса, размер которого определяется комитетом.

Разделение комиссии

Каждый раз, когда Ваш реферальный аккаунт оплачивает комиссию за транзакцию, эта комиссия делится между несколькими разными аккаунтами. Часть получает сеть, еще часть получает Пожизненный Член, рефералом которого является аккаунт.

Регистратором является аккаунт, который оплатил комиссию за транзакцию при регистрации аккаунта в сети. Регистратор должен решить, как разделить оставшуюся комиссию между собой и своими аффилиатами.

Ожидаемые комиссии

Оплаченные комиссии разделяются между сетью, реферерами и регистраторами только один раз в определенный интервал обслуживания.

Вестинговые комиссии

Большинство комиссий становятся доступны немедленно, но комиссии за переход порога (как при оплате повышения уровня Вашего членства или регистрации премиум-имени аккаунта) должны обрабатываться несколько дней, как это определено комитетом.

'},43239:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Разрешения

В BitShares каждый аккаунт разделен на

  • Активное разрешение: контроль над его средствами и
  • Разрешение владельца: контроль над аккаунтом.

Оба их можно назначить во вкладке Разрешения в Вашем аккаунте, воспользовавшись так называемыми авторитетами (см. ниже) в сочетании с так называемым порогом, который должен быть преодолен, чтобы транзакция стала действительной.

Авторитеты

В BitShares авторитет состоит из одной или нескольких единиц, которые авторизуют действие, такое как перевод или торговля.

Авторитет состоит из одной или нескольких пар имен аккаунтов с весом.

Чтобы получить действительную транзакцию, сумма весов подписывающих сторон должна превысить порог, который определен в разрешениях.

Примеры

Давайте обсудим несколько примеров, дабы пролить свет на используемую терминологию и варианты применения. Предположим, что новый аккаунт создан с такими активными разрешениями, какие указаны ниже. Обратите внимание, что такая же схема работает и для разрешений владельца!

(Фиксированная) Мульти-подпись

Фиксированная мульти-подпись состоит из M единиц, из которых N единиц должны подписать транзакцию, чтобы она стала действительной. Сейчас в BitShares у нас весы и пороги вместо M и N. Тем не менее, мы можем достичь того же результата с еще большей гибкостью, как мы сейчас увидим.

Предположим, что Алиса, Боб, Чарли и Денис имеют общие средства. Мы хотим иметь возможность создать действительную транзакцию, если только двое из них согласятся. Значит, 2-из-4 (N-из-M) схема может выглядеть следующим образом:

Аккаунт Вес
Алиса 33%
Боб 33%
Чарли 33%
Денис 33%
---------- ------
Порог: 51%

Все четыре участника имеют 33%, но порог установлен на 51%. Таким образом, нужно согласие всего лишь двух из четырех участников, чтобы подтвердить транзакцию.

Аналогично, чтобы составить схему 3-из-4, мы можем либо уменьшить вес до 17, либо повысить порог до 99%.

(Фиксированная) Гибкая Мульти-подпись

Теперь, с порогом и весами, мы имеем большую гибкость в отношении наших средств, или точнее, мы обладаем большим контролем. Например, мы можем использовать отдельные весы для разных людей. Предположим, что Алиса хочет обезопасить свои средства от кражи, используя схему мульти-подписи, но она не хочет передавать слишком много контроля своим друзьям. Значит, мы создадим авторитет, подобный такому:

Аккаунт Вес
Алиса 49%
Боб 25%
Чарли 25%
Денис 10%
---------- ------
Порог: 51%

Теперь доступ к средствам могут иметь либо Алиса и один из друзей, либо три друга вместе.

Мульти-иерархическая Гибкая Мульти-подпись

Давайте взглянем на структуру простого мульти-иерархического корпоративного аккаунта. Мы рассматриваем компанию, в которой есть Финансовый Директор (CFO) и несколько отделов, работающих на него, такие как Казначей, Контролер, Налоговый Менеджер, Бухгалтер и т. п. В компании также есть Исполнительный директор (CEO), который хочет обладать привилегией тратить средства. Значит, мы создадим авторитет для средств в соответствии с:

Аккаунт Вес
CEO.КОМПАНИИ 51%
CFO.КОМПАНИИ 51%
---------- ------
Порог: 51%

В то же время, CEO.КОМПАНИИ и CFO.КОМПАНИИ имеют свои собственные авторитеты. Например, аккаунт CFO.КОМПАНИИ может выглядеть так:

CFO.КОМПАНИИ Вес
Шеф.КОМПАНИИ 51%
Казначей.КОМПАНИИ 33%
Контролер.КОМПАНИИ 33%
Налоговый менеджер.КОМПАНИИ 10%
Бухгалтер.КОМПАНИИ 10%
------------------- ------
Порог: 51%

Эта схема позволяет:

  • CEO расходовать средства
  • Финансовому Директору расходовать средства
  • Казначею совместно с Контролером расходовать средства
  • Контролеру или Казначею совместно с Налоговым менеджером и Бухгалтером расходовать средства.

Значит, попытка установить произвольную глубину может быть растянута, дабы установить гибкий авторитет, чтобы отобразить почти любой случай использования для бизнеса.

'},6193:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Актив {symbol}

{description}

Выпущен: {issuer}

[# annual]

Если пожизненное членство - это слишком много, Вы все равно можете получать {feesCashback}% кэшбэка за следующий год, став годовым подписчиком всего за {price} в год. GitHub лого

[# fee-division]

Разделение Комиссии

Каждый раз, когда {account} платит комиссию за транзакцию, эта комиссия делится между разными аккаунтами. Сеть забирает долю в {networkFee}%, и Пожизненный Член, рефералом которого является {account}, получает долю в {lifetimeFee}%.

Регистратор - это аккаунт, который заплатил комиссию за регистрацию {account} в сети. Регистратор должен решить, как разделить оставшиеся {referrerTotalFee}% между ним и его собственной Аффилированной Партнерской программой.

Регистратор {account} а решил отдать {referrerFee}% от суммы комиссии Аффилированному Рефереру и оставить {registrarFee}% от суммы комиссии себе.

Ожидаемые комиссии

Комиссии, оплаченные {account}, разделяются только между сетью, реферерами и регистраторами один раз в каждый период обслуживания ({maintenanceInterval} секунд). Следующее время обслуживания {nextMaintenanceTime}.

Вестинговые комиссии

Большинство комиссий доступны немедленно, но комиссии за {vestingThreshold} (такие как комиссия за повышение уровня Вашего членства или регистрацию премиум-имени аккаунта) должны ожидать обработки {vestingPeriod} дней.

'},35796:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Актив {symbol}

{description}

Выпущен: {issuer}

Евро (знак: €; символ: EUR) является официальной валютой стран-участниц Еврозоны.

'},65418:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Актив {symbol}

{description}

Выпущен: {issuer}

Доллар США (знак: $; символ: USD) является официальной валютой Соединенных Штатов Америки.

'},11387:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Привязанные к рынку активы

Криптовалюта со свойствами и преимуществами Биткойна, которая способна поддерживать паритет цен с глобально принятой валютой (например, долларом США), может широко использоваться для удобной и устойчивой к цензуре торговли. Это может быть достигнуто с помощью привязанных к рынку активов (market pegged assets - MPA) от BitShares, нового типа свободно торгуемых цифровых активов, чья стоимость привязана к стоимости обычного базового актива посредством контрактов на разницу цен (CFD).

SmartCoin (синоним MPA) - это криптовалюта, которая всегда имеет 100% или более своей стоимости обеспеченной основной валютой BitShares (BTS), на которую она может быть обменяна в любой момент, в качестве залога в CFD.

Такими уникальными MPA делает их независимость от риска партнеров, даже несмотря на то, что они имеют сходство с CFD, подкрепленными залогом. Этого можно достичь с помощью предоставления сети возможности (реализованной как протокол программного обеспечения) самой быть ответственной за обеспечение залога и проведение сделок, как более подробно описано ниже.

Это подгруппа доступных привязанных к рынку активов:

  • BitUSD
  • BitCNY
  • BitEUR
  • BitGOLD
  • ...
'},74759:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Приватизированные BitAssets

Приватизированные BitAssets обслуживают тех клиентов, которые хотели бы выпустить актив с привязкой к рынку, но не хотели бы, чтобы делегаты публиковали его цены. Вместо этого, когда клиент создает приватизированный bitasset, он может определять набор авторитетов, которые смогут публиковать цену для этого конкретного актива. Эмитент также может определить все виды комиссий, связанных с этим активом, и получать прибыль.

Эта функция представляет особый интерес для бирж и институтов, которые имеют доступ к ценам в режиме реального времени и хотели бы увеличить видимость и объем.

'},6643:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Эмитированные пользователем активы

Помимо вышеупомянутых привязанных к рынку активов, BitShares позволяет отдельным лицам и компаниям создавать и выпускать свои собственные токены для всего, что они только могут себе представить. Потенциальные варианты использования для так называемых эмитированных пользователем активов (User Issued Assets - UIA) не поддаются исчислению. С одной стороны, такие активы можно использовать в качестве обычных входных билетов, хранящихся на мобильном телефоне пользователя, чтобы облегчить вход на концерт. С другой стороны, они могут использоваться для краудфандинга, отслеживания владения или даже для продажи доли компании в форме акций.

Очевидно, правила, применимые к каждому виду токенов, сильно отличаются и зачастую варьируются в каждой отдельной юрисдикции. Таким образом, BitShares располагает инструментами, которые позволяют эмитентам соответствовать всем применяемым правилам при выпуске активов с тем условием, что регуляторы изначально позволяют такие активы.

'},53556:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# разрешения] Разрешения определяют доступные для актива функции. Однако, даже если функция разрешена, она по-прежнему должна быть активирована с помощью соответствующего маркера, чтобы она исполнялась блокчейном.

После создания Вы можете только удалить данное разрешение, Вы не можете включить разрешение, которое было отключено при создании.

[# маркеры] Маркеры определяют, какие функции активов являются активными или неактивными. Они могут быть включены и отключены владельцем актива в любое время.

"},49046:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# пожизненно]

Получите {feesCashback}% кэшбэка с комиссий

Пожизненные члены получают {feesCashback}% кэшбэка с каждой комиссии за транзакцию, которую они оплачивают, и имеют право получать реферальный доход от пользователей, которых они регистрируют, или рефереров сети. Пожизненное членство стоит всего {price}.

[# разделение-комиссии]

Разделение Комиссии

Каждый раз, когда {account} платит комиссию за транзакцию, эта комиссия делится между разными аккаунтами. Сеть забирает долю в {networkFee}%, и Пожизненный Член, рефералом которого является {account}, получает долю в {lifetimeFee}%.

Регистратор - это аккаунт, который заплатил комиссию за регистрацию {account} в сети. Регистратор должен решить, как разделить оставшиеся {referrerTotalFee}% между ним и его собственной Аффилированной Партнерской программой.

Регистратор {account} а решил отдать {referrerFee}% от суммы комиссии Аффилированному Рефереру и оставить {registrarFee}% от суммы комиссии себе.

Ожидаемые комиссии

Комиссии, оплаченные {account}, разделяются между сетью, реферерами и регистраторами один раз в каждый период обслуживания ({maintenanceInterval} секунд). Следующий период обслуживания {nextMaintenanceTime}.

Вестинговые комиссии

Большинство комиссий доступны немедленно, но комиссии за {vestingThreshold} (такие как комиссия за повышение уровня Вашего членства или регистрацию премиум-имени аккаунта) должны ожидать обработки {vestingPeriod} дней.

'},27281:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Активные разрешения определяют аккаунты, которые имеют разрешение тратить средства этого аккаунта.

Они могут быть использованы для упрощенной настройки схемы с мульти-подписью, смотрите раздел разрешения чтобы узнать подробности.

'},47718:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

Мемо ключ - это место, где Вы получаете мемо. Чтобы расшифровать мемо, Вы должны контролировать приватный ключ для публичного ключа.

Используя пару из публичного/приватного ключей без разрешения на трату средств, Вы можете дать доступ к Вашим мемо в режиме "только чтение" третьим сторонам.

"},50010:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Разрешения владельца определяют кто распоряжается аккаунтом. Владельцы могут переписывать все ключи и менять любые настройки аккаунта.

Для получения подробной информации смотрите раздел разрешения.

'},21767:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Голосование

Голосование в BitShares крайне важно как для безопасности, так и для развития сети. Голосование определяет, какие Заверители избраны для поддержания работы сети, какие Члены Комитета обладают способностью голосовать за важные изменения и какие Предлагаемые Работники приняты для улучшения и расширения функционала.

Если же Вы не понимаете различные приведенные выше роли в полной мере, Вы можете выбрать вариант делегирования Вашей силы голоса Прокси, который будет голосовать от Вашего имени. Если Вы решите использовать Прокси, Вы не сможете самостоятельно голосовать за Заверителей, Членов Комитета и Предлагаемых Работников. Вы всегда можете освободить вашу силу голоса из Прокси после, если решите в принимать участие в процессе голосования в полной мере.

Не забудьте нажать "Опубликовать изменения" после того, как вы сделали свой выбор.

'},73849:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Члены Комитета могут предлагать изменения динамических параметров блокчейна, таких как комиссия, время блока и многое другое. Эта позиция несет в себе большую ответственность, которая требует четкого понимания механизма работы BitShares.

'},51413:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Если Вы не понимаете ролей Заверителей, Членов Комитета и Работников в полной мере, Вы можете выбрать вариант использования Прокси. Прокси - это аккаунт, которому Вы доверяете принятие решений о сети Bitshares от Вашего имени. Вы можете найти людей, предлагающих свои услуги в качестве Прокси, на форуме BitShares на BitSharestalk. Кроме того, Вы можете выбрать прокси из списка ниже или ввести имя выбранного Вами аккаунта вручную.

Обязательно выберите вышеуказанный пункт "Опубликовать изменения", как только Вы сделали свой выбор.

'},45485:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Делегаты - это производители блоков BitShares. Они подтверждают транзакции и обеспечивают безопасность сети. Вы можете проголосовать за стольких делегатов, за скольких пожелаете, и все они получат одинаковое количество голосов. Предлагаемые кандидатуры делегатов можно найти здесь: BitSharestalk - Stakeholder Proposals Board.

'},91288:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Работники - это уникальный концепт, придуманный BitShares. Они состоят из предложений по предоставлению услуг в обмен на зарплату от самого блокчейна. Предложение должно включать в себя ссылку на веб-сайт или ветку форума, которая объясняет назначение предложения. Коллекцию предложений можно найти здесь: BitSharestalk - Stakeholder Proposals Board.

'},37091:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Обновите Вашу позицию маржи {debt}, отрегулировав уровни задолженности и залогового обеспечения.

Вы можете настраивать уровни залогового обеспечения и задолженности как Вам угодно до тех пор, пока размер Вашего залогового обеспечения остается больше размера обслуживания обеспечения {mr}. Прочитайте больше и проверьте Мастер объяснений

'},38309:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

Это рынок бинарных прогнозов.

Соотношение обеспечения для этого рынка составляет 1:1.

"},95781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# receive]

Получение BTS

Для того, чтобы получить BTS от другого лица или биржи, просто сообщите им имя Вашего аккаунта: {account}

[# deposit-short]

Внесение депозита или снятие койнов

Если Вы хотите внести депозит или снять средства, в фиате или из других блокчейнов, Вы можете воспользоваться для этого сервисами моста или шлюза.

'},15015:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Комиссии

В экосистеме BitShares каждой операции присваивается индивидуальная комиссия. Эти комиссии могут меняться. Тем не менее, они определяются только одобрением держателей долей, поэтому каждый держатель основного актива BitShares (BTS) имеет право влиять на то, какими эти комиссии должны быть. Если держатели согласятся снизить некую комиссию и консенсус будет достигнут, комиссия будет автоматически снижена блокчейном. Изменения параметров блокчейна предлагаются членами комитета. Этих члены избираются держателями долей и улучшают показатели гибкости и реакции.

*: Для этих операций требуется Пожизненное Членство!

'},63037:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# connection-error] Мы не смогли установить соединение WebSocket с полной нодой.

Возможные причины: TODO

  • причина #1
  • причина #2
"},53632:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Децентрализованная биржа

Децентрализованная биржа (далее обозначается как DEX) позволяет производить прямой обмен цифровых товаров, торгующихся в экосистеме BitShares.

Децентрализованная биржа обладает весьма определенным набором преимуществ перед традиционными централизованными биржами, о чем мы хотим кратко рассказать ниже. И хотя BitShares DEX включает в себя их все, право использовать эти функции полностью или частично остается за читателем и клиентом.

  • Разделение сил: Нет такой причины, которая бы обязывала одну и ту же единицу быть ответственной и за выдачу IOU, и за обработку книги ордеров. В BitShares подбор ордеров производится протоколом, который не знает о последствиях, касающихся связанных с ними активов.

  • Единая Общая Книга Ордеров: Так как BitShares глобальна, любой, у кого есть Интернет, может использовать DEX для торговли. Это делает всю ликвидность мира доступной единственной книге ордеров для децентрализованной торговли.

  • Торгуй чем угодно: BitShares DEX - агностик в отношении активов. А значит, Вы можете торговать на любой паре. И хотя ликвидность некоторых пар в итоге окажется низкой, как у SILVER:GOLD, другие пары, вроде USD:EUR для торговли на FOREX, будут обладать внушительным объемом.

  • Без ограничений: Протокол BitShares не в состоянии ограничить Ваш торговый опыт.

  • Децентрализованная: DEX децентрализована по всему миру. Это не только означает, что не существует ни единого отказа, но и позволяет бирже BitShares работать 24/7, так как где-нибудь на планете всегда день.

  • Безопасная: Безопасность Ваших средств и торгов обеспечивается эллиптической криптографией промышленного уровня. Никто не сможет получить доступ к Вашим средствам, пока Вы им не позволите. Чтобы возвести безопасность на новый уровень, мы позволяем нашим клиентам устанавливать escrow и схемы с мульти-подписью.

  • Быстрая: В отличие от других децентрализованных сетей, BitShares DEX позволяет торговать в реальном времени, ограничиваясь только скоростью света и размером планеты.

  • Доказуемый алгоритм подбора ордеров: Что делает BitShares DEX поистине уникальной, так это доказуемый алгоритм подбора ордеров. Получив набор ордеров, Вы всегда сможете доказуемо проверить, что эти ордера были подобраны правильно.

  • Обеспеченные Smartcoins: Одно из самых больших новшеств BitShares - это smartcoins, такие как bitUSD, bitEUR, bitCNY и другие. Ради удобства эти активы обозначены просто как USD, EUR, CNY и т. д. в кошельке. Эти цифровые токены обладают той же ценностью, что и прикрепленные к ним физические активы. Поэтому 1 USD в таком кошельке стоит $1 и может использоваться как таковой. Любой из этих токенов обеспечен долями компании BitShares (BTS), которые заморожены в качестве обеспечения залога и доступны для сделок по своей текущей цене.

'},48167:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Короткая продажа BitAssets

Для увеличения Вашего воздействия на BTS и увеличения ликвидности активов BitAssets, таких как USD, EUR, GOLD и др., Вы можете занять этот актив bitAsset у сети и выставить шорт. Здесь мы кратко опишем данную процедуру.

Заём

Сеть BitShares способна создавать любое количество каждого актива BitAsset и занимать его субьектам экосистемы при условии предоставления достаточного залога.

  • расчетная цена: Цена за 1 BTS взятая с внешних бирж.
  • уровень обеспечивающего залога (MCR): Размер залога, определённый участниками рынка как минимальный
  • максимальный размер сжатия шорта (MSQR): Установленный участниками рынка размер вынужденной покупки актива медведями по высокому курсу из опасения еще большего его роста
  • защита от сжатия шорта(SQP): Определяет предельную величину принудительного покрытия позиции
  • черта марджин колла (CP): Цена, при которой шорт будет принудительно закрыт

Марджин Колл

Сеть BitShares способна применять марджин колл к тем позициям, которые не имеют достаточного обеспечения для покрытия одолженных ими bitAssets. Марджин колл будет происходить каждый раз, когда самая высокая ставка окажется меньше, чем цена досрочного выкупа и больше SQP. Маржинальная позиция будет вынуждена продавать своё залоговое обеспечение каждый раз, когда самое высокое предложение на покупку обеспечения будет меньше, чем цена дострочного выкупа (x/BTS).

SQP = расчетная цена / MSQR\nцена дострочного выкупа = DEBT / COLLATERAL * MCR

Марджин колл возьмет обеспечение, выкупит доли одолженных bitAsset на уровне рынка до SQP и закроет позицию. Оставшиеся BTS залогового обеспечения вернутся к клиенту.

Погашение

Держатели любого bitAsset могут запросить расчет по справедливой цене в любой момент. Расчет закрывает заемные/шорт позиции с самым низким уровнем обеспечивающего залога и продает залог для расчета.

Продажа

После заёма bitAssets Вы можете свободно продавать их на любых соответствующих рынках по любой цене, какую будет готов заплатить покупатель. После этого шага короткая продажа считается завершенной и Вы произвели шорт с этим конкретным bitAsset.

Обновление обеспечивающего залога

В любой момент держатель заемной/шорт позиции может изменить обеспечивающий залог в стремлении гибко подстроиться под поведение рынка. Если обеспечивающий залог увеличится, дополнительное количество BTS будет заморожено в качестве залога, тогда как уменьшение обеспечивающего залога потребует выплаты соответствующего количества BitAsset обратно сети.

Покрытие

Чтобы закрыть заемную/шорт позицию нужно обладать одолженным количеством этого конкретного bitAsset, чтобы передать его сети BitShares. После этого BitAssets снимаются с соответствующего запаса, а залог освобождается и отправляется обратно владельцу.

'},2373:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Торговля

Эта страница предоставит Вам краткую интерпретацию терминов, используемых на DEX, и информацию о том, как размещаются торговые пары.

Пары

На BitShares практически любой актив может торговаться со всеми остальными активами. Как только мы выбрали два актива, обычно мы ссылаемся на определенную рыночную пару. Например, мы можем торговать USD против EUR в паре USD:EUR.

В целях установки ориентира, мы будем использовать общие термины базовый и котируемый, где подобные пары представлены как

"котируемый" : "базовый"

в частности, в представленной паре EUR:USD, базовым активом будет являться USD, а котируемым - EUR.

Регистр Ордеров

Регистр состоит из цен покупки и цен продажи. Так как стороны торговых пар не фиксированы и могут меняться, следующая таблица даст Вам представление о ценах покупки и продажи в соответствии с продаваемым/покупаемым лотом для каждого случая:

Сторона Продажа Покупка
Цена Покупки котируемый базовый
Цена Продажи базовый котируемый
---------- ------- -------

Естественно, цена покупки пары USD:EUR является ценой продажи обратной пары EUR:USD. Конечно, цены внутри представлены в виде фракций, а потому результаты в обеих парах будут идентичны.

Торговля

Чтобы разместить торговый ордер, Вам нужно заполнить форму либо покупки, либо продажи, а также определить цену и количество покупаемого/продаваемого актива. Вам нужно будет определить цену и количество покупаемого/продаваемого актива. Стоимость ордера будет рассчитана автоматически. Обратите внимание, что для размещения ордера нужно будет заплатить дополнительную комиссию.

Как только ордер будет исполнен (т.е. кто-то купил/продал Ваше предложение), на Ваш аккаунт будет переведен соответствующий актив.

Неисполненные ордера могут быть отменены в любой момент.

'},42199:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюз от CryptoBridge

CryptoBridge – сервис шлюза, построенный на бирже Bitshares. Сервис шлюза ответственнен за ввод и вывод криптовалют с биржи Bitshares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает CryptoBridge, так как они обладают префиксом вида BRIDGE.*. Например, BRIDGE.BTC, BRIDGE.LTC и т.п.

Веб-сайт

https://crypto-bridge.org

Поддержка

CryptoBridge всё ещё ведет завершающие работы над своим шлюзом, поэтому не весь его функционал доступен для широкой публики.

'},49331:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюзы BitShares

Шлюзы и Мосты являются внешними поставщиками услуг, позволяющими вносить депозиты, торговать и выводить из блокчейна BitShares активы, которые были созданы в других блокчейнах. Например, вы можете отправить свой BTC из блокчейна Биткойн на шлюз, который в свою очередь выдаст вам эквивалентный UIA (выпущенный пользователем актив) в блокчейне BitShares с обещанием, что вы можете вывести его снова (за комиссию, конечно). Пока вы держите такие UIA в блокчейне BitShares, именно шлюз является хранителем ваших средств. Используя услуги сторонних поставщиков, вы безоговорочно соглашаетесь с их условиями использования любых сервисов или активов.

'},58662:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюз от Openledger

Openledger – сервис шлюза, построенный на бирже Bitshares. Сервис шлюза ответственнен за ввод и вывод криптовалют с биржи Bitshares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает OpenLedger, так как они обладают префиксом вида OPEN.*. Например, OPEN.BTC, OPEN.LTC и т.п.

Веб-сайт

https://dex.openledger.io

Поддержка

Если у вас возник вопрос или случилась задержка в отправке или получении активов, обратитесь сюда:

'},77860:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюз от RuDEX

RuDEX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает RuDEX, так как они обладают префиксом вида RUDEX.*. Например, RUDEX.BTC, RUDEX.EOS, RUDEX.USDT, RUDEX.GOLOS и т.п.

Веб-сайт

market.rudex.org

Публичный аудит шлюза:

Поддержка

'},35672:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюз от SparkDEX

SparkDEX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает SparkDEX, так как они обладают префиксом вида SPARKDEX.*. Например, SPARKDEX.BTC, SPARKDEX.ETH, SPARKDEX.HKD и т.п.

Веб-сайт

https://bitspark.io

Поддержка

'},77207:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Шлюз от XBTS.io

XBTSX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает XBTS.io, так как они обладают префиксом вида XBTSX.*. Например, XBTSX.STH, XBTSX.POST и т.п.

Веб-сайт

XBTS.io

Поддержка

'},38038:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Глоссарий

Вернуться к содержанию

'},25528:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Помощь Graphene

BitShares 2.0 - это платформа Финансовых Смарт-Контрактов, постороенная на технологии Graphene, созданной Cryptonomex. Graphene можно рассматривать как набор инструментов или технологию для создания блокчейнов работающих в режиме реального времени.

Этот раздел помощи дает краткий обзор и описывает основные понятия этого приложения.

Введение

Аккаунты

Активы

Децентрализованная биржа


Глоссарий

'},3709:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Резервные копии

Мы настоятельно рекомендуем Вам регулярно создавать резервные копии Вашего кошелька несмотря на то, что одной резервной копии в большинстве случаев оказывается достаточно. Пожалуйста, обратите внимание, что для восстановления из резервной копии будет необходимо предоставить фразу-пароль, так как резервные копии зашифрованы. Следовательно, если Вы потеряете кошелек или Вашу фразу-пароль, то больше никогда не сможете получить доступ к своим средствам!

Резервные копии можно получить с помощью Панели Управления Кошельком (Настройки -> Кошельки).

Экспорт кошелька

Наиболее удобным способом создания новой резервной копии является экспорт кошелька с помощью ссылки, сгенерированной в Панели Управления Кошельком. Пожалуйста, храните свои резервные копии так, чтобы их нельзя было потерять, украсть или случайно повредить.

Brainkey (ТОЛЬКО для опытных пользователей)

Если Вы никогда не импортировали ключ аккаунта в свой кошелек вручную, Вы также можете создать резервную копию Вашего аккаунта и принадлежащих ему средств, экспортировав brainkey - цепочку слов, из которой Ваши ключи извлекаются детерминированно.

Примечание: Иерархические авторитеты (ТОЛЬКО для опытных пользователей)

Если Вы используете иерархические авторитеты (разрешения аккаунта/активные разрешения), создания резервной копии только одних ключей может быть недостаточно для восстановления доступа к Вашим средствам! Пожалуйста, ознакомьтесь с документацией об иерархических авторитетах.

'},78997:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitShares

Поддержка

Если у Вас возникли проблемы со шлюзом от провайдера, пожалуйста, свяжитесь с ним напрямую. Смотрите список шлюзов в левом меню.

Чат Bitshares

Вы можете общаться с другими членами сообщества Bitshares в реальном времени здесь:

Разработчики

Если вы являетесь разработчиком программного обеспечения, то можете поучаствовать в баунти-программе здесь:

Введение

Добро пожаловать на самую быструю в мире децентрализованную биржу (The DEX). BitShares создан для того, чтобы распространить инновационность технологии блокчейн во все индустрии, которые используют интернет для предоставления своих услуг. Банки ли это, или фондовые биржи, лотереи, голосование, музыка, аукционы и многие другие сферы, публичный цифровой регистр позволяет создавать децентрализованные автономные компании (т. н. DAC), которые предоставляют сервисы лучшего качества за меньшие деньги в сравнении с их более традиционными, централизованными коллегами. Появление таких децентрализованных компаний возвещает о появлении в организационной структуре новой парадигмы, в которой компании могут работать без управления человеком и под контролем не подверженного коррупции набора правил ведения бизнеса. Эти правила закодированы в публично проверяемом программном обеспечении с открытым исходным кодом, распространенном на компьютерах держателей долей компании, которые без особых усилий защищают компанию от произвольного захвата контроля.

BitShares делает для бизнеса то, что Биткойн сделал для денег, используя технологию распределенного консенсуса для создания компаний, которые по своей сути глобальны, прозрачны, надежны, эффективны и, что не менее важно, прибыльны.

Кошелек

Этот кошелек обеспечивает доступ к большинству функций сети BitShares, включая

'},63175:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Блокчейн

Как и большинство криптовалют, для оповещения участников о транзакциях и происходящем на рынке Графен использует технологию блокчейн. Так как блок всегда ссылается на предыдущий блок, мы получаем цепь блоков (блокчейн), которая содержит все когда-либо проведенные в сети транзакции. Так как блокчейн - это публично доступный и проверяемый регистр, любой желающий может детально просмотреть и проверить транзакции, а также рыночные ордера и книги ордеров.

Конечно, этот веб-кошелек предлагает Вам обозреватель блоков, дабы помочь Вам с аудитом.

Механизм консенсуса

То, кому именно и в какое время будет позволено произвести блок, определяется механизмом консенсуса под названием Делегированное доказательство владением долей. По сути, держатели долей BitShares (держатели токена BTS) могут голосовать за предпочитаемых ими производителей блоков в блокчейне. Этим так называемым делегатам с наибольшим количеством голосов и позволяется производить блоки.

Транзакции

Блокчейн-технология Графен предлагает Вам различные типы транзакций. Пользователи могут не только просто переводить активы друг другу, но и воспользоваться транзакциями для взаимодействия с децентрализованной биржей. Большая часть этих типов транзакций помечена поясняющим флагом, другие же требуют некоторых познаний в механизмах внутреннего функционирования компании.

'},90186:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Сервисы моста и шлюза

И мосты, и шлюзы позволяют Вам заводить и выводить монеты, но существует разница в уровне доверия, которое Вам нужно будет оказать поставщикам этих сервисов.

Мосты: модель без доверия

Сервис моста предоставляет Вам способ завести некоторое количество криптовалюты, кроме BitShares, и получить взамен эквивалент в SmartCoin. SmartCoins не подвержены риску от третьей стороны, поэтому единственный риск, с которым Вы сталкиваетесь при использовании моста, это тот короткий момент времени, который нужен на завершение трансфера. Это лучше, чем централизованная биржа вроде Poloniex, на которой Вы всегда находитесь под риском взлома биржи, ее банкротства, или других подобных проблем.

Шлюзы: модель на основе доверия

Шлюзы по сути являются аналогом стандартной модели обмена, где Вы зависите от платежеспособности биржи, которая должна выкупить Ваши монеты. В основном шлюзы выпускают активы с собственным символом в префиксе, например, OPEN, TRADE, или META. Эти активы на 100% обеспечены реальными BTC или ETH, либо же любой другой валютой, которую люди заводят через шлюзы.

Таким образом, OPEN.BTC теоретически эквивалентны BTC, которые Вы получаете на Poloniex, которые могут иметь префикс POLO.BTC. В обоих случаях Вы полагаетесь на поставщика сервиса: CCEDK для OPEN. assets и Poloniex для POLO. assets, которые должны оставаться платежеспособными, дабы обеспечивать ценность выпущенных ими активов. Так как шлюзы предоставляют только один сервис, который обычно является частью работы биржи, кто-нибудь даже может сказать, что их работа по обеспечению своих средств довольно легкая.

'},81950:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Комитет

Комитет представляет собой утвержденный держателями долей набор единиц, который определяет некоторые параметры ведения дел. Среди этих параметров

  • комиссии за транзакции и торговлю
  • параметры блокчейна, такие как размер блока, интервал блока и т.п.
  • реферальные и вестинговые параметры, такие как процент кэшбэка и вестинговые периоды.
'},13366:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Кошелек

Как Вы уже могли заметить, это веб-приложение, которое работает в браузере. Соединение устанавливается с доверенным узлом сети, который служит шлюзом в остальную часть экосистемы.

Облачный кошелек (Модель "аккаунт")

Если Вы зарегистрировались с использованием имени пользователя и пароля, Вы обладаете облачным кошельком. И хотя технически ничего не хранится в облаке, мы используем термин Облачный кошелек, потому что Вы можете использовать эти данные (имя пользователя и пароль) для получения доступа к своему аккаунту из любого веб-браузера в любой момент. Облачный кошелек позволяет получить доступ только к одному аккаунту за раз. Обычно это является оптимальным вариантом для новых пользователей. Несмотря на то, что автоматически сгенерированный пароль можно изменить, мы не рекомендуем делать это прямо сейчас. Наша команда работает над надежным способом смены пароля, который не потребует технических знаний. Мы объявим о его появлении, как только он будет готов.

Локальный кошелек (Модель "кошелек")

Локальный кошелек создает базу данных в рамках Вашего браузера. Это означает, что доступ к Вашим средствам привязан только к этому браузеру. Если Вы попытаетесь получить доступ к своему локальному кошельку с любого другого компьютера или браузера, Вам это не удастся, если только Вы не проведете активный импорт файла резервной копии из файла резервной копии оригинального браузера. На самом деле этот процесс очень прост. Смотрите информацию об управлении резервными копиями.

Безопасность

Будьте уверены, что наши сервера никогда не получат доступа к Вашим средствам, потому как ни один из Ваших приватных ключей никогда не покидает браузер. Вместо этого они зашифрованы с помощью Вашей фразы-пароля и хранятся в локальной базе данных Вашего браузера. Поэтому Вам обязательно нужно иметь резервную копию на случай повреждения Вашего компьютера или браузера.

Управление

Пользовательский интерфейс способен содержать и предоставлять доступ к нескольким кошелькам, каждый из которых может содержать несколько аккаунтов и соответствующие им средства. Вы можете добавлять, создавать резервную копию и переключаться между существующими кошельками в меню Настройки->Кошельки.

'},99396:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Делегат

Делегаты - это единицы, которые работают на блокчейн, создавая новые блоки. Каждый делегат утвержден держателями долей; он создает и подписывает блоки с действительными транзакциями. Каждая совершенная в сети транзакция должна в конечном итоге быть подтверждена всеми делегатами.

Механизм консенсуса

То, кому именно и в какое время будет позволено произвести блок, определяется механизмом консенсуса под названием Делегированное доказательство владением долей. По сути, держатели долей BitShares (держатели токена BTS) могут голосовать за предпочитаемых ими производителей блоков в блокчейне. Этим так называемым делегатам с наибольшим количеством голосов и позволяется производить блоки.

'},26134:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Работники

Работники состоят из предложений по выполнению услуг в обмен на зарплату от блокчейна. Предложение о работе как минимум содержит следующую информацию:

  • Даты начала и окончания
  • Размер ежедневной выплаты
  • Максимальную итоговую выплату

Оно также должно содержать ссылку на страницу, где предложение о работе описывается детально.

Голоса за предложение о работе могут быть как положительными, так и отрицательными, что означает, что Вы можете проголосовать против предложения о работе, которое Вам не нравится.

Механизм бюджета работника

Работники получают оплату из фиксированного ежедневного бюджета по принципу кто раньше пришел - того раньше обслужили, до тех пор, пока средств больше не останется. Чтобы понять, как это работает, давайте представим следующее:

  • Ежедневный общий бюджет составляет 400 000 BTS на всех работников
  • Есть 5 предложений о работе с положительным количеством голосов и запросом на ежедневную оплату в размере 100 000 BTS каждое

Тогда четыре работника с наибольшим количеством голосов получат по 100 000 BTS в день каждый, но как только они получают выплаты, бюджет остается пустым. Следовательно, пятый работник ничего не получит.

'},69208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Содержание

'},95132:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Hesaplar

Şu ana kadar farkkettiğiniz gibi, bu blokzinciri teknolojisi bir hesap adı kaydetmenizi mecbur kılar. Bunun bir çok avantajı vardır : Gelişmiş ölçeklenebilirlik bir yana, biz bu şekilde , kimlik bilgilerini , işlemleri yetkilendiren imzalardan ayırmış oluyoruz. Uygulamada , bir hesap adına sahip olmak o hesaba ait fonları harcayabilmekten bağımsızdır. Dahası her iki hak da (biz bunlara izinler diyoruz) ağırlıklar ve eşikler kullanılarak gelişigüzel karmaşık insan ilişkileri (biz bunlara "yetkiler" diyoruz) arasında paylaştırılabilirler.

'},5845:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Üyelik

BitShares'deki hesaplar üç gruba ayrılırlar . Biz kullanıcılara dilerlerse hesaplarını VIP gibi bir statüye yükseltmelerine ve ilave özelliklerden ve indirimlerden faydalanmalarına imkan tanıdık.

Üye-Olmayanlar

Normal hesap üye-olmayan bir hesaptır.

Ömür-boyu Üyeler

Ömür-boyu-üyelerinin ödediği her işlem ücretinin belirli bir yüzdesi kendilerine iade edilir ve kaydını yaptıkları ya da getirdikleri üyelerden komisyon geliri kazanmaya hak kazanırlar. Ömür-boyu-üyelikle alakalı kurul tarafından belirlenmiş belli miktarda tek-seferlik bir ücret vardır.

Ücret Paylaşımı

Getirdiğiniz hesap her işlem ücreti ödediğinde o ücret birçok farklı hesap arasında pay edilir. Ağımız bir kısmını alır , hesabı getiren ömür-boyu-üye de diğer kısmını alır. Hesabı getiren üye bir kısım pay alır.

Kayıtçı , hesabın ağımıza kaydı yapılırken işlem ücretini ödeyen hesaptır. Kayıtçı ücretin geri kalan kısmını kendisi ve bağlantılarıyla nasıl pay edeceğine kendisi karar verir.

Bekleyen Ücretler

Ödenen ücretler sadece ağımız, getirenler, ve kayıtçılar arasında her bakım aralığında bir kez pay edilir.

Hak Edilen Ücretler

Çoğu ücretler anında ödenmesine rağmen , bir limitin üzerindeki ücretler (mesela üyeliğinizi yükseltmek için ödediğiniz ya da paralı hesap kaydetmek için ödediğiniz ücretler) kurul tarafından belirlenen bir kaç gün boyunca haciz altında tutulabilirler.

'},68211:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

İzinler

BitShares'de , her hesap ikiye ayrılır

  • Etkin İzin: fonların yönetimi ve
  • Sahip İzni: hesap yönetimi.

Her ikisi de hesabınızın İzinler sekmesinde yetkiler ve alt-sınır'ın birlikte kullanılmasıyla belirlenebilir. İşlemin geçerli olması için alt-sınır ın geçilmesi gerekmektedir.

Yetkililer

BitShares'de bir yetkili, transfer veya alım-satım gibi işlemlere yetki veren bir veya daha çok sayıda kişiden oluşur.

Bir yetki , bir yada daha fazla sayıda hesap adı ve ağırlık çiftinden oluşur.

Geçerli bir işlem elde edebilmek için , imzalayan tarafların etki ağırlıklarının toplamı izinlerde belirlenmiş olan alt-sınırı geçiyor olması gerekir.

Örnekler

Birkaç örneğe bakarak kullanılan terminolojiye ve kullanım senaryolarına ışık tutalım. Aşağıda tanımlanmış etkin izinlerle yeni bir hesap oluşturulduğunu farz edelim. Dikkatinizi çekeriz , aynı şema sahip izinleri için de işe yarar.

(Düz) Çok-İmzalı

Düz çok-imzalı bir şema, işlemin geçerli olabilmesi için aralarından 'N' sayıda kişinin imzası gerekli toplam 'M' sayıda kişiden oluşur. Şimdi biz, BitShares'de, 'M' ve 'N' yerine ağırlıklar ve alt-sınır kullanıyoruz. Şimdi göreceğimiz gibi tamamen aynı sonuca çok daha esnek bir şekilde varacağız.

Gelin şöyle farz edelim , Alice, Bob, Charlie ve Dennis'in ortak fonları olsun . Eğer yalnızca ikisi anlaşırlarsa geçerli olabilecek bir işlem oluşturmak istiyoruz . Dolayısıyla 4-ün-2-si (M-in-N-i) şeması şöyle görünür :

Hesap Ağırlık
Alice 33%
Bob 33%
Charlie 33%
Dennis 33%
---------- ------
Alt Sınır : 51%

Katılımcıların her birinin 33% etki ağırlığı var fakat alt sınır 51% olarak ayarlanmış. Dolayısıyla işlemi geçerli kılmak için 4 kişiden sadece 2 sinin anlaşması yeterlidir.

Alternatif olarak, bir 4-ün-3'ü şeması oluşturmak için ya ağırlıkları 17% ye indirebiliriz yada alt-sınırı 99%'a yükseltebiliriz.

(Düz) Esnek Çok-İmzalı

Alt-sınır ve ağırlıklar sayesinde fonlarımızla şimdi daha esneğiz, yada daha doğrusu daha fazla hakimiyetimiz var. Mesela , farklı kişiler için ayrı ağırlıklar belirleyebiliriz. Farzedelim ki Alice fonlarını çoklu-imza şeması kullanarak hırsızlığa karşı korumak istiyor fakat aynı zamanda arkadaşlarına da gereğinden fazla hakimiyet teslim etmek istemiyor. O zaman şuna benzer bir yetki oluşturuyoruz :

Hesap Ağırlık
Alice 49%
Bob 25%
Charlie 25%
Dennis 10%
---------- ------
Alt Sınır : 51%

Şimdi, fonlara Alice tek bir arkadaşıyla yada tüm üç arkadaşıyla birlikte erişebilme imkanına sahip olur.

Çok-Basamaklı Esnek Çoklu-İmza

Gelin beraber basit bir çok-basamaklı anonim hesap kurulumuna göz atalım. Mali İşler Müdürü (MİM) ve onun için altında çalışan Vezne, Denetçi, Vergi Müdürü, Muhasebe vb. gibi departmanları olan bir şirkete bakıyor olalım. Bir de harcama ayrıcalıklarına sahip olmayı isteyen bir CEO'su olsun. O zaman biz fonlar için şunlara göre bir yetki oluştururuz :

Hesap Ağırlık
CEO.ŞİRKET 51%
MİM.ŞİRKET 51%
---------- ------
Alt Sınır : 51%

burada CEO.ŞİRKET ve MİM.ŞİRKET in kendilerine ait ayrı yetkileri var. Mesela MİM.ŞİRKET hesabı şöyle olabilir :

MİM.ŞİRKET Ağırlık
Müdür.ŞİRKET 51%
Vezne.ŞİRKET 33%
Denetçi.ŞİRKET 33%
Vergi Müdürü.ŞİRKET 10%
Muhasebe.ŞİRKET 10%
------------------- ------
Alt-sınır : 51%

Bu şema fonların harcanabilmesi için kişilere şöyle izinler verir :

  • CEO tek başına
  • Mali İşler Müdürün tek başına
  • Vezne ve Denetçi birlikte
  • Denetçi veya Veznedar , Vergi Müdürü ve Muhasebeciyle birlikte harcama.

Dolayısıyla görüldüldüğü gibi yetkilendirmeleri gelişigüzel derinlikte yayarak her türlü iş alanına uyacak esneklikte uygulamak mümkün.

'},3260:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Aktif {symbol}

{description}
Piyasaya süren {issuer}

[# annual]

Eğer ömür-boyu üyelik fazla geliyorsa, {price} miktarında bir ücret karşılığında bir
yıllığına abone olarak gelecek yıl için {feesCashback}% para iadesi alabilirsiniz. GitHub Logo

[# fee-division]

Ücret Paylaşımı

{account} adlı hesap her işlem ücreti ödediğinde, o ücret birçok farklı hesaplar arasında paylaştırılır. Ağımız {networkFee}% pay alırken, {account} adlı hesabı getiren Ömür-boyu Üye de {lifetimeFee}% pay alır.

{account} adlı hesabın kayıt işlem ücretini ödeyen hesabın adı kayıtçı_dır. Kayıtçı geri kalan {referrerTotalFee}% miktarı kendileri ve _Bağlı Getirici arasında nasıl pay edileceğini kendi belirler.

{account} adlı hesabın kayıtçısı toplam ücretin {referrerFee}% kadarki kısmını Bağlı Getirici yle paylaşmayı ve {registrarFee}% kadarki kısmını kendine bırakmayı tercih etti.

Bekleyen Ücretler

{account} adlı hesabın ödediği ücretler her bakım periodu ({maintenanceInterval} seconds) nda sadece ağ, getiriciler ve kayıtçılar arasında paylaştırılır. Bir sonraki bakım vakti {nextMaintenanceTime}dır.

Hacizdeki Ücretler

Çoğu ücretler anında ödendiği halde {vestingThreshold} miktarını aşan bazı ücretler (üyeliğinizi yükseltmek için yada paralı hesap adı kaydı yaptırmak için ödenen) toplam {vestingPeriod} gün hacizde tutulmak zorundadır.

'},89215:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Aktif {symbol}

{description}
Piyasaya süren {issuer}

Euro (işaret: €; sembol: EUR) Avrupa bölgesindeki katılımcı ülkelerin resmi para birimidir.

'},86978:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

Aktif {symbol}

{description}
Piyasaya süren {issuer}

Amerikan Doları (işeret: $; sembol: USD $) ABD'nin resmi para birimidir.

'},55912:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Piyasa Sabitli Aktifler (MPA-Market Pegged Assets)

Bitcoin'e benzeyen özelliklerde ve avantajlarda, amerikan Doları gibi tüm dünya tarafından benimsenmiş bir parayla pariteyi koruyabilen bir kripto-paranın sansürsüz ve kolay bir ticaret için çok faydası vardır. Bu, BitShares'in piyasaya sabitli varlıkları (MPA) sayesinde mümkün olur. Bunlar, serbestçe alıp-satılabilen yeni bir tür dijital varlıklardır. Bunların değerleri, fark-kontratı (CFD) yöntemiyle dayandıkları geleneksel varlıkların değerlerini takip etmek üzere dizayn edilmişlerdir.

AkıllıPara (eşanlamı MPA) , değerinin daima 100% yada daha fazlası BitShares'in ana para birimi (BTS) ile desteklenen bir kripto-paradır. Bu AkıllıParalar herhangi bir zamanda bir fark-kontratı (CFD) içinde teminat olarak BTS'ye dönüştürülebilirler .

Teminatla desteklenen FK'nı andırmalarına rağmen PSV'leri nadir yapan şey onların karşı taraf riskinden muaf olmalarıdır. Bunun mümkün olması için teminatı güvence altına alma ve hesap görme işlemleri ağın kendi sorumluluğuna bırakılmıştır
(yazılım protokolüyle uygulanarak) . Bu konunun detayları aşağıda anlatılacaktır.

Bu, piyasaya-sabitli-varlıkların mevcut bir alt kümesidir:

  • BitUSD
  • BitCNY
  • BitEUR
  • BitGOLD
  • ...
'},8862:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Özelleştirilmiş BitAktifler (Privatized BitAssets)

Özelleştirilmiş BitAktifler piyasa-sabitli-aktif çıkarmak isteyen fakat fiyatların tanıklar tarafından duyurulmasını istemeyen müşterilere hitab eder. Onun yerine, süren kimse özelleştirilmiş bitaktif yaratırken o aktif için özel olarak fiyatlarını duyurmaya müsadesi olan bir takım yetkililer belirleyebilir. Süren kimse aktifle ilgili başka her türlü ücreti belirleyebilir ve kar elde edebilir.

Bu özellik gerçek-zamanlı fiyatlara erişimi olan ve teşhir ve hacim arttırmak isteyen borsalar ve kuruluşlar için ayrıca ilgi çekicidir.

'},17600:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Kullanıcı Sürümü Aktifler (UIA-User Issued Assets)

Daha önce bahsedilen piyasaya sabitli varlıkların yanısıra , BitShares bireylere ve şirketlere, hayal edebilecekleri herşeye ait kendi kuponlarını yaratma ve piyasaya sürme imkanı verir. Kullanıcı Sürümü Varlıklar (UIA) için potansiyel kullanım alanları sayısızdır. Bir tarafta UIA'ler müşterilerin telefonlarına konser girişlerinde kullanabilecekleri basit organizasyon biletleri olarak yüklenebilirler. Diğer tarafta ise kitle fonlaması, mülkiyet takibi , ya da hisse şeklinde şirket özsermayesi satışında bile kullanılabilirler.

Tabiiki, her tür kupona uygulanan kurallar çeşitlidir ve her yetki bölgesinde farklılık gösterir. Dolayısıyla BitShares, varlıklar piyasaya sürülürken , piyasaya süren kişinin geçerli kanunlar çerçevesinde korunmasına yardımcı olacak araçlarla gelir -kanunların böyle varlıklara zaten izin verdiğini farz ediyoruz.

'},71792:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

Bir aktif yaratmak için şunlar gerekli :

  • Geçerli bir varlık sembolü
  • 0 (sıfır)dan büyük maksimum arz

Hassasiyet , varlığın destekleyeceği ondalık hane sayısını belirler.

Varlık yaratmanın masraf ücreti öncelikle varlığa ait sembolün uzunluğuna bağlıdır.

Ücretlerin nekadarını tutacağınızı da piyasa ücreti ile yüzde olarak belirtebilirsiniz.

"},49292:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# lifetime]

Ücretlerde {feesCashback}% iade alın.

Ömür-boyu Üyeler ödedikleri her ücretten {feesCashback}% iade alırlar ve kaydını yaptıkları ya da ağa yönlendirdikleri kullanıcılardan gelir elde ederler. Ömür-boyu ücret sadece {price}dir.

[# annual]

Eğer ömür-boyu üyelik fazla geliyorsa, {price} miktarında bir ücret karşılığında bir
yıllığına abone olarak gelecek yıl için {feesCashback}% para iadesi alabilirsiniz.

[# fee-division]

Ücret Paylaşımı

{account} adlı hesap her işlem ücreti ödediğinde, o ücret birçok farklı hesaplar arasında paylaştırılır. Ağımız {networkFee}% pay alırken, {account} adlı hesabı getiren Ömür-boyu Üye de {lifetimeFee}% pay alır.

{account} adlı hesabın kayıt işlem ücretini ödeyen hesabın adı kayıtçı_dır. Kayıtçı geri kalan {referrerTotalFee}% miktarı kendileri ve _Bağlı Getirici arasında nasıl pay edileceğini kendi belirler.

{account} adlı hesabın kayıtçısı toplam ücretin {referrerFee}% kadarki kısmını Bağlı Getirici yle paylaşmayı ve {registrarFee}% kadarki kısmını kendine bırakmayı tercih etti.

Bekleyen Ücretler

{account} adlı hesabın ödediği ücretler her bakım periodu ({maintenanceInterval} seconds) nda sadece ağ, getiriciler ve kayıtçılar arasında paylaştırılır. Bir sonraki bakım vakti {nextMaintenanceTime}dır.

Hacizdeki Ücretler

Çoğu ücretler anında ödendiği halde {vestingThreshold} miktarını aşan bazı ücretler (üyeliğinizi yükseltmek için yada paralı hesap adı kaydı yaptırmak için ödenen) toplam {vestingPeriod} gün hacizde tutulmak zorundadır.

'},26426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Etkin izinler, bu hesaptaki fonları harcamaya izni olan hesapları belirler.

Etkin izinler kolay bir şekilde çok-imzalı bir düzen kurmak için kullanılabilirler, daha fazla bilgi için izinler bölümüne bakabilirsiniz.

'},538:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

Memo anahtarı, memoların size ulaştığı yerdir, memoları deşifre edebilmeniz için açık anahtara ait özel anahtarın yönetimine sahip olmanız gerekir.

Bir açık/özel anahtar çifti kullanarak harcama yetkisi olmadan üçüncü şahıslara memolarınıza salt-okuma erişimi sağlayabilirsiniz.

"},14261:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Sahip izinleri hesap üzerinde kimin kontrolü olduğunu belirler. Sahipler tüm anahtarların yenilerini belirleyebilir ve herhangi hesap ayarını değiştirebilir.

Daha fazla bilgi için izinler .

'},60705:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Oy Kullanma

BitShares'de oy kullanmak ağın hem gelişmesi hem de güvenliği için önemlidir. Eğer dilerseniz oy kullanma hakkınızı sizin için oy kullanabilecek bir vekile devredebilirsiniz. Eğer vekil tayin ederseniz, manuel oylama etkisiz hale getirilecektir.

'},86744:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Kurul üyeleri blok zincirine ait ücretler, blok süreleri ve diğer bir çok şey gibi dinamik parametrelerin değiştirilmesini teklif edebilirler. BitShares'in nasıl işlediğine dair derin bilgi gerektiren büyük bir sorumluluk pozisyonudur.

'},72137:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Bir vekil adınıza oy kullanımını yönetir. BitShares forumunda vekil olarak görev almaya gnüllü kişileri bulabilirsiniz BitSharestalk.

'},83455:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Taniklar BitShares'in blok üreticileridirler. İşlemlerin geçerliliklerini teyit eder ve ağın güvenliğini sağlarlar. Dilediğiniz kadar tanığa oy verebilirsiniz, hepsi aynı miktarda alır. Tanık tekliflerini buradan takip edebilirsiniz: BitSharestalk - Stakeholder Proposals Board.

'},83904:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

İşçiler BitShares'e özgü bir kavramdır. İşçiler, blok zincirinin kendisinden aldıkları maaş karşılığında hizmet sağlayan tekliflerdir. Teklifin amacını açıklayan bir web veya forum bağlantısı teklifin içine dahil edilmelidir, teklifleri burada görebilirsiniz : BitSharestalk - Stakeholder Proposals Board.

'},20254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Bu ileti arzu ettiğiniz borç ve teminatı belirlemenizi sağlar.

Eğer {debt} borç azaltılırsa {borrower} hesabından düşürülecektir. Eğer {debt} borç artarsa yeterli {collateral} teminat bulunması kaydıyla {borrower} hesabına yatırılacaktır.

Asgari idame teminatı muhafaza edildiği sürece teminat eklenebilir yada eksiltilebilir.

Devamını oku & Açıklama Sihirbazı'nı kontrol et

'},45713:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# receive]

Kullanıcı adınız

Bitshares hesabınıza bir başkasından ya da bir borsadan BTS gönderimi için, göndericiye kullanıcı adınızı vermeniz yeterlidir. BTS'ler doğrudan kullanıcı adı belirtilerek gönderilir:

[# deposit-short]

Kripto para yatır/çek

Başka blokzincirlerinden Bitshares hesabınıza (ör. BTC gibi) "coin" aktarmak için ya da TL, dolar gibi fiat para birimleriyle Bitshares'de işlem yapabilmek için lütfen aşağıdan bir transfer hizmet sağlayıcısı seçin.

'},14327:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Ücretler

BitShares ekosistemi içerisinde her işleme tahsis edilmiş bireysel bir ücret vardır. Bu ücretler değişime tabidirler. Bununla birlikte, bunlar sadece hissedarların oylarıyla belirlenirler, böylece BitShares'in esas varlığı olan BTS hissedarlarının her biri ücretlerin ne olacağı konusunda söz sahibi olur. Eğer hissedarlar belli bir ücretin düşürülmesi konusunda fikir birliği sağlarlarsa o ücret blok zinciri tarafından otomatik olarak düşürülür. Blok zinciri parametrelerinin düzenlemesiyle ilgili teklifler kurul üyeleri tarafından yapılırlar. Bu üyeler hissedarlar tarafından oy kullanılarak seçilirler ve herhangi bir durumda, esneklik ve reaksiyon kabiliyetini arttırırlar.

'},63604:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# connection-error] Ful noda websocket bağlantısı kuramadık.

Olası sebepler: TODO

  • sebep #1
  • sebep #2
"},93416:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Giriş

Merkezsiz borsa (kısaca DEX) , BitShares ekosisteminde alıp-satılan dijital mamüllerin doğrudan takas edilebilmelerini sağlar.

Merkezsiz bir borsanın , bariz geleneksel borsalardan bir takım avantajları vardır. Bunlardan kısaca bahsetmek istiyoruz. BitShares DEX'de hepsi mevcut olmasina rağmen o özellikleri tamamen ya da kısmen layığı ile kullanabilmek okuyucuya ve müşteriye kalmıştır.

  • Güçler Ayrılığı : IOU 'lari piyasaya sürme ve sipariş defterlerine işleme görevinden aynı kimsenin sorumlu olmasını gerektirecek bir sebep yoktur. BitShares'de işlem emirlerin eşleştirilmesi işi protokol tarafından yürütülür, protokolün işlemlere konu olan aktiflerle ilgili bilgisi yoktur, sadece işlem görür.
  • Genel Birleşik Emir/Sipariş Defteri : BitShares evrensel olduğu için , internet erişimi olan herkes DEX'i alım-satım için kullanabilir. Bu, dünyanın likiditesini , merkezsiz/dağıtık alım-satım için tek bir emir defterine getirir.
  • Neredeyse Herşeyi Alıp-Satabilirsiniz : BitShares DEX varlığın muhteviyatını bilmez , dolayısı ile her türlü eşleşme ticareti yapılabilir. GÜMÜŞ:ALTIN gibi bazı eşleşmeler az likidite sağlarken FOREX ticareti için USD:EUR gibi eşleşmeler çok büyük hacimli işlem görür.
  • Limit Yok : BitShares protokolünün sizin ticaret deneyiminizi sınırlaması mümkün değildir.
  • Merkezsiz : DEX (merkezsiz borsa) tüm dünyaya dağıtıktır. Bölece tek kırılma noktası olmadığı gibi bu BitShares borsasının ticaret için 7/24 açık olduğu anlamına gelir, çünkü her zaman dünyada bir yerde vakit mutlaka gündüzdür.
  • Güvenli : Fonlarınız ve ticari işlemleriniz endüstriyel seviyedeki eliptik-eğri kriptografisiyle tamamen güvence altındadır. Kimse siz izin vermedikçe fonlarınıza erişemez. Güvenliği daha da güçlendirmek amacıyla müşterilerimize emanet-escrow ve çoklu- imza planları düzenlemelerine imkan tanıyoruz.
  • Hızlı : Diğer merkezsiz ağların tersine BitShares DEX gerçek-zamanlı ticarete imkan tanır , sadece ışık hızı ve gezegenin büyüklüğü ile sınırlıdır.
  • Kanıtlanabilir Emir Eşleştirme Algoritması : BitShares DEX i nadir kılan şeylerden biri de ispatlanabilir emir eşleştirme algoritmasıdır. Verilen bir takım işlem-emri için her zaman bu emirlerin kanıtlanabilir şekilde eşleştirilmiş olduğunu teyit edebilirsiniz.
  • Teminata Bağlanmış : BitShares'in en büyük özelliklerinden biri de bitUSD, bitEUR, bitCNY gibi akıllıparalardır. Kolaylık olsun diye bu varlıklar cüzdan içerisinde USD,EUR,CNY diye kısaltılmışlardır. Bu dijital kuponlar dayandıkları fiziksel varlıkla aynı değeri temsil ederler. Yani bu cüzdandaki 1 USD nin değeri 1 dolardır ve o şekilde ödenebilir. Bu kuponların hepsinin karşılığı olarak teminat olarak kitli tutulan ve anlık fiyatında hesap görümü için mevcut olabilen, BitShares'in şirket hisseleri (BTS) vardır.
'},16693:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitAktif Kısa Satışı

BTS'le temasınızı arttırmak ve USD,EUR,GOLD gibi BitAktiflere likidite sağlamak için bu BitAktifleri ağdan ödünç alabilir ve kısa satabilirsiniz. Prosedürü burada kısaca anlatacağız.

Ödünç Alma

BitShares ağının herhangi bir miktarda BitVarlığı piyasaya sürmesi ve yeterli teminat karşılığında katılımcılara borç vermesi mümkündür.

  • uzlaşma fiyatı : 1 BTS in dış borsalarda alıp-satılırkenki fiyatı.
  • idame teminat oranı (MCR) : zorunlu minimum teminat oranı
  • maksimum kısa sıkıştırma oranı (MSQR) : Tanıklar tarafından kısaların kısa sıkıştırmalara karşı nereye kadar korunacaklarını belirleyen oran.
  • kısa sıkıştırmadan korunma (SQP) : Marjin pozisyonuna ödettirilebilecek en yüksek
  • çağrı fiyatı (cp): Kısa/ödünç pozisyonlarının marjin çağrıldığı fiyat.

Marjin Çağrısı ( Teminat Tamamlama Çağrısı)

BitShares ağı , ödünç aldığı bitVarlığın karşılığında yeterince teminatı bulunmayan pozisyonları teminatı tamamlamaları için çağırabilir. Marjin çağrısı , en yüksek alış fiyat teklifinin çağrı fiyatından az , ve SQP dan büyük olduğu herhangi bir anda meydana gelebilir. Marjin pozisyonu, teminatı satın almaya verilen en yüksek teklifin çağrı fiyatından(x/BTS) daha düşük olduğu anda teminatı zorla sattırılır.

SQP =  uzlaşma fiyatı / MSQR\nçağrı fiyatı = BORÇ / TEMİNAT * MCR

Marjin çağrısı teminatı alır , ödünç alınmış bitaktif hisselerinin SQP ya kadarki kısmını piyasa fiyatından satın alır ve pozisyonu kapar. Teminattan geri kalan BTS müşteriye iade edilir.

Hesap görme

Her bitaktif sahibi istediği zaman adil bir fiyattan hesap görmeyi talep edebilir. Hesap görme işlemi, ödünç/kısa pozisyonlarını en düşük teminat oranıyla kapar ve hesap görmek üzere teminatı satar.

Satış

BitAktif ödünç alındıktan sonra alakalı piyasalardan herhangi birinde herhangi bir fiyattan satılabilir . Bu aşamayla , kısa-satış tamamlanmış olur ve o bitaktif da kısa olursunuz.

Teminat Oranını Güncellemek

Ödünç/kısa pozisyonu tutan kişi , herhangi bir zamanda , piyasa davranışını esnek bir biçimde ayarlamak için teminat oranını değiştirebilir. Eğer teminat oranı arttırılırsa , ilave miktarda BTS teminat olarak kilit altına alınır, teminat oranının düşürülmesi ise tekabül eden miktarda BitVarlığın ağa geri ödenmesini gerektirir.

Kapamak

Ödünç/kısa pozisyonunu kapamak için , ilk önce kişinin , BitShares ağına teslim etmek üzere o Bitvarlığın ödünç alınan miktarda elinde bulunması gerekir. Ondan sonra , BitAktifler arz stoğundan düşer ve teminat serbest bırakılıp sahibine geri verilir.

'},92781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Alış-Satış

Bu sayfa DEX (dağıtık borsa)de kullanılan terimlerin nasıl yorumlanması gerektiği ve al-sat eşlerinin nasıl temsil edildiğine dair hızlı bir giriştir.

Çiftler/Eşler

BitShares'de , neredeyse her aktif tüm diğer aktiflerle alınıp-satılabilirler. İki varlık seçmiş olduğumuz vakit , biz genelde piyasa çifti diye hitab ediyoruz. Mesela , USD'yi EUR'a karşı USD:EUR çiftinde takas edebiliriz.

Tutarlı olmak adına , biz temel ve kota genel terimlerini kullanacağız , öyleki çiftler şöyle temsil edileceklerdir

*kota* : *temel*

ve mesela temel USD olursa ve kota da EUR olursa biz bunu EUR:USD çifti olarak belirteceğiz

Sipariş Defterleri

Sipariş defteri ask (istenilen satış fiyatı) ve bid (verilen alış teklif fiyatı) yanlarından oluşur. Alış-satış çiftlerin tercihen bir yönü olmadığından ters çevirilebilirler, aşağıdaki tabloda ask/bid ve her iki tarafın ilgili al/sat operasyonlarına genel bakış verilmiştir:

Taraf Sat Al
Ask kota temel
Bid temel kota
---------- ------- -------

USD:EUR çiftinin bid tarafında olan EUR:USD çiftinin ask tarafında olacaktır. Tabiiki fiyatlar kesir olarak temsil edileceğinden sonuçta her iki çift aynı olacaktır.

Alış-Satış

Al-sat emri vermek için , formun taraflarından birini doldurmak gereklidir, ya ask, yada bid tarafı ( al yada sat tarafı) . Satmak/almak için bir fiyat ve bir miktar belirlemeniz gerekecektir. Bu emrin maliyeti otomatik olarak hesaplanacaktır. Bu emrin verilmesi için ilave ücret gerekecektir.

Emir icra edildiğinde (biri teklifinizi sattığında/aldığında) , hesabınıza söz konusu varlıktan yatırılacaktır.

Yerine getirilmemiş emirler herhangi bir zamanda iptal edilebilirler.

'},71118:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Terimler

İndexe Geri Git

'},57357:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Graphene Yardım

BitShares 2.0 , Cryptonomex tarafından inşa edilmiş olan Graphene teknolojisine dayanan bir Finansal-Akıllı-Kontratlar platformudur. Graphene'i gerçek-zamanlı blokzincirleri için bir araç takımı yada bir teknoloji olarak da görebilirsiniz.

Bu yardım bölümü özet bir genel bakış sağlar ve bu uygulamanın en temel kavramlarını tanımlar.

Takdim

Hesaplar

Aktifler

Merkezsiz/Dağıtık Borsa


Terimler

'},31901:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Yedeklemer

Çoğu zaman tek bir yedekleme yeterli olsa bile cüzdanınızı düzenli bir şekilde yedeklemeniz önerilir. Bir yedeklemeden geri kurtarma yapabilmek için şifre cümlenize ihtiyacınız olduğunu unutmayın , çünkü yedeklemeler kriptolanmıştır. Dolayısıyla , cüzdanınızı yada şifre cümlenizi kaybederseniz fonlarınıza tekrar erişmeniz imkansız olur.

Yedeklere Cüzdan Yönetim Panelinden ulaşabilirsiniz . (Ayarlar ->Cüzdanlar).

Cüzdan İhracı

Yeni bir yedekleme oluşturmanın en kolay yolu Cüzdan Yönetim Panelinde verilen bağlantıdan cüzdanı dışarı ihrac etmektir. Lütfen yedeklerinizi güvenli bir kaybetmekten, hırsızlıklardan, ve doğal afetlerden koruyunuz.

Beyin-anahtarı (YALNIZCA gelişmiş kullanıcılar )

Eğer cüzdanınızın içine hiç hesap anahtarı aktarmadıysanız , alternatif olarak hesaplarınızı ve fonlarınızı dışarı beyin-anahtarı ihrac ederek yedekleyebilirsiniz. Beyin-anahtarı anahtarlarınızın deterministik yöntemle türetildiği bir kelimeler dizisidir.

Dikkat : Hiyerarşik Yetkililer (SADECE uzman kullanıcılar)

Eğer hiyerarşik yetkiler kullanıyorsanız (hesap ve/yada etkin izinler), sadece anahtarları yedeklemeniz fonlarınıza tekrar erişmenize yeterli olmayabilir! Lütfen hiyerarşik yetkiler konusundaki dokümantasyonları tekrar gözden geçirin.

'},58715:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitShares

Daha önce bahsedildiği gibi , Graphene sadece bir teknolojiyi yada protokolü tarif etmektedir. Fakat fiilen bir ekosisteme dönüşmesi BitShares gibi gerçek bir blokzinciri ile birlikte mümkün olur.

BitShares , blokzinciri yeniliğini , hizmetlerini internet kullanarak sunan tüm endüstrilere yaymayı ummaktadır. Bankacılık, hisse senedi borsaları, piyangolar,seçimler, müzik, mezat veya birçok diğerleri olsun , dijital umumi bir defteri-kebir, dağıtık-otonom-şirketlerin (DAC- distributed autonomous companies) yaratılabilmesine imkan tanır. Bu DAC lar geleneksel merkeziyetçi rakiplerinin sunduklarından daha kaliteli hizmetleri çok daha ucuza sunarlar. DACların ortaya çıkışı , organizasyon yapılarında yeni bir paradigma teşkil etmektedir. Artık şirketler, bozulamayan iş kuralları altında ve insan yönetimi olmadan işleyebilirler. Bu kurallar halka açık şekilde denetlenilebilen açık kaynak bir yazılımın içine kodlanmıştır ve şirketin hissedarlarının bilgisayarlarına dağıtılmıştır. Bu şekilde şirketin keyfekeder manüpülelerden korunması daha kolay olur.

Bitcoin para için ne yaptıysa BitShares'de işletmeler için onu yapar. Bunu , evrensel, şeffaf, güvenilir, verimli ve karlı şirketler yaratmak için dağıtık mutabakat teknolojisini kullanarak yapar.

Bu Cüzdan

Şu an bu tarayıcı penceresinde açık olan cüzdanla BitShares ağının tüm işlevlerine erişebilirsiniz. BitAktifler, Kullanıcı-Sürümü-Varlıklar ve dağıtık borsa.

'},87597:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Blokzinciri

Graphene de çoğu kripto para gibi , transferler ve piyasa hareketleriyle ilgili katılımcıları haberdar etmek için blokzincirinden faydalanır. Her blok bir önceki bloğu kaynak olarak gösterdiği için ağda daha önceden gerçekleşmiş tüm işlemleri içeren bir bloklar zinciri (blokzinciri) elde ederiz . Blokzinciri açık ve erişilebilir ve denetlenebilir bir defteri-kebir olduğundan , herkes transferlere, piyasa emirlerine ve sipariş defterlerine yakından bakabilir ve teyit edebilir.

Tabii ki, bu web cüzdanı denetlemelerinize yardımcı olması için size bir blok araştırıcısı da sunmaktadır.

Mutabakat Mekanizması

Hangi anda ve kimin blok üretmeye izni olduğu , Delegated Proof of Stake (Yetkilendirilmiş-vekil-pay-ispatı) denilen mutabakat mekanizmasıyla belirlenir. Esasında, BitShares hissedarları (elinde BTS kuponu olan) tercih ettikleri blok üreticilerine blokzincirinde oy verebilirler. En çok oyu alan o tanıkların blokları üretmelerine izin verilir.

İşlemler

Graphene blokzinciri teknolojisi çeşitli işlem türleri sunmaktadır. Kullanıcılar aralarında aktiif transferleri yapabildikleri gibi dağıtık borsayla ilişkili işlemler de vardır. Bu işlem türlerinin bir çoğu kendini izah eden fişlerle etiketlenmişlerdir, diğer işlemler ise şirketin iç işleriyle alakalı daha çok bilgi gerektirir.

'},35488:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

#Kurul

Kurul, hissedarlar tarafından onaylanan kişilerden oluşan ve bazı ticari parametreleri belirleyen bir gruptur. Bu parametrelerden bazıları şunlardır :

  • işlem ve alım-satım ücretleri
  • blok büyüklüğü ve blok aralıkları gibi blokzinciri parametreleri
  • nakit iade oranları ve vesting periodları gibi parametreleri
      gibi.
"},45677:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Cüzdan

Şu ana kadar farketmiş olduğunuz gibi bu uygulama bir web uygulamasıdır ve tarayacı içerisinde çalışır. Ekosistemin geri kalanına geçit görevi gören , ağda bulunan güvenilir bir düğüm(node) bağlantı kurar. test

Cüzdan Güvenliği

İçiniz rahat olsun , sunucularımızın fonlarınıza erişimi mümkün değildir, çünkü özel anahtarlarınızın hiçbiri asla tarayıcınızdan ayrılmazlar. Onun yerine , parola cümlenizle kriptolanmış vaziyette yerel tarayıcınızın veritabanında saklı tutulurlar. O yüzden, bilgisayar arızaları ve tarayıcı çökmelerine karşı mutlaka uygun bir Backup yapmayı ihmal etmeyin.

Cüzdan Yönetimi

Dahası , bu kullanıcı arayüzü , birden çok sayıda ve içerisinde muhtemel birçok hesap ve bunlara ait fonlar bulunduran ayrı cüzdanları muhafaza edebilir ve bunlara erişebilir. Ayarlar->Cüzdanlar'dan ekleme, yedekleme yapabilir ve mevcut cüzdanlar arasında geçiş yapabilirsiniz.

'},20315:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Tanık

Tanıklar yeni bloklar inşa etmek suretiyle blokzincirine çalışan kimselerdir. Her tanık, hissedarlar tarafından onaylanır ve tasdikli işlemlerden bloklar inşaa eder ve imzalar. Ağın içinde gerçekleşen her işlem en sonunda tüm tanıklar tarafından tasdik edilmek zorundadır.

Mutabakat Mekanizması

Kimin tam olarak hangi anda blok ürettiği , Delegated Proof of Stake (Yetkilendirilmiş-vekil-pay-ispatı) denilen mutabakat mekanizmasıyla belirlenir. Esasında, BitShares hissedarları (elinde BTS kuponu olan) tercih edilen blok üreticilerine blokzincirinde oy verebilirler. O tanıklar adı verilen, en çok oyu alan kimselerin blokları üretmelerine müsade edilir.

'},1018:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Emekçiler

Emekçiler maaş karşılığında hizmet veren tekliflerdir, maaşlarını blok zincirinden alırlar. Bir emekçi teklifi en azından aşağıdaki bilgileri kapsamalıdır :

  • Bir başlangıç ve bitiş tarihi
  • Gündelik bir ücret
  • Maksimum bir toplam maaş

Emekçi teklifinin daha detaylı anlatıldığı bir web sayfasına da bağlantı sunmalıdır.

Emekçi tekliflerine verilen oylar pozitif yada negatif olabilirler, yani beğenmediğiniz bir teklife red oyu kullanabilirsiniz.

Emekçi bütçesi mekanizması

Emekçilerin ücretleri, ilk-gelen ilk-çalışır prensibiyle günlük sabit bir bütçeden para tükenene kadar ödenir. Nasıl işlediğini görmek için şu örneğe bakın:

  • Tüm Emekçiler için günlük toplam bütçe 400 bin BTS olsun
  • Her biri günlük 100k BTS talep eden toplam oyların pozitif olduğu 5 emekçi teklifi

Oyların çoğuna sahip 4 emekçinin her birine günlük 100 bin BTS ödenecek, fakat ödemeler tamamlandığında emekçi bütçesi tükenmiş olacak. O yüzden 5. emekçiye hiç bir şey ödenmeyecek.

'},18405:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

İçindekiler

'},39356:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

账户

或许你已经注意到,本区块链技术要求你注册一个账户名。这带来很多好处:这不仅增强了系统的可扩展性,同时我们可以将身份标示与交易授权签名分开。事实上,拥有一个账户名和能够花费它的资金是相互独立的。而且,这两种权利 (我们称之为权限)能够分散赋予任意复杂的人群关系中。我们称之为职权实体你可通过分配权重和设定 门槛阀值来实现。

'},99016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

会员级别

BitShares 系统中,用户账户分为3个种类。我们运行用户升级账户到类似VIP的会员级别,享受费率折扣以及其他专属特性。

非会员(普通账户)

一个非会员账户,也就是一个普通账户

终身会员

终身会员账户可以从自己支付的各种手续费中获得一定比例的返现奖励,并有资格加入引荐计划,通过引荐或注册用户获得引荐奖励。升级到终身会员要求支付一笔一次性的升级费用,具体金额由理事会成员通过投票设定和调整。

手续费分配

每次你推荐的用户支付手续费时,该手续费将分配给多个不同账户。网络、推荐人都将获得一部分分成。

注册人是账户注册时代其支付注册费的账户。注册人账户可自行决定剩余的手续费如何在它自己及它的市场合作方之间分配。

待结费用

手续费每个维护周期在网络、推荐人和注册人之间结算一次。尚未结算的手续费称为待结费用

待解冻金额

大部分获取手续费的利益账户可立即使用资金,但金额超过一定数量的费用(比如支付升级终身会员的手续费、注册高级账户名的手续费等)则需要暂时冻结,并在一段时间内线性解冻释放。

'},26387:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

权限

在BitShares (比特股)中,每一个账户的权限可分为

  • 活跃权限: 控制资金
  • 账户权限: 控制账户

两者都可以通过钱包账户页面中权限标签进行设定。设定授权的职权实体 (详见下文)以及分配相应的权重。只有高于门槛阀值权重的职权实体才能签署有效的交易。

授权账户

在比特股系统中,一个职权实体通过一个或多个实体进行操作授权,比如转账或者交易。

一个职权实体由一个或多个账户名加权重组合构成。

参与签名的一个或多个实体的权重之和必须大于门槛阀值才能进行签署有效的交易动作。

示例

现在让我们讨论几个例子来更好的理解这些术语以及使用场景。假设我们创建了一个新的账户,他的活跃权限如下文所述。请注意,同样的模式也适用于账户权限。

(扁平结构) 多重签名

一个扁平结构的多重签名由M方实体参与,其中N个实体必须进行签名以使交易有效。现在,在比特股系统中,我们使用权重门槛阀值来代替MN。我们可以实现相同的功能,但是更加灵活。

假设Alice,Bob,Charlie和Dennis管理一个共同基金。我们希望只要有2个人同意,我们就能构建一个有效的交易。也就是2-of-4 (N-of-M)模式,这个结构如下:

账户名 权重
Alice 33%
Bob 33%
Charlie 33%
Dennis 33%
---------- ------
门槛阀值: 51%

这4个成员每人都有33%的权重,但是门槛阀值设定在50%。这样,至少需要2名成员同意才能获得多余门槛阀值的权重以签署有效交易。

同理,要构建 3-of-4 结构,我们可以降低每个成员的权重值到 17%,或者增加门槛阀值到 99%。

(扁平结构) 灵活的多重签名

通过门槛阀值和权重,现在我们管理资金时拥有了更多的灵活性,更准确的说,我们拥有了更多的控制权。比如,我们可以分配不同的权重到不同的成员。假设Alice希望通过多重签名机制来提高资金安全性防范偷窃,但又不想给与她的朋友们过多的控制权,那么,我们可以设定这样的职权实体分布:

账户名 权重
Alice 49%
Bob 25%
Charlie 25%
Dennis 10%
---------- ------
门槛阀值: 51%

这样,Alice只需要任何一个朋友协助就能使用资金,或者其他3个朋友必须全部同意才能使用资金。

多层次灵活的多重签名

我们再来看一下一种简单的企业常用的多层级组织架构。这个公司有一个首席财务官,有多个部门向其汇报,如Treasurer, Controller, Tax Manager, Accounting等。公司的首席执行官也要求拥有支付权。我们可以这样设计职权实体结构:

账户名 权重
CEO.COMPANY 51%
CFO.COMPANY 51%
------------ ------
门槛阀值: 51%

而 CEO.COMPANY 和 CFO.COMPANY 则拥有各自的职权实体。比如 CFO.COMPANY 账户可设置如下:

CFO.COMPANY 权重
Chief.COMPANY 51%
Treasurer.COMPANY 33%
Controller.COMPANY 33%
Tax Manager.COMPANY 10%
Accounting.COMPANY 10%
------------------- ------
门槛阀值: 51%

这个设计允许:

  • 首席执行官使用资金
  • 首席财务官使用资金
  • Treasurer连同Controller一起可以使用资金
  • Controller或者Treasurer连同Tax Manager或者Accounting可以使用资金

这样,通过设计构建灵活的职权实体,从而拥有任意层级的结构,将满足绝大多数企业使用场景。

'},35722:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

资产 {symbol}

{description}
发行人 {issuer}

欧元 (标识: €; 符号: EUR) 是欧元区参与国的官方货币。

'},55854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# summary]

资产 {symbol}

{description}
发行人 {issuer}

美元 (标识: $; 符号: USD) 是美利坚合众国的官方货币。

'},16504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

市场锚定资产

一种加密数字货币,拥有类似比特币的属性和优点,同时能保持价格与对应的全球接受的货币同步(比如美元)。具有很强的便利性和实用性,对管制免疫。BitShares的市场锚定资产(MPA)可以实现这样的目的。市场锚定资产是一种新型的可自由交易的数字资产,通过差价合约(CFD)机制,它的价值能够追踪传统的对应资产的价值。

SmartCoin (市场锚定资产的另一种叫法)是一种数字货币,它的价值总是有100%或更多价值的比特股核心货币(BTS)来支撑。这些BTS在差价合约(CFD)中,作为抵押物存在,并在任何时间可被赎回。

市场锚定资产与众不同的一个特点在于,尽管它使用了有抵押的价差合约,它却能免于对手盘风险。这是由网络本身(软件协议)通过确保抵押充足,并在特定情况下进行强制清算的机制来实现的。

以下是部分已经可用的市场锚定资产

  • BitUSD (比特美元)
  • BitCNY (比特人民币)
  • BitEUR (比特欧元)
  • BitGOLD (比特黄金)
  • ...
'},3910:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

私有比特资产

通过私有比特资产,某些用户可以发行市场锚地资产,然后并不依赖见证人发布的喂价信息。相反的,在创建私有比特资产时,发行人设定一组授权账号来发布喂价信息。发行人可以设置与该资产相关的各种费率参数。

这个特性主要适用于一些中心化交易所和机构,它们往往能够获得实时的价格信息,并以此来增加交易量。

'},95276:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

用户发行的资产

除了之前提到的 市场锚定资产 外,BitShares允许个人或公司用户创建和发行各种自定义资产凭证(UIA)。相关的应用场景数不胜数。比如,UIA可被用来代替简单的活动门票,存入合格用户的手机钱包中,在进入活动现场时进行实时验证。同样,UIA可被用来进行众筹、所有权追踪,甚至是代表公司的股权。

显然,适用于不同凭证使用场景的法律法规可能天差地别,尤其是在不同国家时。所以,BitShares提供了一组工具来帮助发行人来合规发行和管理UIA。

'},52419:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

创建自定义资产需要以下信息:

  • 资产符号
  • 最大供给量

精度决定了资产支持的小数点后的位数。

资产创建需要支付的费用取决于资产符号的字符长度。

你可以设定交易手续费率来决定用户交易时需要向你支付多少比例的费用。

"},85472:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# lifetime]

可获得 {feesCashback}% 手续费返现奖励

终身会员可获得自己支付的每笔交易手续费的{feesCashback}%的现金返现,并自动作为推荐人加入引荐计划,通过引荐用户注册获得推荐奖励。升级到终身会员只需要花费 {price}。

[# annual]

如果你暂时不想成为终身会员,那么你还可以选择升级到年度会员,可获得 {feesCashback}% 的手续费返现。升级为年度会员,每年只需花费 {price}。

[# fee-division]

手续费分配

每次 {account} 支付交易手续费时,该手续费将分配给多个不同账户。网络将收取 {networkFee}%,引荐 {account} 的推荐人账户将获得 {lifetimeFee}%。

注册人账户 是在 {account} 注册时代其支付注册费的账户。注册人账户可自行决定剩余的 {referrerTotalFee}% 手续费如何在它自己及它的 合作推荐人 之间分配。

{account}的注册人账户决定与它的_合作推荐人_分享{referrerFee}%手续费,自己保留{registrarFee}%。

待结费用

{account} 支付的手续费每个维护周期 ({maintenanceInterval} 秒)在网络、推荐人和注册人之间结算一次。下一个维护时间在 {nextMaintenanceTime}。

待解冻金额

大部分获取手续费的利益账户可立即使用资金,但金额超过{vestingThreshold}的费用(比如支付升级终身会员的手续费、注册高级账户名的手续费等)则需要暂时冻结,并在{vestingPeriod}天内线性解冻释放。

'},13430:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

资金权限用来规定 谁(账户名或公钥)可以控制本账户资金用于交易及转账。

这种设置可以用来方便的构建<多重签名>机制,更多信息请参见 权限

'},30489:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

交易附带的备注信息是使用备注公钥加密后传输的。为了解密备注信息,需要拥有备注公钥对应的私钥。

备注信息由单独<公/私钥对>进行管理,如果账户资金权限与备注权限不一致或者此账户不拥有资金权限,你才可以安全的将此账户备注信息的只读权限交由第三方,这样才不会导致资金控制权外泄。

警告:一般情况下,账户的资金权限与备注权限的<公/私钥对>相同,请不要轻易泄露备注权限的私钥,如需更改为不一致,请参考(账号登录模式)处说明。

"},86249:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

账户权限设定谁可以控制本账户。控制人(账户名或公钥)可修改账户相关的各种设置,包括权限设置。

参见 权限 了解更多信息。

'},66678:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

投票

在BitShares系统中,投票是非常重要的一项特性,不仅事关网络安全,同时也能影响系统的后续开发方向。如果你愿意的话,你可以将你的投票权交由代理投票账户执行。如果你设定了代理投票账户,则手动投票将相应关闭。

'},92976:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

理事会成员 可以提议修改区块链的动态参数,比如手续费,区块间隔时间以及其他很多参数。这是一个需要对BitShares系统如何运作有很深理解,需要有很强责任感的职位。

'},24198:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

代理投票账户代表你行使投票权力。你可以在BitSharestalk论坛上找到一些申请成为投票代理人的提案。

'},33829:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

见证人 是BitShares系统中区块的生产者。他们验证交易数据并维护网络安全。你可以投票选举你信任的人成为见证人。投票时,你选择的候选人将获得你投出的相同票数。见证人的竞选帖可在这里找到BitSharestalk - Stakeholder Proposals Board

'},98689:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

预算项目 是BitShares系统中独有的概念。他们是一些期望通过提供服务来从区块链获得奖金的工作项目提案。一项提案包含一个指向网站或论坛帖子的链接,在其中详细解释了工作项目的介绍。在这里BitSharestalk - Stakeholder Proposals Board可以看到一些提案。

'},59530:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

调整和设置你的债务及抵押物(保证金).

如果调低 {debt} 债务水平,将从 {borrower} 账户中扣除相应 {debt} 归还。 如果调高 {debt} 债务水平,只要 {borrower} 账户持有足够的 {collateral} 可供抵押冻结,新借入的 {debt} 将存入 {borrower} 账户中。

保证金可以增加或减少,只要抵押率超过维持保证金率。更多信息

'},32684:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

[# receive]

获取 BTS

为了从其他人或者交易所获得BTS,你只需要提供你的账户名: {account}

[# deposit-short]

充值/提现 数字资产

如果你要充值或提现资产,无论是法币或是来自其他区块链,你需要使用桥接网关 服务来实现。你可以从下面找到一系列提供服务的服务商:

'},17490:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

手续费率

在BitShares系统中,每一种操作都将花费相应手续费。手续费率可能发生变化。然而,手续费的调整需要获得股东的授权。所以每一位持有BitShares核心资产(BTS)的股东对费率的构成都有话语权。如果股东确信某种手续费的降低将带来好处,并且达成共识,那么该种手续费则由区块链自动进行调低。区块链参数的改变由理事会成员提出动议。这些成员由全体股东投票选举产生,以提高系统灵活性和响应率。

'},680:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

[# connection-error] 无法获取到全节点的 websocket 连接

Possible reasons: TODO

  • reason #1
  • reason #2
"},85354:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

预测市场资产

预测市场资产允许你赞同或者不赞同预测(条件)资产,并可以在你的意见上使用抵押物。
预测市场由发行者在判定日期到期后根据真实世界的结果进行判定并反馈到链上。

预测市场资产在区块链上是一种特殊种类的借贷资产,债务与抵押物总是相等数量(借贷 1:1),强平或者强清无效。
预测市场资产有其及抵押物的活跃市场。
赞同预测意味着你将要买入预测市场资产,不赞同预测意味着你将要借入预测市场资产并将其出售。
市场预测资产的判定结束由强制全局清算完成,全局清算的价格由发行人给出。
在判定结束(全局清算)后,如果预测被证明为真(全局清算价格是 1),预测市场资产持有者会快速的将其强清并得到同等数量的基础抵押物。
在判定结束(全局清算)后,如果预测被确认为错(全局清算价格是 0),债仓所有者将自动获得在头寸中被锁定的全部抵押物。

'},43021:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

DEX去中心化交易所简介

BitShares 去中心化交易所(简称DEX)允许用户在BitShares系统中直接进行数字商品的交易。

去中心化交易所相对于传统的中心化交易所拥有很多优势,文档中对其中一些特性进行简单介绍。BitShares DEX拥有的众多特性,用户可以根据自身需求来选择利用全部或者部分功能。

  • 权力分离: 由同一个实体来发行资产(IOU)和处理订单是不合理,也是不必要的。在BitShares系统中,订单撮合是由网络协议执行,并不关心相关资产的内涵。
  • 全球整合的买卖盘: 全世界任何人只要能访问互联网就能访问BitShares,并使用DEX进行交易。这使得全球的流动性汇聚到同一个去中心化的买卖盘市场。
  • 交易几乎任何标的: BitShares DEX可交易的资产是不受限的。你可以交易任何交易对。尽管有些交易对市场深度可能很低,比如白银:黄金(SILVER:GOLD),而有些交易对则会非常活跃,交易量很大,比如外汇交易美元:欧元(USD:EUR)。
  • 乐趣无限: BitShares协议将无法限制你的交易体验。
  • 去中心化: DEX在全球都是去中心化的。这不仅意味着不存在单点失败,而且BitShares交易所全年无休,7/24开放交易,因为任何时间,在世界上总有一个地方是白天交易时间。
  • 安全性: 你的资金和交易订单都由工业级别的椭圆曲线加密算法进行加密保护。没有人能够在未经你许可的情况下访问这些信息。我们还为用户提供了担保和多重签名机制进一步提高安全性。
  • 快捷: 与其他去中心化网络相比,BitShares DEX可以实现实时交易,速度仅受制于光速和地球的大小。
  • 可自证的订单撮合算法: 使BitShares DEX独一无二的是可自证的订单撮合算法。给定的一组交易订单,你总是可以验证这些订单是被正确的撮合,而不存在欺诈。
  • 抵押担保的智能资产(Smartcoins): BitShares一个最重要的特性是智能资产(smartcoins),比如比特美元(bitUSD)、比特欧元(bitEUR)、比特人民币(bitCNY)等等。为了方便起见,系统中这些资产直接已美元(USD),欧元(EUR),人民币(CNY)表示。这些数字资产代表其对应物理货币的价值。钱包中的1比特美元等价于$1,可自由兑换。这些数字资产由BitShares公司股份(BTS)冻结抵押进行担保,并可按市价进行清算。
'},25432:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

卖空比特资产

为了看多BTS,并且为比特资产,比如USD, EUR, GOLD等提供市场深度,你可以从网络借入比特资产,并且卖出。我们来介绍下相关步骤。

借入

BitShares网络能够发行比特资产,并借给用户,只要用户能够提供足够的抵押担保。

  • 喂价: 在外部交易所中1BTS的交易价格
  • 维持保证金比率 (MCR): 由见证人维护并调节的起始抵押比率
  • 最大强制平仓比率 (MSQR): 由见证人维护并调节的最大强制平仓比率以保护空头围堵。
  • 强制平仓保护价 (SQP): 指定一个空头头寸被强制平仓支付最多时的价格
  • 强制平仓价 (CP): 将触发空头/贷款头寸强制平仓的价格

强制平仓

BitShares网络可以强制平仓那些抵押不足的空头仓位。任何时候,如果空头仓位抵押物的市场最高买价低于强制平仓价(CP),且高于强制平仓保护价(SQP)时将触发强制平仓,空头仓位将被强制卖出抵押物。

SQP = 喂价 / MSQR\nCP = 债务价值 / 抵押物价值 * MCR

强制平仓发生时,将用抵押物按市场价格(最高到SQP价格)买入之前接入的比特资产,进行平仓。剩余的抵押BTS将会归还用户。

清算

比特资产的持有人可以随时要求按公允价格进行清算。清算发生时将关闭抵押率最低的空头/借贷头寸,卖出抵押物已完成清算。

卖出

借入比特资产后,用户可以随时在市场上以自己意愿的价格卖出。卖出后,用户即实现了卖空该比特资产的目的。

更新抵押率

任何时间,持有空头/借贷头寸的用户可以修改抵押率来灵活地适应市场变化。如果调高抵押率,则额外的BTS将被锁定以增加抵押,而调低抵押率则要求用户返还网络相应差额数量的比特资产。

平仓

空头/借贷头寸平仓时,用户必须持有相应借入的比特资产,以返还网络。网络将相应数量的比特资产从流通供给中去除,并解锁抵押物返还用户账户。

'},52182:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

交易

文本将介绍在BitShares DEX去中心化交易所系统中使用的一些术语,以及交易对的呈现方式。

交易对

在BitShares系统中,任何资产之间都可相互交易。我们选取任意2种资产,它们就形成了市场交易对。比如,我们可以使用美元USD与欧元EUR在USD:EUR交易对市场中进行交易。

为了与外汇交易习惯统一,交易对中的资产标准化为 基础资产报价资产,表现形式如下:

*报价资产* : *基础资产*

比如基础资产为USD和报价资产为EUR的交易对表现为EUR:USD。

买卖盘

买卖盘由买盘卖盘构成。由于交易对并无固定的顺序,所以可以进行反转,下表展示了买盘和卖盘对应的资产买、卖操作:

方向
报价资产 基础资产
基础资产 报价资产
-------- --------- ---------

显然在 USD:EUR 交易对的买方即为 EUR:USD 交易对的卖方。价格在系统内部自动转换,在交易对反转时也能正确转换。

交易

下单时,需要填写买单卖单表单(对应希望的买入卖出)。你需要填写打算买入或卖出的价格数量。订单总额将自动计算。下单时可能需要支付额外的手续费。

一旦订单被撮合(比如你的订单被其他人接受),你的账户将存入相应的资产。

未撮合订单可随时取消。

'},80111:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

词汇表

返回索引页

'},12484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

Graphene 石墨烯

BitShares(比特股) 2.0 是一个金融智能合约平台,该平台基于Cryptonomex公司研发的Graphene(石墨烯)技术开发。Graphene(石墨烯)是一个开发工具包,同时也是实时区块链的技术实现。

本帮助文档旨在提供用户一个系统概述,并解释系统中的一些基本概念。

简介

账户

资产

去中心化交易所


词汇表

'},77794:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

备份

我们建议你经常备份你的钱包,尽管在绝大多数情况下备份一次已经足够。需要注意的是,从备份中恢复钱包数据时,由于备份是加密保存的,你需要提供创建钱包时使用的密码进行解密才能恢复。所以,如果你丢失了钱包文件或者忘记了你的密码,你将无法访问钱包中的资金!

备份功能可以通过钱包管理界面进行操作(设置->钱包)。

钱包导出

最便捷的备份方式是通过钱包管理界面提供的操作按钮进行钱包导出。请妥善保存你的备份文件,防止遗失、被盗或自然灾害。

脑钱包密钥 (仅高级用户适用)

如果你从未手动导入过账户私钥进入过你的钱包,那么你还可以选择通过导出脑钱包密钥进行备份。脑钱包密钥是一长串由单词组成的字符串,通过它钱包软件可进行确定性重算恢复你的账户私钥。

多层级职权实体 (仅高级用户适用)

如果你使用了多层级职权实体功能(设置了账户权限/活跃权限),那么只是备份你自己的钱包是不够的。还需要相关的被授权的职权实体的密钥也被安全备份。请阅读关于多层级职权实体的更多内容。

'},51341:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

BitShares (比特股)

Graphene (石墨烯) 旨在实现一种区块链技术协议。然而,与具体的区块链整合后,比如 BitShares (比特股),它逐渐进化为一种生态系统。

BitShares 不断寻求拓展区块链应用技术创新,为所有通过互联网提供服务的行业提供基础支持。无论是银行、证券交易、博彩、投票、音乐、拍卖或其他很多行业,一个数字公共账簿使得分布式自治公司(简称DACs)的创建相对于传统的中心化的方式成本更低,从而带来更佳的服务质量。

分布式自治公司的出现引领了一种崭新的公司组织结构的变革,公司不再需要"人类"的管理,并在一系列不可腐化的业务规则下运行。

这些运营规则编码入公开可审计的开源软件系统中,分布运行于公司股东用户的电脑中,从而保证公司的运作不受独断控制。

BitShares 为商业而生,如同 Bitcoin 为货币而生。两者皆采用分布式共识机制来创建与生俱来的具有全球性、透明性、可信赖的、更高效的系统,更重要的是能为企业带来更多利润。

钱包软件

通过在浏览器中运行本钱包软件,你可以使用 BitShares 网络提供的各种服务和功能,包括但不限于 比特资产用户发行资产去中心化交易所.

'},94510:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

区块链

与大多数数字货币类似,Graphene (石墨烯) 使用区块链来记录参与者的转账信息及市场行为。由于每个区块总是指向前一个区块,我们获得一个区块链条包含了所有在网络上发生的交易信息。区块链是一个公开的,可审计的账簿,每个人都能够查看详细数据,并验证交易、市场订单和买卖盘数据。

当然,本钱包软件内置了一个区块链浏览工具,帮助你进行数据查看和审验。

共识机制

由谁在什么时间来打包生成区块是由被称为Delegated Proof of Stak (DPOS)的共识算法决定的。算法的本质是 BitShares 的股东(BTS的持有者)能通过投票来决定他们期望的块打包者。由获得最多票数的所谓"见证人"来打包生成区块。

交易

Graphene (石墨烯) 区块链技术提供了多种交易类型。用户不仅可以相互进行简单的资产转账,还能与去中心化交易所进行交互。大多数交易类型可通过字面意思理解,其他的则要求对系统的内部运作机制有较深的理解。

'},40835:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

桥接及网关服务

桥接和网关服务帮助用户进行数字资产的充值和提现活动。但这两种服务模式有些不同。

桥接: 无需信任的模式

桥接服务运行用户存入一定数量的BTS以外的数字货币(资产),并获得相应的智能锚定货币(SmartCoin)。锚定货币没有对手方风险。所以这种模式下,用户面对的风险仅在于充值期间一小段时间的风险。这相对于比中心化的交易所的充值方式安全得多,因为中心化交易所总是面临各种黑客攻击或者其他管理漏洞而导致丢币的风险。

网关: 需要信任的模式

网关模式下基本上就和传统的交易所运作模式相似,依赖于交易所的偿付能力。网关发行资产,一般以网关品牌作为前缀,比如OPEN,TRADE或是META。这些资产由用户存入网关的对真实应资产背书,比如BTC,ETH等。

OPEN.BTC理论上和你充值到一般中心化交易所,比如Poloniex的BTC一样,可以记作POLO.BTC。你都将依赖网关对你的数字资产进行兑付。

'},30265:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

理事会

理事会由一组股东投票通过的理事会成员组成,理事会成员的职责在于设定系统运行参数。其中包括:

  • 转账及交易手续费
  • 区块链参数,比如区块大小,区块生成时间间隔,等等
  • 推荐及冻结/解冻参数,比如奖励返现比例和冻结时间等
'},29706:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

钱包软件

你或许已经注意到,本应用是一个基于web的应用软件,在浏览器中运行。通过与一个受信任的节点连接来获得整个生态系统的接入。

钱包安全性

你可以确信的是我们的服务器永远不会也不能访问你的资产。你的私钥不会离开你的本地浏览器。它们使用你的密码进行加密后保存在本地浏览器的数据库中。因此,你只需要确保你已经备份了钱包,就不用担心由于计算机失灵或者浏览器奔溃导致钱包数据丢失。

钱包管理

钱包系统的用户界面允许你使用多个独立的钱包,每个钱包可能包含相互独立的账户和资金。你可以通过设置->钱包菜单进行创建、备份和切换钱包的操作。

'},8399:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

见证人

见证人是为区块链打包生成新的区块的实体。每一个见证人由股东批准,打包经验证的交易,生成并签署区块。每一条进入网络的交易最终将被所有见证人验证。

共识机制

由谁在什么时间来打包生成区块是由被称为Delegated Proof of Stak (DPOS)的共识算法决定的。算法的本质是 BitShares 的股东(BTS的持有者)能通过投票来决定他们期望的块打包者。由获得最多票数的所谓"见证人"来打包生成区块。

'},15357:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

预算项目

预算项目期望通过提供服务来从区块链获得奖金的工作项目提案。一项提案包含至少以下信息:

  • 开始和结束时间
  • 每日支付预算
  • 预算上限

它还应该包含一个指向网页或论坛帖子的链接,以详细介绍工作项目内容。

针对预算项目,投票人可以选择支持或者反对。

预算项目支付机制

预算项目每天收到的金额来自一个金额固定的每日预算池,根据票数多寡排序进行分配,知道每日预算池中资金耗尽。举一个例子:

  • 每日预算池总额为400K BTS
  • 有5个预算项目符合条件(支持票多余反对票),他们都要求每天获得100K BTS的预算支持。

那么得票较多的4个项目将每天获得100K BTS的支付,但是由于付完这4各项目,每日预算池中已无资金剩余,那么第五个项目受付金额则为0。

'},86602:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

目录

'},48434:(e,t,a)=>{var s={"./src/lzma_worker.js":50704};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=48434},71146:(e,t,a)=>{"use strict";a.r(t)},81705:(e,t,a)=>{"use strict";a.r(t)},64:(e,t,a)=>{"use strict";a.r(t)},40795:(e,t,a)=>{var s={"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":39901,"./es-us.js":39901,"./es.js":55655,"./fr":15596,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":15596,"./gom-deva":27884,"./gom-deva.js":27884,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./ko":33730,"./ko.js":33730,"./ru":21793,"./ru.js":21793,"./tr":72397,"./tr.js":72397,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=40795},80888:(e,t,a)=>{var s={"./de":51738,"./de.js":51738,"./es":32820,"./es.js":32820,"./fr":54206,"./fr.js":54206,"./index":90561,"./index.js":87603,"./it":78398,"./it.js":78398,"./ja":63151,"./ja.js":63151,"./kde":33026,"./kde.js":33026,"./ko":4187,"./ko.js":4187,"./kok":92030,"./kok.js":92030,"./ru":51949,"./ru.js":51949,"./ses":89754,"./ses.js":89754,"./tr":88495,"./tr.js":88495,"./zh":13655,"./zh.js":13655};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=80888},40564:e=>{e.exports=''},24401:e=>{e.exports=''},22695:e=>{e.exports=''},97609:e=>{e.exports=''},88751:e=>{e.exports=''},35371:e=>{e.exports=''},83160:e=>{e.exports=''},30305:e=>{e.exports=''},36942:e=>{e.exports=''},4401:e=>{e.exports=''},60004:e=>{e.exports=''},80870:e=>{e.exports=''},13405:e=>{e.exports=''},45140:e=>{e.exports=''},21764:e=>{e.exports=''},43695:e=>{e.exports=''},95882:e=>{e.exports=''},82458:e=>{e.exports=''},22862:e=>{e.exports=''},94563:e=>{e.exports=''},47794:e=>{e.exports=''},67027:e=>{e.exports=''},65437:e=>{e.exports=''},30270:e=>{e.exports=''},69052:e=>{e.exports=''},96860:e=>{e.exports=''},1326:e=>{e.exports=''},19431:e=>{e.exports=''},83870:e=>{e.exports=''},18864:e=>{e.exports=''},77051:e=>{e.exports=''},56609:e=>{e.exports=''},83662:e=>{e.exports=''},77552:e=>{e.exports=''},66414:e=>{e.exports=''},54383:e=>{e.exports=''},18581:e=>{e.exports=''},82266:e=>{e.exports=''},24481:e=>{e.exports=''},11808:e=>{e.exports=''},9389:e=>{e.exports=''},38078:e=>{e.exports=''},30208:e=>{e.exports=''},11615:e=>{e.exports=''},15888:e=>{e.exports=''},17325:e=>{e.exports=''},91702:e=>{e.exports=''},81242:e=>{e.exports=''},82728:e=>{e.exports=''},1673:e=>{e.exports=''},27791:e=>{e.exports=''},29908:e=>{e.exports=''},71372:e=>{e.exports=''},51498:e=>{e.exports=''},10785:e=>{e.exports=''},7058:e=>{e.exports=''},63114:e=>{e.exports=''},22765:e=>{e.exports=''},90874:e=>{e.exports=''},10411:e=>{e.exports=''},84185:e=>{e.exports=''},15146:e=>{e.exports=''},35479:e=>{e.exports=''},42641:e=>{e.exports=''},99200:e=>{e.exports=''},93603:e=>{e.exports=''},7649:e=>{e.exports=''},17047:e=>{e.exports=''},20153:e=>{e.exports=''},60740:e=>{e.exports=''},79006:e=>{e.exports=''},95459:e=>{e.exports=''},20044:e=>{e.exports=''},40293:e=>{e.exports=''},5972:e=>{e.exports=''},80530:e=>{e.exports=''},77814:e=>{e.exports=''},62075:e=>{e.exports=''},48637:e=>{e.exports=''},42083:e=>{e.exports=''},72007:e=>{e.exports=''},36225:e=>{e.exports=''},74477:e=>{e.exports=''},30821:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s="data:image/png;base64,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"},47835:(e,t,a)=>{"use strict";function s(){return new Worker(a.p+"AddressIndexWorker.7ff9cb22f53b9e482cdf.worker.js")}a.d(t,{Z:()=>s})},81895:(e,t,a)=>{"use strict";function s(){return new Worker(a.p+"AesWorker.23768d94b8d19c7e4064.worker.js")}a.d(t,{Z:()=>s})},42480:()=>{},69386:()=>{},31616:()=>{},24654:()=>{},7116:()=>{},90561:()=>{},87603:()=>{},83954:()=>{},69862:()=>{},40964:()=>{},36079:e=>{"use strict";e.exports=JSON.parse('{"account":{"accounts":"Accounts","activity":"Activity","advanced":"Advanced","as_collateral":"Collateral","asset":"Asset","asset_details":"Asset details","average_price":"Average price","bittrex_scam":"This account is not the real Bittrex account, please send to this account: bittrex-deposit.","bts_market":"Market","cancel_orders":"Cancel orders","collaterals":"Margin Positions","confirm_asset_modal":{"are_you_sure":"Are you sure you want to save all changes to these tabs?","header":"Confirm multiple changes"},"connections":{"black":"Blacklisted by","known":"Known by"},"contacts":"Contacts","create_account":"Create account","create_new":"Create A New Account","credit_offer":"Credit Management","deactivate_suspicious_proposals":"Hide approve for suspicious proposals","deposit":"Deposit BTS","deposit_address":"Your deposit address is your account name","deposit_withdraw":"Deposit/Withdraw","download_history":"Download History","eq_value":"Estimated","eq_value_header":"Value ({asset})","errors":{"invalid":"Invalid account name","memo_missing":"You do not have control of the memo key for this account. In order to use a memo, please set the account memo key to a key you control using the Permissions page.","not_found":"The account %(name)s does not exist, are you sure you spelled it correctly?","not_yours":"Not your account","unknown":"Unknown account"},"estimate_value":"Estimated Account value","existing_accounts":"Existing Accounts","existing_user":"Existing user","export_modal":{"coinbase_report":"CoinTracking.info Report","description":"Enter your desired elastic search instance and click the report type","full_report":"Full Report","title":"History Export","use_custom":"Use custom wrapper"},"filter_orders":"Filter...","follow":"Add contact","group_by_asset":"Group by asset","hidden_accounts_row":"Hidden Accounts","hide_hidden":"Active","hide_ignored":"Hide hidden accounts","history":"History","history_error":"Failed to download the account history, please try again","home":"Home","hour_24":"24hr Change","hour_24_short":"24hr","id":"Account ID","identicon":"Identicon","ignore":"Hide","inCollateral":"In Collateral","inOrders":"In Orders","inVestingBalances":"In Vesting Balances","in_open":"This is the amount of %(asset)s you have in open orders.","in_open_value":"This is the estimated value of the %(asset)s you have in open orders.","intro_text_1":"Your Decentralized Platform","intro_text_2":"The DEX is inherently decentralized, enabling you to trade the BitShares core token (BTS) and a range of trustless price-stable, market-pegged assets such as bitUSD, bitCNY, bitBTC, bitGold and more. These assets can all be traded with zero counter-party risk, putting you in total control of your funds.","intro_text_3":"The DEX also enables creation of user-issued assets (UIAs), which can be traded against any other UIAs or trustless assets on the platform. One well-known asset owner on The DEX is OpenLedger, offering a host of assets including BTC, ETH, STEEM, DASH, LTC, DOGE, and many more","intro_text_4":"This gives cryptocurrency traders a unique blend of traditional and decentralized trading, all in a familiar exchange interface. Happy trading!","intro_text_title":"Welcome to %(wallet_name)s","liquidity_pools":{"alert_asset_a":"ID of ASSET A should be greater than ID of ASSET B","alert_asset_b":"ID of ASSET B should be smaller than ID of ASSET A","alert_request_input_asset_a":"Please select ASSET A","alert_request_input_asset_b":"Please select ASSET B","alert_request_input_pool":"Please select pool","alert_request_input_taker_fee":"Please input taker fee","alert_request_input_unstack_fee":"Please input unstacke fee","alert_taker_fee":"","alert_unstack_fee":"","asset_a":"Asset A","asset_a_balance":"Asset A Balance","asset_b":"Asset B","asset_b_balance":"Asset B Balance","create_pool":"Create Pool","delete":"Delete","liquidity_pools":"Liquidity Pools","pool_balance":"Pool Balance","pool_name":"Pool Name","stake_status":"Stake/Unstake","taker_fee":"Taker Fee","title":"Pools","unstake_fee":"Unstake Fee"},"login_with":"Login with","market_actions":"Market actions","market_orders":"Market orders","market_value":"Market Value","member":{"action":"Action","annual":"Annual subscriber","available":"Available to claim","balance_type":"Type","basic":"Basic member","cashback":"Vesting balance amount","claim":"Claim now","coindays":"coin days","days":"days","earned":"Coin days earned","expires":"expires","fee_allocation":"Fee Allocation","fee_division":"Fee Division","fee_division_text":{"paragraph_1":"Every time %(account)s pays a transaction fee, that fee is divided among several different accounts. The network takes %(fee_share_network)s%. The Lifetime Member who referred %(account)s takes %(fee_share_ltm)s%.","paragraph_2":"The registrar is the account that paid the transaction fee to register %(account)s with the network and decide how to divide the remaining %(fee_share_registrar)s% between themselves and their own Affiliate Referrer program. %(account)s\'s registrar chose to share %(fee_share_affiliate)s% of the total fee with the Affiliate Referrer.","paragraph_3":"Fee shares, market rewards and other rewards is found on the Vesting Balances page"},"fee_pending":"Pending Fees","fee_pending_text":"Fees paid by %(account)s are divided among the network, referrers, and registrars once every maintenance interval (%(maintenanceInterval)s seconds). The next maintenance time is %(nextMaintenanceTime)s.","fee_vesting":"Vesting Fees","fee_vesting_text":"Most fees are made available immediately, but fees over %(vestingThresholdAmount)s %(vestingThresholdAsset)s (such as those paid to upgrade your membership or register a premium account name) must vest for a total of %(vestingPeriod)s days.","fees_cashback":"Fee statistics","fees_paid":"Total fees paid","join":"Joined on","lifetime":"Lifetime member","lifetime_referrer":"Lifetime Referrer","lifetime_title":"Earn cashback","membership":"Membership","membership_expiration":"Membership Expiration","network_percentage":"Network","ref_distribution":"Referral Fee Distribution","referal_fees":"Referral Fee Distribution","referral_info":"As a lifetime member (LTM) you are eligable for a %(feesCashback)s% cashback on all your fees. You will also recieve cashback from markets with a referral reward. The referral reward is based on your own and your referred members market orders.","referral_link":"Your personal referral link","referral_text":"Give this link to people you want to refer to %(wallet_name)s","referrals":"Referrals","referrer":"Affiliate Referrer","registrar":"Registrar","remaining":"Days left of vesting period","required":"Coin days required","rewards":"Cashback Rewards","stats":"Membership stats","subscribe":"Buy Annual Subscription","suspected_scammer":"Suspected Scammer","total_ref":"Total referred %(total)s","unknown":"Unknown member","upgrade_lifetime":"Buy Lifetime Subscription","vested":"Vested"},"mine":"My account","more":"see more","name":"Account name","name_input":{"name_is_taken":"Account name is already taken.","not_found":"Account not found.","premium_name_faucet":"This is a premium name which is not supported by this faucet. Please enter a regular name containing least one dash, a number or no vowels.","premium_name_warning":"This is a premium name which is more expensive than a name containing a dash (-) or a number."},"new_user":"New user?","no_order_history":"No order history","no_orders":"No open orders","no_price":"--","no_trades":"No last trades","open_orders":"Open Orders","optional":{"formatter":"Optionally, {restore_link} or create an account using the {restore_form}.","restore_form":"advanced form","restore_link":"restore your account"},"options":{"memo_key":"Memo Key","num_committee":"Desired Committee Members","num_witnesses":"Desired Witnesses"},"orders":"Orders","other_scam":"This account is not known to be an official account, please verify the destination before transferring","overview":"Overview","password_login":"Login with password","pay":"Send to","pay_from":"Pay with account","payees":"Payees","percent":"% total supply","perm":{"account_name_or_key":"Account name or key","acct_or_key":"Account / Key / Address","action":"Action","active":"Active Permissions","add":"Add Permission","add_permission_label":"Enter account name/key and weight","brain":"Brainkey position","cancel":"Cancel","confirm_add":"Add","create_paperwallet":"Create Paper Wallet","create_paperwallet_private_hint":"Unlock/Login before creating the paper wallet to include private keys","from":"Imported from account","key":"Key/Name","key_viewer":"Private key viewer","memo_key":"Memo key","memo_public_key":"Memo Public Key","memo_warning":"WARNING: If you replace the memo key you will be unable to read old memos when logging in with your password, and unless you import the new memo private key into your old wallet that wallet will be unable to decode new memos","new_active":"New active key","new_memo":"New memo key","new_owner":"New owner key","owner":"Owner Permissions","password_model":"Cloud Wallet","password_model_1":"If you want to be able to login from anywhere using only your password and account name, you can use this page to add new keys to your permissions. If you also want to remove the original keys, you can do so in the active/owner permissions tabs.","password_model_2":"Add password generated keys","private":"Private key (WIF - Wallet Import Format)","public":"Public key","publish":"Save","publish_prediction":"Publish","remove_proxy":"Remove proxy","remove_text":"Remove","reset":"Reset","resolve_prediction_disabled_button":"The button will be enabled after resolution date has passed","save":"Save Changes","save_all":"Save All Changes","show":"Show","sign_owner":"Sign as owner","threshold":"Threshold","type":"Type","use_text":"Use","valid_pub":"Valid Public Key","warning1":"Active permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s","warning2":"Owner permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s","warning3":"Account is already in the list","warning4":"Key is already in the list","weight":"Weight"},"permissions":"Permissions","please_create_account":"Please create an account","polo_scam":"This account is not the real Poloniex account, please send to this account: poloniexwallet.","portfolio":"Balances","propose_from":"Propose From","proposed_transactions":{"advanced_feature":"This is an advanced feature. Please answer the following questions","answered_no":"If your answer to any of the questions above is no, do NOT continue. You can also turn this on and off in Settings.","question1":"Do you know what a proposal is?","question2":"Are you expecting a proposal?","question3":"Are you aware that a proposal can steal your funds or lock you out of the account?","show_me_proposals":"Show me Proposals"},"qty":"Qty","quote":"Quote","recent":"Recent activity","reset_orders":"Reset","restore":"Restore","search":"Search for an account","see_open":"See open orders","select_placeholder":"Select Account...","settle":"Settle","settle_orders":"Settle orders","show_hidden":"Hidden","show_ignored":"Show hidden accounts","show_visual":"Visual","signedmessages":{"automaticcreation":"Signed message will be created automatically","copysuccessful":"Signed message copied to clipboard","copyunsuccessful":"Failed to copy message","entermessage":"Enter message here","errorverifying":"An error occured while verifying the message","invalidformat":"Signed message format can\'t be recognized","invalidkey":"Private key could not be obtained, is the public key valid?","invalidsignature":"The content of the message could not be validated against the signature","invaliduser":"Account of the message sender is invalid","keymismatch":"Given public key of the sender doesn\'t to the one stored in the senders account","menuitem":"Signed Messages","sign":"Sign","signing":"Signing, please wait ...","signmessage":"Sign Message","title":"Signed Messages","verify":"Verify","verifying":"Verifying, please wait ...","verifymessage":"Verify Message","verifyonchange":"Verify while typing"},"start_typing_to_search":"Start typing to search for accounts","submit_orders":"Submit","total":"Total ({asset})","total_estimate":"This is the estimated value of all your assets, including any hidden assets, open orders, debt and collateral. The estimate is done using only live blockchain data and may not be perfectly accurate.","total_value":"Total value","trade":"Trade","transactions":{"fee":"Fee","id":"ID","info":"Info","time":"Time","type":"Type"},"transfer_actions":"Transfer actions","unfollow":"Remove contact","unignore":"Unhide","upgrade":"Upgrade account","user_issued_assets":{"add_feed":"Add new feed producer","advanced":"Advanced features","approx_fee":"Approximate fee","backing":"Short backing asset","base":"Base asset amount","base_name":"Base asset","bitasset_opts":"SmartCoin options","cer_warning_1":"Warning","cer_warning_2":"Make sure your core exchange rate is higher than the market price, otherwise people will buy your token from the market and drain your fee pool via implicit arbitrage. The core exchange rate should be updated regularly to reflect market pricing of your asset.","charge_market_fee":"Enable market fee","committee_fed_asset":"Allow committee members to provide feeds","condition":"Condition (max 60 characters)","conflict_feed":"Cannot allow witnesses and committee members to provide feeds simultaneously","core_exchange_rate":"Core exchange rate","current_issuer":"Current owner account","decimals":"Number of decimal points","description":"Description","details":"Details","disable_bsrm_update":"Disable owner update BSRM","disable_collateral_bidding":"Disable collateral bidding","disable_confidential":"Disable confidential transactions","disable_force_settle":"Disable force settling","disable_icr_update":"Disable owner update ICR","disable_mcr_update":"Disable owner update MCR","disable_mssr_update":"Disable owner update MSSR","disable_new_supply":"Disable new supply","error_invalid":"That asset may not be used","error_precision":"That asset does not have the same precision as %(asset)s","error_too_deep":"May not create a bitasset backed by a bitasset backed by a bitasset","exists":"That asset already exists","expiry":"Market resolution date","feed_lifetime_sec":"Feed lifetime in minutes","feed_not_allowed_1":"Cannot set feed producers on a witness- or committee-fed asset","feed_not_allowed_2":"Please disable the flags called \'Allow witnesses to provide feeds\' and \'Allow committee members to provide feeds\' in order to allow manual definition of feed producers","feed_producers":"Feed producers","flags":"Flags","force_settlement_delay_sec":"Delay for forced settlements (minutes)","force_settlement_offset_percent":"Percent offset of forced settlements","global_settle":"Allow asset owner to force a global settling","id":"ID","invalid_backing_asset_change":"You can\'t change the backing asset of an asset that has a non-zero current supply","invalid_market_pair":"Preferred market pairing can not be the same market","invalid_permissions_change":"You can\'t enable a permission for an asset that has a non-zero current supply","issued_assets":"Issued Assets","lock_max_supply":"Lock max supply","market":"Preferred market pairing","market_fee":"Market fee","max_market_fee":"Max market fee","max_positive":"Max supply should be a positive number","max_supply":"Maximum supply","maximum_force_settlement_volume":"Max force settle volume (percent of total supply per hour)","minimum_feeds":"Minimum number of feeds","mpa":"SmartCoin","name":"Asset Name","need_asset":"At least one of the two assets must be %(name)s","new_issuer":"New asset owner account","optional":"Optional settings","override_authority":"Asset owner may transfer asset back to himself","perm_warning":"WARNING: Permissions may only be disabled, once disabled they may not be reactivated!!","pm":"Binary prediction market","precision":"Precision","precision_warning":"Warning: The number of decimals may not be changed after creation","primary":"Primary settings","quote":"Quote asset amount","quote_name":"Quote asset","resolve_prediction":"Resolve prediction","resolve_prediction_text":"The asset prediction can be resolved here.","reward_percent":"Reward percent","reward_percent_tooltip":"If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.","short":"Short name (max 32 characters)","symbol":"Symbol","taker_fee_percent":"Taker Fee percent","taker_fee_percent_tooltip":"If taker fee is set, the taker percent indicates how much percent is shared with the asset owner.","to":"Issue to account","too_large":"That max supply is too big, please choose a smaller number","too_many_feed":"Number of feed producers exceeded the max allowed (%(max)s).","transfer_restricted":"Asset owner must approve all transfers","update_owner":"Update owner","update_owner_text":"The asset owner may change the owner to another account using this form:","visible":"Hide asset from search and markets","white_list":"Require holders to be white-listed","witness_fed_asset":"Allow witnesses to provide feeds"},"vesting":{"balance_number":"Balance #%(id)s","explain":"Vesting balances contain any fees earned through the referral program or from worker pay, for example. They have a certain vesting period and are continually unlocked during that vesting period until all of the balances are available","no_balances":"This account has no vesting balances","title":"Vesting balances","type":{"cashback":"Cashback","market_fee_sharing":"Market fee sharing","unspecified":"Unspecified","witness":"Witness","worker":"Worker"}},"votes":{"about":"About","active":"Active (%(count)s)","active_short":"Active","add_committee":"Add","add_committee_label":"Committee Member","add_witness":"Add","add_witness_label":"Witness","already":"Account is already in the list","approve_worker":"Approve","cast_votes_through_one_operation":"Cast your votes for witness, committee and workers and broadcast them together.","clear_proxy":"Remove proxy","cm_approved_by":"Committee members approved by %(account)s","cm_not_approved_by":"Committee members not approved by %(account)s","committee":"Committee member name","create_worker":"Create a new worker","creator":"Creator","daily":"daily","daily_pay":"Daily Pay","end":"End date","expired":"Expired","funding":"Funding","go_proxy":"Go to","hide_legacy_proposals":"Hide Legacy Proposals","inactive":"Backup","info":"Info","join_committee":"Join committee","join_witnesses":"Join Witnesses","update_witness":"Update Witness","line":"Line","max_pay":"Maximum total pay","missing":"Needed","name":"Name","new":"Proposed (%(count)s)","no_proxy":"No Proxy","polls":"BSIPs/Polls (%(count)s)","proxy":"Manually enter an account as your proxy","proxy_current":"Your current proxy is","proxy_known":"Or choose an account as your proxy","proxy_short":"Proxy","publish":"Save","recycled":"Recycled","reject_worker":"Reject","remove_committee":"Remove","remove_witness":"Remove","save_finish":"Click save to finish","set_proxy":"Set a proxy here","start":"Start date","status":{"neutral":"Neutral","rejected":"Rejected","supported":"Supported","title":"Status"},"support":"Support","supported":"Supported","threshold":"Votes required to activate","toggle":"Toggle vote","total_budget":"Daily budget","total_votes":"Votes","unclaimed":"Unclaimed pay","unused_budget":"Unused daily worker budget","url":"Webpage","votes":"Votes","votes_against":"Votes against","w_approved_by":"Witnesses approved by %(account)s","w_not_approved_by":"Witnesses not approved by %(account)s","witness":"Witness name","worker_account":"Worker account","workers":"Budget Items","workers_short":"Workers"},"voting":"Voting","welcome":"Welcome to %(wallet_name)s","whitelist":{"add":"Add to whitelist","add_black":"Add to blacklist","black":"Blacklist","black_by":"Blacklisted by","blacklist_authorities":"Blacklist authority","empty":"%(account)s has not whitelisted any accounts.","empty_black":"%(account)s has not blacklisted any accounts.","empty_black_by":"No accounts have blacklisted %(account)s.","empty_white_by":"No accounts have whitelisted %(account)s.","title":"Whitelist","white_by":"Whitelisted by","whitelist_authorities":"Whitelist authority","whitelist_market_fee_sharing":"Market fee sharing whitelist"}},"account_browsing_mode":{"go_back":"Go back to my account","modal_description":"You\'re switching to an account which you don\'t have active authority over. You can browse this account, but in view only mode","modal_title":"View Only Mode","never_show_again":"Never show again","view_mode":"View Mode","you_are_in_browsing_mode":"You\'re in view only mode of the current account. Click here to get back to your account."},"alert":{"warning":"Warning"},"app_init":{"browser":"Unsupported browser","browser_text":"The Browser you are using has not been fully tested to support the %(wallet_name)s Wallet. We highly recommend that you backup your local wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.","check_latency":"Running latency checks...","check_latency_feedback":"Running latency checks (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_country":"Latency check in best country (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_last":"Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_region":"Latency check in best region (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_rest":"Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_world":"Latency check in each region (%(pinged)s/%(totalToPing)s nodes)","connected":"Connected","connecting":"Connecting to API server: %(server)s","database":"Connection established, initializing local databases","not_connected":"Not connected","retry":"Retry","title":"Application initialization issues","understand":"I understand","ws_status":"Full node connection status"},"assets":{"BTS":"BTS is the core token of the BitShares Blockchain"},"boolean":{"false":"False","true":"True"},"borrow":{"adjust":"Update position","adjust_short":"Adjust","call_limit":"Market Call Limit","close":"Close position","coll_ratio":"Ratio","coll_ratio_target":"Target Ratio","considered_on_revival":"Included","enable_target_collateral_ratio":"Use Target Collateral Ratio","errors":{"below":"Your collateral ratio is below %(mr)s which is not allowed.","below_info":"Your position is below the required maintenance collateral ratio! Increasing collateral ratio is allowed, debt can only be decreased.","below_mcr_tcr":"Any ratio below %(mr)s will be treated as %(mr)s by chain.","below_ratio_mcr_update":"Your collateral ratio is blow your original %(ocr)s. Only increased ratio is allowed on margin called orders","close":"Your collateral ratio is close to %(mr)s which means this position is in danger of being margin called if the price drops.","collateral":"Insufficient collateral balance","increased_debt_on_margin_call":"You increased your debt, which is not allowed when updating a margin called position"},"lockedCR":"Locking Collateral Ratio will override other locked fields","maximize_debt_set_ratio_slider":"You must set a collateral ratio before being able to maximize debt","no_valid":"No valid feeds for %(asset_symbol)s","pay_max_debt":"Pay Max Debt","target_collateral_ratio":"Target Collateral Ratio","target_collateral_ratio_explanation":"The corresponding order for a margin call will be just big enough, to bring the collateral ratio to the target collateral ratio","target_collateral_ratio_short":"TCR","title":"%(asset_symbol)s Margin","update":"Update","use_max":"Use Max"},"browser_notification_messages":{"money_received_body":"Sent you %(amount)s %(symbol)s","money_received_title":"Transfer from %(from)s"},"cancel":"Cancel","connection":{"automatic_reconnect":" After %(reconnect_in_seconds)s seconds a reconnection attempt will be made automatically.","manual_ping":"Go to ping nodes","manual_ping_and_narrow_down":"Narrow down nodes and ping","manual_reconnect":"Try reconnecting now","narrow_down_nodes":"Narrow down nodes","narrow_down_nodes_tooltip":"Restrict the ping and automatic selection process of the wallet to only the selected nodes/regions. Choose nodes/regions close to your geolocation, this may significantly increase your felt connectivity. Leave empty to consider all.","out_of_sync":"Your connection has been out of sync for %(out_of_sync_seconds)s seconds.","title_out_of_sync":"Connection out of sync","want_to_reconnect":"If the connection can be recovered this message will disappear automatically."},"counterpart":{"formats":{"date":{"full":"%F %T %Z","market_history":"%e/%m %H:%M:%S","market_history_us":"%m/%e %H:%M:%S","short_custom":"%e %b \'%y"}}},"credit_offer":{"accepted_pawn":"Acceptable","account":"Account","active":"Active","add_pawn":"Add collateral","add_whitelist":"Add white account","asset":"Asset","available_amount":"Available","borrow":"Loan","borrow_amount":"Amount","closed":"Closed","create":"Create credit offer","credit_debt_account":"Account","credit_debts":"Credit Debts","credit_offers":"Credit Offers","credit_right_account":"Account","credit_rights":"Credit Rights","current_available_balance":"Current Available Balance","current_balance":"Available","debt":"Debt","edit":"Modify credit offer","estimated_fee":"Estimated fee","fee_rate":"Rate","info_borrow_err":"Can\'t borrow from oneself !","invalid_min_bigger_amount":"Min cannot be bigger than amount","list_repay_period":{"period_-1":"No limit","period_0":"12 Hours","period_1":"1 Day","period_2":"3 Days","period_3":"7 Days","period_4":"30 Days","period_5":"90 days","period_6":"365 days","period_7":"730 days","period_8":"1825 days"},"loan_amount":"Maximum","min_borrow":"Minimum","min_loan_bigger_than_balance":"Min to loan > Total credit offer balance (%(min)s > %(balance)s)","mortgage_assets":"Collateral","my_debt":"My debt","number_is_to_big":"You have used a big number which caused overflow","operate":"Action","operate_delete":"Delete","operate_edit":"Modify","override_authority_warning":"Be careful, this asset has an `override_authority` setting, so the owner of the asset could transfer it back to himself with no agreement","override_authority_warning_p1":"%(symbol)s is controlled by its issuer","override_authority_warning_p2":"Do your own due diligence when using ","pawn_amount":"Amount","plh_input_asset_name":"Enter asset","plh_select_validity_period":"Choose an expiration date","price":"Price","redemption_collateral":"Redeem collateral","repay":"Repay","repay_period":"Repay period","status":"Status","tip_fee_rate":"Expressed as a percentage","tip_pawn_amount":"The amount of collateral required for each unit of assets lent","title_add_pawn":"Add collateral","title_add_whitelist":"Add white account","total_amount":"Total","total_to_repay":"Repay Total","validity_period":"Expiration","whitelist_account":"Account"},"customizable_table":{"customize_the_columns":"Customize the Columns"},"dashboard":{"featured_markets":"Featured Markets","starred_markets":"Favorites","table_empty":"No market matched","top_markets":"Top Markets"},"errors":{"loading_from_blockchain":"Error fetching from the blockchain, please retry.","loading_from_es":"Error fetching from elastic search database."},"exchange":{"actions":"Actions","add_quote":"Add","asks":"Sell orders","atr":"Average True Range","balance":"Balance","base_supply":"Base supply","bids":"Buy orders","borrow":"Borrow","borrow_short":"Borrow","buy":"Buy","buy_description":"Buy %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s","buy_min":"Buy at least","buy_sell":"Order Form","buysell_formatter":"{direction} {asset}","call":"Call Price","cancel_order_select_all":"Select all orders","cancel_selected_orders":"Cancel selected order(s)","change":"Change","chart_error":"Chart already exist","chart_height":"Chart height (pixels)","chart_hide":"Hide Charts","chart_load":"Load","chart_modal":"Chart options","chart_save":"Save","chart_type":"Chart type","checking_for_worth_less_settlement":"Checking if you can get a better price by selling to market, please wait..","confirm_buy":"Your order is %(diff)s times higher than the lowest ask, are you sure?","confirm_no_orders_buy":"You are placing a buy order in a market with no open sell orders. Are you certain you wish to proceed?","confirm_no_orders_sell":"You are placing a sell order in a market with no open buy orders. Are you certain you wish to proceed?","confirm_sell":"Your order is %(diff)s times lower than the highest bid, are you sure?","core_rate":"Fee Rate","custom_quote":"Add a custom quote","deposit":"Deposit","description":"Description","ema":"Exponential Moving Average","enter_chart_layout_name":"Enter Chart Layout Name","featured":"Top Markets","fee":"Fee","feed_price":"Feed Price","filter":"Filter...","flip":"Flip","global_settle":"Global Settlement","group_order_limit":"Group","hide":"Hide","highest_bid":"Highest bid","history":"Market trades","horizontal":"Horizontal","index":"Index","invalid_amount":"Invalid amount","invalid_price":"Invalid price","invert":"Invert the price","latest":"Latest","layout_name":"Layout Name","limit":"Limit","load_chart_layout":"Load Chart Layout","load_custom_charts":"Load custom charts","lowest_ask":"Lowest ask","maintenance":"Maintenance Call Price","market":"Market","market_depth":"Market Depth","market_frozen":"The owner of %(asset)s has disabled trading in this market.","market_name":"My Markets","market_picker":{"filter_by_issuer":"Filter by asset owner","find_by_asset":"Find by asset","results":"Results (%(total_assets)s)","search":"Asset name","search_for_asset":"Search for asset","search_mode":"Mode","show_all":"Show All","sub_title":"Find an asset to replace","title":"Market Picker","use":"Use"},"modified":"Modified","more":"Find markets","move_down":"Move down","move_up":"Move up","my_asks":"My asks","my_bids":"My bids","my_history":"My trades","my_orders":"My open orders","native":"Native","new":"New","no_asks":"No asks","no_balance":"Insufficient balance","no_bids":"No bids","no_data":"No data","no_orders":"No orders","order_book":"Order Book","order_depth":"Market Depth","order_grouping":"Order Grouping %(orderlimit)s%","orders":"Orders","others":"Others","overbought":"Overbought","oversold":"Oversold","panels_mirror":"Mirror Panels","period":"Time period (days)","price":"Price","price_alert":{"add_rule":"add rule","alert_when":"Alert me when","higher_than":"Higher Than","lower_than":"Lower Than","notification":{"higher_than":"The price of %(pair)s rose higher than %(expectedPrice)s and is now %(actualPrice)s","lower_than":"The price of %(pair)s fell lower than %(expectedPrice)s and is now %(actualPrice)s"},"price":"Price","title":"Price Alert","use_button":"Use \\"add rule\\" button to create price alert for "},"price_history":"Price Chart","price_market":"Market Price","quantity":"Quantity","quick_deposit":"Deposit %(asset)s","quick_deposit_bridge":"Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s","quick_deposit_bridge_button":"Use a Bridge","quick_deposit_gateway":"Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway","quick_deposit_gateway_button":"Use a Gateway","quick_deposit_tooltip":"Deposit %(asset)s, click to open options","quick_trade":"Quick trade","quick_trade_details":{"amount":"Amount","effective":"effective","feed_price":"Feed price","id":"Id","last_price":"Last market price","liquidity_penalty":"Liquidity penalty","market_fee":"Market fee","order":"Order","orders":"Orders","placeholder_receive":"Choose asset to receive","placeholder_sell":"Choose asset to sell","price":"Price","seller":"Seller","subscribe_to_market":"Subscribe to market","tooltip":"Enter at least three characters of an asset symbol to search","total":"Total","transaction_fee":"Transaction fee","your_price":"Your price"},"quote":"Quote currency:","quote_selection":"Modify quote selection","quote_supply":"Quote supply","receive":"Receive","remove":"Remove","rsi":"Relative Strength Index","save_custom_charts":"Save custom charts","save_new_chart_layout":"Save New Chart Layout ","scaled":"Scaled","search":"Search for more markets here","sell":"Sell","sell_description":"Sell %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s","settings":{"header":{"chart_options":"Chart options","general":"General","order_options":"Order Options","panel_grouping":"Panel Grouping","title":"Personalize"},"options":{"grouping_1":"Group 1","grouping_2":"Group 2","grouping_standalone":"Standalone","hidden_chart":"Hide chart","horizontal":"Horizontal","position_order_asset_opt1":"Orderbook above Orderform","position_order_asset_opt2":"Orderform above Orderbook","position_order_form_opt1":"Buy - Sell","position_order_form_opt2":"Sell - Buy","position_order_orders_opt1":"Buy - Sell","position_order_orders_opt2":"Sell - Buy","vertical":"Vertical"},"title":{"chart_height":"Height","chart_tools":"View Tools","chart_type":"Type","chart_zoom":"Allow Zoom","hide_function_buttons":"Hide function buttons","market_location":"Market location","market_trades":"Market Trades","my_trades":"My Trades","open_orders":"Open Orders","order_book_grouping":"Order Book Grouping","order_style":"Style","orderbook_auto_scroll":"Auto scroll","position_order_asset":"Vertical Orders / Asset","position_order_form":"Buy/Sell Asset","position_order_orders":"Buy/Sell Orders","reduce_scrollbars":"Reduce Scroll Bars","reverse_order_book":"Reverse Order Book","settlements":"Settlements","single_colum_order_form":"Single Column Order Form"},"tooltip":{"chart_height":"Define the height of the charts","chart_reload":"Changing this setting will reload the chart","chart_tools":"Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.","chart_type":"Switch between market depth and price charts, or disable charts","chart_zoom":"Allow chart zooming. Zooming is always disabled in tiny screen.","decrease_chart_height":"Decrease the height of the chart","hide_function_buttons":"Hide all buttons that can be managed within the personalize form","increase_chart_height":"Increase the height of the chart","market_location":"Which side to pin the vertical order book on. This will switch place with market panel","market_trades":"","my_trades":"","open_orders":"","order_book_grouping":"Group orders which are close together by a defined percentage","order_style":"Use vertical order book to pin it to the side panel","orderbook_auto_scroll":"Auto scroll orderbook for new orders. Disable to allow scrolling","panel_grouping":"Define panel grouping","position_order_asset":"Define the vertical order for the order form vs order book","position_order_form":"Define the horizontal order for the order form","position_order_orders":"Define the horizontal order for the order book","reduce_scrollbars":"Disable scroll bars by default","reload":"Changing this option will only affect after manually reloading","reverse_order_book":"Reverse order book to have buy orders on top","settlements":"","show_market_depth":"Show market depth","show_price_chart":"Show price chart","single_colum_order_form":"Enforce that Price, Quantity, Total, etc. are in one column (not floating)"}},"settle":"Settlement","settle_better_marketprice":"Market price is in favour","settle_better_settleprice":"Settlement price is in favour","settle_delay":"This asset will settle in %(hours)s hours","settle_delay_globally_settled":"This asset will settle instantly","settle_globally_settled":"Settle instantly","settle_globally_settled_tooltip":"This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)","settle_offset":"Settlement price offset: %(offset)s%","settle_orders":"Settle orders","settlement_date":"Settlement date","settlement_description":"Settlement of %(quoteAsset)s %(quoteName)s","settlement_hint":"You are attempting to settle {long}. Current price of {market_link}","settlement_of":"Settlement of","short":"Short","show_all_orders":"Show all %(rowcount)s orders","show_all_trades":"Show all %(rowcount)s trades","show_asks":"Show all asks","show_bids":"Show all bids","show_only_liquid":"Show liquid markets only","show_only_star_formatter":"Show {star_icon} only","sma":"Simple Moving Average","spread":"Spread","squeeze":"Margin Call Price","time":"Candlesticks","to_market":"Go to market","total":"Total","trading_pair":"Trading pair","value":"Value","vertical":"Vertical","vol_short":"Vol","volume":"Volume","volume_24":"24hr Volume","worth_less_settlement_warning":"The current market price of {market_link} is higher than settle price","your_price":"Your Call Price","zoom":"Zoom","zoom_all":"All"},"explorer":{"account":{"title":"Account"},"accounts":{"filter":"Filter accounts","filter_contacts":"Filter contacts","title":"Accounts"},"asset":{"actions":"Asset actions","asset_owner_responsible":"The asset symbol, description as well as its parameters are user defined (by the asset owner)","collateral":{"bid":"Bid Collateral","bid_price":"Bid price","bid_text":"Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.","remove_bid":"A bid can be removed by placing a zero collateral bid."},"collateral_bid":{"bid":"Bid Price","collateral":"Additional Collateral","debt":"Debt Covered","empty":"No collateral bids","included":{"no":"No","partial":"Partially","yes":"Yes"},"title":"Collateral Bids"},"cumulative":"Σ","fee_pool":{"accumulated_collateral_fees":"Accumulated collateral fees","claim_balance":"Claim fee pool balance","claim_collateral_fees":"Claim fees","claim_fees":"Claim fees","claim_pool_text":"The asset owner may withdraw funds from the fee pool using this form:","claim_text":"The asset owner may claim any accumulated fees here.","core_exchange_rate":"Core exchange rate (CER)","fund":"Fund the fee pool","fund_text":"Anyone can add %(core)s to the fee pool balance using this form:","pool_balance":"Pool balance","pool_text":"The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s.

The core exchange rate is the price at which %(asset)s are converted to %(core)s.","select_fee_asset":"Select asset to pay fee","title":"Fee Pool","unclaimed_issuer_income":"Unclaimed asset owner income","use_asset_as_default_fee":"Make selected asset default for paying fees","use_selected_asset":"Use selected asset"},"feed_producer":"Feed producer","feed_producer_text":"Approved feed producers may publish a new feed using the form below:","info":"Asset info","invalid":"The asset name %(name)s is invalid","margin_positions":{"click_to_switch_to_cumulative":"Click to switch between cumulative and position values","empty":"No margin positions","ratio_danger":"Position is below MCR and will be margin called","ratio_warning":"Position is near MCR and in danger of being margin called","title":"Margin positions"},"not_found":"The asset %(name)s does not exist","permissions":{"accounts_in_whitelist_market_fee_sharing":"Accounts included in Market fee sharing whitelist","blacklist_authorities":"Blacklist authorities","blacklist_markets":"Blacklist markets","max_market_fee":"Max market fee","max_supply":"Max supply","title":"Permissions","whitelist_authorities":"Whitelist authorities","whitelist_markets":"Whitelist markets"},"prediction_market_asset":{"prediction":"Prediction","resolution_date":"Resolution date","tooltip_prediction":"The prediction is a statement defined by the asset owner. If the statement is true, this prediction market asset should be resolved to a settlement price of 1 by the asset owner.","tooltip_resolution_date":"The resolution date is an informal statement when the asset owner intends to resolve this betting market."},"price_feed":{"external_feed_price":"Settlement price (derived from price feeds and other parameters)","feed_lifetime":"Feed lifetime (hours)","feed_price":"Feed price","global_settlement_price":"Global settlement price will be","global_settlement_trigger":"Global settlement happens at price","initial_collateral_ratio":"Initial collateral ratio (ICR)","initial_collateral_ratio2":"Initial collateral ratio (ICR, Set by asset owner)","maintenance_collateral_ratio":"Maintenance collateral ratio (MCR)","maintenance_collateral_ratio2":"Maintenance collateral ratio (MCR, Set by asset owner)","margin_call_fee_ratio":"Margin Call Fee Ratio (MCFR)","maximum_short_squeeze_price":"Maximum short squeeze price (MSSP)","maximum_short_squeeze_ratio":"Maximum short squeeze ratio (MSSR)","maximum_short_squeeze_ratio2":"Maximum short squeeze ratio (MSSR, Set by asset owner)","median_price_feeds":"Median of price feeds","min_feeds":"Minimum feeds","settlement_price":"Force Settlement price","title":"Price Feed"},"price_feed_data":{"core_exchange_rate":"CER","empty":"No valid feed producers","feed_price":"Feed price","initial_collateral_ratio":"ICR","maintenance_collateral_ratio":"MCR","maximum_short_squeeze_ratio":"MSSR","published":"Published","publisher":"Publisher","settlement_price":"Force Settlement Price","title":"Price Feed Data"},"settlement":{"black_swan_response_method":"Global settlement response method (BSRM)","current_settled":"Already settled supply","delay":"Delay","force_settle_fee_percent":"Force settlement fee","force_settlement":"Force Settlement","gs_auto_revive_price":"Auto Revive Price (without/with bids)","gs_collateral_valuation":"Collateral Valuation (with bids)","gs_description":"Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.","gs_included_on_revival":"Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.","gs_or":"or","gs_place_bid":"click here to place a bid","gs_revert":"Reviving","gs_revive":"Asset will be revived automatically if feed price is greater than auto revive price (bids included) or all debt is force settled","gs_see_actions":"see Asset actions","individual_settlement_debt":"Individual settlement debt","individual_settlement_fund":"Individual settlement fund","max_settle_volume":"Max. settlement volume each maintenance period","offset":"offset included","price":"Price","settle_remaining_volume":"Remaining settleable volume","settlement_funds":"Settlement Funds","settlement_funds_collateral_ratio":"Settlement fund collateral ratio","settlement_price":"Force settlement price","title":"Settlement"},"summary":{"asset_type":"Asset type","current_supply":"Current supply","issuer":"Asset owner","market_fee":"Market fee","market_fee_referral_reward_percent":"Market fee referral reward","market_fee_referral_taker_fee_percent":"Taker fee percent","stealth_supply":"Stealth supply"},"title":"Asset","whitelist":{"blacklist_authorities":"Blacklist authorities","blacklist_markets":"Market blacklist","enable_flag":"The whitelist flag must be enabled in order to set whitelist authorities","market_fee_enable_flag":"The market fee flag must be enabled in order to set whitelist","whitelist_authorities":"Whitelist authorities","whitelist_market_fee_sharing":"Market fee sharing whitelist","whitelist_markets":"Market whitelist"}},"assets":{"backing_asset":"Backing asset","blacklisted":"This asset is blacklisted, beware of scam attempts!","id":"ID","issuer":"Asset owner","market":"SmartCoins","precision":"Precision","prediction":"Prediction market assets","symbol":"Symbol","title":"Assets","units":"Units","user":"User Issued Assets"},"block":{"account_upgrade":"Account to upgrade","asset_issue":"Amount to issue","asset_update":"Asset to update","authorizing_account":"Authorizing account","call_limit":"Call limit, %(price)s","common_options":"Common options","count":"Transaction count","date":"Date","fee_payer":"Fee paying account","feed_price":"Feed Price, %(price)s","go_to":"Go to block","gs_support":"Global settlement limit, %(price)s","id":"Block ID","key":"Public key","lifetime":"Upgrade to lifetime member","listed_account":"Listed account","max_margin_period_sec":"Max margin period (s)","new_listing":"New listing","new_options":"New options","new_producers":"New feed producers","next_secret":"Next secret hash","op":"Operation","op_type":"Operation type","previous":"Previous","previous_secret":"Previous secret","settlement_price":"Force Settlement Price","short_limit":"Short limit","time":"Time","title":"Block","transactions":"Transaction count","trx":"Tx","witness":"Witness"},"blocks":{"active_committee_members":"Active committee members","active_witnesses":"Active Witnesses","avg_conf_time":"Average confirmation time","block_time":"Block time","block_times":"Block times","current_block":"Current Block","globals":"Global parameters","last_block":"Last block","recent":"Recent blocks","recently_missed_blocks":"Recently missed blocks","title":"Blockchain","transactions":"# of transactions","trx":"Transaction","trx_per_block":"Trx/block","trx_per_sec":"Trx/s"},"committee_member":{"title":"Committee member"},"committee_members":{"active":"Total number of active committee members","title":"Committee"},"fees":{"fee":"Standard Fee","feeeq":"(equivalent)","feeltm":"Lifetime Member Fee","feeltmeq":"(equivalent)","type":"Fee Type"},"proposals":{"authority_depth_warning":"This proposal may not get approved because this permission exceeds the maximum authority depth.","children_authority_depth_warning":"This proposal may not get approved because a permission exceeds the maximum authority depth.","failed":"Failed","failed_execute":"Approved, failed to execute.","no_reason_available_switch_node":"Reason of failure is available with core release >=3.1.0, please switch your node.","pending":"Pending","pending_approval":"Pending approval.","pending_review":"Approved, review time.","review":"Review","title":"Proposed transactions"},"witnesses":{"budget":"Remaining budget","card":"Card view","current":"Current witness","filter_by_name":"Filter...","last_confirmed":"Last confirmed","missed":"Blocks missed","next_vote":"Next vote update","participation":"Participation rate","pay":"Pay-per-block","rank":"Rank","table":"Table view","title":"Witnesses"},"workers":{"create":"Create a new worker proposal","create_text_1":"In order to create your new worker, please fill in the form below. The worker will be created using your currently active account, which must already be a lifetime member.","create_text_2":"Consider carefully the parameters you choose as they can not be changed once you\'ve published your worker.","daily_pay":"Daily pay (BTS)","date_text":"The start date should be at least a week into the future in order to allow people the time to discover, evaluate and vote for your worker.","name_text":"The name of your worker should be short and descriptive, something like this: \'Worker Purpose - Account Name\'","pay_text":"The daily pay defines how much you want to be paid per day and is defined in BTS. The current best practice is to define a salary in USD/CNY, and commit to burning whatever surplus you receive as a result of the BTS price increasing. As long as your worker is active and has sufficient votes to be above the refund worker, you will receive this daily salary.","period":"Duration","title":"Worker name","url_text":"You should supply a website, github document or google doc that describes in more detail the purpose of the worker and how you intend to use the worker pay.","vesting_pay":"Salary vesting period (days)","vesting_text":"The vesting period defines the number of days that worker earnings will vest before being fully claimable.","website":"Website"}},"external_service_provider":{"bridge":{"description":"Bridges are external service providers that allow you to swap assets in and out of the BitShares Blockchain. For example, you can send your BTC on the Bitcoin Blockchain to a Bridge, who will swap it and give you an equivalent amount of BTS or another Gateways UIA on the BitShares Blockchain (for a fee of course). Normally, a Bridge does not hold your funds, but trust is required that they send you back the proper amount of the target asset. As it is an external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.","short":"Bridge","what_is":"What is a Bridge?"},"disabled_asset_1":"This asset is managed by an external service provider (gateway). Currently deposits and withdrawals for this asset are disabled","disabled_asset_2":"For more information visit Settings -> Entry External Service Providers. For any issues or questions please contact the gateway operator directly.","expect_more":"If you expect to see more deposit and withdraw options for your assets, please check the External Service Providers in Settings > General.","gateway":{"description":"Gateways are external service providers that allow you to deposit, trade and withdraw assets into the BitShares Blockchain that are not native to it. For example, you can send your BTC on the Bitcoin Blockchain to a Gateway, who will in turn give you an UIA (user issued asset) on the BitShares Blockchain, with the promise that you can withdraw it again (for a fee of course). While you are holding such an UIA on the BitShares Blockchain, the Gateway becomes the custodian of your funds. As it is external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.","prefix":"Prefix","short":"Gateway","what_is":"What is a Gateway?"},"is_down":"The external provider that offers this service is currently not working correctly. You can check the status in the Settings (General > External Service Provider).","selector":{"cancel":"Cancel","choose_services":"Choose Services","landing":"Landing Page","name":"Name","not_now":"Not now","table_description":"The table below lists all Gateways and Bridges that are currently integrated with the BitShares UI, this does not reflect any kind of endorsement. It lists the Name (sorted alphabetically), the type (Bridge or Gateway, and if Gateway the asset prefix, e.g. RUDEX.BTC), a link to their landing page with further information and an affiliate link to the Gateways wallet (if exists, usually a branded version of this UI). Please do your own due dilligence.","title":"Choose your preferred Service Providers","type":"Type","use_none":"Use none","use_selected":"Use selected","wallet":"Wallet"},"welcome":{"explanation_dex":"BitShares offers a native decentralized exchange, the BitShares DEX. It is running completely on the blockchain with no need for centralized services, even the order matching is transparently on-chain.","explanation_later":"If you want to adjust this later on, you can also choose the external service providers in the Settings.","explanation_service_providers":"You can trade anything against everything, as long as the asset (token) is available on the BitShares Blockchain. For tokens that are not native to it there exist external service providers (so called Gateways and Bridges), that allow you to trade tokens like BTC on the BitShares DEX by providing you their own IOU (\'I owe you\') of it.","explanation_what_to_do":"You may choose which of those service providers you want to see readily available in the BitShares UI. To do so, click \'Choose Services\'. If you want to keep using the BitShares UI just like before, lick \'Not now\'.","first_line":"today, we want to give you some insight on the BitShares Blockchain and services around it.","hello":"Dear BitShares\' User"}},"fees":{"title":"Fees"},"footer":{"advanced_settings":"Advanced settings","backup":"A Backup is Required","block":"Block","brainkey":"Backup brainkey recommended","connected":"Connected","connection":"No Blockchain connection","disconnected":"Disconnected","latency":"Latency","loading":"Loading...","nosync":"Your active node is out of sync","synced":"Synced","title":"%(wallet_name)s","unsynced":"Out of sync","update_available":"UPDATE AVAILABLE"},"gateway":{"add_funds":"Quickly and easily add funds to your %(wallet_name)s account %(account)s. This service is provided by Openledger.","address":"Address","address_with_memo":"%(address)s with memo %(memo)s","agreement":{"hint":"I have read and agreed to","name":"《Service Agreement》","notice":"Please check the agreement to continue","register":"Agree"},"asset":"Asset","asset_search_deposit":"Search for an asset to deposit","asset_search_withdraw":"Search for an asset to withdraw","asset_to_deposit":"Asset to deposit:","asset_to_receive":"You will receive:","asset_to_withdraw":"Asset to withdraw:","asset_unavailable":"The gateway for %(asset)s is not in service","assets":{"bit":"bit%(asset)s is a derivative that tracks the real value of %(backed)s. It is 100%% decentralized, trustless and backed by collateral held by the blockchain in a smart contract.","bitcny":"bitCNY can be deposited or withdrawn 1:1 to real Yuan using a gateway service such as Magic Wallet. For more info, see https://www.magicw.net/","bridge":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by CryptoBridge.","gdex":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by GDEX.","iob":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by ioxbank.com.","open":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by OpenLedger.","pirate":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by PirateDEX.","rudex":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Rudex.","trade":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Blocktrades.","win":"","xbtsx":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by XBTS."},"balance":"Current balance","balance_asset":"Current %(asset)s balance","bitkapital_receive":"You will receive","bitkapital_text":"Choose an asset to deposit or withdraw:","bitkapital_withdraw":"You are withdrawing","bitspark":{"support_block":"For DEPOSIT AND WITHDRAWAL issues using \\"BitSpark TRANSFER SERVICE\\", please contact BitSpark at:"},"bridge":"Bridge","bridge_text":"A bridge lets you exchange an asset into another one, for example BTC to BTS.","calc":"Calculating","choose_deposit":"Please select the coin you would like to deposit","choose_withdraw":"Please select the coin you would like to withdraw","citadel":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact citadel.li at:","under_construction":"Under Construction"},"contact_TRADE":"Contact Blocktrades","convert":"Internal conversion","convert_coin":"Convert to %(coin)s (%(symbol)s)","convert_now":"Convert now","copy_address":"Copy address","copy_memo":"Copy memo","deposit":"Deposit","deposit_address":"Deposit address","deposit_from_wallet":"Deposit from wallet","deposit_history_status":{"confirming":"deposit confirming","fail":"fail","success":"success","transfering":"transfering","waiting":"waiting for deposit"},"deposit_inst":"Deposit instructions","deposit_limit":"Deposit limit","deposit_notice_delay":"(new address can be generated once per 5 minutes)","deposit_summary":"Deposit summary","deposit_to":"Please send your %(asset)s to the address below","deposit_warning":"Sending any other currency to the %(asset)s address will result in the loss of your deposit","deposit_warning_memo":"Deposit %(asset)s must contains memo, otherwise it won\'t be credited","fee":"Gateway fee","fiat":"Fiat","fiat_text":"Note: Fiat gateways are closed till further notice. Sorry for the inconvenience! Please follow our latest news and updates here blog.openledger.info","frozen":"The user account %(account)s was frozen","gateway":"Gateway","gateway_deposit":{"confirmations":{"last_irreversible":"Your deposit will be deposited after transaction will become irreversible","n_blocks":"Your deposit will be deposited after %(blocks)s confirmations from the network"}},"gateway_text":"Choose whether you want to make a deposit or withdrawal here","generate":"Generate","generate_new":"Get new address","generate_new_memo":"Get new memo","iban":"IBAN","info":"Info","intermediate":"Intermediate account","inventory":"Inventory","iob":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact ioxbank at:","under_construction":"Under Construction"},"limit":"Limit: %(amount)s %(symbol)s","limit_withdraw_asset":"Min: %(min)s, Max: %(max)s","limit_withdraw_asset_max":"Maximum withdraw: %(min)s %(coin)s","limit_withdraw_asset_min":"Minimum withdraw: %(min)s %(coin)s","limit_withdraw_asset_none":"None","logout_now":"Logout now","memo":"Memo","meta":{"open_website":"Open Website"},"min_deposit_warning_amount":"Minimum Deposit: %(minDeposit)s %(coin)s","min_deposit_warning_asset":"IMPORTANT: Send only %(coin)s to this deposit address on the blockchain native to %(coin)s. Sending less than %(minDeposit)s %(coin)s or any other currency to this address may result in the loss of your deposit.","over_limit":"Limit Reached","phase_out_warning":"We recommend using the new {deposit_modal_link} and {withdraw_modal_link} modals as this page will be phased out","piratecash":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact PirateCash at:","under_construction":"Under Construction"},"please_generate_address":"Please, get new address ","purchase":"Purchase %(asset)s","purchase_1":"Quickly and easily purchase %(outputAsset)s using %(inputAsset)s from an external wallet. This service is provided by Blocktrades","purchase_notice":"%(inputAsset)s sent to this address will show up as %(outputAsset)s","purchase_notice_memo":"Memo required for proper routing to your account","purchase_notice_tag":"Tag required for proper routing to your account","receive_account":"Receiving account:","recent_deposit":"Recent deposits","recent_withdraw":"Recent withdrawals","rudex":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact RuDEX at:","under_construction":"Under Construction"},"scan_qr":"Scan QR","service":"Transfer Service","status":"Status","support_block":"For DEPOSIT AND WITHDRAWAL issues using \\"OpenLedger TRANSFER SERVICE\\", please contact Openledger at:","support_gdex":"For support, please contact GDEX","symbol":"Symbol","time":"Time","title":"Deposit & Withdraw","transaction_history_info":" %(amount)s %(assetName)s with trancation id: %(txid)s ","unavailable":"The gateway service for this asset is currently down, please try again later","unavailable_CITADEL":"The Citadel Bridge is down or not responding","unavailable_OPEN":"The OpenLedger Gateway is down or not responding","unavailable_RUDEX":"The RuDEX Gateway is down or not responding","unavailable_TRADE":"The Blocktrades Bridge is down or not responding","unavailable_bridge":"The bridge service for this asset is currently down, please try again later","use_copy_button":"PLEASE USE COPY BUTTON TO MAKE COPY OF ADDRESS OR MEMO ON THIS PAGE","user_unavailable":"User informaction is current unavailable, please try again later","valid_address":"Please enter a valid %(coin_type)s address","website":"Visit the website","withdraw":"Withdrawal","withdraw_coin":"Withdraw %(coin)s (%(symbol)s)","withdraw_funds":"You are going to withdraw funds from your %(wallet_name)s account to your external %(asset)s account.","withdraw_history_status":{"audited":"auditting completed","auditing":"withdraw auditing","confirming":"confirming","fail":"fail","refused":"auditting failed","success":"success","transfering":"transfering"},"withdraw_inst":"Withdrawal instructions","withdraw_now":"Withdraw now","withdraw_placeholder":"Please enter your %(asset)s address","withdraw_summary":"Withdrawal summary","withdraw_to":"Click the button below to open a %(asset)s withdrawal","xbtsx":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact XBTS at:","under_construction":"Under Construction"},"your_account":"Your account"},"global":{"cancel":"Cancel","close":"Close","confirm":"Confirm","field_type":{"account":"account"},"help":"Help","not_found":"Not found","return_to_top":"Return to top","scan_qr_code":"Scan QR code","set":"Set"},"header":{"account":"Account","account_notify":"The active account is now %(account)s","account_value":"Account value","accounts_manage":"Manage Accounts","advanced":"Advanced","collateral_ratio":"Collateral ratio","create_account":"Create Account","create_asset":"Create Asset","current":"Current Account","dashboard":"Portfolio","deposit-withdraw":"Deposit/Withdraw","deposit_legacy":"or Legacy Deposit","exchange":"Exchange","explorer":"Explore","help":"Help","insight":"Insight","lock":"Log out (lock the local wallet)","lock_short":"Log out","locked_tip":"
Click to login.

Closing the browser window will also log you out.","logout":"Logout","p2p_lending":"Credit Offer","payments":"Send","payments_legacy":"or Legacy Send","poolmart":"Liquidity Pools","settings":"Settings","showcases":"Spotlight","title":"%(wallet_name)s UI","unlock":"Local Wallet Login","unlock_password":"Cloud Wallet Login","unlock_short":"Login","unlocked_tip":"
Click to log out.

Closing the browser window will also log you out.","update_asset":"Update Asset","withdraw_legacy":"or Legacy Withdraw"},"htlc":{"claim_period":"Seconds to claim","claim_period_due":"Claimable until","id":"HTLC id","preimage":"Preimage","preimage_explanation":"The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC","preimage_hash":"Preimage hash","preimage_hash_explanation":"The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: \'(, ): \'","redeemer":"Redeemer","seconds_to_add":"Add seconds to claim period"},"icons":{"adjust":"Adjust margin position","assets":"Assets","checkmark_circle":{"approved":"Approved","operation_succeed":"Operation succeed","yes":"Yes"},"chevron_down":{"gateways":"Show more gateways","other":"Show more items","transactions":"Show more transactions"},"clippy":{"copy":"Copy to clipboard","withdraw_full":"Withdraw the full balance"},"clock":"Please check your computer\'s clock","cog":"Settings","cogs":"Settings","connect":"Connect to this API Node","connected":"API Node is connected","cross_circle":{"cancel_order":"Cancel order","close_position":"Close position","hide_asset":"Hide asset","hide_market":"Hide market","operation_failed":"Operation failed","remove":"Remove"},"dashboard":"Portfolio","debug-report":"Report your error log console, or create a screenshot","deposit":{"deposit":"Deposit","deposit_withdraw":"Deposit/Withdraw"},"disconnected":"API Node is disconnected","dollar":{"borrow":"Borrow","buy":"Buy"},"download":"Download new version of %(wallet_name)s UI","excel":"Download .csv file","eye":"Hide Node","eye-striked":"Show Node","fees":"Fees","fi_star":{"account":"Add/remove account from favorites","market":"Add/remove market from favorites","sort_accounts":"Sort by favorites","symbol":"Add/remove symbol from favorites"},"filter":"Filter","folder":"Accounts","hamburger":"Open menu","hamburger_x":"Close menu","hourglass":"Vesting balances","info_circle_o":"Info","key":"Key","list":"Whitelist","locked":{"action":"Click to unlock your account to perform this action","common":"Click to unlock your account","enable_auto_scroll":"Enable auto scroll"},"manage_accounts":"Manage Accounts","minus_circle":{"disapproved":"Disapproved","no":"No","remove_contact":"Remove contact from the list","wrong_address":"Unable to generate address"},"news":"News","order_grouping":"Order Grouping Active","plus_circle":{"add_contact":"Add contact to the list","show_asset":"Show asset","show_market":"Show market"},"poolmart":{"title":"Liquidity Pools"},"power":"Login","question_circle":"Help","reverse_orderbook":"Reverse orderbook","server":"Explore","settle":"Settle","share":"About","shuffle":"Switch trading pair","text":{"membership_stats":"Membership stats","signed_messages":"Signed messages"},"thumb_tack":"Pin panel to the side","thumb_untack":"Unpin panel","thumbs_up":"Voting","times":"Remove API Node","trade":{"exchange":"Exchange","trade":"Trade"},"transfer":"Send","unlocked":{"common":"Click to lock your account","disable_auto_scroll":"Disable auto scroll"},"user":{"account":"Account","create_account":"Create account","following":"You are following this user"},"warning":"Permissions","withdraw":"Withdraw","zoom":"Search"},"incognito":{"mode":"Private/Incognito:","warning":"If you close your browser without backing up your wallet, you will lose this account permanently."},"invoice":{"amount":"Amount","date":"Date","invalid_format":"Invoice has invalid format","invoice_data_found":"Invoice data found","items":"Items","memo":"Memo","note":"Note","paid_by":"Paid by","pay":{"barcode":"Barcode","invoice_qr_code":"Invoice QR code","payment_qr_code":"Payment QR code","title":"Pay"},"pay_button":"Pay %(asset)s to %(name)s","pay_invoice":"Pay Invoice","pay_to":"Pay To","payment_proof":"Payment proof","payment_request":"Payment request","print_receipt":"Print receipt","raw_invoice_data":"raw invoice data","receipt_total":"Receipt Total","request":{"action":"Action","create_invoice_string":"Create invoice string","currency":"Currency","identifier":"Identifier","identifier_tooltip":"The identifier needs to be used as the memo/message when the request is paid.","items":"Items","note":"Note","note_tooltip":"You can attach a note to this payment request, this can be any additional information.","payment_asset":"Payment Asset","payment_asset_tooltip":"This payment request will be paid with one transfer, and will be requesting to be paid in the indicated asset.","price":"Price","quantity":"Quantity","recipient_account":"Recipient Account","recipient_name":"Recipient Name","recipient_name_tooltip":"You can define an arbitrary plaintext name for yourself to indicate who is being paid. Must not be a BitShares account name.","submit":"Submit","title":"Request"},"tooltip_payment_proof":"Your account history has been searched for a match of sender, recipient and asset. This is an educated guess, but there is no direct link between this transfer and the shown invoice written on-chain.","total":"Total","transaction":"Transaction","unit":"Unit","use_invoice_data":"Use invoice data"},"languages":{"de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","ru":"Русский","tr":"Türkçe","zh":"简体中文"},"login":{"browseFile":"browse your files","browseFileLabel":"Browse your backup file","dropFile":"Drop your backup file in this area or ","invalidFormat":"Invalid format!","loginButton":"Login","selectDifferent":"Select different file","supportWarning":"Warning! Your browser doesn\'t support the necessary file operations to restore your backup. We recommend to use Chrome or Firefox browsers for recovery.","title":"Select Login Type","withoutBinFile":"I don\'t have .bin-file"},"markets":{"base":"Base asset","core_rate":"Core rate","filter":"Filter","market_search":"Market Search","preferred":"My Favorite Markets","search":"Search","supply":"Supply","title":"Markets"},"migration":{"announcement_1":"In an effort to provide enhanced security for the web-based wallet, we are migrating it, effective immediately to the address below. Please be sure to update any bookmarks you may have.","text_1":"Local wallet detected","text_2":"Please backup your wallet now and restore the backup file to %(wallet_url)s, which will be your new address for the web wallet. Thanks for your continued support.","text_3":"Please use %(wallet_url)s from now on, your existing credentials will let you login there as well.","title":"Notice"},"modal":{"buy":{"asset":"Asset","bridge":"Bridge","title":"Buy"},"cancel":"cancel","close":"close","committee":{"confirm":"CONFIRM","create_committee":"Become a committee member","from":"From","text":"After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
  • Transaction fees
  • Parameters of BitAssets (e.g. market fees)
  • Blockchain parameters (e.g. block size & interval)
  • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
  • Other governance matters
Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.","url":"URL","web_example":"Enter link to your committee proposal post"},"confirmation":{"accept":"Yes","cancel":"No","title":"The address you entered does not appear valid, are you sure you want to make the withdrawal?"},"convert":{"amount":"Amount to Convert","submit":"Ok"},"create_lock":{"amount":"Amount to lock","from":"Account to lock from","submit":"Lock","targetType":"Lock Type","title":"Create Lock","type_warning":"Please choose a lock type.","warning_message":"Note that locked assets must be requested to unlock, and can only be claimed back after the unlock period has passed. Current unlock period would be %(lock_days)s days"},"deposit":{"address_generation_error":"Unable to generate address","amount":"Amount to Deposit","asset":"Asset","bts_transfer_description":"It\'s easy to receive BTS from anywhere. As long as BTS is sent to your account name it will show up in your wallet. This QR code also contains your account name.","cancel":"Cancel","close":"Close","header":"Deposit to %(account_name)s","header_short":"Deposit","no_assets":"No depositable assets available","submit":"Deposit"},"deposit_withdraw":{"disabled":"%(gateway)s gateway service disabled","gateway":"Gateway","no_gateway_available":"No gateway available","select_gateway":"Please select a gateway operator","wallet_error":"Gateway wallet disabled"},"issue":{"amount":"Amount to Issue","submit":"Issue Asset","to":"Issue To"},"ok":"OK","proposals":{"actions":{"approve":"Approve proposal","delete":"Permanently reject proposal","reject":"Reject proposal"},"approval_add":"Approval to add","approval_remove":"Approval to remove","key_approval_add":"Key approval to add","key_approval_remove":"Key approval to remove","pay_with":"Pay with account"},"qrcode":{"input_message":"Please enter a password used to encrypt the QR code.
An empty password will show an unencrypted QR code.","label":"qrcode","title":"Private key QR code"},"report":{"button":"Report","copyLog":"Copy Log","copyScreenshot":"Right click in Image Preview -> Copy","copySuccess":"Copy ended","explanatory_text_1":"This report collects the last entries of the error log and takes a screenshot of the current view, without the dialog opened. Click on entry to see the details.","explanatory_text_2":"Please report the issue you have found to GitHub:","explanatory_text_3":"You can copy and paste (CTRL+C & CTRL+V) the screenshot and the log entries directly into the issue content text area. This works also for Telegram chat.","explanatory_text_4":"If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:","hideLog":"Hide Log","hideScreenshot":"Hide screenshot","lastLogEntries":"Last 20 log entries","screenshot":"Screenshot","showLog":"Show Log","takeScreenshot":"Show screenshot","title":"Error report"},"reserve":{"amount":"Amount to burn","from":"Account to burn from","submit":"Burn","title":"Burn (reserve) asset","warning_message":"Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!"},"save":"save","send":{"header":"Send from %(fromName)s","header_propose":"Propose Send from %(fromName)s"},"settle":{"amount":"Amount to settle","delay":"Estimated delay: %(amount)s hours","max_volume":"Max. settlement volume: %(amount)s %(asset)s","remaining_volume":"Remaining settleable volume: %(amount)s %(asset)s","submit":"Settle asset","title":"Request settlement of %(asset)s"},"withdraw":{"address":"Withdraw to Address","address_not_valid":"Invalid address","amount":"Amount to Withdraw","available":"Available: ","bitshares_account":"Send to %(wallet_name)s Account","cancel":"Cancel","cannot_cover":"Insufficient funds!","estimated_value":"Estimated Value","fee":"Fee","gateway_fee":"Gateway Fee","header":"Withdraw","memo":"Memo","no_assets":"No withdrawable assets available","no_estimate":"No estimate available for this object","no_gateways":"Sorry, but there are no gateways available to handle this withdrawal","public_key":"Public key","quantity":"Quantity","submit":"Withdraw","tag":"tag","withdraw":"Withdraw"},"witness":{"confirm":"CONFIRM","create_witness":"Become a witness member","enter_public_signing_key":"Enter your public signing key","invalid_key":"Public Key is invalid","public_signing_key":"Public Signing Key","text":"After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
  • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
  • participation in block production and rolling releases of the testnet
  • provision of a public node for the community
  • publication of price feeds for the BitAssets
Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.","url":"URL","web_example":"Enter link to your witness proposal post","witness_account":"Witness Account"}},"news":{"author":"Author","errors":{"fetch":"Ops... Something went wrong fetching the news"},"news":"News","subject":"Subject"},"notifications":{"account_create_failure":"Failed to create account: %(account_name)s - %(error_msg)s","account_permissions_update_warning":"Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you\'re doing before modifying account authorities!","account_wallet_create_failure":"Failed to create wallet: %(error_msg)s","asset_issue_failure":"Failed to issue the asset, probably due to an invalid amount being issued","backup_file_save_unsupported":"File saving is not supported","balance_claim_error":"Error claiming balance: %(error_msg)s","exchange_enter_valid_values":"Please enter a valid amount and price","exchange_insufficient_funds_for_fees":"Insufficient funds to pay fees","exchange_insufficient_funds_to_place_order":"Insufficient funds to place order, you need at least %(amount)s $(symbol)s","exchange_unknown_error_place_order":"Unknown error. Failed to place order for %(amount)s %(symbol)s","exchange_unknown_error_place_scaled_order":"Unknown error. Failed to place Scaled Order","import_keys_already_imported":"This wallet has already been imported","import_keys_error":"Account %(account_name)s had a private key import error: %(error_msg)s","import_keys_error_unknown":"Key import error: %(error_msg)s","invalid_password":"Invalid Password","password_change_failure":"Unable to change password: %(error_msg)s","password_change_success":"Password changed","wallet_unlock_different_block_chain":"This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s","worker_create_failure":"Failed to create worker: %(error_msg)s"},"openledger":{"deposit_amount":"Deposit Amount","deposit_details":"Details","deposit_none":"No deposits","header_fiat":"Fiat","header_transaction_history":"Transaction history","loading":"Loading...","refresh_transaction_history":"Refresh","retry":"Retry","show_transaction_history":"Show transaction history","status":"Status","withdraw_amount":"Withdrawal Amount","withdraw_none":"No withdrawals"},"operation":{"annual_upgrade_account":"{account} was upgraded to annual member","asset_claim_pool":"{account} claimed {amount} from asset {asset}\'s fee pool","asset_create":"{account} created the asset {asset}","asset_fund_fee_pool":"{account} funded {asset} fee pool with {amount}","asset_global_settle":"{account} requested global settlement of {asset} at {price}","asset_issue":"{account} issued {amount} to {to}","asset_reserve":"{account} burned (reserved) {amount}","asset_settle":"{account} requested settlement of {amount}","asset_settle_cancel":"{account} cancelled settlement of {amount}","asset_settle_instant":"{account} settled {amount} instantly at {price}.","asset_update":"{account} updated the asset {asset}","asset_update_feed_producers":"{account} updated the feed producers for the asset {asset}","asset_update_issuer":"{from_account} transferred {asset} to {to_account}","balance_claim":"{account} claimed a balance of {amount}","bid_collateral":"{bid_account} bid {collateral} for {debt}","blacklisted_by":"{lister} blacklisted the account {listee}","call_order_update":"{account} changed {debtSymbol} debt by {debt} and collateral by {collateral}","committee_member_update_global_parameters":"{account} updated the global committee parameters","credit_deal_expired":"{account} credit deal has expired.","credit_deal_repay":"{account} repays {amount} to credit offer with fee {fee}","credit_offer_accept":"{account} borrows {amount} from credit offer","credit_offer_create":"{account} create a credit offer of {amount} with fee rate {fee}","credit_offer_delete":"{account} deleted credit offer {id}","credit_offer_update":"{account} update a credit offer {id}","fill_order_buy":"{account} bought {amount} at {price} for order #%(order)s","fill_order_sell":"{account} sold {amount} at {price} for order #%(order)s","htlc_create":"{from} locked {amount} for {to} to redeem until {lock_period}","htlc_extend":"{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}","htlc_redeem":"{redeemer} request to redeem from HTLC {htlc_id}","htlc_redeemed":"{to} redeemed {amount} from HTLC {htlc_id} of {from}","htlc_refund":"{to} got refund of HTLC {htlc_id}","lifetime_upgrade_account":"{account} was upgraded to lifetime member","limit_order_buy":"{account} placed order %(order)s to buy {amount} at {price}","limit_order_cancel":"{account} cancelled order #%(order)s","limit_order_sell":"{account} placed order %(order)s to sell {amount} at {price}","liquidity_pool_create":"{account} created liquidity pool {id} with {asset_a} and {asset_b}","liquidity_pool_delete":"{account} deleted liquidity pool {id}","liquidity_pool_deposit":"{account} added liquidity {amount_a} and {amount_b} to liquidity pool {id}","liquidity_pool_exchange":"{account} exchanged {amount_a} for {amount_b} from liquidity pool {id}","liquidity_pool_withdraw":"{account} removed liquidity {amount_a} and {amount_b} from liquidity pool {id}","no_recent":"No recent transactions","override_transfer":"{issuer} transferred {amount} from {from} to {to}","pending":"pending %(blocks)s blocks","proposal_create":"{account} created a proposal","proposal_delete":"{account} deleted a proposal","proposal_update":"{account} updated a proposal","publish_feed":"{account} published feed price of {price}","reg_account":"{registrar} registered the account {new_account}","samet_fund_borrow":"{account} lent {amount} from flash loan {id}","samet_fund_create":"{account} created flash loan of {amount} with fee rate {fee}","samet_fund_delete":"{account} delete flash loan {id} with get back {amount}","samet_fund_repay":"{account} repays flash loan {id} {amount} with fee {fee}","samet_fund_update":"{account} update flash loan {id}","set_proxy":"{account} set {proxy} as their voting proxy","ticket_create":"{account} locked away {amount} in a ticket","ticket_types":{"0":"Liquid","1":"Claimable 180 days after unlock request","2":"Claimable 360 days after unlock request","3":"Claimable 720 days after unlock request","4":"Locked forever","liquid":"Liquid","lock_180_days":"Claimable 180 days after unlock request","lock_360_days":"Claimable 360 days after unlock request","lock_720_days":"Claimable 720 days after unlock request","lock_forever":"Locked forever"},"transfer":"{from} sent {amount} to {to}","transfer_account":"{account} ownership transferred to {to}","unknown_operation":"Unknown operation","unlisted_by":"{lister} unlisted the account {listee}","update_account":"{account} updated their account data {change}","vesting_balance_withdraw":"{account} withdrew vesting balance of {amount}","whitelisted_by":"{lister} whitelisted the account {listee}","witness_create":"{account} was upgraded to become a witness","witness_pay":"Withdrew witness pay to account","witness_receive":"Received witness from witness","witness_update":"{account} update its witness info","worker_create":"{account} created a worker proposal with daily pay of {pay}"},"page404":{"asset_not_found_subtitle":"That asset does not exist","home":"Home","market_not_found_subtitle":"That market does not exist","page_not_found_subtitle":"This page does not exist","page_not_found_title":"404 page not found"},"pagination":{"newer":"Newer","older":"Older"},"poolmart":{"liquidity_pools":{"amount_to_sell":"Amount to sell","asset_a":"Asset A","asset_a_qty":"Asset A QTY","asset_b":"Asset B","asset_b_qty":"Asset B QTY","confirm_delete_pool":"Are you sure you want to delete the pool?","delete_pool":"Delete","exchange":"Exchange","min_to_receive":"Min to receive","need_stake_first":"Need Stake The Pool First!","pool_id":"Pool Id","share_asset":"Share Asset","stake":"Stake","stake_unstake":"Stake/Unstake","taker_fee_percent":"Taker Fee","taker_fee_percent_rate":"Taker Fee Rate","title":"Pools","unstake":"Unstake","withdrawal_fee_percent":"Withdrawal Fee"}},"prediction":{"add_opinion_modal":{"amount":"Amount","condition":"Condition","no":"NO","probability":"Probability (0...1)","resolution":"Resolution","symbol":"Symbol","title":"Add Prediction Offer","warning":"Set amount","yes":"YES"},"create_market_modal":{"backing_asset":"Backing asset","commission":"Commission (in %)","condition":"Condition","description":"Description","resolution_date":"Resolution date","select_date_and_time":"Select date and time","symbol":"Symbol","title":"Create prediction market","tooltip_backing_asset":"The backing asset will be used to pay the premium, i.e. it is the leverage that participants use.","tooltip_commission":"Every participant pays the commission when opposing opinions on the prediction are being matched. On the blockchain, the commission is the market fee of this new asset.","tooltip_condition":"The condition is a statement that can be resolved unambiguous to correct or incorrect at the resolution state.","tooltip_description":"The description gives background information that help the user understand the significance of the prediction.","tooltip_resolution_date":"The point in time at which the prediction will be resolved. This needs to be done manually by you as the asset owner.","tooltip_symbol":"A prediction market asset has a symbol just like any other assets. Pick a symbol with 5 or more letters to minimize the creation fee.","warning":"Fill all blanks"},"details":{"add_prediction":"Add prediction","all":"All","amount":"Amount","cancel":"Cancel","commission":"Commission","fee":"Fee","i_think_that":"I think that the prediction","incorrect":"Is incorrect","list_of_current_prediction_offers":"List of current prediction offers","oppose":"Oppose","potential_profit":"Potential Winnings","predicated_likelihood":"Predicated Likelihood","prediction":"Prediction","predictor":"Predictor","premium":"Premium","proves_true":"Proves true"},"overview":{"action":"Action","all":"All","create_market":"Create Prediction Market","description":"Description","expiry":"Resolution date","hide_invalid_asset":"Hide invalid assets","hide_unknown_houses":"Hide unknown houses","issuer":"House","loading":"Loading...","market_confidence":"Market confidence","market_predicated_likelihood":"Market predicated likelihood","no":"No","odds":"Odds","open":"Open","past_resolution_date":"Past Resolution Time","prediction":"Prediction","resolve":"Resolve","yes":"Yes"},"resolve_modal":{"prediction":"Prediction","proven_true":"... has proven true","resolution":"Resolution","symbol":"Symbol","the_prediction_has":"The prediction ...","title":"Resolve Prediction Market Asset","was_incorrect":"... was incorrect"},"tooltips":{"add_prediction":"A prediction is reflected as a limit order on the market of the prediction market asset with its collateral. This lets you create a buy order (you agree with the prediction), or a sell order with previous borrowing of the prediction market asset (you disagree with the prediction). You can also oppose one of the existing predictions listed below, which correlates to matching one of the existing limit orders on the blockchain.","create_prediction_market_asset":"A prediction market is a special kind of SmartCoin. This lets you create such a prediction market asset with inputs tailored for this purpose.","hide_invalid_asset":"Per default the table below only shows prediction market assets that meet common standards required for a consistent user experience (prediction and resolution date are given, and reasonable market fee). Uncheck this to show all assets that exist on the blockchain, and make sure you know what you are doing.","hide_unknown_houses":"Per default the table below only shows prediction market assets of known asset owners that meet requirements to increase their trustworthiness. As a participant, you need trust in the asset owner such that the asset will be resolved according to the real world outcome. Uncheck this to show all asset owners that exist on the blockchain, and make sure you know what you are doing. If you are the owner of a prediction market asset and want to be included in the default list, please contact the BitShares community.","oppose_is_incorrect":"You are opposing someone that thinks the prediction is incorrect. That means, you think the prediction will prove true. On the blockchain that reflects as buying and hodling the prediction market asset.","oppose_proves_true":"You are opposing someone that thinks the prediction proves true. That means, you think the prediction will be incorrect. On the blockchain that reflects as borrowing and selling the prediction market asset.","what_is_a_prediction_market_asset":"A prediction market asset is a special kind of asset that allows you to agree or disagree with the prediction statement of the asset and put collateral behind your opinion. It can be created by any user, and if you are participating you need to trust the asset owner to properly reflects the real world outcome on the blockchain.","what_is_a_prediction_offer":"A prediction offer reflects limit orders on the market of the prediction market asset and its collateral. Agreement with the prediction (Prediction proves true) means that you want to buy the prediction market asset, disagreement (Prediction is incorrect) means that you borrow the prediction market asset and sell it"}},"proposal":{"action":"Actions","add":"Add","add_vote":"Add vote for","approve":"Approve","approvers":"Approver(s)","asset_create":"Create the asset %(asset)s using the account {account}","asset_issue":"Issue {amount} to {to} using {account}","asset_reserve":"Burn (reserve) {amount} using {account}","asset_settle":"Request a settlement of {amount} for {account}","asset_update":"Update the asset {asset} using the account {account}","call_order_update":"Change {account} {debtSymbol} debt by {debt} and collateral by {collateral}","changes_to_active":"Changes to active","changes_to_memo":"Changes to memo","changes_to_owner":"Changes to owner","committee_member_update_global_parameters":"Update committee global parameters by {account}","danger_operation":"Dangerous operation","delete":"Permanently reject","expires":"Expires","feed_producer":"Update the feed producers for the asset {asset} using the account {account}","limit_order_buy":"Place an order to buy {amount} at {price} for {account}","limit_order_create":"Place an order to buy %(buy_amount)s for %(sell_amount)s for %(account)s","limit_order_sell":"Place an order to sell {amount} at {price} for {account}","override_transfer":"Transfer {amount} from {from} to {to} by authority of {issuer}","permission_changes":"Permission changes","proposals":"Proposals","reject":"Reject","remove":"Remove","remove_vote":"Remove vote for","set_threshold":"Set threshold to %(threshold)s","status":"Status","transfer":"Transfer {amount} from {from} to {to}","update":{"active_approvals_to_add":"Active approvals to add","active_approvals_to_remove":"Active approvals to remove","key_approvals_to_add":"Key approvals to add","key_approvals_to_remove":"Key approvals to remove","owner_approvals_to_add":"Owner approvals to add","owner_approvals_to_remove":"Owner approvals to remove"},"update_account":"Update account data for {account} {change}","updated":{"active_approvals_to_add":"Active approval(s) added","active_approvals_to_remove":"Active approval(s) removed","key_approvals_to_add":"Key approval(s) added","key_approvals_to_remove":"Key approval(s) removed","owner_approvals_to_add":"Owner approval(s) added","owner_approvals_to_remove":"Owner approval(s) removed"},"vesting_balance_withdraw":"Withdraw {amount} from vesting balance of {account}","votes":"Votes"},"proposal_create":{"expiration_time":"Expiration time","fee_paying_account":"Fee paying account","id":"Proposal object id","proposed_operations":"Proposed operations","review_period":"Review period begin"},"proposal_delete":{"using_owner_authority":"Using owner authority"},"propose":"Propose","qr_address_scanner":{"address_found":"Address found","amount":"Amount","retry":"Retry","use_address":"Use Address"},"refcode":{"claim":"Claim","claim_refcode":"Claim Referral Code","enter_refcode":"Enter referral code","refcode_optional":"Referral Code (optional)"},"registration":{"accountConfirmation":"I have written down or otherwise stored my username and password.","accountDescription":"Please keep your password in a safe place. Don’t share it with any third-parties or send it online.","accountLoginByValue":"Account name + Password","accountModelTitle":"By Account Name and Password","accountNote":"If you forget your passphrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!","attention":"Attention","backUpRestoreKey":"Back up and restore Account","checkboxRecover":"I understand that no one can recover my password or .bin file if I forget or lose it.","checkboxRemember":"I have memorized or otherwise stored my password and I safely kept downloaded .bin file.","checkboxUploaded":"I understand that .bin file must be used during the login process and without .bin file I will lose access to my funds.","continue":"Continue","copyPassword":"Copy password","createAccountTitle":"Create Account by .bin-file","createByPassword":"Create Account by Name and Password","downloadFile":"Download file","loginByKey":"Login by","passwordPlaceholder":"Minimum 7 characters","recommended":"recommended","securityAccountModel":"Medium","securityKey":"Security","securityWalletModel":"High","select":"Select","title":"Registration","walletDescription":"A .bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to use this file to login to your account in the future.","walletLoginByValue":".bin-file + Password","walletModelTitle":"By .bin-file","walletNote":"Please keep in mind, that BitShares doesn\'t store users passwords and couldn\'t recover users accounts after password loss.","whyBinFile":"Why do I need a .bin-file?"},"scaled_orders":{"action":{"buy":"Buy","sell":"Sell","title":"Action"},"distribution":{"flat":"Flat","title":"Distribution"},"fee":"Fee","market_fee":"Market Fee","order_count":"Order Count","order_s":"Order(s)","please_log_in":"You need to login before use Scaled Orders","preview_table":{"price":"Price"},"price_lower":"Price Lower","price_upper":"Price Upper","quantity":"Quantity","title":"Scaled Order","total":"Total"},"settings":{"access":"Nodes","access_text":"","accounts":"Accounts","accounts_text":"Your accounts list.","activate":"Activate","active_node":"Active Node","add_api":"Add Node","add_ws":"Add Node","always_confirm":"Always ask for confirmation","apiServer":"Full node API server","api_closest":"Choose closest automatically","automatic":"Automatically select node (%(totalNodes)s listed)","automatic_short":"Automatic Switching","available_nodes":"Available","backup":"Backup","backup_backup":"Restore from a backup .bin-file","backup_backup_short":"Restore from a backup","backup_brainkey":"Restore using a local wallet brainkey","backup_favorites":"Restore favorites using a json file","backup_favorites_error":"Could not parse JSON.","backup_favorites_finish":"Import favorites","backup_favorites_success":"Successfully restored market favorites","backup_favoritesbtn":"Backup favorites","backup_favoritestext":"Back up your favorites to restore them later after updates.","backup_key":"Import a private key","backup_legacy":"Import a BTS 0.9.3c key export file (.json)","backup_text":"Create backups here.","backupcreate_backup":"Create local wallet backup","backupcreate_brainkey":"Create brainkey backup","backupcreate_favorites":"Create favorites backup","browser_notifications":"Browser Notifications","browser_notifications_additional_transfer_to_me":"Notify about transfers to my account","browser_notifications_allow":"Enable notifications","browser_notifications_disabled_by_browser_notify":"Your browser disabled notifications. Click to learn how enable browser notifications","can_change_default_fee_asset_tooltip":"The default asset used to pay transaction fees can be changed in the settings","change":"Change","change_default":"Change default","change_default_fee_asset":"Change default fee asset","change_default_fee_asset_tooltip":"Change the default asset that is used to pay the transaction fee","cloud_login":"Cloud Wallet Login","confirmMarketOrder":"Ask for confirmation of market orders","confirm_no":"Never","confirm_remove":"Are you sure you want to remove %(name)s from your available nodes?","confirm_yes":"Always","connection_error":"Unable to connect to API node %(url)s, falling back to known working nodes. Error was: %(error)s","current_fee_asset":"Current fee asset is: ","custom":"Custom","darkTheme":"Dark","delete_select":"Select local wallet to delete","disabled":"Disabled","enable_wallet":"Enable local wallet","faucet_address":"Faucet","faucet_address_text":"The faucet address is used to pay the registration fee for new users.","fee_asset":"Default fee paying asset","filteredServiceProviders":"External service providers (Gateways, Bridges)","general":"General","general_text":"Adjust the basic settings.","global_settings":"Default Global Settings","hidden_nodes":"Hidden","hide":"Hide","high_latency":"High latency","inverseMarket":"Market orientation preference","left":"Left","lightTheme":"Light","local_wallet":"Local Wallet Login","locale":"Switch language","lookup_text":"Click the button below to check for unclaimed balances from BTS 1.0","low_latency":"Low latency","medium_latency":"Medium latency","midnightTheme":"Midnight","my_nodes":"Personal","no":"No","no_accounts":"This local wallet does not contain any accounts.","node_already_exists":"Node with such URL already exists","node_down":"Unreachable","node_up":"Available","olDarkTheme":"Openledger dark","orderbook_autoscroll":"Order Book Autoscroll","orderbook_grouping":"Order Book Grouping","orderbook_reverse":"Order Book Reversed","password":"Password","passwordLogin":"Login mode","password_text":"Change your password.","personal_active":"Your only personal node is active, to remove or modify it you must first connect to a different node","ping":"Ping Nodes","pinging":"Pinging ...","placeholder_select":"Select option","remove":"Remove","remove_api":"Remove Node","remove_ws":"Remove Node","reset":"Reset settings","reset_text":"Restore settings to their original defaults.","reset_text_description":"This will reset all your %(generalName)s, %(accessName)s and %(faucetName)s Settings","restore":"Restore/Import","restore_brainkey_text":"In order to restore from a brainkey, you will need to create a new local wallet. Please provide a password and name for your new local wallet below, then enter your brainkey.","restore_default_success":"Settings have been reset successfully","restore_key_count":"# of keys","restore_text":"Restore from a backup or import keys.","right":"Right","scrollbars_hide":"Reduce scroll bars","show":"Show","showAssetPercent":"Show asset percentages on the account page","showProposedTx":"Show proposed transactions in Portfolio","showSettles":"Show settle orders in depth chart","skipped":"Skipped","switch":"Switch Node","testnet_nodes":"Testnet","testnet_nodes_disclaimer":"Availability of the testnet is not guaranteed. Establish a connection by connected manually to one of the nodes below:","themes":"Theme","unit":"Preferred unit of account","valid_node_url":"Node URL must begin with ws:// or wss://","viewOnlyMode":"View only mode","view_keys":"View keys","wallet":"Local Wallet","walletLockTimeout":"Wallet auto-lock time (in seconds, 0 to disable)","walletLockTimeoutTooltip":"Click to adjust the time before the wallet auto-locks","wallet_required":"Local wallet required","wallet_required_text":"In order to restore a backup you will need to switch to a local wallet first, do so by clicking the button below","wallet_text":"Control the details of your local wallet.","wallets":"Wallets","yes":"Yes"},"showcases":{"barter":{"account":"Account","action":"Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ","add_escrow":"Add escrow","add_escrow_tooltip":"Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1\'s funds.","balance_warning":"Balance Warning","balance_warning_line":"wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s","balance_warning_tooltip":"%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed","bartering_asset":"Bartering asset","description":"Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.","error_fill_in_escrow_name":"Please fill in the account name of the escrow","error_fill_in_peer_left_name":"Please fill in the account name of Peer 1","error_fill_in_peer_right_name":"Please fill in the account name of Peer 2","error_fill_in_valid_asset_amount":"Please fill in valid amounts for the bartering assets","error_same_name":"Peer 1 and Peer 2 must be different accounts","error_same_name_escrow":"The escrow can not be Peer 1 or Peer 2","escrow_account":"Escrowing account","escrow_as_custodian":"An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.","escrow_as_witness":"An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.","escrow_payment":"Payment for escrow services","escrow_payment_tooltip":"Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1\'s account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.","fee_due_now":"Fee due now","fee_due_now_tooltip":"The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow","fee_when_proposal_executes":"Fee when proposal executes","fee_when_proposal_executes_tooltip":"When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations","new_barter":"Propose a new barter","new_barter_tooltip":"This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow","not_complete":"Please fill out all fields to see a description of the action here","peer_left":"Peer 1","peer_right":"Peer 2","proposal_fee":"Proposal fee","proposal_fee_tooltip":"The indicated transaction fee will be paid to create the proposal to realize this barter","propose_tooltip":"This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Portfolio, approve the proposal and notify the other involved parties.","remove_escrow":"Remove escrow","send_to_escrow":"Use escrow as custodian for Peer 1\'s funds","send_to_escrow_tooltip":"Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2","title":"Barter","total_fees":"Total fees: %(fee)s %(asset)s","total_fees_tooltip":"The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter"},"borrow":{"borrow_tooltip":"You can also find this feature in your Portfolio under the tab Margin Positions, or by clicking Borrow in the Exchange","choose":"Choose the SmartCoin you want to create a position for","description":"Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)","do_it":"Let\'s do it","get_started":"Get started","navigate_with_keys":"The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate","next":"Next","now_ready":"Finalize the creation of your own Collateralized Debt Position","previous":"Previous","steps_benefits":{"text":"Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.","text_legend":"Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \\nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).","title":"Benefits","title_within":"What are the benefits?"},"steps_concept":{"text":"A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.","text_legend":"Example bitUSD: Provide BTS as collateral to borrow bitUSD","title":"Concept","title_within":"What is a Collateralized Debt Position?"},"steps_costs":{"text":"Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ","title":"Settlement","title_within":""},"steps_introduction":{"text":"Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.","title_within":"This is the place to generate SmartCoins (Market Pegged Assets, MPAs)"},"steps_risks":{"text":"As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.","text_legend":"Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \\n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \\n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.","title":"Risks","title_within":"What are the risks involved in borrowing?"},"steps_setup":{"text":"You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.","text_legend":"Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.","title":"Setup","title_within":"How does it work?"},"title":"Collateralized Debt Position","title_long":"Create a Collateralized Debt Position"},"direct_debit":{"amount_to_withdraw":"Amount to collect","authorized_account":"Payee","authorizing_account":"Payer","claim":"Claim","claim_funds":"Claim funds","create":"Create","create_new_mandate":"Create authorization","current_period_expires":"Current period ends","delete":"Delete","description":"Setup a direct debit authorization for recurring payments. The authorization allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.","expires":"Expires","first_period_not_started":"First period has not started!","limit":"limit","limit_per_period":"Maximum amount per period","num_of_periods":"Number of periods","payer_balance_not_sufficient":"There are not enough funds in the payer\'s account to claim the full limit amount of {limit}. The limit has been adjusted to reflect the currently available balance!","period":"Specify period","start_date":"First period starts on","title":"Direct debit","tooltip":{"authorized_account":"The account that is eligible to collect from your account.","limit_per_period":"The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.","num_of_periods":"After the start time this amount of periods are available consecutively.","period":"One period lasts the indicated time interval, e.g. 2 weeks.","start_time":"The start time of the first period must be in the future when broadcasting."},"update":"Update","update_mandate":"Update existing authorization"},"htlc":{"actions":"Actions","amount":"Amount","create_htlc":"Create HTLC","custom":"Custom","description":"A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.","enter_secret_preimage":"Enter secret preimage","expiration":"Expiration","expiration_date":"Expiration date","expiration_period":{"one_day":"One day","one_week":"One week","two_days":"Two days"},"expires":"Expires","extend":"Extend","extend_htlc":"Extend HTLC","first_stage":"1st stage","from":"From","hash":"Hash","preimage":"Preimage","preimage_has_been_created":"A random preimage has been created and filled in automatically below.","recipient":"Recipient","redeem":"Redeem","redeem_htlc":"Redeem HTLC","second_stage":"2nd stage","sender":"Sender","size":"Size","title":"Hashed Time-Lock Contracts","title_short":"HTLC","to":"To","tooltip":{"enter_preimage":"Enter the secret preimage that you have obtained from the sender","new_random":"Roll the dice and create a new random string.","preimage_button":"Please click to enter secret preimage","preimage_hash":"The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.","preimage_input":"Field requires a secret preimage","preimage_random":"The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.","preimage_size":"The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size."}},"instant_trade":{"description":"Instantly execute market orders in a simplified interface.","title":"Instant trade"},"merchant_protocol":{"description":"Create, view and pay remittance requests or invoices","title":"Merchant Protocol"},"paper_wallet":{"description":"Create a PDF with your account\'s keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.","title":"Paper Wallet"},"prediction_market":{"description":"Create a prediction into the future that others can agree or disagree with, leveraged with collateral.","title":"Prediction Markets"},"timed_transfer":{"description":"Initiate a transfer that will execute at a specified time.","title":"Timed transfer"},"voting":{"description":"Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.","title":"Voting"}},"sync_fail":{"sub_text_1":"Please verify that your computer clock is correct.","sub_text_2":"Once you\'ve synchronized your clock, please refresh this page.

If your clock is already correct, the API server you\'re using could be out of sync. In that case, please try a different server from the list below.","title":"Failed to sync with the API server"},"tooltip":{"add_memo_field":"Add memo text field","borrow":"Borrow %(asset)s from the network. This creates a smart contract that locks your collateral until you either modify the position or a margin call is required.","borrow_disabled":"%(asset)s is in global settlement. Margin positions can\'t be created until it is revived. See asset details page for more information","bridge":"Bridges allow deposit of any external assets and instant trade into the desired gateway asset","bridge_TRADE":"BlockTrades is a bridge which supports instant trade of assets. Details and terms can be found on https://blocktrades.us","buy_min":"You will receive at minimum this amount. If there are matching orders with a cheaper price than you specified, you will receive more than this amount.","call_limit":"This is the call price of the least collateralized margin position in the market.","call_price":"This is the call price of the position. If the feed price goes below the call price, the position will be margin called.","close_position":"Click here to close your position. You will need to have at least %(amount)s %(asset)s in order to do so.","coll_ratio":"The collateral ratio of the position is COLLATERAL * FEED PRICE / DEBT.","copy_password":"Click here to copy the password to your clipboard","copy_tip":"Click here to copy the text to your clipboard","cr_danger":"This position is currently being margin called. Consider adding collateral to bring the collateral ratio above %(mr)s or closing the position.","cr_warning":"This position has a low level of collateral, and will get margin called if the collateral ratio drops below %(mr)s. Consider adding collateral or closing the position.","create_lock_periods":"Lock Periods","debug_report":"Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.","deposit_tip":"To complete the deposit, go to your external %(asset)s wallet and make a transfer to the address listed on this page. You will receive the deposit as soon as it has been confirmed. If a memo is shown , it is essential that you include this memo in your transfer.","disconnected":"You are not connected to an API node, try reloading or setting a new access point in the Settings","feed_price":"This is the current external feed price (median of all feed prices given by witnesses)","filter_ops":"Use this list to filter your history by operation type.","follow_user":"You are following this user","follow_user_add":"Click to Follow this user","gateway":"Gateways provide IOUs on the BitShares Blockchain that are backed by the real asset","generate":"The generated password was created by your browser, locally. No one but you has access to it. Paste it below and save a copy in a safe place","global_settle":"This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).","global_settle_price":"This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly","hide_asset":"Click here to hide this asset from this list.","lack_funds":"There is not enough funds to perform the operation","latest_price":"This is the latest price seen in this market.","legacy_explanation":"Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.","login":"This %(wallet_name)s wallet does not offer a traditional login but instead simply locks or unlocks a wallet that is only stored locally in your browser.

Whenever you close the wallet it will be locked and you will effectively be logged out.","login-tooltip":{"incorrectPassword":{"begin":"Enter another password or try ","end":" to login.","model":"Local wallet"},"withoutBinFileBlock":{"begin":"If you haven’t .bin-file try ","brainkey":"Brainkey","end":" to login.","middle":" or use ","model":"Cloud wallet"}},"login-tooltips":{"incorrectPassword":{"begin":"Enter another password or try ","end":" to login.","model":"Local wallet"},"withoutBinFileBlock":{"begin":"If you haven’t .bin-file try ","brainkey":"Brainkey","end":" to login.","middle":" or use ","model":"Cloud wallet"}},"login_required":"Please login to the selected account to perform this action","margin_price":"This is the maximum price that a margin called position can be made to pay. It is also called the Squeeze Price.","market_fee":"The owner of %(asset)s charges a market fee of %(percent)s for buy orders. This fee will be subtracted from the amount you receive when your order fills, it is not paid when placing an order.","memo_tip":"You may include an optional message in the memo field. This allows you to write personal notes and is also often used by exchanges to identify deposits.","no_groups_available":"No groupings available using this API server","no_price":"There\'s no recent price available for this asset that can be used to estimate its value.","nodes_popup":"Click here to open the access settings popup that allows you to switch nodes if necessary","over_limit":"The bridge does not have enough of the desired asset for this buy order","own_account":"You hold keys for this account","print_receipt":"Click here to create pdf receipt","propose_scam":"This proposal was created by a known scammer or from someone that you blacklisted! Approval not possible.","propose_tip":"Propose another user to initiate a transaction","propose_unhide":"Do not uncheck this unless you know what you are doing","propose_unknown":"This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.","proxy_remove":"You have a proxy set, to remove it clear this input field and click save or directly click remove proxy","proxy_search":"Search for an account to be used as your proxy for voting. Your account will act as if you would be voting exactly the same as your proxy.","registration":{"accountModel":"The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!","accountName":"Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.","password":"Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.","walletModel":"The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.","whyBinFile":".bin-file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be used during the login process."},"required_input":"Field requires a valid %(type)s","scam_account":"Account is suspected scammer","self_help":"Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet","settle":"Settling will let you convert your holdings of %(asset)s to %(backingAsset)s after a delay of %(settleDelay)s hours, at a price equal to the feed price at that time.","settle_market_prediction":"Settling a prediction market asset is only possible after its resolution.","settle_price":"This is the price at which settle orders will execute.","show_asset":"Click here to show this asset in the main list.","show_block":"Click here to show block #%(block)s where this transaction occurred.","sign_owner":"If you are the owner of this account, please check this to make sure the transaction gets signed properly. This is only necessary if you are using the owner account and that account is not included in the active permissions.","sync_no":"The current node is out of sync with the blockchain, try switching to another one","sync_yes":"The current node is in sync with the blockchain","target_collateral_ratio":"Setting a Target Collateral Ratio (TCR) will allow the blockchain to automatically sell the required amount of your collateral in order to keep your collateral ratio at or above your defined TCR when the value of your collateral decreases. To frequently sell small amounts, set a low target (eg. < 2). To sell larger amounts infrequently, set a high target (eg. > 3)","transfer_actions":"Click here to make a transfer, or to deposit/withdraw those assets that support it.","unlock_account_name":"Click to edit the account name, e.g. when your account is set as permission of another account.","update_position":"Click here to update your position. You may at any time change the debt and/or collateral levels of your position.","withdraw_address":"If you don\'t already have a %(asset)s address, please find a wallet provider and create one in order to complete the withdrawal.","withdraw_full":"Click to withdraw the full balance"},"transaction":{"amount_sell":"Amount to sell","asset_claim_fees":"claimed asset fees of {balance_amount} from {asset} fee pool","asset_reserve":"burned asset amount","at":"at","balance_id":"Balance ID","balance_owner":"Balance owner key","bidder":"Bidder","blinding_factor":"Blinding factor","bond_accept_offer":"Accepted bond offer of","bond_cancel_offer":"Cancelled bond offer","bond_claim_collateral":"Claimed collateral of","bond_create_offer":"Created bond offer","bond_pay_collateral":"Paid collateral of","borrow_amount":"Debt","borrower":"Borrower","broadcast_fail":"Failed to broadcast the transaction: %(message)s","broadcast_success":"Transaction has been broadcast","broadcasting":"Broadcasting transaction..","broadcasting_short":"Broadcasting..","burn_asset":"Burnt","by":"by","claimed":"Total claimed","coll_maint":"Collateral maintenance ratio","coll_of":"with collateral of","coll_ratio":"Initial collateral ratio","collateral":"Collateral","collateral_target":"Target Collateral","committee_member_create":"Created the committee member","confirm":"Please confirm the transaction","create_key":"Created a public key","csv":"Export to .csv","csv_tip":"Download full account history as a comma separated .csv file using Cointracking.info or raw format","cumulative_borrow_amount":"Cumulative Debt","custom":"Created a custom operation","delta_collateral":"Collateral change","delta_debt":"Debt change","deposit_to":"Deposited to account","expiration":"Expiration","feeGroups":{"account":"Account-Specific","asset":"Asset-Specific","business":"Business Administration","general":"General","market":"Market-Specific"},"feeTypes":{"_none":"Free of Charge","basic_fee":"Basic Fee","fee":"Regular Transaction Fee","fee_per_day":"Price per day","fee_per_kb":"Price per KByte Transaction Size","long_symbol":"Longer Symbols","membership_annual_fee":"Annual Membership","membership_lifetime_fee":"Lifetime Membership","premium_fee":"Fee for Premium Names","price_per_kbyte":"Price per KByte Transaction Size","price_per_output":"Price per recipient","symbol3":"Symbols with 3 Characters","symbol4":"Symbols with 4 Characters"},"feed_price":"Feed price","feed_producer":"Became a feed producer for the asset","file_write":"Wrote a file","fill_or":"Fill or kill","for":"for","from":"from","fund_pool":"funded %(asset)s fee pool with","funding_account":"Funding account","global_parameters_update":"Updated global parameters","hide":"Hide","inputs":"Inputs","market_fee":"Market fee","max_market_fee":"Maximum market fee","min_receive":"Minimum amount to receive","new_url":"Website","obtain":"to obtain","operations":"Operations","order_id":"Order ID","outputs":"Outputs","paid":"paid","publisher":"Publisher","received":"received","seller":"Seller","sent":"sent","settlement_date":"Settlement date","show_more":"Show more","title_qrcode":"Transaction QR Code","to":"to","transaction_confirmed":"Transaction confirmed","trxTypes":{"account_create":"Create account","account_transfer":"Transfer Account","account_update":"Update account","account_upgrade":"Upgrade Account","account_whitelist":"Account whitelist","all":"Show all","assert":"Assert operation","asset_bid_collateral":"Bid collateral","asset_claim_fee_pool":"Claim fee pool balance","asset_claim_fees":"Claim asset fees","asset_claim_pool":"Claim asset fee pool","asset_create":"Create asset","asset_fund_fee_pool":"Fund asset fee pool","asset_global_settle":"Global asset settlement","asset_issue":"Issue asset","asset_publish_feed":"Publish feed","asset_reserve":"Burn asset","asset_settle":"Asset settlement","asset_settle_cancel":"Cancel asset settlement","asset_update":"Update asset","asset_update_bitasset":"Update SmartCoin","asset_update_feed_producers":"Update asset feed producers","asset_update_issuer":"Update asset owner","balance_claim":"Claim balance","bid_collateral":"Collateral bid","blind_transfer":"Blinded transfer","call_order_update":"Update margin","committee_member_create":"Create committee member","committee_member_update":"Update committee member","committee_member_update_global_parameters":"Global parameters update","credit_deal_expired":"Credit deal expired","credit_deal_repay":"Repay credit deal","credit_offer_accept":"Accept credit offer","credit_offer_create":"Create credit offer","credit_offer_delete":"Delete credit offer","credit_offer_update":"Update credit offer","custom":"Custom","execute_bid":"Execute bid","fba_distribute":"Fee backed asset distribution","fill_order":"Fill order","htlc_create":"HTLC create","htlc_extend":"HTLC extend","htlc_redeem":"HTLC redeem","htlc_redeemed":"HTLC redeemed","htlc_refund":"HTLC refund","limit_order_cancel":"Cancel order","limit_order_create":"Place order","liquidity_pool_create":"Create liquidity pool","liquidity_pool_delete":"Delete liquidity pool","liquidity_pool_deposit":"Add liquidity","liquidity_pool_exchange":"Exchange liquidity","liquidity_pool_withdraw":"Remove liquidity","override_transfer":"Override transfer","proposal_create":"Create proposal","proposal_delete":"Delete proposal","proposal_update":"Update proposal","samet_fund_borrow":"Borrow flash loan","samet_fund_create":"Create flash loan","samet_fund_delete":"Delete flash loan","samet_fund_repay":"Repay flash loan","samet_fund_update":"Update flash loan","ticket_create":"Create ticket","transfer":"Transfer","transfer_from_blind":"Transfer from blinded account","transfer_to_blind":"Transfer to blinded account","vesting_balance_create":"Create vesting balance","vesting_balance_withdraw":"Withdraw vesting balance","withdraw_permission_claim":"Claim withdrawal permission","withdraw_permission_create":"Create withdrawal permission","withdraw_permission_delete":"Delete withdrawal permission","withdraw_permission_update":"Update withdrawal permission","witness_create":"Create witness","witness_update":"Update witness","witness_withdraw_pay":"Witness pay withdrawal","worker_create":"Create worker"},"vesting_balance_create":"created vesting balance of","view_json":"Show raw json","view_qr":"Show QR","view_qrcode":"Show Trx QR code","waiting":"Waiting for confirmation..","whitelist_states":{"black_listed":"Blacklisted","no_listing":"Unlisted","white_and_black_listed":"Whitelisted and blacklisted","white_listed":"Whitelisted"},"withdraw_permission_claim":"Claimed withdrawal permission for account","withdraw_permission_create":"Gave withdrawal permission for account","withdraw_permission_delete":"Deleted withdrawal permissions for account","withdraw_permission_update":"Updated withdrawal permission for account"},"transfer":{"again":"MAKE ANOTHER TRANSFER","amount":"Amount","available":"Available","back":"BACK","balances":"Balances","broadcast":"Your transfer has been broadcast to the network","broadcasting":"Broadcasting...","by":"By","cancel":"Cancel","close":"Close","confirm":"CONFIRM","copy_address":"Copy Address","copy_memo":"Copy Memo","errors":{"asset_unsupported":"Asset %(currency)s is not supported by this blockchain.","balance":"The final balance must be larger than 0","insufficient":"Insufficient funds","memo_error":"The transfer memo parsing error, please try again later.","memo_length_error":"The transfer memo length exceed, please check","minimum_amount":"Minimum withdraw amount: %(amount)s %(symbol)s","noFeeBalance":"Your balance is insufficient to pay fees using this asset, please choose another asset to pay your fees with","noFunds":"No funds","noPoolBalance":"That asset has an insufficient fee pool balance to pay the fees with. Please inform the asset owner or select another asset for paying fees.","noPoolBalanceShort":"Fee pool empty","pos":"Amount must be positive","precision":"Minimum withdraw precision value: %(precision)s","req":"Required field","unknown":"Unknown error","valid":"Please enter a valid, positive number"},"explict_price":"Explict price:","fee":"Fee","final":"Final balance","free":"Free","from":"From","header":"Transfer details","header_subheader":"Send funds from an account you control to another %(wallet_name)s account holder.","header_subheader_propose":"Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.","memo":"Memo / Message","memo_unlock":"Unlock your wallet/account in order to see this memo","optional":"Optional","phase_out_warning":"We recommend using the new {modal_link} modal as this page will be phased out","see":"SEE MY TRANSFERS","send":"Send","to":"To","total":"Total: ","warn_name_unable_read_memo":"Proposed sender will be unable to read this memo!"},"trx_error":{"expire":"Your transaction has expired without being confirmed, please try again later."},"utility":{"asset_input_placeholder":"Enter asset symbol","asset_select_placeholder":"Select asset","total_x_assets":"Total of %(count)s assets","total_x_items":"Total of %(count)s items","total_x_items_y_hidden":"Total of %(totelCount)s items loaded, %(count)s of those shown in pagination","total_x_markets":"Total of %(count)s markets","total_x_operations":"Total of %(count)s operations","x_assets_hidden":"%(count)s of %(total)s assets filtered out"},"validation":{"messages":{"balance":"Insufficient balance. Available only: %(balance)s %(symbol)s","email":"The field should be email","emailNamed":"%(name)s should be email","float":"The field should be float","floatNamed":"%(name)s should be float","integer":"The field should be integer","integerNamed":"%(name)s should be integer","max":"The field should be less than %(max)s","maxNamed":"%(name)s should be less than %(max)s","min":"The field should higher than %(min)s","minNamed":"%(name)s should be higher than %(min)s","number":"The field should be number","numberNamed":"%(name)s should be number","oneOf":"The field should be one of: %(list)s","oneOfNamed":"%(name)s should be one of: %(list)s","range":"The field should be in range from %(min)s to %(max)s","rangeNamed":"%(name)s should in range from %(min)s to %(max)s","required":"The field is required","requiredNamed":"%(name)s is required","test":"","types":{"array":"The field should be array","arrayNamed":"%(name)s should be array","boolean":"The field should be boolean","booleanNamed":"%(name)s should be boolean","date":"The field should be date","dateNamed":"%(name)s should be date","enum":"The field should be one of %(list)s","enumNamed":"%(name)s should be one of %(list)s","hex":"The field should be hex","hexNamed":"%(name)s should be hex","method":"The field should be method","methodNamed":"%(name)s should be method","object":"The field should be object","objectNamed":"%(name)s should be object","regexp":"The field should be regexp","regexpNamed":"%(name)s should be regexp","string":"The field should be string","stringNamed":"%(name)s should be string"},"url":"The field should be url","urlNamed":"%(name)s should be url"}},"voting":{"create_ticket":"Lock 1 {asset}","description":"The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).","increase_voting_power":"Create Lock","ticket_explanation":"Obtain voting power by locking away the core token BTS.","title":"Voting"},"walkthrough":{"buy_form":"Place buy orders using this form.","buy_orders":"View all buy orders for this market.","chart_tool_duration":"Group trade data using different intervals.","chart_tool_indicators":"Add technical indicators to the price chart to identify trading opportunities.","chart_tool_zoom":"Adjust the price chart to show more or less price history.","collapsed_items":"View one or several sections of the market by expanding the drawers","create_cloud_wallet":"Access the cloud wallet using an account name and password.","create_local_wallet":"Create a local wallet and download any private keys belonging to it.","depth_chart":"Use a market depth chart to show the supply and demand at different prices.","done_label":"Done","favourite_button":"Mark this pair as a favourite in your markets list.","find_markets_tab":"This tab allows you to search and add additional markets to the \'my markets\' tab.","language_flag":"Choose from 9 different languages to use in the DEX.","my_markets":"This tab lists commonly used markets.","next_label":"Next","panel_hide":"You can hide the panel to have more room","personalize":"Change the default layout in the personalize settings","prev_label":"Back","price_alerts":"Set alerts to get notifications if the price fluctuates","price_chart":"View price action of an asset using the price chart.","restore_account":"Restore a wallet using your backup file.","sell_form":"Place sell orders using this form.","sell_orders":"View all sell orders for this market.","skip_label":"Skip","switch_button":"Switch the trading pairs using this button.","vertical_lock":"Disable auto scroll to scroll through the order book","vertical_order":"View all orders for this market, including spread and latest order price"},"wallet":{"accept":"Accept","account_public":"Account Name (Public)","active_wallet":"Active Local Wallet","all_set":"You\'re all set!","ask_to_select_wallet":"Please select a key file","back":"Back","backup_brainkey":"Backup Brainkey","backup_explain":"Clicking on the button below will generate a .bin-file. This file is encrypted with your wallet password, and contains all the private keys for your accounts. It can be used to restore your wallet, or move it to a different computer/browser.","backup_login":"Backup & login","backup_new_account":"Congratulations, you\'ve just created a new account on the %(wallet_name)s exchange powered by the BitShares blockchain! It is strongly recommended that you make a backup of your wallet now. Without a backup there is no way to restore your account if something happens to your computer.","backup_types":"backup types","backup_warning":"It appears that your private key files are not backed up. For security reasons we recommend users do not log in without backing up their private keys.","balance_claim_lookup":"Lookup balances","balance_claims":"Balance Claims","brainkey":"Brainkey","brainkey_backed_up":"This brainkey was last backed up","brainkey_not_backed_up":"This brainkey has never been backed up","brainkey_not_verified":"This Brainkey is not verified","brainkey_reset_success":"Sequence reset. In order to regenerate your private keys from the wallet brain key, refresh your browser then unlock the wallet.","brainkey_seq_reset":"Reset brainkey sequence","brainkey_seq_reset_button":"Reset now","brainkey_seq_reset_text":"Use this to reset the sequence counter used to derive private keys from the wallet brainkey.
It can be used to force a regeneration of private keys from your wallet brain key.","brainkey_w1":"To complete your backup, print this out, or write it down.","brainkey_w2":"Anyone with access to your recovery key will","brainkey_w3":"have access to funds within this local wallet.","bts_09_export":"BTS 0.9.3c key export file (.json)","cancel":"Cancel","change":"Change to %(name)s","change_backup":"Now that you\'ve changed your password, we highly recommend making a new backup.","change_password":"Change Password","change_success":"Password successfully changed!","change_wallet":"Change Local Wallet","claim_balance":"Claim Balance","claim_balances":"Claim Balances","claim_later":"Once you\'ve imported the keys, you can claim these balances to an account of your choosing.","confirm":"Wallet password (confirm)","confirm_error":"The confirmation does not match the password","confirm_password":"Confirm Password","congrat":"Congratulations, you\'re ready!","console":"Local Wallet Management Console","create":"Create","create_a":"Create a new blockchain account","create_account_password_text":"The keys for this new account will be derived using your password. Nothing is stored in the browser or in a central server, so you will need to ensure you remember this password!! Store it using a password manager or by writing it down manually.","create_account_text":"The account name you choose needs to be unique, as it will be registered publicly on the blockchain and will be your identifer for any transactions you make.","create_backup":"Create Backup","create_backup_of":"Create backup now","create_importkeys_text":"In order to import keys, you first need to create a local wallet to contain the keys. Complete the dialog below to create a new local wallet.","create_password":"Create a new account using a password","create_success":"Your local wallet has been created","create_text":"The %(wallet_name)s local wallet is stored in your browser, it is not stored in the cloud. A wallet can contain multiple accounts and can be easily transferred between browsers and computers using a backup file.","create_w_a":"Create a local wallet containing an account","create_wallet":"Create new local wallet","create_wallet_backup":"Create new wallet from backup","current_pass":"Current password","custom_brainkey":"Use a custom brainkey (advanced)","delete_confirm_line1":"Are you ABSOLUTELY sure?","delete_confirm_line2":"Unexpected bad things will happen if you don’t read this!","delete_confirm_line3":"This action CANNOT be undone, and if you do not have a backup this local wallet will be gone.","delete_confirm_line4":"Yes, delete wallet %(name)s","delete_wallet":"Delete Local Wallet","delete_wallet_name":"Delete Local Wallet (%(name)s)","different_file_type":"Have a different file type?","done":"Done","dont_ask_for_backup":"Don\'t ask me to back up again","download":"Download","enter_password":"Password","existing_password":"Existing Password","first_account_paid":"Since this is your first account, a faucet will pay the registration fee for you.","generated":"Generated password","go_get_started":"Getting Started","has_wallet":"When you create your first %(wallet_name)s account, a %(wallet_name)s local wallet will be automatically created as well and stored in your browser. This local wallet is encrypted with your password, and will contain any private keys belonging to your accounts. It is important that you take the time to backup this wallet once created!","import_20_notice1":"Import your BTS 2.0+ BACKUP first","import_20_notice2":"(if you have one)","import_backup":"Import %(wallet_name)s 2.0 backup (.bin-file)","import_backup_choose":"Please select your backup file in the dialog below. This is completely safe as the file is not uploaded anywhere and never leaves your browser.","import_balance":"Import balance(s)","import_bts":"Import a BTS 0.9.3c key export","import_bts1":"Import from BitShares 0.9.3c","import_key_success":"Successfully imported %(count)s keys.","import_keys":"Import Keys","import_keys_tool":"Key Import Tool","import_pass_match":"Password matches. Decrypting the backup now...","import_password":"Enter import file password","import_private_key":"Import a private key","invalid_format":"Invalid Format","key_file":"Key file","key_file_bin":"Key-file or .bin-file","last_backup":"Last backup","link_account":"Account","link_deposit":"Deposits","link_transfer":"Transfers","loading_balances":"Looking for unclaimed balances","local_switch":"Local wallet detected matching the given password, switching to local wallet mode","login_type":"Login type selection","must_be_ltm":"The fee paying account must be a lifetime member to perform that operation.","name":"Local Wallet Name","need_backup":"This local wallet needs a backup","never_backed_up":"This local wallet has never been backed up, you should create a backup now!","new_confirm":"Confirm new password","new_password":"New password","new_wallet":"New Local Wallet","new_wallet_name":"New Local Wallet Name","no_accounts":"No accounts found","no_balance":"No unclaimed balances found","no_wallet":"You do not have a local wallet yet?","noneed_backup":"No backup is needed","not_first_account":"Since you already have an account, you will need to pay for this new account yourself. In order to do so, your account needs to have lifetime membership, which can be bought in the account page.","ok_done":"OK, take me to the Portfolio","pass_incorrect":"Incorrect password","pass_length":"The password must contain at least %(minLength)s characters. Ideally you should use 20 or more, and a combination of numbers, special characters and letters.","password":"Wallet password","password_crucial":"In case you haven\'t already done so, it is crucial that you take the time to write down your account name and password now, whether it be on paper, a password manager, or somewhere else. If you lose or forget your account name or this password your account will be lost, we cannot help you get it back.","password_lose_warning":"IMPORTANT: If you forget your account name or pass phrase you will be unable to access your account, we cannot reset or restore your password! Make sure you memorize or write down your account name and password!","password_model":"Cloud Wallet","password_model_1":"The cloud wallet uses a password in combination with your account name to generate your private keys on the fly. It restricts you to only logging in with one account at a time, in return for ease of use and convenience.","password_model_2":"The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!","password_model_3":"
  • Single account
  • Easy login
  • Moderate security
  • ","password_show":"Show me my password","paste_private":"Paste private keys here (Wallet Import Format - WIF)","pwd4brainkey":"Enter your password to show your brainkey","read_more":"Read more about %(wallet)s and %(backup)s.","ready_to_restore":"Ready to Restore","reenter_brainkey":"Re-Enter Brainkey","remember_me":"Remember me","remember_me_explanation":"Turn \'Remember Me\' off to disable remembering your account name and other personal settings.","reset":"Reset","restore":"Restore Local Wallet from Backup","restore_backup":"Restore Backup","restore_it_here":"Restore it here","restore_key_file":"Restore key file..","restore_success":"Successfully restored (%(name)s) wallet","restore_wallet_of":"Restore (%(name)s Wallet)","select_wallet":"Select key file","setup_wallet":"Setup your local wallet","show_brainkey":"Show Brainkey","step_1":"Create a wallet","step_2":"Create a backup","step_3":"Getting Started","submit":"Submit","switch_model_password":"Switch to cloud wallet","switch_model_wallet":"Switch to local wallet","tips_account":"See your new account","tips_dashboard":"See your Portfolio","tips_deposit":"Make a deposit","tips_explore":"Now that you\'ve successfully created an account and downloaded the backup, it\'s time to get started. Click on one of the links below to start exploring.","tips_explore_pass":"Now that you\'ve successfully created an account and backed up your password, it\'s time to get started. Click on one of the links below to start exploring.","tips_header":"You can also find these same links in the top menu, and in the drop-down menu next to your account name.","tips_login":"IMPORTANT: There is no login/logout functionality here, you merely unlock your wallet when you wish to make a transaction.","tips_settings":"Change the settings","tips_transfer":"Make a transfer","title":"Wallet","totals":"Asset Totals","unclaimed":"Unclaimed balances belonging to these keys","unclaimed_vesting":"Unclaimed (vesting)","understand_1":"I understand that no one can recover my password if I lose or forget it","understand_2":"I have written down or otherwise stored my password","understand_3":" I understand that I will lose access to my funds if I lose my password","use_different":"Use different file","use_password":"Use a cloud wallet","use_wallet":"Use a local wallet","using":"Using:","verified":"Verified","verify":"I\'ve written it down","verify_prior_backup":"Verify Prior Backup","wallet_browser":"Your Web Browser is your Wallet","wallet_created":"Local Wallet Created","wallet_crucial":"Your local wallet is only stored in your browser, so it is crucial that you create a backup that will enable you to recover your wallet if the data in your browser is lost! No one else can restore your account if you lose your backup.","wallet_exist":"A local wallet called that already exists, please choose a new name","wallet_exist_with_name":"A local wallet called (%(name)s) already exists, please change the name","wallet_lose_warning":"IMPORTANT: If you lose your local wallet or your pass phrase you will be unable to access any of your funds again. Make sure you store the backup somewhere safe, and memorize or write down your password!","wallet_model":"Local Wallet","wallet_model_1":"The local wallet stores the wallet in your browser. It is encrypted with a password that you choose, and can be backed up using either a brainkey or an encrypted binary file that contains all the private keys. The local wallet lets you use multiple accounts at the same time.","wallet_model_2":"The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.","wallet_model_3":"
  • Multiple accounts
  • Wallet file backup required
  • High security
  • ","wallet_move":"This backup file can also be used to move your local wallet to different computers or different browsers. In order to restore your local wallet using this backup you will also need your password!","wallet_password":"Login anywhere using your password","wallet_types":"wallet types","wif_associated_accounts":"Associated Account(s): ","wif_import_error":"Please enter a valid WIF","wif_length_error":"Incorrect input length"}}')}},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var a=l[e]={id:e,loaded:!1,exports:{}};return i[e].call(a.exports,a,a.exports,c),a.loaded=!0,a.exports}c.m=i,c.amdD=function(){throw new Error("define cannot be used indirect")},c.amdO={},e=[],c.O=(t,a,s,n)=>{if(!a){var r=1/0;for(d=0;d=n)&&Object.keys(c.O).every((e=>c.O[e](a[i])))?a.splice(i--,1):(o=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[a,s,n]},c.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return c.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,s){if(1&s&&(e=this(e)),8&s)return e;if("object"==typeof e&&e){if(4&s&&e.__esModule)return e;if(16&s&&"function"==typeof e.then)return e}var n=Object.create(null);c.r(n);var r={};t=t||[null,a({}),a([]),a(a)];for(var o=2&s&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,c.d(n,r),n},c.d=(e,t)=>{for(var a in t)c.o(t,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((t,a)=>(c.f[a](e,t),t)),[])),c.u=e=>(({25:"deposit-withdraw",39:"help",58:"QuickTrade",214:"explorer",397:"existing-account",521:"asset",571:"settings",584:"block",663:"exchange",697:"news",809:"account",810:"pm",882:"wallet",884:"dashboard-accounts",966:"dashboard",970:"poolmart",975:"create-worker"}[e]||e)+"."+{14:"98453bcd5736db5e2135",25:"490c548fde948ece93a8",39:"3f62ed8b25fb740ab474",49:"da864c8eccba4deee0c1",58:"69413ba101a47601ebd7",164:"c6862824e72909a8baf8",197:"c831281602681c43318e",214:"813f0bc70ed57d25da7b",223:"3bff0ef3d6281fc3ae29",267:"1d43a81af194ddfd621f",327:"fb326645625d7c1b3348",343:"e2e1c9aacdb9738f3427",397:"ddd6ec90176e3c67b535",466:"ddd423e4d0ed5761849b",473:"4c6a1094467bf27b5c48",478:"1d49f70fcbd4161afe21",521:"af0294420e02411fe50f",571:"df8b2ad9ab7657c64a63",584:"85e46b23ef1417ead8ba",590:"bd3163cb1efada87d37d",605:"e135fa4a9877c501d517",663:"090f2e511bec8e8e2598",683:"d6d4fd0da050077a5792",695:"41cc3e53e3eb66ec14c8",696:"df93bf20d361d27511cf",697:"e7633e4bb2066654b5a7",809:"3c87ab9e7f74df336459",810:"cd9e4e82a1d8a9dbc1dc",820:"b3393903813695e5ece1",835:"a294bebbb8566893b414",857:"bded3df964c8a229dce7",882:"63d37f514b34db39975f",884:"8ac18cb9479de97a80ab",891:"032160ebb26d9f734c10",941:"e9f799b5c4cf5252459f",966:"0ad86fd086b5c213b0e1",970:"c8970afdf7588c062fbb",975:"4ca8e3157473e80f1d6a"}[e]+".js"),c.miniCssF=e=>({25:"deposit-withdraw",214:"explorer",397:"existing-account",571:"settings",663:"exchange",809:"account",810:"pm",882:"wallet",884:"dashboard-accounts",966:"dashboard"}[e]+"."+{25:"15fb9ca18e93d4e66fae",214:"46703dcd69e5bac13011",397:"f1f9242ac510a16e0088",571:"570534c5962261cb9a84",663:"a0636bca14dcde6e4af7",809:"15fb9ca18e93d4e66fae",810:"9d4b061c2fb181e49c3b",882:"f1f9242ac510a16e0088",884:"15fb9ca18e93d4e66fae",966:"15fb9ca18e93d4e66fae"}[e]+".css"),c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},n="BitShares2-light:",c.l=(e,t,a,r)=>{if(s[e])s[e].push(t);else{var o,i;if(void 0!==a)for(var l=document.getElementsByTagName("script"),d=0;d{o.onerror=o.onload=null,clearTimeout(h);var n=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach((e=>e(a))),t)return t(a)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=p.bind(null,o.onerror),o.onload=p.bind(null,o.onload),i&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),c.p="",r=e=>new Promise(((t,a)=>{var s=c.miniCssF(e),n=c.p+s;if(((e,t)=>{for(var a=document.getElementsByTagName("link"),s=0;s{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",n.onerror=n.onload=r=>{if(n.onerror=n.onload=null,"load"===r.type)a();else{var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+i+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=o,l.request=i,n.parentNode.removeChild(n),s(l)}},n.href=t,document.head.appendChild(n)})(e,n,t,a)})),o={143:0},c.f.miniCss=(e,t)=>{o[e]?t.push(o[e]):0!==o[e]&&{25:1,214:1,397:1,571:1,663:1,809:1,810:1,882:1,884:1,966:1}[e]&&t.push(o[e]=r(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))},(()=>{var e={143:0};c.f.j=(t,a)=>{var s=c.o(e,t)?e[t]:void 0;if(0!==s)if(s)a.push(s[2]);else if(/^(397|882)$/.test(t))e[t]=0;else{var n=new Promise(((a,n)=>s=e[t]=[a,n]));a.push(s[2]=n);var r=c.p+c.u(t),o=new Error;c.l(r,(a=>{if(c.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var n=a&&("load"===a.type?"missing":a.type),r=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",o.name="ChunkLoadError",o.type=n,o.request=r,s[1](o)}}),"chunk-"+t,t)}},c.O.j=t=>0===e[t];var t=(t,a)=>{var s,n,[r,o,i]=a,l=0;if(r.some((t=>0!==e[t]))){for(s in o)c.o(o,s)&&(c.m[s]=o[s]);if(i)var d=i(c)}for(t&&t(a);lc(33396)));d=c.O(d)})(); \ No newline at end of file diff --git a/app.2be848640aff0e743768.js b/app.2be848640aff0e743768.js new file mode 100644 index 0000000..957a01b --- /dev/null +++ b/app.2be848640aff0e743768.js @@ -0,0 +1 @@ +(()=>{var e,t,a,s,n,r,o,i={34031:(e,t,a)=>{var s={"./adjust.svg":40564,"./alarm.svg":24401,"./arrow-down-1.svg":22695,"./arrow-up-down.svg":97609,"./assets.svg":88751,"./attention.svg":35371,"./autolock.svg":83160,"./barter.svg":30305,"./borrow.svg":36942,"./checkmark-circle.svg":4401,"./checkmark.svg":60004,"./chevron-down.svg":80870,"./clippy.svg":13405,"./clock.svg":45140,"./cog.svg":21764,"./cogs.svg":43695,"./coming_soon.svg":95882,"./connect.svg":82458,"./connected.svg":22862,"./create_account.svg":94563,"./cross-circle.svg":47794,"./dashboard.svg":67027,"./delete.svg":65437,"./deployment-unit.svg":30270,"./deposit.svg":69052,"./direct_debit.svg":96860,"./disconnected.svg":1326,"./dollar-green.svg":19431,"./dollar.svg":83870,"./download.svg":18864,"./excel.svg":77051,"./eye-striked.svg":56609,"./eye.svg":83662,"./fi-star.svg":77552,"./filter.svg":66414,"./fire.svg":54383,"./folder.svg":18581,"./grouping.svg":82266,"./hamburger-x.svg":24481,"./hamburger.svg":11808,"./hourglass.svg":9389,"./htlc.svg":38078,"./info-circle-o.svg":30208,"./insight.svg":11615,"./instant-trade.svg":15888,"./key.svg":17325,"./list.svg":91702,"./locked.svg":81242,"./merchant.svg":82728,"./minus-circle.svg":1673,"./news.svg":27791,"./paperclip.svg":29908,"./people.svg":71372,"./photo-camera.svg":51498,"./plus-circle.svg":10785,"./poolmart.svg":7058,"./pools.svg":63114,"./power.svg":22765,"./prediction-large.svg":90874,"./prediction.svg":10411,"./qr-scan.svg":84185,"./question-circle.svg":15146,"./question-in-circle.svg":35479,"./server.svg":42641,"./settle.svg":99200,"./share.svg":93603,"./showcases.svg":7649,"./shuffle.svg":17047,"./swap.svg":20153,"./text.svg":60740,"./thumb-tack.svg":79006,"./thumb-untack.svg":95459,"./thumbs-up.svg":20044,"./times.svg":40293,"./trade.svg":5972,"./transfer.svg":80530,"./unlocked.svg":77814,"./user.svg":62075,"./voting.svg":48637,"./wallet.svg":42083,"./warning.svg":72007,"./withdraw.svg":36225,"./zoom.svg":74477};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=34031},21175:(e,t,a)=>{var s={"./en/accounts/general.md":74423,"./en/accounts/membership.md":21710,"./en/accounts/permissions.md":62313,"./en/accounts/proposed.md":60807,"./en/assets/Asset.md":8419,"./en/assets/EUR.md":10997,"./en/assets/USD.md":62816,"./en/assets/mpa.md":97548,"./en/assets/privbitassets.md":6225,"./en/assets/uia.md":89913,"./en/components/AccountAssetCreate.md":39856,"./en/components/AccountMembership.md":69329,"./en/components/AccountPermActive.md":36638,"./en/components/AccountPermMemo.md":63933,"./en/components/AccountPermOwner.md":8408,"./en/components/AccountVoting.md":28379,"./en/components/AccountVotingCommittee.md":2270,"./en/components/AccountVotingProxy.md":88336,"./en/components/AccountVotingWitnesses.md":80878,"./en/components/AccountVotingWorkers.md":95043,"./en/components/BorrowModal.md":85920,"./en/components/BorrowModalPrediction.md":56507,"./en/components/DepositWithdraw.md":99087,"./en/components/Fees.md":1911,"./en/components/InitError.md":29362,"./en/components/PredictionMarkets.md":80281,"./en/dex/introduction.md":38251,"./en/dex/shorting.md":21076,"./en/dex/trading.md":7607,"./en/disclaimer.md":46645,"./en/gateways/introduction.md":13069,"./en/gateways/ioxbank.md":81885,"./en/gateways/xbtsx.md":32604,"./en/glossary.md":77339,"./en/index.md":60700,"./en/introduction/backups.md":87117,"./en/introduction/bitshares.md":93275,"./en/introduction/blockchain.md":42438,"./en/introduction/bridges_gateways.md":46595,"./en/introduction/wallets.md":15851,"./en/toc.md":81821,"./en/voting.md":95008,"./es/accounts/general.md":62677,"./es/toc.md":68042,"./ja/components/AccountMembership.md":36272,"./ja/components/BorrowModal.md":20892,"./ja/components/DepositWithdraw.md":41063,"./ru/accounts/general.md":28438,"./ru/accounts/membership.md":12155,"./ru/accounts/permissions.md":43239,"./ru/assets/Asset.md":6193,"./ru/assets/EUR.md":35796,"./ru/assets/USD.md":65418,"./ru/assets/mpa.md":11387,"./ru/assets/privbitassets.md":74759,"./ru/assets/uia.md":6643,"./ru/components/AccountAssetCreate.md":53556,"./ru/components/AccountMembership.md":49046,"./ru/components/AccountPermActive.md":27281,"./ru/components/AccountPermMemo.md":47718,"./ru/components/AccountPermOwner.md":50010,"./ru/components/AccountVoting.md":21767,"./ru/components/AccountVotingCommittee.md":73849,"./ru/components/AccountVotingProxy.md":51413,"./ru/components/AccountVotingWitnesses.md":45485,"./ru/components/AccountVotingWorkers.md":91288,"./ru/components/BorrowModal.md":37091,"./ru/components/BorrowModalPrediction.md":38309,"./ru/components/DepositWithdraw.md":95781,"./ru/components/Fees.md":15015,"./ru/components/InitError.md":63037,"./ru/dex/introduction.md":53632,"./ru/dex/shorting.md":48167,"./ru/dex/trading.md":2373,"./ru/gateways/cryptobridge.md":42199,"./ru/gateways/introduction.md":49331,"./ru/gateways/openledger.md":58662,"./ru/gateways/rudex.md":77860,"./ru/gateways/spark.md":35672,"./ru/gateways/xbtsx.md":77207,"./ru/glossary.md":38038,"./ru/index.md":25528,"./ru/introduction/backups.md":3709,"./ru/introduction/bitshares.md":78997,"./ru/introduction/blockchain.md":63175,"./ru/introduction/bridges_gateways.md":90186,"./ru/introduction/committee.md":81950,"./ru/introduction/wallets.md":13366,"./ru/introduction/witness.md":99396,"./ru/introduction/workers.md":26134,"./ru/toc.md":69208,"./tr/accounts/general.md":95132,"./tr/accounts/membership.md":5845,"./tr/accounts/permissions.md":68211,"./tr/assets/Asset.md":3260,"./tr/assets/EUR.md":89215,"./tr/assets/USD.md":86978,"./tr/assets/mpa.md":55912,"./tr/assets/privbitassets.md":8862,"./tr/assets/uia.md":17600,"./tr/components/AccountAssetCreate.md":71792,"./tr/components/AccountMembership.md":49292,"./tr/components/AccountPermActive.md":26426,"./tr/components/AccountPermMemo.md":538,"./tr/components/AccountPermOwner.md":14261,"./tr/components/AccountVoting.md":60705,"./tr/components/AccountVotingCommittee.md":86744,"./tr/components/AccountVotingProxy.md":72137,"./tr/components/AccountVotingWitnesses.md":83455,"./tr/components/AccountVotingWorkers.md":83904,"./tr/components/BorrowModal.md":20254,"./tr/components/DepositWithdraw.md":45713,"./tr/components/Fees.md":14327,"./tr/components/InitError.md":63604,"./tr/dex/introduction.md":93416,"./tr/dex/shorting.md":16693,"./tr/dex/trading.md":92781,"./tr/glossary.md":71118,"./tr/index.md":57357,"./tr/introduction/backups.md":31901,"./tr/introduction/bitshares.md":58715,"./tr/introduction/blockchain.md":87597,"./tr/introduction/committee.md":35488,"./tr/introduction/wallets.md":45677,"./tr/introduction/witness.md":20315,"./tr/introduction/workers.md":1018,"./tr/toc.md":18405,"./zh/accounts/general.md":39356,"./zh/accounts/membership.md":99016,"./zh/accounts/permissions.md":26387,"./zh/assets/EUR.md":35722,"./zh/assets/USD.md":55854,"./zh/assets/mpa.md":16504,"./zh/assets/privbitassets.md":3910,"./zh/assets/uia.md":95276,"./zh/components/AccountAssetCreate.md":52419,"./zh/components/AccountMembership.md":85472,"./zh/components/AccountPermActive.md":13430,"./zh/components/AccountPermMemo.md":30489,"./zh/components/AccountPermOwner.md":86249,"./zh/components/AccountVoting.md":66678,"./zh/components/AccountVotingCommittee.md":92976,"./zh/components/AccountVotingProxy.md":24198,"./zh/components/AccountVotingWitnesses.md":33829,"./zh/components/AccountVotingWorkers.md":98689,"./zh/components/BorrowModal.md":59530,"./zh/components/DepositWithdraw.md":32684,"./zh/components/Fees.md":17490,"./zh/components/InitError.md":680,"./zh/components/PredictionMarkets.md":85354,"./zh/dex/introduction.md":43021,"./zh/dex/shorting.md":25432,"./zh/dex/trading.md":52182,"./zh/glossary.md":80111,"./zh/index.md":12484,"./zh/introduction/backups.md":77794,"./zh/introduction/bitshares.md":51341,"./zh/introduction/blockchain.md":94510,"./zh/introduction/bridges_gateways.md":40835,"./zh/introduction/committee.md":30265,"./zh/introduction/wallets.md":29706,"./zh/introduction/witness.md":8399,"./zh/introduction/workers.md":15357,"./zh/toc.md":86602,"help/en/accounts/general.md":74423,"help/en/accounts/membership.md":21710,"help/en/accounts/permissions.md":62313,"help/en/accounts/proposed.md":60807,"help/en/assets/Asset.md":8419,"help/en/assets/EUR.md":10997,"help/en/assets/USD.md":62816,"help/en/assets/mpa.md":97548,"help/en/assets/privbitassets.md":6225,"help/en/assets/uia.md":89913,"help/en/components/AccountAssetCreate.md":39856,"help/en/components/AccountMembership.md":69329,"help/en/components/AccountPermActive.md":36638,"help/en/components/AccountPermMemo.md":63933,"help/en/components/AccountPermOwner.md":8408,"help/en/components/AccountVoting.md":28379,"help/en/components/AccountVotingCommittee.md":2270,"help/en/components/AccountVotingProxy.md":88336,"help/en/components/AccountVotingWitnesses.md":80878,"help/en/components/AccountVotingWorkers.md":95043,"help/en/components/BorrowModal.md":85920,"help/en/components/BorrowModalPrediction.md":56507,"help/en/components/DepositWithdraw.md":99087,"help/en/components/Fees.md":1911,"help/en/components/InitError.md":29362,"help/en/components/PredictionMarkets.md":80281,"help/en/dex/introduction.md":38251,"help/en/dex/shorting.md":21076,"help/en/dex/trading.md":7607,"help/en/disclaimer.md":46645,"help/en/gateways/introduction.md":13069,"help/en/gateways/ioxbank.md":81885,"help/en/gateways/xbtsx.md":32604,"help/en/glossary.md":77339,"help/en/index.md":60700,"help/en/introduction/backups.md":87117,"help/en/introduction/bitshares.md":93275,"help/en/introduction/blockchain.md":42438,"help/en/introduction/bridges_gateways.md":46595,"help/en/introduction/wallets.md":15851,"help/en/toc.md":81821,"help/en/voting.md":95008,"help/es/accounts/general.md":62677,"help/es/toc.md":68042,"help/ja/components/AccountMembership.md":36272,"help/ja/components/BorrowModal.md":20892,"help/ja/components/DepositWithdraw.md":41063,"help/ru/accounts/general.md":28438,"help/ru/accounts/membership.md":12155,"help/ru/accounts/permissions.md":43239,"help/ru/assets/Asset.md":6193,"help/ru/assets/EUR.md":35796,"help/ru/assets/USD.md":65418,"help/ru/assets/mpa.md":11387,"help/ru/assets/privbitassets.md":74759,"help/ru/assets/uia.md":6643,"help/ru/components/AccountAssetCreate.md":53556,"help/ru/components/AccountMembership.md":49046,"help/ru/components/AccountPermActive.md":27281,"help/ru/components/AccountPermMemo.md":47718,"help/ru/components/AccountPermOwner.md":50010,"help/ru/components/AccountVoting.md":21767,"help/ru/components/AccountVotingCommittee.md":73849,"help/ru/components/AccountVotingProxy.md":51413,"help/ru/components/AccountVotingWitnesses.md":45485,"help/ru/components/AccountVotingWorkers.md":91288,"help/ru/components/BorrowModal.md":37091,"help/ru/components/BorrowModalPrediction.md":38309,"help/ru/components/DepositWithdraw.md":95781,"help/ru/components/Fees.md":15015,"help/ru/components/InitError.md":63037,"help/ru/dex/introduction.md":53632,"help/ru/dex/shorting.md":48167,"help/ru/dex/trading.md":2373,"help/ru/gateways/cryptobridge.md":42199,"help/ru/gateways/introduction.md":49331,"help/ru/gateways/openledger.md":58662,"help/ru/gateways/rudex.md":77860,"help/ru/gateways/spark.md":35672,"help/ru/gateways/xbtsx.md":77207,"help/ru/glossary.md":38038,"help/ru/index.md":25528,"help/ru/introduction/backups.md":3709,"help/ru/introduction/bitshares.md":78997,"help/ru/introduction/blockchain.md":63175,"help/ru/introduction/bridges_gateways.md":90186,"help/ru/introduction/committee.md":81950,"help/ru/introduction/wallets.md":13366,"help/ru/introduction/witness.md":99396,"help/ru/introduction/workers.md":26134,"help/ru/toc.md":69208,"help/tr/accounts/general.md":95132,"help/tr/accounts/membership.md":5845,"help/tr/accounts/permissions.md":68211,"help/tr/assets/Asset.md":3260,"help/tr/assets/EUR.md":89215,"help/tr/assets/USD.md":86978,"help/tr/assets/mpa.md":55912,"help/tr/assets/privbitassets.md":8862,"help/tr/assets/uia.md":17600,"help/tr/components/AccountAssetCreate.md":71792,"help/tr/components/AccountMembership.md":49292,"help/tr/components/AccountPermActive.md":26426,"help/tr/components/AccountPermMemo.md":538,"help/tr/components/AccountPermOwner.md":14261,"help/tr/components/AccountVoting.md":60705,"help/tr/components/AccountVotingCommittee.md":86744,"help/tr/components/AccountVotingProxy.md":72137,"help/tr/components/AccountVotingWitnesses.md":83455,"help/tr/components/AccountVotingWorkers.md":83904,"help/tr/components/BorrowModal.md":20254,"help/tr/components/DepositWithdraw.md":45713,"help/tr/components/Fees.md":14327,"help/tr/components/InitError.md":63604,"help/tr/dex/introduction.md":93416,"help/tr/dex/shorting.md":16693,"help/tr/dex/trading.md":92781,"help/tr/glossary.md":71118,"help/tr/index.md":57357,"help/tr/introduction/backups.md":31901,"help/tr/introduction/bitshares.md":58715,"help/tr/introduction/blockchain.md":87597,"help/tr/introduction/committee.md":35488,"help/tr/introduction/wallets.md":45677,"help/tr/introduction/witness.md":20315,"help/tr/introduction/workers.md":1018,"help/tr/toc.md":18405,"help/zh/accounts/general.md":39356,"help/zh/accounts/membership.md":99016,"help/zh/accounts/permissions.md":26387,"help/zh/assets/EUR.md":35722,"help/zh/assets/USD.md":55854,"help/zh/assets/mpa.md":16504,"help/zh/assets/privbitassets.md":3910,"help/zh/assets/uia.md":95276,"help/zh/components/AccountAssetCreate.md":52419,"help/zh/components/AccountMembership.md":85472,"help/zh/components/AccountPermActive.md":13430,"help/zh/components/AccountPermMemo.md":30489,"help/zh/components/AccountPermOwner.md":86249,"help/zh/components/AccountVoting.md":66678,"help/zh/components/AccountVotingCommittee.md":92976,"help/zh/components/AccountVotingProxy.md":24198,"help/zh/components/AccountVotingWitnesses.md":33829,"help/zh/components/AccountVotingWorkers.md":98689,"help/zh/components/BorrowModal.md":59530,"help/zh/components/DepositWithdraw.md":32684,"help/zh/components/Fees.md":17490,"help/zh/components/InitError.md":680,"help/zh/components/PredictionMarkets.md":85354,"help/zh/dex/introduction.md":43021,"help/zh/dex/shorting.md":25432,"help/zh/dex/trading.md":52182,"help/zh/glossary.md":80111,"help/zh/index.md":12484,"help/zh/introduction/backups.md":77794,"help/zh/introduction/bitshares.md":51341,"help/zh/introduction/blockchain.md":94510,"help/zh/introduction/bridges_gateways.md":40835,"help/zh/introduction/committee.md":30265,"help/zh/introduction/wallets.md":29706,"help/zh/introduction/witness.md":8399,"help/zh/introduction/workers.md":15357,"help/zh/toc.md":86602};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=21175},50379:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(67294),n=a(45697),r=a.n(n),o=a(72023),i=a.n(o),l=a(79489),c=a.n(l),d=0;class u extends s.Component{constructor(e){super(e),this.canvas_id="identicon_"+(this.props.account||"")+ ++d}shouldComponentUpdate(e){return e.size.height!==this.props.size.height||e.size.width!==this.props.size.width||e.account!==this.props.account}render(){let{account:e}=this.props,{height:t,width:a}=this.props.size,n=e?i()(e):null;return s.createElement("canvas",{id:this.canvas_id,ref:"canvas",style:{height:t,width:a},width:2*a,height:2*t,"data-jdenticon-hash":n})}repaint(){if(this.props.account)c().updateById(this.canvas_id);else{let e=this.refs.canvas.getContext("2d");e.fillStyle="rgba(100, 100, 100, 0.5)";let t=e.canvas.width;e.clearRect(0,0,t,t),e.fillRect(0,0,t,t),e.clearRect(1,1,t-2,t-2),e.font=`${t}px sans-serif`,e.fillText("?",t/4,t-t/6)}}componentDidMount(){this.repaint()}componentDidUpdate(){this.repaint()}}u.propTypes={size:r().object.isRequired,account:r().string};const p=u;var h=a(13973);class m extends s.Component{shouldComponentUpdate(e){return!h.Z.are_equal_shallow(e,this.props)}render(){let{account:e,image:t,style:a}=this.props,{height:n,width:r}=this.props.size,o=t?s.createElement("img",{src:t,height:n+"px",width:r+"px"}):s.createElement(p,{id:e,account:e,size:this.props.size});return s.createElement("div",{style:a,className:"account-image"},o)}}m.defaultProps={src:"",account:"",size:{height:120,width:120},style:{}},m.propTypes={src:r().string,account:r().string,size:r().object.isRequired,style:r().object};const g=m},108:(e,t,a)=>{"use strict";a.d(t,{Z:()=>E});var s=a(67294),n=a(13973),r=a(89449),o=a(50379),i=a(32793),l=a(82050),c=a(58074),d=a.n(c),u=a(30806),p=a(23037),h=a(82267),m=a(112),g=a.n(m),b=a(91684),f=a(36345),y=a(94184),_=a.n(y),w=a(45697),k=a.n(w),v=a(76660);class A extends s.Component{static propTypes={label:k().string,error:k().element,placeholder:k().string,onChange:k().func,onAccountChanged:k().func,onAction:k().func,accountName:k().string,account:p.Z.ChainAccount,tabIndex:k().number,disableActionButton:k().bool,allowUppercase:k().bool,typeahead:k().bool,excludeAccounts:k().array,includeMyActiveAccounts:k().bool,focus:k().bool,disabled:k().bool,editable:k().bool,locked:k().bool,requireActiveSelect:k().bool,noForm:k().bool};static defaultProps={autosubscribe:!1,excludeAccounts:[],includeMyActiveAccounts:!0,disabled:null,editable:null,locked:!1,requireActiveSelect:!0,noForm:!1};constructor(e){super(e),this.state={accountIndex:[],locked:null},this.timer=null}componentDidMount(){let{account:e,accountName:t}=this.props;t&&this._addThisToIndex(t),this.props.includeMyActiveAccounts&&this.props.myActiveAccounts.map((e=>{this._addThisToIndex(e)})),this.props.contacts.map((e=>{this._addThisToIndex(e)})),this._fetchAccounts(),this.props.onAccountChanged&&e&&this.props.onAccountChanged(e),!this.props.typeahead&&t&&this.onInputChanged(t)}componentDidUpdate(e){this.props.focus&&this.props.editable&&!this.props.disabled&&this.refs.user_input.focus(),e.account&&e.account!==this.props.account&&this.props.onAccountChanged&&this.props.onAccountChanged(this.props.account)}_addToIndex(e,t=!1){t?(this._addThisToIndex(e),this._fetchAccounts()):(clearTimeout(this.timer),this.timer=setTimeout((()=>{this._addToIndex(e,!0)}),500))}_addThisToIndex(e){let{accountIndex:t}=this.state;if(!e)return;let a=t.find((t=>t.name===e));e&&!a&&t.push({name:e,data:null,attempts:0})}_getIndex(e,t){return t.findIndex((t=>t.name===e))}_getSearchArray(){let{accountIndex:e}=this.state;return e.filter((e=>!e.data&&e.attempts<5?e.name:null)).map((e=>e.name))}_fetchAccounts(){let{accountIndex:e}=this.state,t=this._getSearchArray();t.length>0&&(0,u.FetchChainObjects)(u.ChainStore.getAccount,t,3e3,{}).then((a=>{for(let s=0;s{let a=this._getIndex(t,e);e[a].attempts++})),this.setState({accountIndex:e}),this.state.accountIndex.find((e=>!e.data&&e.attempts<5))&&setTimeout((()=>{this._fetchAccounts()}),500)}))}_populateAccountIndexWithPublicKey(e){return{name:e,attempts:0,data:{name:e,type:this.getInputType(e),rightLabel:"Public Key"}}}_populateAccountIndex(e){let{myActiveAccounts:t,contacts:a}=this.props;if(!e)return null;let s=e.get("name"),n=u.ChainStore.getAccountMemberStatus(e),r=this.getInputType(s),o=f.Z.isKnownScammer(s)?g().translate("account.member.suspected_scammer"):g().translate("account.member."+n),i="name"===r?"#"+e.get("id").substring(4):"id"===r?e.get("name"):"pubkey"==r&&this.props.allowPubKey?"Public Key":null;return{name:s,attempts:0,data:{id:e.get("id"),name:s,type:r,status:n,isOwnAccount:t.has(s),isContact:a.has(s),isKnownScammer:f.Z.isKnownScammer(s),statusLabel:o,rightLabel:i,className:f.Z.isKnownScammer(s)||!e?"negative":null}}}getAccount(){return this.props.account}getError(){let{account:e,accountName:t,error:a,typeahead:s}=this.props,n=t?this.getInputType(t):null;return s||!e&&t&&"pubkey"!==n&&(a=g().translate("account.errors.unknown")),a||!e||n||(a=g().translate("account.errors.invalid")),a}getInputType(e){return e?"#"===e[0]&&n.Z.is_object_id("1.2."+e.substring(1))?"id":u.ChainValidation.is_account_name(e,!0)?"name":this.props.allowPubKey&&u.PublicKey.fromPublicKeyString(e)?"pubkey":null:null}getVerifiedAccountName(e){let{allowUppercase:t}=this.props,a=null;a="string"==typeof e?e:e&&e.target?e.target.value.trim():"",t||(a=a.toLowerCase());let s=a.replace("#","").match(/(?:\/account\/)(.*)/);return s&&(a=s[1]),a}_notifyOnChange(e,t){let{props:a}=this;"input"==t&&this.props.typeahead&&this.props.requireActiveSelect&&(a.onAccountChanged&&a.onAccountChanged(null),a.onChange&&a.onChange(null));let s=this.getVerifiedAccountName(e);a.onChange&&(s||""===s)&&a.onChange(s),a.onAccountChanged&&(0,u.FetchChain)("getAccount",s,void 0,{[s]:!1}).then((e=>{e&&(this.props.requireActiveSelect&&"select"==t||!this.props.requireActiveSelect)&&a.onAccountChanged(e)})).catch((e=>{console.log(e)}))}onSelect(e){this._notifyOnChange(e,"select")}onInputChanged(e){this._addToIndex(this.getVerifiedAccountName(e)),this._notifyOnChange(e,"input")}onKeyDown(e){13!==e.keyCode&&9!==e.keyCode||this.onAction(e)}_onAddContact(){l.Z.addAccountContact(this.props.accountName)}_onRemoveContact(){l.Z.removeAccountContact(this.props.accountName)}onAction(e){let{onAction:t,disableActionButton:a,account:s,accountName:n}=this.props;e.preventDefault(),this.getError()||!t||a||(s?t(s):"pubkey"===this.getInputType(n)&&t(n))}render(){let{accountIndex:e}=this.state,{account:t,accountName:a,disableActionButton:n}=this.props,r=this.state.accountIndex.find((e=>!e.data&&e.attempts<5));const i=null!==this.state.locked?this.state.locked:this.props.locked;let l,c,u,p,h,m,f=this.getError();if(h=!i&&(null!=this.props.editable?this.props.editable:void 0),p=!!i||(null!=this.props.disabled?this.props.disabled:void 0),t){let a=this._getIndex(t.get("name"),e);c=e&&e[a]?e[a].data:null}if(this.props.allowPubKey){let t=e.findIndex((e=>e.name===a));c=e&&e[t]?e[t].data:null}if(u=!(t||c&&"pubkey"===c.type)||f||n,c&&c.isKnownScammer?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.scam_account")},s.createElement("span",{className:"tooltip red"},s.createElement(v.Icon,{type:"warning",theme:"filled"}))):c&&c.isContact?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.follow_user"),onClick:this._onRemoveContact.bind(this)},s.createElement("span",{className:"tooltip green"},s.createElement(v.Icon,{type:"star",theme:"filled"}))):c&&c.isOwnAccount?m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.own_account")},s.createElement("span",{className:"tooltip green"},s.createElement(v.Icon,{type:"user"}))):c&&(m=s.createElement(v.Tooltip,{placement:"top",title:g().translate("tooltip.follow_user_add"),onClick:this._onAddContact.bind(this)},s.createElement("span",{className:"tooltip"},s.createElement(v.Icon,{type:"star"})))),this.props.typeahead){let t=e.filter((e=>e.data?-1!==this.props.excludeAccounts.indexOf(e.id)?null:this.props.includeMyActiveAccounts&&e.data.isOwnAccount||!this.props.locked&&e.data.isContact||a&&e.data.name===a?e:void 0:null)).sort(((e,t)=>e.data.isOwnAccountt.data.name?1:-1)).map((e=>s.createElement(v.Select.Option,{key:e.data.id,value:e.data.name,disabled:!!e.data.disabled||void 0},e.data.isKnownScammer?s.createElement(v.Icon,{type:"warning"}):e.data.isContact?s.createElement(v.Icon,{type:"star"}):e.data.isOwnAccount?s.createElement(v.Icon,{type:"user"}):null," ",e.data.name,s.createElement("span",{style:{float:"right"}},e.data.statusLabel))));l=s.createElement(v.Select,{showSearch:!0,optionLabelProp:"value",onSelect:this.onSelect.bind(this),onSearch:this.onInputChanged.bind(this),placeholder:g().translate("account.search"),notFoundContent:g().translate("global.not_found"),value:c?c.name:null,disabled:!!p||void 0},t)}else l=s.createElement(v.Input,{style:{textTransform:c&&"pubkey"===c.type?null:"lowercase",fontVariant:"initial"},name:"username",id:"username",autoComplete:this.props.editable?"username":void 0,type:"text",value:this.props.accountName||"",placeholder:this.props.placeholder||g().translate("account.name"),disabled:!!this.props.disabled||void 0,ref:"user_input",onChange:this.onInputChanged.bind(this),onKeyDown:this.onKeyDown.bind(this),tabIndex:!this.props.editable||this.props.disabled?-1:this.props.tabIndex,editable:h?h.toString():void 0,readOnly:h?(!h).toString():void 0});let y=this.props.hideImage?null:c&&"pubkey"===c.type?s.createElement("div",{className:"account-image"},s.createElement(b.Z,{name:"key",title:"icons.key",size:"4x"})):s.createElement(o.Z,{size:{height:this.props.size||33,width:this.props.size||33},account:c?c.name:null,custom_image:null}),w=i?s.createElement(v.Tooltip,{title:g().translate("tooltip.unlock_account_name")},s.createElement("div",{style:{lineHeight:"2rem",marginLeft:"10px",cursor:"pointer"},onClick:()=>this.setState({locked:!1})},s.createElement(v.Icon,{style:{fontSize:"1rem"},type:"edit"}))):null,k=this.props.label&&c?s.createElement("div",{className:"header-area"+(this.props.hideImage?" no-margin":"")},s.createElement("label",{className:_()("right-label",c.isKnownScammer?"negative":c.isContact||c.isOwnAccount?"positive":null),style:{marginTop:-30}},s.createElement("span",{style:{paddingRight:"0.5rem"}},c.rightLabel),m)):null;const A=this.props.noForm?s.Fragment:v.Form,E=this.props.noForm?{}:{className:"full-width",layout:"vertical",style:this.props.style};return s.createElement(v.Tooltip,{className:"input-area",title:this.props.tooltip,mouseEnterDelay:.5},s.createElement(A,E,s.createElement(v.Form.Item,{label:this.props.label?g().translate(this.props.label):"",validateStatus:f?"error":null,help:f||null},k,this.props.useHR&&s.createElement("hr",null),s.createElement("div",{className:"inline-label input-wrapper"},y,l,r?s.createElement(v.Icon,{type:"loading",style:{padding:10}}):null,w,this.props.children,this.props.onAction?s.createElement(v.Tooltip,{title:g().translate("tooltip.required_input",{type:g().translate("global.field_type.account")})},s.createElement(v.Button,{type:"primary",disabled:u,onClick:this.onAction.bind(this)},s.createElement(d(),{content:this.props.action_label}))):null))))}}A=(0,h.Z)(A);const E=A=(0,r.$)(A,{listenTo:()=>[i.Z],getProps:()=>({myActiveAccounts:i.Z.getState().myActiveAccounts,contacts:i.Z.getState().accountContacts})})},98107:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(82267),r=a(23037),o=a(43393),i=a.n(o);function l(){return l=Object.assign||function(e){for(var t=1;t!!e&&0!==e.get("balance"))).map((e=>e.get("asset_type"))),r=t.filter((e=>!!e)).reduce(((e,t)=>{let a=t.getIn(["sell_price","base","asset_id"]);return e[a]||(e[a]=0),e[a]+=parseInt(t.get("for_sale"),10),e}),{});for(let e in r)-1===n.indexOf(e)&&n.push(e);let o=e;return s.createElement(o,l({},a,{orders:r,balanceAssets:i().List(n)}))}}const d=(0,n.Z)(c)},74656:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(67294),n=a(80314),r=a(112),o=a.n(r),i=a(45697),l=a.n(i),c=a(72034),d=a(38216),u=a(89449);class p extends s.Component{static propTypes={block_number:l().number.isRequired};constructor(e){super(e),this.state={time:null}}UNSAFE_componentWillMount(){this.props.blockHeader||c.Z.getHeader.defer(this.props.block_number)}shouldComponentUpdate(e){return e.block_number!==this.props.block_number||e.blockHeader!==this.props.blockHeader}render(){return s.createElement("span",{className:"time",key:this.props.block_number},this.props.blockHeader?this.props.fullDate?o().localize(this.props.blockHeader.timestamp,{type:"date",format:"full"}):s.createElement(n.Z,{time:this.props.blockHeader.timestamp}):null)}}const h=p=(0,u.$)(p,{listenTo:()=>[d.Z],getProps:e=>({blockHeader:d.Z.getState().blockHeaders.get(e.block_number)})})},9739:(e,t,a)=>{"use strict";a.d(t,{Z:()=>b});var s=a(67294),n=a(79618),r=a(56934),o=a(112),i=a.n(o),l=a(91684),c=a(89449),d=a(29548),u=a(13973),p=a(87913),h=a(76660);class m extends s.Component{static defaultProps={fullLength:!1};shouldComponentUpdate(e){return!u.Z.are_equal_shallow(e.memo,this.props.memo)||e.wallet_locked!==this.props.wallet_locked}componentDidMount(){p.Z.rebuild()}_toggleLock(e){e.preventDefault(),r.Z.unlock().then((()=>{p.Z.rebuild()})).catch((()=>{}))}render(){let{memo:e,fullLength:t}=this.props;if(!e)return null;let{text:a,isMine:r}=n.Z.decodeMemo(e);if(!a&&r)return s.createElement("div",{className:"memo"},s.createElement("span",null,i().translate("transfer.memo_unlock")," "),s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(l.Z,{name:"locked",title:"icons.locked.action"})));a=u.Z.sanitize(a);let o=a;return a&&!t&&a.length>35&&(a=a.substr(0,35)+"..."),a?s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(h.Tooltip,{placement:"bottom",title:o!==a?o:null},s.createElement("span",{className:"inline-block","data-class":"memo-tip","data-offset":"{'bottom': 10}"},a))):null}}class g extends s.Component{render(){return s.createElement(m,this.props)}}const b=(0,c.$)(g,{listenTo:()=>[d.Z],getProps:()=>({wallet_locked:d.Z.getState().locked})})},79060:(e,t,a)=>{"use strict";a.d(t,{Z:()=>z});var s=a(67294),n=a(21019),r=a(73727),o=a(94184),i=a.n(o),l=a(58074),c=a.n(l),d=a(112),u=a.n(d),p=a(13973),h=a(74656),m=a(3841),g=a(38715),b=a(82267),f=a(23037),y=a(30806),_=a(89449),w=a(39014),k=a(45697),v=a.n(k),A=a(76660),E=a(59707);const{operations:x}=y.ChainTypes;a(64);let S=Object.keys(x);class C extends s.Component{shouldComponentUpdate(e){return e.color!==this.props.color||e.type!==this.props.type}render(){let e=u().translate("transaction.trxTypes"),t=i()("label",this.props.color||"info");return s.createElement("span",{className:t},e[S[this.props.type]])}}class T extends s.Component{static propTypes={dynGlobalObject:f.Z.ChainObject.isRequired};static defaultProps={dynGlobalObject:"2.1.0",tempComponent:"tr"};constructor(e){super(e)}shouldComponentUpdate(e){let{block:t,dynGlobalObject:a}=this.props,s=a.get("last_irreversible_block_num");return e.dynGlobalObject!==this.props.dynGlobalObject||t>s||this.props.color!==e.color}render(){let{block:e,fee:t,color:a,type:o,hideOpLabel:i,hidePending:l}=this.props,d=this.props.dynGlobalObject.get("last_irreversible_block_num"),m=null;return!l&&e>d&&(m=s.createElement("span",null,"(",s.createElement(c(),{content:"operation.pending",blocks:e-d}),")")),t.amount=parseInt(t.amount,10),s.createElement("tr",null,this.props.includeOperationId?s.createElement("td",{style:{textAlign:"left"}},this.props.operationId):null,i?null:s.createElement("td",{style:{textAlign:"left"},className:"left-td column-hide-tiny"},s.createElement(A.Tooltip,{placement:"bottom",title:u().translate("tooltip.show_block",{block:p.Z.format_number(this.props.block,0)})},s.createElement(r.rU,{className:"inline-block",to:`/block/${this.props.block}/${this.props.txIndex}`},s.createElement(C,{color:a,type:o})))),s.createElement("td",{style:{padding:"8px 5px",textAlign:"left"}},s.createElement("div",null,s.createElement("span",null,this.props.info)),s.createElement("div",{style:{fontSize:14,paddingTop:5}},m?s.createElement("span",null," - ",m):null)),!this.props.hideFee&&s.createElement("td",{style:{textAlign:"left"}},s.createElement(n.Z,{amount:t.amount,asset:t.asset_id})),s.createElement("td",null,this.props.hideDate?null:s.createElement(h.Z,{block_number:e,fullDate:this.props.fullDate})))}}T=(0,b.Z)(T);class B extends s.Component{state={labelColor:"info"};static defaultProps={op:[],current:"",block:null,hideOpLabel:!1,csvExportMode:!1};static propTypes={op:v().array.isRequired,current:v().string,block:v().number,csvExportMode:v().bool};UNSAFE_componentWillReceiveProps(e){e.marketDirections!==this.props.marketDirections&&this.forceUpdate()}shouldComponentUpdate(e,t){return!(!this.props.op||!e.op||p.Z.are_equal_shallow(e.op[1],this.props.op[1])&&e.marketDirections===this.props.marketDirections&&this.state.labelColor===t.labelColor)}linkToAccount(e){return e?p.Z.is_object_id(e)?s.createElement(m.Z,{account:e}):s.createElement(r.rU,{to:`/account/${e}`},e):s.createElement("span",null,"-")}linkToAsset(e){return e?p.Z.is_object_id(e)?s.createElement(g.Z,{asset:e}):s.createElement(r.rU,{to:`/asset/${e}`},e):s.createElement("span",null,"-")}changeColor=e=>{const{labelColor:t}=this.state;t!==e&&this.setState({labelColor:e})};render(){let{op:e,block:t}=this.props,a=null,r=null;if(r=(0,E.Z)(S[e[0]],this.props,{fromComponent:"operation",linkToAccount:this.linkToAccount,linkToAsset:this.linkToAsset,changeColor:this.changeColor}),this.props.csvExportMode){const a=y.ChainStore.getObject("2.0.0"),o=y.ChainStore.getObject("2.1.0"),i=p.Z.calc_block_time(t,a,o);return s.createElement("div",null,s.createElement("div",null,i?i.toLocaleString():""),s.createElement("div",null,S[e[0]]),s.createElement("div",null,r),s.createElement("div",null,s.createElement(n.Z,{amount:parseInt(e[1].fee.amount,10),asset:e[1].fee.asset_id})))}return a=r?s.createElement(T,{operationId:this.props.operationId,txIndex:this.props.txIndex,includeOperationId:this.props.includeOperationId,block:t,type:e[0],color:this.state.labelColor,fee:e[1].fee,hideOpLabel:this.props.hideOpLabel,hideDate:this.props.hideDate,info:r,hideFee:this.props.hideFee,hidePending:this.props.hidePending,fullDate:this.props.fullDate}):null,a||s.createElement("tr",null)}}const z=B=(0,_.$)(B,{listenTo:()=>[w.Z],getProps:()=>({marketDirections:w.Z.getState().marketDirections})})},53528:(e,t,a)=>{"use strict";a.d(t,{Z:()=>E,h:()=>k});var s=a(67294),n=a(21019),r=a(73727),o=a(58074),i=a.n(o),l=a(112),c=a.n(l),d=a(13973),u=a(3841),p=a(38715),h=a(30806),m=a(45697),g=a.n(m),b=a(59707),f=a(58466),y=a(76660);const{operations:_}=h.ChainTypes;a(64);let w=Object.keys(_);const k=({id:e,expiration:t,style:a,openJSONModal:n})=>{const r=c().localize(new Date(t),{format:"short"});return s.createElement("b",{style:a},n?s.createElement("span",{className:"cursor-pointer",onClick:n},e," ",s.createElement(y.Icon,{type:"file-search"})," | "):s.createElement("span",null,e," | "),s.createElement("span",null,s.createElement(i(),{content:"proposal.expires"}),": ",r))};k.propTypes={openJSONModal:g().func},k.defaultProps={openJSONModal:null};class v extends s.Component{constructor(e){super(e),this.showDetails=this.showDetails.bind(this)}showDetails(e){e.preventDefault(),this.props.history.push(`/block/${this.props.block}`)}render(){let{id:e,fee:t,hideFee:a,hideExpiration:r,expiration:o}=this.props;return t.amount=parseInt(t.amount,10),s.createElement("div",{style:{padding:"5px 0",textAlign:"left"}},s.createElement("span",null,this.props.info," ",a?null:s.createElement("span",{className:"facolor-fee"},"(",s.createElement(n.Z,{amount:t.amount,asset:t.asset_id})," ","fee)")),!r&&this.props.expiration&&s.createElement(k,{id:e,expiration:o,style:{paddingTop:5,fontSize:"0.85rem",paddingBottom:"0.5rem",display:"block"}}))}}class A extends s.Component{state={label_color:"info"};static defaultProps={op:[],current:"",block:null,hideDate:!1,hideFee:!1,hideOpLabel:!1,csvExportMode:!1,collapsed:!0};static propTypes={op:g().array.isRequired,current:g().string,block:g().number,hideDate:g().bool,hideFee:g().bool,csvExportMode:g().bool,collapsed:g().bool};linkToAccount(e){return e?d.Z.is_object_id(e)?s.createElement(u.Z,{account:e}):s.createElement(r.rU,{to:`/account/${e}/overview`},e):s.createElement("span",null,"-")}linkToAsset(e){return e?d.Z.is_object_id(e)?s.createElement(p.Z,{asset:e}):s.createElement(r.rU,{to:`/asset/${e}`},e):s.createElement("span",null,"-")}changeColor=e=>{const{label_color:t}=this.state;t!==e&&this.setState({label_color:e})};render(){let{op:e,proposer:t,block:a,hideExpiration:r,index:o,csvExportMode:i}=this.props;const{label_color:l}=this.state;let c=null,u=null;if(u=(0,b.Z)(w[e[0]],this.props,{fromComponent:"proposed_operation",linkToAccount:this.linkToAccount,linkToAsset:this.linkToAsset,changeColor:this.changeColor}),t&&(u=s.createElement("div",{className:"inline-block"},0==o?s.createElement("div",{style:{paddingBottom:"0.5rem"}},s.createElement(f.Z,{string:"operation.proposal_create",keys:[{type:"account",value:t,arg:"account"}]})):null,s.createElement("div",{style:{marginLeft:"0.5rem"}},u))),i){const t=h.ChainStore.getObject("2.0.0"),r=h.ChainStore.getObject("2.1.0"),o=d.Z.calc_block_time(a,t,r);return s.createElement("div",{key:this.props.key},s.createElement("div",null,o?o.toLocaleString():""),s.createElement("div",null,w[e[0]]),s.createElement("div",null,u),s.createElement("div",null,s.createElement(n.Z,{amount:parseInt(e[1].fee.amount,10),asset:e[1].fee.asset_id})))}return c=u?s.createElement(v,{index:o,id:this.props.id,block:a,type:e[0],color:l,fee:e[1].fee,hideDate:this.props.hideDate,hideFee:this.props.hideFee,hideOpLabel:this.props.hideOpLabel,info:u,expiration:this.props.expiration,hideExpiration:r}):null,c||s.createElement("div",null)}}const E=A},85158:(e,t,a)=>{"use strict";a.d(t,{Z:()=>W});var s=a(67294),n=a(45697),r=a.n(n),o=a(21019),i=a(73727),l=a(58074),c=a.n(l),d=a(112),u=a.n(d),p=a(94184),h=a.n(p),m=a(62254),g=a(86635),b=a.n(g),f=a(13973),y=a(76660),_=a(3841),w=a(38715),k=a(33951),v=a(17315),A=a.n(v),E=a(91684),x=a(79618),S=a(56934),C=a(53528),T=a(30806),B=a(87913),z=a(30381),P=a.n(z),N=(a(66261),a(91410)),M=a(7581);function Z(){return Z=Object.assign||function(e){for(var t=1;ts.createElement(c(),Z({content:"boolean."+(e?"true":"false")},t));class D extends s.Component{shouldComponentUpdate(e){return e.type!==this.props.type}render(){let e=u().translate("transaction.trxTypes"),t=h()("txtlabel",this.props.color||"info");return s.createElement("tr",null,s.createElement("td",null,s.createElement("span",{className:t},this.props.txIndex>=0?s.createElement("span",null,"#",this.props.txIndex+1,": "):"",e[O[this.props.type]])),s.createElement("td",{className:"json-link",onClick:this.props.openJSONModal},s.createElement(y.Icon,{type:"file-search"}),s.createElement(c(),{component:"a",content:"transaction.view_json"})))}}class R extends s.Component{render(){return s.createElement("span",null,this.props.children)}}class j extends s.Component{constructor(e){super(e),this.state={visible:!1}}openJSONModal=()=>{this.setState({visible:!0})};closeJSONModal=()=>{this.setState({visible:!1})};render(){const{operation:e}=this.props;let t=s.createElement("tr",null,s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.fee"})),s.createElement("td",null,e[1].fee.amount>0?s.createElement("span",null,s.createElement(o.Z,{color:"fee",amount:e[1].fee.amount,asset:e[1].fee.asset_id,style:{marginRight:"10px"}}),"  ",s.createElement(E.Z,{name:"question-circle",title:"settings.can_change_default_fee_asset_tooltip"})):s.createElement("label",null,s.createElement(c(),{content:"transfer.free"}))));const a=u().translate("transaction.trxTypes");return s.createElement("div",null,s.createElement("table",{style:{marginBottom:"1em"},className:"table op-table"},s.createElement("caption",null),s.createElement("tbody",null,s.createElement(D,{txIndex:this.props.txIndex,type:e[0],color:this.props.color,openJSONModal:this.openJSONModal}),this.props.children,t)),s.createElement(N.Z,{visible:this.state.visible,operation:e,title:a[O[e[0]]||""],hideModal:this.closeJSONModal}))}}class F extends s.Component{constructor(e){super(e),this.state={}}componentDidMount(){B.Z.rebuild()}linkToAccount(e){if(!e)return s.createElement("span",null,"-");let t=this.props.no_links?R:i.rU;return f.Z.is_object_id(e)?s.createElement(_.Z,{account:e}):s.createElement(t,{to:`/account/${e}/overview`},e)}linkToAsset(e){if(!e)return s.createElement("span",null,"-");let t=this.props.no_links?R:i.rU;return f.Z.is_object_id(e)?s.createElement(w.Z,{asset:e}):s.createElement(t,{to:`/asset/${e}`},e)}_toggleLock(e){e.preventDefault(),S.Z.unlock().then((()=>{this.forceUpdate()})).catch((()=>{}))}render(){let{trx:e}=this.props,t=null;t=[];let a=e.operations.length,n=null;return e.operations.forEach(((e,r)=>{let i=[],l=0,d="";switch(O[e[0]]){case"transfer":if(d="success",e[1].memo){let{text:t,isMine:a}=x.Z.decodeMemo(e[1].memo);n=t?s.createElement("td",{className:"memo",style:{wordBreak:"break-all"}},t):!t&&a?s.createElement("td",null,s.createElement(c(),{content:"transfer.memo_unlock"})," ",s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(E.Z,{name:"locked",title:"icons.locked.action"}))):null}i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,this.linkToAccount(e[1].from)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].to)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),n&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:"transfer.memo"})),n));break;case"limit_order_create":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"exchange.price"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:e[1].amount_to_sell.asset_id,quote_asset:e[1].min_to_receive.asset_id,base_amount:e[1].amount_to_sell.amount,quote_amount:e[1].min_to_receive.amount,noPopOver:!0})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"exchange.sell"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_sell.amount,asset:e[1].amount_to_sell.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(y.Tooltip,{placement:"left",title:u().translate("tooltip.buy_min")},s.createElement(c(),{component:"span",content:"exchange.buy_min"}))),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].min_to_receive.amount,asset:e[1].min_to_receive.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.seller"})),s.createElement("td",null,this.linkToAccount(e[1].seller)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.expiration"})),s.createElement("td",null,s.createElement(m.Ji,{value:P().utc(e[1].expiration),format:"full",timeZoneName:"short"}))));break;case"limit_order_cancel":case"short_order_cancel":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.order_id"})),s.createElement("td",null,e[1].order))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.fee_payer"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account))));break;case"call_order_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.funding_account"})),s.createElement("td",null,this.linkToAccount(e[1].funding_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.delta_collateral"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].delta_collateral.amount,asset:e[1].delta_collateral.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.delta_debt"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].delta_debt.amount,asset:e[1].delta_debt.asset_id})))),e[1].extensions&&e[1].extensions.target_collateral_ratio&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.collateral_target"})),s.createElement("td",null,e[1].extensions.target_collateral_ratio/1e3)));break;case"key_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.fee_payer"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.key"})),s.createElement("td",null,e[1].key_data[1])));break;case"account_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,this.linkToAccount(e[1].name)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.member.registrar"})),s.createElement("td",null,this.linkToAccount(e[1].registrar)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.member.lifetime_referrer"})),s.createElement("td",null,this.linkToAccount(e[1].referrer))));break;case"account_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,this.linkToAccount(e[1].account)))),e[1].new_options&&(e[1].new_options.voting_account?i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.proxy"})),s.createElement("td",null,this.linkToAccount(e[1].new_options.voting_account)))):(console.log("num witnesses: ",e[1].new_options.num_witness),console.log("===============> NEW: ",e[1].new_options),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.proxy"})),s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.votes.no_proxy"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.num_committee"})),s.createElement("td",null,e[1].new_options.num_committee))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.num_witnesses"})),s.createElement("td",null,e[1].new_options.num_witness))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.votes"})),s.createElement("td",null,JSON.stringify(e[1].new_options.votes))))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.options.memo_key"})),s.createElement("td",null,e[1].new_options.memo_key.substring(0,10)+"...")))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.common_options"})),s.createElement("td",null,s.createElement(b(),{data:e[1],search:!1}))));break;case"account_whitelist":let t;for(var p=0;p{a.push(s.createElement("div",null,this.linkToAccount(e),s.createElement("br",null)))})),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.asset_update"})),s.createElement("td",null,this.linkToAsset(e[1].asset_to_update)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.new_producers"})),s.createElement("td",null,a)));break;case"asset_issue":if(d="warning",e[1].memo){let{text:t,isMine:a}=x.Z.decodeMemo(e[1].memo);n=t?s.createElement("td",null,t):!t&&a?s.createElement("td",null,s.createElement(c(),{content:"transfer.memo_unlock"})," ",s.createElement("a",{onClick:this._toggleLock.bind(this)},s.createElement(E.Z,{name:"locked",title:"icons.locked.action"}))):null}i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.assets.issuer"})),s.createElement("td",null,this.linkToAccount(e[1].issuer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.asset_issue"})),s.createElement("td",null,s.createElement(o.Z,{style:{fontWeight:"bold"},amount:e[1].asset_to_issue.amount,asset:e[1].asset_to_issue.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].issue_to_account)))),n&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:"transfer.memo"})),n));break;case"asset_burn":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].payer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_burn.amount,asset:e[1].amount_to_burn.asset_id}))));break;case"asset_fund_fee_pool":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].from_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount,asset:"1.3.0"}))));break;case"asset_settle":d="warning",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,this.linkToAccount(e[1].account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].amount.asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id}))));break;case"asset_publish_feed":d="warning";let{feed:r}=e[1];i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.publisher"})),s.createElement("td",null,this.linkToAccount(e[1].publisher)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.price_feed.maximum_short_squeeze_ratio"})),s.createElement("td",null,(r.maximum_short_squeeze_ratio/1e3).toFixed(2)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.price_feed.maintenance_collateral_ratio"})),s.createElement("td",null,(r.maintenance_collateral_ratio/1e3).toFixed(2)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"markets.core_rate"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:r.core_exchange_rate.base.asset_id,quote_asset:r.core_exchange_rate.quote.asset_id,base_amount:r.core_exchange_rate.base.amount,quote_amount:r.core_exchange_rate.quote.amount,noPopOver:!0})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.feed_price"})),s.createElement("td",null,s.createElement(k.Z,{base_asset:M.Z.extractRawFeedPrice(r).base.asset_id,quote_asset:M.Z.extractRawFeedPrice(r).quote.asset_id,base_amount:M.Z.extractRawFeedPrice(r).base.amount,quote_amount:M.Z.extractRawFeedPrice(r).quote.amount,noPopOver:!0}))));break;case"committee_member_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.committee_member.title"})),s.createElement("td",null,this.linkToAccount(e[1].committee_member_account))));break;case"witness_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.witness"})),s.createElement("td",null,this.linkToAccount(e[1].witness_account))));break;case"witness_update":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.witness"})),s.createElement("td",null,this.linkToAccount(e[1].witness_account)))),e[1].new_url&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.new_url"})),s.createElement("td",null,s.createElement("a",{href:e[1].new_url,target:"_blank",rel:"noopener noreferrer"},e[1].new_url))));break;case"balance_claim":d="success";let T=e[1].balance_to_claim.substring(5);i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.claimed"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].total_claimed.amount,asset:e[1].total_claimed.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.deposit_to"})),s.createElement("td",null,this.linkToAccount(e[1].deposit_to_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.balance_id"})),s.createElement("td",null,"#",T))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.balance_owner"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].balance_owner_key.substring(0,10),"...")));break;case"vesting_balance_withdraw":d="success",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].owner)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id}))));break;case"transfer_to_blind":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,this.linkToAccount(e[1].from)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.blinding_factor"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].blinding_factor))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.outputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].outputs[0],search:!1}))));break;case"transfer_from_blind":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,this.linkToAccount(e[1].to)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.blinding_factor"})),s.createElement("td",{style:{fontSize:"80%"}},e[1].blinding_factor))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.inputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].inputs[0],search:!1}))));break;case"blind_transfer":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.inputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].inputs[0],search:!1})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.outputs"})),s.createElement("td",null,s.createElement(b(),{data:e[1].outputs[0],search:!1}))));break;case"proposal_create":var h=new Date(e[1].expiration_time+"Z"),g=void 0!==e[1].review_period_seconds,v=g?h.getTime()-1e3*e[1].review_period_seconds:null;i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.review_period"})),s.createElement("td",null,g?s.createElement(m.Ji,{value:new Date(v),format:"full"}):s.createElement("span",null,"—")))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.expiration_time"})),s.createElement("td",null,s.createElement(m.Ji,{value:h,format:"full"}))));var S=[];for(let t of e[1].proposed_ops)S.push(t.op);let B=e[1].proposed_ops.map(((e,t)=>s.createElement(C.Z,{key:t,index:t,op:e.op,inverted:!1,hideFee:!0,hideOpLabel:!0,hideDate:!0,proposal:!0,collapsed:!0})));i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.proposed_operations"})),s.createElement("td",null,B))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account))));break;case"proposal_update":let z=["active_approvals_to_add","active_approvals_to_remove","owner_approvals_to_add","owner_approvals_to_remove","key_approvals_to_add","key_approvals_to_remove"];i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.id"})),s.createElement("td",null,e[1].proposal))),z.forEach((t=>{e[1][t].length&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{content:`proposal.update.${t}`})),s.createElement("td",null,e[1][t].map((e=>s.createElement("div",{key:e},this.linkToAccount(e)))))))}));break;case"proposal_delete":d="cancel",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.fee_paying_account"})),s.createElement("td",null,this.linkToAccount(e[1].fee_paying_account)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_delete.using_owner_authority"})),s.createElement("td",null,s.createElement(L,{value:e[1].using_owner_authority})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"proposal_create.id"})),s.createElement("td",null,e[1].proposal)));break;case"asset_claim_fees":d="success",i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.claimed"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_claim.amount,asset:e[1].amount_to_claim.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transaction.deposit_to"})),s.createElement("td",null,this.linkToAccount(e[1].issuer))));break;case"asset_reserve":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"modal.reserve.from"})),s.createElement("td",null,this.linkToAccount(e[1].payer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,this.linkToAsset(e[1].amount_to_reserve.asset_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_reserve.amount,asset:e[1].amount_to_reserve.asset_id}))));break;case"worker_create":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.title"})),s.createElement("td",null,e[1].name)));let N=u().localize(new Date(e[1].work_begin_date),{type:"date"}),Z=u().localize(new Date(e[1].work_end_date),{type:"date"});i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.period"})),s.createElement("td",null,N," - ",Z))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.daily_pay"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].daily_pay,asset:"1.3.0"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.website"})),s.createElement("td",null,f.Z.sanitize(e[1].url)))),e[1].initializer[1]&&i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.workers.vesting_pay"})),s.createElement("td",null,e[1].initializer[1].pay_vesting_period_days)));break;case"asset_claim_pool":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"account.name"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,s.createElement(w.Z,{asset:e[1].asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount_to_claim.amount,asset:e[1].amount_to_claim.asset_id}))));break;case"asset_update_issuer":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].new_issuer})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.title"})),s.createElement("td",null,s.createElement(w.Z,{asset:e[1].asset_to_update}))));break;case"bid_collateral":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.account.title"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].bidder})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.collateral_bid.collateral"})),s.createElement("td",null,s.createElement(o.Z,{asset:e[1].additional_collateral.asset_id,amount:e[1].additional_collateral.amount})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.asset.collateral_bid.debt"})),s.createElement("td",null,s.createElement(o.Z,{asset:e[1].debt_covered.asset_id,amount:e[1].debt_covered.amount}))));break;case"htlc_create":const I=this.props.block?this.props.block.timestamp.getTime():(new Date).getTime();let O=new Date(I+1e3*e[1].claim_period_seconds);i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.from"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].from})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.to"})),s.createElement("td",null,s.createElement(_.Z,{account:e[1].to})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"transfer.amount"})),s.createElement("td",null,s.createElement(o.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.claim_period_due"})),s.createElement("td",null,s.createElement(m.Ji,{value:O,format:"full"})))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.preimage_hash"})),s.createElement("td",null,s.createElement(y.Tooltip,{placement:"bottom",title:u().translate("htlc.preimage_hash_explanation")},s.createElement("span",null,"("+e[1].preimage_size+", "+e[1].preimage_hash[0]+"): "+e[1].preimage_hash[1])))));break;case"htlc_redeem":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.id"})),s.createElement("td",null,s.createElement("span",null,e[1].htlc_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.redeemer"})),s.createElement("td",null,this.linkToAccount(e[1].redeemer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.preimage"})),s.createElement("td",null,this.linkToAccount(e[1].preimage))));break;case"htlc_extend":i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.id"})),s.createElement("td",null,s.createElement("span",null,e[1].htlc_id)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.update_issuer"})),s.createElement("td",null,this.linkToAccount(e[1].update_issuer)))),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"htlc.seconds_to_add"})),s.createElement("td",null,s.createElement("span",null,e[1].seconds_to_add))));break;default:console.log("unimplemented tx op:",e),i.push(s.createElement("tr",{key:l++},s.createElement("td",null,s.createElement(c(),{component:"span",content:"explorer.block.op"})),s.createElement("td",null,s.createElement(b(),{data:e,search:!1}))))}t.push(s.createElement(j,{txIndex:this.props.index,key:r,opCount:a,index:r,color:d,operation:e},i))})),s.createElement("div",null,t)}}F.defaultProps={no_links:!1},F.propTypes={trx:r().object.isRequired,index:r().number.isRequired,no_links:r().bool};const W=F},17997:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(76660),r=a(34961);function o(){return o=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>y});var s=a(67294),n=a(45697),r=a.n(n),o=a(94184),i=a.n(o),l=a(82050),c=a(32793),d=a(30806),u=a(112),p=a.n(u),h=a(59851),m=a(87913),g=a(76660);function b(){return b=Object.assign||function(e){for(var t=1;te===this.state.value));this.props.accountShouldNotExist&&t&&(e=p().translate("account.name_input.name_is_taken")),this.props.accountShouldExist&&!t&&(e=p().translate("account.name_input.not_found"))}return e}validateAccountName(e){this.state.error=""===e?"Please enter valid account name":d.ChainValidation.is_account_name_error(e),this.state.warning=null,this.props.cheapNameOnly?this.state.error||d.ChainValidation.is_cheap_name(e)||(this.state.error=p().translate("account.name_input.premium_name_faucet")):this.state.error||d.ChainValidation.is_cheap_name(e)||(this.state.warning=p().translate("account.name_input.premium_name_warning")),this.setState({value:e,error:this.state.error,warning:this.state.warning}),this.props.onChange&&this.props.onChange({value:e,valid:!this.getError()}),(this.props.accountShouldExist||this.props.accountShouldNotExist)&&l.Z.accountSearch(e)}handleChange(e){e.preventDefault(),e.stopPropagation();var t=e.target.value.toLowerCase();t=(t=t.match(/[a-z0-9\.-]+/))?t[0]:"",this.setState({account_name:t}),this.validateAccountName(t)}onKeyDown(e){this.props.onEnter&&13===event.keyCode&&this.props.onEnter(e)}render(){let e=this.getError()||"",t=(i()("form-group","account-name",{"has-error":!1}),this.state.warning);return s.createElement(g.Form.Item,{label:this.props.label,help:e||t||"",validateStatus:e?"error":t?"warning":""},s.createElement(g.Input,{name:"username",id:"username",type:"text",ref:"input",autoComplete:"username",placeholder:this.props.placeholder,onChange:this.handleChange,onKeyDown:this.onKeyDown,value:this.state.account_name||this.props.initial_value}))}}class y extends s.Component{render(){return s.createElement(h.Z,{stores:[c.Z],inject:{searchAccounts:()=>c.Z.getState().searchAccounts}},s.createElement(f,b({ref:"nameInput"},this.props)))}}},47449:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(112),r=a.n(n),o=a(45697),i=a.n(o);class l extends s.Component{static propTypes={account_names:i().array,list_size:i().number,onChange:i().func,placeholder:i().string,center:i().bool,tabIndex:i().number,className:i().string};constructor(e){super(e),this.state={selected:null},this.default_placeholder=r().translate("account.select_placeholder")}componentDidMount(){}shouldComponentUpdate(e){return e.selected!==this.props.selected||e.list_size!==this.props.list_size||e.placeholder!==this.props.placeholder||e.account_names!==this.props.account_names}value(){return this.state.selected}reset(){this.setState({selected:null})}render(){var e=this.props.account_names,t=this.props.selected,a=this.props.placeholder||this.default_placeholder;a=this.props.list_size>1?s.createElement("option",{value:"",disabled:!0},a):s.createElement("option",{value:""},a);var n=0;return s.createElement("select",{ref:"account-selector",key:t,defaultValue:t,className:"form-control account-select bts-select "+(this.props.className||""),onChange:this._onAccountChange.bind(this),style:this.props.center?{margin:"0 auto"}:null,tabIndex:this.props.tabIndex},a,e.sort().map((e=>e&&""!==e?s.createElement("option",{key:n++,value:e},e):null)))}_onAccountChange(e){e.preventDefault();let t=e.target.value;this._selectAccount(t)}_selectAccount(e){e===(this.props.placeholder||this.default_placeholder)&&(e=null),this.setState({selected:e}),this.props.onChange&&this.props.onChange(e)}}},81082:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(67294),n=a(45697),r=a.n(n),o=a(94184),i=a.n(o),l=a(58074),c=a.n(l),d=a(23725),u=a.n(d),p=a(59485);class h extends s.Component{static propTypes={onChange:r().func,onEnter:r().func,confirmation:r().bool,wrongPassword:r().bool,noValidation:r().bool,noLabel:r().bool,passwordLength:r().number,checkStrength:r().bool,value:r().string,copy:r().bool,visible:r().bool,readonly:r().bool};static defaultProps={confirmation:!1,wrongPassword:!1,noValidation:!1,noLabel:!1,passwordLength:8,checkStrength:!1,value:"",copy:!1,visible:!1,readonly:!1};constructor(e){super(),this.handleChange=this.handleChange.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.state={value:e.value||"",error:null,wrong:!1,doesnt_match:!1}}value(){let e=this.refs.password;return e?e.value:""}clear(){this.refs.password.value="",this.props.confirmation&&(this.refs.confirm_password.value="")}focus(){this.refs.password.focus()}valid(){return!(this.state.error||this.state.wrong||this.state.doesnt_match)&&this.state.value.length>=this.props.passwordLength}handleChange(e){e.preventDefault(),e.stopPropagation();const t=!this.props.confirmation||this.refs.confirm_password.value,a=this.refs.password.value,s=!!this.props.confirmation&&t&&a!==t;let n,r=0;this.props.checkStrength&&(r=this.state.value.length>100?{score:4}:u().load({sync:!0})(this.state.value||""),n=Math.min(5,r.score+Math.floor(this.state.value.length/(1.5*this.props.passwordLength))));let o={valid:!this.state.error&&!this.state.wrong&&!(this.props.confirmation&&s)&&t&&a.length>=this.props.passwordLength,value:a,score:n,doesnt_match:s};this.props.onChange&&this.props.onChange(o),this.setState(o)}onKeyDown(e){this.props.onEnter&&13===e.keyCode&&this.props.onEnter(e)}render(){let{score:e,value:t}=this.state;const{copy:a,visible:n,readonly:r}=this.props;let o=null,l=null;this.state.wrong||this.props.wrongPassword?o=s.createElement("div",null,s.createElement(c(),{content:"wallet.pass_incorrect"})):this.state.error&&(o=s.createElement("div",null,this.state.error)),!this.props.noValidation&&!o&&this.state.value.length>0&&this.state.value.length{"use strict";a.d(t,{Z:()=>k});var s=a(67294),n=a(112),r=a.n(n),o=a(58074),i=a.n(o),l=a(89449),c=a(76660),d=a(39014),u=a(23316),p=a(60567),h=a(55294),m=a(41737),g=a(45697),b=a.n(g);a(23037);class f extends s.Component{static propTypes={showSalutation:b().bool};static defaultProps={showSalutation:!1};constructor(e){super(e)}render(){return s.createElement(s.Fragment,null,this.props.showSalutation&&s.createElement(i(),{content:"external_service_provider.welcome.hello",component:"h2"}),this.props.showSalutation&&s.createElement(i(),{content:"external_service_provider.welcome.first_line",component:"p"}),s.createElement("p",null,s.createElement(i(),{content:"external_service_provider.welcome.explanation_dex"}),s.createElement(i(),{content:"external_service_provider.welcome.explanation_service_providers"})),s.createElement("p",null,s.createElement(i(),{content:"external_service_provider.welcome.explanation_what_to_do"}),s.createElement(i(),{content:"external_service_provider.welcome.explanation_later"})))}}const y=f;var _=a(91822);class w extends s.Component{constructor(e){super(e),this.state={showIntroduction:!0,onChainConfig:{}}}onSubmit(){this.onClose()}onNone(){h.Z.changeSetting({setting:"filteredServiceProviders",value:[]}),this.onClose()}next(){this.setState({showIntroduction:!1})}onClose(){this.props.hasSeenExternalServices||h.Z.changeViewSetting({hasSeenExternalServices:!0}),(0,m.xA)(),this.props.hideModal()}_getRowHeaders(){return[{key:"name",title:r().translate("external_service_provider.selector.name"),render:e=>this.state.onChainConfig[e.key]?s.createElement(c.Tooltip,{title:"This gateway has been deactivated or is not functioning correctly. "+(this.state.onChainConfig[e.key].comment||"This can be due to several reasons.")},s.createElement("span",{style:{whiteSpace:"nowrap"}},e.name,s.createElement(c.Icon,{style:{marginLeft:"0.5rem"},type:"warning"}))):e.name},{key:"type",title:r().translate("external_service_provider.selector.type"),align:"left",render:e=>"bridge"==e.type?r().translate("external_service_provider.bridge.short"):s.createElement("div",null,s.createElement("span",null,r().translate("external_service_provider.gateway.short")),s.createElement("br",null),s.createElement("span",null,r().translate("external_service_provider.gateway.prefix"),": "+e.prefix))},{key:"landing",title:r().translate("external_service_provider.selector.landing"),align:"left",render:e=>e.landing?e.landing.startsWith("http")?s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e.landing},"External Link"):s.createElement("span",null,e.landing):"-"},{key:"wallet",title:r().translate("external_service_provider.selector.wallet"),align:"left",render:e=>e.wallet?e.wallet.startsWith("http")?s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e.wallet},"External Link"):s.createElement("span",null,e.wallet):"-"}]}_getReferrerLink(){return(0,p.dM)().referrer?"?r="+(0,p.dM)().referrer:""}async _checkOnChainConfig(){const e=this._getRows();let t={};for(let a=0;athis.state.onChainConfig[e.key]?void 0:e.key))}_getRows(){const e=Object.values(u.bg).map((e=>({key:e.id,type:"gateway",name:e.name,prefix:e.id,landing:e.landing?e.landing:void 0,wallet:e.wallet&&e.wallet.startsWith("http")?e.wallet+this._getReferrerLink():e.wallet,isEnabled:e.isEnabled}))),t=Object.values(u.$S).map((e=>({key:e.id,type:"bridge",name:e.name,landing:e.landing?e.landing:void 0,wallet:e.wallet&&e.wallet.startsWith("http")?e.wallet+this._getReferrerLink():e.wallet,isEnabled:e.isEnabled})));return e.concat(t).filter((e=>(0,p.rC)(e.key))).sort(((e,t)=>e.name.localeCompare(t.name)))}componentDidMount(){this._checkOnChainConfig()}render(){const e=this.state.showIntroduction?s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(c.Button,{key:"cancel",onClick:this.onClose.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.not_now"})),s.createElement(c.Button,{key:"submit",type:"primary",onClick:this.next.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.choose_services"}))):s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(c.Tooltip,{title:r().translate("external_service_provider.welcome.explanation_later")},s.createElement(c.Button,{key:"cancel",onClick:this.onClose.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.cancel"}))),s.createElement(c.Button,{key:"none",onClick:this.onNone.bind(this),type:"primary"},s.createElement(i(),{component:"span",content:"external_service_provider.selector.use_none"})),s.createElement(c.Button,{key:"submit",type:"primary",onClick:this.onSubmit.bind(this)},s.createElement(i(),{component:"span",content:"external_service_provider.selector.use_selected"}))),t={onChange:(e,t)=>{e.length==this._getRows().length?h.Z.changeSetting({setting:"filteredServiceProviders",value:["all"]}):h.Z.changeSetting({setting:"filteredServiceProviders",value:e})},getCheckboxProps:e=>({disabled:!!this.state.onChainConfig[e.key]&&!this.state.onChainConfig[e.key].enabled,key:e.key}),selectedRowKeys:1==this.props.filteredServiceProviders.length&&"all"==this.props.filteredServiceProviders[0]?this._getEnabledRowKeys():this.props.filteredServiceProviders};return s.createElement(c.Modal,{visible:this.props.visible,overlay:!0,title:s.createElement(i(),{content:"external_service_provider.selector.title"}),closable:!1,footer:[e],width:640},this.state.showIntroduction?s.createElement(y,{showSalutation:!this.props.hasSeenExternalServices}):s.createElement(s.Fragment,null,s.createElement(c.Collapse,null,s.createElement(c.Collapse.Panel,{header:"What is a Gateway?",showArrow:!1},s.createElement(i(),{component:"p",content:"external_service_provider.gateway.description"}))),s.createElement(c.Collapse,{style:{marginTop:"1rem"}},s.createElement(c.Collapse.Panel,{header:"What is a Bridge?",showArrow:!1},s.createElement(i(),{component:"p",content:"external_service_provider.bridge.description"}))),s.createElement("div",{style:{marginTop:"1rem"}},s.createElement(i(),{content:"external_service_provider.selector.table_description"})),s.createElement(c.Table,{style:{marginTop:"1rem"},columns:this._getRowHeaders(),pagination:{hideOnSinglePage:!0,pageSize:20},dataSource:this._getRows(),footer:null,rowSelection:t})))}}const k=w=(0,l.$)(w,{listenTo:()=>[d.Z],getProps:()=>({filteredServiceProviders:d.Z.getState().settings.get("filteredServiceProviders",[]),hasSeenExternalServices:d.Z.getState().viewSettings.get("hasSeenExternalServices",!1)})})},91684:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(67294),n=a(112),r=a.n(n),o=a(45697),i=a.n(o);let l=["photo-camera","adjust","alarm","assets","autolock","barter","borrow","checkmark-circle","chevron-down","clippy","clock","cog","cogs","coming_soon","connected","connect","cross-circle","dashboard","delete","deposit","disconnected","direct_debit","dollar-green","dollar","download","excel","eye","eye-striked","fi-star","folder","grouping","hamburger-x","hamburger","htlc","hourglass","key","list","locked","minus-circle","news","plus-circle","power","question-circle","server","settle","share","showcases","shuffle","text","thumb-tack","thumb-untack","thumbs-up","times","trade","transfer","unlocked","user","voting","warning","withdraw","filter","info-circle-o","zoom","people","fire","question-in-circle","attention","checkmark","paperclip","wallet","prediction","prediction-large","merchant","insight","create_account","swap","instant-trade","poolmart","arrow-down-1","arrow-up-down","pools","qr-scan","deployment-unit"],c={};for(let e of l)c[e]=a(34031)(`./${e}.svg`);const d=c;class u extends s.Component{shouldComponentUpdate(e){return e.className!==this.props.className||e.name!==this.props.name||e.title!==this.props.title||e.size!==this.props.size}render(){let e="icon ";if("warning"!==this.props.name&&(e+=this.props.name),this.props.size&&(e+=" icon-"+this.props.size),this.props.className&&(e+=" "+this.props.className),null!=this.props.title){let t=this.props.title;return"string"==typeof t&&t.indexOf(".")>0&&(t=r().translate(t)),s.createElement("span",{title:t,className:e,style:this.props.style||{},dangerouslySetInnerHTML:{__html:d[this.props.name]},onClick:this.props.onClick})}return s.createElement("span",{className:e,style:this.props.style||{},dangerouslySetInnerHTML:{__html:d[this.props.name]},onClick:this.props.onClick})}}u.propTypes={name:i().string.isRequired,title:i().string,size:i().oneOf(["1x","1_5x","2x","3x","4x","5x","10x"]),inverse:i().bool,className:i().string},u.defaultProps={title:null};const p=u},52531:(e,t,a)=>{"use strict";a.d(t,{Z:()=>i});var s=a(67294),n=a(45697),r=a.n(n);class o extends s.Component{static propTypes={type:r().string,loadingText:r().string};static defaultProps={type:null,loadingText:null};constructor(e){super(e),this.state={progress:0}}render(){switch(this.props.type){case"three-bounce":return s.createElement("div",{className:"three-bounce"},s.createElement("div",{className:"bounce1"}),s.createElement("div",{className:"bounce2"}),s.createElement("div",{className:"bounce3"}));case"circle":return s.createElement("div",{className:"circle-wrapper"},s.createElement("div",{className:"circle1 circle"}),s.createElement("div",{className:"circle2 circle"}),s.createElement("div",{className:"circle3 circle"}),s.createElement("div",{className:"circle4 circle"}),s.createElement("div",{className:"circle5 circle"}),s.createElement("div",{className:"circle6 circle"}),s.createElement("div",{className:"circle7 circle"}),s.createElement("div",{className:"circle8 circle"}),s.createElement("div",{className:"circle9 circle"}),s.createElement("div",{className:"circle10 circle"}),s.createElement("div",{className:"circle11 circle"}),s.createElement("div",{className:"circle12 circle"}));case"circle-small":return s.createElement("div",{className:"circle-wrapper",style:{height:"15px",minHeight:"15px"}},s.createElement("div",{className:"circle1 circle"}),s.createElement("div",{className:"circle2 circle"}),s.createElement("div",{className:"circle3 circle"}),s.createElement("div",{className:"circle4 circle"}),s.createElement("div",{className:"circle5 circle"}),s.createElement("div",{className:"circle6 circle"}),s.createElement("div",{className:"circle7 circle"}),s.createElement("div",{className:"circle8 circle"}),s.createElement("div",{className:"circle9 circle"}),s.createElement("div",{className:"circle10 circle"}),s.createElement("div",{className:"circle11 circle"}),s.createElement("div",{className:"circle12 circle"}));default:var e="loading-overlay";return this.progress>0&&(e+=" with-progress"),s.createElement("div",{className:e},s.createElement("div",{className:"loading-panel"},this.props.loadingText&&s.createElement("div",{className:"text-center",style:{paddingTop:"10px",color:"black"}},this.props.loadingText),s.createElement("div",{className:"spinner"},s.createElement("div",{className:"bounce1"}),s.createElement("div",{className:"bounce2"}),s.createElement("div",{className:"bounce3"})),s.createElement("div",{className:"progress-indicator"},s.createElement("span",null,this.state.progress))),!!this.props.children&&s.createElement("div",{className:"loading-panel--child"},this.props.children))}}}const i=o},4207:(e,t,a)=>{"use strict";a.d(t,{Z:()=>X});var s=a(67294),n=a(89449),r=a(112),o=a.n(r),i=a(32793),l=a(73727),c=a(58074),d=a.n(c),u=a(58466),p=a(54453),h=a(55294),m=a(56934),g=a(39014),b=a(51477),f=a(94184),y=a.n(f),_=a(82050),w=a(60830),k=a(81082),v=a(41075),A=a(47449),E=a(69730),x=a(52531),S=a(28969),C=a(30806),T=a(81038),B=a(87913),z=a(13973),P=a(5977),N=a(66261),M=a(60567),Z=a(76660);class I extends s.Component{constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrar_account:null,loading:!1,hide_refcode:!0,show_identicon:!1,step:1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.accountNameInput=null,this.scrollToInput=this.scrollToInput.bind(this)}UNSAFE_componentWillMount(){h.Z.changeSetting({setting:"passwordLogin",value:!1})}componentDidMount(){B.Z.rebuild(),this.scrollToInput()}shouldComponentUpdate(e,t){return!z.Z.are_equal_shallow(t,this.state)}isValid(){let e=0===i.Z.getMyAccounts().length,t=this.state.validAccountName;return v.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrar_account),t}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.show_identicon||(t.show_identicon=!0),this.setState(t)}onPasswordChange(e){this.setState({validPassword:e.valid})}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(E.Z.unlisten(this.onFinishConfirm),E.Z.reset(),(0,C.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{console.log("onFinishConfirm"),this.props.history.push("/wallet/backup/create?newAccount=true")})))}scrollToInput(){N.OK.scrollTo("scrollToInput",{duration:1500,delay:100,smooth:!0,containerId:"accountForm"})}createAccount(e){let t=this.refs.refcode?this.refs.refcode.value():null,a=i.Z.getState().referralAccount;m.Z.unlock().then((()=>{this.setState({loading:!0}),_.Z.createAccount(e,this.state.registrar_account,a||this.state.registrar_account,0,t).then((()=>{this.state.registrar_account?((0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1})})),E.Z.listen(this.onFinishConfirm)):(0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1})}))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&(a=t.remote_ip[0]),Z.Notification.error({message:o().translate("notifications.account_create_failure",{account_name:e,error_msg:a})}),this.setState({loading:!1})}))})).catch((()=>{}))}createWallet(e){return S.Z.setWallet("default",e).then((()=>{console.log("Congratulations, your wallet was successfully created.")})).catch((e=>{console.log("CreateWallet failed:",e),Z.Notification.error({message:o().translate("notifications.account_wallet_create_failure",{error_msg:e})})}))}onSubmit(e){if(e.preventDefault(),!this.isValid())return;let t=this.accountNameInput.getValue();if(v.Z.getWallet())this.createAccount(t);else{let e=this.refs.password.value();this.createWallet(e).then((()=>this.createAccount(t)))}}onRegistrarAccountChange(e){this.setState({registrar_account:e})}_renderAccountCreateForm(){let{registrar_account:e}=this.state,t=i.Z.getMyAccounts(),a=0===t.length,n=v.Z.getWallet(),r=this.isValid(),c=!1,u=e?C.ChainStore.getAccount(e):null;u&&u.get("lifetime_referrer")==u.get("id")&&(c=!0);let p=y()("submit-button button no-margin",{disabled:!r||e&&!c});return s.createElement("form",{style:{maxWidth:"40rem"},onSubmit:this.onSubmit.bind(this),noValidate:!0,className:"create-account-wrapper"},s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},a?s.createElement(d(),{content:"wallet.create_w_a"}):s.createElement(d(),{content:"wallet.create_a"})),s.createElement(w.Z,{ref:e=>{e&&(this.accountNameInput=e.refs.nameInput)},cheapNameOnly:!!a,onChange:this.onAccountNameChange.bind(this),accountShouldNotExist:!0,placeholder:o().translate("wallet.account_public"),noLabel:!0}),n?null:s.createElement(k.Z,{ref:"password",confirmation:!0,onChange:this.onPasswordChange.bind(this),noLabel:!0,checkStrength:!0}),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow"},s.createElement("label",null,s.createElement(d(),{content:"account.pay_from"})),s.createElement(A.Z,{account_names:t,onChange:this.onRegistrarAccountChange.bind(this)}),e&&!c?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(d(),{content:"wallet.must_be_ltm"})):null),s.createElement("div",{className:"divider"}),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement("button",{style:{width:"100%"},className:p},s.createElement(d(),{content:"account.create_account"})),s.createElement("div",{style:{paddingTop:40}},s.createElement("label",null,s.createElement(l.rU,{to:"/existing-account"},s.createElement(d(),{content:"wallet.restore"}))),s.createElement("label",null,s.createElement(l.rU,{to:"/create-wallet-brainkey"},s.createElement(d(),{content:"settings.backup_brainkey"})))),!n||a?null:s.createElement("div",{style:{paddingTop:20}},s.createElement("label",null,s.createElement("a",{onClick:()=>{this.setState({step:3})}},s.createElement(d(),{content:"wallet.go_get_started"})))))}_renderAccountCreateText(){let e=v.Z.getWallet(),t=0===i.Z.getMyAccounts().length;return s.createElement("div",{className:"confirm-checks"},s.createElement("h4",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",paddingBottom:15,marginTop:0}},s.createElement(d(),{content:"wallet.wallet_browser"})),s.createElement("p",null,e?null:s.createElement(d(),{content:"wallet.has_wallet",wallet_name:(0,M.w)()})),s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.create_account_text"}),t?s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.first_account_paid"}):s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.not_first_account"}))}_renderBackup(){return s.createElement("div",{className:"backup-submit"},s.createElement("p",null,s.createElement(d(),{unsafe:!0,content:"wallet.wallet_crucial"})),s.createElement("div",{className:"divider"}),s.createElement(T.Yy,{noText:!0,downloadCb:this._onBackupDownload}))}_onBackupDownload=()=>{this.setState({step:3})};_renderBackupText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"footer.backup"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.wallet_move",unsafe:!0})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{unsafe:!0,content:"wallet.wallet_lose_warning"})))}_renderGetStarted(){return s.createElement("div",null,s.createElement("table",{className:"table"},s.createElement("tbody",null,s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_dashboard"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/"},s.createElement(d(),{content:"header.dashboard"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_account"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:`/account/${this.state.accountName}/overview`},s.createElement(d(),{content:"wallet.link_account"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_deposit"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/deposit-withdraw"},s.createElement(d(),{content:"wallet.link_deposit"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_transfer"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/transfer"},s.createElement(d(),{content:"wallet.link_transfer"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_settings"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/settings"},s.createElement(d(),{content:"header.settings"})))))))}_renderGetStartedText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.congrat"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_explore"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_header"})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{content:"wallet.tips_login"})))}render(){let{step:e}=this.state;return s.createElement("div",{className:"sub-content",id:"scrollToInput",name:"scrollToInput"},s.createElement("div",{style:{maxWidth:"95vw"}},1!==e?s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.step_"+e})):null,1===e?this._renderAccountCreateForm():2===e?this._renderBackup():this._renderGetStarted()),s.createElement("div",{style:{maxWidth:"95vw",paddingTop:"2rem"}},1===e?this._renderAccountCreateText():2===e?this._renderBackupText():this._renderGetStartedText()),s.createElement(l.rU,{to:"/"},s.createElement("button",{className:"button primary hollow"},s.createElement(d(),{content:"wallet.back"}))))}}I=(0,P.EN)(I);const O=(0,n.$)(I,{listenTo:()=>[i.Z],getProps:()=>({})});var q=a(45697),L=a.n(q),D=a(59851);function R(){return R=Object.assign||function(e){for(var t=1;te===this.state.value));this.props.accountShouldNotExist&&t&&(e=o().translate("account.name_input.name_is_taken")),this.props.accountShouldExist&&!t&&(e=o().translate("account.name_input.not_found"))}return e}validateAccountName(e){this.state.error=""===e?"Please enter valid account name":C.ChainValidation.is_account_name_error(e),this.state.warning=null,this.props.cheapNameOnly?this.state.error||C.ChainValidation.is_cheap_name(e)||(this.state.error=o().translate("account.name_input.premium_name_faucet")):this.state.error||C.ChainValidation.is_cheap_name(e)||(this.state.warning=o().translate("account.name_input.premium_name_warning")),this.setState({value:e,error:this.state.error,warning:this.state.warning}),this.props.onChange&&this.props.onChange({value:e,valid:!this.getError()}),(this.props.accountShouldExist||this.props.accountShouldNotExist)&&_.Z.accountSearch(e)}handleChange(e){e.preventDefault(),e.stopPropagation();var t=e.target.value.toLowerCase();t=(t=t.match(/[a-z0-9\.-]+/))?t[0]:"",this.setState({account_name:t}),this.validateAccountName(t)}onKeyDown(e){this.props.onEnter&&13===event.keyCode&&this.props.onEnter(e)}render(){let e=this.getError()||"",t=y()("form-group","account-name",{"has-error":!1}),a=this.state.warning;return s.createElement("div",{className:t},s.createElement("section",null,s.createElement("label",{className:"left-label"},this.props.placeholder),s.createElement("input",{name:"username",id:"username",type:"text",ref:"input",autoComplete:"username",placeholder:null,onChange:this.handleChange,onKeyDown:this.onKeyDown,value:this.state.account_name||this.props.initial_value})),s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},e),s.createElement("div",{style:{textAlign:"left"},className:"facolor-warning"},e?null:a))}}class F extends s.Component{render(){return s.createElement(D.Z,{stores:[i.Z],inject:{searchAccounts:()=>i.Z.getState().searchAccounts}},s.createElement(j,R({ref:"nameInput"},this.props)))}}var W=a(91684),U=a(59485);class H extends s.Component{constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrar_account:null,loading:!1,hide_refcode:!0,show_identicon:!1,step:1,showPass:!1,generatedPassword:("P"+C.key.get_random_key().toWif()).substr(0,45),confirm_password:"",understand_1:!1,understand_2:!1,understand_3:!1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.accountNameInput=null,this.scrollToInput=this.scrollToInput.bind(this)}UNSAFE_componentWillMount(){v.Z.getWallet()||h.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){B.Z.rebuild(),this.scrollToInput()}shouldComponentUpdate(e,t){return!z.Z.are_equal_shallow(t,this.state)}scrollToInput(){N.OK.scrollTo("scrollToInput",{duration:1500,delay:100,smooth:!0,containerId:"accountForm"})}isValid(){let e=0===i.Z.getMyAccounts().length,t=this.state.validAccountName;return v.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrar_account),t&&this.state.understand_1&&this.state.understand_2}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.show_identicon||(t.show_identicon=!0),this.setState(t)}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(E.Z.unlisten(this.onFinishConfirm),E.Z.reset(),(0,C.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{this.props.history.push("/wallet/backup/create?newAccount=true")})))}_unlockAccount(e,t){h.Z.changeSetting({setting:"passwordLogin",value:!0}),v.Z.validatePassword(t,!0,e),m.Z.checkLock.defer()}createAccount(e,t){let a=this.refs.refcode?this.refs.refcode.value():null,s=i.Z.getState().referralAccount;this.setState({loading:!0}),_.Z.createAccountWithPassword(e,t,this.state.registrar_account,s||this.state.registrar_account,0,a).then((()=>{_.Z.setPasswordAccount(e),this.state.registrar_account?((0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2,loading:!1}),this._unlockAccount(e,t)})),E.Z.listen(this.onFinishConfirm)):(0,C.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.setState({step:2}),this._unlockAccount(e,t)}))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&(a=t.remote_ip[0]),Z.Notification.error({message:o().translate("notifications.account_create_failure",{account_name:e,error_msg:a})}),this.setState({loading:!1})}))}onSubmit(e){if(e.preventDefault(),!this.isValid())return;let t=this.accountNameInput.getValue(),a=this.state.generatedPassword;this.createAccount(t,a)}onRegistrarAccountChange(e){this.setState({registrar_account:e})}_onInput(e,t){this.setState({[e]:"confirm_password"===e?t.target.value:!this.state[e],validPassword:"confirm_password"===e?t.target.value===this.state.generatedPassword:this.state.validPassword})}_renderAccountCreateForm(){let{registrar_account:e}=this.state,t=i.Z.getMyAccounts(),a=0===t.length,n=this.isValid(),r=!1,l=e?C.ChainStore.getAccount(e):null;l&&l.get("lifetime_referrer")==l.get("id")&&(r=!0);let c=y()("submit-button button no-margin",{disabled:!n||e&&!r});return s.createElement("div",{style:{textAlign:"left"}},s.createElement("form",{style:{maxWidth:"60rem"},onSubmit:this.onSubmit.bind(this),noValidate:!0},s.createElement(F,{ref:e=>{e&&(this.accountNameInput=e.refs.nameInput)},cheapNameOnly:!!a,onChange:this.onAccountNameChange.bind(this),accountShouldNotExist:!0,placeholder:o().translate("wallet.account_public"),noLabel:!0}),s.createElement("section",{className:"form-group"},s.createElement("label",{className:"left-label"},s.createElement(d(),{content:"wallet.generated"}),"  ",s.createElement(Z.Tooltip,{title:s.createElement("div",{dangerouslySetInnerHTML:{__html:o().translate("tooltip.generate")}})},s.createElement("span",{className:"tooltip"},s.createElement(W.Z,{name:"question-circle",title:"icons.question_circle"})))),s.createElement("div",{style:{paddingBottom:"0.5rem"}},s.createElement("span",{className:"inline-label"},s.createElement("textarea",{style:{padding:"0px",marginBottom:"0px"},rows:"3",readOnly:!0,disabled:!0,value:this.state.generatedPassword}),s.createElement(U.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top"})))),s.createElement("section",null,s.createElement("label",{className:"left-label"},s.createElement(d(),{content:"wallet.confirm_password"})),s.createElement("input",{type:"password",name:"password",id:"password",value:this.state.confirm_password,onChange:this._onInput.bind(this,"confirm_password")}),this.state.confirm_password&&this.state.confirm_password!==this.state.generatedPassword?s.createElement("div",{className:"has-error"},s.createElement(d(),{content:"wallet.confirm_error"})):null),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",onClick:this._onInput.bind(this,"understand_3")},s.createElement("label",{htmlFor:"checkbox-1",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-1",onChange:()=>{},checked:this.state.understand_3,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_3"})))),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",onClick:this._onInput.bind(this,"understand_1")},s.createElement("label",{htmlFor:"checkbox-2",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-2",onChange:()=>{},checked:this.state.understand_1,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_1"})))),s.createElement("br",null),s.createElement("div",{className:"confirm-checks",style:{paddingBottom:"1.5rem"},onClick:this._onInput.bind(this,"understand_2")},s.createElement("label",{htmlFor:"checkbox-3",style:{position:"relative"}},s.createElement("input",{type:"checkbox",id:"checkbox-3",onChange:()=>{},checked:this.state.understand_2,style:{position:"absolute",top:"-5px",left:"0"}}),s.createElement("div",{style:{paddingLeft:"30px"}},s.createElement(d(),{content:"wallet.understand_2"})))),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow",style:{paddingTop:30}},s.createElement("label",null,s.createElement(d(),{content:"account.pay_from"})),s.createElement(A.Z,{account_names:t,onChange:this.onRegistrarAccountChange.bind(this)}),e&&!r?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(d(),{content:"wallet.must_be_ltm"})):null),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement("button",{style:{width:"100%"},className:c},s.createElement(d(),{content:"account.create_account"}))))}_renderAccountCreateText(){let e=0===i.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement("h4",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",paddingBottom:15}},s.createElement(d(),{content:"wallet.wallet_password"})),s.createElement(d(),{style:{textAlign:"left"},unsafe:!0,component:"p",content:"wallet.create_account_password_text"}),s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.create_account_text"}),e?null:s.createElement(d(),{style:{textAlign:"left"},component:"p",content:"wallet.not_first_account"}))}_renderBackup(){return s.createElement("div",{className:"backup-submit"},s.createElement("p",null,s.createElement(d(),{unsafe:!0,content:"wallet.password_crucial"})),s.createElement("div",null,this.state.showPass?s.createElement("div",null,s.createElement("h5",null,s.createElement(d(),{content:"settings.password"}),":"),s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal",textAlign:"center"}},this.state.generatedPassword)):s.createElement("div",{onClick:()=>{this.setState({showPass:!0})},className:"button"},s.createElement(d(),{content:"wallet.password_show"}))),s.createElement("div",{className:"divider"}),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{unsafe:!0,content:"wallet.password_lose_warning"})),s.createElement("div",{style:{width:"100%"},onClick:()=>{this.props.history.push("/")},className:"button"},s.createElement(d(),{content:"wallet.ok_done"})))}_renderGetStarted(){return s.createElement("div",null,s.createElement("table",{className:"table"},s.createElement("tbody",null,s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_dashboard"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/"},s.createElement(d(),{content:"header.dashboard"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_account"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:`/account/${this.state.accountName}/overview`},s.createElement(d(),{content:"wallet.link_account"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_deposit"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/deposit-withdraw"},s.createElement(d(),{content:"wallet.link_deposit"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_transfer"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/transfer"},s.createElement(d(),{content:"wallet.link_transfer"})))),s.createElement("tr",null,s.createElement("td",null,s.createElement(d(),{content:"wallet.tips_settings"}),":"),s.createElement("td",null,s.createElement(l.rU,{to:"/settings"},s.createElement(d(),{content:"header.settings"})))))))}_renderGetStartedText(){return s.createElement("div",null,s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.congrat"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_explore_pass"})),s.createElement("p",null,s.createElement(d(),{content:"wallet.tips_header"})),s.createElement("p",{className:"txtlabel warning"},s.createElement(d(),{content:"wallet.tips_login"})))}render(){let{step:e}=this.state;return s.createElement("div",{className:"sub-content",id:"scrollToInput",name:"scrollToInput"},s.createElement("div",null,2===e?s.createElement("p",{style:{fontWeight:"normal",fontFamily:"Roboto-Medium, arial, sans-serif",fontStyle:"normal"}},s.createElement(d(),{content:"wallet.step_"+e})):null,3===e?this._renderGetStartedText():null,1===e?s.createElement("div",null,this._renderAccountCreateForm()):2===e?this._renderBackup():this._renderGetStarted()))}}H=(0,P.EN)(H);const K=(0,n.$)(H,{listenTo:()=>[i.Z],getProps:()=>({})});var V=(0,M.R7)();class G extends s.Component{constructor(e){super(e),this.state={step:1,locales:g.Z.getState().defaults.locale,currentLocale:g.Z.getState().settings.get("locale")},this.unmounted=!1,this.handleLanguageSelect=this.handleLanguageSelect.bind(this)}UNSAFE_componentWillMount(){(0,p.Z)((e=>{this.unmounted||this.setState({incognito:e})}))}componentWillUnmount(){this.unmounted=!0}onSelect(e){this.props.history.push("/create-account/"+e)}handleLanguageSelect(e){b.Z.switchLocale(e),this.setState({currentLocale:e})}languagesFilter(e,t){return t.props.language.toLowerCase().indexOf(e.toLowerCase())>=0}render(){const e=a(112),t=s.createElement(Z.Select,{showSearch:!0,filterOption:this.languagesFilter,value:this.state.currentLocale,onChange:this.handleLanguageSelect,style:{width:"123px",marginBottom:"16px"}},this.state.locales.map((e=>s.createElement(Z.Select.Option,{key:e,language:o().translate("languages."+e)},o().translate("languages."+e)))));return s.createElement("div",{className:"grid-block align-center",id:"accountForm"},s.createElement("div",{className:"grid-block shrink vertical"},s.createElement("div",{className:"grid-content shrink text-center account-creation"},s.createElement("div",null,s.createElement("img",{src:V})),s.createElement("div",null,s.createElement(d(),{content:"header.create_account",component:"h4"})),s.createElement("div",null,s.createElement(d(),{content:"account.intro_text_title",component:"h4",wallet_name:(0,M.w)()}),s.createElement(d(),{unsafe:!0,content:"account.intro_text_1",component:"p"}),s.createElement("div",{className:"shrink text-center"},s.createElement("div",{className:"grp-menu-item overflow-visible account-drop-down"},s.createElement("div",{className:"grp-menu-item overflow-visible login-selector--language-select",style:{margin:"0 auto"},"data-intro":e.translate("walkthrough.language_flag")},s.createElement(Z.Row,{className:"login-selector--language-select--wrapper"},s.createElement(Z.Col,{span:4},s.createElement(Z.Icon,{type:"global",className:"login-selector--language-select--icon"})),s.createElement(Z.Col,{span:20},t)))))),s.createElement("div",{className:"grid-block account-login-options"},s.createElement(l.rU,{id:"account_login_button",to:(0,M.Sf)().includes("password")?"/create-account/password":"/create-account/wallet",className:"button primary","data-intro":e.translate("walkthrough.create_cloud_wallet")},s.createElement(d(),{content:"header.create_account"})),s.createElement("span",{className:"button hollow primary",onClick:()=>{h.Z.changeSetting.defer({setting:"passwordLogin",value:!0}),m.Z.unlock().catch((()=>{}))}},s.createElement(d(),{content:"header.unlock_short"}))),(0,M.Sf)().includes("wallet")&&s.createElement("div",{className:"additional-account-options"},s.createElement("h5",{style:{textAlign:"center"}},s.createElement(u.Z,{string:"account.optional.formatter",keys:[{type:"link",value:"/wallet/backup/restore",translation:"account.optional.restore_link",dataIntro:e.translate("walkthrough.restore_account"),arg:"restore_link"},{type:"link",value:"/create-account/wallet",translation:"account.optional.restore_form",dataIntro:e.translate("walkthrough.create_local_wallet"),arg:"restore_form"}]}))),(0,M.Sf)().includes("wallet")&&s.createElement(P.AW,{path:"/create-account/wallet",exact:!0,component:O}),(0,M.Sf)().includes("password")&&s.createElement(P.AW,{path:"/create-account/password",exact:!0,component:K}))))}}const X=(0,n.$)(G,{listenTo:()=>[i.Z],getProps:()=>({currentAccount:i.Z.getState().currentAccount||i.Z.getState().passwordAccount})})},70637:(e,t,a)=>{"use strict";a.d(t,{Z:()=>B});var s=a(67294),n=a(58074),r=a.n(n),o=a(13973),i=a(84224),l=a(30806),c=a(49554),d=a(59485),u=a(91684),p=a(52531),h=a(34961),m=a(93135),g=a(19490),b=a(23316),f=a(41737),y=a(45697),_=a.n(y),w=a(79361),k=a.n(w);class v extends s.Component{static assetTemplates={};static propTypes={asset:_().string.isRequired,address:_().string.isRequired,amount:_().number,message:_().string,size:_().number};static defaultProps={size:140};constructor(e){super(e),this.assetTemplates={BTS:{template:"{address}",params:[]},BTC:{template:"bitcoin:{address}",params:[{bind:"amount"},{bind:"message"}]},LTC:{template:"litecoin:{address}",params:[{bind:"amount"},{bind:"message"}]},ETH:{template:"ethereum:{address}",params:[{name:"value",bind:"amount"},{bind:"message"}]},BCH:{template:"bitcoincash:{address}",params:[{bind:"amount"},{bind:"message"}]}}}render(){let{size:e,asset:t}=this.props,a=this.props,n=this.assetTemplates[t];var r=!1;if(void 0!==n){let t=n.template.replace(/{([a-zA-Z0-9]+)}/g,(function(e,t){return t in a?a[t]:(r=!0,!0)}));if(r)return"";if(n.params.length>0){let e=[];n.params.forEach((function(t){var s="";void 0!==t.name&&(s=t.name),""==s&&(s=t.bind),void 0!==a[t.bind]&&e.push(s+"="+a[t.bind])})),e.length>0&&(t+="?"+e.join("&"))}return s.createElement("div",{className:"QR"},s.createElement(k(),{size:e,value:t}))}return""}}const A=v;var E=a(112),x=a.n(E),S=a(76660);function C(){return C=Object.assign||function(e){for(var t=1;te&&1==e.length?e[0]:null));a&&this._getDepositAddress(t,a)}_intitalState(){return{depositAddress:"",selectedAsset:"",selectedGateway:null,fetchingAddress:!1,backingAsset:null,gatewayStatus:b.bg,depositConfirmation:null}}_getDepositConfirmation(e){let t=null;e.confirmations&&e.confirmations.type&&("irreversible"===e.confirmations.type?t={type:"irreversible"}:"blocks"===e.confirmations.type&&e.confirmations.value&&(t={type:"blocks",value:e.confirmations.value})),this.setState({depositConfirmation:t})}_setDepositAsset(e){let t=g.PU.call(this);if(this.setState({coinToGatewayMapping:t}),!e)return;let a=e.split(".");if(this.state.gatewayStatus[a[0]]){let e=a[1],t=a[0];this._getDepositAddress(e,t)}else this.setState({selectedAsset:"BTS"})}_getDepositObject(e,t,a,s){let{props:n,state:r}=this,{account:o}=n,{gatewayStatus:i}=r;return{inputCoinType:i[a].useFullAssetName?t.toLowerCase():e.toLowerCase(),outputCoinType:t.toLowerCase(),outputAddress:o,url:s,stateCallback:this.addDepositAddress,selectedGateway:a}}_getDepositAddress(e,t){let{account:a}=this.props,{gatewayStatus:s}=this.state;this.setState({fetchingAddress:!0,depositAddress:null,gatewayStatus:f.GD.call(this,e)});let n,r=this.props.backedCoins.get(t.toUpperCase(),[]).find((t=>{let a=t.backingCoinType||t.backingCoin;return-1!==a.toUpperCase().indexOf("EOS.")&&(a=a.split(".")[1]),a.toUpperCase()===e.toUpperCase()}));if(!r)return console.log(t+" does not support "+e),void this.setState({depositAddress:null,selectedAsset:e,selectedGateway:t,fetchingAddress:!1});if(this._getDepositConfirmation(r),t&&e&&(!s[t].hasOwnProperty("depositCaching")||s[t].depositCaching)&&(n=this.deposit_address_cache.getCachedInputAddress(t.toLowerCase(),a,e.toLowerCase(),t.toLowerCase()+"."+e.toLowerCase())),s[t].simpleAssetGateway&&r.gatewayWallet){let e,o;if(r.memoType&&"btsid"===r.memoType){let n=l.ChainStore.getAccount(a,!1);e=s[t].fixedMemo.prepend_btsid+n.get("id").replace("1.2.","")+s[t].fixedMemo.append}if(r.memoType&&"tagid"===r.memoType){let e=l.ChainStore.getAccount(a,!1);o=s[t].fixedMemo.prepend_btsid+e.get("id").replace("1.2.","")+s[t].fixedMemo.append}else e=s[t].fixedMemo.prepend_default+a+s[t].fixedMemo.append,o=s[t].fixedMemo.prepend_default+a+s[t].fixedMemo.append;n={address:r.gatewayWallet,memo:e,tag:o},this.setState({depositAddress:n,fetchingAddress:!1})}else if(n)this.setState({depositAddress:n,fetchingAddress:!1});else{const e=r.backingCoinType||r.backingCoin,a=r.symbol;(0,i.Eu)(this._getDepositObject(e,a,t,s[t].baseAPI.BASE))}this.setState({selectedAsset:e,selectedGateway:t,backingAsset:r})}addDepositAddress(e){let{selectedGateway:t,selectedAsset:a}=this.state,{account:s}=this.props;this.deposit_address_cache.cacheInputAddress(t.toLowerCase(),s,a.toLowerCase(),t.toLowerCase()+"."+a.toLowerCase(),e.address,e.memo),this.setState({depositAddress:e,fetchingAddress:!1})}render(){let{selectedAsset:e,selectedGateway:t,depositAddress:a,fetchingAddress:n,gatewayStatus:i,backingAsset:l,depositConfirmation:c}=this.state,{account:h}=this.props,b=!0;null==t&&"BTS"==e&&(b=!1,a={address:h});let f=g.Mg.call(this),y=a&&"unknown"!==a&&!a.error,_=0;l&&(l.minAmount&&l.precision?_=o.Z.format_number(l.minAmount/o.Z.get_asset_precision(l.precision),l.precision,!1):l.gateFee&&(_=2*l.gateFee));const w=y?s.createElement(A,{size:140,address:b?a.address:h,asset:e}):s.createElement("div",null,s.createElement(u.Z,{size:"5x",name:"minus-circle",title:"icons.minus_circle.wrong_address"}),s.createElement("p",{className:"error-msg"},s.createElement(r(),{content:"modal.deposit.address_generation_error"})));return s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement("div",{className:"modal__body",style:{paddingTop:"0"}},s.createElement("div",{className:"container-row"},s.createElement("div",{className:"no-margin no-padding"},s.createElement("div",{className:"inline-label input-wrapper"},s.createElement(m.Z,{defaultValue:this.state.selectedAsset,onSelect:this.onAssetSelected.bind(this),selectOnBlur:!0})))),b&&e?g.uI.call(this,{selectedGateway:t,gatewayStatus:i,nAvailableGateways:f,error:a&&a.error,onGatewayChanged:this.onGatewayChanged.bind(this)}):null,n?s.createElement("div",{className:"container-row",style:{textAlign:"center",paddingTop:15}},s.createElement(p.Z,{type:"three-bounce"})):(!b||b&&t&&i[t].options.enabled)&&y&&!a.memo?s.createElement("div",{className:"container-row",style:{textAlign:"center"}},w):null,t&&i[t].options.enabled&&y?s.createElement("div",{className:"container-row"},s.createElement(r(),{className:"grid-block container-row maxDeposit",style:{fontSize:"1rem"},content:"gateway.min_deposit_warning_amount",minDeposit:_||0,coin:e}),s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.address,className:"copyIcon"})),s.createElement("div",{style:{wordBreak:"break-word"}},s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},content:"gateway.purchase_notice",inputAsset:e,outputAsset:t+"."+e}),s.createElement("div",{className:"modal__highlight",style:{fontSize:"0.9rem",wordBreak:"break-all"}},a.address))),a.memo?s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.memo,className:"copyIcon"})),s.createElement("div",null,s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},unsafe:!0,content:"gateway.purchase_notice_memo"}),s.createElement("div",{className:"modal__highlight",style:{wordBreak:"break-all"}},a.memo))):null,a.tag?s.createElement("div",{className:"grid-block container-row"},s.createElement("div",{style:{paddingRight:"1rem"}},s.createElement(d.Z,{text:a.tag,className:"copyIcon"})),s.createElement("div",null,s.createElement(r(),{component:"div",style:{fontSize:"0.8rem",fontWeight:"bold",paddingBottom:"0.3rem"},unsafe:!0,content:"gateway.purchase_notice_tag"}),s.createElement("div",{className:"modal__highlight",style:{wordBreak:"break-all"}},a.tag))):null,c?s.createElement("div",{style:{fontSize:"0.8rem",fontWeight:"bold",fontStyle:"italic",paddingBottom:"0.3rem"}},"irreversible"===c.type?s.createElement(r(),{content:"gateway.gateway_deposit.confirmations.last_irreversible"}):"blocks"===c.type?s.createElement(r(),{content:"gateway.gateway_deposit.confirmations.n_blocks",blocks:c.value}):null):null,s.createElement(r(),{component:"span",style:{fontSize:"0.8rem"},content:"gateway.min_deposit_warning_asset",minDeposit:_||0,coin:e})):null,b?null:s.createElement("div",{className:"container-row deposit-directly"},s.createElement("h2",{className:"modal__highlight",style:{textAlign:"center"}},h),s.createElement(r(),{component:"h6",content:"modal.deposit.bts_transfer_description"}))))}}class B extends s.Component{constructor(){super(),this.state={open:!1}}show(){this.setState({open:!0},(()=>{this.props.hideModal()}))}onClose(){this.props.hideModal(),this.setState({open:!1})}render(){return s.createElement(S.Modal,{destroyOnClose:!0,title:this.props.account?x().translate("modal.deposit.header",{account_name:this.props.account}):x().translate("modal.deposit.header_short"),id:this.props.modalId,className:this.props.modalId,onCancel:this.onClose.bind(this),overlay:!0,footer:[s.createElement(S.Button,{key:"cancel",onClick:this.props.hideModal},x().translate("modal.close"))],visible:this.props.visible,noCloseBtn:!0},s.createElement(T,C({hideModal:this.props.hideModal},this.props,{open:this.props.visible})))}}},91410:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(67294),n=a(45697),r=a.n(n),o=a(112),i=a.n(o),l=a(76660),c=a(86635),d=a.n(c);function u({operation:e,visible:t,hideModal:a,title:n}){return s.createElement(l.Modal,{title:n||i().translate("explorer.block.op"),onCancel:a,overlay:!0,footer:[s.createElement(l.Button,{key:"cancel",onClick:a},i().translate("modal.close"))],visible:t},s.createElement(d(),{data:e,search:!1}))}u.propTypes={visible:r().bool.isRequired,hideModal:r().func.isRequired,operation:r().any,title:r().string},u.defaultProps={title:null,operation:[]}},42329:(e,t,a)=>{"use strict";a.d(t,{Z:()=>P});var s=a(69864),n=a(67294),r=a(88209),o=a.n(r),i=a(58074),l=a.n(i),c=a(30806),d=a(98485),u=a(73556),p=a(32793),h=a(108),m=a(69730),g=a(74366),b=a(81237),f=a(44015),y=a(82050),_=a(13973),w=a(112),k=a.n(w),v=a(89449),A=a(60567),E=a(76660),x=a(48764).Buffer;function S(){return S=Object.assign||function(e){for(var t=1;tn.createElement("div",{style:{display:"flex",justifyContent:"center"}},n.createElement("div",{style:{display:"grid",gridTemplateColumns:e.map((()=>"1fr")).join(" ")}},e)),T=()=>new g.xR({amount:0,asset_id:"1.3.0"});class B extends n.Component{constructor(e){super(e),this.state=this.getInitialState(e),this.nestedRef=null,this.onTrxIncluded=this.onTrxIncluded.bind(this),this._checkBalance=this._checkBalance.bind(this),o().subscribe("transaction_confirm_actions",((e,t)=>{"close"==t&&(this.setState({hidden:!1}),this.hideModal())})),this.showModal=this.showModal.bind(this),this.hideModal=this.hideModal.bind(this),this.onClose=this.onClose.bind(this)}showModal(){this.setState({isModalVisible:!0})}hideModal(){this.setState({isModalVisible:!1})}getInitialState(){return{isModalVisible:!1,from_name:"",to_name:"",from_account:null,to_account:null,orig_account:null,amount:"",asset_id:null,asset:null,memo:"",error:null,knownScammer:null,propose:!1,propose_account:"",feeAmount:T(),maxAmount:!1,hidden:!1}}show(){this.setState({open:!0,hidden:!1},(()=>{this.showModal(),this._initForm()}))}onClose(e=!0){o().unsubscribe("transaction_confirm_actions"),this.setState({open:!1,from_name:"",to_name:"",from_account:null,to_account:null,orig_account:null,amount:"",asset_id:null,asset:null,memo:"",error:null,knownScammer:null,propose:!1,propose_account:"",feeAmount:T(),maxAmount:!1,hidden:!1},(()=>{e&&this.hideModal()}))}onSubmit(e){e.preventDefault(),this.setState({error:null});const{asset:t}=this.state;let{amount:a}=this.state;const s=new g.xR({real:a,asset_id:t.get("id"),precision:t.get("precision")});this.setState({hidden:!0}),y.Z.transfer(this.state.from_account.get("id"),this.state.to_account.get("id"),s.getAmount(),t.get("id"),this.state.memo?new x(this.state.memo,"utf-8"):this.state.memo,this.state.propose?this.state.propose_account:null,this.state.feeAmount.asset_id).then((()=>{this.onClose(),m.Z.unlisten(this.onTrxIncluded),m.Z.listen(this.onTrxIncluded)})).catch((e=>{let t=e.message?e.message.split("\n")[1]||e.message:null;console.log("error: ",e,t),this.setState({error:t})}))}_initForm(){this.props.to_name!=this.props.from_name&&this.setState({to_name:this.props.to_name,to_account:c.ChainStore.getAccount(this.props.to_name)}),this.props.from_name&&this.setState({from_name:this.props.from_name,from_account:c.ChainStore.getAccount(this.props.from_name)});let{currentAccount:e}=this.props;if(this.state.from_name||this.setState({from_name:e}),this.props.asset_id&&this.state.asset_id!==this.props.asset_id){let e=c.ChainStore.getAsset(this.props.asset_id);e&&this.setState({asset_id:this.props.asset_id,asset:e})}}shouldComponentUpdate(e,t){let{asset_types:a}=this._getAvailableAssets(),{asset_types:s}=this._getAvailableAssets(t);if(1===s.length){let e=c.ChainStore.getAsset(s[0]);1!==a.length&&this.onAmountChanged({amount:t.amount,asset:e})}return t.open&&!this.state.open&&this._checkBalance(t),!(!t.open&&!this.state.open)}UNSAFE_componentWillReceiveProps(e){e.currentAccount!==this.state.from_name&&e.currentAccount!==this.props.currentAccount&&this.setState({from_name:e.from_name,from_account:c.ChainStore.getAccount(e.from_name),to_name:e.to_name?e.to_name:"",to_account:e.to_name?c.ChainStore.getAccount(e.to_name):null,feeAmount:T()})}_checkBalance(){const{feeAmount:e,amount:t,from_account:a,asset:s}=this.state;if(!s||!a)return;const n=a.getIn(["balances",s.get("id")]),r=a.getIn(["balances",e.asset_id]);if(!s||!a)return;if(!n)return this.setState({balanceError:!0});let o=c.ChainStore.getObject(n),i=r?c.ChainStore.getObject(r):null;if(i&&0!==i.get("balance")||this.setState({feeAmount:T()}),!o||!e)return;if(!t)return this.setState({balanceError:!1});const l=(0,b.cr)(t,s,e,o);null!==l&&this.setState({balanceError:!l})}_setTotal(e,t){const{feeAmount:a}=this.state;let s=c.ChainStore.getObject(t),n=c.ChainStore.getObject(e);if(s){let e=new g.xR({amount:s.get("balance"),asset_id:n.get("id"),precision:n.get("precision")});a.asset_id===e.asset_id&&e.minus(a),this.setState({maxAmount:!0,amount:e.getAmount({real:!0})},this._checkBalance)}}_getAvailableAssets(e=this.state){const{from_account:t,from_error:a}=e;let s=[];if(!t||!t.get("balances")||a)return{asset_types:s};let n=e.from_account.get("balances").toJS();s=Object.keys(n).sort(_.Z.sortID);for(let e in n){let t=c.ChainStore.getObject(n[e]);t&&0===t.get("balance")&&s.splice(s.indexOf(e),1)}return{asset_types:s}}setNestedRef(e){this.nestedRef=e}toChanged(e){this.setState({to_name:e,error:null})}fromChanged(e){this.setState({from_name:e})}onFromAccountChanged(e){this.setState({from_account:e})}onToAccountChanged(e){this.setState({to_account:e,error:null})}onAmountChanged({amount:e,asset:t}){t&&("object"!=typeof t&&(t=c.ChainStore.getAsset(t)),this.setState({amount:e,asset:t,asset_id:t.get("id"),error:null,maxAmount:!1},this._checkBalance))}onFeeChanged(e){e&&this.setState({feeAmount:e,error:null},this._checkBalance)}onMemoChanged(e){let{asset_types:t}=this._getAvailableAssets(),{from_account:a,from_error:s,maxAmount:n}=this.state;if(a&&a.get("balances")&&!s&&n){let e=a.get("balances").toJS(),s=t[0];this._setTotal(s,e[s])}this.setState({memo:e.target.value},this._checkBalance)}onTrxIncluded(e){(e.included&&e.broadcasted_transaction||e.closed)&&(m.Z.unlisten(this.onTrxIncluded),m.Z.reset())}onPropose=()=>{let{propose:e,orig_account:t,to_account:a,to_name:s,from_account:n,from_name:r}=this.state;e||this.setState({orig_account:n}),e&&(n=t,r=t.get("name")),e=!e,this.setState({propose:e,propose_account:e?n:null,from_account:e?null:n,from_name:e?"":r})};onProposeAccount(e){this.setState({propose_account:e})}render(){let{propose:e,from_account:t,to_account:a,asset:r,asset_id:o,propose_account:i,feeAmount:m,amount:g,to_name:b,from_name:y,memo:_,balanceError:w,hidden:v}=this.state,x=p.Z.isMyAccount(t)||y===this.props.passwordAccount,S=!(!t||x||e),{asset_types:T}=this._getAvailableAssets(),B=null;if(t&&t.get("balances")&&!S){let e=t.get("balances").toJS(),a=this.state.balanceError?"has-error":"";if(1===T.length&&(r=c.ChainStore.getAsset(T[0])),T.length>0){let t=r?r.get("id"):T[0];B=n.createElement("span",null,n.createElement(l(),{component:"span",content:"transfer.available"}),":"," ",n.createElement("span",{className:a,style:{borderBottom:"#A09F9F 1px dotted",cursor:"pointer"},onClick:this._setTotal.bind(this,t,e[t],m.getAmount({real:!0}),m.asset_id)},n.createElement(f.Z,{balance:e[t]})))}else B=n.createElement("span",null,n.createElement("span",{className:a},n.createElement(l(),{content:"transfer.errors.noFunds"})))}let z=e&&!i;const P=parseFloat(String.prototype.replace.call(g,/,/g,"")),N=P&&!(0,s.Z)(P),M=!t||!a||!N||!r||S||z||w||t.get("id")==a.get("id");let Z=this.props.tabIndex;return this.state.open?n.createElement("div",{id:"send_modal_wrapper",className:v||!this.state.open?"hide":""},n.createElement(E.Modal,{visible:this.state.isModalVisible,id:this.props.id,overlay:!0,onCancel:this.hideModal,footer:[n.createElement(E.Button,{key:"send",disabled:M,onClick:M?null:this.onSubmit.bind(this)},e?k().translate("propose"):k().translate("transfer.send")),n.createElement(E.Button,{key:"Cancel",tabIndex:Z++,onClick:this.onClose},n.createElement(l(),{component:"span",content:"transfer.cancel"}))]},n.createElement("div",{className:"grid-block vertical no-overflow"},n.createElement("div",{className:"content-block"},n.createElement(C,null,n.createElement(E.Button,{type:e?"ghost":"primary",onClick:this.onPropose},n.createElement(l(),{content:"transfer.send"})),n.createElement(E.Button,{type:e?"primary":"ghost",onClick:this.onPropose},n.createElement(l(),{content:"propose"})))),n.createElement("div",{className:"content-block",style:{textAlign:"center"}},n.createElement(l(),{content:e?"transfer.header_subheader_propose":"transfer.header_subheader",wallet_name:(0,A.w)()})),this.state.open?n.createElement(E.Form,{className:"full-width",layout:"vertical"},!!e&&n.createElement(n.Fragment,null,n.createElement(h.Z,{label:"transfer.by",accountName:this.props.currentAccount,account:this.props.currentAccount,typeahead:!0,tabIndex:Z++,locked:!0}),n.createElement("div",{className:"modal-separator"})),n.createElement(h.Z,{label:"transfer.from",accountName:y,account:t,onChange:this.fromChanged.bind(this),onAccountChanged:this.onFromAccountChanged.bind(this),typeahead:!0,tabIndex:Z++,locked:!e||void 0}),n.createElement(h.Z,{label:"transfer.to",accountName:b,account:a,onChange:this.toChanged.bind(this),onAccountChanged:this.onToAccountChanged.bind(this),typeahead:!0,includeMyActiveAccounts:!1,tabIndex:Z++}),n.createElement(d.Z,{label:"transfer.amount",amount:g,onChange:this.onAmountChanged.bind(this),asset:T.length>0&&r?r.get("id"):o||T[0],assets:T,display_balance:B,tabIndex:Z++,allowNaN:!0}),_&&_.length?n.createElement("label",{className:"right-label"},_.length):null,n.createElement(E.Form.Item,{label:k().translate("transfer.memo"),validateStatus:_&&e?"warning":"",help:_&&e?k().translate("transfer.warn_name_unable_read_memo"):""},n.createElement(E.Tooltip,{placement:"top",title:k().translate("tooltip.memo_tip")},n.createElement(E.Input.TextArea,{style:{marginBottom:0},rows:3,value:_,tabIndex:Z++,onChange:this.onMemoChanged.bind(this)}))),n.createElement(u.Z,{account:t,transaction:{type:"transfer",options:["price_per_kbyte"],data:{type:"memo",content:_}},onChange:this.onFeeChanged.bind(this),tabIndex:Z++})):null))):null}}class z extends n.Component{render(){return n.createElement(B,S({},this.props,{ref:this.props.refCallback}))}}const P=z=(0,v.$)(z,{listenTo:()=>[p.Z],getProps:e=>({currentAccount:p.Z.getState().currentAccount,passwordAccount:p.Z.getState().passwordAccount,tabIndex:e.tabIndex||0})})},6394:(e,t,a)=>{"use strict";a.d(t,{Z:()=>y});var s=a(67294),n=a(45697),r=a.n(n),o=a(112),i=a.n(o),l=a(58074),c=a.n(l),d=a(55294),u=a(30806),p=a(89449),h=a(73727),m=a(76660),g=a(39014),b=a(32793);class f extends s.Component{constructor(e){super(e),this.state={useByDefault:!!e.forceDefault,selectedAssetId:e.current_asset,balances:{}}}_updateStateForAccount(){const e=this.props.currentAccount.get("balances").toJS();this.setState({balances:Object.keys(e).reduce(((t,a)=>{const s=u.ChainStore.getObject(e[a]);return t[a]=s.get("balance"),t}),{})})}componentDidMount(){this._updateStateForAccount()}componentDidUpdate(e){this.props.account&&e.account.get("id")!==this.props.account.get("id")&&0===Object.keys(this.state.balances).length&&this._updateStateForAccount(),this.props.current_asset&&e.current_asset!==this.props.current_asset&&this.setState({selectedAssetId:this.props.current_asset})}_onSelectedAsset(e){e.target.checked&&this.setState({selectedAssetId:e.target.value})}_getAssetsRows(e){return e.filter((e=>!!e&&e.balance>0&&!!e.asset)).map((e=>({id:e.asset.get("id"),key:e.asset.get("id"),asset:e.asset.get("symbol"),link:`/asset/${e.asset.get("symbol")}`,balance:e.balance/Math.pow(10,e.asset.get("precision")),fee:e.fee})))}onSubmit(){const{selectedAssetId:e,useByDefault:t}=this.state;this.props.onChange(e),t&&d.Z.changeSetting({setting:"fee_asset",value:u.ChainStore.getAsset(e).get("symbol")}),this.props.close()}_getColumns(){const e=[{key:"id",title:"",render:e=>s.createElement(m.Radio,{onChange:this._onSelectedAsset.bind(this),checked:this.state.selectedAssetId===e.id,value:e.id})},{key:"asset",title:i().translate("account.asset"),align:"left",sorter:(e,t)=>"BTS"==e.asset||"BTS"==t.asset?"BTS"==e.asset?1:-1:["USD","CNY","EUR"].includes(e.asset)!==["USD","CNY","EUR"].includes(t.asset)?["USD","CNY","EUR"].includes(e.asset)?1:-1:e.assets.createElement(h.rU,{to:e.link},e.asset)},{key:"balance",title:i().translate("exchange.balance"),align:"right",render:e=>s.createElement("span",null,e.balance)}];return this.props.displayFees&&e.push({key:"fee",title:i().translate("account.transactions.fee"),align:"right",render:e=>s.createElement("span",null,e.fee)}),e}render(){let e=[];this.state.balances&&(e=Object.keys(this.state.balances).map((e=>({asset:u.ChainStore.getAsset(e),balance:this.state.balances[e]}))));let t=this._getAssetsRows(e);const a=s.createElement("div",{key:"buttons",style:{position:"relative",left:"0px"}},s.createElement(m.Button,{key:"cancel",onClick:this.props.close},s.createElement(c(),{component:"span",content:"transfer.cancel"})),s.createElement(m.Button,{key:"submit",type:"primary",disabled:!this.state.selectedAssetId,onClick:this.onSubmit.bind(this)},s.createElement(c(),{component:"span",content:"explorer.asset.fee_pool.use_selected_asset"})));return s.createElement(m.Modal,{visible:this.props.show,overlay:!0,onCancel:this.props.close,title:i().translate("explorer.asset.fee_pool.select_fee_asset"),footer:[a]},s.createElement(m.Table,{columns:this._getColumns(this.props.displayFees),pagination:{hideOnSinglePage:!0,pageSize:20},dataSource:t,footer:null}),s.createElement(m.Checkbox,{onClick:this._setSelectedAssetAsDefault.bind(this),disabled:this.props.forceDefault,checked:this.state.useByDefault,style:{paddingTop:"30px"}},s.createElement(c(),{component:"span",content:"explorer.asset.fee_pool.use_asset_as_default_fee"})))}_setSelectedAssetAsDefault(){this.setState({useByDefault:!this.state.useByDefault})}}f.propTypes={currentAccount:r().any,asset_types:r().array,displayFees:r().bool,forceDefault:r().bool,current_asset:r().string,onChange:r().func,show:r().bool,close:r().func},f.defaultProps={currentAccount:null,asset_types:[],displayFees:!1,forceDefault:!1,current_asset:"1.3.0",show:!1};const y=f=(0,p.$)(f,{listenTo:()=>[g.Z,b.Z],getProps(e){const t=e.currentAccount||u.ChainStore.getAccount(b.Z.getState().currentAccount);return{settings:g.Z.getState().settings,currentAccount:t}}})},64046:(e,t,a)=>{"use strict";a.d(t,{Z:()=>V});var s=a(72990),n=a(67294),r=a(82267),o=a(93135),i=a(58074),l=a.n(i),c=a(17997),d=a(99349),u=a(7437),p=a(89233),h=a(12326),m=a(22463),g=a(89449),b=a(39014),f=a(43393),y=a.n(f),_=a(74366),w=a(13973),k=a(5833),v=a(98107),A=a(82050),E=a(32793),x=a(23037),S=a(21019),C=a(44015),T=a(6311),B=a(76660),z=a(112),P=a.n(z),N=a(19490),M=a(41737),Z=a(23316),I=a(84224),O=a(73556),q=a(81237),L=a(108),D=a(30806),R=a(48764).Buffer;function j(){return j=Object.assign||function(e){for(var t=1;t{e.symbol!=[a,t].join(".")&&e.backingCoinType!=t||(s=e.gateFee)})),{selectedAsset:t,selectedGateway:a,gateFee:s}}UNSAFE_componentWillReceiveProps(e){if(this.setState(this._getAssetPairVariables(e)),""!=this.state.address&&this.onAddressSelected(this.state.address),e.initialSymbol!==this.props.initialSymbol){let t=this._getAssetAndGatewayFromInitialSymbol(e.initialSymbol);t.gatewayStatus=M.GD.call(this,t.selectedAsset,F),t.address="",t.quantity=0,this.setState(t)}}UNSAFE_componentWillUpdate(e,t){const{preferredCurrency:a,assets:s}=e,{selectedAsset:n,quantity:r,selectedGateway:o}=t;if(a&&n&&r){if(a===this.props.preferredCurrency&&n===this.state.selectedAsset&&r===this.state.quantity)return;let e=null,t=null,i=o+"."+n;s.forEach((s=>{(s=s.get?s:y().fromJS(s)).get("symbol")===a&&(e=s),s.get("symbol")===i&&(t=s)})),t&&e&&m.Z.getMarketStats(e,t,!0)}}_getAssetPairVariables(e=this.props,t=this.state){let{assets:a,marketStats:s,balances:n,preferredCurrency:r}=e,{selectedAsset:o,quantity:i,selectedGateway:l,gateFee:c}=t;isNaN(c)&&(c=0),i=Number(i),isNaN(i)&&(i=0),c=Number(c);let d=l?l+"."+o:o;"RUDEX"===l&&"PPY"===o&&(d="PPY");let u,p,h=0,m=null,g=null,b=null,f=0,_=null,w=null,v=0,A=a.find((e=>e.symbol===d));if(n&&n.forEach((e=>{e&&e.toJS&&A&&e.get("asset_type")==A.id&&(u=e,m=e.get("id"),h=e.get("balance"))})),h||(h=0),r&&o){let e=null;a.forEach((t=>{"1.3.0"==(t=t.get?t:y().fromJS(t)).get("id")&&(_=t),t.get("symbol")==r&&(e=t,b=t.get("precision")),t.get("symbol")==l+"."+o&&(p=t,g=t.get("precision")),t.get("symbol")==o&&(p=t,g=t.get("precision"))})),b&&g&&(f=g-b),i&&p&&e&&(v=i*k.Z.getFinalPrice(_,p,e,s,!0,!0),f>0&&(v*=Math.pow(10,f)))}if(Number.isFinite(h)&&g){let e=String(h),t=e.length;for(;t{this.setState(this._getAssetPairVariables(),this.updateFee)}))}onAssetChanged(e){let t={};"BTS"==(e=e.toUpperCase())&&(t={isBTS:!0}),e||(t={selectedAsset:"",selectedGateway:"",addressError:!1,fee:0,isBTS:!1}),t.estimatedValue=0,t.tag="",t.memo="",t.address="",this.setState(t)}onGatewayChanged(e){this.setState({selectedGateway:e},(()=>{this.setState(this._getAssetPairVariables()),this.updateGatewayFee()}))}onQuantityChanged(e){var t=null;if(parseFloat(e.target.value)==e.target.value)t=e.target.value.trim();else{var a=e.target.value.trim().replace(/[^\d.,-]/g,""),s=a.match(/(\,\d{1,2})$/g),n=s?s.length:0;s&&n&&(a=a.replace(",",".")),t=parseFloat(a.replace(",",""))||0}this.setState({quantity:Number(t)})}onEstimateChanged(e){this.setState({userEstimate:e.target.value})}onFocusAmount(e){let{value:t}=e.target;"0"==String(t)&&(e.target.value="")}onBlurAmount(e){let{value:t}=e.target;""==t&&(e.target.value=0)}onAddressChanged(e){this.setState({address:e})}onAddressSelected(e){this.validateAddress(e),this.setState({address:e})}_getBackingAssetProps(){let{selectedGateway:e,selectedAsset:t}=this.state;return this.props.backedCoins.get(e.toUpperCase(),[]).find((e=>{let a=e.backingCoinType||e.backingCoin;if(-1!==a.toUpperCase().indexOf("EOS.")){let[e,t]=a.split(".");a=t}return a===t}))}updateGatewayFee(){const{selectedGateway:e,selectedAsset:t}=this.state;let a=0;e&&t&&this.props.backedCoins.get(e).forEach((s=>{s.symbol!==[e,t].join(".")&&s.backingCoinType!==t||(a=s.gateFee||0)})),this.setState({gateFee:a})}validateAddress(e){let{selectedGateway:t,gatewayStatus:a}=this.state,s=this._getBackingAssetProps();(0,I.YN)({url:a[t].baseAPI.BASE,walletType:s.walletType,newAddress:e,output_coin_type:a[t].addressValidatorAsset?this.state.selectedGateway.toLowerCase()+"."+this.state.selectedAsset.toLowerCase():null,method:a[t].addressValidatorMethod||null}).then((e=>{void 0===e&&(e={isValid:!1}),this.setState({addressError:!e.isValid}),this.setState({withdraw_publicKey:e.hasOwnProperty("publicKey")?e.publicKey:"",withdraw_publicKey_not_empty:!!e.hasOwnProperty("publicKey")})}))}onSelectedAddressChanged(e){let{state:t}=this,{selectedAsset:a}=t,s=a.toLowerCase();I.So.setLast({wallet:s,address:e}),this.validateAddress(e),this.setState({address:e})}onMemoChanged(e){this.setState({memo:e.target.value})}onTagChanged(e){this.setState({tag:e.target.value})}onWithdrawPublicKeyChanged(e){let t=e.target.value.trim();this.setState({withdraw_publicKey:t,withdraw_publicKey_not_empty:""!=t})}onClickAvailableBalance(e){this.setState({quantity:Number(e)})}onDropDownList(){I.So.has(this.state.selectedAsset.toLowerCase())&&(!1===this.state.options_is_valid&&this.setState({options_is_valid:!0}),!0===this.state.options_is_valid&&this.setState({options_is_valid:!1}))}onSubmit(){const{withdrawalCurrencyId:e,withdrawalCurrencyBalance:t,withdrawalCurrencyPrecision:a,quantity:s,withdrawalCurrency:n,selectedGateway:r,selectedAsset:o,address:i,isBTS:l,gateFee:c,tag:d,memo:u,btsAccount:p,feeAmount:h}=this.state;let m=this.state.gatewayStatus[r],g=m.assetWithdrawlAlias&&m.assetWithdrawlAlias[o.toLowerCase()]||o.toLowerCase();const b=(0,M.in)(n.symbol,this.props.backedCoins),f=this.props.intermediateAccounts.find((e=>e&&(e.get("id")===b||e.get("name")===b)));if(!f)throw new Error("Unable to find intermediateAccount");if(I.So.has(g)){let e=I.So.get(g);-1==e.indexOf(i)&&(e.push(i),I.So.set({wallet:g,addresses:e}))}else{let e=[];e.push(i),I.So.set({wallet:g,addresses:e})}I.So.setLast({wallet:g,address:i});let y=new _.xR({asset_id:e,precision:a,real:s}),w=new _.xR({asset_id:e,precision:a,real:0});null!=t&&(w=y.clone(t));const k=new _.xR({asset_id:e,precision:a,real:c});y.plus(k),w.lt(y)&&(y=w);let v="",E="";l?(v=u?new R(u,"utf-8"):"",E=p.get("id")):(g=m.useFullAssetName?r.toLowerCase()+"."+g:g,v=g+":"+i+(this.state.withdraw_publicKey_not_empty?":"+this.state.withdraw_publicKey:"")+(d?":tag:"+new R(d,"utf-8"):"")+(u?":"+new R(u,"utf-8"):""),E=f.get("id"));let x=[this.props.account.get("id"),E,y.getAmount(),e,v,null,h?h.asset_id:"1.3.0"];A.Z.transfer(...x).then((()=>{this.props.hideModal()}))}onBTSAccountNameChanged(e){e||this.setState({btsAccount:null}),this.setState({btsAccountName:e,btsAccountError:null})}onBTSAccountChanged(e){this.setState({btsAccount:e,btsAccountError:null})}_renderStoredAddresses(){const{state:e}=this;let{selectedAsset:t,address:a}=e,s=I.So.get(t.toLowerCase());if(s.length>1&&e.options_is_valid)return n.createElement("div",{className:s.length?"blocktrades-options":"blocktrades-disabled-options"},s.filter((e=>e!=a)).map((function(e,t){return n.createElement("a",{key:t,onClick:this.onSelectedAddressChanged.bind(this,e)},e)}),this))}handleQrScanSuccess(e){this.state.quantity?this.setState({address:e.address}):this.setState({address:e.address,quantity:e.amount}),this.onAddressSelected(e.address)}render(){const{state:e,props:t}=this;let{preferredCurrency:a,assets:s,balances:r}=t,{selectedAsset:i,selectedGateway:u,gatewayStatus:p,addressError:h,gateFee:m,withdrawalCurrencyBalanceId:g,convertedBalance:b,nAvailableGateways:f,assetAndGateway:y,isBTS:k,canCoverWithdrawal:v,fee_asset_types:A,quantity:E,address:x,btsAccount:z,coinToGatewayMapping:M}=this.state,Z=[],q=this._getBackingAssetProps(),D=null,R=null;q&&q.minAmount?D=q.precision?w.Z.format_number(q.minAmount/w.Z.get_asset_precision(q.precision),q.precision,!1):q.minAmount:q&&(D="gateFee"in q&&(2*q.gateFee||0+q.transactionFee)||0),q&&q.maxAmount&&(R=q.maxAmount),r.forEach((e=>{let t=e.get("asset_type"),a=s.get(t);if(a&&e.get("balance")>0){let[e,t]=a.symbol.split("."),s=t||e;Z.push(s)}}));let{onFocus:j,onBlur:F}=this._getBindingHelpers();const W=k?!E||!z:!y||!E||!x||!v||h||E+R?n.createElement(l(),{component:"div",className:"error-msg",style:{position:"absolute",right:0,textTransform:"uppercase",fontSize:13},content:"gateway.limit_withdraw_asset_max",max:R,coin:u+"."+i}):null,!y&&!k||v?null:n.createElement(l(),{content:"modal.withdraw.cannot_cover",component:"div",className:"error-msg",style:{position:"absolute",right:0,textTransform:"uppercase",fontSize:13}})):null,y&&!k?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{component:"span",content:"modal.withdraw.address"})),h?n.createElement("div",{className:"has-error",style:{position:"absolute",right:"1em",marginTop:"-30px"}},n.createElement(l(),{content:"modal.withdraw.address_not_valid"})):null,n.createElement("div",null,n.createElement("div",{className:"inline-label"},n.createElement(B.Select,{showSearch:!0,style:{width:"100%"},value:x,onSearch:this.onAddressChanged.bind(this),onSelect:this.onAddressSelected.bind(this)},x&&-1==U.indexOf(x)?n.createElement(B.Select.Option,{value:x},x):null,U.map((e=>n.createElement(B.Select.Option,{value:e},e)))),n.createElement("span",null,n.createElement(T.Z,{label:"Scan",onSuccess:this.handleQrScanSuccess,submitBtnText:P().translate("qr_address_scanner.use_address"),dataFoundText:P().translate("qr_address_scanner.address_found")+":"}))))):null,k?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement(L.Z,{label:"transfer.to",accountName:e.btsAccountName,onChange:this.onBTSAccountNameChanged.bind(this),onAccountChanged:this.onBTSAccountChanged.bind(this),account:e.btsAccountName,size:60,error:e.btsAccountError})):null,q&&void 0!==q.supportsPublicKey?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.public_key"})),n.createElement(B.Input.TextArea,{value:e.withdraw_publicKey,onChange:this.onWithdrawPublicKeyChanged.bind(this),onInput:this.onWithdrawPublicKeyChanged.bind(this)})):null,k||q&&"tagid"===q.memoType?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.tag"})),n.createElement(B.Input.TextArea,{value:e.tag,onChange:this.onTagChanged.bind(this)})):null,k||q&&q.supportsMemos?n.createElement("div",{style:{marginBottom:"1em"}},n.createElement("label",{className:"left-label"},n.createElement(l(),{content:"modal.withdraw.memo"})),n.createElement(B.Input.TextArea,{value:e.memo,onChange:this.onMemoChanged.bind(this)})):null,y||k?n.createElement("div",{className:"grid-block no-overflow wrap shrink"},n.createElement("div",{className:"small-12 medium-6 withdraw-fee-selector",style:{paddingRight:5}},n.createElement(O.Z,{account:this.props.account,transaction:{type:"transfer",options:["price_per_kbyte"],data:{type:"memo",content:this.state.selectedAsset.toLowerCase()+":"+this.state.address+(this.state.tag?":"+this.state.tag:"")+(this.state.memo?":"+this.state.memo:"")}},onChange:this.onFeeChanged.bind(this)})),n.createElement("div",{className:"small-12 medium-6 ant-form-item-label withdraw-fee-selector"},n.createElement("label",{className:"amount-selector-field--label"},n.createElement(l(),{content:"gateway.fee"})),n.createElement("div",{className:"grid-block no-overflow wrap shrink"},n.createElement(c.Z,{placeholder:"0.0",id:"baseMarketFee",value:q&&"gateFee"in q?q.gateFee:0,disabled:!0,addonAfter:n.createElement("span",null,n.createElement(d.Z,{noTip:!0,name:q.symbol}))})))):null)))}}const U=(0,g.$)(W,{listenTo:()=>[u.Z,p.Z,b.Z,h.Z],getProps:()=>({backedCoins:u.Z.getState().backedCoins,preferredCurrency:b.Z.getSetting("unit"),marketStats:h.Z.getState().allMarketStats})});class H extends n.Component{static propTypes={account:x.Z.ChainAccount.isRequired,withdrawAssets:x.Z.ChainAssetsList,intermediateAccounts:x.Z.ChainAccountsList};static defaultProps={account:"",withdrawAssets:y().List(),intermediateAccounts:y().List()};render(){const{props:e}=this;if(!e.account)return null;let t=e.account.get("balances"),a=y().fromJS({});return t.forEach(((e,t)=>{try{let e=D.ChainStore.getAsset(t).toJS();a=a.set(t,e)}catch(e){}})),e.backedCoins.forEach((e=>{e.forEach((e=>{if(e.withdrawalAllowed)try{let t=D.ChainStore.getAsset(e.symbol).toJS();a.has(t.id)||(a=a.set(t.id,t))}catch(e){}}))})),n.createElement(v.Z,j({wrap:U},e,{balances:e.account.get("balances"),assets:a}))}}const K=(0,g.$)((0,r.Z)(H),{listenTo:()=>[E.Z],getProps:()=>({account:E.Z.getState().currentAccount})});class V extends n.Component{shouldComponentUpdate(e,t){return!(!this.props.visible&&!e.visible)}render(){let e=y().List(),t=y().List();return this.props.backedCoins.forEach((a=>{a.forEach((a=>{if(a.withdrawalAllowed){e.push(a.symbol);let s=(0,M.in)(a.symbol,this.props.backedCoins);s&&!t.includes(s)&&(t=t.push(s))}}))})),n.createElement(K,j({},this.props,{id:this.props.modalId,close:this.props.hideModal,withdrawAssets:e,intermediateAccounts:t}))}}},24647:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(73727),r=a(89449),o=a(39014),i=a(58074),l=a.n(i);class c extends s.Component{static defaultProps={subtitle:"page_not_found_subtitle"};render(){let e;return"lightTheme"===this.props.theme&&(e="data:image/png;base64,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"),"darkTheme"===this.props.theme&&(e="data:image/png;base64,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"),"midnightTheme"===this.props.theme&&(e="data:image/png;base64,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"),s.createElement("div",{className:"page-404"},s.createElement("div",{className:"page-404-container"},s.createElement("div",{className:"page-404-logo"},s.createElement("img",{src:e,alt:"Logo"})),s.createElement("div",{className:"page-404-title"},s.createElement(l(),{content:"page404.page_not_found_title"})),s.createElement("div",{className:"page-404-subtitle"},s.createElement(l(),{content:"page404."+this.props.subtitle})),s.createElement("div",{className:"page-404-button-back"},s.createElement(n.rU,{to:"/"},s.createElement(l(),{component:"button",className:"button",content:"page404.home"})))))}}const d=c=(0,r.$)(c,{listenTo:()=>[o.Z],getProps:()=>({theme:o.Z.getState().settings.get("themes")})})},6311:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(67294),n=a(57164),r=a.n(n),o=a(112),i=a.n(o),l=a(45697),c=a.n(l),d=a(76660);class u extends s.Component{modalId="qr_scanner_modal";state={visible:!1};static propTypes={onSuccess:c().func,onError:c().func,label:c().string,submitBtnText:c().string.isRequired,dataFoundText:c().string.isRequired};constructor(e){super(e),this.retry=this.retry.bind(this),this.submit=this.submit.bind(this),this.handleClick=this.handleClick.bind(this),this.handleClose=this.handleClose.bind(this),this.onScanSuccess=this.onScanSuccess.bind(this)}handleClick(){this.setState({visible:!0})}handleClose(){this.setState({visible:!1})}isBitcoinAddress(e){return/bitcoin:([a-zA-Z0-9]+)/.test(e)}parseBitcoinAddress(e){const t=e.match(/bitcoin:([a-zA-Z0-9]+)/),a=e.match(/amount=([0-9\.]+)/);return{address:t&&t[1]||null,amount:a&&a[1]||null}}onScanSuccess(e){if(this.isBitcoinAddress(e)){let t=this.parseBitcoinAddress(e);t&&this.setState({address:t.address,amount:t.amount})}else this.setState({address:e,amount:null})}retry(){this.setState({address:null,amount:null})}submit(){this.handleClose(),"function"==typeof this.props.onSuccess&&this.props.onSuccess({address:this.state.address,amount:this.state.amount})}render(){return s.createElement("div",{className:"qr-address-scanner"},s.createElement(d.Icon,{type:"camera",onClick:this.handleClick,style:{fontSize:"24px",padding:5}}),s.createElement(d.Modal,{visible:this.state.visible,className:"qr-address-scanner-modal",modalHeader:"global.scan_qr_code",id:this.modalId,overlay:!0,closable:!1,footer:this.state.address?s.createElement("div",{style:{justifyContent:"center"}},[s.createElement(d.Button,{onClick:this.retry,key:"qr-retry-button"},i().translate("qr_address_scanner.retry")),s.createElement(d.Button,{key:"qr-submit-button",type:"primary",onClick:this.submit},this.props.submitBtnText)]):s.createElement("div",{style:{justifyContent:"center"}},s.createElement(d.Button,{onClick:this.handleClose},"Close")),onCancel:this.handleClose},s.createElement(r(),{delay:100,onError:e=>{"function"==typeof this.props.onError&&this.props.onError(e)},onScan:e=>{e&&this.onScanSuccess(e)},style:{width:"calc(100% - 48px)",margin:"0 24px"}}),this.state.address&&s.createElement("div",null,s.createElement("div",{className:"qr-address-scanner-status"},s.createElement("div",{className:"qr-address-scanner-status-title"},this.props.dataFoundText),s.createElement("div",{className:"qr-address-scanner-status-address"},this.state.address),this.state.amount&&s.createElement("div",{className:"qr-address-scanner-status-title"},i().translate("qr_address_scanner.amount")),this.state.amount&&s.createElement("div",{className:"qr-address-scanner-status-amount"},this.state.amount)))))}}const p=u},7768:(e,t,a)=>{"use strict";a.d(t,{Z:()=>T});var s=a(67294),n=a(58074),r=a.n(n),o=a(55294),i=a(39014),l=(a(21712),a(30881)),c=a(89449),d=a(94184),u=a.n(d),p=a(91684),h=a(52531),m=a(112),g=a.n(m),b=a(73935),f=a(45697),y=a.n(f),_=a(76660);class w extends s.Component{static propTypes={id:y().string,className:y().string,type:y().string,style:y().object,caption:y().string.isRequired,onClick:y().func.isRequired,loadingType:y().string,loadingMessage:y().string,isLoading:y().bool};static defaultProps={style:{},isLoading:null,className:"button",type:"button",loadingType:"inside-feedback",loadingMessage:null};constructor(e){super(e),this.state={loading:null!=this.props.isLoading&&this.props.isLoading,overrideMessage:null,loadingButtonWidth:null},this.processingOnClick=!1}shouldComponentUpdate(e,t){return e.isLoading!==this.props.isLoading||t.loading!==this.state.loading}_feedback(e=null,t=null){null==e?(this.setState({overrideMessage:null,loading:!1}),this.processingOnClick=!1):"string"==typeof e?this.setState({overrideMessage:e}):"boolean"==typeof e&&(e?(this.setState({loading:!1}),this.processingOnClick=!1):this.setState({overrideMessage:t}))}_onClick(e){return this.processingOnClick=!0,!!this.state.loading||(null!=this.props.onClick?(this.setState({loadingButtonWidth:(0,b.findDOMNode)(this.loadingButton).getBoundingClientRect().width,loading:!0}),e.persist(),this.props.onClick(e,this._feedback.bind(this)),!0):void 0)}_isLoading(){return this.processingOnClick?this.state.loading:null!=this.props.isLoading&&this.props.isLoading}render(){let e=this.props.caption||this.props.text||null;"string"==typeof e&&e.indexOf(".")>0&&(e=g().translate(e)),null!=e&&""==e.trim()&&(e=null);let t=this.props.loadingMessage||null;null!=this.state.overrideMessage&&""!=this.state.overrideMessage.trim()&&(t=this.state.overrideMessage),"string"==typeof t&&t.indexOf(".")>0&&(t=g().translate(t)),null!=t&&""==t.trim()&&(t=null);let a=null,n=null,r=!1,o=s.createElement("span",null,e),i=this._isLoading();switch(this.props.loadingType){case"inside":i&&(r=!0,o=s.createElement("span",{style:{margin:"auto",display:"inline-block"}},s.createElement(h.Z,{type:"circle-small"})));break;case"inside-feedback":i&&(r=!0,o=s.createElement("span",{style:{float:"left"}},s.createElement("span",{style:{position:"absolute",whiteSpace:"nowrap",marginLeft:"12px"}},t),s.createElement("span",null,s.createElement(h.Z,{type:"circle-small"}))));break;case"overlay":i&&(r=!0,n=s.createElement(h.Z,{type:"loading-overlay"}));break;case"overlay-feedback":i&&(r=!0,n=s.createElement(h.Z,{loadingText:t,type:"loading-overlay"}));break;case"inside-feedback-resize":i&&(o=s.createElement("span",null,s.createElement("span",null,t),s.createElement("span",{style:{float:"left"}},s.createElement(h.Z,{type:"circle-small"}))));break;case"right-feedback":i&&(n=s.createElement("div",{style:{float:"left",marginLeft:"-9px",position:"relative"},className:"disabled"},s.createElement("span",null,s.createElement("span",{style:{float:"left",marginTop:"7px"}},s.createElement(h.Z,{type:"circle"})),s.createElement("span",{style:{float:"left",marginLeft:"6px",marginTop:"11px"}},t))));break;case"left-feedback":i&&(a=s.createElement("div",{style:{float:"left",marginRight:"6px",position:"relative"},className:"disabled"},s.createElement("span",null,s.createElement("span",{style:{float:"right",marginTop:"7px"}},s.createElement(h.Z,{type:"circle"})),s.createElement("span",{style:{float:"right",marginRight:"6px",marginTop:"11px"}},t))))}let l={overflow:"hidden",position:"relative"};return r&&null!=this.state.loadingButtonWidth&&(l.width=this.state.loadingButtonWidth),s.createElement("div",{style:this.props.style},null!=a&&a,s.createElement("span",{style:{float:"left"}},s.createElement(_.Button,{ref:e=>{this.loadingButton=e},disabled:i,type:this.props.type,className:this.props.className,id:this.props.id,onClick:this._onClick.bind(this),style:l},o)),null!=n&&n,s.createElement("div",{style:{clear:"both"}}))}}const k=w;var v=a(86853);const A="wss://fake.automatic-selection.com";function E(e){return-1!==e.indexOf("testnet")}class x extends s.Component{constructor(e){super(e)}activate(e){o.Z.changeSetting({setting:"apiServer",value:e}),i.Z.getSetting("activeNode")!=i.Z.getSetting("apiServer")&&setTimeout(function(){(0,l.Z)(!1)}.bind(this),50)}render(){const{isActive:e,connectedNode:t,totalNodes:a,popup:n}=this.props;return n?s.createElement("div",null,s.createElement(_.Switch,{style:{float:"right",position:"relative",top:"-15px"},checked:e,onChange:null!=t?this.activate.bind(this,e?t.url:A):()=>{}}),s.createElement("p",{style:{fontSize:"80%"}},s.createElement(r(),{content:"settings.automatic_short"}),":")):s.createElement("div",{className:"auto-node"},s.createElement("div",null,s.createElement(_.Switch,{checked:e,onChange:null!=t?this.activate.bind(this,e?t.url:A):()=>{}}),s.createElement(r(),{component:"div",style:{paddingLeft:"1rem",paddingTop:"0.2rem"},content:"settings.automatic",totalNodes:a})),s.createElement("div",{style:{float:"right",marginBottom:"0.5rem"}},s.createElement(v.Z,null)))}}class S extends s.Component{constructor(e){super(e)}activate(e){o.Z.changeSetting({setting:"apiServer",value:e}),i.Z.getSetting("activeNode")!=i.Z.getSetting("apiServer")&&setTimeout(function(){(0,l.Z)(!1)}.bind(this),50)}remove(e,t){this.props.showRemoveNodeModal(e,t)}show(e){o.Z.showWS(e)}hide(e){o.Z.hideWS(e)}_getPing(){if(E(this.props.node.url))return{toString:null,color:null,rating:null};if(!this.props.node.ping)return{toString:null,color:"high",rating:"node_down"};if(this.props.node.ping==1/0)return{toString:null,color:"high",rating:"node_down"};if(-1==this.props.node.ping)return{toString:null,color:"high",rating:"skipped"};let e,t,a=this.props.node.ping;return a<400?(e="low",t="low_latency"):a>=400&&a<800?(e="medium",t="medium_latency"):(e="high",t="high_latency"),{toString:a>=1e3?+(a/1e3).toFixed(2)+"s":a+"ms",color:e,rating:t}}render(){const{node:e,isActive:t,popup:a}=this.props;let n=this._getPing(),o=e.url,i=!t,l=!e.default&&!t,c=!!e.hidden,d=(e.location&&"object"==typeof e.location&&"translate"in e.location?g().translate(e.location.translate):e.location)||"";return e.country&&(d=e.country+(d?" - "+d:"")),e.region&&(d=e.region+(d?" - "+d:"")),a?s.createElement("div",{className:"api-status"},s.createElement("a",null,s.createElement(p.Z,{className:n.color+" default-icon",name:t?"connected":"disconnected",title:t?"icons.connected":"icons.disconnected",size:"1_5x",onClick:this.activate.bind(this,o)}),s.createElement(p.Z,{className:n.color+" hover-icon",name:"connect",title:"icons.connect",size:"1_5x",onClick:this.activate.bind(this,o)})),d):s.createElement("div",{className:"api-node"},s.createElement("div",{className:"api-node-left"},s.createElement("p",{className:"api-node-title"},d),!!e.operator&&s.createElement("p",{className:"api-node-operator"},e.operator,"   "),s.createElement("p",{className:"api-node-url",id:t?"active_node":null},o)),s.createElement("div",null,s.createElement("div",{className:"api-status"},s.createElement("span",{className:n.color},!!n.rating&&s.createElement(r(),{content:`settings.${n.rating}`}),!!n.toString&&s.createElement("p",null,n.toString)))),s.createElement("div",{style:{marginTop:"-5px"}},i&&s.createElement("a",{onClick:c?this.show.bind(this,o):this.hide.bind(this,o)},s.createElement(p.Z,{className:"shuffle",name:c?"eye-striked":"eye",title:c?"icons.eye_striked":"icons.eye",size:"1_5x"})),l&&s.createElement("a",{onClick:this.remove.bind(this,o,d)},s.createElement(p.Z,{name:"times",title:"icons.times",size:"1_5x"})),s.createElement("div",{className:"api-status"},t?s.createElement(p.Z,{className:n.color,name:"connected",title:"icons.connected",size:"2x"}):s.createElement("a",{id:o,onClick:this.activate.bind(this,o)},s.createElement(p.Z,{className:n.color+" default-icon",name:"disconnected",title:"icons.connect",size:"1_5x"}),s.createElement(p.Z,{className:n.color+" hover-icon",name:"connect",title:"icons.connect",size:"1_5x"})))))}}S.defaultProps={node:{}};class C extends s.Component{constructor(e){super(e),this.state={activeTab:"available_nodes"}}getNode(e){const{props:t}=this;let a={ping:t.apiLatencies[e.url]};return Object.keys(e).forEach((t=>{a[t]=e[t]})),a}_getConnectedNode(){let e=this.props.connectedNode||A;const t=this.props.nodes.find((t=>t.url==e));return t?this.getNode(t):null}_connectedNodeIsPersonal(){if(!this.props.connectedNode)return!1;let e=this.props.nodes.find((e=>e.url==this.props.connectedNode));return e&&this._nodeIsPersonal(e)}_nodeIsPersonal(e){return!e.default&&!e.hidden&&!E(e.url)}_getMainNetNodes(){return this.props.nodes.filter((e=>!E(e.url)))}renderNode(e,t){const{props:a}=this;return null==e?null:s.createElement(S,{node:e,key:e.url,showRemoveNodeModal:a.showRemoveNodeModal,isActive:null!==t&&e.url==t.url,popup:a.popup})}renderAutoSelection(e){const{props:t}=this;return s.createElement(x,{key:A,isActive:t.selectedNode===A,connectedNode:e,totalNodes:this._getMainNetNodes().length,popup:t.popup})}_changeTab(e){this.setState({activeTab:e})}_recalculateLatency(e,t){l._.doLatencyUpdate(!0,!1,1).finally((()=>{this.forceUpdate(),t()}))}render(){const{props:e}=this;let t=this.getNode.bind(this),a=this.renderNode.bind(this),n=this._getConnectedNode(),o=e.nodes.map((e=>t(e))).filter((e=>(null==n||e.url!==n.url)&&e.url!==A)).sort((function(e,t){let a=E(e.url);return e.ping&&t.ping?e.ping-t.ping:e.ping||t.ping?e.ping&&!t.ping?-1:t.ping&&!e.ping?1:0:a?-1:1})),i=null,c=!1;"my_nodes"===this.state.activeTab?(i=o.filter((e=>this._nodeIsPersonal(e))),c=this._connectedNodeIsPersonal()&&0===i.length):i="available_nodes"===this.state.activeTab?o.filter((e=>e.default&&!e.hidden&&!E(e.url))):"testnet_nodes"===this.state.activeTab?o.filter((e=>E(e.url))):o.filter((e=>e.hidden&&!E(e.url)));let d=0,p=!!l._&&l._.isBackgroundPingingInProgress();return this.props.popup?s.createElement("div",null,s.createElement("div",{style:{fontWeight:"bold",height:40}},s.createElement(r(),{content:"settings.switch"}),this.renderAutoSelection(n)),s.createElement("div",{className:"nodes-list",style:{display:e.selectedNode===A?"none":""}},i.map((e=>{if(d++,d<=5)return a(e,n)})))):s.createElement("div",{style:{paddingTop:"1em"}},this.renderAutoSelection(n),s.createElement("div",{style:{clear:"both"}}),s.createElement("div",{className:"active-node"},s.createElement(k,{style:{float:"right"},isLoading:p,caption:"settings.ping",loadingType:"inside-feedback-resize",loadingMessage:"settings.pinging",onClick:this._recalculateLatency.bind(this)}),s.createElement(r(),{component:"h4",style:{marginLeft:"1rem"},content:"settings.active_node"}),a(n,n)),s.createElement("div",{className:"nodes",style:{position:"relative",marginBottom:"2em"}},s.createElement("div",{className:"grid-block shrink",style:{marginLeft:0}},["available_nodes","my_nodes","hidden_nodes","testnet_nodes"].map((e=>s.createElement("div",{key:e,className:u()("nodes-header clickable",{inactive:this.state.activeTab!==e}),onClick:this._changeTab.bind(this,e)},s.createElement(r(),{content:"settings."+e}))))),"my_nodes"===this.state.activeTab&&s.createElement("div",{style:{paddingLeft:"1rem",paddingBottom:"1rem"}},s.createElement(_.Button,{type:"primary",onClick:e.showAddNodeModal},s.createElement(r(),{id:"add",component:"span",content:"settings.add_api"}))),"testnet_nodes"===this.state.activeTab&&s.createElement(r(),{component:"p",content:"settings.testnet_nodes_disclaimer"}),i.map((e=>a(e,n))),c?s.createElement("div",{className:"api-node"},s.createElement("p",{className:"api-node-title",style:{padding:"1rem"}},s.createElement(r(),{content:"settings.personal_active"}))):null))}}const T=C=(0,c.$)(C,{listenTo:()=>[i.Z],getProps:()=>({selectedNode:i.Z.getState().settings.get("apiServer"),connectedNode:i.Z.getState().settings.get("activeNode"),apiLatencies:i.Z.getState().apiLatencies})})},55474:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(67294),n=a(58074),r=a.n(n),o=a(55294),i=a(112),l=a.n(i),c=a(76660);const d="ws://",u="wss://";class p extends s.Component{constructor(){super();let e=window.location.protocol;this.state={protocol:e,ws:u,name:"My node",type:"remove",remove:{},addError:null,existsError:null},this.onRemoveSubmit=this.onRemoveSubmit.bind(this)}onServerInput(e){let t={ws:e.target.value};this.apiExists(t.ws)?t.existsError=!0:t.existsError=null,0!==t.ws.indexOf(u)&&0!==t.ws.indexOf(d)?t.addError=!0:t.addError=null,this.setState(t)}apiExists(e){return!!this.props.apis.find((t=>t.url===e))}onNameInput(e){this.setState({name:e.target.value})}close(){this.setState({isModalVisible:!1})}onAddSubmit(e){e.preventDefault(),o.Z.addWS({location:this.state.name,url:this.state.ws}),this.setState({ws:"https:"===this.state.protocol?u:d,name:""}),this.props.onAddNodeClose()}onRemoveSubmit(e){let t;e.preventDefault(),this.props.apis.forEach(((e,a)=>{e.url===this.props.removeNode.url&&(t=a)})),this.props.api===this.props.apis[t].url&&(o.Z.changeSetting.defer({setting:"apiServer",value:this.props.apis[0].url}),this.props.changeConnection(this.props.apis[0].url)),o.Z.removeWS(t),this.props.onRemoveNodeClose()}_renderAddModal(){let e="",t="";return this.state.existsError&&(t="error",e=l().translate("settings.node_already_exists")),this.state.addError&&(t="error",e=l().translate("settings.valid_node_url")),s.createElement(c.Modal,{visible:this.props.isAddNodeModalVisible,id:"ws_modal_add",ref:"ws_modal_add",title:l().translate("settings.add_ws"),overlay:!0,onCancel:this.props.onAddNodeClose,overlayClose:!1,footer:[s.createElement(c.Button,{key:"confirm",type:"primary",disabled:this.state.addError||this.state.existsError,onClick:this.onAddSubmit.bind(this)},l().translate("transfer.confirm")),s.createElement(c.Button,{key:"cancel",onClick:this.props.onAddNodeClose},l().translate("account.perm.cancel"))]},s.createElement("div",{className:"grid-content"},s.createElement(c.Form,{layout:"vertical"},s.createElement(c.Form.Item,{label:"Name"},s.createElement(c.Input,{onChange:this.onNameInput.bind(this),value:this.state.name})),s.createElement(c.Form.Item,{label:"Address",validateStatus:t,help:e},s.createElement(c.Input,{value:this.state.ws,onChange:this.onServerInput.bind(this)})))))}_renderRemoveModal(){if(!this.props.api)return null;const e=[s.createElement(c.Button,{key:"submit",onClick:this.onRemoveSubmit},l().translate("transfer.confirm")),s.createElement(c.Button,{key:"cancel",type:"primary",onClick:this.props.onRemoveNodeClose},l().translate("modal.cancel"))];return s.createElement(c.Modal,{onCancel:this.props.onRemoveNodeClose,title:l().translate("settings.remove_ws"),visible:this.props.isRemoveNodeModalVisible,footer:e},s.createElement("div",{className:"grid-content no-overflow"},s.createElement("section",{className:"block-list"},s.createElement("p",null,s.createElement(r(),{component:"span",content:"settings.confirm_remove",with:{name:this.props.removeNode&&this.props.removeNode.name}})))))}render(){return s.createElement("div",null,this._renderAddModal(),this._renderRemoveModal())}}const h=p},98485:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(67294),n=a(43393),r=a.n(n),o=a(112),i=a.n(o),l=a(52521),c=a(45697),d=a.n(c),u=a(34961),p=a(76660),h=a(554);class m extends u.C{static propTypes={label:d().string,assets:d().array,amount:d().string,placeholder:d().string,onChange:d().func,tabIndex:d().number,error:d().string,selectDisabled:d().bool};static defaultProps={disabled:!1,tabIndex:0,selectDisabled:!1};componentDidMount(){this.onAssetChange(this.props.asset)}formatAmount(e){return e||"number"==typeof e||(e=""),"number"==typeof e&&(e=e.toString()),e.toString().trim().replace(/,/g,"")}_onChange(e){this.props.onChange&&this.props.onChange({amount:this.getNumericEventValue(e),asset:this.props.asset})}_onLockChange(e){this.props.onLockChange&&this.props.onLockChange(e)}onAssetChange(e){this.props.onChange&&this.props.onChange({amount:this.props.amount,asset:e})}render(){let e=this.props.error?i().translate(this.props.error):this.formatAmount(this.props.amount);const t=this.props.label?s.createElement("div",{className:"amount-selector-field--label"},i().translate(this.props.label),this.props.display_balance&&s.createElement("div",{className:"amount-selector-field--balance"},this.props.display_balance)):null;let a="boolean"==typeof this.props.lockStatus?s.createElement(p.Icon,{className:this.props.lockStatus?"green":"grey",type:this.props.lockStatus?"lock":"unlock",onClick:this._onLockChange.bind(this,!this.props.lockStatus),style:{fontSize:"20px"}}):null,n=this.props.isPrice?s.createElement("div",null,this.props.asset.get("symbol"),"/",this.props.base):s.createElement(h.Z,{style:{width:"130px"},selectStyle:{width:"100%"},value:this.props.asset.get("symbol"),assets:r().List(this.props.assets),onChange:this.onAssetChange.bind(this),disabled:!!this.props.selectDisabled||void 0,tabIndex:this.props.tabIndex+1,onSearch:this.props.onSearch});return s.createElement(p.Form.Item,{label:t,style:this.props.style,className:"amount-selector-field",validateStatus:this.props.validateStatus,help:this.props.help},s.createElement(p.Input.Group,{compact:!0},s.createElement(p.Input,{type:"number",disabled:this.props.disabled,value:e||"",style:{width:"calc(100% - 130px)"},placeholder:this.props.placeholder,onChange:this._onChange.bind(this),tabIndex:this.props.tabIndex,onPaste:this.props.onPaste||this.onPaste.bind(this),onKeyPress:this.onKeyPress.bind(this),addonBefore:a,className:"input-group-unbordered-before"}),n))}}const g=m=(0,l.Z)(m)},99349:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(67294),n=a(13973),r=a(7581),o=a(52521),i=a(112),l=a.n(i),c=a(45697),d=a.n(c),u=a(76660),p=a(30806),h=a(7437),m=a(41737);function g(){return g=Object.assign||function(e){for(var t=1;t{this._isMounted&&this.setState({assetIssuerName:e[0]})}))}componentDidMount(){this._isMounted=!0}componentDidUpdate(){this._load()}componentWillUnmount(){this._isMounted=!1}render(){let{replace:e,asset:t,noPrefix:a,customClass:o,noTip:i}=this.props;if(!t)return null;const c=t.get("symbol"),d=this.state.assetIssuerName,p=t.has("bitasset"),h=p&&t.getIn(["bitasset","is_prediction_market"]);let{name:m,prefix:g}=n.Z.replaceName(t);const b="bit"===g;let f=p&&!h&&b;if(e&&m!==c||p){let e=r.Z.parseDescription(t.getIn(["options","description"])),a=c.split(".");a=a.length>1?a[0]:null,a&&(a+=".");let n="";try{n=a||f?l().translate("gateway.assets."+(b?"bit":a.replace(".","").toLowerCase()),{asset:c,backed:f?e.main:m}):""}catch(e){}p&&"CNY"===c&&(n=n+" "+l().translate("gateway.assets.bitcny"));const h=g&&"bit"===g?g:g?g.toUpperCase():g;let y=s.createElement("div",{className:"inline-block"+(this.props.noTip?"":" tooltip")+(o?" "+o:"")},s.createElement("span",{className:"asset-prefix-replaced"},g),s.createElement("span",null,m));if(i)return y;{let t=(h||"")+m.toUpperCase(),a=s.createElement("div",{style:{maxWidth:"25rem"}},e.short?e.short:e.main||"",""!==n&&s.createElement("br",null),""!==n&&s.createElement("br",null),n,s.createElement("br",null),s.createElement("br",null),d&&l().translate("explorer.assets.issuer")+": "+d);return s.createElement(u.Popover,{placement:this.props.dataPlace,content:a,title:t,mouseEnterDelay:.5},y)}}{let e=s.createElement("span",{className:o||null},s.createElement("span",{className:a?"":"asset-prefix-replaced"},a?null:g),s.createElement("span",null,m));if(i)return e;{let a=null;a="BTS"==m?{main:l().translate("assets.BTS")}:r.Z.parseDescription(t.getIn(["options","description"]));let n=(g||"")+m.toUpperCase(),o=s.createElement("div",{style:{maxWidth:"25rem"}},a.short?a.short:a.main||"",s.createElement("br",null),s.createElement("br",null),d&&l().translate("explorer.assets.issuer")+": "+d);return s.createElement(u.Popover,{placement:this.props.dataPlace,content:o,title:n,mouseEnterDelay:.5},e)}}}}b=(0,o.Z)(b);class f extends s.Component{render(){const e=(0,m.p3)(this.props.name);let t,a;if(e&&e.selectedGateway){const e=h.Z.getOnChainConfig((0,m.p3)(this.props.name).selectedGateway);t=!!e&&!e.enabled&&s.createElement(u.Tooltip,{placement:"topLeft",title:s.createElement("span",null,s.createElement("span",{dangerouslySetInnerHTML:{__html:l().translate("external_service_provider.disabled_asset_1")+". "}}),s.createElement("span",null,e.comment),s.createElement("br",null),s.createElement("br",null),s.createElement("span",null,l().translate("external_service_provider.disabled_asset_2")))}," ",s.createElement(u.Icon,{type:"warning"}))}return h.Z.isAssetBlacklisted(this.props.name)&&(a=s.createElement(u.Tooltip,{placement:"topLeft",title:s.createElement(s.Fragment,null,s.createElement("span",null,l().translate("explorer.assets.blacklisted")))}," ",s.createElement(u.Icon,{style:{color:"white"},type:"warning"}))),this.props.name?s.createElement(s.Fragment,null,s.createElement(b,g({},this.props,{asset:this.props.name})),t,a):null}}},554:(e,t,a)=>{"use strict";a.d(t,{Z:()=>_});var s=a(67294),n=a(58074),r=a.n(n),o=a(45697),i=a.n(o),l=a(76660),c=a(13973),d=a(112),u=a.n(d),p=a(23037),h=a(82267),m=a(43393),g=a(99349),b=a(52531);function f(){return f=Object.assign||function(e){for(var t=1;t{const y=t.filter(m.Map.isMap).length<=1&&!p,_=s.createElement(l.Select,f({showSearch:!0,onDropdownVisibleChange:p,showArrow:!y&&void 0,style:a,placeholder:s.createElement(r(),{content:i||"utility.asset_select_placeholder"}),value:d},h,{optionFilterProp:"children",filterOption:(e,t)=>t.key.toLowerCase().indexOf(e.toLowerCase())>=0,disabled:y,notFoundContent:u().translate("global.not_found")}),t.filter(m.Map.isMap).map((e=>{const{name:t,prefix:a}=c.Z.replaceName(e);return s.createElement(l.Select.Option,{key:`${a||""}${t}`,value:e.get("id")},s.createElement(g.Z,{noTip:!0,name:e.get("symbol")}))})),h.loading&&s.createElement(l.Select.Option,{key:"loading",value:"loading",disabled:!0},s.createElement(b.Z,{type:"three-bounce"})));return s.createElement("div",{className:"asset-select",style:o},e?s.createElement(l.Form.Item,{colon:!1,label:s.createElement(r(),{content:e}),style:n},_):_)};y.propTypes={assets:p.Z.ChainAssetsList,placeholder:i().string,label:i().string,style:i().object,formItemStyle:i().object,selectStyle:i().object},y.defaultPropTypes={assets:[],placeholder:null,label:null,style:"",formItemStyle:"",selectStyle:""};const _=(0,h.Z)(y)},52521:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(67294),n=a(13863),r=a(23037),o=a(82267),i=a(43393);class l extends s.Component{static propTypes={dos:r.Z.ChainObjectsList};static defaultProps={dos:(0,i.List)()};constructor(){super(),this.getDynamicObject=this.getDynamicObject.bind(this)}getDynamicObject(e){return this.props.dos.find((t=>t&&t.get("id")===e))}render(){return s.cloneElement(s.Children.only(this.props.children),{...this.props,getDynamicObject:this.getDynamicObject})}}l=(0,o.Z)(l);const c=function(e,t={}){t.propNames=t.propNames||[t.asList?"assets":"asset"];const a=t.propNames.reduce(((e,a)=>(e[a]=t.asList?r.Z.ChainAssetsList:r.Z.ChainAsset.isRequired,e)),{});let c=Object.keys(a).reduce(((e,a)=>{let s=t.defaultProps&&t.defaultProps[a];return e[a]=t.asList?(0,i.List)(s||[]):s||"1.3.0",e}),{});t.defaultProps&&t.defaultProps.tempComponent&&(c.tempComponent=t.defaultProps.tempComponent);class d extends s.Component{static propTypes=a;static defaultProps=c;render(){let e={},a={},n=(0,i.List)();Object.keys(this.props).forEach((s=>{this.props[s]&&-1!==t.propNames.indexOf(s)?(t.withDynamic&&(t.asList?this.props[s].forEach((e=>{e&&(n=n.push(e.get("dynamic_asset_data_id")))})):n=n.push(this.props[s].get("dynamic_asset_data_id"))),e[s]=t.asList?this.props[s].filter((e=>!!e)):this.props[s]):a[s]=this.props[s]}));let r=s.cloneElement(s.Children.only(this.props.children),{...a,...e});return t.withDynamic?s.createElement(l,{dos:n},r):r}}d=(0,o.Z)(d);class u extends s.Component{render(){return s.createElement(d,this.props,s.createElement(e,{ref:"bound_component"}))}}return u.displayName=`Wrapper(${(0,n.G)(e)})`,u}},44015:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(21019),r=a(23037),o=a(82267),i=a(45697),l=a.n(i);class c extends s.Component{static propTypes={balance:r.Z.ChainObject.isRequired,assetInfo:l().node,hide_asset:l().bool,trimZero:l().bool};static defaultProps={hide_asset:!1,trimZero:!1};render(){if(!this.props.balance||!this.props.balance.toJS)return null;let e=this.props.balance.get("balance");e=e||0==e?Number(this.props.balance.get("balance")):null;let t=this.props.balance.get("asset_type");return s.createElement(n.Z,{amount:e,asset:t,asPercentage:this.props.asPercentage,assetInfo:this.props.assetInfo,replace:this.props.replace,hide_asset:this.props.hide_asset,trimZero:this.props.trimZero})}}const d=(0,o.Z)(c)},82267:(e,t,a)=>{"use strict";a.d(t,{Z:()=>I});var s=a(87694),n=a(16423),r=a(12297),o=a(21705),i=a(92346),l=a(70414),c=a(8410),d=a(1626),u=a(67294),p=a(30806),h=a(23037),m=a(13973),g=a(13863),b=a(52531);function f(){return f=Object.assign||function(e){for(var t=1;tt[e],_=(0,d.Z)(y)(0),w=(0,d.Z)(y)(1),k=(0,d.Z)(((e,t)=>t===e||t===e.isRequired)),v=k(h.Z.ChainObject),A=k(h.Z.ChainAccount),E=k(h.Z.ChainKeyRefs),x=k(h.Z.ChainAddressBalances),S=k(h.Z.ChainAsset),C=k(h.Z.ChainLiquidityPool),T=k(h.Z.ChainObjectsList),B=k(h.Z.ChainAccountsList),z=k(h.Z.ChainAssetsList),P=k(h.Z.ChainAccountName);function N(e){for(let t in h.Z)if(e===h.Z[t].isRequired)return!0;return!1}function M(e,t={}){class a extends u.Component{constructor(a){super(a),this.hasErrored=!1;let s=(0,o.Z)(e.propTypes);t&&t.all_props?(this.chain_objects=(0,l.Z)(Object.keys(this.props),(e=>"children"===e||"show_loader"===e)),this.chain_accounts=[],this.chain_account_names=[],this.chain_key_refs=[],this.chain_address_balances=[],this.chain_assets=[],this.chain_liquidity_pools=[],this.chain_objects_list=[],this.chain_accounts_list=[],this.chain_assets_list=[],this.required_props=[],this.all_chain_props=this.chain_objects):(this.chain_objects=s.filter((0,c.Z)(w,v)).map(_),this.chain_accounts=s.filter((0,c.Z)(w,A)).map(_),this.chain_account_names=s.filter((0,c.Z)(w,P)).map(_),this.chain_key_refs=s.filter((0,c.Z)(w,E)).map(_),this.chain_address_balances=s.filter((0,c.Z)(w,x)).map(_),this.chain_assets=s.filter((0,c.Z)(w,S)).map(_),this.chain_liquidity_pools=s.filter((0,c.Z)(w,C)).map(_),this.chain_objects_list=s.filter((0,c.Z)(w,T)).map(_),this.chain_accounts_list=s.filter((0,c.Z)(w,B)).map(_),this.chain_assets_list=s.filter((0,c.Z)(w,z)).map(_),this.required_props=s.filter((0,c.Z)(w,N)).map(_),this.all_chain_props=[...this.chain_objects,...this.chain_accounts,...this.chain_account_names,...this.chain_key_refs,...this.chain_address_balances,...this.chain_assets,...this.chain_liquidity_pools,...this.chain_objects_list]),t&&t.require_all_props&&(this.required_props=this.all_chain_props),this.dynamic_props={},this.default_props=(0,i.Z)(e.defaultProps)||{};for(let e in this.default_props){let t=this.default_props[e];"string"==typeof t&&0===t.indexOf("props.")&&(this.dynamic_props[e]=(0,n.Z)(this,t))}this.tempComponent=e.defaultProps&&e.defaultProps.tempComponent||null,this.update=this.update.bind(this),this.state={resolved:!1}}shouldComponentUpdate(e,t){return!m.Z.are_equal_shallow(this.props,e)||!m.Z.are_equal_shallow(this.state,t)}componentDidCatch(e,t){this._errored(e,t)}_errored(t,a){console.error(`BindToChainState(${(0,g.G)(e)})`,t,a),this.setState({hasErrored:!0})}UNSAFE_componentWillMount(){p.ChainStore.subscribe(this.update),this.update()}componentWillUnmount(){p.ChainStore.unsubscribe(this.update)}UNSAFE_componentWillReceiveProps(e){if(t&&t.all_props){this.chain_objects=(0,l.Z)(Object.keys(e),(e=>"children"===e||"show_loader"===e)),this.all_chain_props=this.chain_objects;let t=(0,s.Z)(this.state,this.chain_objects);m.Z.are_equal_shallow(t,this.state)||this.setState(t)}let a=null;for(let t in this.dynamic_props){let s=this.default_props[t];a||(a={props:e});let r=(0,n.Z)(this,s),o=(0,n.Z)(a,s);o&&o!==r&&(this.dynamic_props[t]=(0,n.Z)(a,s))}this.update(e)}async update(e=null){try{await this._update(e)}catch(e){this._errored(e)}}async _update(e=null){let t=e||this.props,a={},s=0,n=0;for(let e of this.chain_objects){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getObject(r,!1,this.default_props.autosubscribe);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_accounts){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){"#"===r[0]&&Number.parseInt(r.substring(1))&&(r="1.2."+r.substring(1)),r instanceof Map&&r.get("name")&&1==r.size&&(r=r.get("name"));let t=p.ChainStore.getAccount(r,this.default_props.autosubscribe);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e]||null===t)&&(a[e]=t),++s,void 0!==t&&++n,"bitsharesblocksazdazdz"===r&&console.log("account:",r,"new_obj",t,"all_objects_counter",s,"resolved_objects_counter",n)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_account_names){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getAccountName(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_key_refs){let r=t[e]||this.dynamic_prop[e]||this.default_props[e];if(r){let t=p.ChainStore.getAccountRefsOfKey(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_address_balances){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getBalanceObjects(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e])&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_assets){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=p.ChainStore.getAsset(r);(void 0===t&&-1===this.required_props.indexOf(e)&&t!==this.state[e]||t&&t!==this.state[e]||null===t)&&(a[e]=t),++s,void 0!==t&&++n}else this.state[e]&&(a[e]=null)}for(let e of this.chain_liquidity_pools){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){const t=await p.ChainStore.getLiquidityPoolsByShareAsset([r],this.default_props.autosubscribe);t.size>0?(a[e]=t.first(),++s,++n):a[e]=null}else this.state[e]&&(a[e]=null)}for(let e of this.chain_objects_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(++l,e){let a=p.ChainStore.getObject(e,!1,this.default_props.autosubscribe);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_accounts_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(e){let a=p.ChainStore.getAccount(e,this.default_props.autosubscribe);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++l,++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}for(let e of this.chain_assets_list){let r=t[e]||this.dynamic_props[e]||this.default_props[e];if(r){let t=this.state[e],o=[],i=!1;t&&t.length===r.size||(t=[],i=!0);let l=0;r.forEach((e=>{if(++l,e){let a=p.ChainStore.getAsset(e);a&&++n,t[l]!==a?(i=!0,o[l]=a):o[l]=t[l]}++s})),i&&(a[e]=o)}else this.state[e]&&(a[e]=null)}s<=n&&(a.resolved=!0);let r=!1;function o(e){let t={};for(let a in e)null===e[a]?t[a]="null":t[a]=e[a];return t}let i=o(this.state),l=o(a);for(let e in l)m.Z.are_equal_shallow(l[e],i[e])?delete a[e]:r=!0;r&&this.setState(a)}render(){const a=(0,r.Z)(this.props,this.all_chain_props);for(let e of this.required_props)if(void 0===this.state[e])return this.hasErrored?u.createElement("span",{style:{color:"red"}},"Error rendering component, please report (see browser console for details)"):void 0!==t&&t.show_loader?u.createElement(u.Fragment,null,u.createElement(b.Z,null),u.createElement("span",{className:"text-center"},"Loading ...")):this.tempComponent?u.createElement(this.tempComponent):u.createElement("span",null);return u.createElement(e,f({ref:"bound_component"},a,this.state))}}return a.displayName=`BindToChainState(${(0,g.G)(e)})`,a}class Z extends u.Component{render(){return u.createElement("span",{className:"wrapper"},this.props.children(this.props))}}Z=M(Z,{all_props:!0,require_all_props:!0}),M.Wrapper=Z;const I=M},59485:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(112),r=a.n(n),o=a(36964),i=a.n(o),l=a(91684),c=a(76660);const d=({className:e="button",text:t="",tip:a="tooltip.copy_tip",dataPlace:n="right",buttonIcon:o="clippy",buttonText:d="",useDiv:u=!0})=>{const p=s.createElement(i(),{"data-clipboard-text":t,className:e},d||s.createElement(l.Z,{name:o,title:"icons.clippy.copy"}));return s.createElement(c.Tooltip,{placement:n,title:r().translate(a)},u?s.createElement("div",null,p):s.createElement("span",null,p))}},34961:(e,t,a)=>{"use strict";a.d(t,{C:()=>o});var s=a(67294),n=a(45697),r=a.n(n);class o extends s.Component{static propTypes={allowNaN:r().bool};static defaultProps={allowNaN:!1};getNumericEventValue(e){return""==e.target.value||null==e.target.value?"":parseFloat(e.target.value)==e.target.value?e.target.value.trim():parseFloat(e.target.value.trim().replace(/[^\d.-]/g,""))||0}onPaste(e){let t=this.props.allowNaN;var a=e.clipboardData.getData("text"),s=a.match(/\./g);(s?s.length:0)>1&&e.preventDefault(),t||parseFloat(a)==a||e.preventDefault()}onKeyPress(e){if(!e.nativeEvent.ctrlKey){"."===e.key&&""===e.target.value&&(e.target.value="0");var t=e.target.value+e.key,a=t.match(/\./g),s=a?a.length:0;"."===e.key&&s>1&&e.preventDefault(),parseFloat(t)!=t&&e.preventDefault(),this.props.onKeyPress&&this.props.onKeyPress(e)}}}},73556:(e,t,a)=>{"use strict";a.d(t,{Z:()=>k});var s=a(13973),n=a(67294),r=a(43393),o=a.n(r),i=a(112),l=a.n(i),c=a(52521),d=a(45697),u=a.n(d),p=a(76660),h=a(554),m=a(30806),g=a(6394),b=a(80563),f=a(89449),y=a(39014),_=a(81237);class w extends n.Component{static propTypes={defaultFeeAsset:u().any,transaction:u().any,assets:u().any,label:u().string,onChange:u().func,account:u().any,tabIndex:u().number,disabled:u().bool};static defaultProps={label:"transfer.fee",disabled:!1};constructor(e){super(e),this.state={feeAsset:e.defaultFeeAsset,calculatedFeeAmount:null,assets:null,assetsLoading:!1,isModalVisible:!1,error:null}}async _calculateFee(e=null){const{account:t,transaction:a}=this.props,s=null==e;e||(e=this.state.feeAsset);const n="string"==typeof e?e:e.get("id");try{const{fee:e,hasPoolBalance:r}=await(0,_.rX)({...a,accountID:t.get("id"),feeID:n});return s&&this.setState({calculatedFeeAmount:e.getAmount({real:!0}),error:!r&&{key:"noPoolBalanceShort",tooltip:"noPoolBalance"}},(()=>{this.props.onChange&&this.props.onChange(e)})),{fee:e,hasPoolBalance:r}}catch(e){throw s&&this.setState({calculatedFeeAmount:0,error:{key:"unknown"}}),console.error(e),e}}_accountChanges(e,t){return t.account&&(!e.account||t.account.get("id")!==e.account.get("id"))}_feeNeedCalculation(e,t,a,s){const n=this._accountChanges(e,t),r=t.transaction&&JSON.stringify(t.transaction)!==JSON.stringify(e.transaction),o=s.feeAsset&&(!a.feeAsset||s.feeAsset.get("id")!==a.feeAsset.get("id"));return t.account&&t.transaction&&s.feeAsset&&(n||r||o)}shouldComponentUpdate(e,t){if(t.assets){if(!this.state.assets)return!0;if(t.assets.length!==this.state.assets.length)return!0}return this._feeNeedCalculation(this.props,e,this.state,t)||t.calculatedFeeAmount!==this.state.calculatedFeeAmount||t.assetsLoading!==this.state.assetsLoading||t.isModalVisible!==this.state.isModalVisible||t.error!==this.state.error}_getAsset(){const{assets:e,feeAsset:t}=this.state;return t||(e&&e.length>0?e[0]:null)}_getSelectableAssets(){return this.state.assets?this.state.assets:[this._getAsset().get("symbol")]}async _syncAvailableAssets(e,t=this.props.account){if(this.state.assets)return this.state.assets;this.setState({assetsLoading:!0});let a=[this._getAsset().get("id")];const n=t.get("balances").toJS(),r=Object.keys(n).sort(s.Z.sortID);for(let e,t=0;e=r[t];t++){const t=await(0,m.FetchChain)("getObject",n[e]);try{const n=await this._calculateFee(e);t&&t.get("balance")>=n.fee.getAmount()&&!a.includes(e)&&(a.push(e),a=a.sort(s.Z.sortID),this.setState({assets:a}))}catch(e){}}this.setState({assetsLoading:!1})}componentDidMount(){this._feeNeedCalculation({},this.props,{},this.state)&&this._calculateFee()}componentDidUpdate(e,t){this._accountChanges(e,this.props)&&this.setState({assets:null}),this._feeNeedCalculation(e,this.props,t,this.state)&&this._calculateFee()}UNSAFE_componentWillReceiveProps(e,t){}async onAssetChange(e){const t=await(0,m.FetchChain)("getAsset",e);this.setState({feeAsset:t},this._calculateFee.bind(this))}render(){const e=this._getAsset();let t=this.state.error?l().translate("transfer.errors."+this.state.error.key):this.state.calculatedFeeAmount;const a=this.props.label?n.createElement("div",{className:"amount-selector-field--label"},l().translate(this.props.label),this.state.error&&this.state.error.tooltip&&n.createElement(p.Tooltip,{title:l().translate("transfer.errors."+this.state.error.tooltip)},"  ",n.createElement(p.Icon,{type:"question-circle"}))):null,s=!this.props.disabled&&!!this.props.account,r=n.createElement(p.Tooltip,{title:l().translate("settings.change_default_fee_asset_tooltip"),mouseEnterDelay:.5},n.createElement(p.Button,{type:"secondary",style:{right:"-12px"},onClick:this.openSetDefaultAssetModal.bind(this),disabled:!s},l().translate("settings.change_default"))),i=this._getSelectableAssets();return n.createElement("div",null,n.createElement(p.Form.Item,{label:a,style:{...this.props.style,margin:"0 0 0 0"},className:"amount-selector-field"},n.createElement(p.Input.Group,{compact:!0},n.createElement(p.Input,{style:{width:"calc(100% - 130px)"},disabled:!0,value:t||"",tabIndex:this.props.tabIndex,suffix:this.state.error?r:void 0}),n.createElement(h.Z,{loading:this.state.assetsLoading,onDropdownVisibleChange:this._syncAvailableAssets.bind(this),style:{width:"130px"},selectStyle:{width:"100%"},value:e.get("symbol"),assets:s?o().List(i):[],onChange:this.onAssetChange.bind(this)}))),this.state.isModalVisible&&n.createElement(g.Z,{className:"modal",show:this.state.isModalVisible,currentAccount:this.props.account,asset_types:void 0,displayFees:!0,forceDefault:!1,current_asset:e.get("id"),onChange:this.onAssetChange.bind(this),close:()=>{this.setState({isModalVisible:!1})}}))}openSetDefaultAssetModal(){this.setState({isModalVisible:!0})}}w=(0,b.ZP)(w,150,{leading:!1}),w=(0,c.Z)(w,{propNames:["defaultFeeAsset"]});const k=(0,f.$)(w,{listenTo:()=>[y.Z],getProps:()=>({defaultFeeAsset:y.Z.getState().settings.get("fee_asset")||"1.3.0"})})},21019:(e,t,a)=>{"use strict";a.d(t,{Z:()=>w});var s=a(67294),n=a(62254),r=a(13973),o=a(7581),i=a(45697),l=a.n(i),c=a(76660),d=a(21660),u=a(99349),p=a(2262),h=a(30806),m=a(52521),g=a(82267),b=a(23037);function f(){return f=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>S});var s=a(67294),n=a(62254),r=a(13973),o=a(52521),i=a(59851),l=a(39014),c=a(55294),d=a(27608),u=a.n(d),p=a(58074),h=a.n(p),m=a(99349),g=a(2262),b=a(5833),f=a(74366),y=a(45697),_=a.n(y),w=a(5977),k=a(76660),v=a(22463),A=a(73727);function E(){return E=Object.assign||function(e){for(var t=1;tl.Z.getState().marketDirections}},s.createElement(x,this.props))}}},21660:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(56855),n=a(67294),r=a(112),o=a.n(r),i=a(13973),l=a(5977),c=a(45697),d=a.n(c);let u=a(21175),p={};class h extends n.PureComponent{static propTypes={path:d().string.isRequired,section:d().string};static defaultProps={hide_issuer:"false"};constructor(e){super(e),window._onClickLink=this.onClickLink.bind(this)}UNSAFE_componentWillMount(){let e=this.props.locale||o().getLocale()||"en";u.keys().filter((t=>-1!==t.indexOf(`/${e}/`)||-1!==t.indexOf("/en/"))).forEach((function(e){var t=e.match(/\/(.+?)\/(.+)\./);let a=t[1],n=t[2],r=p[a];r||(p[a]=r={});let o=u(e).default;r[n]=function(e){let t=e.split(/\[#\s?(.+?)\s?\]/);if(1===t.length)return t[0];t[0].length<4&&t.splice(0,1);for(let e=t.length-1;e>=1;e-=2)t[e]=t[e].replace(/(^<\/p>|

    $)/g,""),t[e-1]=[t[e-1],t[e]],t.splice(e,1);return(0,s.Z)(t)}(o.replace(/\{if(0===(t=i.Z.sanitize(t)).indexOf("#/"))return`e&&"#"!==e));if(0===t.length)return!1;let a="/"+t.join("/");return this.props.history.push(a),!1}setVars(e,t){return"true"==t&&(e=e.replace(/

    [^<]*{issuer}[^<]*<\/p>/gm,"")),e.replace(/(\{.+?\})/gi,((e,t)=>{let a=t.substr(1,t.length-2),s=void 0!==this.props[a]?this.props[a]:t;return s&&"string"==typeof s&&(s=i.Z.sanitize(s)),s.amount&&s.asset&&(s=i.Z.format_asset(s.amount,s.asset,!1,!1)),s.date&&(s=i.Z.format_date(s.date)),s.time&&(s=i.Z.format_time(s.time)),s}))}render(){let e=this.props.locale||o().getLocale()||"en";p[e]||(console.error(`missing locale '${e}' help files, rolling back to 'en'`),e="en");let t=p[e][this.props.path];if(!t&&this.props.alt_path&&(console.warn(`missing path '${this.props.path}' for locale '${e}' help files, rolling back to alt_path '${this.props.alt_path}'`),t=p[e][this.props.alt_path]),t||"en"===e||(console.warn(`missing path '${this.props.path}' for locale '${e}' help files, rolling back to 'en'`),t=p.en[this.props.path]),!t&&this.props.alt_path&&"en"!=e&&(console.warn(`missing alt_path '${this.props.alt_path}' for locale '${e}' help files, rolling back to 'en'`),t=p.en[this.props.alt_path]),!t)return console.error(`help file not found '${this.props.path}' for locale '${e}'`),!0;if(this.props.section)for(let e in t)if(e.match(this.props.section)){t=e.replace(new RegExp("^"+this.props.section+","),"");break}return t?"object"==typeof t?(console.error(`help section content invalid ${this.props.path}#${this.props.section}`),null):n.createElement("div",{style:this.props.style,className:"help-content",dangerouslySetInnerHTML:{__html:this.setVars(t,this.props.hide_issuer)}}):(console.error(`help section not found ${this.props.path}#${this.props.section}`),null)}}const m=(0,l.EN)(h)},3841:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(73727),r=a(23037),o=a(82267),i=a(45697),l=a.n(i);class c extends s.Component{static propTypes={account:r.Z.ChainAccountName.isRequired,subpage:l().string.isRequired,maxDisplayAccountNameLength:l().number};static defaultProps={subpage:"overview",autosubscribe:!1,maxDisplayAccountNameLength:20};shouldComponentUpdate(e){return e.account!==this.props.account}render(){let e=this.props.account;if(!e)return s.createElement("span",null,this.props.account.get("id"));const t=this.props.maxDisplayAccountNameLength>0?20:1/0;return this.props.noLink?s.createElement("span",null,e.substr(0,t),e.length>t?"...":null):s.createElement(n.rU,{onClick:this.props.onClick?this.props.onClick:()=>{},to:`/account/${e}/${this.props.subpage}/`},e.substr(0,t),e.length>t?"...":null)}}const d=(0,o.Z)(c,{autosubscribe:!1})},38715:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(73727),r=a(52521),o=a(99349);class i extends s.Component{render(){const e=this.props.asset.get("symbol"),t=s.createElement(o.Z,{name:e,noTip:!0});return this.props.noLink?t:s.createElement(n.rU,{to:`/asset/${e}/`},t)}}const l=(0,r.Z)(i)},24265:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(22463),r=a(5833),o=a(13973);class i extends s.Component{constructor(){super(),this.fromStatsIntervals={},this.directStatsIntervals={},this.toStatsInterval=null}_statsChanged(e={},t={}){return!(!e.price||t.price&&e.volumeBase===t.volumeBase&&e.price.equals(t.price))}_useDirectMarket(e){const{fromAsset:t,toAsset:a,allMarketStats:s}=e;if(!t)return!1;const{marketName:n}=r.Z.getMarketName(a,t),o=s.get(n);return!o||0!==o.volumeBase}_checkDirectMarkets(e){let{fromAssets:t,fromAsset:a,toAsset:s,allMarketStats:n}=e;return!t&&a&&(t=[a]),t.filter((e=>!!e)).map((e=>this._useDirectMarket({fromAsset:e,toAsset:s,allMarketStats:n})?e.get("symbol"):null)).filter((e=>!!e))}UNSAFE_componentWillMount(){this._startUpdates(this.props)}UNSAFE_componentWillReceiveProps(e){const t=this._checkDirectMarkets(this.props),a=this._checkDirectMarkets(e);o.Z.are_equal_shallow(t,a)||this._startUpdates(e),e.toAsset&&this.props.asset&&this.props.toAsset.get("symbol")!==e.asset.get("symbol")&&this._startUpdates(e)}_startUpdates(e){if(this.updatesTimer)return;this.updatesTimer=setTimeout((()=>{this.updatesTimer=null}),1e4);let{coreAsset:t,fromAssets:a,fromAsset:s,toAsset:o}=e;!a&&s&&(a=[s]);let i=a.map((t=>{let{marketName:a}=r.Z.getMarketName(e.toAsset,t),s=this._useDirectMarket({toAsset:o,fromAsset:t,allMarketStats:e.allMarketStats});return s&&o&&o.get("id")!==t.get("id")&&(this.directStatsIntervals[a]||setTimeout((()=>{this.directStatsIntervals[a]=n.Z.getMarketStatsInterval(3e5,t,o)}),50)),s?a:null})).filter((e=>!!e)),l=a.filter((t=>{let{marketName:a}=r.Z.getMarketName(e.toAsset,t);return-1===i.indexOf(a)}));t&&l.length&&(l.forEach((e=>{if(e&&e.get("id")!==t.get("id")){let{marketName:a}=r.Z.getMarketName(t,e);this.fromStatsIntervals[a]||setTimeout((()=>{this.fromStatsIntervals[a]=n.Z.getMarketStatsInterval(3e5,t,e)}),50)}})),e.toAsset.get("id")!==t.get("id")&&(this.toStatsInterval=n.Z.getMarketStatsInterval(3e5,t,e.toAsset)))}_stopUpdates(){for(let e in this.fromStatsIntervals)this.fromStatsIntervals[e](),delete this.fromStatsIntervals[e];for(let e in this.directStatsIntervals)this.directStatsIntervals[e](),delete this.directStatsIntervals[e];this.toStatsInterval&&this.toStatsInterval(),this.toStatsInterval=null}componentWillUnmount(){this._stopUpdates()}shouldComponentUpdate(e){let{fromAsset:t,fromAssets:a}=this.props;const{marketName:s}=r.Z.getMarketName(e.toAsset,e.coreAsset);function n(e,t){return e.map((e=>{if(!e)return null;const{marketName:a}=r.Z.getMarketName(e,t);return a})).filter((e=>!!e))}!a&&t&&(a=[t]);const o=n(a,e.toAsset),i=n(a,e.coreAsset).reduce(((t,a)=>t||this._statsChanged(e.allMarketStats.get(a),this.props.allMarketStats.get(a))),!1),l=o.reduce(((t,a)=>t||this._statsChanged(e.allMarketStats.get(a),this.props.allMarketStats.get(a))),!1);return this._statsChanged(e.allMarketStats.get(s),this.props.allMarketStats.get(s))||i||l}}const l=i},86853:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(67294),n=a(92157),r=a(21712),o=a(45697),i=a.n(o),l=a(89449),c=a(39014),d=a(55294),u=a(112),p=a.n(u),h=a(76660);function m(){return m=Object.assign||function(e){for(var t=1;t{if(-1!==t.url.indexOf("fake.automatic-selection"))return;let a=t.region||"Unknown";-1!==t.url.indexOf("127.0.0.1")&&(a=" Localhost"),-1!==t.url.indexOf("testnet")&&(a=" "+a),e[a]||(e[a]={title:a,key:a,value:a,children:[]}),e[a].children.push({title:t.url,key:t.url,value:t.url,item:t})}));const t=Object.values(e).sort(((e,t)=>{let a=r.mk.indexOf(e.title),s=r.mk.indexOf(t.title);return-1!==a&&-1!==s?a>s?1:s>a?-1:0:-1!==a?-1:-1!==s?1:e.title>t.title?-1:t.title>e.title?1:0}));return t.forEach((e=>{e.title=e.title+" ("+e.children.length+")"})),t}onChange=e=>{d.Z.changeSetting({setting:"filteredApiServers",value:e}),this.props.onChange&&this.props.onChange(e)};constructor(e){super(e)}componentDidMount(){}render(){const e={treeData:this.state.treeData,value:this.props.filteredApiServers,onChange:this.onChange,treeCheckable:!0,showCheckedStrategy:g,searchPlaceholder:p().translate("connection.narrow_down_nodes"),size:this.props.size,style:{width:"88%"},key:"nodeSelector",getPopupContainer:e=>document.getElementById("node-selector--drop-down")};return s.createElement(s.Fragment,null,s.createElement("div",{style:{width:"100%",minWidth:"250px"}},s.createElement(n.Z,m({},e,{dropdownPopupAlign:{points:["tl","bl"],offset:[0,4],overflow:!1}})),s.createElement(h.Tooltip,{title:p().translate("connection.narrow_down_nodes_tooltip")},s.createElement(h.Icon,{style:{fontSize:"1.3rem",marginLeft:"0.5rem",marginTop:"0.3rem"},type:"question-circle"})),s.createElement("div",{id:"node-selector--drop-down",className:"node-selector--drop-down"})))}}const f=b=(0,l.$)(b,{listenTo:()=>[c.Z],getProps:()=>({filteredApiServers:c.Z.getState().settings.get("filteredApiServers",[])})})},2262:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(67294),n=a(73935),r=a(94184),o=a.n(r);class i extends s.Component{constructor(){super(),this.state={value:null,pulse:""}}UNSAFE_componentWillReceiveProps(e){this.update(e)}UNSAFE_componentWillMount(){this.update(this.props)}compare(e,t){return e===t?null:t>e?"green":"red"}update(e){let t=this.state.value,a=e.value,s=e.compareFunction||this.compare;if(null===t||null===a)return void this.setState({value:a,pulse:""});let r=s(t,a);null===r?this.setState({value:a}):this.setState({value:a,pulse:""},(()=>{(0,n.findDOMNode)(this).offsetHeight,this.setState({pulse:r})}))}render(){let{pulse:e,value:t}=this.state,{children:a,reverse:n,fill:r}=this.props;return a||(a=t),e?(r=r||"none",s.createElement("span",{className:o()("pulsate",e,{reverse:n}),style:{animationFillMode:r}},a)):s.createElement("span",null,a)}}const l=i},80314:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(67294),n=a(62254),r=a(30806),o=a(45697),i=a.n(o),l=a(76660);class c extends s.Component{static propTypes={time:i().any.isRequired,chain_time:i().bool,component:i().element,className:i().string};static defaultProps={chain_time:!0};shouldComponentUpdate(e){return e.time!==this.props.time}render(){let{time:e,chain_time:t}=this.props;var a=t?r.ChainStore.getEstimatedChainTimeOffset():0;if(!e)return null;"string"!=typeof e||-1!==e.indexOf("+")||/Z$/.test(e)||(e+="Z");let o,i=Math.round(((new Date).getTime()-new Date(e).getTime()+a)/1e3);return o=i<60?500:i<3600?3e4:18e5,s.createElement(l.Tooltip,{placement:"bottom",title:new Date(e).toString()},s.createElement("span",{className:"tooltip inline-block "+this.props.className,ref:"timeago_ttip_"+e},s.createElement(n.yJ,{updateInterval:o,value:new Date(e).getTime()+.75*a,initialNow:Date.now()})))}}const d=c},68555:(e,t,a)=>{"use strict";a.d(t,{Z:()=>T});var s=a(67294),n=a(21019),r=a(23037),o=a(82267),i=a(13973),l=a(5833),c=a(30806),d=a(89449),u=a(12326),p=a(39014),h=a(43393),m=a(58074),g=a.n(m),b=a(112),f=a.n(b),y=a(24265),_=a(52521),w=a(45697),k=a.n(w),v=a(76660);function A(){return A=Object.assign||function(e){for(var t=1;t{e&&(h[e.get("id")]=e)}));let m=0,b={};for(let e in o){let a=h[e];if(a){let s=this._convertValue(o[e],a,t,r,p);m+=s,b=this._assetValues(b,s,a.get("id"))}}for(let e in d){let a=h[e];if(a){let s=this._convertValue(d[e],a,t,r,p);m+=s,b=this._assetValues(b,s,a.get("id"))}}for(let e in l){let a=h[e];if(a){let s=this._convertValue(l[e],a,t,r,p);m-=s,b=this._assetValues(b,-s,a.get("id"))}}a.forEach((e=>{let a=h[e.asset_id];if(a){let s=a!==t?this._convertValue(e.amount,a,t,r,p):e.amount;m+=s,b=this._assetValues(b,s,a.get("id"))}}));let y=!1;for(let e in b)if(h[e]&&b[e]&&Math.abs(i.Z.get_asset_amount(b[e],t))<100){y=!0;break}const _="**";let w=!1,k="";for(let e in b)if(h[e]&&b[e]){let a=h[e].get("symbol"),s=i.Z.get_asset_amount(b[e],t);s?s<1e-12&&s>-1e-12?(s=_,w=!0):s=y?s>=0&&s<.01?"<0.01":s<0&&s>-.01?"-0.01<":i.Z.format_number(s,2):s>=0&&s<1?"<1":s<0&&s>-.01?"-1<":i.Z.format_number(s,0):(s=_,w=!0),k+=``}return w&&(k+=``),k+='',k+=``,k+="
    ${a}: ${s} ${t.get("symbol")}
     ${_} no data
     
    ${f().translate("account.total_estimate")}
    ",u?s.createElement(v.Tooltip,{placement:"bottom",title:k},s.createElement("div",{className:"tooltip inline-block"},this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null,s.createElement(n.Z,{noTip:!0,noPrefix:!0,hide_asset:this.props.hide_asset,amount:m,asset:t.get("id"),decimalOffset:-1===t.get("symbol").indexOf("BTC")?t.get("precision")-2:4}))):s.createElement("span",null,this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null,s.createElement(n.Z,{noTip:this.props.noTip,noPrefix:!0,hide_asset:this.props.hide_asset,amount:m,asset:t.get("id"),decimalOffset:-1===t.get("symbol").indexOf("BTC")?t.get("precision")-2:4}))}}E=(0,o.Z)(E),E=(0,_.Z)(E,{propNames:["fromAssets"],asList:!0});class x extends s.Component{render(){let e=this.props.settings.get("unit")?this.props.settings.get("unit"):"1.3.0";return s.createElement(E,A({},this.props,{toAsset:e}))}}x=(0,d.$)(x,{listenTo:()=>[u.Z,p.Z],getProps:()=>({allMarketStats:u.Z.getState().allMarketStats,settings:p.Z.getState().settings})});class S extends s.Component{static propTypes={balances:r.Z.ChainObjectsList};static defaultProps={collateral:{},debt:{},openOrders:{}};render(){let{balances:e,collateral:t,debt:a,openOrders:n,inHeader:r}=this.props,o=(0,h.List)(),i=[];e.forEach((e=>{e&&(o=o.push(e.get("asset_type")),i.push({asset_id:e.get("asset_type"),amount:parseInt(e.get("balance"),10)}))}));for(let e in t)o.includes(e)||(o=o.push(e));for(let e in a)o.includes(e)||(o=o.push(e));for(let e in n)o.includes(e)||(o=o.push(e));return s.createElement(x,{label:this.props.label,hide_asset:this.props.hide_asset,noTip:this.props.noTip,inHeader:r,balances:i,openOrders:n,debt:a,collateral:t,fromAssets:o})}}S=(0,o.Z)(S);class C extends s.Component{static propTypes={accounts:r.Z.ChainAccountsList.isRequired};shouldComponentUpdate(e){return!i.Z.are_equal_shallow(e.accounts,this.props.accounts)||!i.Z.are_equal_shallow(e.hiddenAssets.toJS(),this.props.hiddenAssets.toJS())}render(){let e=(0,h.List)(),t={},a={},n={};return this.props.accounts.forEach((s=>{if(s){s.get("orders")&&s.get("orders").forEach(((e,t)=>{let a=c.ChainStore.getObject(e);if(a){let e=a.getIn(["sell_price","base","asset_id"]);n[e]?n[e]+=parseInt(a.get("for_sale"),10):n[e]=parseInt(a.get("for_sale"),10)}})),s.get("call_orders")&&s.get("call_orders").forEach(((e,s)=>{let n=c.ChainStore.getObject(e);if(n){let e=n.getIn(["call_price","base","asset_id"]);t[e]?t[e]+=parseInt(n.get("collateral"),10):t[e]=parseInt(n.get("collateral"),10);let s=n.getIn(["call_price","quote","asset_id"]);a[s]?a[s]+=parseInt(n.get("debt"),10):a[s]=parseInt(n.get("debt"),10)}}));let r=s.get("balances");r&&r.forEach(((t,a)=>{if(this.props.hiddenAssets.includes(a))return null;let s=c.ChainStore.getObject(t);if(!s||!s.get("balance"))return null;e=e.push(t)}))}})),e.size||Object.keys(n).length||Object.keys(a).length?s.createElement(S,A({},this.props,{balances:e,openOrders:n,debt:a,collateral:t})):s.createElement("span",null,this.props.label?s.createElement("span",{className:"font-secondary"},s.createElement(g(),{content:this.props.label}),":"," "):null," ","0")}}C=(0,o.Z)(C),S.AccountWrapper=C;const T=S},58466:(e,t,a)=>{"use strict";a.d(t,{Z:()=>b});var s=a(67294),n=a(112),r=a.n(n),o=a(13973),i=a(3841),l=a(38715),c=a(73727),d=a(21019),u=a(33951),p=a(99349),h=a(58074),m=a.n(h),g=a(91684);class b extends s.Component{shouldComponentUpdate(e){return!o.Z.are_equal_shallow(e.keys,this.props.keys)}linkToAccount(e){const{noLink:t}=this.props;return e?o.Z.is_object_id(e)?s.createElement(i.Z,{account:e,noLink:t}):t?s.createElement("span",null,e):s.createElement(c.rU,{to:`/account/${e}/overview`},e):s.createElement("span",null,"-")}linkToAsset(e){const{noLink:t,noTip:a}=this.props;return e?o.Z.is_object_id(e)?s.createElement(l.Z,{asset:e,noLink:t}):t?s.createElement(p.Z,{name:e,dataPlace:"top",noTip:a}):s.createElement(c.rU,{to:`/asset/${e}`},s.createElement(p.Z,{name:e,dataPlace:"top",noTip:a})):s.createElement("span",null,"-")}render(){let{string:e,params:t,keys:a}=this.props,n=r().translate(e,t),i=o.Z.get_translation_parts(n);a.forEach((e=>{if(i.indexOf(e.arg)){let t;switch(e.type){case"account":t=this.linkToAccount(e.value);break;case"amount":t=s.createElement("span",null,s.createElement(d.Z,{amount:e.value.amount,asset:e.value.asset_id,decimalOffset:e.decimalOffset,hide_asset:!0})," ",this.linkToAsset(e.value.asset_id));break;case"price":t=s.createElement(u.Z,{base_asset:e.value.base.asset_id,base_amount:e.value.base.amount,quote_asset:e.value.quote.asset_id,quote_amount:e.value.quote.amount});break;case"asset":t=this.linkToAsset(e.value);break;case"translate":t=s.createElement(m(),{content:e.value});break;case"link":t=s.createElement(c.rU,{to:e.value,"data-intro":e.dataIntro?e.dataIntro:null},s.createElement(m(),{content:e.translation}));break;case"icon":let a=name.replace("-","_");t=s.createElement(g.Z,{className:e.className,name:e.value,title:a});break;case"change":if(e.value&&Object.keys(e.value).length>0){const{votes:a,active:n,owner:o,memo:i}=e.value,l=a&&s.createElement("div",null,s.createElement(m(),{content:"proposal.votes"}),a.minus.length?s.createElement("div",null,"- "+r().translate("proposal.remove")+" "," ",a.minus.join(", ")):null,a.plus.length?s.createElement("div",null,"- "+r().translate("proposal.add")+" "," ",a.plus.join(", ")):null),c=(n||o||i)&&s.createElement("div",null,s.createElement(m(),{content:"proposal.permission_changes"}),", ",s.createElement(m(),{style:{color:"red"},content:"proposal.danger_operation"}),"!"),d=n&&s.createElement(s.Fragment,null,s.createElement(m(),{content:"proposal.changes_to_active"}),s.createElement("div",{style:{marginLeft:"0.5rem"}},(n.keys.plus.length>0||n.accounts.plus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.add")+" ",n.keys.plus.join(", "),n.keys.plus.length>0&&n.accounts.plus.length>0&&", ",n.accounts.plus.length>0?n.accounts.plus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),(n.keys.minus.length>0||n.accounts.minus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.remove")+" ",n.keys.minus.join(", "),n.keys.minus.length>0&&n.accounts.minus.length>0&&", ",n.accounts.minus.length>0?n.accounts.minus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),n.weight_threshold&&s.createElement("div",null,"- "+r().translate("proposal.set_threshold",{threshold:n.weight_threshold})))),u=o&&s.createElement(s.Fragment,null,s.createElement(m(),{content:"proposal.changes_to_owner"}),s.createElement("div",{style:{marginLeft:"0.5rem"}},(o.keys.plus.length>0||o.accounts.plus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.add")+" ",o.keys.plus.join(", "),o.keys.plus.length>0&&o.accounts.plus.length>0&&", ",o.accounts.plus.length>0?o.accounts.plus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),(o.keys.minus.length>0||o.accounts.minus.length>0)&&s.createElement("div",null,"- "+r().translate("proposal.remove")+" ",o.keys.minus.join(", "),o.keys.minus.length>0&&o.accounts.minus.length>0&&", ",o.accounts.minus.length>0?o.accounts.minus.map((e=>s.createElement("span",{key:e},this.linkToAccount(e)))).reduce(((e,t)=>[e,", ",t])):""),o.weight_threshold&&s.createElement("div",null,"- "+r().translate("proposal.set_threshold",{threshold:o.weight_threshold})))),p=i&&(i.keys.plus.length>0||i.keys.minus.length>0)&&s.createElement("div",null,s.createElement(m(),{content:"proposal.changes_to_memo"}),i.keys.plus.length>0&&s.createElement("div",null," ","+ ",i.keys.plus.join(", ")),i.keys.minus.length>0&&s.createElement("div",null," ","- ",i.keys.minus.join(", ")));t=s.createElement("div",{style:{marginLeft:"0.5rem",marginTop:"0.5rem"}},c,l,d,u,p)}else t="";break;case"date":t=null===e.value?"-":r().localize(e.value,{type:"date",format:"full"});break;default:t=e.value}i[i.indexOf(e.arg)]=t}}));let l=i.map(((e,t)=>s.createElement("span",{key:t},e)));return s.createElement("span",null,l)}}},81038:(e,t,a)=>{"use strict";a.d(t,{UW:()=>B,Yy:()=>x,aQ:()=>S});var s=a(67294),n=a(45697),r=a.n(n),o=a(73727),i=a(62254),l=a(89449),c=a(28969),d=a(39238),u=a(53299),p=a(41075),h=a(40678),m=a(78598),g=a(58074),b=a.n(g),f=a(30806),y=a(55294),_=a(96628),w=a(60567),k=a(76660),v=a(112),A=a.n(v);const E={listenTo:()=>[d.Z,u.Z],getProps:()=>({wallet:d.Z.getState(),backup:u.Z.getState()})};class x extends s.Component{render(){return s.createElement("div",{style:{maxWidth:"40rem"}},s.createElement(z,{noText:this.props.noText,newAccount:this.props.location&&this.props.location.query?this.props.location.query.newAccount:null},s.createElement(M,null),this.props.noText?null:s.createElement(I,null),s.createElement(B,{downloadCb:this.props.downloadCb})))}}x=(0,l.$)(x,E);class S extends s.Component{constructor(){super(),this.state={newWalletName:null}}UNSAFE_componentWillMount(){h.ZP.reset()}render(){let e=this.props.wallet.new_wallet;this.props.wallet.wallet_names.has(e);const t=s.createElement(o.rU,{to:"/help/introduction/wallets"},A().translate("wallet.wallet_types")),a=s.createElement(o.rU,{to:"/help/introduction/backups"},A().translate("wallet.backup_types"));return s.createElement("div",null,s.createElement(b(),{style:{textAlign:"left",maxWidth:"30rem"},component:"p",content:"wallet.import_backup_choose"}),s.createElement(b(),{className:"text-left",component:"p",wallet:t,backup:a,content:"wallet.read_more"}),(new FileReader).readAsBinaryString?null:s.createElement("p",{className:"error"},"Warning! You browser doesn't support some some file operations required to restore backup, we recommend you to use Chrome or Firefox browsers to restore your backup."),s.createElement(N,null,s.createElement(M,null),s.createElement(Z,{saveWalletObject:!0},s.createElement(T,null,s.createElement(C,null)))),s.createElement("br",null),s.createElement(o.rU,{to:"/"},s.createElement(k.Button,null,s.createElement(b(),{content:"wallet.back"}))))}}S=(0,l.$)(S,E);class C extends s.Component{constructor(){super(),this.state={}}isRestored(){let e=this.props.wallet.new_wallet;return this.props.wallet.wallet_names.has(e)}render(){let e=this.props.wallet.new_wallet;return this.isRestored()?s.createElement("span",null,s.createElement("h5",null,s.createElement(b(),{content:"wallet.restore_success",name:e.toUpperCase()})),s.createElement(o.rU,{to:"/"},s.createElement(k.Button,{type:"primary"},s.createElement(b(),{component:"span",content:"header.dashboard"}))),s.createElement("div",null,this.props.children)):s.createElement("span",null,s.createElement("h3",null,s.createElement(b(),{content:"wallet.ready_to_restore"})),s.createElement(k.Button,{type:"primary",onClick:this.onRestore.bind(this)},s.createElement(b(),{content:"wallet.restore_wallet_of",name:e})))}onRestore(){c.Z.restore(this.props.wallet.new_wallet,this.props.backup.wallet_object),y.Z.changeSetting({setting:"passwordLogin",value:!1})}}C=(0,l.$)(C,E);class T extends s.Component{constructor(){super(),this.state={new_wallet:null,accept:!1}}UNSAFE_componentWillMount(){let e=!!this.props.wallet.current_wallet;if(!e){let e="default";this.props.backup.name&&(e=this.props.backup.name.match(/[a-z0-9_-]*/)[0]),d.Z.setNewWallet(e),this.setState({accept:!0})}if(e&&this.props.backup.name&&!this.state.new_wallet){let e=this.props.backup.name.toLowerCase().match(/[a-z0-9_-]*/)[0];e&&this.setState({new_wallet:e})}}render(){if(this.state.accept)return s.createElement("span",null,this.props.children);let e=!!this.state.new_wallet,t=!!e&&this.props.wallet.wallet_names.has(this.state.new_wallet),a=!t&&e;return s.createElement("form",{onSubmit:this.onAccept.bind(this)},s.createElement("h5",null,s.createElement(b(),{content:"wallet.new_wallet_name"})),s.createElement(k.Input,{type:"text",id:"new_wallet",onChange:this.formChange.bind(this),value:this.state.new_wallet}),s.createElement("p",null,t?s.createElement(b(),{content:"wallet.wallet_exist"}):null),s.createElement(k.Button,{onClick:this.onAccept.bind(this),type:"primary",disabled:!a},s.createElement(b(),{content:"wallet.accept"})))}onAccept(e){e&&e.preventDefault(),this.setState({accept:!0}),d.Z.setNewWallet(this.state.new_wallet)}formChange(e){let t=e.target.id,a=e.target.value;if("new_wallet"===t&&(a=a.toLowerCase(),/[^a-z0-9_-]/.test(a)))return;let s={};s[t]=a,this.setState(s)}}T=(0,l.$)(T,E);class B extends s.Component{UNSAFE_componentWillMount(){try{this.isFileSaverSupported=!!new Blob}catch(e){}}componentDidMount(){this.isFileSaverSupported||k.Notification.error({message:A().translate("notifications.backup_file_save_unsupported")}),this.props.confirmation&&this.createBackup()}getBackupName(){return(0,_.a)(this.props.wallet.current_wallet)}createBackup(){const e=p.Z.getWallet().password_pubkey;(0,h.D$)(e).then((e=>{const t=this.getBackupName();h.ZP.incommingBuffer({name:t,contents:e})}))}render(){let e=!0;return this.props.confirmation&&(e=this.props.checkboxActive),s.createElement(k.Button,{type:"primary",disabled:!e,onClick:()=>{this.onDownload()},style:this.props.confirmation?{height:"initial",padding:0}:{}},this.props.confirmation?s.createElement("div",{className:"download-block",style:{padding:"1.25rem"}},s.createElement("img",{className:"bin-img",src:"/bin-file/default.svg",alt:"bin"}),s.createElement("span",{className:"text-left"},s.createElement(b(),{className:"download-text",content:"registration.downloadFile"}),s.createElement("p",{className:"file-name",style:{marginBottom:0}},this.props.backup.name))):s.createElement(b(),{content:"wallet.download"}))}onDownload(){const e=new Blob([this.props.backup.contents],{type:"application/octet-stream; charset=us-ascii"});if(e.size!==this.props.backup.size)throw new Error("Invalid backup to download conversion");(0,m.saveAs)(e,this.props.backup.name),c.Z.setBackupDate(),this.props.downloadCb&&this.props.downloadCb()}}B=(0,l.$)(B,E);class z extends s.Component{getBackupName(){return(0,_.a)(this.props.wallet.current_wallet)}render(){if(this.props.backup.contents)return s.createElement("div",null,this.props.children);let e=null!=p.Z.getWallet();return s.createElement("div",null,this.props.noText?null:s.createElement("div",{style:{textAlign:"left"}},this.props.newAccount?s.createElement(b(),{component:"p",content:"wallet.backup_new_account",wallet_name:(0,w.w)()}):null,s.createElement(b(),{component:"p",content:"wallet.backup_explain"})),s.createElement(k.Button,{type:"primary",onClick:this.onCreateBackup.bind(this),style:{marginBottom:10},disabled:!e},s.createElement(b(),{content:"wallet.create_backup_of",name:this.props.wallet.current_wallet})),s.createElement(P,null))}onCreateBackup(){let e=p.Z.getWallet().password_pubkey;(0,h.D$)(e).then((e=>{let t=this.getBackupName();h.ZP.incommingBuffer({name:t,contents:e})}))}}z=(0,l.$)(z,E);class P extends s.Component{render(){if(!p.Z.getWallet())return null;let e=p.Z.getWallet().backup_date,t=p.Z.getWallet().last_modified,a=e?s.createElement("h4",null,s.createElement(b(),{content:"wallet.last_backup"})," ",s.createElement(i.Ji,{value:e})):s.createElement(b(),{style:{paddingTop:20},className:"facolor-error",component:"p",content:"wallet.never_backed_up"}),n=null;return e&&(n=t.getTime()>e.getTime()?s.createElement("h4",{className:"facolor-error"},s.createElement(b(),{content:"wallet.need_backup"})):s.createElement("h4",{className:"success"},s.createElement(b(),{content:"wallet.noneed_backup"}))),s.createElement("span",null,a,n)}}class N extends s.Component{reset(){h.ZP.reset()}render(){let e=s.createElement("div",{style:{paddingTop:20}},s.createElement(k.Button,{disabled:!this.props.backup.contents,onClick:this.reset.bind(this)},s.createElement(b(),{content:"wallet.reset"})));if(this.props.backup.contents&&this.props.backup.public_key)return s.createElement("span",null,this.props.children,e);let t=this.props.backup.contents&&!this.props.backup.public_key;return s.createElement("div",null,s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backup_input_file",style:{border:"solid"},onChange:this.onFileUpload.bind(this)}),t?s.createElement("h5",null,s.createElement(b(),{content:"wallet.invalid_format"})):null,e)}onFileUpload(e){let t=e.target.files[0];h.ZP.incommingWebFile(t),this.forceUpdate()}}N=(0,l.$)(N,E);class M extends s.Component{render(){return s.createElement("span",null,s.createElement("h5",null,s.createElement("b",null,this.props.backup.name)," (",this.props.backup.size," ","bytes)"),this.props.backup.last_modified?s.createElement("div",null,this.props.backup.last_modified):null,s.createElement("br",null))}}M=(0,l.$)(M,E);class Z extends s.Component{static propTypes={saveWalletObject:r().bool};constructor(){super(),this.state=this._getInitialState()}_getInitialState(){return{backup_password:"",verified:!1}}render(){return this.state.verified?s.createElement("span",null,this.props.children):s.createElement("form",{onSubmit:this.onPassword.bind(this)},s.createElement("label",null,s.createElement(b(),{content:"wallet.enter_password"})),s.createElement(k.Input,{type:"password",id:"backup_password",onChange:this.formChange.bind(this),value:this.state.backup_password}),s.createElement(I,null),s.createElement(k.Button,{type:"primary",htmlType:"submit",onClick:this.onPassword.bind(this)},s.createElement(b(),{content:"wallet.submit"})))}onPassword(e){e&&e.preventDefault();let t=f.PrivateKey.fromSeed(this.state.backup_password||""),a=this.props.backup.contents;(0,h.ah)(t.toWif(),a).then((e=>{this.setState({verified:!0}),this.props.saveWalletObject&&u.Z.setWalletObjct(e)})).catch((e=>{console.error("Error verifying wallet "+this.props.backup.name,e,e.stack),"invalid_decryption_key"===e?k.Notification.error({message:A().translate("notifications.invalid_password")}):k.Notification.error({message:e})}))}formChange(e){let t={};t[e.target.id]=e.target.value,this.setState(t)}}Z=(0,l.$)(Z,E);class I extends s.Component{render(){return s.createElement("div",{className:"padding no-overflow"},s.createElement("pre",{className:"no-overflow",style:{lineHeight:"1.2"}},this.props.backup.sha1," * SHA1"),s.createElement("br",null))}}I=(0,l.$)(I,E)},66879:(e,t,a)=>{"use strict";a.d(t,{D:()=>P,z:()=>z});var s=a(67294),n=a(73727),r=a(58074),o=a.n(r),i=a(45697),l=a.n(i),c=a(94184),d=a.n(c),u=a(30806),p=a(76660);let h;class m extends s.Component{static propTypes={onChange:l().func.isRequired};constructor(){super(),this.state={brnkey:"",loading:!0}}UNSAFE_componentWillMount(){fetch("dictionary.json").then((e=>e.json().then((e=>{h=new Set(e.en.split(",")),this.setState({loading:!1})})))).catch((e=>{console.log("fetch dictionary error:",e)}))}_checkBrainKey(){let e,t=this.state.brnkey.split(" "),a=[];t.forEach(((e,t)=>{if(""===e)return;let n=e.toLowerCase();n=n.match(/[a-z]+/),null===n||h.has(n[0])?a.push(s.createElement("span",{key:t,style:{padding:"1px",margin:"1px"}},e)):a.push(s.createElement(g,{key:t},e))}));let n=!0,r=!0;return a.length>0&&(this.state.brnkey.length<50?(e=this.state.brnkey.length+" characters (50 minimum)",r=!1):a.length<16?e=a.length+" words (16 recommended)":(e=a.length+" words",n=!1)),{warn:n,valid:r,word_count_label:e,checked_words:a}}render(){if(this.state.loading||!h)return s.createElement("div",{style:{padding:20}},"Fetching dictionary....");let{warn:e,word_count_label:t,checked_words:a}=this._checkBrainKey();return s.createElement("span",{className:""},s.createElement("div",null,s.createElement(p.Input.TextArea,{tabIndex:this.props.tabIndex||1,onChange:this.formChange.bind(this),value:this.state.brnkey,id:"brnkey",style:{height:100,minWidth:450}}),s.createElement("div",{style:{textAlign:"left"},className:"grid-content no-padding no-overflow"},a),this.state.check_digits&&!this.props.hideCheckDigits?s.createElement("div",null,s.createElement("br",null),s.createElement("pre",{className:"no-overflow"},this.state.check_digits," * Check Digits"),s.createElement("br",null)):null,s.createElement("p",null,s.createElement("i",{className:d()({error:e})},t))))}formChange(e){const{id:t,value:a}=e.target;let{valid:s}=this._checkBrainKey();const n={};if(n[t]=a,"brnkey"===t){const e=u.key.normalize_brainKey(a);this.props.onChange(e.length<50?null:e),n.check_digits=e.length<50?null:u.hash.sha1(e).toString("hex").substring(0,4)}this.setState(n),this.props.errorCallback&&this.props.errorCallback(s)}}class g extends s.Component{render(){return s.createElement("span",{style:{borderBottom:"1px dotted #ff0000",padding:"1px",margin:"1px"}},s.createElement("span",{style:{borderBottom:"1px dotted #ff0000"}},this.props.children))}}var b=a(43393),f=a.n(b),y=a(112),_=a.n(y);const w=p.Form.Item;class k extends s.Component{static propTypes={onValid:l().func.isRequired};constructor(){super(),this.state={password:"",confirm:"",errors:f().Map(),valid:!1}}componentDidMount(){this.firstPassword&&this.firstPassword.focus()}getInputNode=e=>{this.firstPassword=e};formChange(e){let t={};t["current-password"===e.target.id?"password":"confirm"]=e.target.value,this.setState(t,this.validate)}validate(e=this.state){let{password:t,confirm:a}=e;a=a.trim(),t=t.trim();let s=f().Map();0!==t.length&&t.length<8&&(s=s.set("password_length","Password must be 8 characters or more")),""!==t&&""!==a&&t!==a&&(s=s.set("password_match","Passwords do not match"));let n=t.length>=8&&t===a;this.setState({errors:s,valid:n}),this.props.onValid(n?t:null)}render(){const{password:e,confirm:t,errors:a}=this.state;let{newPassword:n}=this.props,r=1;return s.createElement("div",{className:d()({"has-error":a.size})},s.createElement(w,{label:_().translate(n?"wallet.new_password":"wallet.password")},s.createElement("section",null,s.createElement(p.Input,{type:"password",id:"current-password",autoComplete:"current-password",ref:this.getInputNode(),onChange:this.formChange.bind(this),value:e,tabIndex:r++}))),s.createElement(w,{label:_().translate(n?"wallet.new_confirm":"wallet.confirm")},s.createElement("section",{className:d()({"has-error":a.size})},s.createElement(p.Input,{type:"password",id:"new-password",autoComplete:"new-password",onChange:this.formChange.bind(this),value:t,tabIndex:r++}),s.createElement("div",null,a.get("password_match")||a.get("password_length")))),this.props.children,s.createElement("br",null))}}var v=a(41075),A=a(39238),E=a(28969),x=a(89449),S=a(55294),C=a(60567);function T(){return T=Object.assign||function(e){for(var t=1;t{e.preventDefault();let{wallet_public_name:t,valid_password:a,custom_brainkey:s,errors:n}=this.state;!a||n.wallet_public_name||s&&!n.validBrainkey||(E.Z.setWallet(t,a,this.state.brnkey),S.Z.changeSetting({setting:"passwordLogin",value:!1}),this.setState({create_submitted:!0}))};formChange=e=>{let t=e.target.id,a=e.target.value;"wallet_public_name"===t&&(a=a.toLowerCase(),/[^a-z0-9_-]/.test(a))||(this.state[t]=a,this.setState(this.state),this.validate())};validate(e=this.state){let t=e.errors,{wallet_names:a}=this.props;t.wallet_public_name=a.has(e.wallet_public_name)?`Wallet ${e.wallet_public_name.toUpperCase()} exists, please change the name`:null;let s=null===t.wallet_public_name&&null!==e.valid_password;e.custom_brainkey&&s&&(s=null!==e.brnkey),this.setState({isValid:s,errors:t})}render(){let e=this.state.errors,t=!!this.props.current_wallet;return this.state.create_submitted&&this.state.wallet_public_name===this.props.current_wallet?s.createElement("div",null,s.createElement("h4",null,s.createElement(o(),{content:"wallet.wallet_created"})),s.createElement(n.rU,{to:"/"},s.createElement("div",{className:"button success"},s.createElement(o(),{content:"wallet.done"})))):s.createElement("div",{className:"wallet-create"},s.createElement(p.Form,{style:{maxWidth:"40rem"},onSubmit:this.onSubmit,onChange:this.formChange,noValidate:!0},s.createElement("div",{className:"grid-content",style:{textAlign:"left"}},this.props.restoreBrainkey?null:s.createElement(s.Fragment,null,s.createElement(o(),{component:"p",content:"wallet.create_importkeys_text"}),s.createElement(o(),{component:"p",content:"wallet.create_text",wallet_name:(0,C.w)()}))),s.createElement(k,{onValid:this.onPassword.bind(this)}),t?s.createElement(p.Form.Item,{label:_().translate("wallet.name")},s.createElement("div",{className:"no-overflow"},s.createElement("section",null,s.createElement(p.Input,{tabIndex:3,type:"text",id:"wallet_public_name",defaultValue:this.state.wallet_public_name}),s.createElement("div",{className:"has-error"},e.wallet_public_name)))):null,s.createElement("div",{className:"no-overflow"},this.state.custom_brainkey?s.createElement("div",null,s.createElement(p.Form.Item,{label:_().translate("wallet.brainkey")},s.createElement(m,{tabIndex:4,onChange:this.onBrainkey.bind(this),errorCallback:e=>{let{errors:t}=this.state;t.validBrainkey=e,this.setState({errors:t})}}))):null,s.createElement(p.Button,{type:"primary",htmlType:"submit",disabled:!this.state.isValid},s.createElement(o(),{content:"wallet.create_wallet"})),s.createElement(p.Button,{onClick:this.onBack.bind(this)},s.createElement(o(),{content:"wallet.cancel"}))),this.state.custom_brainkey?null:s.createElement("div",{style:{paddingTop:20}},s.createElement("label",null,s.createElement("a",{onClick:this.onCustomBrainkey.bind(this)},s.createElement(o(),{content:"wallet.custom_brainkey"}))))))}}B=(0,x.$)(B,{listenTo:()=>[A.Z],getProps:()=>A.Z.getState()});class z extends s.Component{render(){return v.Z.getWallet()&&this.props.children?s.createElement("div",null,this.props.children):s.createElement(B,this.props)}}const P=e=>{const t=s.createElement(n.rU,{to:"/help/introduction/wallets"},_().translate("wallet.wallet_types")),a=s.createElement(n.rU,{to:"/help/introduction/backups"},_().translate("wallet.backup_types"));return e.nested?s.createElement(z,T({restoreBrainkey:!0},e)):s.createElement("div",{className:"grid-container",style:{paddingTop:30}},s.createElement(o(),{content:"settings.backup_brainkey",component:"h3"}),s.createElement(o(),{content:"settings.restore_brainkey_text",component:"p",style:{maxWidth:"40rem"}}),s.createElement(o(),{component:"p",style:{paddingBottom:10},wallet:t,backup:a,content:"wallet.read_more"}),s.createElement(z,T({restoreBrainkey:!0},e)))}},33396:(e,t,a)=>{a(49181),window.Intl?a(10972):Promise.all([a.e(267),a.e(466)]).then((e=>{window.Intl=a(58267),Intl.__addLocaleData(a(30817)),a(10972)}).bind(null,a)).catch(a.oe)},82050:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(57296),n=a(36345),r=a(91507),o=a(55894),i=a(11390),l=a(41075),c=a(28969);let d={};const u=s.Z.createActions(class{accountSearch(e,t=50){let a=`${e}_${t}}`;return s=>{if(!d[a])return d[a]=!0,r.Z.lookupAccounts(e,t).then((t=>{d[a]=!1,s({accounts:t,searchTerm:e})}))}}setCurrentAccount(e){return e}tryToSetCurrentAccount(){return!0}addStarAccount(e){return e}removeStarAccount(e){return e}toggleHideAccount(e,t){return{account:e,hide:t}}transfer(e,t,a,s,r,o=null,l="1.3.0"){l=n.Z.getFinalFeeAsset(o||e,"transfer",l);try{return n=>i.Z.transfer({from_account:e,to_account:t,amount:a,asset:s,memo:r,propose_account:o,fee_asset_id:l}).then((e=>{n(e)}))}catch(e){return console.log("[AccountActions.js:90] ----- transfer error -----\x3e",e),new Promise(((t,a)=>{a(e)}))}}createAccount(e,t,a,s,n){return r=>c.Z.createAccount(e,t,a,s,n).then((()=>(r(e),e)))}createAccountWithPassword(e,t,a,s,n,r){return o=>c.Z.createAccountWithPassword(e,t,a,s,n,r).then((()=>(o(e),e)))}upgradeAccount(e,t){let a=n.Z.getFinalFeeAsset(e,"account_upgrade");var s=o.Z.new_transaction();return s.add_type_operation("account_upgrade",{fee:{amount:0,asset_id:a},account_to_upgrade:e,upgrade_to_lifetime_member:t}),l.Z.process_transaction(s,null,!0)}addAccountContact(e){return e}removeAccountContact(e){return e}setPasswordAccount(e){return e}createCommittee({url:e,account:t}){const a=t.get("id");var s=o.Z.new_transaction();return s.add_type_operation("committee_member_create",{fee:{amount:0,asset_id:"1.3.0"},committee_member_account:a,url:e}),e=>l.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Add Committee member error -----\x3e",t),e(!1)}))}createWitness({url:e,account:t,signingKey:a}){const s=t.get("id");var n=o.Z.new_transaction();return n.add_type_operation("witness_create",{fee:{amount:0,asset_id:"1.3.0"},witness_account:s,url:e,block_signing_key:a}),e=>l.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Create witness error -----\x3e",t),e(!1)}))}updateWitness({url:e,account:t,witness_id:a,signingKey:s}){console.log("asdsa");const n=t.get("id");var r=o.Z.new_transaction(),i={fee:{amount:0,asset_id:"1.3.0"},witness:a,witness_account:n};return i.new_signing_key=s,i.new_url=e,r.add_type_operation("witness_update",i),e=>l.Z.process_transaction(r,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- Update witness error -----\x3e",t),e(!1)}))}})},7453:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(55420),r=a(13973),o=a(55894),i=a(41075),l=a(30806),c=a(44431),d=a.n(c),u=a(23316);a(17937);let p={};const h=s.Z.createActions(class{publishFeed({publisher:e,asset_id:t,mcr:a,mssr:s,feedPrice:n,cer:r}){let l=o.Z.new_transaction();return l.add_type_operation("asset_publish_feed",{publisher:e,asset_id:t,feed:{settlement_price:n.toObject(),maintenance_collateral_ratio:a,maximum_short_squeeze_ratio:s,core_exchange_rate:r.toObject()}}),e=>i.Z.process_transaction(l,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- fundPool error -----\x3e",t),e(!1)}))}fundPool(e,t,a,s){let n=o.Z.new_transaction(),l=r.Z.get_asset_precision(t.get("precision"));return n.add_type_operation("asset_fund_fee_pool",{fee:{amount:0,asset_id:"1.3.0"},from_account:e,asset_id:a.get("id"),amount:s*l}),e=>i.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- fundPool error -----\x3e",t),e(!1)}))}claimPool(e,t){let a=o.Z.new_transaction();return a.add_type_operation("asset_claim_pool",{fee:{amount:0,asset_id:"1.3.0"},issuer:e.get("issuer"),asset_id:e.get("id"),amount_to_claim:t.toObject()}),e=>i.Z.process_transaction(a,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimPool error -----\x3e",t),e(!1)}))}bidCollateral(e,t,a,s,n){let l=r.Z.get_asset_precision(t.get("precision")),c=r.Z.get_asset_precision(a.get("precision"));var d=o.Z.new_transaction();return d.add_type_operation("bid_collateral",{fee:{amount:0,asset_id:"1.3.0"},bidder:e,additional_collateral:{amount:Math.round(s*l),asset_id:t.get("id")},debt_covered:{amount:Math.round(n*c),asset_id:a.get("id")},extensions:[]}),e=>i.Z.process_transaction(d,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- collateralBid error -----\x3e",t),e(!1)}))}updateOwner(e,t){let a=o.Z.new_transaction();return a.add_type_operation("asset_update_issuer",{fee:{amount:0,asset_id:"1.3.0"},issuer:e.issuer,asset_to_update:e.id,new_issuer:t}),e=>i.Z.process_transaction(a,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- updateOwner error -----\x3e",t),e(!1)}))}updateFeedProducers(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_update_feed_producers",{fee:{amount:0,asset_id:"1.3.0"},issuer:e,asset_to_update:t.get("id"),new_feed_producers:a}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- updateFeedProducers error -----\x3e",t),e(!1)}))}claimPoolFees(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_claim_fees",{fee:{amount:0,asset_id:0},issuer:e,amount_to_claim:{asset_id:t.get("id"),amount:a.getAmount()}}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimFees error -----\x3e",t),e(!1)}))}claimCollateralFees(e,t,a,s){let n=o.Z.new_transaction();return n.add_type_operation("asset_claim_fees",{fee:{amount:0,asset_id:0},issuer:e,amount_to_claim:{asset_id:a.asset_id,amount:s.getAmount()},extensions:{claim_from_asset_id:t.get("id")}}),e=>i.Z.process_transaction(n,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("----- claimFees error -----\x3e",t),e(!1)}))}assetGlobalSettle(e,t,a){let s=o.Z.new_transaction();return s.add_type_operation("asset_global_settle",{fee:{amount:0,asset_id:0},issuer:t,asset_to_settle:e.id,settle_price:a}),e=>i.Z.process_transaction(s,null,!0).then((()=>{e(!0)})).catch((t=>{console.log("[AssetActions.js:223] ----- assetGlobalSettle error -----\x3e",t),e(!1)}))}createAsset(e,t,a,s,n,c,u,p,h){console.log("create asset:",t,"flags:",a,"isBitAsset:",c,"bitasset_opts:",p);let m=o.Z.new_transaction(),g=r.Z.get_asset_precision(t.precision);d().config({DECIMAL_PLACES:t.precision});let b=new(d())(t.max_supply).times(g).toString(),f=new(d())(t.max_market_fee||0).times(g).toString(),y=r.Z.get_asset_precision(l.ChainStore.getAsset(n.base.asset_id).get("precision")),_={fee:{amount:0,asset_id:0},issuer:e,symbol:t.symbol,precision:parseInt(t.precision,10),common_options:{max_supply:b,market_fee_percent:100*t.market_fee_percent||0,max_market_fee:f,issuer_permissions:s,flags:a,core_exchange_rate:{base:{amount:n.base.amount*y,asset_id:n.base.asset_id},quote:{amount:n.quote.amount*g,asset_id:"1.3.1"}},whitelist_authorities:[],blacklist_authorities:[],whitelist_markets:[],blacklist_markets:[],description:h,extensions:{reward_percent:t.reward_percent?100*t.reward_percent:void 0,whitelist_market_fee_sharing:[],taker_fee_percent:t.taker_fee_percent?100*t.taker_fee_percent:void 0}},is_prediction_market:u,extensions:null};return c&&(_.bitasset_opts=p),m.add_type_operation("asset_create",_),e=>i.Z.process_transaction(m,null,!0).then((t=>{e(!0)})).catch((t=>{console.log("----- createAsset error -----\x3e",t),e(!1)}))}updateAsset(e,t,a,s,n,c,u,p,h,m,g,b,f,y,_){let w=o.Z.new_transaction();if(_){let o=r.Z.get_asset_precision(n.get("precision"));d().config({DECIMAL_PLACES:n.get("precision")});let i=new(d())(a.max_supply).times(o).toString(),p=new(d())(a.max_market_fee||0).times(o).toString(),h=l.ChainStore.getAsset(s.quote.asset_id),m=r.Z.get_asset_precision(h.get("precision")),f=l.ChainStore.getAsset(s.base.asset_id),y=r.Z.get_asset_precision(f.get("precision")),_=new(d())(s.quote.amount).times(m).toString(),k=new(d())(s.base.amount).times(y).toString(),v=n.getIn(["options","extensions"]).toJS();void 0!==a.reward_percent&&(v.reward_percent=100*a.reward_percent),b.whitelist_market_fee_sharing&&(v.whitelist_market_fee_sharing=b.whitelist_market_fee_sharing.toJS()),void 0!==a.taker_fee_percent&&(v.taker_fee_percent=100*a.taker_fee_percent);let A={fee:{amount:0,asset_id:0},asset_to_update:n.get("id"),extensions:n.get("extensions"),issuer:e,new_issuer:t,new_options:{max_supply:i,max_market_fee:p,market_fee_percent:100*a.market_fee_percent,description:g,issuer_permissions:u,flags:c,whitelist_authorities:b.whitelist_authorities.toJS(),blacklist_authorities:b.blacklist_authorities.toJS(),whitelist_markets:b.whitelist_markets.toJS(),blacklist_markets:b.blacklist_markets.toJS(),extensions:v,core_exchange_rate:{quote:{amount:_,asset_id:s.quote.asset_id},base:{amount:k,asset_id:s.base.asset_id}}}};e!==t&&t||delete A.new_issuer,w.add_type_operation("asset_update",A)}if(console.log("bitasset_opts:",h,"original_bitasset_opts:",m),p&&(h.feed_lifetime_sec!==m.feed_lifetime_sec||h.minimum_feeds!==m.minimum_feeds||h.force_settlement_delay_sec!==m.force_settlement_delay_sec||h.force_settlement_offset_percent!==m.force_settlement_offset_percent||h.maximum_force_settlement_volume!==m.maximum_force_settlement_volume||h.short_backing_asset!==m.short_backing_asset)){let t={fee:{amount:0,asset_id:0},asset_to_update:n.get("id"),issuer:e,new_options:h};w.add_type_operation("asset_update_bitasset",t)}return console.log("feedProducers:",f,"originalFeedProducers:",y),p&&!r.Z.are_equal_shallow(f,y)&&w.add_type_operation("asset_update_feed_producers",{fee:{amount:0,asset_id:"1.3.0"},issuer:e,asset_to_update:n.get("id"),new_feed_producers:f}),i.Z.process_transaction(w,null,!0).then((e=>(console.log("asset create result:",e),!0))).catch((e=>(console.log("----- updateAsset error -----\x3e",e),!1)))}async loadAssets(){let e="A",t=[],a=null;for(;0==t.length||null==a||a.length>0;)a=await n.Apis.instance().db_api().exec("list_assets",[e,10]),t=t.concat(a),e=t[t.length-1].symbol+".";console.log("Assets loaded: ",t.length)}getAssetList(e,t,a=!1){let s=e+"_"+t;return r=>{if(!p[s]){let o;return p[s]=!0,r({loading:!0}),o=n.Apis.instance().db_api().exec("list_assets",[e,t]).then((e=>{let t=[],a=[];e.forEach((e=>{l.ChainStore._updateObject(e,!1),a.push(e.dynamic_asset_data_id),e.bitasset_data_id&&t.push(e.bitasset_data_id)}));let o=n.Apis.instance().db_api().exec("get_objects",[a]),i=t.length>0?n.Apis.instance().db_api().exec("get_objects",[t]):null;Promise.all([o,i]).then((t=>(delete p[s],r({assets:e,dynamic:t[0],bitasset_data:t[1],loading:!1}),e&&e.length)))})).catch((e=>{console.log("Error in AssetActions.getAssetList: ",e),r({loading:!1}),delete p[s]})),a&&u.nT.forEach((t=>{this.getAssetList(t+"."+e,10)})),o}}}getAssetsByIssuer(e,t,a,s=!1){let r=e+"_"+t;return console.log("getAssetsByIssuer id = ",r),o=>{if(!p[r]){let i;return p[r]=!0,o({loading:!0}),i=n.Apis.instance().db_api().exec("get_assets_by_issuer",[e,a,t]).then((e=>{let t=[];e.forEach((e=>{l.ChainStore._updateObject(e,!1),t.push(e.dynamic_asset_data_id)}));let a=n.Apis.instance().db_api().exec("get_objects",[t]);Promise.all([a]).then((t=>(delete p[r],o({assets:e,dynamic:t[0],loading:!1}),e&&e.length)))})).catch((e=>{console.log("Error in AssetActions.getAssetList: ",e),o({loading:!1}),delete p[r]})),s&&u.nT.forEach((e=>{this.getAssetList(e+"."+a,10)})),i}}}lookupAsset(e,t){let a=l.ChainStore.getAsset(e);return a?{assets:[a],searchID:t,symbol:e}:a=>{setTimeout((()=>{let s=l.ChainStore.getAsset(e);s&&a({assets:[s],searchID:t,symbol:e})}),200)}}reserveAsset(e,t,a){var s=o.Z.new_transaction();return s.add_type_operation("asset_reserve",{fee:{amount:0,asset_id:0},amount_to_reserve:{amount:e,asset_id:t},payer:a,extensions:[]}),e=>i.Z.process_transaction(s,null,!0).then((()=>(e(!0),!0))).catch((t=>(e(!1),console.log("----- reserveAsset error -----\x3e",t),!1)))}})},40678:(e,t,a)=>{"use strict";a.d(t,{D$:()=>d,ZP:()=>c,ah:()=>p,nu:()=>u});var s=a(57296),n=a(95768),r=a(19303),o=a(30806),i=a(28969),l=a(48764).Buffer;const c=s.Z.createActions(class{incommingWebFile(e){return t=>{let a=new FileReader;a.onload=a=>{let s=new l(a.target.result,"binary"),n=e.name,r=new Date(e.lastModified).toString();t({name:n,contents:s,last_modified:r})},a.readAsBinaryString(e)}}incommingBuffer(e){return e}reset(){return!0}});function d(e){return new Promise((t=>{t(n.Z.backup().then((t=>function(e,t,a,s){return new Promise((a=>{let s=o.PublicKey.fromPublicKeyString(e),n=o.key.get_random_key(undefined),i=JSON.stringify(t,null,0);(0,r.nN)(i,1,(e=>{let t=o.Aes.encrypt_with_checksum(n,s,null,e),r=n.toPublicKey(),i=l.concat([r.toBuffer(),t]);a(i)}))}))}(e,t))))}))}function u(e,t,a){return new Promise((s=>{s(p(e,t).then((e=>i.Z.restore(a,e))))}))}function p(e,t){return new Promise(((a,s)=>{l.isBuffer(t)||(t=new l(t,"binary"));let n,i=o.PrivateKey.fromWif(e);try{n=o.PublicKey.fromBuffer(t.slice(0,33))}catch(e){throw console.error(e,e.stack),new Error("Invalid backup file")}t=t.slice(33);try{t=o.Aes.decrypt_with_checksum(i,n,null,t)}catch(e){return console.error("Error decrypting wallet",e,e.stack),void s("invalid_decryption_key")}try{(0,r.Lj)(t,(e=>{try{let t=JSON.parse(e);a(t)}catch(t){e||(e=""),console.error("Error parsing wallet json",e.substring(0,10)+"..."),s("Error parsing wallet json")}}))}catch(e){return console.error("Error decompressing wallet",e,e.stack),void s("Error decompressing wallet")}}))}},33983:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{setPubkeys(e){return e}setSelectedBalanceClaims(e){return e}claimAccountChange(e){return e}})},72034:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(57296),n=a(55420);let r={},o={};const i=s.Z.createActions(class{getHeader(e){return o[e]?{}:(o[e]=!0,t=>n.Apis.instance().db_api().exec("get_block_header",[e]).then((a=>{t({header:{timestamp:a.timestamp,witness:a.witness},height:e})})))}getLatest(e,t){return a=>{!r[e]&&t&&(r[e]=!0,n.Apis.instance().db_api().exec("get_block",[e]).then((s=>{s&&(s.id=e,a({block:s,maxBlock:t}))})).catch((e=>{console.log("Error in BlockchainActions.getLatest: ",e)})))}}getBlock(e){return t=>{n.Apis.instance().db_api().exec("get_block",[e]).then((a=>{if(!a)return!1;a.id=e,t(a)})).catch((e=>{console.log("Error in BlockchainActions.getBlock: ",e)}))}}updateRpcConnectionStatus(e){return e}});n.Apis.setRpcConnectionStatusCallback(i.updateRpcConnectionStatus);const l=i},99659:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{set(e,t){return{name:e,value:t}}get(e){return{name:e}}reset(){return!0}})},56815:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(57296),n=a(84224),r=a(21712),o=a(91822);let i={};const l=1e4,c=(e,t)=>{e({down:t})},d=s.Z.createActions(class{fetchCoins({backer:e="OPEN",url:t,urlBridge:a,urlWallets:s}={}){return i["fetchCoins_"+e]?{}:(i["fetchCoins_"+e]=!0,r=>{let o=setTimeout(c.bind(null,r,e),l);Promise.all([(0,n.Yr)(t),(0,n.El)(a),(0,n.dV)(s)]).then((t=>{clearTimeout(o),delete i["fetchCoins_"+e];let[a,s,l]=t,c=(0,n.pQ)({allCoins:a,tradingPairs:s,backer:e}).filter((e=>!!e.walletType));c.forEach((e=>{e.isAvailable=-1!==l.indexOf(e.walletType)})),r({coins:a,backedCoins:c,backer:e})})).catch((()=>{clearTimeout(o),delete i["fetchCoins_"+e],r({coins:[],backedCoins:[],backer:e})}))})}fetchCoinsSimple({backer:e="RUDEX",url:t}={}){return i["fetchCoinsSimple_"+e]?{}:(i["fetchCoinsSimple_"+e]=!0,a=>{let s=setTimeout(c.bind(null,a,e),l);(0,n.vC)(t).then((t=>{clearTimeout(s),delete i["fetchCoinsSimple_"+e],a({coins:t,backer:e})})).catch((()=>{clearTimeout(s),delete i["fetchCoinsSimple_"+e],a({coins:[],backer:e})}))})}fetchPairs(){return i.fetchTradingPairs?{}:(i.fetchTradingPairs=!0,e=>{let t=setTimeout(c.bind(null,e,"TRADE"),l);Promise.all([(0,n.Yr)(r.q.BASE+r.q.COINS_LIST),(0,n.El)(r.q.BASE+r.q.TRADING_PAIRS),(0,n.dV)(r.q.BASE+r.q.ACTIVE_WALLETS)]).then((a=>{clearTimeout(t),delete i.fetchTradingPairs;let[s,n,r]=a;e({coins:s,bridgeCoins:n,wallets:r})})).catch((()=>{delete i.fetchTradingPairs,e({coins:[],bridgeCoins:[],wallets:[]})}))})}temporarilyDisable({backer:e}){return t=>{t({backer:e})}}loadOnChainGatewayConfig(){return e=>{(0,o.ET)().then((t=>e(t)))}}})},51477:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(57296);a(89515);const n=s.Z.createActions(class{switchLocale(e){return"en"===e?{locale:e}:t=>{fetch(`locale-${e}.json`).then((a=>a.json().then((a=>{t({locale:e,localeData:a})})))).catch((e=>(console.log("fetch locale error:",e),e=>{e({locale:"en"})})))}}getLocale(e){return e}})},22463:(e,t,a)=>{"use strict";a.d(t,{Z:()=>C});var s=a(57296),n=a(55894),r=a(41075),o=a(30806),i=a(55420),l=a(5833),c=a(36345),d=a(43393),u=a.n(d);let p,h={},m={},g=u().List(),b=null,f=u().List(),y=null,_=null,w="";function k(){clearTimeout(b),clearTimeout(y),b=null,y=null}const v=[];let A=!1,E=0,x=s.Z.createActions(class{changeBase(e){return k(),e}changeBucketSize(e){return e}getMarketStats(e,t,a=!1,s=null){const{marketName:n,first:r,second:o}=l.Z.getMarketName(e,t);return l=>{if(e===t)return;let c=new Date;if(m[n]&&!a){if(c-m[n].lastFetched<6e4)return!1;a=!0}if(!m[n]||a){m[n]={lastFetched:new Date},i.Apis.instance().db_api()&&v.push({promise:i.Apis.instance().db_api().exec("get_ticker",[o.get("id"),r.get("id")]),market:n,base:o,quote:r}),A||(A=!0,setTimeout((()=>{e()}),1500));let e=()=>{let t=v.slice(0,500);return Promise.all(t.map((e=>e.promise))).then((a=>(l({tickers:a,markets:t.map((e=>e.market)),bases:t.map((e=>e.base)),quotes:t.map((e=>e.quote))}),v.splice(0,a.length),0===v.length?void(A=!1):e()))).catch((e=>{console.log("getMarketStats error for "+n+":",e),null!=s&&s(e)}))}}}}switchMarket(){return!0}async getTicker(e,t){return e instanceof Object&&(e=e.get("id")),t instanceof Object&&(t=t.get("id")),await i.Apis.instance().db_api().exec("get_ticker",[e,t])}subscribeMarket(e,t,a,s){void 0===s?s=E:E=s,k();let n=t.get("id")+"_"+e.get("id");_=e.get("id")+"_"+t.get("id");let{isMarketAsset:r,marketAsset:o,inverted:c}=l.Z.isMarketAsset(t,e);const d=200;return l=>{let u=(s,u)=>{s===_&&(y?f=f.concat(u):(f=f.concat(u),y=setTimeout((()=>{let s=!1,u=!0,p=!1;f.forEach((e=>{e.forEach((e=>{if("string"==typeof e){let t=e.split(".");t.length>=2&&"7"===t[1]?s=!0:u=!1}else u=!1,2===e.length&&e[0]&&4===e[0][0]&&(p=!0)}))}));let h=null,m=null;r&&(h=i.Apis.instance().db_api().exec("get_call_orders",[o.id,300]),m=i.Apis.instance().db_api().exec("get_settle_orders",[o.id,300]));let g=[],b=[];0!==w&&(g=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[e.get("id"),t.get("id"),w,null,100]),b=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[t.get("id"),e.get("id"),w,null,100]));let _=new Date,k=new Date,v=new Date,A=new Date;_=new Date(_.getTime()-a*d*1e3),k=new Date(k.getTime()-a*d*2e3),v=new Date(v.getTime()-a*d*3e3),A.setDate(A.getDate()+1),f=f.clear(),y=null,Promise.all([i.Apis.instance().db_api().exec("get_limit_orders",[e.get("id"),t.get("id"),300]),u?null:h,u?null:m,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,_.toISOString().slice(0,-5),A.toISOString().slice(0,-5)]):null,p?i.Apis.instance().history_api().exec("get_fill_order_history",[e.get("id"),t.get("id"),200]):null,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,k.toISOString().slice(0,-5),_.toISOString().slice(0,-5)]):null,p?i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,v.toISOString().slice(0,-5),k.toISOString().slice(0,-5)]):null,i.Apis.instance().db_api().exec("get_ticker",[e.get("id"),t.get("id")]),g,b]).then((a=>{const s=a[5]||[],r=a[6]||[];l({limits:a[0],calls:!u&&a[1],settles:!u&&a[2],price:p&&s.concat(r.concat(a[3])),history:p&&a[4],market:n,base:e,quote:t,inverted:c,ticker:a[7],groupedOrdersBids:a[8],groupedOrdersAsks:a[9]})})).catch((e=>{console.log("Error in MarketsActions.subscribeMarket: ",e)}))}),500)))};if(!h[n]||p!==a||w!==s){l({switchMarket:!0}),p=a,w=s;let m=null,g=null;r&&(m=i.Apis.instance().db_api().exec("get_call_orders",[o.id,300]),g=i.Apis.instance().db_api().exec("get_settle_orders",[o.id,300]));let b=[],f=[];0!==w&&(b=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[e.get("id"),t.get("id"),w,null,100]),f=i.Apis.instance().orders_api().exec("get_grouped_limit_orders",[t.get("id"),e.get("id"),w,null,100]));let y=new Date,_=new Date,k=new Date,v=new Date;return y=new Date(y.getTime()-a*d*1e3),_=new Date(_.getTime()-a*d*2e3),k=new Date(k.getTime()-a*d*3e3),v.setDate(v.getDate()+1),new Promise(((s,r)=>{Promise.all([i.Apis.instance().db_api().exec("subscribe_to_market",[u.bind(this,e.get("id")+"_"+t.get("id")),e.get("id"),t.get("id")]),i.Apis.instance().db_api().exec("get_limit_orders",[e.get("id"),t.get("id"),300]),m,g,i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,y.toISOString().slice(0,-5),v.toISOString().slice(0,-5)]),i.Apis.instance().history_api().exec("get_market_history_buckets",[]),i.Apis.instance().history_api().exec("get_fill_order_history",[e.get("id"),t.get("id"),200]),i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,_.toISOString().slice(0,-5),y.toISOString().slice(0,-5)]),i.Apis.instance().history_api().exec("get_market_history",[e.get("id"),t.get("id"),a,k.toISOString().slice(0,-5),_.toISOString().slice(0,-5)]),i.Apis.instance().db_api().exec("get_ticker",[e.get("id"),t.get("id")]),b,f]).then((a=>{const r=a[8]||[],o=a[7]||[];h[n]=u,l({limits:a[1],calls:a[2],settles:a[3],price:r.concat(o.concat(a[4])),buckets:a[5],history:a[6],market:n,base:e,quote:t,inverted:c,ticker:a[9],init:!0,resolve:s,groupedOrdersBids:a[10],groupedOrdersAsks:a[11]})})).catch((e=>{console.log("Error in MarketsActions.subscribeMarket: ",e),r(e)}))}))}return Promise.resolve(!0)}}unSubscribeMarket(e,t){let a=e+"_"+t;return k(),s=>h[a]?new Promise(((n,r)=>{i.Apis.instance().db_api().exec("unsubscribe_from_market",[h[a],e,t]).then((()=>{delete h[a],s({unSub:!0,resolve:n})})).catch((e=>{h[a]=!0,console.log("Error in MarketsActions.unSubscribeMarket: ",e),s({unSub:!1,market:a}),r(e)}))})):Promise.resolve(!0)}createLimitOrder(e,t,a,s,i,l,c,d){var u=n.Z.new_transaction();let p=o.ChainStore.getAsset(d);return"1.3.0"===p.getIn(["options","core_exchange_rate","base","asset_id"])&&"1.3.0"===p.getIn(["options","core_exchange_rate","quote","asset_id"])&&(d="1.3.0"),u.add_type_operation("limit_order_create",{fee:{amount:0,asset_id:d},seller:e,amount_to_sell:{amount:t,asset_id:a.get("id")},min_to_receive:{amount:s,asset_id:i.get("id")},expiration:l,fill_or_kill:c}),e=>r.Z.process_transaction(u,null,!0).then((t=>(e(!0),!0))).catch((t=>(console.log("order error:",t),e({error:t}),{error:t})))}createLimitOrder2(e){var t=n.Z.new_transaction();let a=[];return Array.isArray(e)?a=e.map((e=>e.toObject())):a.push(e.toObject()),a.forEach((e=>{t.add_type_operation("limit_order_create",e)})),r.Z.process_transaction(t,null,!0).then((e=>!0)).catch((e=>(console.log("order error:",e),{error:e})))}createPredictionShort(e,t,a,s,o,i,l,d,u,p,h="1.3.0"){var m=n.Z.new_transaction();return h=c.Z.getFinalFeeAsset(e.seller,"call_order_update",e.fee.asset_id),e.setExpiration(),m.add_type_operation("call_order_update",{fee:{amount:0,asset_id:h},funding_account:e.seller,delta_collateral:t.toObject(),delta_debt:e.amount_for_sale.toObject(),expiration:e.getExpiration()}),m.add_type_operation("limit_order_create",e.toObject()),r.Z.process_transaction(m,null,!0).then((e=>!0)).catch((e=>(console.log("order error:",e),{error:e})))}cancelLimitOrder(e,t){let a=c.Z.getFinalFeeAsset(e,"limit_order_cancel");var s=n.Z.new_transaction();return s.add_type_operation("limit_order_cancel",{fee:{amount:0,asset_id:a},fee_paying_account:e,order:t}),r.Z.process_transaction(s,null,!0).catch((e=>{console.log("cancel error:",e)}))}cancelLimitOrders(e,t,a="1.3.0"){let s=n.Z.new_transaction(),o=c.Z.getAccountBalances(e);for(let n=0;n{if(o[e]<0)throw"Insufficient balance: "+e})),s.add_type_operation("limit_order_cancel",{fee:{amount:0,asset_id:d},fee_paying_account:e,order:r})}return r.Z.process_transaction(s,null,!0).catch((e=>{console.log("cancel error:",e)}))}cancelLimitOrderSuccess(e){return t=>{b?g=g.concat(e):(g=g.concat(e),b=setTimeout((()=>{t(g.toJS()),b=null,g=g.clear()}),500))}}closeCallOrderSuccess(e){return e}callOrderUpdate(e){return e}feedUpdate(e){return e}settleOrderUpdate(e){return t=>{i.Apis.instance().db_api().exec("get_settle_orders",[e,100]).then((e=>{t({settles:e})}))}}toggleStars(){return!0}getTrackedGroupsConfig(){return e=>{i.Apis.instance().orders_api().exec("get_tracked_groups",[]).then((t=>{e({trackedGroupsConfig:t})})).catch((t=>{console.log("current node api does not support grouped orders."),e({trackedGroupsConfig:[]})}))}}changeCurrentGroupLimit(e){return e}}),S={};x.clearMarketStatsInInterval=function(e){S[e]&&(clearInterval(S[e]),delete S[e])},x.getMarketStatsInterval=function(e,t,a,s=!1){x.getMarketStats(t,a,s);const{marketName:n}=l.Z.getMarketName(t,a);return S[n]||(S[n]=setInterval((()=>{x.getMarketStats(t,a,s,(()=>{x.clearMarketStatsInInterval(t,a)}))}),e)),x.clearMarketStatsInInterval.bind(this,n)};const C=x},31972:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{addNotification(e){return n(e)}success(e){return n(e,"success")}error(e){return n(e,"error")}warning(e){return n(e,"warning")}info(e){return n(e,"info")}});var n=(e,t)=>("string"==typeof e&&(e={message:e}),t&&(e.level=t),e)},43143:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{addKey(e,t){return a=>new Promise((s=>{a({private_key_object:e,transaction:t,resolve:s})}))}loadDbData(){return e=>new Promise((t=>{e(t)}))}})},55294:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=a(57296).Z.createActions(class{changeSetting(e){return e}changeViewSetting(e){return e}changeMarketDirection(e){return e}addStarMarket(e,t){return{quote:e,base:t}}removeStarMarket(e,t){return{quote:e,base:t}}clearStarredMarkets(){return!0}setUserMarket(e,t,a){return{quote:e,base:t,value:a}}addWS(e){return e}removeWS(e){return e}hideWS(e){return e}showWS(e){return e}hideAsset(e,t){return{id:e,status:t}}hideMarket(e,t){return{id:e,status:t}}clearSettings(){return e=>new Promise((t=>{e(t)}))}updateLatencies(e){return e}setExchangeLastExpiration(e){return e}setExchangeTutorialShown(e){return e}modifyPreferedBases(e){return e}updateUnits(){return!0}setPriceAlert(e){return e}hideNewsHeadline(e){return e}addChartLayout(e){return e}deleteChartLayout(e){return e}})},69778:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(57296),n=a(55420),r=a(112),o=a.n(r),i=a(88209),l=a.n(i);const c=s.Z.createActions(class{confirm(e,t,a){return{transaction:e,resolve:t,reject:a}}broadcast(e,t,a){return s=>{s({broadcasting:!0,closed:!0});let r=setTimeout((()=>{s({broadcast:!1,broadcasting:!1,error:o().translate("trx_error.expire"),closed:!1}),a&&a()}),2e3*n.ChainConfig.expire_in_secs);e.broadcast((()=>{s({broadcasting:!1,broadcast:!0})})).then((e=>{clearTimeout(r),s({error:null,broadcasting:!1,broadcast:!0,included:!0,trx_id:e[0].id,trx_block_num:e[0].block_num,broadcasted_transaction:!0}),t&&t(e)})).catch((e=>{console.error(e),clearTimeout(r);let t,n,o="An error occured while broadcasting",i={},l=e.message.split("\n");if(1==l.length)o=l[0];else if(l.length>1)try{i=JSON.parse(l[1]),t=i.data,n=i.code,o=i.message}catch(e){l=l.map((e=>{try{let t=JSON.stringify(JSON.parse(e.substring(e.indexOf("{"),e.lastIndexOf("}")+1)),null,4);return e.substring(0,e.indexOf("{"))+"\n"+t+"\n"+e.substring(e.lastIndexOf("}")+1,e.length)}catch(t){return e}})),n=l[0],t=l.slice(1,l.length).join("\n")}s({broadcast:!1,broadcasting:!1,error:o,closed:!1,error_code:n,error_data:t}),a&&a()}))}}wasBroadcast(e){return e}wasIncluded(e){return e}close(e){return e(),l().publish("transaction_confirm_actions","close"),!0}error(e){return{error:e}}togglePropose(){return!0}proposeFeePayingAccount(e){return e}})},28969:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(41075),n=a(56934),r=a(99659),o=a(11390),i=a(30806),l=a(55420),c=a(57296),d=a(39014);const u=c.Z.createActions(class{restore(e="default",t){return{wallet_name:e=e.toLowerCase(),wallet_object:t}}setWallet(e,t,a){return n.Z.lock(),e||(e="default"),s=>new Promise((n=>{s({wallet_name:e,create_wallet_password:t,brnkey:a,resolve:n})}))}setBackupDate(){return r.Z.set("backup_recommended",!1),!0}setBrainkeyBackupDate(){return!0}deleteWallet(e){return e}createAccountWithPassword(e,t,a,n,r,i){let{privKey:l}=s.Z.generateKeyFromPassword(e,"owner",t),{privKey:c}=s.Z.generateKeyFromPassword(e,"active",t),{privKey:u}=s.Z.generateKeyFromPassword(e,"memo",t);return console.log("create account:",e),console.log("new active pubkey",c.toPublicKey().toPublicKeyString()),console.log("new owner pubkey",l.toPublicKey().toPublicKeyString()),console.log("new memo pubkey",u.toPublicKey().toPublicKeyString()),new Promise(((t,s)=>{if(a)return o.Z.create_account(l.toPublicKey().toPublicKeyString(),c.toPublicKey().toPublicKeyString(),u.toPublicKey().toPublicKeyString(),e,a,n,r,!0).then(t).catch(s);{let a=d.Z.getSetting("faucet_address");return window&&window.location&&"https:"===window.location.protocol&&(a=a.replace(/http:\/\//,"https://")),fetch(a+"/api/v1/accounts",{method:"post",mode:"cors",headers:{Accept:"application/json","Content-type":"application/json"},body:JSON.stringify({account:{name:e,owner_key:l.toPublicKey().toPublicKeyString(),active_key:c.toPublicKey().toPublicKeyString(),memo_key:u.toPublicKey().toPublicKeyString(),refcode:i,referrer:n}})}).then((e=>e.json().then((e=>{!e||e&&e.error?s(e.error):t(e)})))).catch(s).then((e=>{e&&e.error?s(e.error):t(e)})).catch((e=>{s(e)}))}}))}createAccount(e,t,a,n,r){if(s.Z.isLocked()){let e="wallet locked";return Promise.reject(e)}let i=s.Z.generateNextKey(),l=s.Z.generateNextKey(),c=s.Z.generateNextKey(),u=()=>{let e=s.Z.transaction_update_keys();return s.Z.saveKeys([i,l,c],e).catch((()=>e.abort()))};if(t)return o.Z.create_account(i.private_key.toPublicKey().toPublicKeyString(),l.private_key.toPublicKey().toPublicKeyString(),c.private_key.toPublicKey().toPublicKeyString(),e,t,a,n,!0).then((()=>u()));{let t=d.Z.getSetting("faucet_address");return window&&window.location&&"https:"===window.location.protocol&&(t=t.replace(/http:\/\//,"https://")),fetch(t+"/api/v1/accounts",{method:"post",mode:"cors",headers:{Accept:"application/json","Content-type":"application/json"},body:JSON.stringify({account:{name:e,owner_key:i.private_key.toPublicKey().toPublicKeyString(),active_key:l.private_key.toPublicKey().toPublicKeyString(),memo_key:l.private_key.toPublicKey().toPublicKeyString(),refcode:r,referrer:a}})}).then((e=>e.json())).then((e=>{if(e.error)throw e.error;return u()})).catch((e=>{throw s.Z.decrementBrainKeySequence(),s.Z.decrementBrainKeySequence(),s.Z.decrementBrainKeySequence(),e}))}}claimVestingBalance(e,t,a=!1){let n,r,o=new i.TransactionBuilder;if(t&&(n=t.balance.amount,r=2===t.policy[0]||0===t.policy[1].vesting_seconds||a?1:0,!r&&t.policy&&2!==t.policy[0])){let e=Math.floor(new Date(t.policy[1].start_claim+"Z").getTime()/1e3),a=Math.floor((new Date).getTime()/1e3);if(e>0)a-e>=t.policy[1].vesting_seconds&&(r=1);else{let e=Math.floor(new Date(t.policy[1].coin_seconds_earned_last_update+"Z").getTime()/1e3);r=(parseFloat(t.policy[1].coin_seconds_earned)+n*(a-e))/(t.policy[1].vesting_seconds*n),r=r>1?1:r}}return o.add_type_operation("vesting_balance_withdraw",{fee:{amount:"0",asset_id:"1.3.0"},owner:e,vesting_balance:t.id,amount:{amount:Math.floor(n*r),asset_id:t.balance.asset_id}}),s.Z.process_transaction(o,null,!0).then((e=>{})).catch((e=>{console.log("vesting_balance_withdraw err:",e)}))}importBalance(e,t,a){return r=>new Promise(((o,c)=>{l.Apis.instance().db_api();let d=(0,i.FetchChain)("getAccount",e),u=n.Z.unlock();o(Promise.all([u,d]).then((n=>{let o=n[1];if(null==o)return Promise.reject("Unknown account "+e);let l=[],c={};for(let e of t){let t,{vested_balance:a,public_key_string:s}=e;if(a){if(0==a.amount)continue;t=a.amount}else t=e.balance.amount;if(a&&a.asset_id!=e.balance.asset_id)throw new Error("Vested balance record and balance record asset_id missmatch",a.asset_id,e.balance.asset_id);c[s]=!0,l.push({fee:{amount:"0",asset_id:"1.3.0"},deposit_to_account:o.get("id"),balance_to_claim:e.id,balance_owner_key:s,total_claimed:{amount:t,asset_id:e.balance.asset_id}})}let d=new i.TransactionBuilder;for(let e of l)d.add_type_operation("balance_claim",e);return d.set_expire_seconds(900+l.length),s.Z.process_transaction(d,Object.keys(c),a).then((e=>(r(!0),e)))})).catch((()=>{})))}))}})},56934:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(57296).Z.createActions(class{unlock(){return e=>new Promise(((t,a)=>{e({resolve:t,reject:a})})).then((e=>{e&&s.change()})).catch((e=>{throw e}))}lock(){return e=>new Promise((t=>{e({resolve:t})})).then((e=>{e&&s.change()}))}cancel(){return!0}change(){return!0}checkLock(){return!0}});const n=s},57296:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=new(a(58830).Z)},11390:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(56934),n=a(36345),r=a(41075),o=a(30806),i=a(112),l=a.n(i),c=a(76660),d=a(48764).Buffer;const u={create_account:(e,t,a,s,i,l,c,d=!1)=>(o.ChainValidation.required(i,"registrar_id"),o.ChainValidation.required(l,"referrer_id"),new Promise(((u,p)=>Promise.all([(0,o.FetchChain)("getAccount",i),(0,o.FetchChain)("getAccount",l)]).then((l=>{let[h,m]=l,g=new o.TransactionBuilder;return g.add_type_operation("account_create",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(i,"account_create")},registrar:h.get("id"),referrer:m.get("id"),referrer_percent:c,name:s,owner:{weight_threshold:1,account_auths:[],key_auths:[[e,1]],address_auths:[]},active:{weight_threshold:1,account_auths:[],key_auths:[[t,1]],address_auths:[]},options:{memo_key:a,voting_account:"1.2.5",num_witness:0,num_committee:0,votes:[]}}),r.Z.process_transaction(g,null,d).then((e=>{console.log("process_transaction then",e),u()})).catch((e=>{console.log("process_transaction catch",e),p(e)}))}))))),_get_memo_keys(e,t=!0){let a={public_key:null,private_key:null};if(a.public_key=e.getIn(["options","memo_key"]),/111111111111111111111/.test(a.public_key)&&(a.public_key=null),t&&(a.private_key=r.Z.getPrivateKey(a.public_key),!a.private_key))throw c.Notification.error({message:l().translate("account.errors.memo_missing")}),new Error("Missing private memo key for sender: "+e.get("name"));return a},_create_transfer_op({from_account:e,to_account:t,amount:a,asset:r,memo:i,propose_account:l=null,encrypt_memo:c=!0,optional_nonce:u=null,fee_asset_id:p=null,transactionBuilder:h=null}){let m=s.Z.unlock();p||(p=n.Z.getFinalFeeAsset(e,"transfer"));let g=l||e;return Promise.all([(0,o.FetchChain)("getAccount",e),(0,o.FetchChain)("getAccount",t),(0,o.FetchChain)("getAccount",g),(0,o.FetchChain)("getAsset",r),(0,o.FetchChain)("getAsset",p),m]).then((e=>{let t,[s,n,r,m,g]=e,b=null;if(l&&(b=r),i){let e=this._get_memo_keys(r,c),a=this._get_memo_keys(n,!1);if(e.public_key&&a.public_key){let s=null==u?o.TransactionHelper.unique_nonce_uint64():u;t={from:e.public_key,to:a.public_key,nonce:s,message:c?o.Aes.encrypt_with_checksum(e.private_key,a.public_key,s,i):d.isBuffer(i)?i.toString("utf-8"):i}}}let f=g.toJS();"1.3.0"===f.options.core_exchange_rate.base.asset_id&&"1.3.0"===f.options.core_exchange_rate.quote.asset_id&&(p="1.3.0");let y=null;return y=null==h?new o.TransactionBuilder:h,{transfer_op:y.get_type_operation("transfer",{fee:{amount:0,asset_id:p},from:s.get("id"),to:n.get("id"),amount:{amount:a,asset_id:m.get("id")},memo:t}),chain_from:s,chain_to:n,chain_propose_account:b,chain_memo_sender:r,chain_asset:m,chain_fee_asset:g}})).catch((e=>{console.error(e)}))},transfer({from_account:e,to_account:t,amount:a,asset:s,memo:n,broadcast:i=!0,encrypt_memo:l=!0,optional_nonce:c=null,propose_account:d=null,fee_asset_id:u=null,transactionBuilder:p=null}){return null==p&&(p=new o.TransactionBuilder),this._create_transfer_op({from_account:e,to_account:t,amount:a,asset:s,memo:n,propose_account:d,encrypt_memo:l,optional_nonce:c,fee_asset_id:u,transactionBuilder:p}).then((e=>p.update_head_block().then((()=>(d?p.add_type_operation("proposal_create",{proposed_ops:[{op:e.transfer_op}],fee_paying_account:e.chain_propose_account.get("id")}):p.add_operation(e.transfer_op),r.Z.process_transaction(p,null,i)))).catch((e=>{console.error(e)}))))},transfer_list(e,t=null){return s.Z.unlock().then((()=>{let a=null,s=[],i=new o.TransactionBuilder;return e.forEach((e=>{e.transactionBuilder=i,s.push(this._create_transfer_op(e))})),Promise.all(s).then((s=>i.update_head_block().then((()=>{let o=[];return s.forEach(((s,r)=>{e[r].propose_account?(null==a&&(a=s.chain_propose_account,t||(t=n.Z.getFinalFeeAsset(a,"proposal_create")),"string"!=typeof t&&(t=t.get("id"))),o.push({op:s.transfer_op})):i.add_operation(s.transfer_op)})),i.add_type_operation("proposal_create",{fee:{amount:0,asset_id:t},proposed_ops:o,fee_paying_account:a.get("id")}),r.Z.process_transaction(i,null,!0)})))).catch((e=>{console.log(e)}))}))},issue_asset(e,t,a,i,l,c=!0,u=null){let p=s.Z.unlock();return Promise.all([(0,o.FetchChain)("getAccount",t),(0,o.FetchChain)("getAccount",e),p]).then((s=>{let p,h,m,g,[b,f]=s;if(l&&c&&(p=b.getIn(["options","memo_key"]),/111111111111111111111/.test(p)&&(p=null),h=f.getIn(["options","memo_key"]),/111111111111111111111/.test(h)&&(h=null)),c&&l&&(m=r.Z.getPrivateKey(p),!m))throw new Error("Missing private memo key for sender: "+t);if(l&&h&&p){let e=null==u?o.TransactionHelper.unique_nonce_uint64():u;g={from:p,to:h,nonce:e,message:c?o.Aes.encrypt_with_checksum(m,h,e,l):d.isBuffer(l)?l.toString("utf-8"):l}}let y=new o.TransactionBuilder;return y.add_type_operation("asset_issue",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(t,"asset_issue")},issuer:t,asset_to_issue:{amount:i,asset_id:a},issue_to_account:e,memo:g}),r.Z.process_transaction(y,null,!0)}))},createWorker:(e,t)=>new Promise(((a,s)=>{let i=new o.TransactionBuilder;const l=o.ChainStore.getAsset("1.3.0");l||s(new Error("Can't find core asset, please try again"));let c=Math.pow(10,l.get("precision"));const d=o.ChainStore.getAccount(t).get("id");d||s(new Error("Can't find the owner account, please try again"));try{i.add_type_operation("worker_create",{fee:{amount:0,asset_id:n.Z.getFinalFeeAsset(t,"worker_create")},owner:d,work_begin_date:e.start,work_end_date:e.end,daily_pay:e.pay*c,name:e.title,url:e.url,initializer:[1,{pay_vesting_period_days:e.vesting}]})}catch(e){s(e)}r.Z.process_transaction(i,null,!0).then(a).catch(s)})),updateAccount(e){let t=new o.TransactionBuilder;return t.add_type_operation("account_update",e),r.Z.process_transaction(t,null,!0)},_ensureAccount:async e=>"object"==typeof e&&e.get("id")?e:await(0,o.FetchChain)("getAccount",e,!1),_ensureAsset:async e=>"object"==typeof e&&e.get("id")?e:await(0,o.FetchChain)("getAsset",e),async createWithdrawPermission(e,t,a,i,l,c,d=null,u=null,p=!0){null==d&&(d=new Date),"number"==typeof d&&(d=new Date(d)),await s.Z.unlock(),u||(u=n.Z.getFinalFeeAsset(e,"withdraw_permission_create"));let h={from:await this._ensureAccount(e),to:await this._ensureAccount(t),limitAsset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(u)},m=new o.TransactionBuilder,g=m.get_type_operation("withdraw_permission_create",{fee:{amount:0,asset_id:h.feeAsset.get("id")},withdraw_from_account:h.from.get("id"),authorized_account:h.to.get("id"),withdrawal_limit:{amount:i,asset_id:h.limitAsset.get("id")},withdrawal_period_sec:l,periods_until_expiration:c,period_start_time:d});if(m.add_operation(g),await r.Z.process_transaction(m,null,p),!m.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async updateWithdrawPermission(e,t,a,i,l,c,d,u=null,p=null,h=!0){null==u&&(u=new Date),"number"==typeof u&&(u=new Date(u)),await s.Z.unlock(),p||(p=n.Z.getFinalFeeAsset(t,"withdraw_permission_update"));let m={from:await this._ensureAccount(t),to:await this._ensureAccount(a),limitAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(p)},g=new o.TransactionBuilder,b=g.get_type_operation("withdraw_permission_update",{permission_to_update:e,fee:{amount:0,asset_id:m.feeAsset.get("id")},withdraw_from_account:m.from.get("id"),authorized_account:m.to.get("id"),withdrawal_limit:{amount:l,asset_id:m.limitAsset.get("id")},withdrawal_period_sec:c,periods_until_expiration:d,period_start_time:u});if(g.add_operation(b),await r.Z.process_transaction(g,null,h),!g.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async claimWithdrawPermission(e,t,a,i,l,c=null,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(a,"withdraw_permission_claim"));let p,h={from:await this._ensureAccount(t),to:await this._ensureAccount(a),claimAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)};if(c){let e=this._get_memo_keys(h.to,!0),t=this._get_memo_keys(h.from,!1);if(e.public_key&&t.public_key){let a=o.TransactionHelper.unique_nonce_uint64();p={from:e.public_key,to:t.public_key,nonce:a,message:o.Aes.encrypt_with_checksum(e.private_key,t.public_key,a,c)}}}let m=new o.TransactionBuilder,g=m.get_type_operation("withdraw_permission_claim",{fee:{amount:0,asset_id:h.feeAsset.get("id")},withdraw_permission:e,withdraw_from_account:h.from.get("id"),withdraw_to_account:h.to.get("id"),amount_to_withdraw:{amount:l,asset_id:h.claimAsset.get("id")},memo:p||void 0});if(m.add_operation(g),await r.Z.process_transaction(m,null,u),!m.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async deleteWithdrawPermission(e,t,a,i=null,l=!0){await s.Z.unlock(),i||(i=n.Z.getFinalFeeAsset(t,"withdraw_permission_delete"));let c={from:await this._ensureAccount(t),to:await this._ensureAccount(a),feeAsset:await this._ensureAsset(i)},d=new o.TransactionBuilder,u=d.get_type_operation("withdraw_permission_delete",{fee:{amount:0,asset_id:c.feeAsset.get("id")},withdrawal_permission:e,withdraw_from_account:c.from.get("id"),authorized_account:c.to.get("id")});if(d.add_operation(u),await r.Z.process_transaction(d,null,l),!d.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async createVestingBalance(e,t,a,i,l,c=null,d=!0){await s.Z.unlock(),c||(c=n.Z.getFinalFeeAsset(e,"vesting_balance_create"));let u={creator:await this._ensureAccount(e),owner:await this._ensureAccount(t),asset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(c)},p=new o.TransactionBuilder,h=p.get_type_operation("vesting_balance_create",{fee:{amount:0,asset_id:u.feeAsset.get("id")},creator:u.creator.get("id"),owner:u.owner.get("id"),amount:{amount:i,asset_id:u.asset.get("id")},policy:l});if(p.add_operation(h),await r.Z.process_transaction(p,null,d),!p.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async createTicket(e,t,a,i=o.ChainTypes.ticket_type.lock_forever,l=null,c=!0){await s.Z.unlock(),l||(l=n.Z.getFinalFeeAsset(e,"ticket_create"));let d={account:await this._ensureAccount(e),asset:await this._ensureAsset(t),feeAsset:await this._ensureAsset(l)},u=new o.TransactionBuilder,p=u.get_type_operation("ticket_create",{fee:{amount:0,asset_id:d.feeAsset.get("id")},account:d.account.get("id"),target_type:i,amount:{amount:a,asset_id:d.asset.get("id")},extensions:{}});if(u.add_operation(p),await r.Z.process_transaction(u,null,c),!u.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolCreate(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_create"));let p={account:await this._ensureAccount(e),assetA:await this._ensureAsset(t),assetB:await this._ensureAsset(a),shareAsset:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_create",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),asset_a:p.assetA.get("id"),asset_b:p.assetB.get("id"),share_asset:p.shareAsset.get("id"),taker_fee_percent:l,withdrawal_fee_percent:c,extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolDelete(e,t,a=null,i=!0){await s.Z.unlock(),a||(a=n.Z.getFinalFeeAsset(e,"liquidity_pool_delete"));let l={account:await this._ensureAccount(e),feeAsset:await this._ensureAsset(a)},c=new o.TransactionBuilder,d=c.get_type_operation("liquidity_pool_delete",{fee:{amount:0,asset_id:l.feeAsset.get("id")},account:l.account.get("id"),pool:t,extensions:{}});if(c.add_operation(d),await r.Z.process_transaction(c,null,i),!c.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolDeposit(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_deposit"));let p={account:await this._ensureAccount(e),assetA:await this._ensureAsset(a),assetB:await this._ensureAsset(i),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_deposit",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),pool:t,amount_a:{amount:l,asset_id:p.assetA.get("id")},amount_b:{amount:c,asset_id:p.assetB.get("id")},extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolWithdraw(e,t,a,i,l=null,c=!0){await s.Z.unlock(),l||(l=n.Z.getFinalFeeAsset(e,"liquidity_pool_withdraw"));let d={account:await this._ensureAccount(e),shareAsset:await this._ensureAsset(a),feeAsset:await this._ensureAsset(l)},u=new o.TransactionBuilder,p=u.get_type_operation("liquidity_pool_withdraw",{fee:{amount:0,asset_id:d.feeAsset.get("id")},account:d.account.get("id"),pool:t,share_amount:{amount:i,asset_id:d.shareAsset.get("id")},extensions:{}});if(u.add_operation(p),await r.Z.process_transaction(u,null,c),!u.tr_buffer)throw"Something went finalization the transaction, this should not happen"},async liquidityPoolExchange(e,t,a,i,l,c,d=null,u=!0){await s.Z.unlock(),d||(d=n.Z.getFinalFeeAsset(e,"liquidity_pool_exchange"));let p={account:await this._ensureAccount(e),saleAsset:await this._ensureAsset(a),receiveAsset:await this._ensureAsset(l),feeAsset:await this._ensureAsset(d)},h=new o.TransactionBuilder,m=h.get_type_operation("liquidity_pool_exchange",{fee:{amount:0,asset_id:p.feeAsset.get("id")},account:p.account.get("id"),pool:t,amount_to_sell:{amount:i,asset_id:p.saleAsset.get("id")},min_to_receive:{amount:c,asset_id:p.receiveAsset.get("id")},extensions:{}});if(h.add_operation(m),await r.Z.process_transaction(h,null,u),!h.tr_buffer)throw"Something went finalization the transaction, this should not happen"}}},55894:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(30806),n=a(11390);const r={new_transaction:()=>new s.TransactionBuilder,sign_and_broadcast:(e,t=!0)=>(s.SerializerValidation.required(e,"transaction"),WalletDb.process_transaction(e,null,t)),template(e){let t=s.TransactionHelper.template(e,{use_default:!0,annotate:!0});return console.error(JSON.stringify(t,null,4)),t=s.TransactionHelper.template(e,{use_default:!0,annotate:!1}),console.error(JSON.stringify(t)),t},transfer:(e,t,a,s,r,o=!0,i=!0,l=null)=>(console.error("deprecated, call application_api.transfer instead"),n.Z.transfer({from_account_id:e,to_account_id:t,amount:a,asset:s,memo_message:r,broadcast:o,encrypt_memo:i,optional_nonce:l}))}},91507:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var s=a(55420);const n=new class{lookupAccounts(e,t){return s.Apis.instance().db_api().exec("lookup_accounts",[e,t],!1)}lookupAccountByPublicKey(e){return s.Apis.instance().db_api().exec("get_key_references",[[e]])}}},21712:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d,Eu:()=>i,GB:()=>h,Jg:()=>u,Jt:()=>l,M1:()=>p,MU:()=>b,V9:()=>m,gL:()=>n,mk:()=>g,q:()=>r,ul:()=>c,yP:()=>o});var s=a(60567);const n={BASE:"https://api.ioxbank.com/bitshares",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",NEW_DEPOSIT_ADDRESS:"/simple-api/initiate-trade"},r={BASE:"https://api.blocktrades.us/v2",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},o={BASE:"https://ol-api1.openledger.info/api/v0/ol/support",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount",RPC_URL:"https://openledger.info/api/"},i={BASE:"https://gateway.rudex.org/api/rudex",COINS_LIST:"/coins",NEW_DEPOSIT_ADDRESS:"/simple-api/initiate-trade"},l={BASE:"https://dex-api.bitspark.io/api/v1",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},c={BASE:"https://api.crypto-bridge.org/api/v1",COINS_LIST:"/coins",ACTIVE_WALLETS:"/wallets",MARKETS:"/markets",TRADING_PAIRS:"/trading-pairs"},d={BASE:"https://citadel.li/trade",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs",DEPOSIT_LIMIT:"/deposit-limits",ESTIMATE_OUTPUT:"/estimate-output-amount",ESTIMATE_INPUT:"/estimate-input-amount"},u={BASE:"https://openapi.52bts.net/adjust",COINS_LIST:"/coins",ACTIVE_WALLETS:"/active-wallets",TRADING_PAIRS:"/trading-pairs"},p={BASE:"https://api.52bts.net",ASSET_LIST:"/gateway/asset/assetList",ASSET_DETAIL:"/gateway/asset/assetDetail",GET_DEPOSIT_ADDRESS:"/gateway/address/getAddress",CHECK_WITHDRAY_ADDRESS:"/gateway/address/checkAddress",DEPOSIT_RECORD_LIST:"/gateway/deposit/recordList",DEPOSIT_RECORD_DETAIL:"/gateway/deposit/recordDetail",WITHDRAW_RECORD_LIST:"/gateway/withdraw/recordList",WITHDRAW_RECORD_DETAIL:"/gateway/withdraw/recordDetail",GET_USER_INFO:"/gateway/user/getUserInfo",USER_AGREEMENT:"/gateway/user/isAgree",WITHDRAW_RULE:"/gateway/withdraw/rule"},h={BASE:"https://piratecash.net/dexapi",COINS_LIST:"/coins"},m={BASE:"https://apis.xbts.io/api/v2",COINS_LIST:"/coin"},g=["Northern Europe","Western Europe","Southern Europe","Eastern Europe","Northern Asia","Western Asia","Southern Asia","Eastern Asia","Central Asia","Southeastern Asia","Australia and New Zealand","Melanesia","Polynesia","Micronesia","Northern Africa","Western Africa","Middle Africa","Eastern Africa","Southern Africa","Northern America","Central America","Caribbean","South America"],b={DEFAULT_WS_NODE:"wss://fake.automatic-selection.com",WS_NODE_LIST:[{url:"wss://fake.automatic-selection.com",location:{translate:"settings.api_closest"}},{url:"ws://127.0.0.1:8090",location:"Locally hosted"},{url:"wss://dex.iobanker.com/ws",region:"Western Europe",country:"Germany",location:"Frankfurt",operator:"Witness: iobanker-core",contact:"email:admin@iobanker.com"},{url:"wss://api.bts.btspp.io:10100",region:"Eastern Asia",country:"China",location:"Hangzhou",operator:"Witness: btspp-witness",contact:"telegram:btsplusplus"},{url:"wss://api.bts.mobi/ws",region:"Northern America",country:"U.S.A.",location:"Virginia",operator:"Witness: in.abit",contact:"telegram:abitmore"},{url:"wss://btsws.roelandp.nl/ws",region:"Northern Europe",country:"Finland",location:"Helsinki",operator:"Witness: roelandp",contact:"telegram:roelandp"},{url:"wss://btsapi.magicw.net/ws",region:"Eastern Asia",country:"China",location:"Hangzhou",operator:"Witness: magicwallet.witness",contact:"telegram:plus_wave"},{url:"wss://api.61bts.com",region:"Eastern Asia",country:"China",location:"Shandong",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api-us.61bts.com",region:"Northern America",country:"USA",location:"St. Louis",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api.dex.trading/",region:"Western Europe",country:"France",location:"Paris",operator:"Witness: zapata42-witness",contact:"telegram:Zapata_42"},{url:"wss://eu.nodes.bitshares.ws",region:"Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: blocksights",contact:"telegram:blocksights"},{url:"wss://public.xbts.io/ws",region:"Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://cloud.xbts.io/ws",region:"Northern America",country:"U.S.A.",location:"VG, Ashburn",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://node.xbts.io/ws",region:"Western Europe",country:"Germany",location:"Falkenstein",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://bts.mypi.win",region:"Northern America",country:"U.S.A.",location:"Seattle, CA",operator:"Witness: gbac-ety001",contact:"email:work@akawa.ink"},{url:"wss://api.btslebin.com/ws",region:"Eastern Asia",country:"China",location:"Hong Kong",operator:"Witness: lebin-witness",contact:"telegram: lebinbit"},{url:"wss://bitsharesapi.loclx.io",region:"North America",country:"United States",location:"Chicago",operator:"bitshares.info",contact:"telegram:brekyrself"},{url:"wss://eu.nodes.testnet.bitshares.ws",region:"TESTNET - Western Europe",country:"Germany",location:"Nuremberg",operator:"Witness: blocksights",contact:"telegram:blocksights"},{url:"wss://testnet.dex.trading/",region:"TESTNET - Western Europe",country:"France",location:"Paris",operator:"Witness: zapata42-witness",contact:"telegram:Zapata_42"},{url:"wss://testnet.xbts.io/ws",region:"TESTNET - Europe",country:"Germany",location:"Nuremberg",operator:"Witness: xbtsio-wallet",contact:"telegram: xbtsio"},{url:"wss://api-testnet.61bts.com/ws",region:"Eastern Asia",country:"China",location:"Shandong",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://api-us-testnet.61bts.com/ws",region:"Northern America",country:"USA",location:"St. Louis",operator:"Witness: liuye",contact:"email:work@akawa.ink"},{url:"wss://btstestnet.cybertron.ninja/ws",region:"Northern America",country:"USA",location:"Utah",operator:"Witness: cn-faucet-test",contact:"email:codinheim@protonmail.com"},{url:"wss://bitsharestestnet.loclx.io",region:"Northern America",country:"USA",location:"Chicago",operator:"bitshares.info",contact:"telegram:brekyrself"}],ES_WRAPPER_LIST:[{url:"https://api.bitshares.ws/openexplorer",region:"Western Europe",country:"Germany",operator:"blocksights.info",contact:"telegram:blocksights"}],DEFAULT_FAUCET:(0,s.dM)().url,TESTNET_FAUCET:(0,s.GE)().url}},8804:(e,t,a)=>{a(37344),a(34921),a(44532),a(4552),a(32316),a(30649),a(6717),a(88918),a(41450),a(24019),a(77399),a(33902),a(59639),a(57681),a(57202),a(10372),a(93815),a(58728),a(65731),a(8476),a(79063),a(44851),a(20170),a(81610),a(72794),a(34661),a(47868),a(53289),a(61010),a(89776),a(22425),a(8971),a(17038),a(14935),a(64254),a(57634),a(47987),a(90378),a(65968),a(51797),a(6644),a(46195),a(41519),a(19612),a(99042),a(78331),a(72590),a(90037),a(26275),a(15234),a(34389),a(80790),a(74384),a(37199),a(44301),a(97835),a(6418),a(13221),a(87554),a(80265),a(10853),a(5228),a(51482),a(23254),a(1904),a(43368),a(21113),a(99139),a(50623),a(67063),a(92124),a(8131),a(36324),a(83408),a(89951),a(89773),a(61139),a(85977),a(81551),a(32275),a(13538),a(31253),a(63016),a(86741),a(64652),a(58661),a(54849),a(6047),a(26203),a(90859),a(1185),a(75919),a(42364),a(5119),a(25585),a(44704),a(18625),a(65953),a(89745),a(48810),a(86946),a(13176),a(59929)},86342:(e,t,a)=>{a(15663),a(2),a(33508),a(21912),a(69426),a(94770),a(118),a(27599),a(62821),a(87664),a(86633)},28065:(e,t,a)=>{a(24242),a(59628),a(30210),a(9967),a(72484),a(71466),a(89907),a(12710),a(79710),a(63600)},49181:(e,t,a)=>{a(71146),a(87056),a(76124),a(57147),a(42482),a(8804),a(86342),a(28065)},89515:e=>{e.exports=["de","es","fr","ko","it","tr","ru","zh","ja"]},60567:(e,t,a)=>{"use strict";a.d(t,{GE:()=>l,R7:()=>c,S2:()=>f,Sf:()=>_,Vx:()=>d,aJ:()=>b,dM:()=>i,dP:()=>o,f1:()=>u,qq:()=>k,rC:()=>y,rY:()=>p,sH:()=>w,sY:()=>g,v:()=>h,w:()=>r,wV:()=>m});var s=a(55420);function n(){return"4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8"!==s.Apis.instance().chain_id}function r(){return"BitShares"}function o(){return"https://wallet.bitshares.org"}function i(){return{url:"https://faucet.bitshares.eu/onboarding",show:!0,editable:!1,referrer:"onboarding.bitshares.foundation"}}function l(){return{url:"https://faucet.testnet.bitshares.eu",show:!0,editable:!1}}function c(){return a(30821).Z}function d(){return"darkTheme"}function u(){return"password"}function p(){return n()?["TEST"]:["BTS","USD","CNY","BTC","EUR","GBP"]}function h(){return n()?"USD_TEST":"BTS_CNY"}function m(){return n()?["TEST"]:["BTS","BTC","CNY","USD","USDT","ETH"]}function g(){if(n())return["TEST"];let e={nativeTokens:["BTC","BTC1.0","BTS","CNY","CNY1.0","EUR","EUR1.0","GOLD","GOLD1.0","RUBLE","RUB1.0","SILVER","SILVER1.0","USD","USD1.0"],gdexTokens:["GDEX.BTC","GDEX.BTO","GDEX.EOS","GDEX.ETH","GDEX.BKBT","GDEX.GXC","GDEX.SEER","GDEX.FOTA","GDEX.JRC","GDEX.EOSDAC","GDEX.MTS","GDEX.GUSD","GDEX.IQ","GDEX.NULS","GDEX.USDT"],openledgerTokens:[],rudexTokens:[],piratecashTockens:["PIRATE.PIRATE","PIRATE.BTC","PIRATE.LTC","PIRATE.BCC","PIRATE.DOGE","PIRATE.COSA"],xbtsxTokens:["XBTSX.STH","XBTSX.POST","XBTSX.DOGE","XBTSX.BTC","XBTSX.LTC","XBTSX.DASH","XBTSX.BTG","XBTSX.NVC","XBTSX.42","XBTSX.NMC","XBTSX.WAVES","XBTSX.ETH","XBTSX.ONION","XBTSX.EGC","XBTSX.BCH","XBTSX.MDL","XBTSX.SKY","XBTSX.SLB","XBTSX.GRS","XBTSX.XSM","XBTSX.XBB","XBTSX.EXR","XBTSX.BCCX","XBTSX.GUAP","XBTSX.AXAI","XBTSX.TUSD","XBTSX.USDT","XBTSX.RVN","XBTSX.TRD","XBTSX.SCH","XBTSX.USDN","XBTSX.FIL","XBTSX.EOS","XBTSX.RUB","XBTSX.USD","XBTSX.EUR","XBTSX.VTC","XBTSX.USDC","XBTSX.BAT","XBTSX.PING","XBTSX.ATRI","XBTSX.BNB","XBTSX.BUSD","XBTSX.TRX","XBTSX.HT","XBTSX.XRP","XBTSX.SHU","XBTSX.UNI","XBTSX.HIVE","XBTSX.EMC","XBTSX.NESS","XBTSX.PPC","XBTSX.SHIB","XBTSX.HBD","XBTSX.PIVX","XBTSX.AVAX","XBTSX.RTM","XBTSX.XAUT","XBTSX.TUSC","XBTSX.MATIC","XBTSX.HVQ","XBTSX.TCG","XBTSX.NCH","XBTSX.LUNR","XBTSX.LUNAREUM"],honestTokens:["HONEST","HONEST.MONEY","HONEST.AGORISM","HONEST.DEV","HONEST.CNY","HONEST.USD","HONEST.BTC","HONEST.XAU","HONEST.XAG","HONEST.ETH","HONEST.XRP","HONEST.XRP1","HONEST.ETH1","HONEST.USDSHORT","HONEST.BTCSHORT","HONEST.ADA","HONEST.DOT","HONEST.LTC","HONEST.SOL","HONEST.XMR","HONEST.ATOM","HONEST.XLM","HONEST.ALGO","HONEST.FIL","HONEST.EOS","HONEST.RUB","HONEST.EUR","HONEST.GBP","HONEST.JPY","HONEST.KRW","HONEST.ADASHORT","HONEST.DOTSHORT","HONEST.LTCSHORT","HONEST.SOLSHORT","HONEST.XMRSHORT","HONEST.ATOMSHORT","HONEST.XLMSHORT","HONEST.ALGOSHORT","HONEST.FILSHORT","HONEST.EOSSHORT","HONEST.RUBSHORT","HONEST.EURSHORT","HONEST.GBPSHORT","HONEST.JPYSHORT","HONEST.KRWSHORT","HONEST.XRPSHORT","HONEST.ETHSHORT","HONEST.XAUSHORT","HONEST.XAGSHORT","HONEST.CNYSHORT"],ioxbankTokens:["IOB.XRP","IOB.XLM"],otherTokens:["CVCOIN","HERO","OCT","HERTZ","YOYOW"]},t=[];for(let a in e)t=t.concat(e[a]);return t}function b(){return n()?[]:["XBTSX.","GDEX.","HONEST.","IOB.","PIRATE."]}function f(){return[]}function y(e){const t=["TRADE","OPEN","RUDEX","GDEX","PIRATE","XBTSX","IOB","CITADEL","BRIDGE","SPARKDEX"];return e?t.indexOf(e)>=0:t.length>0}function _(){return["password","wallet"]}function w(){let e=null;return e=n()?"NOTIFICATIONS":"TEST",{symbol:e,explanation:"This asset is used for decentralized configuration of the BitShares UI placed under bitshares.org."}}function k(){return"bitshares"}},59707:(e,t,a)=>{"use strict";a.d(t,{Z:()=>Pe});var s=a(67294),n=a(58466),r=a(9739);const o=({op:e,proposer:t,index:a,changeColor:o})=>{o("success");let i=null;return e[1].memo&&(i=s.createElement(r.Z,{memo:e[1].memo})),e[1].amount.amount=parseFloat(e[1].amount.amount),s.createElement("span",{className:"right-td"},s.createElement("div",{className:"inline-block"},s.createElement("div",null,s.createElement(n.Z,{string:"operation.transfer",keys:[{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount"},{type:"account",value:e[1].to,arg:"to"}]}),i)))};var i=a(82267),l=a(5833);const c=({op:e,changeColor:t,fromComponent:a,marketDirections:r,result:o})=>{if(t("warning"),"proposed_operation"===a){let t=l.Z.isAskOp(e[1]);return s.createElement("span",null,s.createElement(n.Z,{string:t?"proposal.limit_order_sell":"proposal.limit_order_buy",keys:[{type:"account",value:e[1].seller,arg:"account"},{type:"amount",value:t?e[1].amount_to_sell:e[1].min_to_receive,arg:"amount"},{type:"price",value:{base:t?e[1].min_to_receive:e[1].amount_to_sell,quote:t?e[1].amount_to_sell:e[1].min_to_receive},arg:"price"}]}))}{let t=e[1];return s.createElement("span",null,s.createElement(i.Z.Wrapper,{base:t.min_to_receive.asset_id,quote:t.amount_to_sell.asset_id},(({base:a,quote:i})=>{const{marketName:c,first:d,second:u}=l.Z.getMarketName(a,i),p=r.get(c),h=t.amount_to_sell.asset_id===(p?d.get("id"):u.get("id"));let m=h?t.amount_to_sell:t.min_to_receive,g=h?t.min_to_receive:t.amount_to_sell;const b=h?e[1].min_to_receive:e[1].amount_to_sell;let f=o&&"string"==typeof o[1]?"#"+o[1].substring(4):"";return s.createElement(n.Z,{string:h?"operation.limit_order_buy":"operation.limit_order_sell",keys:[{type:"account",value:e[1].seller,arg:"account"},{type:"amount",value:b,arg:"amount"},{type:"price",value:{base:m,quote:g},arg:"price"}],params:{order:f}})})))}};var d=a(58074),u=a.n(d);const p=({op:e,changeColor:t,fromComponent:a,linkToAccount:r})=>(t("cancel"),"proposed_operation"===a?s.createElement("span",null,r(e[1].fee_paying_account)," ",s.createElement(u(),{component:"span",content:"proposal.limit_order_cancel"})," #",e[1].order.substring(4)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.limit_order_cancel",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"}],params:{order:e[1].order.substring(4)}}))),h=({op:e,changeColor:t})=>(t("cancel"),s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.short_order_cancel"})," ",e[1].order)),m=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.call_order_update":"operation.call_order_update",keys:[{type:"account",value:e[1].funding_account,arg:"account"},{type:"asset",value:e[1].delta_debt.asset_id,arg:"debtSymbol"},{type:"amount",value:e[1].delta_debt,arg:"debt"},{type:"amount",value:e[1].delta_collateral,arg:"collateral"}]}))),g=()=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.create_key"})),b=({op:e,current:t,linkToAccount:a,fromComponent:r})=>"proposed_operation"===r?t===e[1].registrar?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.reg_account"})," ",a(e[1].name)):s.createElement("span",null,a(e[1].name)," ",s.createElement(u(),{component:"span",content:"proposal.was_reg_account"})," ",a(e[1].registrar)):s.createElement(n.Z,{string:"operation.reg_account",keys:[{type:"account",value:e[1].registrar,arg:"registrar"},{type:"account",value:e[1].name,arg:"new_account"}]});var f=a(30806);const y=(e,t)=>({minus:e.filter((e=>!t.includes(e))),plus:t.filter((t=>!e.includes(t)))}),_=e=>{if(e.id.startsWith("1.14")){let t=f.ChainStore.getAccountName(e.worker_account);return"Worker "+e.name+(t?" of "+t:" account "+e.worker_account)}if(e.id.startsWith("1.6.")){return"Witness "+(f.ChainStore.getAccountName(e.witness_account)||" account "+e.witness_account)}return"Committee "+(f.ChainStore.getAccountName(e.committee_member_account)||" account "+e.committee_member_account)},w=({op:e,fromComponent:t,collapsed:a})=>{const r=e[1].account,o=e[1].new_options?e[1].new_options.votes:void 0,i=e[1].new_options?e[1].new_options.memo_key:void 0,l=e[1].owner?e[1].owner:void 0,c=e[1].active?e[1].active:void 0;let d={},u=[],p=[];if(null==a&&(a=!0),"proposed_operation"===t&&!a){const e=f.ChainStore.getAccount(r,!1),t=e.get("options").get("votes").toArray();if(o){const e=y(t,o),a=f.ChainStore.getObjectsByVoteIds(e.plus),s=f.ChainStore.getObjectsByVoteIds(e.minus);a&&s&&(a.forEach((e=>{if(e){const t=_(e.toJS());t&&u.push(t)}})),s.forEach((e=>{if(e){const t=_(e.toJS());t&&p.push(t)}})),d.votes={minus:p,plus:u})}if(l){d.owner={};const t=e.get("owner").get("key_auths").map((e=>e.get(0))).toArray();d.owner.keys=y(t,l.key_auths.map((e=>e[0])));const a=e.get("owner").get("account_auths").map((e=>e.get(0))).toArray();d.owner.accounts=y(a,l.account_auths.map((e=>e[0]))),e.get("owner").get("weight_threshold")!==l.weight_threshold&&(d.owner.weight_threshold=l.weight_threshold)}if(c){d.active={};const t=e.get("active").get("key_auths").map((e=>e.get(0))).toArray();d.active.keys=y(t,c.key_auths.map((e=>e[0])));const a=e.get("active").get("account_auths").map((e=>e.get(0))).toArray();d.active.accounts=y(a,c.account_auths.map((e=>e[0]))),e.get("active").get("weight_threshold")!==c.weight_threshold&&(d.active.weight_threshold=c.weight_threshold)}if(i){d.memo={};const t=e.get("options").get("memo_key");d.memo.keys=y([t],[i]),0==d.memo.keys.minus.length&&0==d.memo.keys.plus.length&&(d.memo=void 0)}}return s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.update_account":"operation.update_account",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"change",value:d,arg:"change"}]}))};var k=a(17315),v=a.n(k);const A=({op:e,fromComponent:t})=>{let a=v().account_listing,r=e[1].new_listing===a.no_listing?"unlisted_by":e[1].new_listing===a.white_listed?"whitelisted_by":"blacklisted_by";return"proposed_operation"===t?s.createElement("span",null,s.createElement(i.Z.Wrapper,{lister:e[1].authorizing_account,listee:e[1].account_to_list},(({lister:e,listee:t})=>s.createElement(u(),{component:"span",content:"transaction."+r,lister:e.get("name"),listee:t.get("name")})))):s.createElement("span",null,s.createElement(n.Z,{string:"operation."+r,keys:[{type:"account",value:e[1].authorizing_account,arg:"lister"},{type:"account",value:e[1].account_to_list,arg:"listee"}]}))},E=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?e[1].upgrade_to_lifetime_member?s.createElement("span",null,t(e[1].account_to_upgrade),"  ",s.createElement(u(),{component:"span",content:"proposal.lifetime_upgrade_account"})):s.createElement("span",null,t(e[1].account_to_upgrade),"  ",s.createElement(u(),{component:"span",content:"proposal.annual_upgrade_account"})):s.createElement("span",null,s.createElement(n.Z,{string:e[1].upgrade_to_lifetime_member?"operation.lifetime_upgrade_account":"operation.annual_upgrade_account",keys:[{type:"account",value:e[1].account_to_upgrade,arg:"account"}]})),x=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.transfer_account"})," ",t(e[1].account_id),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].new_owner)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.account_transfer",keys:[{type:"account",value:e[1].account_id,arg:"account"},{type:"account",value:e[1].new_owner,arg:"to"}]})),S=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),"proposed_operation"===a?s.createElement(n.Z,{string:"proposal.asset_create",keys:[{type:"account",value:e[1].issuer,arg:"account"}],params:{asset:e[1].symbol}}):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_create",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].symbol,arg:"asset"}]}))),C=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.asset_update":"operation.asset_update",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]})),T=({op:e,changeColor:t,fromComponent:a})=>(t("warning"),"proposed_operation"===a?s.createElement(n.Z,{string:"proposal.feed_producer",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_update_feed_producers",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}))),B=({op:e,changeColor:t,fromComponent:a})=>{let o;return t("warning"),e[1].memo&&(o=s.createElement(r.Z,{memo:e[1].memo})),e[1].asset_to_issue.amount=parseInt(e[1].asset_to_issue.amount,10),s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===a?"proposal.asset_issue":"operation.asset_issue",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"amount",value:e[1].asset_to_issue,arg:"amount"},{type:"account",value:e[1].issue_to_account,arg:"to"}]}),o)},z=({op:e,fromComponent:t})=>s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.asset_reserve":"operation.asset_reserve",keys:[{type:"account",value:e[1].payer,arg:"account"},{type:"amount",value:e[1].amount_to_reserve,arg:"amount"}]}));var P=a(21019);const N=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>{if(t("warning"),"proposed_operation"===r){let t=f.ChainStore.getAsset(e[1].asset_id);return t=t?t.get("symbol"):e[1].asset_id,s.createElement("span",null,a(e[1].from_account),"  ",s.createElement(u(),{component:"span",content:"proposal.fund_pool",asset:t})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}))}return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_fund_fee_pool",keys:[{type:"account",value:e[1].from_account,arg:"account"},{type:"asset",value:e[1].asset_id,arg:"asset"},{type:"amount",value:{amount:e[1].amount,asset_id:"1.3.0"},arg:"amount"}]}))},M=({op:e,result:t,changeColor:a,fromComponent:r})=>{if(a("warning"),"proposed_operation"===r)return s.createElement("span",null,s.createElement(n.Z,{string:"proposal.asset_settle",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}));{const a=e[1].amount,r=2;if(t&&t[0]==r){const r=t[1];return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_settle_instant",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:a,arg:"amount"},{type:"price",value:{base:a,quote:r},arg:"price"}]}))}return s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_settle",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}))}},Z=({op:e})=>s.createElement(n.Z,{string:"operation.asset_settle_cancel",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]});var I=a(33951);const O=({op:e,changeColor:t,linkToAsset:a,fromComponent:r})=>(t("warning"),"proposed_operation"===r?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.asset_global_settle"})," ",a(e[1].asset_to_settle)," ",s.createElement(u(),{component:"span",content:"proposal.at"})," ",s.createElement(I.Z,{style:{fontWeight:"bold"},quote_amount:e[1].settle_price.quote.amount,quote_asset:e[1].settle_price.quote.asset_id,base_asset:e[1].settle_price.base.asset_id,base_amount:e[1].settle_price.base.amount})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.asset_global_settle",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_to_settle,arg:"asset"},{type:"price",value:e[1].settle_price,arg:"price"}]}))),q=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>(t("warning"),"proposed_operation"===r?s.createElement("span",null,a(e[1].publisher)," ",s.createElement(u(),{component:"span",content:"proposal.publish_feed"})," ",s.createElement(I.Z,{base_asset:e[1].feed.settlement_price.base.asset_id,quote_asset:e[1].feed.settlement_price.quote.asset_id,base_amount:e[1].feed.settlement_price.base.amount,quote_amount:e[1].feed.settlement_price.quote.amount})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.publish_feed",keys:[{type:"account",value:e[1].publisher,arg:"account"},{type:"price",value:e[1].feed.settlement_price,arg:"price"}]}))),L=({op:e})=>s.createElement(n.Z,{string:"operation.asset_claim_pool",keys:[{type:"account",value:e[1].issuer,arg:"account"},{type:"asset",value:e[1].asset_id,arg:"asset"},{type:"amount",value:e[1].amount_to_claim,arg:"amount"}]}),D=({op:e})=>s.createElement(n.Z,{string:"operation.asset_update_issuer",keys:[{type:"account",value:e[1].issuer,arg:"from_account"},{type:"account",value:e[1].new_issuer,arg:"to_account"},{type:"asset",value:e[1].asset_to_update,arg:"asset"}]}),R=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_create"})," ",t(e[1].witness_account)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.witness_create",keys:[{type:"account",value:e[1].witness_account,arg:"account"}]})),j=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_update"})," ",t(e[1].witness_account)):s.createElement("span",null,s.createElement(n.Z,{string:"operation.witness_update",keys:[{type:"account",value:e[1].witness_account,arg:"account"}]})),F=({op:e,current:t,linkToAccount:a,fromComponent:n})=>"proposed_operation"===n?t===e[1].witness_account?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.witness_pay"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",a(e[1].witness_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.received"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",a(e[1].witness_account)):t===e[1].witness_account?s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.witness_pay"})," ",s.createElement(P.Z,{amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"transaction.to"})," ",a(e[1].witness_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.received"})," ",s.createElement(P.Z,{amount:e[1].amount,asset:"1.3.0"}),s.createElement(u(),{component:"span",content:"transaction.from"})," ",a(e[1].witness_account));var W=a(53528);const U=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},H=({op:e,result:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_create"})):s.createElement("div",{className:"inline-block"},s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_create",keys:[{type:"account",value:e[1]&&e[1].fee_paying_account,arg:"account"},{value:t?s.createElement(U,{objectId:t[1]}):"",arg:"proposal"}]}),":"),s.createElement("div",null,e[1]&&e[1].proposed_ops.map(((e,t)=>s.createElement(W.Z,{op:e.op,key:t,index:t,inverted:!1,hideFee:!0,hideOpLabel:!0,hideDate:!0,proposal:!0}))))),K=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},V=({op:e,linkToAccount:t,fromComponent:a})=>{if("proposed_operation"===a)return s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_update"}));{const a=["active_approvals_to_add","active_approvals_to_remove","owner_approvals_to_add","owner_approvals_to_remove","key_approvals_to_add","key_approvals_to_remove"];return s.createElement("div",null,s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_update",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"},{value:s.createElement(K,{objectId:e[1].proposal}),arg:"proposal"}]})),s.createElement("div",{className:"proposal-update"},a.map((a=>e[1][a].length?s.createElement("div",{key:a},s.createElement(u(),{content:`proposal.updated.${a}`}),s.createElement("ul",null,e[1][a].map((e=>s.createElement("li",{key:e},a.startsWith("key")?e:t(e)))))):null))))}},G=({objectId:e})=>{if("string"==typeof e){const t=e.split("."),{length:a}=t;if(a>0)return"#"+t[a-1]}return e},X=({op:e,fromComponent:t})=>"proposed_operation"===t?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.proposal_update"})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.proposal_delete",keys:[{type:"account",value:e[1].fee_paying_account,arg:"account"},{value:s.createElement(G,{objectId:e[1].proposal}),arg:"proposal"}]})),J=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_create"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_create"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),Y=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_update"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_update"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),Q=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_claim"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].withdraw_to_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_claim"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].withdraw_to_account)),$=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.withdraw_permission_delete"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].authorized_account)):s.createElement("span",null,s.createElement(u(),{component:"span",content:"transaction.withdraw_permission_delete"})," ",t(e[1].withdraw_from_account),s.createElement(u(),{component:"span",content:"transaction.to"})," ",t(e[1].authorized_account)),ee=({changeColor:e,op:t,linkToAccount:a,marketDirections:r,fromComponent:o})=>{e("success");const c=t[1];return"proposed_operation"===o?s.createElement("span",null,a(t.account_id)," ",s.createElement(u(),{component:"span",content:"proposal.paid"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:t.pays.amount,asset:t.pays.asset_id})," ",s.createElement(u(),{component:"span",content:"proposal.obtain"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:t.receives.amount,asset:t.receives.asset_id})," ",s.createElement(u(),{component:"span",content:"proposal.at"})," ",s.createElement(I.Z,{base_asset:c.pays.asset_id,base_amount:c.pays.amount,quote_asset:c.receives.asset_id,quote_amount:c.receives.amount})):s.createElement("span",null,s.createElement(i.Z.Wrapper,{base:c.receives.asset_id,quote:c.pays.asset_id},(({base:e,quote:a})=>{const{marketName:o,first:i,second:d}=l.Z.getMarketName(e,a),u=r.get(o),p=c.pays.asset_id===(u?i.get("id"):d.get("id"));let h=p?c.receives:c.pays,m=p?c.pays:c.receives,g=p?c.receives:c.pays,b=c.fee.asset_id===g.asset_id?g.amount-c.fee.amount:g.amount;return s.createElement(n.Z,{string:"operation.fill_order_"+(p?"buy":"sell"),keys:[{type:"account",value:t[1].account_id,arg:"account"},{type:"amount",value:{amount:b,asset_id:g.asset_id},arg:"amount"},{type:"price",value:{base:h,quote:m},arg:"price"}],params:{order:c.order_id.substring(4)}})})))},te=({fromComponent:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===e?"proposal.global_parameters_update":"transaction.global_parameters_update"})),ae=()=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.file_write"})),se=({op:e,linkToAccount:t,fromComponent:a})=>"proposed_operation"===a?s.createElement("span",null," ",t(e[1].creator),s.createElement(u(),{component:"span",content:"proposal.vesting_balance_create"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})," ",t(e[1].owner)):s.createElement("span",null," ",t(e[1].creator),s.createElement(u(),{component:"span",content:"transaction.vesting_balance_create"})," ",s.createElement(P.Z,{amount:e[1].amount.amount,asset:e[1].amount.asset_id})," ",t(e[1].owner)),ne=({op:e,fromComponent:t})=>s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.vesting_balance_withdraw":"operation.vesting_balance_withdraw",keys:[{type:"account",value:e[1].owner,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}),re=({op:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_create_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),oe=({op:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_cancel_offer"})," ",e[1].offer_id),ie=({op:e,linkToAccount:t,current:a})=>a===e[1].lender?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_accept_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount_borrowed.amount,asset:e[1].amount_borrowed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].borrower)):a===e[1].borrower?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_accept_offer"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount_borrowed.amount,asset:e[1].amount_borrowed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",t(e[1].lender)):null,le=({op:e,linkToAccount:t,current:a})=>a===e[1].lender?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_pay_collateral"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].collateral_claimed.amount,asset:e[1].collateral_claimed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.to"})," ",t(e[1].claimer)):a===e[1].claimer?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.bond_claim_collateral"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].collateral_claimed.amount,asset:e[1].collateral_claimed.asset_id}),s.createElement(u(),{component:"span",content:"proposal.from"})," ",t(e[1].lender)):null,ce=({op:e,fromComponent:t})=>"proposed_operation"===t?s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposal.create_worker"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].daily_pay,asset:"1.3.0"})):s.createElement("span",null,s.createElement(n.Z,{string:"operation.worker_create",keys:[{type:"account",value:e[1].owner,arg:"account"},{type:"amount",value:{amount:e[1].daily_pay,asset_id:"1.3.0"},arg:"pay"}],params:{name:e[1].name}}));var de=a(13973);const ue=({op:e,changeColor:t,linkToAccount:a,fromComponent:r})=>(t("success"),e[1].total_claimed.amount=parseInt(e[1].total_claimed.amount,10),"proposed_operation"===r?s.createElement("span",null,a(e[1].deposit_to_account)," ",s.createElement(i.Z.Wrapper,{asset:e[1].total_claimed.asset_id},(({asset:t})=>s.createElement(u(),{component:"span",content:"proposal.balance_claim",balance_amount:de.Z.format_asset(e[1].total_claimed.amount,t),balance_id:e[1].balance_to_claim.substring(5)})))):s.createElement("span",null,s.createElement(n.Z,{string:"operation.balance_claim",keys:[{type:"account",value:e[1].deposit_to_account,arg:"account"},{type:"amount",value:e[1].total_claimed,arg:"amount"}]}))),pe=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.committee_member_create":"transaction.committee_member_create"})," ",t(e[1].committee_member_account)),he=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,t(e[1].from)," ",s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.sent":"transaction.sent"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),me=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,t(e[1].to)," ",s.createElement(u(),{component:"span",content:"proposed_operation"===a?"proposal.received":"transaction.received"})," ",s.createElement(P.Z,{style:{fontWeight:"bold"},amount:e[1].amount.amount,asset:e[1].amount.asset_id})),ge=({op:e,changeColor:t,linkToAccount:a})=>(t("success"),e[1].amount_to_claim.amount=parseInt(e[1].amount_to_claim.amount,10),s.createElement("span",null,a(e[1].issuer)," ",s.createElement(i.Z.Wrapper,{asset:e[1].amount_to_claim.asset_id},(({asset:t})=>s.createElement(n.Z,{string:"transaction.asset_claim_fees",keys:[{type:"amount",value:e[1].amount_to_claim,arg:"balance_amount"},{type:"asset",value:t.get("id"),arg:"asset"}]}))))),be=({fromComponent:e})=>s.createElement("span",null,s.createElement(n.Z,{string:"proposed_operation"===e?"proposal.committee_member_update_global_parameters":"operation.committee_member_update_global_parameters",keys:[{type:"account",value:"1.2.0",arg:"account"}]})),fe=({fromComponent:e})=>s.createElement("span",null,s.createElement(u(),{component:"span",content:"proposed_operation"===e?"proposal.custom":"transaction.custom"})),ye=({op:e,fromComponent:t})=>s.createElement(n.Z,{string:"proposed_operation"===t?"proposal.override_transfer":"operation.override_transfer",keys:[{type:"account",value:e[1].issuer,arg:"issuer"},{type:"account",value:e[1].from,arg:"from"},{type:"account",value:e[1].to,arg:"to"},{type:"amount",value:e[1].amount,arg:"amount"}]});var _e=a(112),we=a.n(_e);const ke=({op:e})=>(console.log("unimplemented op:",e),s.createElement("span",null,we().translate("operation.unknown_operation")," ",e[0])),ve=({op:e})=>s.createElement(n.Z,{string:"operation.bid_collateral",keys:[{type:"account",value:e[1].bidder,arg:"bid_account"},{type:"amount",value:e[1].additional_collateral,arg:"collateral"},{type:"amount",value:e[1].debt_covered,arg:"debt"}]});var Ae=a(76660);const Ee=({op:e,block:t})=>{const a=f.ChainStore.getObject("2.0.0"),r=f.ChainStore.getObject("2.1.0");let o=de.Z.calc_block_time(t,a,r),i=!1;o||(o=de.Z.calc_block_time(t,a,r,!0),i=!0),e[1].amount.amount=parseFloat(e[1].amount.amount);let l=new Date;return l.setTime(o.getTime()+1e3*e[1].claim_period_seconds),s.createElement(s.Fragment,null,s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_create",keys:[{type:"date",arg:"lock_period",value:l},{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount",decimalOffset:"1.3.0"===e[1].amount.asset_id?5:null},{type:"account",value:e[1].to,arg:"to"}]}),s.createElement(Ae.Tooltip,{title:"Estimated"},i?"*":"")),s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(Ae.Tooltip,{placement:"bottom",title:we().translate("htlc.preimage_hash_explanation")},s.createElement("span",{className:"inline-block"},we().translate("htlc.preimage_hash")+" ("+e[1].preimage_size+", "+e[1].preimage_hash[0]+"): "+e[1].preimage_hash[1]))))},xe=({op:e})=>s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_extend",keys:[{type:"account",value:e[1].update_issuer,arg:"update_issuer"},{type:"timespan",arg:"seconds_to_add",value:e[1].seconds_to_add},{value:e[1].htlc_id,arg:"htlc_id"}]})),Se=({op:e,changeColor:t})=>(t("success"),s.createElement(s.Fragment,null,s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_redeem",keys:[{type:"account",value:e[1].redeemer,arg:"redeemer"},{value:e[1].htlc_id,arg:"htlc_id"}]})),s.createElement("div",{className:"memo",style:{paddingTop:5,cursor:"help"}},s.createElement(Ae.Tooltip,{placement:"bottom",title:we().translate("htlc.preimage_explanation")},s.createElement("span",{className:"inline-block"},we().translate("htlc.preimage")+": "+e[1].preimage))))),Ce=({op:e})=>s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_redeemed",keys:[{type:"account",value:e[1].to,arg:"to"},{type:"account",value:e[1].from,arg:"from"},{type:"amount",value:e[1].amount,arg:"amount",decimalOffset:"1.3.0"===e[1].amount.asset_id?5:null},{value:e[1].htlc_id,arg:"htlc_id"}]})),Te=({op:e,changeColor:t})=>(t("warning"),s.createElement("span",{className:"right-td"},s.createElement(n.Z,{string:"operation.htlc_refund",keys:[{value:e[1].htlc_id,arg:"htlc_id"},{type:"account",value:e[1].to,arg:"to"}]}))),Be=({op:e,linkToAccount:t,fromComponent:a})=>s.createElement("span",null,s.createElement(n.Z,{string:"operation.ticket_create",keys:[{type:"account",value:e[1].account,arg:"account"},{type:"amount",value:e[1].amount,arg:"amount"}]}),"  (",we().translate("operation.ticket_types."+e[1].target_type),")");function ze(){return ze=Object.assign||function(e){for(var t=1;t{"use strict";a.d(t,{Z:()=>u});var s=a(67294),n=a(89449),r=a(82267),o=a(7437),i=a(112),l=a.n(i),c=a(76660);class d extends s.Component{constructor(e){super(e),this.state={assets:[]}}componentDidMount(){this.getAssets()}getAssets(){let{backedCoins:e,include:t,includeBTS:a}=this.props,{assets:s}=this.state,n={};e.forEach((e=>{s=s.concat(e.map((e=>{let[t,a]=e.symbol.split(".");return!n[a]&&a&&t?(n[a]=!0,{id:a,label:a,gateway:t,gateFee:e.gateFee,issuer:e.issuerId||"1.2.96397"}):null}))).filter((e=>e)).filter((e=>"BTS"==e.id||!t||t.includes(e.id)))})),!1!==a&&s.push({id:"BTS",label:"BTS",gateway:""}),this.setState({assets:s})}getSelectedAssetArray(e){let t,{assets:a}=this.state;return a.map((a=>{a.id==e&&(t=a)})),t}_onSelect(e){let{onSelect:t}=this.props,a=this.getSelectedAssetArray(e);t&&t(a)}_onInputChanged(e){let{onChange:t}=this.props,a=this.getSelectedAssetArray(e);t&&a&&a.id&&t(a.id)}render(){let{usageContext:e}=this.props,t=this.state.assets.sort((function(e,t){if(e.id&&t.id)return e.id.localeCompare(t.id)}));return s.createElement(c.Select,{onSelect:this._onSelect.bind(this),onChange:this._onInputChanged.bind(this),onSearch:this._onInputChanged.bind(this),placeholder:l().translate("withdraw"==e?"gateway.asset_search_withdraw":"gateway.asset_search_deposit"),value:this.props.defaultValue,optionLabelProp:"value",showSearch:!0,style:{width:"100%"}},t.length>0?t.map((e=>s.createElement(c.Select.Option,{key:e.id,value:e.label},e.label))):s.createElement(c.Select.Option,{disabled:!0,key:0,value:0},l().translate("withdraw"==e?"modal.withdraw.no_assets":"modal.deposit.no_assets")))}}d=(0,r.Z)(d);const u=(0,n.$)(d,{listenTo:()=>[o.Z],getProps:()=>({backedCoins:o.Z.getState().backedCoins})})},23037:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(13973),n=a(43393),r=a.n(n),o=a(30806);const{object_type:i}=o.ChainTypes;function l(e){function t(t,a,s,n,r){return n=n||ANONYMOUS,null==a[s]?t?new Error("Required "+r+" `"+s+"` was not specified in `"+n+"`."):null:e(a,s,n,r)}let a=t.bind(null,!1);return a.isRequired=t.bind(null,!0),a}function c(e,t,a){return a=a||"ANONYMOUS",e[t]?"string"==typeof e[t]?null:new Error(`${t} in ${a} should be a key string`):null}const d={ChainObject:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let n=e[t];if("string"==typeof n)return s.Z.is_object_id(n)?null:new Error(`${t} in ${a} should be an object id`);if("object"!=typeof n)return new Error(`${t} in ${a} should be an object id or object`)}return null})),ChainAccount:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} of ${s} in ${a} should be an account id`);if(s instanceof Map&&s.get("name")&&1==s.size)return null}return null})),ChainAccountName:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return o.ChainValidation.is_account_name(s)?null:new Error(`${t} value of ${s} in ${a} is not a valid account name`)}return null})),ChainKeyRefs:l(c),ChainAddressBalances:l(c),ChainAsset:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} of ${s} in ${a} should be an asset symbol or id`)}return null})),ChainLiquidityPool:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];if("string"==typeof s)return null;if("object"!=typeof s)return new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainObjectsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainAccountsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainAssetsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null})),ChainLiquidityPoolsList:l((function(e,t,a){if(a=a||"ANONYMOUS",e[t]){let s=e[t];return r().List.isList(s)||r().Set.isSet(s)||s instanceof Object?null:new Error(`${t} in ${a} should be Immutable.List`)}return null}))}},49540:e=>{e.exports={formats:{date:{full:{second:"numeric",minute:"numeric",hour:"numeric",day:"numeric",month:"long",year:"numeric"},short:{second:"numeric",minute:"numeric",hour:"numeric",day:"numeric",month:"numeric",year:"numeric"},time:{second:"numeric",minute:"numeric",hour:"numeric"}}}}},80017:(e,t,a)=>{"use strict";let s,n;a.d(t,{Z:()=>r});const r=n={set_graphene_db:e=>{s=e},trx_readwrite:e=>s.transaction([e],"readwrite"),on_request_end:e=>new Promise(((t,a)=>{e.onsuccess=new o(e.onsuccess,t,e).event,e.onerror=new o(e.onerror,a,e).event})),on_transaction_end:e=>new Promise(((t,a)=>{e.oncomplete=new o(e.oncomplete,t).event,e.onabort=new o(e.onabort,a).event})),add:(e,t,a)=>function(t,a){let s=e.add(t),r=null;a&&(s.onsuccess=new o(s.onsuccess,(e=>{r=a(e)})).event);let i=n.on_request_end(s).then((e=>(null!=e.target.result&&(t.id=e.target.result),[t,e])));return r?Promise.all([r,i]):i}(t,a),cursor:(e,t,a)=>new Promise(((n,r)=>{a||((a=s.transaction([e],"readonly")).onerror=e=>{console.error("ERROR idb_helper.cursor transaction",e),r(e)});let o=a.objectStore(e).openCursor();o.onsuccess=e=>{let a=e.target.result,s=t(a,e);!1===s&&n(),a||n(s)},o.onerror=e=>{let t={error:e.target.error.message,data:e};console.log("ERROR idb_helper.cursor request",t),r(t)}})).then(),autoIncrement_unique:(e,t,a)=>e.createObjectStore(t,{keyPath:"id",autoIncrement:!0}).createIndex("by_"+a,a,{unique:!0})};class o{constructor(e,t,a){this.existing_on_event=e,this.callback=t,this.event=e=>{e.target.error&&console.error("---- transaction error ----\x3e",e.target.error),this.callback(e),this.existing_on_event&&this.existing_on_event(e)}}}},95768:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(55420),n=a(80017);class r{constructor(e){this.impl=e}setDbSuffix(e){this.database_name="graphene_db"+e}openIndexedDB(){return this.db?Promise.resolve(this.db):new Promise(((e,t)=>{var a=this.impl.open(this.database_name,1);a.onupgradeneeded=e=>{this.db=e.target.result,this.db.createObjectStore("properties",{keyPath:"name"})},a.onsuccess=t=>{this.db=t.target.result,e(this.db)},a.onerror=e=>{t(e.target.error)}}))}getProperty(e,t){return this.openIndexedDB().then((a=>{var s=a.transaction(["properties"],"readonly").objectStore("properties");return n.Z.on_request_end(s.get(e)).then((e=>{var a=e.target.result;return a?a.value:t}))})).catch((e=>{throw console.error(e),e}))}setProperty(e,t){return this.openIndexedDB().then((a=>{var s=a.transaction(["properties"],"readwrite").objectStore("properties");return t&&t.toJS&&(t=t.toJS()),n.Z.on_request_end(s.put({name:e,value:t}))})).catch((e=>{throw console.error(e),e}))}deleteDatabase(e=!1){return e?(console.log("deleting",this.database_name),iDB.impl.deleteDatabase(this.database_name).result):"Are you sure?"}close(){this.db.close(),this.db=null}}var o=a(91e3);const i="graphene_v2",l=["wallet","private_keys","linked_accounts"];o.Z.MAIN_NET;var c,d,u="default",p=function(e=u,t=s.Apis.instance().chain_id){return[i,t?t.substring(0,6):"",e].join("_")},h=function(e=this.getDatabaseName()){return new Promise(((t,a)=>{var s=m.impl.open(e,2);s.onupgradeneeded=function(e){var t,a;t=e.target.result,0===(a=e.oldVersion)&&(t.createObjectStore("wallet",{keyPath:"public_name"}),n.Z.autoIncrement_unique(t,"private_keys","pubkey"),t.createObjectStore("linked_accounts",{keyPath:"name"})),a<2&&t.createObjectStore("cached_properties",{keyPath:"name"})},s.onsuccess=function(a){var s=a.target.result;m.database_name=e,n.Z.set_graphene_db(s),t(s)},s.onerror=function(e){a(e.target.error)}}))},m={WALLET_BACKUP_STORES:l,getDatabaseName:p,getCurrentWalletName:()=>u,deleteDatabase:function(e=!1){return e?(console.log("deleting",this.database_name),m.impl.deleteDatabase(this.database_name).result):"Are you sure?"},set_impl:function(e){this.impl=e,this.root=new r(this.impl)},set_chain_id:function(e){this.chain_id=e;var t=e?e.substring(0,6):"";this.root.setDbSuffix("_"+t)},init_instance:function(e,t=s.Apis.instance().chain_id){return c||(e&&(this.set_impl(e),"__useShim"in e&&this.impl.__useShim()),this.set_chain_id(t),c=function(e){let t=function(e){return m.root.getProperty("current_wallet","default").then((t=>{u=t;var a=p(t,e);return h(a)}))}(e);return t.then((e=>{d=e})),{init_promise:t,db:()=>d}}(t)),c},instance:function(){if(!c)throw new Error("Internal Database instance is not initialized");return c},close:function(){c&&c.db()&&c.db().close(),n.Z.set_graphene_db(null),c=void 0},add_to_store:function(e,t){return new Promise(((a,s)=>{let n=this.instance().db().transaction([e],"readwrite").objectStore(e).add(t);n.onsuccess=()=>{a(t)},n.onerror=e=>{console.log("ERROR!!! add_to_store - can't store value in db. ",e.target.error.message,t),s(e.target.error.message)}}))},remove_from_store:function(e,t){return new Promise(((a,s)=>{let n=this.instance().db().transaction([e],"readwrite").objectStore(e).delete(t);n.onsuccess=()=>{a()},n.onerror=e=>{console.log("ERROR!!! remove_from_store - can't remove value from db. ",e.target.error.message,t),s(e.target.error.message)}}))},load_data:function(e){return new Promise(((t,a)=>{let s=[],n=this.instance().db().transaction([e],"readonly").objectStore(e).openCursor();n.onsuccess=e=>{let a=e.target.result;a?(s.push(a.value),a.continue()):t(s)},n.onerror=e=>{console.log("ERROR!!! open_store - can't get '`${store_name}`' cursor. ",e.target.error.message),a(e.target.error.message)}}))},getCachedProperty:function(e,t){var a=this.instance().db().transaction(["cached_properties"],"readonly").objectStore("cached_properties");return n.Z.on_request_end(a.get(e)).then((e=>{var a=e.target.result;return a?a.value:t})).catch((e=>{throw console.error(e),e}))},setCachedProperty:function(e,t){var a=this.instance().db().transaction(["cached_properties"],"readwrite").objectStore("cached_properties");return t&&t.toJS&&(t=t.toJS()),n.Z.on_request_end(a.put({name:e,value:t})).catch((e=>{throw console.error(e),e}))},backup:function(e=l){var t=[];for(var a of e)t.push(this.load_data(a));return Promise.all(t).then((t=>{var a={};for(let r=0;r{var a=Object.keys(t),s=e.transaction(a,"readwrite");for(let e of a){var r=s.objectStore(e),o=t[e];for(let e of o)r.put(e)}return n.Z.on_transaction_end(s)}))}};const g=m},10972:(e,t,a)=>{"use strict";a.r(t);var s=a(67294),n=a(73935),r=a(30806),o=a(32793),i=a(57296),l=a(31972);const c=i.Z.createStore(class{constructor(){this.bindListeners({addNotification:[l.Z.addNotification,l.Z.success,l.Z.warning,l.Z.error,l.Z.info]}),this.state={notification:null}}addNotification(e){this.setState({notification:e})}},"NotificationStore");var d=a(5977),u=a(89449),p=a(38216),h=a(39014),m=a(58074),g=a.n(m),b=a(55294),f=a(55420),y=a(91684),_=a(55474),w=a(112),k=a.n(w),v=a(7768);class A extends s.Component{constructor(e){super(e),this.state={isAddNodeModalVisible:!1,isRemoveNodeModalVisible:!1,removeNode:{name:null,url:null}},this.showAddNodeModal=this.showAddNodeModal.bind(this),this.hideAddNodeModal=this.hideAddNodeModal.bind(this),this.showRemoveNodeModal=this.showRemoveNodeModal.bind(this),this.hideRemoveNodeModal=this.hideRemoveNodeModal.bind(this)}showAddNodeModal(){this.setState({isAddNodeModalVisible:!0})}hideAddNodeModal(){this.setState({isAddNodeModalVisible:!1})}showRemoveNodeModal(e,t){this.setState({isRemoveNodeModalVisible:!0,removeNode:{url:e,name:t}})}hideRemoveNodeModal(){this.setState({isRemoveNodeModalVisible:!1,removeNode:{url:null,name:null}})}triggerModal(e){this.refs.ws_modal.show(e)}onChangeWS(e){b.Z.changeSetting({setting:"apiServer",value:e.target.value}),f.Apis.reset(e.target.value,!0),setTimeout((()=>{this.onReloadClick()}),50)}onReloadClick(e){e&&e.preventDefault(),window.electron?(window.location.hash="",window.remote.getCurrentWindow().reload()):window.location.href=""}triggerModal(e,...t){this.refs.ws_modal.show(e,...t)}render(){const{props:e}=this;return e.apis.map((e=>{let t=-1!==e.url.indexOf("fake.automatic-selection"),{location:a}=e;return a&&"object"==typeof a&&"translate"in a&&(a=k().translate(a.translate)),s.createElement("option",{key:e.url,value:e.url},a||e.url," ",!t&&a?`(${e.url})`:null)})),s.createElement("div",{className:"grid-frame vertical"},s.createElement("div",{className:"grid-container text-center",style:{padding:"5rem 10% 0 10%",maxWidth:"100%",overflowY:"auto",margin:"0 !important"}},s.createElement("h2",null,s.createElement(g(),{content:"sync_fail.title"})),s.createElement("br",null),s.createElement("p",{style:{marginBottom:0}},s.createElement(g(),{content:"sync_fail.sub_text_1"})),s.createElement(y.Z,{name:"clock",title:"icons.clock",size:"5x"}),s.createElement("p",null,s.createElement(g(),{unsafe:!0,content:"sync_fail.sub_text_2"})),s.createElement("hr",null),s.createElement(v.Z,{nodes:e.apis,onChange:this.onChangeWS.bind(this),showAddNodeModal:this.showAddNodeModal,showRemoveNodeModal:this.showRemoveNodeModal})),s.createElement(_.Z,{removeNode:this.state.removeNode,isAddNodeModalVisible:this.state.isAddNodeModalVisible,isRemoveNodeModalVisible:this.state.isRemoveNodeModalVisible,onAddNodeClose:this.hideAddNodeModal,onRemoveNodeClose:this.hideRemoveNodeModal,apis:e.apis,api:e.apiServer}))}}const E=A=(0,u.$)(A,{listenTo:()=>[p.Z,h.Z],getProps:()=>({rpc_connection_status:p.Z.getState().rpc_connection_status,apis:h.Z.getState().defaults.apiServer,apiServer:h.Z.getState().settings.get("apiServer"),defaultConnection:h.Z.getState().defaultSettings.get("apiServer"),apiLatencies:h.Z.getState().apiLatencies})});var x=a(52531),S=a(59851),C=a(23037),T=a(82267),B=a(13973),z=a(67652),P=a.n(z),N=a(45697),M=a.n(N);let{operations:Z}=r.ChainTypes,I=Object.keys(Z);class O extends s.Component{static propTypes={account:C.Z.ChainAccount.isRequired,settings:M().object};UNSAFE_componentWillMount(){P().needsPermission&&P().requestPermission()}UNSAFE_componentWillReceiveProps(e){if(!e.settings.get("browser_notifications").allow)return console.log("browser notifications disabled by settings"),!1;if(P().needsPermission)return console.log("browser notifications disabled by Browser Permissions"),!1;if(e.account&&this.props.account&&e.account.size&&this.props.account.get("history")&&e.account.get("history")){let t=this.props.account.get("history").first(),a=e.account.get("history").first();if(!a||!t)return!1;if(a.get("id")===t.get("id"))return!1;this._isOperationTransfer(a)&&this._isTransferToMyAccount(a)&&e.settings.get("browser_notifications").additional.transferToMe&&this._notifyUserAboutTransferToHisAccount(a)}}_getOperationName(e){return void 0!==e.getIn(["op",0])?I[e.getIn(["op",0])]:null}_isOperationTransfer(e){return"transfer"===this._getOperationName(e)}_isTransferToMyAccount(e){if(!this._isOperationTransfer(e))throw Error("Operation is not transfer");return e.getIn(["op",1,"to"])===this.props.account.get("id")}_notifyUserAboutTransferToHisAccount(e){const t=e.getIn(["op",1,"amount","asset_id"]),a=e.getIn(["op",1,"from"]),s=e.getIn(["op",1,"amount","amount"]);if(!t||!a||!s)throw Error("Operation has wrong format");const n=k().translate("browser_notification_messages.money_received_title",{from:this._getAccountNameById(a)});let r=this._getRealAmountByAssetId(s,t),o=this._getAssetSymbolByAssetId(t);if(null===r||null===o)return;const i=k().translate("browser_notification_messages.money_received_body",{amount:r,symbol:o});this.notifyUsingBrowserNotification({title:n,body:i,closeOnClick:!0})}notifyUsingBrowserNotification(e={}){if(!e.title&&!e.body)return null;const t={body:e.body};"function"==typeof e.onNotifyShow&&(t.notifyShow=e.onNotifyShow),"function"==typeof e.onNotifyClose&&(t.notifyClose=e.onNotifyShow),"function"==typeof e.onNotifyClick&&(t.notifyClick=e.onNotifyShow),"function"==typeof e.onNotifyError&&(t.notifyError=e.onNotifyShow),new(P())(e.title,t).show()}_getRealAmountByAssetId(e,t){const a=r.ChainStore.getAsset(t);return a?B.Z.get_asset_amount(e,a):null}_getAssetSymbolByAssetId(e){const t=r.ChainStore.getAsset(e);return t?t.get("symbol"):null}_getAccountNameById(e){const t=r.ChainStore.getAccount(e);return t?t.get("name"):""}render(){return null}}const q=O=(0,T.Z)(O),L=e=>e.account?s.createElement(q,e):null;class D extends s.Component{render(){return s.createElement(S.Z,{stores:[o.Z],inject:{account:()=>o.Z.getState().currentAccount,settings:()=>h.Z.getState().settings}},s.createElement(L,null))}}const R=D;var j=a(36378),F=a(82050),W=a(88209),U=a.n(W),H=a(42329),K=a(70637),V=a(7437),G=a(41075),X=a(29548),J=a(56934),Y=a(39238),Q=a(94184),$=a.n(Q),ee=a(68555),te=a(87913),ae=a(50379),se=a(64046),ne=a(43393),re=a(19475);const oe=Object.freeze({Never:Symbol("Never"),Always:Symbol("Always"),WhenUnlocked:Symbol("WhenUnlocked"),WhenAccount:Symbol("WhenAccount"),WhenNotMyAccount:Symbol("WhenNotMyAccount"),WhenNotInHeader:Symbol("WhenNotInHeader"),WhenMainnet:Symbol("WhenMainnet"),Dynamic:Symbol("Dynamic"),Divider:Symbol("Divider")});class ie extends s.Component{render(){const{target:e,currentPath:t,includePattern:a,excludePattern:n,additionalClassName:r,icon:o,text:i,behavior:l,submenu:c,hidden:d,disabled:u}=this.props;let p=o;(0,j.Z)(o)&&(p={name:o}),p&&!p.title&&(p.title="icons."+p.name),p&&!p.size&&(p.size="2x");let h=a;(0,j.Z)(a)&&(h=[a]);let m=n;(0,j.Z)(n)&&(m=[n]);let b=!1;if(a||n){if(b=!0,h)for(let e=0;e{e.stopPropagation()};let k=c&&!(0,re.Z)(c);return _?null:s.createElement("li",{className:$()({active:b,disabled:u,"has-submenu":(0,re.Z)(c)},r),onClick:u?w:e},p&&s.createElement("div",{className:"table-cell"},s.createElement(y.Z,{size:p.size,name:p.name,title:p.title})),s.createElement("div",{className:"table-cell"},s.createElement(g(),{content:i}),k?" ":null,k?s.createElement("span",{onClick:c.disabled?w:e=>{e.stopPropagation(),c.target(e)},className:$()("header-dropdown-sub-link",{enabled:!c.disabled})},s.createElement(g(),{content:c.text})):null))}}const le=ie;class ce extends s.Component{render(){const{additionalClassName:e,hidden:t}=this.props;return t?null:s.createElement("li",{className:$()("divider",e)})}}const de=ce;class ue extends s.Component{render(){const{target:e,text:t,hidden:a,icon:s}=this.props;return a?null:React.createElement("li",{onClick:e},React.createElement(Translate,{content:t,component:"div",className:"table-cell"}))}}class pe{static getData(e,t){return pe.getDropdownMenu().map((a=>function(a){let s=t;s.clickHandlers=e;let n=a(s);return n.inHeaderBehavior||(n.inHeaderBehavior=oe.Never),n.inDropdownBehavior||(n.inDropdownBehavior=oe.Never),n.inHeaderBehavior===oe.WhenAccount&&(n.hidden=!s.currentAccount,n.inHeaderBehavior=oe.Always),n.inDropdownBehavior===oe.WhenAccount&&(n.hidden=!s.currentAccount,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenUnlocked&&(n.hidden=!s.lo,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenNotMyAccount&&(n.hidden=s.isMyAccount||!s.currentAccount,n.inDropdownBehavior=oe.Always),n.inDropdownBehavior===oe.WhenNotInHeader&&(n.inDropdownBehavior=oe.Always),n}(a)))}static getHeader(){const e=pe.getAllEntries();return[e.dashboard,e.market,e.lending,e.explorer]}static getDropdownMenu(){const e=pe.getAllEntries();let t=e.settings_mobile;e.settings_mobile=function(a){let s=t(a),n=[e.settings_general,e.settings_wallet,e.settings_accounts,e.settings_password,e.settings_backup,e.settings_restore,e.settings_access,e.settings_faucet_address,e.settings_reset];return s.submenu=n.map((e=>e(a))),s};let a=e.insight;return e.insight=function(t){let s=a(t),n=[e.account_voting,e.account_assets,e.account_pools,e.account_signedmessages,e.account_stats,e.account_vesting,e.account_whitelist,e.account_permissions];return s.submenu=n.map((e=>e(t))),s},[e.login,e.create_account,e.follow,e.divider,e.dashboard,e.market,e.lending,e.poolmart,e.explorer,e.divider,e.transfer,e.deposit,e.withdraw,e.account_voting,e.spotlight,e.insight,e.divider,e.settings,e.settings_mobile,e.accounts,e.borrow,e.barter,e.direct_debit,e.prediction,e.htlc]}static getAllEntries(){return{login:e=>({target:e.clickHandlers.toggleLock,icon:"power",text:e.locked?"header.lock_short":"header.unlock_short",inDropdownBehavior:oe.Always}),divider:e=>({inDropdownBehavior:oe.Divider}),create_account:e=>({includePattern:e.passwordLogin?"/create-account/password":"/create-account/wallet",target:e.passwordLogin?"/create-account/password":"/create-account/wallet",icon:{name:"create_account",title:"icons.user.create_account"},text:"header.create_account",hidden:!!e.passwordLogin,inDropdownBehavior:oe.Always}),dashboard:e=>({includePattern:["/account","account/","/account/"],excludePattern:["/assets","/voting","/signedmessages","/member-stats","/vesting","/whitelist","/permissions"],target:`/account/${e.currentAccount}`,icon:"dashboard",text:"header.dashboard",inHeaderBehavior:oe.WhenAccount,inDropdownBehavior:oe.WhenAccount}),follow:e=>({target:e.clickHandlers.followUnfollow,icon:{name:e.isContact?"minus-circle":"plus-circle",title:e.isContact?"icons.minus_circle.remove_contact":"icons.plus_circle.add_contact"},text:e.isContact?"account.unfollow":"account.follow",inDropdownBehavior:oe.WhenNotMyAccount}),market:e=>({includePattern:"/market/",target:e.tradeUrl,icon:{name:"trade",title:"icons.trade.exchange"},text:"header.exchange",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),poolmart:e=>({includePattern:"/pools",target:"/pools",icon:{name:"poolmart",title:"icons.poolmart.title"},text:"header.poolmart",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.Always}),lending:e=>({includePattern:"/credit-offer",target:"/credit-offer",icon:"deployment-unit",text:"header.p2p_lending",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),explorer:e=>({includePattern:"/explorer",target:"/explorer/blocks",icon:{name:"server",size:"2x"},text:"header.explorer",inHeaderBehavior:oe.Always,inDropdownBehavior:oe.WhenNotInHeader}),transfer:e=>({target:e.clickHandlers.showSend,icon:"transfer",text:"header.payments",inDropdownBehavior:oe.WhenAccount}),deposit:e=>({target:e.clickHandlers.showDeposit,icon:{name:"deposit",title:"icons.deposit.deposit"},text:"modal.deposit.submit",submenu:{target:"/deposit-withdraw",text:"header.deposit_legacy",disabled:!e.enableDepositWithdraw},disabled:!e.enableDepositWithdraw,inDropdownBehavior:oe.WhenAccount}),withdraw:e=>({target:e.clickHandlers.showWithdraw,icon:"withdraw",text:"modal.withdraw.submit",submenu:{target:"/deposit-withdraw",text:"header.withdraw_legacy",disabled:!e.enableDepositWithdraw},disabled:!e.enableDepositWithdraw,inDropdownBehavior:oe.WhenAccount}),deposit_withdraw:e=>({includePattern:"deposit-withdraw",icon:{name:"deposit-withdraw",title:"icons.deposit.deposit_withdraw"},text:"header.deposit-withdraw",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),settings:e=>({includePattern:"/settings",target:"/settings",additionalClassName:"desktop-only",icon:"cogs",text:"header.settings",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),spotlight:e=>({includePattern:"/spotlight",target:"/spotlight",icon:"showcases",text:"header.showcases",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),settings_mobile:e=>({includePattern:"/settings",additionalClassName:"mobile-only",icon:"cogs",text:"header.settings",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.Always}),insight:e=>({includePattern:"/account",icon:"insight",text:"header.advanced",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),settings_general:e=>({target:"/settings/general",text:"settings.general"}),settings_wallet:e=>({target:"/settings/wallet",hidden:e.passwordLogin}),settings_accounts:e=>({target:"/settings/accounts",text:"settings.accounts"}),settings_password:e=>({target:"/settings/password",text:"settings.password",hidden:e.passwordLogin}),settings_backup:e=>({target:"/settings/backup",text:"settings.backup",hidden:e.passwordLogin}),settings_restore:e=>({target:"/settings/restore",text:"settings.restore",hidden:e.passwordLogin}),settings_access:e=>({target:"/settings/access",text:"settings.access"}),settings_faucet_address:e=>({target:"/settings/faucet_address",text:"settings.faucet_address"}),settings_reset:e=>({target:"/settings/reset",text:"settings.reset"}),news:e=>({includePattern:"/news",target:"/news",icon:"news",text:"news.news",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Always}),account_voting:e=>({includePattern:"/voting",target:`/account/${e.currentAccount}/voting`,icon:{name:"thumbs-up",title:"icons.thumbs_up"},text:"account.voting",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_assets:e=>({includePattern:"/assets",excludePattern:"explorer",target:`/account/${e.currentAccount}/assets`,icon:"assets",text:"explorer.assets.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_pools:e=>({includePattern:"/pools",excludePattern:"explorer",target:`/account/${e.currentAccount}/pools`,icon:"pools",text:"account.liquidity_pools.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_signedmessages:e=>({includePattern:"/signedmessages",target:`/account/${e.currentAccount}/signedmessages`,icon:{name:"text",title:"icons.text.signed_messages"},text:"icons.text.signed_messages",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_stats:e=>({includePattern:"/member-stats",target:`/account/${e.currentAccount}/member-stats`,icon:{name:"text",title:"icons.text.membership_stats"},text:"account.member.stats",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_vesting:e=>({includePattern:"/vesting",target:`/account/${e.currentAccount}/vesting`,icon:"hourglass",text:"account.vesting.title",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),account_vesting_2:e=>({includePattern:"/vesting",target:`/account/${e.currentAccount}/vesting`,icon:"hourglass",text:"account.vesting.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),account_whitelist:e=>({includePattern:"/whitelist",target:`/account/${e.currentAccount}/whitelist`,icon:"list",text:"account.whitelist.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),account_permissions:e=>({includePattern:"/permissions",target:`/account/${e.currentAccount}/permissions`,icon:"warning",text:"account.permissions",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.WhenAccount}),accounts:e=>({includePattern:"/accounts",target:"/accounts",icon:"folder",text:"explorer.accounts.title",inHeaderBehavior:oe.Never,inDropdownBehavior:oe.WhenAccount}),help:e=>({includePattern:"/help",icon:{name:"question-circle",title:"icons.question_circle"},text:"header.help",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),borrow:e=>({includePattern:"/borrow",icon:"borrow",text:"showcases.borrow.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),barter:e=>({includePattern:"/barter",icon:"barter",text:"showcases.barter.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),direct_debit:e=>({includePattern:"/direct-debit",icon:"direct_debit",text:"showcases.direct_debit.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),prediction:e=>({includePattern:"/prediction",icon:"prediction-large",text:"showcases.prediction_market.title",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never}),htlc:e=>({includePattern:"/htlc",icon:"htlc",text:"showcases.htlc.title_short",inHeaderBehavior:oe.Dynamic,inDropdownBehavior:oe.Never})}}}const he=pe;class me extends s.Component{constructor(){super(),this.state={dropdownSubmenuActive:!1,dropdownSubmenuActiveItem:{}}}_toggleDropdownSubmenu(e=this.state.dropdownSubmenuActiveItem,t){t&&t.stopPropagation(),this.setState({dropdownSubmenuActive:!this.state.dropdownSubmenuActive,dropdownSubmenuActiveItem:e})}shouldComponentUpdate(e,t){let a=!1;for(let t in e)"function"!=typeof e[t]&&(a=a||e[t]!==this.props[t]);for(let e in t)"function"!=typeof t[e]&&(a=a||t[e]!==this.state[e]);return a}_onAddContact(){F.Z.addAccountContact(this.props.currentAccount)}_onRemoveContact(){F.Z.removeAccountContact(this.props.currentAccount)}render(){const{dropdownActive:e,toggleLock:t,maxHeight:a,locked:n,active:r,passwordLogin:o,isMyAccount:i,showAccountLinks:l,tradeUrl:c,enableDepositWithdraw:d,currentAccount:u,contacts:p,showSend:h,showDeposit:m,showWithdraw:b}=this.props;let f=p.has(u),y={toggleLock:t,followUnfollow:this[f?"_onRemoveContact":"_onAddContact"].bind(this),showSend:h,showDeposit:m,showWithdraw:b},_={isAccountLocked:n,currentAccount:u,isContact:f,isMyAccount:i,showAccountLinks:l,tradeUrl:c,enableDepositWithdraw:d,passwordLogin:o},w=he.getData(y,_);return this.state.dropdownSubmenuActive?s.createElement("ul",{className:"dropdown header-menu header-submenu",style:{left:-200,top:64,maxHeight:e?a:0,overflowY:"auto"}},s.createElement("li",{className:"parent-item",onClick:this._toggleDropdownSubmenu.bind(this,{})},s.createElement("div",{className:"table-cell"},s.createElement("span",{className:"parent-item-icon"},"<"),s.createElement(g(),{content:this.state.dropdownSubmenuActiveItem.text,component:"span",className:"parent-item-name"}))),s.createElement(de,null),this.state.dropdownSubmenuActiveItem.submenu.map(((e,t)=>s.createElement(le,{key:t,target:e.target,text:e.text,hidden:e.hidden,icon:e.icon})))):s.createElement("ul",{className:"dropdown header-menu",style:{left:-200,top:64,maxHeight:e?a:0,overflowY:"auto"}},w.map(((e,t)=>{switch(e.inDropdownBehavior){case oe.Always:case oe.Dynamic:let a=(0,j.Z)(e.target)?this.props.onNavigate.bind(this,e.target):e.target;return e.submenu&&!(0,re.Z)(e.submenu)&&(e.submenu.target=(0,j.Z)(e.submenu.target)?this.props.onNavigate.bind(this,e.submenu.target):e.submenu.target),e.submenu&&(0,re.Z)(e.submenu)&&(a=this._toggleDropdownSubmenu.bind(this,e),e.submenu.map((e=>{e.target=(0,j.Z)(e.target)?this.props.onNavigate.bind(this,e.target):e.target}))),s.createElement(le,{key:t,currentPath:r,includePattern:e.includePattern,excludePattern:e.excludePattern,target:a,additionalClassName:e.additionalClassName,icon:e.icon,text:e.text,behavior:e.inDropdownBehavior,submenu:e.submenu,hidden:e.hidden,disabled:e.disabled});case oe.Divider:return s.createElement(de,{key:t,additionalClassName:e.additionalClassName,hidden:e.hidden})}})))}}var ge=a(76660);class be extends s.Component{constructor(e){super(e),this.state={previousAccountName:null,isModalVisible:!1},this.handleClose=this.handleClose.bind(this),this.handleSwitchBack=this.handleSwitchBack.bind(this),this.handleNeverShowAgain=this.handleNeverShowAgain.bind(this)}componentDidUpdate(e){e.currentAccount&&this.props.currentAccount&&this.props.currentAccount!==e.currentAccount&&!this.isMyAccount()&&this.isMyAccount(e.currentAccount)&&this.setState({isModalVisible:!1!==this.props.viewOnlyMode,previousAccountName:e.currentAccount})}handleSwitchBack(){const e=o.Z.getMyAccounts();let t=this.state.previousAccountName,a=null;this.isMyAccount(t)?a=t:Array.isArray(e)&&e.length&&(a=e[0]),F.Z.setCurrentAccount.defer(a)}isMyAccount(e){const t=e||this.props.currentAccount,a=o.Z.getMyAccounts();let s=!0;return Array.isArray(a)&&a.length&&t&&(s=a.indexOf(t)>=0),s}handleClose(){this.setState({isModalVisible:!1})}handleNeverShowAgain(){this.handleClose(),b.Z.changeSetting({setting:"viewOnlyMode",value:!1})}render(){const e=[s.createElement(ge.Button,{key:"ok",type:"primary",onClick:this.handleClose},k().translate("modal.ok")),s.createElement(ge.Button,{key:"cancel",onClick:this.handleNeverShowAgain},k().translate("account_browsing_mode.never_show_again"))];return this.props.usernameViewIcon?window.innerWidth<640&&!this.isMyAccount()?s.createElement(ge.Popover,{content:s.createElement(g(),{content:"account_browsing_mode.you_are_in_browsing_mode"}),placement:"bottom"},s.createElement(ge.Icon,{style:{marginLeft:10},className:"blue",type:"eye",onClick:this.handleSwitchBack})):null:s.createElement("div",{className:"account-browsing-mode"},s.createElement(ge.Modal,{title:k().translate("account_browsing_mode.modal_title"),closable:!1,visible:this.state.isModalVisible,footer:e},k().translate("account_browsing_mode.modal_description")),this.isMyAccount()?null:s.createElement(ge.Tooltip,{placement:"bottom",title:k().translate("account_browsing_mode.you_are_in_browsing_mode")},s.createElement(ge.Button,{onClick:this.handleSwitchBack,className:"hide-for-small-only account-browsing-mode--button"},k().translate("account_browsing_mode.view_mode"))))}}const fe=(0,u.$)(be,{listenTo:()=>[o.Z,h.Z],getProps:()=>({viewOnlyMode:h.Z.getState().settings.get("viewOnlyMode"),currentAccount:o.Z.getState().currentAccount})});var ye=a(19602),_e=a(73234);class we extends s.Component{render(){const{target:e,currentPath:t,includePattern:a,excludePattern:n,hideClassName:r,icon:o,text:i,behavior:l,hidden:c}=this.props;let d,u;(0,_e.Z)(e)&&(d=e),(0,j.Z)(e)&&(u=e);let p=o;(0,j.Z)(o)&&(p={name:o}),p&&!p.title&&(p.title="icons."+p.name),p&&!p.size&&(p.size="1_5x");let h=a;(0,j.Z)(a)&&(h=[a]);let m,b=n;(0,j.Z)(n)&&(b=[n]);let f=!1;if(a||n){if(f=!0,h)for(let e=0;e{this.unlisten&&this.state.active!==e.pathname&&this.setState({active:e.pathname})}))}componentDidMount(){setTimeout((()=>{te.Z.rebuild()}),1250),document.body.addEventListener("click",this.onBodyClick,{capture:!1,passive:!0})}componentWillUnmount(){this.unlisten&&(this.unlisten(),this.unlisten=null),document.body.removeEventListener("click",this.onBodyClick)}UNSAFE_componentWillReceiveProps(e){e.passwordLogin!==this.props.passwordLogin&&this.state.active.includes("/settings/")&&this.props.history.push("/settings/general")}shouldComponentUpdate(e,t){return e.myActiveAccounts!==this.props.myActiveAccounts||e.currentAccount!==this.props.currentAccount||e.passwordLogin!==this.props.passwordLogin||e.locked!==this.props.locked||e.current_wallet!==this.props.current_wallet||e.lastMarket!==this.props.lastMarket||e.starredAccounts!==this.props.starredAccounts||e.currentLocale!==this.props.currentLocale||t.active!==this.state.active||t.hiddenAssets!==this.props.hiddenAssets||t.dropdownActive!==this.state.dropdownActive||t.accountsListDropdownActive!==this.state.accountsListDropdownActive||e.height!==this.props.height||e.location.pathname!==this.props.location.pathname}_showSend(e){e.preventDefault(),this.send_modal&&this.send_modal.show(),this._closeDropdown()}_showDeposit(e){e.preventDefault(),this.showDepositModal(),this._closeDropdown()}_showWithdraw(e){e.preventDefault(),this._closeDropdown(),this.showWithdrawModal()}_triggerMenu(e){e.preventDefault(),U().publish("mobile-menu","toggle")}_toggleLock(e){e.preventDefault(),G.Z.isLocked()?J.Z.unlock().then((()=>{F.Z.tryToSetCurrentAccount()})).catch((()=>{})):(J.Z.lock(),X.Z.getState().rememberMe||((0,ye.oA)()||(0,ye.tc)("persistant"),F.Z.setPasswordAccount(null),o.Z.tryToSetCurrentAccount())),this._closeDropdown(),this._closeAccountNotifications()}_onNavigate(e,t){t.preventDefault(),"/accounts"==e&&b.Z.changeViewSetting({dashboardEntry:"accounts"}),this.props.history.push(e),this._closeDropdown()}_closeAccountsListDropdown(){this.state.accountsListDropdownActive&&this.setState({accountsListDropdownActive:!1})}_closeMenuDropdown(){this.state.dropdownActive&&this.setState({dropdownActive:!1})}_closeDropdown(){this._closeMenuDropdown(),this._closeAccountsListDropdown()}_onGoBack(e){e.preventDefault(),window.history.back()}_onGoForward(e){e.preventDefault(),window.history.forward()}_accountClickHandler(e,t){if(t.preventDefault(),U().publish("account_drop_down","close"),e!==this.props.currentAccount){F.Z.setCurrentAccount.defer(e);const t=`account-notification-${Date.now()}`;ge.Notification.success({message:k().translate("header.account_notify",{account:e}),key:t,onClose:()=>{this._accountNotificationActiveKeys=this._accountNotificationActiveKeys.filter((e=>e!==t))}}),this._accountNotificationActiveKeys.push(t),this._closeDropdown()}}_toggleAccountDropdownMenu(){if(!G.Z.getWallet())return!1;this._closeAccountNotifications(),this.setState({accountsListDropdownActive:!this.state.accountsListDropdownActive})}_toggleDropdownMenu(){this.setState({dropdownActive:!this.state.dropdownActive}),this._closeAccountNotifications()}_closeAccountNotifications(){this._accountNotificationActiveKeys.map((e=>ge.Notification.close(e))),this._accountNotificationActiveKeys=[]}onBodyClick(e){let t=e.target,a=!1,s=!1;do{if(t.classList&&t.classList.contains("account-dropdown-wrapper")){s=!0;break}if(t.classList&&t.classList.contains("menu-dropdown-wrapper")){a=!0;break}}while(t=t.parentNode);s||this._closeAccountsListDropdown(),a||this._closeMenuDropdown()}render(){let{active:e}=this.state,{currentAccount:t,starredAccounts:a,passwordLogin:n,passwordAccount:i,height:l}=this.props,c=o.Z.getMyAccounts(),d=Math.max(40,l-67-36)+"px";const u=r.ChainStore.getAccount(t),p=!!u,h=!!u&&(o.Z.isMyAccount(u)||n&&t===i),m=!!u&&f.Apis.instance()&&f.Apis.instance().chain_id&&"4018d784"===f.Apis.instance().chain_id.substr(0,8);if(a.size){for(let e=c.length-1;e>=0;e--)a.has(c[e])||c.splice(e,1);a.forEach((e=>{-1===c.indexOf(e.name)&&c.push(e.name)}))}let g,b,_=o.Z.getMyAccounts(),w=_.length,k=_.length&&this.props.currentAccount?s.createElement("div",{className:"total-value",onClick:this._toggleAccountDropdownMenu},s.createElement(ee.Z.AccountWrapper,{hiddenAssets:this.props.hiddenAssets,accounts:(0,ne.List)([this.props.currentAccount]),noTip:!0,style:{minHeight:15}})):null,v=s.createElement("a",{className:$()("logo",{active:"/"===e||-1!==e.indexOf("dashboard")&&-1===e.indexOf("account")}),onClick:this._onNavigate.bind(this,"/")},s.createElement("img",{style:{margin:0,height:40},src:Ae})),A=0===w||null,E=this.props.lastMarket?`/market/${this.props.lastMarket}`:"/market/"+(0,ve.v)();t&&(g=t.length>20?`${t.slice(0,20)}..`:t,c.indexOf(t)<0&&h&&c.push(t),c.length>=1&&(b=c.sort().filter((e=>e!==t)).map((t=>s.createElement("li",{key:t,className:$()({active:0===e.replace("/account/","").indexOf(t)}),onClick:this._accountClickHandler.bind(this,t)},s.createElement("div",{style:{paddingTop:0},className:"table-cell"},s.createElement(ae.Z,{style:{position:"relative",top:4},size:{height:20,width:20},account:t})),s.createElement("div",{className:"table-cell",style:{paddingLeft:10}},s.createElement("a",{className:"text lower-case"+(t===g?" current-account":"")},t)))))));let x=this.state.dropdownActive?s.createElement(y.Z,{className:"icon-18px",name:"hamburger-x",title:"icons.hamburger_x"}):s.createElement(y.Z,{className:"icon-18px",name:"hamburger",title:"icons.hamburger"});const S=!!G.Z.getWallet();let C={currentAccount:t,tradeUrl:E,createAccountLink:A},T=he.getData({},C);return s.createElement("div",{className:"header-container",style:{minHeight:"64px"}},s.createElement("div",null,s.createElement("div",{className:"header menu-group primary",style:{flexWrap:"nowrap",justifyContent:"none"}},null,s.createElement("ul",{className:"menu-bar"},s.createElement("li",null,v),T.map(((t,a)=>{switch(t.inHeaderBehavior){case oe.Always:case oe.Dynamic:let n=(0,j.Z)(t.target)?this._onNavigate.bind(this,t.target):t.target;return s.createElement(ke,{key:a,currentPath:e,includePattern:t.includePattern,excludePattern:t.excludePattern,target:n,hideClassName:t.hideClassName,icon:t.icon,text:t.text,behavior:t.inHeaderBehavior,hidden:t.hidden});case oe.Divider:return s.createElement(de,{key:a,additionalClassName:t.additionalClassName,hidden:t.hidden})}}))))),s.createElement("div",{className:"truncated active-account",style:{cursor:"pointer"}},s.createElement(fe,{location:this.props.location}),s.createElement("div",null,s.createElement("div",{className:"text account-name"},s.createElement("span",{onClick:this._toggleAccountDropdownMenu},t),s.createElement(fe,{location:this.props.location,usernameViewIcon:!0})),k),S&&s.createElement("ul",{className:"dropdown header-menu local-wallet-menu",style:{right:0,maxHeight:this.state.accountsListDropdownActive?d:0,overflowY:"auto",position:"absolute",width:"20em"}},s.createElement(ke,{currentPath:e,includePattern:"/accounts",target:this._onNavigate.bind(this,"/accounts"),icon:{name:"people",title:"icons.manage_accounts",size:"2x"},text:"header.accounts_manage"}),s.createElement(de,null),b)),s.createElement("div",null,null==this.props.currentAccount?null:s.createElement("span",{onClick:this._toggleLock.bind(this),style:{cursor:"pointer"}},s.createElement(y.Z,{className:"lock-unlock",size:"2x",name:this.props.locked?"locked":"unlocked",title:this.props.locked?"icons.locked.common":"icons.unlocked.common"}))),s.createElement("div",{className:"app-menu"},s.createElement("div",{onClick:this._toggleDropdownMenu,className:$()("menu-dropdown-wrapper dropdown-wrapper",{active:this.state.dropdownActive})},s.createElement("div",{className:"hamburger"},x),s.createElement(me,{dropdownActive:this.state.dropdownActive,toggleLock:this._toggleLock.bind(this),maxHeight:d,locked:this.props.locked,active:e,passwordLogin:n,onNavigate:this._onNavigate.bind(this),isMyAccount:h,contacts:this.props.contacts,showAccountLinks:p,tradeUrl:E,currentAccount:t,enableDepositWithdraw:m,showDeposit:this._showDeposit.bind(this),showWithdraw:this._showWithdraw.bind(this),showSend:this._showSend.bind(this)}))),s.createElement(H.Z,{id:"send_modal_header",refCallback:e=>{e&&(this.send_modal=e)},from_name:t}),this.state.hasDepositModalBeenShown&&s.createElement(K.Z,{visible:this.state.isDepositModalVisible,hideModal:this.hideDepositModal,showModal:this.showDepositModal,ref:"deposit_modal_new",modalId:"deposit_modal_new",account:t,backedCoins:this.props.backedCoins}),this.state.hasWithdrawalModalBeenShown&&s.createElement(se.Z,{visible:this.state.isWithdrawModalVisible,hideModal:this.hideWithdrawModal,showModal:this.showWithdrawModal,ref:"withdraw_modal_new",modalId:"withdraw_modal_new",backedCoins:this.props.backedCoins}))}}Ee=(0,u.$)(Ee,{listenTo:()=>[o.Z,X.Z,Y.Z,h.Z,V.Z],getProps(){const e=f.Apis.instance().chain_id;return{backedCoins:V.Z.getState().backedCoins,myActiveAccounts:o.Z.getState().myActiveAccounts,currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount,passwordAccount:o.Z.getState().passwordAccount,locked:X.Z.getState().locked,current_wallet:Y.Z.getState().current_wallet,lastMarket:h.Z.getState().viewSettings.get("lastMarket"+(e?"_"+e.substr(0,8):"")),starredAccounts:o.Z.getState().starredAccounts,passwordLogin:h.Z.getState().settings.get("passwordLogin"),currentLocale:h.Z.getState().settings.get("locale"),hiddenAssets:h.Z.getState().hiddenAssets,settings:h.Z.getState().settings,locales:h.Z.getState().defaults.locale,contacts:o.Z.getState().accountContacts}}});const xe=(0,d.EN)(Ee);var Se=a(26656),Ce=a.n(Se),Te=a(85158),Be=a(69778),ze=a(69730),Pe=a(47449),Ne=a(79060),Me=a(79361),Ze=a.n(Me);class Ie extends s.Component{constructor(e){super(e),this.state={isModalVisible:!1,isErrorDetailsVisible:!1,showQrCode:!1},this.onCloseClick=this.onCloseClick.bind(this),this.onConfirmClick=this.onConfirmClick.bind(this),this.onShowDetailsClick=this.onShowDetailsClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}shouldComponentUpdate(e,t){return!(!e.transaction||t.isErrorDetailsVisible===this.state.isErrorDetailsVisible&&t.showQrCode===this.state.showQrCode&&B.Z.are_equal_shallow(e,this.props))}componentDidUpdate(){this.props.closed?this.hideModal():this.showModal()}showModal(){this.setState({isModalVisible:!0})}hideModal(){this.setState({isModalVisible:!1,isErrorDetailsVisible:!1})}onKeyUp(e){13===e.keyCode?this.onConfirmClick(e):e.preventDefault()}onConfirmClick(e){if(e.preventDefault(),this.props.propose){const e={fee_paying_account:r.ChainStore.getAccount(this.props.fee_paying_account).get("id")};this.props.transaction.update_head_block().then((()=>{G.Z.process_transaction(this.props.transaction.propose(e),null,!0)}))}else Be.Z.broadcast(this.props.transaction,this.props.resolve,this.props.reject)}onCloseClick(e){e.preventDefault(),Be.Z.close(this.props.reject)}onShowDetailsClick(){this.setState((e=>({isErrorDetailsVisible:!e.isErrorDetailsVisible})))}onProposeClick(){Be.Z.togglePropose()}onProposeAccount(e){r.ChainStore.getAccount(e),Be.Z.proposeFeePayingAccount(e)}UNSAFE_componentWillReceiveProps(e){e.broadcast&&e.included&&!this.props.included&&!e.error&&l.Z.addNotification.defer({children:s.createElement("div",null,s.createElement("p",null,s.createElement(g(),{content:"transaction.transaction_confirmed"}),"  ",s.createElement("span",null,s.createElement(y.Z,{name:"checkmark-circle",title:"icons.checkmark_circle.operation_succeed",size:"1x",className:"success"}))),s.createElement("table",null,s.createElement(Ne.Z,{op:this.props.transaction.serialize().operations[0],block:1,current:"1.2.0",hideFee:!0,inverted:!1,hideOpLabel:!0,hideDate:!0}))),level:"success",autoDismiss:3})}_showQrCode(){let{transaction:e}=this.props,t="";e.tr_buffer?(t=JSON.stringify(e.serialize()),this.setState({showQrCode:!0,trStr:t})):(e.set_expire_seconds(60),e.finalize().then((()=>{t=JSON.stringify(e.serialize()),this.setState({showQrCode:!0,trStr:t})})))}_hideQrCode(){this.props.transaction.tr_buffer=null,this.setState({showQrCode:!1,trStr:""})}render(){let{broadcast:e,broadcasting:t}=this.props,{isErrorDetailsVisible:a,showQrCode:n,trStr:r}=this.state;if(!this.props.transaction||this.props.closed)return null;let i,l,c,d,u;return this.props.propose&&this.props.fee_paying_account,this.props.error||this.props.included?(l=this.props.error?k().translate("transaction.broadcast_fail",{message:""}):k().translate("transaction.transaction_confirmed"),({error:u,error_code:c,error_data:d}=this.props),c&&(u=c+" - "+u),d instanceof Object&&(d=JSON.stringify(d,null,4)),d=s.createElement("div",null,s.createElement("pre",null,d)),d&&(u=s.createElement("div",null,u,s.createElement("br",null),s.createElement("a",null,s.createElement(g(),{onClick:this.onShowDetailsClick,content:a?"transaction.hide":"transaction.show_more"})))),i=[s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("transfer.close"))]):e?(l=`${k().translate("transaction.broadcast_success")}. ${k().translate("transaction.waiting")}`,i=[s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("transfer.close"))]):t?(l=s.createElement("div",null,k().translate("transaction.broadcasting"),s.createElement(ge.Icon,{type:"loading"})),i=[]):(l=k().translate("transaction.confirm"),i=[s.createElement("div",{style:{float:"left",cursor:"pointer",marginTop:"4px"},key:"scan-qr",onClick:this._showQrCode.bind(this)},s.createElement(g(),{style:{marginTop:"3px",marginLeft:"5px"},content:"transaction.view_qr"}),s.createElement(y.Z,{name:"qr-scan",size:"1_5x"})),s.createElement(ge.Button,{key:"confirm",type:"primary",onClick:this.onConfirmClick},this.props.propose?k().translate("propose"):k().translate("transfer.confirm")),s.createElement(ge.Button,{key:"cancel",onClick:this.onCloseClick},k().translate("account.perm.cancel"))]),s.createElement("div",{ref:"transactionConfirm",onKeyUp:this.onKeyUp},s.createElement(ge.Modal,{wrapClassName:"modal--transaction-confirm",title:l,visible:!this.props.closed,id:"transaction_confirm_modal",ref:"modal",footer:i,overlay:!0,onCancel:this.onCloseClick,overlayClose:!t,noCloseBtn:!0},s.createElement("div",{className:"grid-block vertical no-padding no-margin"},this.props.error?s.createElement(ge.Alert,{type:"error",message:u}):null,this.props.included?s.createElement(ge.Alert,{type:"success",message:k().translate("transaction.transaction_confirmed"),description:`#${this.props.trx_id}@${this.props.trx_block_num}`}):null,a?s.createElement(ge.Alert,{type:"error",style:{fontSize:"0.7rem"},message:d}):null,s.createElement("div",{className:"shrink",style:{maxHeight:"60vh",overflowY:"auto",overflowX:"hidden"}},s.createElement(Te.Z,{key:Date.now(),trx:this.props.transaction.serialize(),index:0,no_links:!0}),r?s.createElement(ge.Modal,{visible:n,onCancel:this._hideQrCode.bind(this),footer:s.createElement(ge.Button,{key:"cancel",onClick:this._hideQrCode.bind(this)},k().translate("cancel"))},s.createElement("div",{className:"text-center"},s.createElement("div",{style:{margin:"1.5rem 0"}},s.createElement(g(),{component:"h4",content:"transaction.title_qrcode"})),s.createElement("div",{className:"full-width"},s.createElement("span",{style:{background:"#fff",padding:".75rem",display:"inline-block"}},s.createElement(Ze(),{size:256,value:r}))))):null),this.props.propose?s.createElement("div",{className:"full-width-content form-group"},s.createElement("label",null,s.createElement(g(),{content:"account.propose_from"})),s.createElement(Pe.Z,{className:"full-width",account_names:o.Z.getMyAccounts(),onChange:this.onProposeAccount.bind(this)})):null,s.createElement("div",{className:"grid-block shrink",style:{paddingTop:"1rem"}},this.props.transaction.has_proposed_operation()||e||t||this.props.error?null:s.createElement("div",{className:"align-right grid-block"},s.createElement("label",{style:{paddingRight:"0.5rem"}},s.createElement(g(),{content:"propose"}),":"),s.createElement(ge.Switch,{checked:this.props.propose,onChange:this.onProposeClick.bind(this)}))))))}}const Oe=Ie=(0,u.$)(Ie,{listenTo:()=>[ze.Z],getProps:()=>ze.Z.getState()});var qe=a(53299),Le=a(28969),De=a(40678),Re=a(36345);class je extends s.Component{static propTypes={label:M().string,error:M().element,placeholder:M().string,onChange:M().func,onAccountChanged:M().func,onAction:M().func,accountName:M().string,account:C.Z.ChainAccount,tabIndex:M().number,disableActionButton:M().bool,allowUppercase:M().bool,typeahead:M().bool,excludeAccounts:M().array};static defaultProps={autosubscribe:!1,excludeAccounts:[]};constructor(e){super(e),this.state={inputChanged:!1}}componentDidMount(){let{account:e,accountName:t}=this.props;void 0===e&&(e=r.ChainStore.getAccount(t)),this.props.onAccountChanged&&e&&this.props.onAccountChanged(e),!this.props.typeahead&&t&&this.onInputChanged(t)}UNSAFE_componentWillReceiveProps(e){e.account&&e.account!==this.props.account&&this.props.onAccountChanged&&this.props.onAccountChanged(e.account)}getAccount(){return this.props.account}getError(){let{account:e,error:t}=this.props;return t||!e||this.getInputType(e.get("name"))||(t=k().translate("account.errors.invalid")),t}getInputType(e){return e?"#"===e[0]&&B.Z.is_object_id("1.2."+e.substring(1))?"id":r.ChainValidation.is_account_name(e,!0)?"name":this.props.allowPubKey&&r.PublicKey.fromPublicKeyString(e)?"pubkey":null:null}onSelected(e){this.setState({inputChanged:!1}),this._notifyOnChange(e)}_notifyOnChange(e){let{onChange:t,onAccountChanged:a,accountName:s}=this.props,n=this.getVerifiedAccountName(e);n!==s&&(t&&(n||""===n)&&t(n),a&&(0,r.FetchChain)("getAccount",n,void 0,{[n]:!1}).then((e=>{e&&a(e)})).catch((e=>{console.log(e)})))}onInputChanged(e){this.setState({inputChanged:!0}),this._notifyOnChange(e)}getVerifiedAccountName(e){let{allowUppercase:t}=this.props,a=null;a="string"==typeof e?e:e&&e.target?e.target.value.trim():"",t||(a=a.toLowerCase());let s=a.replace("#","").match(/(?:\/account\/)(.*)/);return s&&(a=s[1]),a}onKeyDown(e){13===e.keyCode&&this.onAction(e)}_onAddContact(){F.Z.addAccountContact(this.props.accountName)}_onRemoveContact(){F.Z.removeAccountContact(this.props.accountName)}onAction(e){let{onAction:t,disableActionButton:a,account:s,accountName:n}=this.props;e.preventDefault(),this.getError()||!t||a||(s?t(s):"pubkey"===this.getInputType(n)&&t(n))}render(){let{accountName:e,account:t,allowPubKey:a,typeahead:n,disableActionButton:o,contacts:i,myActiveAccounts:l,noPlaceHolder:c,useHR:d,labelClass:u,reserveErrorSpace:p}=this.props;const h=this.getInputType(e);let m,g=[],b=this.getError(),f=l;f=f.concat(i),t&&(t.isKnownScammer=Re.Z.isKnownScammer(t.get("name")),t.accountType=this.getInputType(t.get("name")),t.accountStatus=r.ChainStore.getAccountMemberStatus(t),t.statusText=t.isKnownScammer?k().translate("account.member.suspected_scammer"):k().translate("account.member."+t.accountStatus),m="name"===t.accountType?"#"+t.get("id").substring(4):"id"===t.accountType?t.get("name"):null),n?a&&"pubkey"===h||b||!e||t||(b=k().translate("account.errors.unknown")):!t&&e&&"pubkey"!==h&&(b=k().translate("account.errors.unknown")),a&&"pubkey"===h&&(m="Public Key"),t&&f&&(t.isFavorite=l.has(t.get("name"))||i.has(t.get("name"))),n&&f&&f.map((e=>{if(-1!==this.props.excludeAccounts.indexOf(e))return null;let t=r.ChainStore.getAccount(e),a=r.ChainStore.getAccountMemberStatus(t),s=Re.Z.isKnownScammer(e)?"account.member.suspected_scammer":"account.member."+a;g.push({id:e,label:e,status:k().translate(s),className:Re.Z.isKnownScammer(e)?"negative":"positive"})})).filter((e=>!!e));let _=!!e&&g.reduce(((t,a)=>t||a.label===e),!1);if(e&&!_&&this.state.inputChanged){let t=r.ChainStore.getAccount(e),a=t?r.ChainStore.getAccountMemberStatus(t):null,s=t?Re.Z.isKnownScammer(t.get("name"))?k().translate("account.member.suspected_scammer"):k().translate("account.member."+a):k().translate("account.errors.unknown");g.push({id:this.props.accountName,label:this.props.accountName,status:s,className:Re.Z.isKnownScammer(e)||!t?"negative":null,disabled:!t})}return g.sort(((e,t)=>e.label>t.label?1:-1)),this.props.account&&(l.has(t.get("name"))||i.has(t.get("name"))?(ge.Tooltip,k().translate("tooltip.follow_user"),this._onRemoveContact.bind(this),y.Z):(ge.Tooltip,k().translate("tooltip.follow_user_add"),this._onAddContact.bind(this),y.Z)),$()("button",{disabled:!(t||"pubkey"===h)||b||o}),s.createElement("div",{className:"account-selector",style:this.props.style},s.createElement("div",{className:"content-area"},(e=>this.props.label?s.createElement("div",null,s.createElement(ge.Form.Item,{label:k().translate(this.props.label),hasFeedback:!0,validateStatus:b?"error":t?"success":"",help:b||!!t&&s.createElement("span",{className:"positive"},t&&t.statusText," ",!!m&&m)},e)):e)(s.createElement(ge.Input,{style:{textTransform:"pubkey"===this.getInputType(e)?null:"lowercase",fontVariant:"initial"},name:"username",id:"username",autoComplete:"username",type:"text",value:this.props.accountName||"",placeholder:this.props.placeholder||k().translate("account.name"),ref:this.props.inputRef||"user_input",onChange:this.onInputChanged.bind(this),onKeyDown:this.onKeyDown.bind(this),tabIndex:this.props.tabIndex}))))}}je=(0,T.Z)(je);const Fe=je=(0,u.$)(je,{listenTo:()=>[o.Z],getProps:()=>({myActiveAccounts:o.Z.getState().myActiveAccounts,contacts:o.Z.getState().accountContacts})});var We=a(78598);const Ue=({value:e,onChange:t})=>s.createElement(ge.Form.Item,{label:k().translate("account.login_with")},s.createElement(ge.Select,{onChange:t,value:e},(0,ve.Sf)().includes("password")&&s.createElement(ge.Select.Option,{value:"cloud"},k().translate("account.name")," (",k().translate("wallet.password_model").toLowerCase(),")"),(0,ve.Sf)().includes("wallet")&&s.createElement(ge.Select.Option,{value:"local"},k().translate("wallet.key_file")," (",k().translate("wallet.wallet_model").toLowerCase(),")"))),He=e=>1==(0,ve.Sf)().length?null:s.createElement(S.Z,{stores:[X.Z],inject:{value:()=>X.Z.getState().passwordLogin?"cloud":"local"},actions:()=>({onChange:e=>{const t=e;if(!t in["cloud","local"])throw new Error("Invalid login type value");return b.Z.changeSetting({setting:"passwordLogin",value:"cloud"===t})}})},s.createElement(Ue,e)),Ke=()=>s.createElement("input",{type:"text",className:"no-padding no-margin",style:{visibility:"hidden",height:0}}),Ve=e=>e.stopPropagation(),Ge=({showUseOtherWalletLink:e,onUseOtherWallet:t})=>s.createElement("div",{className:"label-container"},s.createElement("label",{className:"left-label login-label"},s.createElement(g(),{content:"wallet.key_file_bin"})," ")," ",e&&s.createElement("a",{onClick:t},"(",s.createElement(g(),{content:"wallet.use_different"}),")"));class Xe extends s.Component{render(){return s.createElement("label",{className:"upload-button themed-input"},s.createElement(g(),{content:"wallet.restore_key_file"}),s.createElement($e,null),s.createElement("input",{type:"file",onClick:Ve,onChange:this.props.onFileChosen,accept:".bin"}))}}const Je=({onFileChosen:e,onRestoreOther:t})=>s.createElement("div",null,s.createElement(Xe,{onFileChosen:e}),s.createElement("div",{className:"login-hint"},s.createElement(g(),{content:"wallet.different_file_type"})," ",s.createElement("a",{onClick:t},s.createElement(g(),{content:"wallet.restore_it_here"})))),Ye=({onChange:e,checked:t})=>s.createElement("div",{className:"backup-warning"},s.createElement(ge.Alert,{type:"warning",message:k().translate("alert.warning"),description:k().translate("wallet.backup_warning")}),s.createElement("div",{className:"checkbox"},s.createElement(ge.Checkbox,{key:`checkbox_${t}`,onChange:e,checked:t},s.createElement(g(),{content:"wallet.dont_ask_for_backup"}))));class Qe extends s.Component{render=()=>React.createElement("div",{className:"content-block account-selector input-area"},React.createElement("label",{className:"left-label login-label"},React.createElement(Translate,{content:"settings.password"})),React.createElement("input",{ref:"password_input",name:"password",id:"password",type:"password",autoComplete:"current-password"}))}const $e=()=>s.createElement("svg",{viewBox:"0 0 6.349999 7.5313201",version:"1.1",className:"upload-button-logo"},s.createElement("g",{transform:"translate(-86.783338,-137.44666)"},s.createElement("path",{d:"m 89.958337,144.97798 h -3.174999 v -1.18208 -1.18208 l 0.387288,-1.11098 0.387288,-1.11097 h 0.847434 0.847434 v 0.31163 0.31163 l -0.65212,0.17054 -0.652119,0.17053 -0.196798,0.75256 -0.196798,0.75255 h 2.40339 2.403391 l -0.196798,-0.75255 -0.196798,-0.75256 -0.652119,-0.17053 -0.65212,-0.17054 v -0.31163 -0.31163 h 0.847434 0.847434 l 0.387288,1.11097 0.387288,1.11098 v 1.18208 1.18208 z m 0,-3.175 H 89.60556 v -1.2017 -1.20169 l -0.705556,0.1845 -0.705555,0.18451 v -0.33243 -0.33243 l 0.881944,-0.82854 0.881944,-0.82854 0.881945,0.82854 0.881944,0.82854 v 0.33243 0.33243 l -0.705555,-0.18451 -0.705556,-0.1845 v 1.20169 1.2017 z"}))),et=({name:e,onUseOtherWallet:t})=>s.createElement("div",{className:"content-box"},s.createElement("b",null,s.createElement(g(),{content:"wallet.using"}))," ",e," ",s.createElement("a",{onClick:t},"(",s.createElement(g(),{content:"wallet.use_different"}),")")),tt=({onCreate:e})=>s.createElement("div",{className:"login-hint"},s.createElement(g(),{content:"wallet.no_wallet",component:"span"})," ",s.createElement("span",{className:"button",onClick:e},s.createElement(g(),{content:"wallet.create_wallet"}))),at=({restoringBackup:e,walletNames:t,onWalletChange:a})=>s.createElement("select",{value:e?"upload.":"",onChange:a,className:"login-select"},s.createElement("option",{value:"",hidden:!0},k().translate("wallet.select_wallet")),t.map((e=>s.createElement("option",{className:"login-option",key:e,value:`wallet.${e}`},e))),s.createElement("option",{value:"upload."},k().translate("settings.backup_backup_short")));var st=a(96628);class nt extends s.Component{constructor(e){super(e),this.state=this.initialState(e),this.account_input=s.createRef(),this.handlePasswordChange=this.handlePasswordChange.bind(this)}initialState=(e=this.props)=>{const{passwordAccount:t,currentWallet:a}=e;return{isModalVisible:!1,passwordError:null,accountName:t,walletSelected:!!a,customError:null,isOpen:!1,restoringBackup:!1,stopAskingForBackup:!1,rememberMe:X.Z.getState().rememberMe,focusedOnce:!1,isAutoLockVisible:!1}};UNSAFE_componentWillReceiveProps(e){const{walletSelected:t,restoringBackup:a,accountName:s}=this.state,{currentWallet:n,passwordAccount:r}=e,o={};!t||a||n||(o.walletSelected=!1),this.props.passwordLogin!=e.passwordLogin&&(o.passwordError=!1,o.customError=null),this.setState(o)}shouldComponentUpdate(e,t){return!(this.state.isOpen&&!t.isOpen||B.Z.are_equal_shallow(e,this.props)&&B.Z.are_equal_shallow(t,this.state))}handlePasswordChange(e){this.setState({password:e.target.value})}handleModalClose=()=>{J.Z.cancel(),De.ZP.reset(),this.setState(this.initialState())};handleModalOpen=()=>{De.ZP.reset(),this.setState({isOpen:!0},(()=>{const{passwordLogin:e}=this.props;if(!e){const{password_input:e}=this.refs;e&&(e.clear(),e.focus());const{dbWallet:t}=this.props;t&&f.Apis.instance().chain_id!==t.chain_id&&(ge.Notification.error({message:k().translate("notifications.wallet_unlock_different_block_chain",{expectedWalletId:t.chain_id.substring(0,4).toUpperCase(),actualWalletId:f.Apis.instance().chain_id.substring(0,4).toUpperCase()})}),J.Z.cancel())}}))};componentDidMount(){const{modalId:e}=this.props;U().subscribe(e,((t,a)=>{const{isOpen:s}=this.state;t===e&&("close"===a&&s?this.handleModalClose():"open"!==a||s||this.handleModalOpen())}))}componentDidUpdate(){const{resolve:e,isLocked:t,passwordLogin:a}=this.props,{isModalVisible:s,accountName:n,focusedOnce:r}=this.state;if(!r&&s&&a){let e=this.account_input&&this.account_input.current,t=this.password_input;e&&t||this.forceUpdate(),n&&t?(t.input.focus(),this.setState({focusedOnce:!0})):e&&e.input&&"function"==typeof e.focus&&(e.focus(),this.setState({focusedOnce:!0}))}else if(!r&&s&&!a){let e=this.password_input2;e||this.forceUpdate(),e&&(e.input.focus(),this.setState({focusedOnce:!0}))}e?t?this.setState({isModalVisible:!0}):e():this.setState({isModalVisible:!1,password:""})}validate=(e,t)=>{const{passwordLogin:a,resolve:s}=this.props,{stopAskingForBackup:n}=this.state,{cloudMode:r}=G.Z.validatePassword(e||"",!0,t);G.Z.isLocked()?this.setState({passwordError:!0}):(a?(this.setState({password:""}),r&&F.Z.setPasswordAccount(t)):this.setState({password:""}),J.Z.change(),n?Le.Z.setBackupDate():this.shouldUseBackupLogin()&&this.backup(),s(),J.Z.cancel())};passwordInput=()=>this.refs.password_input||this.refs.custom_password_input.refs.password_input;restoreBackup=(e,t)=>{const{backup:a}=this.props,s=r.PrivateKey.fromSeed(e||""),n=a.name.split(".")[0];(0,De.nu)(s.toWif(),a.contents,n).then((()=>Le.Z.setWallet(n).then((()=>{De.ZP.reset(),t()})).catch((e=>this.setState({customError:e.message}))))).catch((e=>{const t="string"==typeof e?e:e.message,a="invalid_decryption_key"===t;this.setState({customError:a?null:t,passwordError:a})}))};handleLogin=e=>{e&&e.preventDefault();const{passwordLogin:t,backup:a}=this.props,{walletSelected:s,accountName:n}=this.state;t||s?this.setState({passwordError:null},(()=>{const e=this.state.password;if(!t&&a.name)this.restoreBackup(e,(()=>this.validate(e)));else{this.state.rememberMe?(0,ye.oA)()||(0,ye.tc)("persistant"):(0,ye.oA)()&&(0,ye.tc)("inram");const a=t?n:null;this.validate(e,a)}})):this.setState({customError:k().translate("wallet.ask_to_select_wallet")})};closeRedirect=e=>{J.Z.cancel(),this.props.history.push(e)};handleCreateWallet=()=>this.closeRedirect("/create-account/wallet");handleRestoreOther=()=>this.closeRedirect("/settings/restore");loadBackup=e=>{const t=e.target.value,a=e.target.files[0];this.setState({restoringBackup:!0},(()=>{const e=t.indexOf("\\")>=0?t.lastIndexOf("\\"):t.lastIndexOf("/");let s=t.substring(e);0!==s.indexOf("\\")&&0!==s.indexOf("/")||(s=s.substring(1)),De.ZP.incommingWebFile(a),this.setState({walletSelected:!0})}))};handleSelectedWalletChange=e=>{const{value:t}=e.target,a=t.split(".")[0],s=t.substring(t.indexOf(".")+1);De.ZP.reset(),"upload"===a?this.setState({restoringBackup:!0,customError:null}):Le.Z.setWallet(s).then((()=>this.setState({walletSelected:!0,customError:null,restoringBackup:!1})))};backup=()=>(0,De.D$)(this.props.dbWallet.password_pubkey).then((e=>{const{currentWallet:t}=this.props,a=(0,st.a)(t);De.ZP.incommingBuffer({name:a,contents:e});const{backup:s}=this.props;let n=new Blob([s.contents],{type:"application/octet-stream; charset=us-ascii"});if(n.size!==s.size)throw new Error("Invalid backup to download conversion");(0,We.saveAs)(n,a),Le.Z.setBackupDate(),De.ZP.reset()}));handleAskForBackupChange=e=>this.setState({stopAskingForBackup:e.target.checked});handleUseOtherWallet=()=>{this.setState({walletSelected:!1,restoringBackup:!1,passwordError:null,customError:null})};handleAccountNameChange=e=>this.setState({accountName:e,error:null});shouldShowBackupWarning=()=>!this.props.passwordLogin&&this.state.walletSelected&&!this.state.restoringBackup&&!(this.props.dbWallet&&this.props.dbWallet.backup_date);shouldUseBackupLogin=()=>this.shouldShowBackupWarning()&&!this.state.stopAskingForBackup;handleRememberMe=()=>{let e=!this.state.rememberMe;this.setState({rememberMe:e}),b.Z.changeSetting({setting:"rememberMe",value:e})};handleWalletAutoLock=e=>{let t=parseInt(e,10);isNaN(t)&&(t=0),isNaN(t)||"number"!=typeof t||b.Z.changeSetting({setting:"walletLockTimeout",value:t})};render(){const{backup:e,passwordLogin:t,modalId:a,currentWallet:n,walletNames:r,walletLockTimeout:o}=this.props,{walletSelected:i,restoringBackup:l,passwordError:c,customError:d,accountName:u,stopAskingForBackup:p,isOpen:h}=this.state,m=!(r.size>0),b=m&&!i,f=e.name||n,_=c?k().translate("wallet.pass_incorrect"):d;let w=[];return t&&(w.push(s.createElement(ge.Tooltip,{key:"wallet.remember_me_explanation",title:k().translate("wallet.remember_me_explanation")},s.createElement("div",{style:{float:"left",cursor:"pointer",marginTop:"6px"},onClick:this.handleRememberMe.bind(this)},s.createElement(g(),{content:"wallet.remember_me"}),s.createElement(ge.Switch,{checked:this.state.rememberMe,onChange:this.handleRememberMe.bind(this)})))),w.push(s.createElement("div",{style:{float:"left"},key:"settings.walletLockTimeoutTooltip"},s.createElement("span",null,s.createElement(ge.Tooltip,{title:k().translate("settings.walletLockTimeoutTooltip")},s.createElement("span",null,s.createElement(y.Z,{onClick:()=>{this.setState({isAutoLockVisible:!this.state.isAutoLockVisible})},name:"autolock",size:"1_5x",style:{cursor:"pointer",top:"5px",position:"relative",marginLeft:"12px"}}))),this.state.isAutoLockVisible&&s.createElement(ge.Tooltip,{title:k().translate("settings.walletLockTimeout")},s.createElement(ge.InputNumber,{value:o,onChange:this.handleWalletAutoLock,placeholder:"Auto-lock after...",style:{marginLeft:"7px",width:"65px"}})))))),w.push(s.createElement("span",{className:"auto-lock-wrapper",key:"wallet.backup_login"},s.createElement(ge.Button,{onClick:this.handleLogin,key:"login-btn"},k().translate(this.shouldUseBackupLogin()?"wallet.backup_login":"header.unlock_short")))),s.createElement(ge.Modal,{title:"Login",visible:this.state.isModalVisible,wrapClassName:"unlock_wallet_modal2",id:a,closeable:!1,ref:"modal",overlay:!0,overlayClose:!1,modalHeader:"header.unlock_short",onCancel:this.handleModalClose,leftHeader:!0,footer:w,zIndex:1001},s.createElement(ge.Form,{className:"full-width",layout:"vertical"},s.createElement(He,null),t?s.createElement("div",null,s.createElement(Ke,null),s.createElement(Fe,{label:"account.name",inputRef:this.account_input,accountName:u,account:u,onChange:this.handleAccountNameChange,onAccountChanged:()=>{},size:60,hideImage:!0,placeholder:" ",useHR:!0,labelClass:"login-label",reserveErrorSpace:!0}),s.createElement(ge.Form.Item,{label:k().translate("settings.password"),validateStatus:c?"error":"",help:c||""},s.createElement(ge.Input,{type:"password",value:this.state.password,onChange:this.handlePasswordChange,onPressEnter:this.handleLogin,ref:e=>{this.password_input=e}}))):s.createElement("div",null,s.createElement("div",{className:"key-file-selector "+(l&&!i?"restoring":"")},s.createElement(Ge,{showUseOtherWalletLink:l&&!e.name,onUseOtherWallet:this.handleUseOtherWallet}),s.createElement("hr",null),i?s.createElement(et,{name:f,onUseOtherWallet:this.handleUseOtherWallet}):s.createElement("div",null,l||m?s.createElement(Je,{onFileChosen:this.loadBackup,onRestoreOther:this.handleRestoreOther}):s.createElement(at,{onFileChosen:this.loadBackup,restoringBackup:l,walletNames:r,onWalletChange:this.handleSelectedWalletChange}),b&&s.createElement(tt,{onCreate:this.handleCreateWallet}))),s.createElement(ge.Form.Item,{label:k().translate("wallet.enter_password"),validateStatus:_?"error":"success",help:_},s.createElement(ge.Input,{type:"password",value:this.state.password,placeholder:k().translate("wallet.enter_password"),onChange:this.handlePasswordChange,onPressEnter:this.handleLogin,ref:e=>{this.password_input2=e}}))),this.shouldShowBackupWarning()&&s.createElement(Ye,{onChange:this.handleAskForBackupChange,checked:p})))}}nt.defaultProps={modalId:"unlock_wallet_modal2"},nt=(0,d.EN)(nt);class rt extends s.Component{render(){return s.createElement(S.Z,{stores:[X.Z,o.Z,Y.Z,G.Z,qe.Z,h.Z],inject:{currentWallet:()=>Y.Z.getState().current_wallet,walletNames:()=>Y.Z.getState().wallet_names,dbWallet:()=>G.Z.getWallet(),isLocked:()=>G.Z.isLocked(),backup:()=>qe.Z.getState(),resolve:()=>X.Z.getState().resolve,reject:()=>X.Z.getState().reject,locked:()=>X.Z.getState().locked,passwordLogin:()=>X.Z.getState().passwordLogin,passwordAccount:()=>o.Z.getState().passwordAccount||"",walletLockTimeout:()=>h.Z.getState().settings.get("walletLockTimeout")}},s.createElement(nt,this.props))}}const ot=rt;a(14169);class it extends s.Component{_openLink(){window.open("https://www.google.com/chrome/browser/desktop/","_blank").opener=null}render(){return s.createElement(ge.Modal,{visible:this.props.visible,onCancel:this.props.hideModal,title:k().translate("app_init.browser"),footer:[s.createElement(ge.Button,{key:"submit",type:"primary",onClick:this.props.hideModal},k().translate("app_init.understand"))]},s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement(g(),{component:"p",content:"app_init.browser_text",wallet_name:(0,ve.w)()}),s.createElement("br",null),s.createElement("p",null,s.createElement("a",{className:"external-link",onClick:this._openLink},"Google Chrome"))))}}var lt=a(73727),ct=a(86481),dt=a(34342),ut=a.n(dt);let pt=(0,ye.ZP)("__graphene__");const ht=i.Z.createActions(class{async setLog(e){return await pt.set("logs",JSON.stringify(e))}getLogs(){return new Promise((e=>{try{e(JSON.parse(pt.get("logs",[])))}catch(t){e(["Error loading logs from localStorage"])}}))}});var mt=a(59485),gt=a(51407);class bt extends s.Component{constructor(e){super(e),this.state=this.getInitialState(e),this.showLog=this.showLog.bind(this)}getInitialState(){return{loadingImage:!1,logEntries:[],logsCopySuccess:!1,showLog:!1,imageURI:null,showScreen:!1}}shouldComponentUpdate(e,t){let a=this.props.visible!==e.visible||this.state.imageURI!==t.imageURI||this.state.showLog!==t.showLog||this.state.showScreen!==t.showScreen;return e.visible&&this.props.visible!==e.visible&&(this.getLogs(),(0,gt.default)(document.getElementById("content")).then((e=>e.toDataURL("image/png"))).then((e=>this.setState({imageURI:e})),(e=>{console.error("Screenshot could not be captured",e),this.setState({imageURI:"Screenshot could not be captured"})}))),a}onLogEntryChanged(e){this.setState({logEntries:[e.target.value]})}showScreenshot=()=>{this.setState({showScreen:!this.state.showScreen})};getLogs=()=>{ht.getLogs().then((e=>{this.setState({logEntries:e.join("\n")})}))};showLog(){this.setState({showLog:!this.state.showLog})}render(){let{logEntries:e,loadingImage:t,logsCopySuccess:a,showLog:n,showScreen:r}=this.state;return s.createElement(ge.Modal,{title:k().translate("modal.report.title"),visible:this.props.visible,onCancel:this.props.hideModal,footer:[s.createElement(ge.Button,{key:"submit",onClick:this.props.hideModal},k().translate("modal.ok"))]},s.createElement("div",{className:"grid-block vertical no-overflow"},s.createElement("p",null,s.createElement(g(),{content:"modal.report.explanatory_text_1"})),s.createElement("span",{className:"raw",style:{border:"1px solid darkgray",marginBottom:"1em"}},s.createElement("div",{className:"right-label",style:{paddingBottom:"0em"}},s.createElement(mt.Z,{text:this.state.logEntries})),s.createElement(ge.Tooltip,{title:this.state.showLog?k().translate("modal.report.hideLog"):k().translate("modal.report.showLog")},s.createElement("div",{onClick:this.showLog,style:{cursor:"pointer"}},s.createElement("label",{className:"left-label",style:{paddingTop:"1em",paddingLeft:"0.5em",cursor:"pointer"}},this.state.showLog?"-":"+"," ",s.createElement(g(),{content:"modal.report.lastLogEntries"})))),(()=>{if(n)return s.createElement("textarea",{id:"logsText",style:{},rows:"20",value:e,onChange:this.onLogEntryChanged.bind(this)})})()),s.createElement("span",{className:"raw",style:{border:"1px solid darkgray",marginBottom:"1em"}},s.createElement("div",{className:"right-label",style:{paddingBottom:"0em"}},null!=this.state.imageURI?s.createElement("img",{style:{height:"2.8em",marginTop:"0em",marginRight:"0em"},src:this.state.imageURI}):"Failed"),s.createElement("div",{className:"right-label",style:{paddingBottom:"0em",paddingTop:"1em",paddingRight:"0.5em"}},s.createElement(g(),{content:"modal.report.copyScreenshot"})),s.createElement(ge.Tooltip,{title:this.state.showScreen?k().translate("modal.report.hideScreenshot"):k().translate("modal.report.takeScreenshot")},s.createElement("div",{onClick:this.showScreenshot,style:{cursor:"pointer"}},s.createElement("label",{className:"left-label",style:{paddingTop:"1em",paddingLeft:"0.5em",cursor:"pointer"}},this.state.showScreen?"-":"+"," ",s.createElement(g(),{content:"modal.report.screenshot"})))),(()=>{if(null!=this.state.imageURI&&r)return this.state.imageURI.length>100?s.createElement("img",{src:this.state.imageURI}):s.createElement("text",null,"this.state.imageURI")})()),s.createElement("br",null),s.createElement("p",null,s.createElement(g(),{content:"modal.report.explanatory_text_2"}),s.createElement("br",null),"  ",s.createElement("a",{href:"https://github.com/bitshares/bitshares-ui/issues",target:"_blank",rel:"noopener noreferrer",style:{textAlign:"center",width:"100%"},className:"external-link"},"https://github.com/bitshares/bitshares-ui/issues"),s.createElement("br",null),s.createElement(g(),{content:"modal.report.explanatory_text_3"}),s.createElement("br",null),s.createElement("br",null),s.createElement(g(),{content:"modal.report.explanatory_text_4"})),t&&s.createElement("div",{style:{textAlign:"center"}},s.createElement(x.Z,{type:"three-bounce"})),a&&s.createElement("p",null,s.createElement(g(),{content:"modal.report.copySuccess"}))))}}const ft=bt;var yt=a(30881);class _t extends s.Component{static propTypes={choices:M().array.isRequired,content:M().object};static defaultProps={content:null};confirmClicked(e,t){t.preventDefault(),setTimeout((()=>{this.props.hideModal()}),500),e()}render(){const e=[];return this.props.choices.map(((t,a)=>{e.push(s.createElement(ge.Button,{type:"primary",key:a,onClick:this.confirmClicked.bind(this,t.callback)},k().translate(t.translationKey)))})),e.push(s.createElement(ge.Button,{key:"cancel",onClick:this.props.hideModal},k().translate("modal.cancel"))),s.createElement(ge.Modal,{width:600,title:k().translate("connection.title_out_of_sync"),visible:this.props.visible,onCancel:this.props.hideModal,footer:e,id:this.props.modalId,overlay:!0},s.createElement("div",{className:"grid-block vertical"},this.props.content,s.Children.map(this.props.children,((e,t)=>{let a={};return a.key=t+"",s.cloneElement(e,a)}))))}}const wt=_t;var kt=a(2486),vt=a.n(kt);function At(){return At=Object.assign||function(e){for(var t=1;t!!t&&!!t.url&&t.url===e));return-1===t?null:t}getCurrentNodeIndex(){const{props:e}=this;return this.getNodeIndexByURL.call(this,e.currentNode)}getNode(e={url:"",operator:""}){if(!e||!e.url)throw"Node is undefined of has no url";const{props:t}=this,a=-1!==e.url.indexOf("testnet");e.location&&e.location.translate&&(e.location=k().translate(e.location.translate));let s=e.operator+" "+!!e.location?e.location:"";return"country"in e&&(s=e.country+(s?" - "+s:"")),{name:s,url:e.url,ping:e.url in t.apiLatencies?t.apiLatencies[e.url]:-1,testNet:a}}getBlockTime(){let e=r.ChainStore.getObject("2.1.0");if(e){let t=e.get("time");return/Z$/.test(t)||(t+="Z"),new Date(t)}throw new Error("Blocktime not available right now")}getBlockTimeDelta(){try{let e=(this.getBlockTime().getTime()+r.ChainStore.getEstimatedChainTimeOffset())/1e3,t=(new Date).getTime()/1e3;return Math.abs(t-e)}catch(e){return console.log(e),-1}}_closeOutOfSyncModal(){this._hideOutOfSyncModal()}_ensureConnectivity(){if(vt().now("active"))if("closed"!==this.props.rpc_connection_status)if(this.props.synced)setTimeout((()=>{this._closeOutOfSyncModal(),this.setState({hasOutOfSyncModalBeenShownOnce:!1})}),50);else{let e=this._getForceReconnectAfterSeconds(),t=10;setTimeout((()=>{this.props.synced||this._triggerReconnect()}),1e3*e),this.getBlockTimeDelta()>3&&(console.log("Your node is out of sync since "+this.getBlockTimeDelta()+" seconds, waiting "+t+" seconds, then we notify you"),setTimeout((()=>{this.getBlockTimeDelta()>3&&!1===this.state.hasOutOfSyncModalBeenShownOnce&&(this.setState({hasOutOfSyncModalBeenShownOnce:!0}),this._showOutOfSyncModal())}),1e3*t))}else console.log("Your connection was lost"),setTimeout((()=>{this._triggerReconnect()}),50)}_getForceReconnectAfterSeconds(){return 60}_triggerReconnect(e=!0){if((!e||yt._.isAutoSelection())&&!yt._.isTransitionInProgress()){this._closeOutOfSyncModal(),console.log("Trying to reconnect ...");let e=yt._.willTransitionTo(!1);e&&setTimeout((()=>{this.forceUpdate()}),10),e.then((()=>{console.log("... done trying to reconnect")}))}}_showAccessSettingsTooltip(e){this.state.isAccessSettingsPopoverVisible?this.setState({showAccessSettingsTooltip:!1}):this.setState({showAccessSettingsTooltip:e})}render(){const{state:e,props:t}=this,{synced:a}=t,n=!("closed"===this.props.rpc_connection_status);let r=this.props.defaults.apiServer,o=this.getCurrentNodeIndex.call(this),i=this.getNode(r[o]||r[0]);if("wss://fake.automatic-selection.com"==i.url){let e=t.activeNode;o=this.getNodeIndexByURL.call(this,e),i=o?this.getNode(r[o]):this.getNode(r[0])}let l=this.props.dynGlobalObject.get("head_block_number"),c="8d83224".match(/\d\.\d\.(\d{6}.{0,1}\d{0,1})/),d=c?`.${c[1]}`:" 8d83224",u="8d83224".match(/-rc[0-9]$/);return u&&(d+=u[0]),this._ensureConnectivity(),s.createElement("div",null,!!yt._&&yt._.isTransitionInProgress()&&s.createElement(x.Z,{loadingText:yt._.getTransitionTarget()}),s.createElement(wt,{showModal:this._showOutOfSyncModal,hideModal:this._hideOutOfSyncModal,visible:this.state.isOutOfSyncModalVisible,choices:[{translationKey:"connection.manual_reconnect",callback:()=>{this.props.synced||this._triggerReconnect(!1)}},{translationKey:"connection.manual_ping_and_narrow_down",callback:()=>{this.props.synced||this.onAccess()}}]},s.createElement("div",null,s.createElement(g(),{content:"connection.out_of_sync",out_of_sync_seconds:parseInt(this.getBlockTimeDelta())}),s.createElement("br",null),s.createElement("br",null),s.createElement(g(),{content:"connection.want_to_reconnect"}),yt._.isAutoSelection()&&s.createElement(g(),{content:"connection.automatic_reconnect",reconnect_in_seconds:parseInt(this._getForceReconnectAfterSeconds())}))),s.createElement("div",{className:"show-for-medium grid-block shrink footer"},s.createElement("div",{className:"align-justify grid-block"},s.createElement("div",{className:"grid-block"},s.createElement("div",At({className:"logo",style:{fontSize:e.newVersion?"0.9em":"1em",cursor:e.newVersion?"pointer":"normal",marginTop:e.newVersion?"-5px":"0px",overflow:"hidden"},onClick:e.newVersion?this.downloadVersion.bind(this):null},{}),e.newVersion&&s.createElement(y.Z,{name:"download",title:k().translate("icons.download",{wallet_name:(0,ve.w)()}),style:{marginRight:"20px",marginTop:"10px",fontSize:"1.35em",display:"inline-block"}}),s.createElement("span",{style:{display:"inline-block",verticalAlign:"top"}},s.createElement(g(),{content:"footer.title",wallet_name:(0,ve.w)()}),s.createElement("span",{className:"version"},d)),s.createElement("span",null," ","-"," ",s.createElement(lt.rU,{to:"/help/disclaimer"},"Disclaimer")," "),e.newVersion&&s.createElement(g(),{content:"footer.update_available",style:{color:"#FCAB53",position:"absolute",top:"8px",left:"36px"}}))),!!yt._&&yt._.isBackgroundPingingInProgress()&&s.createElement("div",{onClick:()=>{this._showNodesPopover()},style:{cursor:"pointer"},className:"grid-block shrink txtlabel"},yt._.getBackgroundPingingTarget(),s.createElement("div",{style:{marginTop:"0.4rem",marginLeft:"0.5rem"}},s.createElement(x.Z,{type:"circle"})),"   "),a?null:s.createElement("div",{className:"grid-block shrink txtlabel cancel"},s.createElement(g(),{content:"footer.nosync"}),"   "),n?null:s.createElement("div",{className:"grid-block shrink txtlabel error"},s.createElement(g(),{content:"footer.connection"}),"   "),this.props.backup_recommended?s.createElement("span",null,s.createElement("div",{className:"grid-block"},s.createElement(ge.Tooltip,{overlay:s.createElement("div",null,"Please understand that you are responsible for making your own backup…")},s.createElement("a",{className:"shrink txtlabel facolor-alert",onClick:this.onBackup.bind(this)},s.createElement(g(),{content:"footer.backup"}))),"  ")):null,this.props.backup_brainkey_recommended?s.createElement("span",null,s.createElement("div",{className:"grid-block"},s.createElement("a",{className:"grid-block shrink txtlabel facolor-alert",onClick:this.onBackupBrainkey.bind(this)},s.createElement(g(),{content:"footer.brainkey"})),"  ")):null,l?s.createElement("div",{className:"grid-block shrink"},s.createElement(ge.Tooltip,{title:k().translate("tooltip.nodes_popup"),mouseEnterDelay:.5,onVisibleChange:this._showAccessSettingsTooltip,visible:this.state.showAccessSettingsTooltip},s.createElement("div",{onClick:()=>{this._showNodesPopover()},style:{position:"relative",cursor:"pointer"}},s.createElement("div",{className:"footer-status"},n&&i.testNet&&s.createElement("span",{className:"testnet"},s.createElement(g(),{content:"settings.testnet_nodes"})," "),n?s.createElement("span",{className:"success"},i.name):s.createElement("span",{className:"warning"},s.createElement(g(),{content:"footer.disconnected"}))),s.createElement("div",{className:"footer-block"},s.createElement("span",null,s.createElement("span",{className:"footer-block-title"},s.createElement(g(),{content:"footer.latency"}))," ",n&&i.ping?parseInt(i.ping)+"ms":"-"," / ",s.createElement("span",{className:"footer-block-title"},s.createElement(g(),{content:"footer.block"}))," #",l)))),s.createElement("div",{className:"grid-block"},s.createElement(ge.Tooltip,{title:k().translate("tooltip.debug_report"),placement:"topRight",mouseEnterDelay:.5},s.createElement("div",{className:"introjs-launcher",onClick:e=>{this._showReportModal(e)}},s.createElement(g(),{content:"modal.report.button"}))),s.createElement(ge.Tooltip,{title:k().translate("tooltip.self_help"),placement:"topRight",mouseEnterDelay:.5},s.createElement("div",{className:"introjs-launcher",onClick:()=>{this.launchIntroJS()}},s.createElement(g(),{content:"global.help"}))))):s.createElement("div",{className:"grid-block shrink"},s.createElement(g(),{content:"footer.loading"})))),s.createElement("div",{onMouseLeave:()=>{this.setState({isAccessSettingsPopoverVisible:!1})},className:"node-access-popup",style:{display:this.state.isAccessSettingsPopoverVisible?"":"none"}},s.createElement(v.Z,{nodes:this.props.defaults.apiServer,popup:!0}),s.createElement("div",{style:{paddingTop:15}},s.createElement("a",{onClick:this.onAccess.bind(this)},s.createElement(g(),{content:"footer.advanced_settings"})))),s.createElement("div",{className:"introjs-launcher show-for-small-only",onClick:()=>{this.launchIntroJS()}},s.createElement(g(),{content:"global.help"})),s.createElement(ft,{showModal:this._showReportModal,hideModal:this._hideReportModal,visible:this.state.isReportModalVisible,refCallback:e=>{e&&(this.reportModal=e)}}))}_showNodesPopover(){this.state.showAccessSettingsTooltip&&this.state.isAccessSettingsPopoverVisible,this.setState({isAccessSettingsPopoverVisible:!this.state.isAccessSettingsPopoverVisible,showAccessSettingsTooltip:!1})}onBackup(){this.props.history.push("/wallet/backup/create")}onBackupBrainkey(){this.props.history.push("/wallet/backup/brainkey")}onPopup(){this.setState({isAccessSettingsPopoverVisible:!this.state.isAccessSettingsPopoverVisible})}onAccess(){b.Z.changeViewSetting({activeSetting:6}),this.props.history.push("/settings/access")}}Et=(0,T.Z)(Et);class xt extends s.Component{render(){var e=G.Z.getWallet();return s.createElement(S.Z,{stores:[ct.Z,p.Z,G.Z,h.Z],inject:{defaults:()=>h.Z.getState().defaults,apiLatencies:()=>h.Z.getState().apiLatencies,currentNode:()=>h.Z.getState().settings.get("apiServer"),activeNode:()=>h.Z.getState().settings.get("activeNode"),backup_recommended:()=>e&&(!e.backup_date||ct.Z.get("backup_recommended")),rpc_connection_status:()=>p.Z.getState().rpc_connection_status}},s.createElement(Et,this.props))}}const St=xt;var Ct=a(68356),Tt=a.n(Ct);Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,57805)),loading:x.Z});class Bt extends s.Component{hasWallet(){return!!WalletDb.getWallet()}renderForWallet(){return React.createElement("div",null,React.createElement(Translate,{content:"migration.text_1",component:"h4"}),React.createElement(Translate,{content:"migration.text_2",component:"p",unsafe:!0,wallet_url:getWalletURL()}))}renderForCloud(){return React.createElement("div",null,React.createElement(Translate,{content:"migration.text_3",unsafe:!0,component:"p",wallet_url:getWalletURL()}))}render(){return React.createElement("div",{className:"grid-frame"},React.createElement("div",{className:"grid-block vertical",style:{paddingBottom:"3rem"}},React.createElement("div",{className:"grid-content large-offset-2 large-8 shrink"},React.createElement(Translate,{content:"migration.title",component:"h2"}),React.createElement(Translate,{content:"migration.announcement_1",unsafe:!0,component:"p"}),React.createElement("p",null,React.createElement("a",{href:getWalletURL(),target:"blank",rel:"noopener noreferrer"},getWalletURL())),this.hasWallet()?this.renderForWallet():this.renderForCloud()),this.hasWallet()?React.createElement(Settings,Deprecate_extends({},this.props,{deprecated:!0})):null))}}class zt extends s.Component{render(){const{props:e}=this;return s.createElement("div",{id:"incognito"},s.createElement("div",{className:"dismiss",onClick:e.onClickIgnore},"×"),s.createElement("strong",null,s.createElement(g(),{content:"incognito.mode"})," "),s.createElement(g(),{content:"incognito.warning"}))}}const Pt=zt;var Nt=a(54453),Mt=a(41737);class Zt{static GetTitleByPath(e){let t=(0,ve.w)(),a=null;return e.split("/").forEach((e=>{""!=e&&(t+=" - ","account"===a?t+=e:"market"===a&&e.match(/_/)?t+=e.replace("_"," / "):null!=this.GetLocaleKey(e)?t+=k().translate(this.GetLocaleKey(e)):-1!==e.match(/-|_/)?e.split(/-|_/).forEach((e=>{t+=e.charAt(0).toUpperCase()+e.substring(1)+" "})):t+=e.charAt(0).toUpperCase()+e.substring(1),a=e)})),t}static GetLocaleKey(e){switch(e){case"access":return"settings.access";case"account":return"header.account";case"accounts":return"explorer.accounts.title";case"asset":return"explorer.asset.title";case"assets":return"explorer.assets.title";case"backup":return"settings.backup";case"block":return"explorer.block.title";case"blocks":return"explorer.blocks.title";case"committee-members":return"explorer.committee_members.title";case"dashboard":return"header.dashboard";case"faucet_address":return"settings.faucet_address";case"market":return"exchange.market";case"markets":return"markets.title";case"password":return"settings.password";case"settings":return"header.settings";case"reset":return"settings.reset";case"restore":return"settings.restore";case"signedmessages":return"account.signedmessages.title";case"voting":return"account.voting";case"wallet":return"wallet.title";case"witnesses":return"explorer.witnesses.title";default:return null}}}var It=a(90706),Ot=a(91822);const qt=e=>r.hash.sha1(e.type+e.begin_date+e.end_date+e.content).toString("hex"),Lt=(e,t)=>({...Object.values(e).filter((e=>!!("object"==typeof e&&e.type&&e.begin_date&&e.end_date&&e.content)&&-1==t.indexOf(qt(e))))});class Dt extends s.Component{constructor(){super(),this.state={news:{},hiddenNewsHeadlineSize:0}}componentDidMount(){this.getNewsThroughAsset()}static getDerivedStateFromProps(e,t){return e.hiddenNewsHeadline.size!==t.hiddenNewsHeadlineSize?{news:Lt(t.news,e.hiddenNewsHeadline),hiddenNewsHeadlineSize:e.hiddenNewsHeadline.size}:null}shouldComponentUpdate(e,t){return Object.keys(this.state.news).length!==Object.keys(t.news).length||e.hiddenNewsHeadline.size!==this.props.hiddenNewsHeadline.size}getNewsFromGitHub(){fetch("https://api.github.com/repos/blockchainprojects/bitshares-ui/contents/news.json?ref=news_feed_on_the_very_top").then((e=>e.json())).then((e=>{const t=Lt(JSON.parse(atob(e.content)),this.props.hiddenNewsHeadline);this.setState({news:t})}).bind(this))}async getNewsThroughAsset(){const e=await(0,Ot.TH)(),t=Lt(e,this.props.hiddenNewsHeadline);this.setState({news:t})}onClose(e){let t=qt(e);-1==this.props.hiddenNewsHeadline.indexOf(qt(e))&&b.Z.hideNewsHeadline(t)}render(){const{news:e}=this.state;if(!Object.keys(e).length)return null;const t=Object.values(e).reduce(((e,t,a)=>{const n=new Date,r="critical"===t.type?"error":t.type,o=new Date(t.begin_date.split(".").reverse()),i=new Date(t.end_date.split(".").reverse());let l=t.content;if(n>=o&&n<=i){let n=/(https?):\/\/(www\.)?[^!]+/g,o=l.match(n);o&&o.length&&o.forEach((e=>{let t=l.split(e);l=s.createElement("span",null,t[0],s.createElement("a",{target:"_blank",className:"external-link",rel:"noopener noreferrer",href:e,style:{cursor:"pointer"}},e),t[1])})),e=[...e,s.createElement("div",{className:"git-info",key:`git-alert${a}`},s.createElement(ge.Alert,{type:r,message:l,banner:!0}),"info"===r||"warning"===r?s.createElement(ge.Icon,{type:"close",className:"close-icon",style:{cursor:"pointer"},onClick:this.onClose.bind(this,t)}):null)]}return e}),[]);return s.createElement(It.Z,{autoplaySpeed:15e3,autoplay:!0,dots:!1},t)}}const Rt=Dt=(0,u.$)(Dt,{listenTo:()=>[h.Z],getProps:()=>({hiddenNewsHeadline:h.Z.getState().hiddenNewsHeadline})});var jt=a(24647),Ft=a(4207),Wt=a(98750);class Ut extends s.Component{constructor(e){super(e),this.state={isInputActive:!1},this.handleBlur=this.handleBlur.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleInputChange=this.handleInputChange.bind(this)}componentDidUpdate(){this.props.focus&&this.refs.input.focus()}handleBlur(){this.setState({isInputActive:!1})}handleFocus(){this.setState({isInputActive:!0})}handleInputChange(e){this.props.onChange(e.target.value)}isAccountScammer(){let e=Wt.Z.getAccount(this.props.value);return!(!e||!e.get)&&Re.Z.isKnownScammer(e.get("name"))}getAccountStatus(){let e=Wt.Z.getAccount(this.props.value);if(e&&e.get){if(this.isAccountScammer())return k().translate("account.member.suspected_scammer");let t=Wt.Z.getAccountMemberStatus(e);return k().translate("account.member."+t)+" #"+e.get("id").substring(4)}return null}isAccountFound(){return!!Wt.Z.getAccount(this.props.value)}getValidateStatus(){return this.state.isInputActive||!this.props.value?"":this.isAccountFound()?"success":"error"}getHelp(){return this.state.isInputActive||!this.props.value||this.isAccountFound()?"":k().translate("account.errors.unknown")}getPlaceholder(){return this.props.placeholder?k().translate(this.props.placeholder):""}input(){const e=this.props.value,t=this.handleInputChange;return s.createElement(ge.Input,{ref:"input",placeholder:this.getPlaceholder(),value:e,onChange:t,onBlur:this.handleBlur,onFocus:this.handleFocus})}labelComponent(){let e=this.getAccountStatus(),t=()=>{if(this.isAccountScammer())return"account-input-style-guide--account-status--scammer"};return s.createElement(ge.Form.Item,{style:{textAlign:"left"},label:(()=>s.createElement("span",{className:"account-input-style-guide--label"},k().translate(this.props.label),s.createElement("span",{className:`account-input-style-guide--account-status ${t()}`},e)))(),help:this.getHelp(),validateStatus:this.getValidateStatus()},this.input())}simpleComponent(){this.input()}render(){return s.createElement("div",{className:"account-input-style-guide"},this.props.label?this.labelComponent():this.simpleComponent())}}const Ht=Ut;class Kt extends s.Component{static propTypes={active:M().bool.isRequired,onChangeActive:M().func.isRequired,goToWalletModel:M().func.isRequired};constructor(e){super(),this.state=this.getInitialState(e),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.onPasswordEnter=this.onPasswordEnter.bind(this),this.accountChanged=this.accountChanged.bind(this),this.onAccountChanged=this.onAccountChanged.bind(this)}getInitialState(e=this.props){return{password:"",passwordError:null,accountName:e.passwordAccount,account:null,passwordVisible:!1}}componentDidUpdate(e){te.Z.rebuild(),!e.active&&this.props.active&&this.state.accountName&&this.refs.password.focus()}UNSAFE_componentWillReceiveProps(e){e.passwordAccount&&!this.state.accountName&&this.setState({accountName:e.passwordAccount})}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(e,this.props)||!B.Z.are_equal_shallow(t,this.state)}handlePasswordChange(e){this.setState({password:e.target.value})}onPasswordEnter(e){e&&e.preventDefault();const t=this.state.password,a=this.state.accountName;return this.setState({passwordError:null}),G.Z.validatePassword(t,!0,a),setTimeout((()=>{if(G.Z.validatePassword(t,!0,a),G.Z.isLocked())return this.setState({passwordError:!0}),!1;this.setState({password:""}),F.Z.setPasswordAccount(a),b.Z.changeSetting({setting:"passwordLogin",value:!0}),this.props.history.push("/"),J.Z.change()}),550),!1}onAccountChanged(e){this.setState({account:e,error:null})}accountChanged(e){if(e){let t=Wt.Z.getAccount(e);this.setState({accountName:e,error:null,account:t})}else this.setState({account:null,accountName:null})}reset(){this.setState(this.getInitialState())}hideTooltip(){document.getElementById("password-error").classList.remove("custom-tooltip"),te.Z.hide()}renderButtons(){return s.createElement(ge.Form.Item,{style:{textAlign:"center"}},this.props.active?s.createElement(ge.Button,{onClick:this.onPasswordEnter,type:"primary"},k().translate("login.loginButton")):s.createElement(ge.Button,null,k().translate("registration.select")))}renderTooltip(){return s.createElement(te.Z,{id:"password-error",className:"custom-tooltip text-left"},s.createElement("div",{className:"tooltip-text"},s.createElement(g(),{content:"tooltip.login-tooltip.incorrectPassword.begin"}),s.createElement(g(),{onClick:this.props.goToWalletModel,className:"active-upload-text without-bin cursor-pointer",content:"tooltip.login-tooltip.incorrectPassword.model"}),s.createElement(g(),{content:"tooltip.login-tooltip.incorrectPassword.end"}),s.createElement("span",{onClick:()=>this.hideTooltip(),className:"close-button"},"×")))}renderNameInput(){const{accountName:e}=this.state,{active:t}=this.props;return s.createElement(Ht,{label:"account.name",value:e,onChange:this.accountChanged,placeholder:"account.name",size:60,hideImage:!0,focus:t&&!this.state.accountName})}renderPasswordInput(){const{passwordError:e,passwordVisible:t}=this.state;return s.createElement(ge.Form.Item,{label:"Password",help:null!==e?s.createElement(g(),{"data-for":"password-error","data-tip":!0,"data-place":"bottom","data-effect":"solid","data-delay-hide":500,content:"wallet.pass_incorrect"}):null,validateStatus:null!==e?"error":""},s.createElement(ge.Input,{ref:"password",placeholder:k().translate("wallet.enter_password"),style:{width:"100%"},value:this.state.password,onChange:this.handlePasswordChange,type:t?"text":"password",className:(e?"input-warning":"")+" input create-account-input"}))}render(){return s.createElement("div",{onClick:this.props.onChangeActive,className:"account-block"},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(ge.Form,{layout:"vertical",className:this.props.active?"":"display-none",style:{textAlign:"left"}},this.renderNameInput(),this.renderPasswordInput(),this.renderButtons()),this.renderTooltip())}}const Vt=function(e){return s.createElement(S.Z,{stores:[o.Z],inject:{passwordAccount:()=>o.Z.getState().passwordAccount||""}},s.createElement(Kt,e))};class Gt extends s.Component{static propTypes={active:M().bool,currentAccount:M().string,backup:M().object,wallet:M().object,history:M().object.isRequired};static defaultProps={active:!1,currentAccount:"",backup:{},wallet:{}};constructor(){super(),this.state={backupPassword:"",formError:""},this.onPassword=this.onPassword.bind(this),this.formChange=this.formChange.bind(this)}componentDidUpdate(e){this.props.active&&this.refs.passwordInput&&this.refs.passwordInput.focus&&this.refs.passwordInput.focus(),!e.currentAccount&&this.props.currentAccount&&this.props.history.push("/")}onRestore(){const{backupPassword:e}=this.state;G.Z.validatePassword(e||"",!0),J.Z.change(),b.Z.changeSetting({setting:"passwordLogin",value:!1}),De.ZP.reset()}onPassword(e){e&&e.preventDefault();const t=r.PrivateKey.fromSeed(this.state.backupPassword||""),{contents:a,name:s}=this.props.backup,n=s.split(".")[0];(0,De.nu)(t.toWif(),a,n).then((()=>Le.Z.setWallet(n).then((()=>{this.onRestore(n)})))).catch((e=>{console.error(`Error verifying wallet ${this.props.backup.name}`,e,e.stack),"invalid_decryption_key"===e?this.setState({formError:k().translate("notifications.invalid_password")}):this.setState({formError:e}),this.setState({passwordError:!0})}))}formChange(e){const t={};t[e.target.id]=e.target.value,this.setState({...t,formError:""})}renderButtons(){return s.createElement("div",{className:"button-group"},this.props.active?s.createElement(ge.Button,{onClick:this.onPassword,type:"primary"},k().translate("login.loginButton")):s.createElement(ge.Button,null,k().translate("registration.select")))}render(){return s.createElement("div",null,s.createElement("div",{className:(this.props.active?"":"display-none")+" password-block"},s.createElement(ge.Form,{layout:"vertical",style:{textAlign:"left"},onSubmit:this.onPassword},s.createElement(ge.Form.Item,{label:k().translate("settings.password"),validateStatus:(()=>this.state.formError?"error":"")(),help:(()=>this.state.formError?this.state.formError:"")()},s.createElement(ge.Input,{className:(this.state.passwordError?"input-warning":this.state.backupPassword?"input-success":"")+" input create-account-input",type:this.state.passwordVisible?"text":"password",placeholder:k().translate("wallet.enter_password"),id:"backupPassword",onChange:this.formChange,value:this.state.backupPassword,ref:"passwordInput",autoFocus:!0}))),this.state.passwordVisible?s.createElement("span",{className:"no-width eye-block",onClick:()=>this.setState({passwordVisible:!1})},s.createElement(y.Z,{name:"eye-invisible",className:"eye-icon icon-opacity"})):s.createElement("span",{className:"no-width eye-block",onClick:()=>this.setState({passwordVisible:!0})},s.createElement(y.Z,{name:"eye-visible",className:"eye-icon icon-opacity"}))),this.renderButtons())}}const Xt={listenTo:()=>[Y.Z,qe.Z,o.Z],getProps:()=>({wallet:Y.Z.getState(),backup:qe.Z.getState(),currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount})},Jt=(0,u.$)(Gt,Xt);class Yt extends s.Component{static propTypes={active:M().bool,backup:M().object,onChangeActive:M().func.isRequired,goToAccountModel:M().func.isRequired};static defaultProps={active:!1,backup:{}};constructor(e){super(e),this.state={isDrop:!1}}componentDidMount(){De.ZP.reset()}onFileUpload(e,t){const a=t||e.target.files[0];De.ZP.incommingWebFile(a),this.forceUpdate()}onDropBinFile(e){e.preventDefault(),this.onFileUpload(e,e.dataTransfer.files[0])}onPlaceFile(e){this.setState({isDrop:e})}renderTooltip(){return s.createElement(te.Z,{id:"without-bin",className:"custom-tooltip text-left",globalEventOff:"click"},s.createElement("div",{className:"tooltip-text",onClick:e=>e.stopPropagation()},s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.begin"}),s.createElement(lt.rU,{to:"/create-wallet-brainkey"},s.createElement(g(),{component:"u",className:"active-upload-text cursor-pointer",content:"tooltip.login-tooltip.withoutBinFileBlock.brainkey"})),s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.middle"}),s.createElement(g(),{onClick:this.props.goToAccountModel,className:"without-bin cursor-pointer",content:"tooltip.login-tooltip.withoutBinFileBlock.model"}),s.createElement(g(),{content:"tooltip.login-tooltip.withoutBinFileBlock.end"}),s.createElement("span",{onClick:()=>te.Z.hide(),className:"close-button"},"×")))}renderUploadInputForSmall(){const e=this.props.backup.contents&&this.props.backup.public_key;return s.createElement("div",null,s.createElement("span",{className:"text-left left-label show-for-small-only"},s.createElement(g(),{content:this.props.backup.contents?"login.selectDifferent":"login.browseFileLabel"})),s.createElement("div",{onDragOver:e=>e.preventDefault(),onDragEnter:e=>e.preventDefault(),onDrop:e=>this.onDropBinFile(e),className:"small-container"},e?s.createElement("span",{className:"bin-name"},this.props.backup.name):s.createElement("span",null," "),s.createElement("span",{className:"upload-text"},s.createElement("u",{className:"active-upload-text"},s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backupFile",className:"upload-bin-input",onChange:e=>this.onFileUpload(e)}),s.createElement(y.Z,{name:"paperclip",className:"attach-bin"})))))}renderUploadInput(){const{isDrop:e}=this.state,{backup:t}=this.props,a=t.contents&&!t.public_key,n=t.contents&&t.public_key;return s.createElement("label",{onDragOver:()=>{this.onPlaceFile(!0)},onDragLeave:()=>{this.onPlaceFile(!1)},className:"cursor-pointer",htmlFor:"backupFile"},s.createElement("div",{onDragOver:e=>e.preventDefault(),onDrop:e=>this.onDropBinFile(e),className:`file-input-container ${a?"invalid":""} ${e?"dropHover":""} ${n?"downloaded":""}`},s.createElement("img",{className:"rounded-arrow",src:"bin-file/rounded-arrow.svg",alt:"arrow"}),n?s.createElement("img",{className:"bin-file",src:"bin-file/downloaded.svg",alt:"bin-file"}):a?s.createElement("img",{className:"bin-file",src:"bin-file/error.svg",alt:"bin-file"}):s.createElement("span",null,s.createElement("img",{className:"bin-file initial-bin",src:"bin-file/hover.svg",alt:"bin-file"})),s.createElement("span",{className:"upload-text text-left no-overflow"},n?s.createElement("p",{className:"bin-name"},this.props.backup.name," (",this.props.backup.size," bytes)"):a?s.createElement(g(),{className:"facolor-error",content:"login.invalidFormat"}):s.createElement(g(),{content:"login.dropFile"}),s.createElement("u",{className:"active-upload-text"},s.createElement("input",{ref:"file_input",accept:".bin",type:"file",id:"backupFile",className:"upload-bin-input",onChange:e=>this.onFileUpload(e)}),s.createElement(g(),{content:this.props.backup.contents?"login.selectDifferent":"login.browseFile"})))))}render(){return s.createElement("div",{onClick:this.props.onChangeActive,className:"wallet-block"},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),(new FileReader).readAsBinaryString||!this.props.active?null:s.createElement(g(),{component:"p",className:"error",content:"login.supportWarning"}),s.createElement("div",{className:this.props.active?"":"display-none"},this.renderUploadInput(),this.renderUploadInputForSmall(),s.createElement(g(),{component:"p",className:"text-left without-bin cursor-pointer hide-for-small-only",content:"login.withoutBinFile","data-for":"without-bin","data-tip":!0,"data-event":"click","data-place":"right","data-effect":"solid"}),s.createElement(g(),{component:"p",className:"text-left without-bin cursor-pointer show-for-small-only",content:"login.withoutBinFile","data-for":"without-bin","data-tip":!0,"data-event":"click","data-place":"bottom","data-effect":"solid"}),this.renderTooltip()),s.createElement(Jt,{active:this.props.active,history:this.props.history}))}}const Qt={listenTo:()=>[qe.Z],getProps:()=>({backup:qe.Z.getState()})},$t=(0,u.$)(Yt,Qt);function ea(e){return s.createElement("div",{onClick:e.onChangeActive,className:(e.forSmall?"hide-block-for-medium inactive-left-block":"")+" small-horizontal small-only-block header-block"},e.forSmall?null:s.createElement("div",null,e.active?s.createElement("img",{className:"model-img",src:"model-type-images/flesh-active.svg",alt:"wallet"}):s.createElement("img",{className:"model-img inactive-img",src:"model-type-images/flesh-inactive.svg",alt:"wallet"})),s.createElement("div",{className:"small-only-text-left"},s.createElement(g(),{content:"registration.walletModelTitle",component:"p",className:"selection-title "+(e.active?"":"inactive-title inactive-text")}),s.createElement(g(),{content:"wallet.wallet_model",className:"choice-model "+(e.active?"":"inactive-text")}),e.forSmall?null:s.createElement(ge.Tooltip,{title:e.active?k().translate("tooltip.registration.walletModel"):""},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon"}))),s.createElement(g(),{content:"registration.recommended",component:"p",className:"recommended "+(e.active||e.forSmall?"":"inactive-text")})))}function ta(e){return s.createElement("div",{onClick:e.onChangeActive,className:(e.forSmall?"hide-block-for-medium inactive-right-block":"")+" small-horizontal small-only-block header-block"},e.forSmall?null:s.createElement("div",null,e.active?s.createElement("img",{className:"model-img",src:"model-type-images/account-active.svg",alt:"wallet"}):s.createElement("img",{className:"model-img inactive-img",src:"model-type-images/account-inactive.svg",alt:"wallet"})),s.createElement("div",{className:"small-only-text-left"},s.createElement(g(),{unsafe:!0,content:"registration.accountModelTitle",component:"p",className:"selection-title "+(e.active?"":"inactive-title inactive-text")}),s.createElement(g(),{content:"wallet.password_model",component:"p",className:"choice-model choice-account "+(e.active?"":"inactive-text")}),e.forSmall?null:s.createElement(ge.Tooltip,{title:e.active?k().translate("tooltip.registration.accountModel"):""},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon"})))))}ea.propTypes={active:M().bool.isRequired,forSmall:M().bool,onChangeActive:M().func},ea.defaultProps={forSmall:!1,onChangeActive:null},ta.propTypes={active:M().bool.isRequired,forSmall:M().bool,onChangeActive:M().func},ta.defaultProps={forSmall:!1,onChangeActive:null};class aa extends s.Component{constructor(){super(),this.state={activeWalletModel:!0}}changeActiveModel(e){this.setState({activeWalletModel:e})}render(){const{activeWalletModel:e}=this.state;return s.createElement("div",{className:"grid-block align-center registration-layout"},s.createElement("div",{className:"grid-block shrink vertical text-center registration-selector"},s.createElement(g(),{content:"login.title",component:"p",className:"registration-title"}),s.createElement("div",null,s.createElement("div",{className:"v-align login-page-selector"},s.createElement("div",{className:(e?"":"inactive-model-block")+" selection-block align-center plate"},s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:e,onChangeActive:()=>this.changeActiveModel(!0),loginPage:!0}),s.createElement(ta,{active:!e,onChangeActive:()=>this.changeActiveModel(!1),forSmall:!0,loginPage:!0})),s.createElement($t,{active:e,onChangeActive:()=>e?null:this.changeActiveModel(!0),goToAccountModel:()=>this.changeActiveModel(!1),history:this.props.history})),s.createElement("div",{className:(e?"inactive-model-block":"")+" selection-block align-center plate"},s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:e,onChangeActive:()=>this.changeActiveModel(!0),forSmall:!0,loginPage:!0}),s.createElement(ta,{active:!e,onChangeActive:()=>this.changeActiveModel(!1),loginPage:!0})),s.createElement(Vt,{active:!e,history:this.props.history,onChangeActive:()=>e?this.changeActiveModel(!1):null,goToWalletModel:()=>this.changeActiveModel(!0)}))))))}}function sa(e){return s.createElement("div",{className:"wallet-block-registration",onClick:e.onChangeActive},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(g(),{content:"registration.securityKey",component:"p",className:"model-option security-key "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.securityWalletModel",component:"p",className:"model-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.loginByKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.walletLoginByValue",component:"p",className:"model-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.backUpRestoreKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"settings.yes",component:"p",className:"model-option-value "+(e.active?"":"inactive-text")}),e.active?s.createElement(ge.Button,{onClick:e.onSelect,type:"primary"},k().translate("registration.continue")):s.createElement(ge.Button,null,k().translate("registration.select")))}function na(e){return s.createElement("div",{className:"account-block-registration",onClick:e.onChangeActive},s.createElement("div",{className:"overflow-bg-block show-for-small-only"},s.createElement("span",{className:"content"})),s.createElement(g(),{content:"registration.securityKey",component:"p",className:"model-option security-key "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.securityAccountModel",component:"p",className:"model-option-value account-security option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.loginByKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.accountLoginByValue",component:"p",className:"model-option-value account-option-value option-border "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"registration.backUpRestoreKey",component:"p",className:"model-option "+(e.active?"":"inactive-text")}),s.createElement(g(),{content:"settings.no",component:"p",className:"model-option-value account-option-value "+(e.active?"":"inactive-text")}),e.active?s.createElement(ge.Button,{onClick:e.onSelect,type:"primary"},k().translate("registration.continue")):s.createElement(ge.Button,null,k().translate("registration.select")))}sa.propTypes={active:M().bool.isRequired,onSelect:M().func.isRequired,onChangeActive:M().func.isRequired},na.propTypes={active:M().bool.isRequired,onSelect:M().func.isRequired,onChangeActive:M().func.isRequired};class ra extends s.Component{static propTypes={children:M().element};static contextTypes={router:M().object.isRequired};static defaultProps={children:null};constructor(){super(),this.state={activeWalletModel:!0}}onSelect(e){this.props.history.push(`/registration/${e}`)}changeActiveModel(e){this.setState({activeWalletModel:e})}renderHeader(e){const{activeWalletModel:t}=this.state;return s.createElement("div",{className:"small-horizontal small-only-block"},s.createElement(ea,{active:t,onChangeActive:()=>this.changeActiveModel(!0),forSmall:!e}),s.createElement(ta,{active:!t,onChangeActive:()=>this.changeActiveModel(!1),forSmall:e}))}render(){if(this.props.children)return this.props.children;const{activeWalletModel:e}=this.state;return s.createElement("div",{className:"grid-block align-center registration-layout"},s.createElement("div",{className:"grid-block shrink vertical text-center registration-selector"},s.createElement(g(),{content:"registration.title",component:"p",className:"registration-title"}),s.createElement("div",{className:"registration-container"},s.createElement("div",{className:"v-align"},s.createElement("div",{className:(e?"":"inactive-model-block")+" selection-block align-center plate"},this.renderHeader(!0),s.createElement(sa,{onSelect:()=>this.onSelect("local"),active:e,onChangeActive:()=>this.changeActiveModel(!0)})),s.createElement("div",{className:(e?"inactive-model-block":"")+" selection-block align-center plate"},this.renderHeader(!1),s.createElement(na,{onSelect:()=>this.onSelect("cloud"),active:!e,onChangeActive:()=>this.changeActiveModel(!1)}))))))}}var oa=a(81038);class ia extends s.Component{static propTypes={toggleConfirmed:M().func.isRequired,checkboxUploaded:M().bool.isRequired,checkboxRecover:M().bool.isRequired,checkboxRemember:M().bool.isRequired,history:M().object.isRequired};onBackupDownload=()=>{this.props.history.push("/")};static renderWarning(){return s.createElement("div",{className:"attention-note"},s.createElement(y.Z,{name:"attention",size:"1x"}),s.createElement(g(),{content:"registration.attention",className:"attention-text"}),s.createElement(g(),{component:"p",content:"registration.walletNote"}))}renderTooltip(){return s.createElement(te.Z,{id:"wallet-confirm",className:"custom-tooltip text-left",globalEventOff:"click"},s.createElement("div",{className:"tooltip-text",onClick:e=>e.stopPropagation()},s.createElement(g(),{content:"tooltip.registration.whyBinFile"}),s.createElement("span",{onClick:()=>te.Z.hide(),className:"close-button cursor-pointer"},"×")))}render(){return s.createElement("div",{className:"text-left"},s.createElement("div",{className:"confirm-checks"},s.createElement(g(),{component:"h3",content:"registration.createAccountTitle"}),ia.renderWarning()),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxRemember")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxRemember?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxRemember"})),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxUploaded")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxUploaded?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxUploaded"})),s.createElement("div",{className:"checkbox-block",onClick:()=>this.props.toggleConfirmed("checkboxRecover")},s.createElement("span",null,s.createElement(y.Z,{className:(this.props.checkboxRecover?"checkbox-active":"")+" checkbox",name:"checkmark"})),s.createElement(g(),{className:"checkbox-text",content:"registration.checkboxRecover"})),s.createElement(oa.UW,{confirmation:!0,checkboxActive:this.props.checkboxUploaded&&this.props.checkboxRemember&&this.props.checkboxRecover,downloadCb:this.onBackupDownload}),s.createElement(g(),{component:"p",className:"cursor-pointer why-bin-file checkbox-text",content:"registration.whyBinFile","data-for":"wallet-confirm","data-tip":!0,"data-event":"click","data-place":"bottom","data-effect":"solid"}),this.renderTooltip())}}const la=ia;var ca=a(60830),da=a(23725),ua=a.n(da);class pa extends s.Component{static propTypes={onChange:M().func,onEnter:M().func,confirmation:M().bool,wrongPassword:M().bool,noValidation:M().bool,noLabel:M().bool,passwordLength:M().number,checkStrength:M().bool,value:M().string,copy:M().bool,visible:M().bool,readonly:M().bool};static defaultProps={confirmation:!1,wrongPassword:!1,noValidation:!1,noLabel:!1,passwordLength:8,checkStrength:!1,value:"",copy:!1,visible:!1,readonly:!1};constructor(){super(),this.onKeyDown=this.onKeyDown.bind(this),this.state={password:"",confirmPassword:"",isPasswordInputActive:!1,isConfirmPasswordInputActive:!1},this.handlePasswordBlur=this.handlePasswordBlur.bind(this),this.handlePasswordFocus=this.handlePasswordFocus.bind(this),this.handlePasswordChange=this.handlePasswordChange.bind(this),this.handleValidationChange=this.handleValidationChange.bind(this),this.handleConfirmPasswordBlur=this.handleConfirmPasswordBlur.bind(this),this.handleConfirmPasswordFocus=this.handleConfirmPasswordFocus.bind(this),this.handleConfirmPasswordChange=this.handleConfirmPasswordChange.bind(this)}handleConfirmPasswordBlur(){this.setState({isConfirmPasswordInputActive:!1})}handleConfirmPasswordFocus(){this.setState({isConfirmPasswordInputActive:!0})}handlePasswordBlur(){this.setState({isPasswordInputActive:!1})}handlePasswordFocus(){this.setState({isPasswordInputActive:!0})}handlePasswordChange(e){this.setState({password:e.target.value},(()=>{this.props.onChange&&this.props.onChange(this.state.password),this.calculatePasswordScore(this.state.password||""),this.handleValidationChange()}))}handleConfirmPasswordChange(e){this.setState({confirmPassword:e.target.value},(()=>{this.handleValidationChange()}))}handleValidationChange(){let e={errorMessage:this.getPasswordErrorMessage()||this.getConfirmPasswordErrorMessage()||" ",valid:!this.getPasswordErrorMessage()&&!this.getConfirmPasswordErrorMessage()};console.log(e),this.props.onValidationChange&&this.props.onValidationChange(e)}calculatePasswordScore(e){let{passwordLength:t}=this.props,a=ua().load({sync:!0})(e||""),s=Math.floor(e.length/(1.5*t)),n=Math.min(5,a.score+s);console.log(n,a.score,s,e),this.setState({score:n})}onKeyDown(e){this.props.onEnter&&13===e.keyCode&&this.props.onEnter(e)}getPasswordErrorMessage(){let{password:e}=this.state;return e.lengththis.state.isPasswordInputActive||!this.state.password?"":n||"")(),validateStatus:(()=>this.state.isPasswordInputActive||!this.state.password?"":n&&n.length?"error":"")()},s.createElement(ge.Input,{id:"current-password",onBlur:this.handlePasswordBlur,onFocus:this.handlePasswordFocus,type:a?"text":"password",name:"password",placeholder:k().translate("wallet.enter_password"),ref:"password",onChange:this.handlePasswordChange,onKeyDown:this.onKeyDown,value:this.state.password,readOnly:t}),s.createElement(ge.Progress,{percent:20*e,showInfo:!1})),s.createElement(ge.Form.Item,{label:k().translate("wallet.confirm"),key:"confirm-password-field",help:(()=>this.state.confirmPassword&&this.state.password&&r||"")(),validateStatus:(()=>!this.state.isConfirmPasswordInputActive&&this.state.confirmPassword&&this.state.password&&r&&r.length?"error":"")()},s.createElement(ge.Input,{id:"confirm-password",onBlur:this.handleConfirmPasswordBlur,onFocus:this.handleConfirmPasswordFocus,type:a?"text":"password",name:"confirmPassword",placeholder:k().translate("wallet.enter_password"),ref:"confirmPassword",onChange:this.handleConfirmPasswordChange,onKeyDown:this.onKeyDown,value:this.state.confirmPassword,readOnly:t}))]}}const ha=pa;class ma extends s.Component{static propTypes={continue:M().func.isRequired,history:M().object.isRequired};constructor(){super(),this.state={validAccountName:!1,accountName:"",validPassword:!1,registrarAccount:void 0,loading:!1,showIdenticon:!1,password:""},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.onRegistrarAccountChange=this.onRegistrarAccountChange.bind(this),this.unmounted=!1,this.onSubmit=this.onSubmit.bind(this),this.onPasswordChange=this.onPasswordChange.bind(this),this.onPasswordValidationChange=this.onPasswordValidationChange.bind(this)}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}componentWillUnmount(){this.unmounted=!0}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.state.showIdenticon||(t.showIdenticon=!0),this.setState(t)}onPasswordChange(e){this.setState({password:e})}onPasswordValidationChange(e){this.setState({validPassword:e.valid})}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(ze.Z.unlisten(this.onFinishConfirm),ze.Z.reset(),(0,r.FetchChain)("getAccount",this.state.accountName,void 0,{[this.state.accountName]:!0}).then((()=>{console.log("onFinishConfirm"),this.props.history.push("/wallet/backup/create?newAccount=true")})))}onRegistrarAccountChange(e){this.setState({registrarAccount:e})}onSubmit(e){if(e.preventDefault(),!this.isValid())return;const{accountName:t}=this.state;if(G.Z.getWallet())this.createAccount(t);else{const e=this.state.password;this.createWallet(e).then((()=>this.createAccount(t)))}}createAccount(e){const{referralAccount:t}=o.Z.getState();J.Z.unlock().then((()=>{this.setState({loading:!0}),F.Z.createAccount(e,this.state.registrarAccount,t||this.state.registrarAccount,0).then((()=>{(0,r.FetchChain)("getAccount",e,void 0,{[e]:!0}).then((()=>{this.props.continue(),this.unmounted||this.setState({loading:!1})})),this.state.registrarAccount&&ze.Z.listen(this.onFinishConfirm)})).catch((t=>{this.setState({loading:!1}),console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&([a]=t.remote_ip),ge.Notification.error({message:k().translate("notifications.account_create_failure",{account_name:e,error_msg:a})})}))}))}createWallet(e){return this.setState({loading:!0}),Le.Z.setWallet("default",e).then((()=>{console.log("Congratulations, your wallet was successfully created.")})).catch((e=>{this.setState({loading:!1}),console.log("CreateWallet failed:",e),ge.Notification.error({message:k().translate("notifications.account_wallet_create_failure",{error_msg:e})})}))}isValid(){const e=0===o.Z.getMyAccounts().length;let t=this.state.validAccountName;return G.Z.getWallet()||(t=t&&this.state.validPassword),e||(t=t&&this.state.registrarAccount),t}renderDropdown(e,t){const{registrarAccount:a}=this.state;return s.createElement(ge.Form.Item,{label:k().translate("account.pay_from")},s.createElement(ge.Select,{placeholder:k().translate("account.select_placeholder"),style:{width:"100%"},value:this.state.registrarAccount,onChange:this.onRegistrarAccountChange},e.map((e=>s.createElement(ge.Select.Option,{key:e,value:e},e)))))}renderPasswordInput(){return s.createElement(ha,{ref:"password",onChange:this.onPasswordChange,onValidationChange:this.onPasswordValidationChange,label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("settings.password"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.password")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"}))))})}renderAccountCreateForm(){const{registrarAccount:e}=this.state,t=o.Z.getMyAccounts(),a=0===t.length,n=G.Z.getWallet(),i=this.isValid();let l=!1;const c=e?r.ChainStore.getAccount(e):null;return c&&c.get("lifetime_referrer")===c.get("id")&&(l=!0),s.createElement(ge.Form,{layout:"vertical",onSubmit:this.onSubmit},s.createElement(ca.Z,{cheapNameOnly:!!a,onChange:e=>this.onAccountNameChange(e),accountShouldNotExist:!0,placeholder:k().translate("account.name"),label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("account.name"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.accountName")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"})))),noLabel:!0}),n?null:this.renderPasswordInput(),a?null:this.renderDropdown(t,l),c&&!l?s.createElement(ge.Form.Item,null,s.createElement(ge.Alert,{type:"error",description:s.createElement(g(),{content:"wallet.must_be_ltm"})})):null,s.createElement(ge.Form.Item,null,s.createElement(ge.Button,{type:"primary",disabled:this.state.loading||!i||e&&!l,htmlType:"submit",loading:this.state.loading},k().translate("registration.continue"))))}render(){const e=G.Z.getWallet(),t=0===o.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement("div",{className:"text-left"},t?s.createElement(g(),{component:"h3",content:"registration.createAccountTitle"}):s.createElement(g(),{component:"h3",content:"wallet.create_a"}),e?null:s.createElement(g(),{component:"p",content:"registration.walletDescription",className:"model-description"})),this.renderAccountCreateForm())}}const ga=ma;class ba extends s.Component{constructor(){super(),this.state={confirmationStep:!1,checkboxRemember:!1,checkboxUploaded:!1,checkboxRecover:!1},this.toggleConfirmed=this.toggleConfirmed.bind(this)}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!1})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}continue(){this.setState({confirmationStep:!0})}toggleConfirmed(e){this.setState({[e]:!this.state[e]})}render(){const{confirmationStep:e,checkboxRemember:t,checkboxUploaded:a,checkboxRecover:n}=this.state;return s.createElement("div",{className:"no-margin grid-block registration-layout registration"},s.createElement("div",{className:"grid-block horizontal align-center text-center"},s.createElement("div",null,s.createElement("img",{className:(t&&a&&n?"confirmed":"")+" model-img",src:"/model-type-images/flesh-drive.svg",alt:"wallet"})),s.createElement("div",{className:"create-account-block"},e?s.createElement(la,{history:this.props.history,toggleConfirmed:this.toggleConfirmed,checkboxRemember:t,checkboxUploaded:a,checkboxRecover:n}):s.createElement(ga,{history:this.props.history,continue:()=>this.continue()}))))}}const fa=ba;class ya extends s.Component{static propTypes={continue:M().func.isRequired};constructor(){super(),this.state={validAccountName:!1,accountName:"",registrarAccount:null,loading:!1,generatedPassword:`P${r.key.get_random_key().toWif()}`,confirmPassword:""},this.onSubmit=this.onSubmit.bind(this),this.onRegistrarAccountChange=this.onRegistrarAccountChange.bind(this),this.onAccountNameChange=this.onAccountNameChange.bind(this),this.onConfirmation=this.onConfirmation.bind(this),this.accountNameInput=null}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}onAccountNameChange(e){const t={};void 0!==e.valid&&(t.validAccountName=e.valid),void 0!==e.value&&(t.accountName=e.value),this.setState(t)}onRegistrarAccountChange(e){this.setState({registrarAccount:e})}onSubmit(e){e.preventDefault(),this.isValid()&&this.props.continue({accountName:this.state.accountName,password:this.state.generatedPassword})}onConfirmation(e){const t=e.currentTarget.value;this.setState({confirmPassword:t,passwordConfirmed:t===this.state.generatedPassword})}isValid(){const e=0===o.Z.getMyAccounts().length;let t=this.state.validAccountName;return G.Z.getWallet(),e||(t=t&&this.state.registrarAccount),t}renderAccountCreateForm(){const{registrarAccount:e}=this.state,t=o.Z.getMyAccounts(),a=0===t.length,n=this.isValid();let i=!1;const l=e?r.ChainStore.getAccount(e):null;return l&&l.get("lifetime_referrer")===l.get("id")&&(i=!0),s.createElement("div",null,s.createElement(ge.Form,{onSubmit:this.onSubmit,layout:"vertical"},s.createElement(ca.Z,{cheapNameOnly:a,onChange:this.onAccountNameChange,accountShouldNotExist:!0,placeholder:k().translate("account.name"),label:s.createElement("span",null,s.createElement("span",{className:"vertical-middle"},k().translate("account.name"))," ",s.createElement(ge.Tooltip,{title:k().translate("tooltip.registration.accountName")},s.createElement("span",null,s.createElement(y.Z,{name:"question-in-circle",className:"icon-14px question-icon vertical-middle"})))),noLabel:!0}),s.createElement(ge.Form.Item,{label:k().translate("wallet.generated")},s.createElement(ge.Input.TextArea,{disabled:!0,style:{paddingRight:"50px"},rows:2,id:"password",value:this.state.generatedPassword}),s.createElement(mt.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top",className:"button registration-layout--copy-password-btn"})),s.createElement(ge.Form.Item,{label:k().translate("wallet.confirm_password"),help:(()=>this.state.confirmPassword&&!this.state.passwordConfirmed?k().translate("wallet.confirm_error"):"")(),validateStatus:(()=>this.state.confirmPassword&&!this.state.passwordConfirmed?"error":"")()},s.createElement(ge.Input,{placeholder:k().translate("wallet.confirm_password"),type:"password",name:"password",id:"confirmPassword",value:this.state.confirmPassword,onChange:this.onConfirmation})),a?null:s.createElement("div",{className:"full-width-content form-group no-overflow"},s.createElement("label",{htmlFor:"account"},s.createElement(g(),{content:"account.pay_from"})),s.createElement(Pe.Z,{id:"account",account_names:t,onChange:this.onRegistrarAccountChange}),e&&!i?s.createElement("div",{style:{textAlign:"left"},className:"facolor-error"},s.createElement(g(),{content:"wallet.must_be_ltm"})):null),this.state.loading?s.createElement(x.Z,{type:"three-bounce"}):s.createElement(ge.Button,{htmlType:"submit",type:"primary",disabled:!n||!this.state.passwordConfirmed||e&&!i},s.createElement(g(),{content:"registration.continue"}))))}renderAccountCreateText(){const e=0===o.Z.getMyAccounts().length;return s.createElement("div",null,s.createElement(g(),{component:"p",className:"model-description",content:"registration.accountDescription"}),e?null:s.createElement(g(),{component:"p",content:"wallet.not_first_account"}))}render(){return s.createElement("div",null,this.renderAccountCreateText(),this.renderAccountCreateForm())}}const _a=(0,u.$)(ya,{listenTo:()=>[o.Z],getProps:()=>({})});class wa extends s.Component{static propTypes={accountName:M().string.isRequired,password:M().string.isRequired,toggleConfirmed:M().func.isRequired,history:M().object.isRequired};constructor(){super(),this.state={confirmed:!1},this.onFinishConfirm=this.onFinishConfirm.bind(this),this.toggleConfirmed=this.toggleConfirmed.bind(this),this.createAccount=this.createAccount.bind(this),this.onCreateAccount=this.onCreateAccount.bind(this)}shouldComponentUpdate(e,t){return t.confirmed!==this.state.confirmed}onFinishConfirm(e){e.included&&e.broadcasted_transaction&&(ze.Z.unlisten(this.onFinishConfirm),ze.Z.reset(),(0,r.FetchChain)("getAccount",this.state.accountName).then((()=>{this.props.history.push("/wallet/backup/create?newAccount=true")})))}onCreateAccount(e){e.preventDefault(),this.createAccount(this.props.accountName,this.props.password)}createAccount(e,t){const{referralAccount:a}=o.Z.getState();F.Z.createAccountWithPassword(e,t,this.state.registrarAccount,a||this.state.registrarAccount,0).then((()=>{F.Z.setPasswordAccount(e),this.state.registrarAccount?((0,r.FetchChain)("getAccount",e).then((()=>{this.unlockAccount(e,t)})),ze.Z.listen(this.onFinishConfirm)):((0,r.FetchChain)("getAccount",e).then((()=>{})),this.unlockAccount(e,t),this.props.history.push("/"))})).catch((t=>{console.log("ERROR AccountActions.createAccount",t);let a=t.base&&t.base.length&&t.base.length>0?t.base[0]:"unknown error";t.remote_ip&&([a]=t.remote_ip),ge.Notification.error({message:k().translate("account_create_failure",{account_name:e,error_msg:a})})}))}unlockAccount(e,t){G.Z.validatePassword(t,!0,e),J.Z.checkLock.defer()}toggleConfirmed(e){this.setState({confirmed:e.target.checked})}render(){return s.createElement(ge.Form,{layout:"vertical"},s.createElement(ge.Form.Item,{label:k().translate("registration.copyPassword")},s.createElement(ge.Input.TextArea,{disabled:!0,rows:2,id:"password",value:this.props.password}),s.createElement(mt.Z,{text:this.state.generatedPassword,tip:"tooltip.copy_password",dataPlace:"top",className:"button registration-layout--copy-password-btn"})),s.createElement(ge.Form.Item,null,s.createElement(ge.Alert,{showIcon:!0,type:"warning",message:"",description:k().translate("registration.accountNote")})),s.createElement(ge.Form.Item,null,s.createElement(ge.Checkbox,{checked:this.state.confirmed,onChange:this.toggleConfirmed},s.createElement(g(),{content:"registration.accountConfirmation",className:"checkbox-text"}))),s.createElement(ge.Form.Item,null,s.createElement(ge.Button,{type:"primary",disabled:!this.state.confirmed,onClick:this.onCreateAccount},s.createElement(g(),{content:"account.create_account"}))))}}const ka=(0,u.$)(wa,{listenTo:()=>[o.Z],getProps:()=>({})});class va extends s.Component{constructor(){super(),this.state={accountName:""},this.continue=this.continue.bind(this),this.toggleConfirmed=this.toggleConfirmed.bind(this)}UNSAFE_componentWillMount(){b.Z.changeSetting({setting:"passwordLogin",value:!0})}componentDidMount(){te.Z.rebuild()}shouldComponentUpdate(e,t){return!B.Z.are_equal_shallow(t,this.state)}continue({accountName:e,password:t}){this.setState({accountName:e,password:t,confirmationStep:!0})}toggleConfirmed(){const{active:e}=this.state;this.setState({active:!e})}render(){return s.createElement("div",{className:"no-margin grid-block registration-layout registration"},s.createElement("div",{className:"grid-block horizontal align-center text-center"},s.createElement("div",null,s.createElement("img",{className:"model-img "+(this.state.active?"confirmed":""),src:"/model-type-images/account.svg",alt:"account"})),s.createElement("div",{className:"create-account-block"},s.createElement(g(),{component:"h3",className:"registration-account-title",content:"registration.createByPassword"}),this.state.confirmationStep?s.createElement(ka,{accountName:this.state.accountName,password:this.state.password,toggleConfirmed:this.toggleConfirmed,history:this.props.history}):s.createElement(_a,{continue:this.continue}))))}}const Aa=va;var Ea=a(66879);class xa extends s.Component{static propTypes={target:M().func.isRequired,title:M().string.isRequired,description:M().string.isRequired,icon:M().string.isRequired,disabled:M().bool,comingSoon:M().bool};static defaultProps={disabled:!1};constructor(){super()}render(){return this.props.disabled||this.props.comingSoon?s.createElement(ge.Tooltip,{title:"string"==typeof this.props.disabled?this.props.disabled:"Coming soon"},s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--disabled disabled",onClick:()=>{},tabIndex:"0"},s.createElement("h2",{className:"no-margin"},!!this.props.comingSoon&&s.createElement(y.Z,{style:{float:"right"},name:"coming_soon",size:"4x"}),s.createElement(g(),{content:this.props.title})),s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--content disabled"},s.createElement(y.Z,{name:this.props.icon,size:"5x"}),s.createElement("span",{className:"padding showcases-grid--wrapper--item--wrapper--content--description disabled"},s.createElement(g(),{content:this.props.description}))))):s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper",onClick:this.props.target,tabIndex:"0"},s.createElement(g(),{content:this.props.title,className:"no-margin",component:"h2"}),s.createElement("div",{className:"showcases-grid--wrapper--item--wrapper--content"},s.createElement(y.Z,{name:this.props.icon,size:"5x"}),s.createElement("span",{className:"padding showcases-grid--wrapper--item--wrapper--content--description"},s.createElement(g(),{content:this.props.description}))))}}var Sa=a(98817);class Ca extends s.Component{constructor(){super(),this.state={currentAccount:null}}UNSAFE_componentWillMount(){this.setState({currentAccount:r.ChainStore.getAccount(this.props.currentAccount)})}UNSAFE_componentWillReceiveProps(e){e.currentAccount!==this.props.currentAccount&&this.setState({currentAccount:r.ChainStore.getAccount(e.currentAccount)})}render(){let e=null!==this.state.currentAccount,t=this;const a=[{title:"showcases.paper_wallet.title",target:()=>{e&&(0,Sa.$)(this.state.currentAccount)},description:"showcases.paper_wallet.description",icon:"wallet",disabled:!e&&"Please login to use this functionality"},{title:"showcases.voting.title",target:a=>{e&&t.props.history.push("/account/"+this.state.currentAccount.get("name")+"/voting")},description:"showcases.voting.description",icon:"voting",disabled:!e&&"Please login to use this functionality"},{title:"showcases.barter.title",target:e=>{t.props.history.push("/barter")},description:"showcases.barter.description",icon:"barter",disabled:!e&&"Please login to use this functionality"},{title:"showcases.borrow.title",target:()=>{e&&t.props.history.push("/borrow")},description:"showcases.borrow.description",icon:"borrow",disabled:!e&&"Please login to use this functionality"},{title:"showcases.direct_debit.title",target:e=>{t.props.history.push("/direct-debit")},description:"showcases.direct_debit.description",icon:"direct_debit",disabled:!e&&"Please login to use this functionality"},{title:"showcases.htlc.title",target:e=>{t.props.history.push("/htlc")},description:"showcases.htlc.description",icon:"htlc",disabled:!e&&"Please login to use this functionality"},{title:"showcases.prediction_market.title",target:e=>{t.props.history.push("/prediction")},description:"showcases.prediction_market.description",icon:"prediction",disabled:!e&&"Please login to use this functionality"},{title:"showcases.merchant_protocol.title",target:e=>{t.props.history.push("/invoice/request")},description:"showcases.merchant_protocol.description",icon:"merchant",disabled:!e&&"Please login to use this functionality"},{title:"showcases.timed_transfer.title",target:()=>{},description:"showcases.timed_transfer.description",icon:"alarm",disabled:!0,comingSoon:!0},{title:"showcases.instant_trade.title",target:e=>{t.props.history.push("/instant-trade")},description:"showcases.instant_trade.description",icon:"instant-trade",disabled:!e&&"Please login to use this functionality"}];return s.createElement("div",{className:"overflow-visible showcases-grid",style:{align:"center"}},s.createElement("div",{className:"showcases-grid--wrapper"},a.map((e=>s.createElement("div",{key:e.title,className:"showcases-grid--wrapper--item"},e.disabled?s.createElement(xa,{target:e.target,title:e.title,description:e.description,icon:e.icon,disabled:e.disabled,comingSoon:e.comingSoon||!1}):s.createElement(xa,{target:e.target,title:e.title,description:e.description,icon:e.icon}))))))}}const Ta=Ca=(0,u.$)(Ca,{listenTo:()=>[o.Z],getProps:()=>({currentAccount:o.Z.getState().currentAccount||o.Z.getState().passwordAccount})});var Ba=a(12326),za=a(13379),Pa=a(99349);class Na extends s.Component{_getRulesForCheck(e,t){return e.map(((e,a)=>{let s=`${e.quoteAssetSymbol}_${e.baseAssetSymbol}`,n=null;try{let e=t.get(s);n=e&&e.price&&e.price.toReal()}catch(e){console.error(`PriceAlertNotifications: Unable to get real price for pair ${s}: `,e)}return{ruleKey:a,type:e.type,pair:s,quoteAssetSymbol:e.quoteAssetSymbol,baseAssetSymbol:e.baseAssetSymbol,actualPrice:n,expectedPrice:e.price}}))}_getFulfilledRules(e){return e.filter((e=>!isNaN(Number(e.actualPrice))&&(Number(e.type)===Number(za.je.HIGHER_THAN)&&Number(e.actualPrice)>=Number(e.expectedPrice)||Number(e.type)===Number(za.je.LOWER_THAN)&&Number(e.actualPrice)<=Number(e.expectedPrice))))}_filterByFulfilledRules(e){return(t,a)=>!e.some((e=>a===e.ruleKey))}notifyAboutRules(e){e.forEach((e=>{Number(e.type)===Number(za.je.LOWER_THAN)&&ge.Notification.info({duration:30,message:k().translate("exchange.price_alert.title"),description:s.createElement(g(),{content:"exchange.price_alert.notification.lower_than",component:"div",pair:s.createElement("span",{className:"price-alert--notification--pair-name"},s.createElement(Pa.Z,{name:e.quoteAssetSymbol}),"/",s.createElement(Pa.Z,{name:e.baseAssetSymbol})),expectedPrice:s.createElement("span",{className:"price-alert--notification--expected-price"},e.expectedPrice),actualPrice:s.createElement("span",{className:"price-alert--notification--actual-price price-alert--notification--actual-price-down"},e.actualPrice)}),icon:s.createElement(ge.Icon,{type:"caret-down",className:"price-alert--notification--icon price-alert--notification--icon--down"})}),Number(e.type)===Number(za.je.HIGHER_THAN)&&ge.Notification.info({duration:30,message:k().translate("exchange.price_alert.title"),description:s.createElement(g(),{content:"exchange.price_alert.notification.higher_than",component:"div",pair:s.createElement("span",{className:"price-alert--notification--pair-name"},s.createElement(Pa.Z,{name:e.quoteAssetSymbol}),"/",s.createElement(Pa.Z,{name:e.baseAssetSymbol})),expectedPrice:s.createElement("span",{className:"price-alert--notification--expected-price"},e.expectedPrice),actualPrice:s.createElement("span",{className:"price-alert--notification--actual-price price-alert--notification--actual-price-up"},e.actualPrice)}),icon:s.createElement(ge.Icon,{type:"caret-up",className:"price-alert--notification--icon price-alert--notification--icon--up"})})}))}render(){const{priceAlert:e,allMarketStats:t}=this.props;if(!(e&&e.length&&t&&t.size))return null;const a=this._getRulesForCheck(e,t),s=this._getFulfilledRules(a);this.notifyAboutRules(s);let n=this.props.priceAlert.filter(this._filterByFulfilledRules(s));return n.length!==this.props.priceAlert.length&&b.Z.setPriceAlert(n),null}}const Ma=(0,u.$)(Na,{listenTo:()=>[Ba.Z,h.Z],getProps:()=>({allMarketStats:Ba.Z.getState().allMarketStats,priceAlert:h.Z.getState().priceAlert.toJS()})});var Za=a(82391),Ia=a(56815);function Oa(){return Oa=Object.assign||function(e){for(var t=1;tPromise.all([a.e(605),a.e(891),a.e(696),a.e(164),a.e(343),a.e(197),a.e(941),a.e(663)]).then(a.bind(a,94136)),loading:x.Z}),La=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(164),a.e(343),a.e(197),a.e(941),a.e(663)]).then(a.bind(a,36771)),loading:x.Z}),Da=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(695),a.e(14),a.e(197),a.e(857),a.e(214)]).then(a.bind(a,22919)),loading:x.Z}),Ra=Tt()({loader:()=>Promise.all([a.e(605),a.e(891),a.e(696),a.e(695),a.e(14),a.e(197),a.e(857),a.e(214)]).then(a.bind(a,52928)),loading:x.Z}),ja=Tt()({loader:()=>a.e(810).then(a.bind(a,19814)),loading:x.Z}),Fa=Tt()({loader:()=>Promise.all([a.e(605),a.e(473),a.e(695),a.e(49),a.e(14),a.e(343),a.e(941),a.e(857),a.e(809)]).then(a.bind(a,68801)),loading:x.Z}),Wa=Tt()({loader:()=>Promise.all([a.e(891),a.e(473),a.e(835),a.e(223),a.e(49),a.e(25)]).then(a.bind(a,22686)),loading:x.Z}),Ua=Tt()({loader:()=>Promise.all([a.e(835),a.e(590),a.e(697)]).then(a.bind(a,97889)),loading:x.Z}),Ha=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,57805)),loading:x.Z}),Ka=Tt()({loader:()=>a.e(39).then(a.bind(a,91795)),loading:x.Z}),Va=Tt()({loader:()=>a.e(521).then(a.bind(a,1514)),loading:x.Z}),Ga=Tt()({loader:()=>a.e(584).then(a.bind(a,12474)),loading:x.Z}),Xa=Tt()({loader:()=>Promise.all([a.e(473),a.e(49),a.e(884)]).then(a.bind(a,22053)),loading:x.Z}),Ja=Tt()({loader:()=>a.e(966).then(a.bind(a,85831)),loading:x.Z}),Ya=Tt()({loader:()=>Promise.all([a.e(478),a.e(327),a.e(882)]).then(a.bind(a,46327)),loading:x.Z}),Qa=Tt()({loader:()=>Promise.all([a.e(478),a.e(397)]).then(a.bind(a,30478)),loading:x.Z}),$a=Tt()({loader:()=>a.e(975).then(a.bind(a,82959)),loading:x.Z}),es=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,49980)),loading:x.Z}),ts=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,18995)),loading:x.Z}),as=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,65379)),loading:x.Z}),ss=Tt()({loader:()=>Promise.all([a.e(478),a.e(343),a.e(327),a.e(571)]).then(a.bind(a,42415)),loading:x.Z}),ns=Tt()({loader:()=>a.e(58).then(a.bind(a,76285)),loading:x.Z}),rs=Tt()({loader:()=>Promise.all([a.e(14),a.e(970)]).then(a.bind(a,7414)),loading:x.Z});class os extends s.Component{constructor(){super();let e=!(!r.ChainStore.subError||"ChainStore sync error, please check your system clock"!==r.ChainStore.subError.message);this.state={isBrowserSupportModalVisible:!1,isGatewaySelectorModalVisible:!1,loading:!1,synced:this._syncStatus(),syncFail:e,incognito:!1,incognitoWarningDismissed:!1,height:window&&window.innerHeight},this._rebuildTooltips=this._rebuildTooltips.bind(this),this._chainStoreSub=this._chainStoreSub.bind(this),this._syncStatus=this._syncStatus.bind(this),this._getWindowHeight=this._getWindowHeight.bind(this),this.showBrowserSupportModal=this.showBrowserSupportModal.bind(this),this.hideBrowserSupportModal=this.hideBrowserSupportModal.bind(this),this.hideGatewaySelectorModal=this.hideGatewaySelectorModal.bind(this),ge.Notification.config({duration:4.5,top:90})}componentWillUnmount(){window.removeEventListener("resize",this._getWindowHeight),c.unlisten(this._onNotificationChange),r.ChainStore.unsubscribe(this._chainStoreSub),clearInterval(this.syncCheckInterval)}getBlockTime(){let e=r.ChainStore.getObject("2.1.0");if(e){let t=e.get("time");return/Z$/.test(t)||(t+="Z"),new Date(t)}throw new Error("Blocktime not available right now")}getBlockTimeDelta(){try{let e=(this.getBlockTime().getTime()+r.ChainStore.getEstimatedChainTimeOffset())/1e3,t=(new Date).getTime()/1e3;return Math.abs(t-e)}catch(e){return-1}}hideBrowserSupportModal(){this.setState({isBrowserSupportModalVisible:!1})}hideGatewaySelectorModal(){this.setState({isGatewaySelectorModalVisible:!1})}showBrowserSupportModal(){this.setState({isBrowserSupportModalVisible:!0})}_syncStatus(e=!1){let t=this.getBlockTimeDelta()<5;return e&&t!==this.state.synced&&this.setState({synced:t}),t}_setListeners(){try{window.addEventListener("resize",this._getWindowHeight,{capture:!1,passive:!0}),c.listen(this._onNotificationChange.bind(this)),r.ChainStore.subscribe(this._chainStoreSub),o.Z.tryToSetCurrentAccount()}catch(e){console.error("e:",e)}}componentDidMount(){this._setListeners(),this.syncCheckInterval=setInterval(this._syncStatus.bind(this,!0),5e3);const e=navigator.userAgent.toLowerCase();window.electron||e.indexOf("firefox")>-1||e.indexOf("chrome")>-1||e.indexOf("edge")>-1||this.showBrowserSupportModal(),this.props.history.listen(this._rebuildTooltips),this._rebuildTooltips(),(0,Nt.Z)(function(e){this.setState({incognito:e})}.bind(this)),Ia.Z.loadOnChainGatewayConfig(),(0,ve.rC)()&&this._ensureExternalServices()}_ensureExternalServices(){setTimeout((()=>{o.Z.getState().myActiveAccounts.size>0||o.Z.getState().passwordAccount?this._checkExternalServices():this._ensureExternalServices()}),5e3)}_checkExternalServices(){h.Z.getState().viewSettings.get("hasSeenExternalServices",!1)?(0,Mt.xA)():this.setState({isGatewaySelectorModalVisible:!0})}componentDidUpdate(e){this.props.location!==e.location&&this.onRouteChanged()}onRouteChanged(){document.title=Zt.GetTitleByPath(this.props.location.pathname)}_onIgnoreIncognitoWarning(){this.setState({incognitoWarningDismissed:!0})}_rebuildTooltips(){this.rebuildTimeout||(te.Z.hide(),this.rebuildTimeout=setTimeout((()=>{this.refs.tooltip&&this.refs.tooltip.globalRebuild(),this.rebuildTimeout=null}),1500))}_chainStoreSub(){let e=this._syncStatus();if(e!==this.state.synced&&this.setState({synced:e}),r.ChainStore.subscribed!==this.state.synced||r.ChainStore.subError){let e=!(!r.ChainStore.subError||"ChainStore sync error, please check your system clock"!==r.ChainStore.subError.message);this.setState({syncFail:e})}}_onNotificationChange(){let e=c.getState().notification;void 0===e.autoDismiss&&(e.autoDismiss=10),this.refs.notificationSystem&&this.refs.notificationSystem.addNotification(e)}_getWindowHeight(){this.setState({height:window&&window.innerHeight})}render(){let{incognito:e,incognitoWarningDismissed:t}=this.state,{walletMode:a,theme:n,location:r,match:i,...l}=this.props,c=null;if(this.state.syncFail)c=s.createElement(E,null);else if(this.state.loading)c=s.createElement("div",{className:"grid-frame vertical"},s.createElement(x.Z,{loadingText:"Connecting to APIs and starting app"}));else{let e=o.Z.getState().currentAccount||o.Z.getState().passwordAccount;e=e&&"null"!==e?e:"committee-account",c=s.createElement("div",{className:"grid-frame vertical"},s.createElement(Rt,null),s.createElement(xe,Oa({height:this.state.height},l)),s.createElement("div",{id:"mainContainer",className:"grid-block"},s.createElement("div",{className:"grid-block vertical"},s.createElement(d.rs,null,s.createElement(d.AW,{path:"/",exact:!0,component:Ja}),s.createElement(d.AW,{path:"/account/:account_name",component:Fa}),s.createElement(d.AW,{path:"/accounts",component:Xa}),s.createElement(d.AW,{path:"/market/:marketID",component:La}),s.createElement(d.AW,{path:"/credit-offer",component:Da}),s.createElement(d.AW,{path:"/settings/:tab",component:Ha}),s.createElement(d.AW,{path:"/settings",component:Ha}),s.createElement(d.AW,{path:"/invoice/:data",component:qa}),s.createElement(d.AW,{path:"/deposit-withdraw",exact:!0,component:Wa}),s.createElement(d.AW,{path:"/create-account",component:Ft.Z}),s.createElement(d.AW,{path:"/login",component:aa}),s.createElement(d.AW,{path:"/registration",exact:!0,component:ra}),s.createElement(d.AW,{path:"/registration/local",exact:!0,component:fa}),s.createElement(d.AW,{path:"/registration/cloud",exact:!0,component:Aa}),s.createElement(d.AW,{path:"/news",exact:!0,component:Ua}),s.createElement(d.l_,{path:"/voting",to:{pathname:`/account/${e}/voting`}}),s.createElement(d.AW,{path:"/explorer/:tab",component:Ra}),s.createElement(d.AW,{path:"/explorer",component:Ra}),s.createElement(d.AW,{path:"/asset/:symbol",component:Va}),s.createElement(d.AW,{exact:!0,path:"/block/:height",component:Ga}),s.createElement(d.AW,{exact:!0,path:"/block/:height/:txIndex",component:Ga}),s.createElement(d.AW,{path:"/borrow",component:ts}),s.createElement(d.AW,{path:"/barter",component:es}),s.createElement(d.AW,{path:"/direct-debit",component:ss}),s.createElement(d.AW,{path:"/spotlight",component:Ta}),s.createElement(d.AW,{path:"/wallet",component:Ya}),s.createElement(d.AW,{path:"/create-wallet-brainkey",component:Ea.D}),s.createElement(d.AW,{path:"/existing-account",component:Qa}),s.createElement(d.AW,{path:"/create-worker",component:$a}),s.createElement(d.AW,{exact:!0,path:"/help",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1/:path2",component:Ka}),s.createElement(d.AW,{exact:!0,path:"/help/:path1/:path2/:path3",component:Ka}),s.createElement(d.AW,{path:"/htlc",component:as}),s.createElement(d.AW,{path:"/prediction",component:ja}),s.createElement(d.AW,{exact:!0,path:"/instant-trade",component:ns}),s.createElement(d.AW,{exact:!0,path:"/instant-trade/:marketID",component:ns}),s.createElement(d.AW,{path:"/pools",component:rs}),s.createElement(d.AW,{path:"*",component:jt.Z})))),s.createElement(St,{synced:this.state.synced,history:this.props.history}),s.createElement(te.Z,{ref:"tooltip",place:"top",type:"lightTheme"===n?"dark":"light",effect:"solid"}))}return s.createElement("div",{style:{backgroundColor:n?null:"#2a2a2a"},className:n},s.createElement(ge.BodyClassName,{className:n},a&&e&&!t?s.createElement(Pt,{onClickIgnore:this._onIgnoreIncognitoWarning.bind(this)}):null,s.createElement("div",{id:"content-wrapper"},c,s.createElement(Ce(),{ref:"notificationSystem",allowHTML:!0,style:{Containers:{DefaultStyle:{width:"425px"}}}}),s.createElement(Oe,null),s.createElement(R,null),s.createElement(Ma,null),s.createElement(ot,null),s.createElement(it,{visible:this.state.isBrowserSupportModalVisible,hideModal:this.hideBrowserSupportModal,showModal:this.showBrowserSupportModal}),s.createElement(Za.Z,{visible:this.state.isGatewaySelectorModalVisible,hideModal:this.hideGatewaySelectorModal}))))}}const is=(0,d.EN)(os);var ls=a(51477),cs=a(774),ds=a(49540),us=a.n(ds),ps=a(62254);const hs={enableCrypto:!0,enableOrders:!0};class ms extends s.Component{constructor(e){super(e),this.state={isModalVisible:!1},this.handleModalClose=this.handleModalClose.bind(this)}UNSAFE_componentWillReceiveProps(e){"open"===e.rpc_connection_status&&e.apiServer!==this.props.apiServer&&b.Z.showWS(e.apiServer)}handleModalClose(){this.setState({isModalVisible:!1})}triggerModal(e){this.setState({isModalVisible:!0})}onChangeWS(e){b.Z.changeSetting({setting:"apiServer",value:e}),f.Apis.reset(e,!0,4e3,hs)}onReloadClick(e){e&&e.preventDefault(),window.electron?(window.location.hash="",window.remote.getCurrentWindow().reload()):window.location.href=""}onReset(){b.Z.changeSetting({setting:"apiServer",value:this.props.defaultConnection}),b.Z.clearSettings()}render(){let e=this.props.apis.reduce(((e,t)=>(t&&t.url&&(-1!==e.findIndex((e=>e.url===t.url))||e.push(t)),e)),[]).map((e=>{let t=-1!==e.url.indexOf("fake.automatic-selection"),{location:a}=e;return a&&"object"==typeof a&&"translate"in a&&(a=k().translate(a.translate)),s.createElement(ge.Select.Option,{key:e.url,value:e.url},a||e.url," ",!t&&a?`(${e.url})`:null)}));return s.createElement("div",{className:"grid-block"},s.createElement("div",{className:"grid-container"},s.createElement("div",{className:"grid-content no-overflow"},s.createElement("br",null),s.createElement(g(),{component:"h3",content:"app_init.title"}),s.createElement(ge.Form,{layout:"vertical"},s.createElement(ge.Form.Item,{label:k().translate("settings.apiServer")},s.createElement(ge.Input.Group,{compact:!0},s.createElement(ge.Select,{style:{width:"calc(100% - 175px)"},onChange:this.onChangeWS.bind(this),value:this.props.apiServer},e),s.createElement(ge.Button,{id:"add",style:{width:"175px"},onClick:this.triggerModal.bind(this),icon:"plus"},k().translate("settings.add_api")))),s.createElement(ge.Form.Item,{label:k().translate("app_init.ws_status")},"open"===this.props.rpc_connection_status?s.createElement("span",{className:"txtlabel success"},s.createElement(g(),{content:"app_init.connected"})):s.createElement("span",{className:"txtlabel warning"},s.createElement(g(),{content:"app_init.not_connected"}))),s.createElement(ge.Button,{type:"primary",onClick:this.onReloadClick},k().translate("app_init.retry")),s.createElement(ge.Button,{style:{marginLeft:"16px"},onClick:this.onReset.bind(this)},k().translate("settings.reset"))),s.createElement(_.Z,{ref:"ws_modal",isAddNodeModalVisible:this.state.isModalVisible,onAddNodeClose:this.handleModalClose,apis:this.props.apis}))))}}const gs=(0,u.$)(ms,{listenTo:()=>[p.Z,h.Z],getProps:()=>({rpc_connection_status:p.Z.getState().rpc_connection_status,apis:h.Z.getState().defaults.apiServer,apiServer:h.Z.getState().settings.get("apiServer"),defaultConnection:h.Z.getState().defaultSettings.get("apiServer")})});var bs=a(86853);function fs(){return fs=Object.assign||function(e){for(var t=1;t19&&a.splice(0,1),s.indexOf(a[a.length-1])&&(a.push(s),this.mounted?this.setState({extendeLogText:a}):ht.setLog(a))}_enablePersistingLog(){}UNSAFE_componentWillMount(){this._enablePersistingLog(),setTimeout((()=>{this.setState({showNodeFilter:!0})}),5e3),(0,yt.Z)(!0,this._statusCallback.bind(this)).then((()=>{this.setState({apiConnected:!0,apiError:!1,syncError:null})})).catch((e=>{console.log("willTransitionTo err:",e),this.setState({apiConnected:!1,apiError:!0,syncError:e?-1!==(e&&e.message).indexOf("ChainStore sync error"):null})}))}componentDidMount(){if(this.mounted=!0,navigator.platform.indexOf("Win")>-1){var e=document.getElementById("content");-1===e.className.indexOf("windows")&&(e.className=e.className+(e.className.length?" ":"")+"windows")}}componentWillUnmount(){this.mounted=!1}_statusCallback(e){this.setState({status:e})}_onNodeFilterChange(){this.setState({nodeFilterHasChanged:!0})}_renderLoadingScreen(){let e=this.props.apiServer;return e||(e=""),s.createElement(s.Fragment,null,s.createElement(x.Z,{loadingText:this.state.status||k().translate("app_init.connecting",{server:e})},this.state.showNodeFilter&&s.createElement("div",{className:"padding"},s.createElement(bs.Z,{onChange:this._onNodeFilterChange.bind(this)}),this.state.nodeFilterHasChanged&&s.createElement("div",{style:{marginTop:"1rem"}},"Please reload for the changes to take effect"))))}render(){const{theme:e}=this.props,{apiConnected:t,apiError:a,syncError:n}=this.state;return t?s.createElement(_s,fs({},this.props,this.state)):s.createElement("div",{style:{backgroundColor:e?null:"#2a2a2a"},className:e},s.createElement("div",{id:"content-wrapper"},s.createElement("div",{className:"grid-frame vertical"},s.createElement(ge.BodyClassName,{className:e},a?n?s.createElement(E,null):s.createElement(gs,null):this._renderLoadingScreen()))))}}ws=(0,u.$)(ws,{listenTo:()=>[cs.Z,Y.Z,h.Z],getProps:()=>({locale:cs.Z.getState().currentLocale,walletMode:!h.Z.getState().settings.get("passwordLogin")||!!Y.Z.getState().current_wallet,theme:h.Z.getState().settings.get("themes"),apiServer:h.Z.getState().settings.get("activeNode","")})});const ks=ws=(0,u.V)(i.Z)(ws),vs=document.getElementById("content");n.render(s.createElement(ks,null),vs)},17315:e=>{e.exports={account_listing:{no_listing:0,white_listed:1,black_listed:2,white_and_black_listed:3}}},35922:e=>{e.exports={permission_flags:{charge_market_fee:1,white_list:2,override_authority:4,transfer_restricted:8,disable_force_settle:16,global_settle:32,disable_confidential:64,witness_fed_asset:128,committee_fed_asset:256,lock_max_supply:512,disable_new_supply:1024,disable_mcr_update:2048,disable_icr_update:4096,disable_mssr_update:8192,disable_bsrm_update:16384,disable_collateral_bidding:32768},uia_permission_mask:["charge_market_fee","white_list","override_authority","transfer_restricted","disable_confidential"],GRAPHENE_100_PERCENT:1e4,GRAPHENE_1_PERCENT:100,GRAPHENE_MAX_SHARE_SUPPLY:"1000000000000000"}},91e3:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s={MAIN_NET:"4018d7844c78f6a6c41c6a552b898022310fc5dec06da467ee7905a8dad512c8",TEST_NET:"39f5e2ede1f8bc1a3a54a7914414e3779e33193f1f5693510e73cb7a87617447"}},91822:(e,t,a)=>{"use strict";a.d(t,{AQ:()=>c,ET:()=>u,TH:()=>i,d$:()=>d,zV:()=>l});var s=a(30806),n=a(60567),r=a(7581);const o=async function(){let e=(0,n.sH)();if(!e.symbol)return{};const t=[await(0,s.FetchChain)("getAsset",e.symbol)];let a={};return t.forEach((t=>{if(t)try{t=t.toJS();let s=r.Z.parseDescription(t.options.description);if(s.main&&(s=s.main.split(e.explanation),s.length>1&&s[1])){let e=JSON.parse(s[1]);a=Object.assign(a,e)}}catch(e){console.error("JSON payload could not be parsed from asset description "+t.symbol,t)}})),a},i=async function(){const e=await o();if(!e.notifications)return[];let t=[];return e.notifications.forEach((e=>{t.push(e)})),t},l=async function(){return(await o()).predictionMarketIssuers||[]},c=async function(e){const t=await o();return!!t.gateways&&!!t.gateways[e]&&!1===t.gateways[e].enabled},d=async function(e){const t=await o();return t.gateways?e?t.gateways[e]?t.gateways[e]:null:t.gateways:null},u=async function(){return await o()||{}}},49554:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(41075);const n=(0,a(19602).ZP)("__bts__"),r=class{constructor(){this.current_blocktrades_address_cache_version_string="2"}getIndexForDepositKeyInExchange(e,t,a){return[this.current_blocktrades_address_cache_version_string,e,t,a].reduce((function(e,t){return e.concat("[",t,"]")}),"")}getCachedInputAddress(e,t,a,r){let o=s.Z.getWallet();const i=this.getIndexForDepositKeyInExchange(t,a,r);if(o){o.deposit_keys=o.deposit_keys||{},o.deposit_keys[e]=o.deposit_keys[e]||{},o.deposit_keys[e][i]=o.deposit_keys[e][i]||[];let t=o.deposit_keys[e][i].length;return t?o.deposit_keys[e][i][t-1]:null}{let t=n.get("deposit_keys",{});t[e]=t[e]||{},t[e][i]=t[e][i]||[];let a=t[e][i].length;return a?t[e][i][a-1]:null}}cacheInputAddress(e,t,a,r,o,i){if(!o)return;let l=s.Z.getWallet();const c=this.getIndexForDepositKeyInExchange(t,a,r);if(l)l.deposit_keys&&l.deposit_keys.undefined&&delete l.deposit_keys.undefined,Object.keys(l.deposit_keys||{}).forEach((e=>{for(let t in l.deposit_keys[e])if(l.deposit_keys[e][t]&&l.deposit_keys[e][t].length)for(let a=l.deposit_keys[e][t].length-1;a>=0;a--)l.deposit_keys[e][t][a]&&"unknown"===l.deposit_keys[e][t][a].address&&l.deposit_keys[e][t].splice(a,1)})),l.deposit_keys=l.deposit_keys||{},l.deposit_keys[e]=l.deposit_keys[e]||{},l.deposit_keys[e][c]=l.deposit_keys[e][c]||[],l.deposit_keys[e][c].push({address:o,memo:i}),s.Z._updateWallet();else{let t=n.get("deposit_keys",{});t[e]=t[e]||{},t[e][c]=t[e][c]||[],t[e][c].push({address:o,memo:i}),n.set("deposit_keys",t)}}}},74366:(e,t,a)=>{"use strict";a.d(t,{DI:()=>f,F6:()=>u,Gy:()=>h,Pz:()=>i,aN:()=>g,ad:()=>d,eN:()=>p,l4:()=>m,tA:()=>c,te:()=>b,xR:()=>l});var s=a(13973),n=a(44431);function r(e,t=8){if("number"!=typeof t)throw new Error("Input must be a number");let a=e.toString(),s=a.split(".");return 1===s.length||2===s.length&&s[1].length<=t?parseFloat(a):parseFloat(s[0]+"."+s[1].substr(0,t))}function o(e){if("number"!=typeof e)throw new Error("Input must be a number");return Math.pow(10,e)}function i(e,t){let a=t&&t.size!==e.size;return a||(e.forEach(((e,s)=>{let n=t.get(s);n?e.market_base===n.market_base&&(a=a||e.ne(n)):a=!0})),a)}class l{constructor({asset_id:e="1.3.0",amount:t=0,precision:a=5,real:s=null}={}){this.satoshi=o(a),this.asset_id=e,this.setAmount({sats:t,real:s}),this.precision=a}hasAmount(){return this.amount>0}toSats(e=1){return Math.round(e*this.satoshi)}setAmount({sats:e,real:t}){if("string"==typeof e&&(e=parseInt(e,10)),"string"==typeof t&&(t=parseFloat(t)),"number"!=typeof e&&"number"!=typeof t)throw new Error("Invalid arguments for setAmount");if("number"==typeof t)this.amount=this.toSats(t),this._clearCache();else{if("number"!=typeof e)throw new Error("Invalid setAmount input");this.amount=Math.floor(e),this._clearCache()}}_clearCache(){this._real_amount=null}getAmount({real:e=!1}={}){return e?this._real_amount?this._real_amount:this._real_amount=r(this.amount/this.toSats(),this.precision):Math.floor(this.amount)}plus(e){if(e.asset_id!==this.asset_id)throw new Error("Assets are not the same type");this.amount+=e.amount,this._clearCache()}minus(e){if(e.asset_id!==this.asset_id)throw new Error("Assets are not the same type");this.amount-=e.amount,this.amount=Math.max(0,this.amount),this._clearCache()}equals(e){return this.asset_id===e.asset_id&&this.getAmount()===e.getAmount()}ne(e){return!this.equals(e)}gt(e){return this.getAmount()>e.getAmount()}lt(e){return this.getAmount()1e5&&(e=r(e,5));let s=new n.BigNumber(e.toString()).toFraction(),o=t.toSats(),i=a.toSats(),l=o/i,c=i/o;o>=i?c=1:l=1,t.setAmount({sats:s[0]*l}),a.setAmount({sats:s[1]*c})}else 0===e&&(t.setAmount({sats:0}),a.setAmount({sats:0}))}getUnits(){return this.base.asset_id+"_"+this.quote.asset_id}isValid(){return 0!==this.base.amount&&0!==this.quote.amount&&!isNaN(this.toReal())&&isFinite(this.toReal())}toReal(e=!1){const t=e?"_samebase_real":"_not_samebase_real";if(this[t])return this[t];let a=e?this.quote.amount*this.base.toSats()/(this.base.amount*this.quote.toSats()):this.base.amount*this.quote.toSats()/(this.quote.amount*this.base.toSats());return this[t]=parseFloat(a.toFixed(8))}invert(){return new c({base:this.quote,quote:this.base})}clone(e=null){return new c({base:this.base,quote:this.quote,real:e})}equals(e){return this.base.asset_id===e.base.asset_id&&this.quote.asset_id===e.quote.asset_id&&e.quote.amount*this.base.amount==this.quote.amount*e.base.amount}lt(e){if(this.base.asset_id!==e.base.asset_id||this.quote.asset_id!==e.quote.asset_id)throw new Error("Cannot compare prices for different assets");return e.quote.amount*this.base.amountnull}}clone(e=this.feed_price){return new h(this.order,this.assets,this.market_base,e,this.mcr)}setFeed(e){this.feed_price=e,this._clearCache()}getPrice(e=!0,t=this.call_price){return e?this.getSqueezePrice():this._real_price?this._real_price:this._real_price=t.toReal(t.base.asset_id===this.market_base)}getFeedPrice(e=this.feed_price){return this._feed_price?this._feed_price:this._feed_price=e.toReal(e.base.asset_id===this.market_base)}getSqueezePrice(e=this.feed_price){return this._squeeze_price?this._squeeze_price:this._squeeze_price=e.getSqueezePrice().toReal()}isMarginCalled(){return!this.is_prediction_market&&(this.isBid()?this.call_price.lt(this.feed_price):this.call_price.gt(this.feed_price))}isBid(){return!this.inverted}isCall(){return!0}sellPrice(e=!0){return e?this.isBid()?this.feed_price.getSqueezePrice():this.feed_price.getSqueezePrice().invert():this.call_price}getCollateral(){return this._collateral?this._collateral:this._collateral=new l({amount:this.collateral,asset_id:this.collateral_id,precision:this.assets[this.collateral_id].precision})}_getMaxCollateralToSell(){if(this.target_collateral_ratio&&this.getRatio(){"use strict";a.d(t,{Z:()=>p});var s=a(30806),n=a(13973),r=a(112),o=a.n(r),i=a(81237);const l=["polonie-wallet","1.2.27842","polonie-xwallet","1.2.27850","poloniewallet","1.2.20873","poloniex-deposit","1.2.25426","poloniex-wallet","1.2.20821","poloniexwall-et","1.2.28079","poloniexwallett","1.2.28188","poloniexwall-t","1.2.28072","poloniexwalle","1.2.20580","poloniexwallet-coinfarm","1.2.1822973","poloniex","1.2.2340","poloneix","1.2.24900","poloniexeos1","1.2.1049362"],c=["bittrex-deopsit","1.2.34361","bittrex-deposi","1.2.23638","bittrex-depositt","1.2.23640","bittrex-dposit","1.2.32594","bittrex","1.2.2343","bittrex-deposits","1.2.161093","bittrexacct1","1.2.1649570"],d=["aaex-bitcny-deposit-wallet","1.2.492535","aacoin","1.2.1005892","abucoins","1.2.463335","acinq","1.2.878058","aex-bitcny-deposit","1.2.455052","aex-bitcny-dopesit-wallet","1.2.1795613","aex-bts-deposit-walle","1.2.454205","aex-cnc-cza","1.2.878029","aex88","1.2.831039","aexdepositbm","1.2.1031653","aida","1.2.539184","aidosmarket","1.2.787065","allah-iraq","1.2.979541","aliant","1.2.878061","alta","1.2.878079","altcointrader","1.2.787049","antpool","1.2.524132","aporoo","1.2.1018792","apus","1.2.999997","arcbit","1.2.465096","archive","1.2.786888","armory","1.2.465097","ate-io-bts","1.2.730842","atoken","1.2.599845","azex","1.2.986608","b2bx","1.2.897119","bancor.network","1.2.781941","barterdex","1.2.787093","baseline","1.2.599803","bbex","1.2.484215","bbts001","1.2.815730","bc1q","1.2.791043","bcoin","1.2.1029906","bcos","1.2.446259","beechat","1.2.599849","bepal","1.2.605394","bft-dpos","1.2.1026134","bgogo","1.2.1007568","bhex","1.2.1030020","bibox.com","1.2.621440","bigbag","1.2.789783","bigether","1.2.694013","bigether.vip","1.2.694015","bilaxy","1.2.1023782","binance-btc-1","1.2.467525","binance-bts-05","1.2.1823010","binance-bts-1-05","1.2.1823008","binance-bts-1-accumulation","1.2.1823002","binance-bts-1-action","1.2.1822863","binance-bts-1-actions","1.2.1822892","binance-bts-1-actlon","1.2.1822953","binance-bts-1-ad","1.2.1823057","binance-bts-1-adstrategy","1.2.1823066","binance-bts-1-advance","1.2.1823056","binance-bts-1-advancement","1.2.1823060","binance-bts-1-airdrop","1.2.1822868","binance-bts-1-allocation","1.2.1822817","binance-bts-1-attraction","1.2.1823054","binance-bts-1-award","1.2.1822754","binance-bts-1-awards","1.2.1822862","binance-bts-1-benefit","1.2.1822747","binance-bts-1-benefits","1.2.1822758","binance-bts-1-bid","1.2.1823029","binance-bts-1-binance","1.2.1822929","binance-bts-1-bitshares","1.2.1822844","binance-bts-1-block","1.2.1823047","binance-bts-1-blockaward","1.2.1823045","binance-bts-1-blockawards","1.2.1823046","binance-bts-1-blockreward","1.2.1823043","binance-bts-1-blockrewards","1.2.1823044","binance-bts-1-bonus","1.2.1822608","binance-bts-1-bonus-pool","1.2.1822736","binance-bts-1-bonus2023","1.2.1822639","binance-bts-1-boun","1.2.1822970","binance-bts-1-bounti","1.2.1822968","binance-bts-1-bounty","1.2.1822777","binance-bts-1-box","1.2.1822921","binance-bts-1-boyntu","1.2.1822962","binance-bts-1-bridge-huobi-pro","1.2.1822965","binance-bts-1-bridge-mxccom","1.2.1822989","binance-bts-1-cap","1.2.1823062","binance-bts-1-capital","1.2.1823064","binance-bts-1-capitalization","1.2.1823063","binance-bts-1-cash","1.2.1822906","binance-bts-1-cashback","1.2.1822812","binance-bts-1-coin","1.2.1822933","binance-bts-1-convert","1.2.1822927","binance-bts-1-crowdfunding","1.2.1823049","binance-bts-1-crowdsale","1.2.1823050","binance-bts-1-crowdsourcing","1.2.1823051","binance-bts-1-deal","1.2.1822964","binance-bts-1-debet","1.2.1823037","binance-bts-1-dick","1.2.1822731","binance-bts-1-distribution","1.2.1822864","binance-bts-1-drop","1.2.1822732","binance-bts-1-equity","1.2.1823036","binance-bts-1-farm","1.2.1822828","binance-bts-1-farming","1.2.1823000","binance-bts-1-fork","1.2.1823027","binance-bts-1-freein","1.2.1822999","binance-bts-1-funding","1.2.1823048","binance-bts-1-get","1.2.1822788","binance-bts-1-gift","1.2.1822723","binance-bts-1-gift-05","1.2.1822984","binance-bts-1-giveaway","1.2.1822749","binance-bts-1-gold","1.2.1822786","binance-bts-1-hardcap","1.2.1823030","binance-bts-1-hardfork","1.2.1823028","binance-bts-1-ico","1.2.1822998","binance-bts-1-ido","1.2.1822997","binance-bts-1-in","1.2.1823007","binance-bts-1-ipo","1.2.1823031","binance-bts-1-instamine","1.2.1822870","binance-bts-1-liquidity","1.2.1822915","binance-bts-1-listing","1.2.1822725","binance-bts-1-mainnet","1.2.1822937","binance-bts-1-marketing","1.2.1823065","binance-bts-1-mev","1.2.1823033","binance-bts-1-mine","1.2.1823003","binance-bts-1-minepool","1.2.1823039","binance-bts-1-miningpos","1.2.1823071","binance-bts-1-miningpow","1.2.1823072","binance-bts-1-mint","1.2.1822957","binance-bts-1-money","1.2.1822795","binance-bts-1-newblock","1.2.1823042","binance-bts-1-node-reward","1.2.1822742","binance-bts-1-node","1.2.1823041","binance-bts-1-nodes","1.2.1823005","binance-bts-1-partnership","1.2.1823004","binance-bts-1-pool","1.2.1823038","binance-bts-1-pos","1.2.1823035","binance-bts-1-posmining","1.2.1823070","binance-bts-1-pow","1.2.1823034","binance-bts-1-powmining","1.2.1823068","binance-bts-1-premined","1.2.1823006","binance-bts-1-premium","1.2.1822975","binance-bts-1-prize","1.2.1822797","binance-bts-1-prizes","1.2.1822806","binance-bts-1-prime","1.2.1823015","binance-bts-1-pro","1.2.1822794","binance-bts-1-profit","1.2.1822813","binance-bts-1-prom","1.2.1822898","binance-bts-1-promaction","1.2.1822972","binance-bts-1-promo","1.2.1822663","binance-bts-1-promo-05","1.2.1822955","binance-bts-1-promo-1","1.2.1822958","binance-bts-1-promo-code","1.2.1822793","binance-bts-1-promo-rewards","1.2.1822718","binance-bts-1-promoaction","1.2.1822866","binance-bts-1-promocode","1.2.1822692","binance-bts-1-promoloot","1.2.1822948","binance-bts-1-promop2p","1.2.1822936","binance-bts-1-promotion","1.2.1822781","binance-bts-1-promotion-1","1.2.1822896","binance-bts-1-promotion-code","1.2.1822727","binance-bts-1-promotions","1.2.1822894","binance-bts-1-promousd","1.2.1822994","binance-bts-1-public","1.2.1823040","binance-bts-1-receive","1.2.1822768","binance-bts-1-referal","1.2.1822772","binance-bts-1-referral-bonus","1.2.1822769","binance-bts-1-return","1.2.1822939","binance-bts-1-reward","1.2.1822719","binance-bts-1-rewarding","1.2.1822798","binance-bts-1-rewards","1.2.1822712","binance-bts-1-rewards-pool","1.2.1822743","binance-bts-1-rewards-promo","1.2.1822722","binance-bts-1-rise","1.2.1823061","binance-bts-1-send","1.2.1822847","binance-bts-1-sourcing","1.2.1823053","binance-bts-1-spread","1.2.1823001","binance-bts-1-staking","1.2.1823067","binance-bts-1-start","1.2.1822931","binance-bts-1-stmb","1.2.1822842","binance-bts-1-strides","1.2.1823059","binance-bts-1-temka","1.2.1822792","binance-bts-1-test","1.2.1822701","binance-bts-1-testnet","1.2.1822935","binance-bts-1-testnet-1","1.2.1822996","binance-bts-1-trust","1.2.1823026","binance-bts-1-vip","1.2.1822871","binance-bts-1-volumeup","1.2.1823055","binance-bts-1-wallet","1.2.1822945","binance-bts-1-wallet1","1.2.1822960","binance-bts-1-wheelet","1.2.1822903","binance-bts-152","1.2.1822837","binance-bts-2-promoname","1.2.1822710","binance-bts-bonus-1","1.2.1822708","binance-bts-bonus-2","1.2.1822633","binance-bts-i","1.2.467527","binance-bts-l","1.2.467526","binance-bts-promo","1.2.1822780","binancecleos","1.2.1017616","binance-nbs-02","1.2.1792577","binanse-bts-1-premium","1.2.1823020","bishengtopex","1.2.1029188","bisq","1.2.787078","bisq.network","1.2.787079","bit-shares-1-promo","1.2.1822787","bitarg","1.2.878042","bitasiaex","1.2.878018","bitbill","1.2.524063","bitbill.app","1.2.1000037","bitbns","1.2.782094","bitcoinindonesi","1.2.609628","bitcointrade","1.2.781957","bitfinexdep1","1.2.1019320","bitflip","1.2.787068","bitflyer.com","1.2.901469","bithd","1.2.745701","bitholic","1.2.787035","bitinka","1.2.781928","bitkk","1.2.878012","bitkkchubei00","1.2.815733","bitkkchubei001","1.2.815732","bitkkchubei02","1.2.815734","bitkonan","1.2.787113","bitkop","1.2.962262","bitmaszyna","1.2.787101","bitoex","1.2.599690","bitonic","1.2.781953","bitopro","1.2.885538","bitpaction","1.2.878571","bitpal","1.2.599671","bitpesa","1.2.742633","bitpie","1.2.465092","bitrefill","1.2.878076","bits.farm","1.2.749087","bitsblockchain","1.2.781926","bitsfarm","1.2.749090","bitshares-app","1.2.1000006","bitshares.app","1.2.1000008","bitspark-hold","1.2.1032019","bitun","1.2.782084","bitupro","1.2.878037","bitvip.com","1.2.599832","bjex","1.2.540676","bkex","1.2.988882","blind","1.2.745696","blind-transfer","1.2.745698","blocktrade","1.2.161090","bloex","1.2.1030028","blox","1.2.940022","bonus-event-in-end-of-years-2018","1.2.1208797","bsend001","1.2.815731","btc-alpha.com","1.2.781944","btc.eos","1.2.659986","btc38.com","1.2.92089","btcalph","1.2.878023","btcmarkets.net","1.2.781936","btcxindia","1.2.782095","btex","1.2.1026071","bts.app","1.2.1000010","bts.eos","1.2.659985","btsalpha","1.2.878025","btsid","1.2.599680","btsmoney","1.2.32810","burstnation","1.2.787122","buyucoin","1.2.812978","buyucoin-walle","1.2.812979","bybit-promo","1.2.1822938","c-patex","1.2.787114","cash-in-cash-out","1.2.1822916","cashaddr","1.2.791045","cashierest","1.2.878112","cetus","1.2.1000009","cex.com","1.2.599797","chaince","1.2.939977","chaince.com","1.2.939982","chainceoneos","1.2.1020153","changelly","1.2.599892","changenow","1.2.620292","chaoex.com","1.2.599812","cionex-deposit","1.2.1822954","citcon","1.2.878074","cobo","1.2.742630","cobowalletcn","1.2.1026084","cobowalletio","1.2.1026083","cohescure","1.2.705164","coin.space","1.2.599877","coin2co","1.2.1026070","coin900","1.2.557720","coin900.com","1.2.620298","coinbase","1.2.709","coinbase.com","1.2.92130","coinbe","1.2.787120","coinbell","1.2.782088","coinbene","1.2.465091","coinbig","1.2.707653","coinbig.com","1.2.707655","coincode","1.2.599683","coincoming","1.2.620294","coineal","1.2.999276","coinegg.main","1.2.447093","coinex","1.2.467667","coinex.com","1.2.553120","coinexchange","1.2.463328","coinexmarket","1.2.897140","coinfloorex","1.2.812983","coingeto","1.2.878077","coinhouse","1.2.787106","coinhub","1.2.897122","coinlink","1.2.787076","coinmate","1.2.463339","coinoah","1.2.940511","coinoah.com","1.2.940514","coinpark","1.2.999275","coinrail","1.2.781937","coinsave","1.2.999292","coinstocks","1.2.745645","cointiger-deposit-bts","1.2.1029192","cointiger-deposit-bts0","1.2.1029193","cointiger-deposit-bts1","1.2.1029194","cointobe","1.2.599669","cointome","1.2.693998","cointopay","1.2.742639","coinut","1.2.463336","coinut.com","1.2.781955","coinw","1.2.462799","coinw.com","1.2.599798","coinyee","1.2.878013","coldlar","1.2.465101","committee","1.2.599999","committee-101","1.2.999719","committee-102","1.2.999727","committee-103","1.2.999720","committee-104","1.2.999724","committee-105","1.2.999722","committee-106","1.2.999721","committee-107","1.2.999723","committee-108","1.2.999725","committee-109","1.2.999728","committee-110","1.2.999726","committee-accou","1.2.999694","committee-accoun","1.2.807841","committee-accounr","1.2.500266","committee-cnytrade","1.2.999697","committee-usdoperato","1.2.999696","committe-security","1.2.1273199","contractland","1.2.878062","counterwallet","1.2.787112","crux","1.2.999998","cryptobridg","1.2.614370","cryptobridge-payout","1.2.745721","cryptoderivatives","1.2.787129","cryptoderivatives.market","1.2.787130","cryptomkt","1.2.787095","cryptomkt.com","1.2.787094","crypton","1.2.1026067","cryptonize","1.2.999284","crypviser","1.2.1026359","ctpmall","1.2.599726","cx-bitcny-deposit-wallet","1.2.827934","cx-bitcny-withdraw-wallet","1.2.827938","cx-bts-deposit-wallet","1.2.827946","cx-bts-withdraw-wallet","1.2.827943","daex","1.2.792704","dax-deposit","1.2.970985","dax-exchange","1.2.970987","dax-mn","1.2.970989","dax-withdraw","1.2.970993","ddex","1.2.599757","decred","1.2.742642","dewone","1.2.749261","dex.top","1.2.962058","dexko","1.2.694029","dgtmarket","1.2.787107","diceex","1.2.999511","diceex-bit","1.2.999518","diceex-bitcn","1.2.999513","diceex-bitusd","1.2.999517","diceex-btc","1.2.999514","diceex-cny","1.2.999516","dig-exchange","1.2.795378","digifinex","1.2.878066","digitaex","1.2.693969","door.one","1.2.620671","dragonex","1.2.599785","eclair","1.2.878057","ecoex-bts-1","1.2.990386","eidoo","1.2.782093","eip-20","1.2.658953","eip20","1.2.658949","electrum","1.2.465095","eligma","1.2.878056","entapay","1.2.787075","enumivo","1.2.898598","eos.btc","1.2.659984","eos.bts","1.2.659983","eosdac","1.2.878054","eosfinix","1.2.742627","erc-20","1.2.611002","erc-721","1.2.611005","erc721","1.2.611000","etherflyer","1.2.749253","etherflyer.com","1.2.749255","ethfinex","1.2.781930","ewex","1.2.999306","excambriorex","1.2.787124","exnow","1.2.1006068","expie","1.2.658199","expie.com","1.2.658200","exvo","1.2.878032","exx.com","1.2.599826","exxbtc001","1.2.815746","exxbts00","1.2.815718","exxbts01","1.2.815719","exxsend00","1.2.815720","exxsend01","1.2.815723","ezbtc","1.2.787057","fargobase","1.2.463337","fhex","1.2.1030027","firefoxotc","1.2.812985","forkdelta","1.2.766759","freiexchange","1.2.787118","gate-io-b","1.2.743303","gate-io-bit66","1.2.1830464","gate-io-bls66","1.2.1830501","gate-io-bst66","1.2.1829993","gate-io-bsts66","1.2.1830424","gate-io-bt","1.2.730841","gate-io-bt66","1.2.1830065","gate-io-btc","1.2.730836","gate-io-btx66","1.2.1830066","gateio","1.2.797076","gateiowallet","1.2.1020027","gatie-io-bts66","1.2.1830458","gcox","1.2.789782","gdexioforeos","1.2.1031969","geos","1.2.940146","geta-io-bts","1.2.730843","geth","1.2.599793","ggex","1.2.999285","glidera","1.2.878068","greenaddress","1.2.599879","greenbits","1.2.599875","grus","1.2.999999","guldentrader","1.2.787126","hackers","1.2.21846","hadax","1.2.705160","hadax.com","1.2.705162","hbus","1.2.1026050","hcoin","1.2.1018787","heatwallet","1.2.787111","heatwallet.com","1.2.787109","heztanrqgene","1.2.1020148","hitbtc-exchang","1.2.984724","hitbtc.exchange","1.2.984983","hotbit","1.2.643056","huobi-bts-deposi","1.2.852510","huobi-deposi","1.2.852506","huobideposit","1.2.1019310","huobipro","1.2.764427","iceex-bitcny","1.2.999519","ico-china","1.2.705561","icoape","1.2.706057","icoape.com","1.2.706060","idax","1.2.787045","idax-deposi","1.2.970984","idax-exchang","1.2.970986","idax-nm","1.2.970988","idax-withdra","1.2.970991","idax.deposit","1.2.970994","idax.exchange","1.2.970995","idax.withdraw","1.2.970997","idex","1.2.749252","idex.market","1.2.749251","idle","1.2.900001","ifish","1.2.800510","independentreserve","1.2.781950","indodax","1.2.878015","indus","1.2.1000007","infinitycoin","1.2.787092","infinitycoin.exchange","1.2.787091","iquant","1.2.787044","issuer","1.2.424070","itbtc-exchange","1.2.984791","jaxx","1.2.524055","jrex","1.2.1030022","kairex","1.2.878049","kcash","1.2.562936","keepkey","1.2.599863","kkcoin","1.2.519919","kkcoin.wallet","1.2.519960","kkcoinwallet","1.2.519959","koineks.com","1.2.781952","koinim.com","1.2.781958","krakenkraken","1.2.1020138","kucoin","1.2.463330","kucoindoteos","1.2.1084351","lakebtc","1.2.463326","lakebtc.com","1.2.781938","latoken","1.2.897147","lbank.info","1.2.621443","leoxchange","1.2.787121","licai.deposit","1.2.675961","liteforex","1.2.782098","litepay","1.2.742614","liteshares","1.2.899346","livecoi-net","1.2.183860","livecoin.net","1.2.322811","livecoinnet","1.2.322812","llex","1.2.999290","locktrades","1.2.161091","loois","1.2.999301","loom","1.2.897934","ls123","1.2.394942","luckygame","1.2.971018","luckygames","1.2.971013","luckygames-i","1.2.971014","lupus","1.2.1000005","lykke.com","1.2.787036","lyra","1.2.1000000","mai1100","1.2.158598","mark.space","1.2.897148","meet-up","1.2.999282","meet.one","1.2.782091","meetup","1.2.999280","memo.cash","1.2.878020","mensa","1.2.1000004","mercadobitcoin","1.2.781951","metamask","1.2.963272","mexc","1.2.924294","mmex","1.2.999287","more.top","1.2.782089","morphtoken","1.2.878065","msigna","1.2.465098","mxccom-bridge-binance-bts-1","1.2.1822990","mycelium","1.2.599873","mycrypto","1.2.742624","mydicewallet","1.2.787099","mydicewallet.com","1.2.787096","myetherwallet","1.2.599843","mywallet-1023","1.2.999689","n0stradumpus","1.2.435299","nanex","1.2.897150","negociecoins","1.2.897142","neraex","1.2.463333","neraex.pro","1.2.781933","nevbit","1.2.463340","new.one","1.2.782090","nicehash","1.2.812986","nix-e","1.2.787123","nocks","1.2.787070","oasisdex","1.2.787061","obit-wallet","1.2.800539","octaex","1.2.897139","ocx-bitcny-deposit-walle","1.2.827932","ocx-bitcny-withdraw-walle","1.2.827937","ocx-bts-deposit-walle","1.2.827945","ocx-bts-withdraw-walle","1.2.827942","oex.com","1.2.694035","ointiger-deposit-bts01","1.2.1029195","ojbk","1.2.878030","okbtothemoon","1.2.1029923","okcoinkr","1.2.854387","omicrex","1.2.897131","ommittee-account","1.2.999695","omniexplorer","1.2.787128","omniexplorer.info","1.2.787127","onchainfx","1.2.742618","onchainfx.com","1.2.742621","ooex","1.2.1026069","ooobtc","1.2.897124","openledger-support","1.2.153124","otcbtc","1.2.599673","otcbtcdotcom","1.2.1020116","otcbtcdotnet","1.2.1028053","otcwallet","1.2.1029165","otcx","1.2.492286","ourdax","1.2.599817","ovis","1.2.897135","p2pbucks","1.2.766633","palmpay","1.2.745458","paradex","1.2.962048","pavo","1.2.1000001","pay.bts.com","1.2.92203","pay.coinbase.com","1.2.92185","paymium","1.2.787072","pieotc","1.2.878047","pinocaitoken","1.2.1026118","pocketeos","1.2.1026453","poim","1.2.475488","pomelo","1.2.965566","protokenbank","1.2.1026086","pxn-eos","1.2.1028325","pxn-incom","1.2.1026076","pxn.eos","1.2.1028326","pxn.one","1.2.999512","pxneos","1.2.1028324","pxneos-income","1.2.1028328","pxneosincome","1.2.1028322","pxnincome","1.2.1026079","pyxis","1.2.1000003","qbao","1.2.650495","qcash","1.2.473774","qlink","1.2.878073","qtum-electrum","1.2.761861","quadrigacx","1.2.463332","rabobit","1.2.782096","radarrelay","1.2.787081","radarrelay.com","1.2.787080","ranswiser-wallet","1.2.161364","referrer","1.2.745704","renrenbit","1.2.999291","richcore","1.2.688600","richcore.com","1.2.688621","rippex","1.2.787117","ripple.com","1.2.92097","ripplechina.net","1.2.787054","ripplefox","1.2.787038","rootoken","1.2.742632","rrex","1.2.999289","rudexgateway","1.2.1031975","safewallet","1.2.693983","secp256k1","1.2.539247","sendy","1.2.878072","simex.global","1.2.781934","sistemkoin","1.2.897127","spectrocoin","1.2.898120","stealth","1.2.745699","stellarterm","1.2.787039","stellarterm.com","1.2.787040","stex","1.2.749264","stex.exchange","1.2.749263","stronghold","1.2.781945","superleague1","1.2.1026458","support-team","1.2.1265329","swft.pro","1.2.940110","swftc","1.2.533080","swftcoin","1.2.533082","tcalpha","1.2.878024","tcash","1.2.749256","tdax","1.2.693995","tdax.com","1.2.693996","tdex","1.2.1002884","therocktrading","1.2.787052","therocktrading.com","1.2.787051","thinkbit","1.2.1007570","tidebit","1.2.787053","token.store","1.2.787056","token360","1.2.999298","token365","1.2.999295","tokenlon","1.2.878033","tokenxx","1.2.754276","top.one","1.2.599746","topbtc","1.2.463334","topbtc.com","1.2.781935","toshi","1.2.878046","tradebytrade","1.2.781947","tradebytrade.com","1.2.781946","tradeogre","1.2.787088","tradesatoshi.com","1.2.787041","transwiser-walle","1.2.161362","transwiser-wallets","1.2.161363","truecoin","1.2.800533","trueusd","1.2.791378","trusty.fund","1.2.878014","tusd","1.2.800535","tuxexchange","1.2.787103","tuxexchange.com","1.2.787102","u-coin","1.2.494585","uckygames-io","1.2.971015","unblock","1.2.878069","uncoinex","1.2.475307","unicode","1.2.800540","uniex","1.2.1007569","uobi-bts-deposit","1.2.852511","uobi-deposit","1.2.852508","upbitwallets","1.2.1020123","usadae","1.2.887944","usadae.com","1.2.887947","usdc","1.2.929449","utxo","1.2.878026","uuex","1.2.1026068","uyucoin-wallet","1.2.812980","vebitcoin","1.2.781940","vela","1.2.1000002","virtacoinworld","1.2.787131","vuniyuoxoeub","1.2.1026794","vvbtc","1.2.959755","walletdunamu","1.2.1020156","wazirx","1.2.742650","wetez","1.2.1026072","winex.pro","1.2.599675","wirex","1.2.599807","www.binance.com","1.2.553014","www.coinex.com","1.2.553121","www.hadax.com","1.2.705161","www.usadae.com","1.2.887949","www.yyex.com","1.2.731038","www.zhaobi.com","1.2.675956","xbrick","1.2.458197","xbrick.btc","1.2.459690","xbrick.cny","1.2.459688","xbrick.usd","1.2.459689","xbtce","1.2.463329","xdaex","1.2.1026062","xdag","1.2.999278","xn-income","1.2.1026077","xxbts001","1.2.815729","xxsend001","1.2.815727","yex.com","1.2.734592","yhex","1.2.1030023","yobit-wall","1.2.800538","yobit-walle","1.2.800536","yobtc","1.2.599688","yun.bts","1.2.161529","yunbi.com","1.2.92101","yuxiao","1.2.1031166","yyex","1.2.731035","yyex.com","1.2.731037","z-201","1.2.1025474","zbbtc","1.2.442315","zbbtc001","1.2.815745","zbbts00","1.2.815716","zbbts01","1.2.815717","zbeoscharge1","1.2.1019012","zbsen","1.2.745722","zbsend00","1.2.815712","zbsend01","1.2.815714","zecoex","1.2.990383","zecoex-btc","1.2.990385","zecoex-bts","1.2.990384","zeniex","1.2.681261","zhaobi","1.2.599681","zhaobi.com","1.2.675955","zhex","1.2.1030026","zilla","1.2.878051","openledger-gex","1.2.1540900","enter","1.2.12300","hi","1.2.707","bts","1.2.383","eos-bounties","1.2.1055529","jobs001","1.2.1147979","noble-group","1.2.997905","my-change","1.2.637403","openledger-upgrade","1.2.1544053","cryptobridge-upgrade","1.2.1570095","aex-bts-deposite-wallet","1.2.1586667","gdex-security","1.2.1568938","escrow-pannf","1.2.1586672","openledger-security","1.2.1547751","openlegder-dex","1.2.1566849","committee-collateral","1.2.1607515","toolate1488","1.2.486728","beos-upgrade","1.2.1600697","cryptobridge-guarantee","1.2.1602050","construction-rates","1.2.184377","committee-update","1.2.1600131","committee-securuti","1.2.1544160","committee-seccurity","1.2.1546307","committee-proposalss","1.2.1559233","committee-account-update","1.2.1589838","committee-security-update","1.2.1592605","committee-delegate","1.2.1621188","binance-witness","1.2.1700190","binanace-bts-0103","1.2.1828105","binanace-bts-1","1.2.1593437","zbbs001","1.2.886790","zbbt001","1.2.886122","huibi-pro","1.2.852941","hubi-pro","1.2.852641","hubio-pro","1.2.1829791","bts-binance-1","1.2.1037039","binance-bts1","1.2.467722","collateral-update","1.2.1623407","bue","1.2.18513","openledger-safety","1.2.1682058","gdex-wallet-security","1.2.1691946","bridge-security","1.2.1691907","criptobridge-security","1.2.1691905","rudex-upgrade","1.2.1682487","openledger-guarantee","1.2.1602048","bitshares-guarantee","1.2.1655608","huilao000","1.2.1640223","china-cash","1.2.673914","cryptobridge-security","1.2.1574325","nextt0","1.2.1588395","putler666","1.2.1589085","bankofamerica1488","1.2.649072","ooops0","1.2.1602141","ikarus2","1.2.671426","toolate6238","1.2.486167","huibao000","1.2.1615149","tkyjpn0109","1.2.1606009","rz120","1.2.1045915","demon2443","1.2.1653463","bit-token","1.2.777552","jk700","1.2.284217","mnstr","1.2.875801","hltbb","1.2.867020","mitu-kine","1.2.622294","tanhayir666","1.2.1588321","porro777","1.2.1601740","poroh777","1.2.1597967","clgc1972","1.2.897040","memet92","1.2.732890","rich4231","1.2.1574048","kbak19","1.2.183440","prvtrl","1.2.1059156","cement-wallet","1.2.739132","hui-lusha","1.2.690318","bot-ho-bot","1.2.809180","drugtvoejmami888","1.2.661618","china-na","1.2.641953","update-wallet","1.2.1621516","acrll-confirm","1.2.1677131","postup5","1.2.567061","wallet-upgrade","1.2.1638214","bit-daozhi","1.2.1605117","openledger-dex.com","1.2.1670833","openledger-secure","1.2.1640825","chen-woo","1.2.1641140","cryptobridge-confirm","1.2.1634946","get-free-btc","1.2.1593095","chey-woochey","1.2.1638351","p0202p","1.2.1638431","jd84053589","1.2.432753","yanlee-che","1.2.1593044","tele-gram","1.2.659614","cryptobridge-withdraw","1.2.1571944","khalil84","1.2.1080837","n8wmajor","1.2.1081311","aj357911","1.2.788421","supercoiner-666","1.2.1298993","stepcoin-wallet","1.2.688768","cryptobridge-update","1.2.1589426","china-capuchina","1.2.630495","zbbttss001","1.2.1588916","security-upgrade","1.2.1640943","mind-alkemist","1.2.381456","norbitz1510","1.2.104355","mrk86","1.2.1211789","hbscc","1.2.270441","pnc1","1.2.93052","arnaud2","1.2.529684","hack-tiras","1.2.985746","derek-molden","1.2.983604","alvinauh86","1.2.635321","argo9north9","1.2.706723","gjf-1","1.2.857833","ydnah2","1.2.1096704","driss19999","1.2.913826","oyxm","1.2.20177","thunder-thor","1.2.1575892","btc-profit","1.2.962295","neffos14","1.2.1602008","neffos1488","1.2.1601731","ardis-29","1.2.1591593","tigriri909","1.2.96396","eror404","1.2.155124","toolate111","1.2.977735","mcavoy5","1.2.452330","laniakea-corp","1.2.491952","openledger.com-wallet","1.2.1680581","clockwork-delegate","1.2.1653886","gdex-delegate","1.2.1697884","cni-hotwallet.update","1.2.1674304","abit.committee-delegate","1.2.1676892","p3732551","1.2.397891","witness-blockchain","1.2.1702664","esrcow-67zgh","1.2.1795658","esrcow-panff","1.2.1795683","escrow-fgj7a","1.2.1795566","yykuxxu830905","1.2.1797839","aex-bitcny-depousit-wallet","1.2.1804412","aex-bts-depocit-wallet","1.2.1799880","aex-bts-depoesit-wallet","1.2.1803769","aex-bts-deposit-wellat","1.2.1799240","aex-bts-deposite-walet","1.2.1795541","aex-bts-depositt-wallet","1.2.1801028","aex-bts-dopesit-wallet","1.2.1795663","aex-bts-withbrawal-wallet","1.2.1806311","banince-bts-0103","1.2.1829441","beinance-bts-1","1.2.1805855","benence-bts-1","1.2.1807831","bianance-bts-0103","1.2.1829606","bianance-bts-1","1.2.1801625","bicance-bts-1","1.2.1810454","bienance-bts-0103","1.2.1829446","bienance-bts-1","1.2.1805585","bihanace-bts-1","1.2.1800498","bihance-bts-1","1.2.1800807","binacene-bts-0103","1.2.1829624","binacne-bts-0103","1.2.1828534","binaece-bts-0103","1.2.1829643","binaence-bts-0103","1.2.1828587","binaence-bts-1","1.2.1795582","binaince-bts-1","1.2.1798345","binanae-bts-1","1.2.1800913","binanance-bts-0103","1.2.1829610","binanance-bts-1","1.2.1806495","binance-bfs-1","1.2.1803857","binancec-bts-1","1.2.1806882","binancne-bts-1","1.2.1801961","binancse-bts-1","1.2.1802221","binancu-bts-1","1.2.1806638","binanece-bts-0103","1.2.1829409","binanece-bts-1","1.2.1795443","binannce-bts-0103","1.2.1828535","binansce-bts-1","1.2.1801322","binansne-bts-1","1.2.1806193","binaonce-bts-1","1.2.1803179","binarnce-bts-1","1.2.1813126","bincance-bts-0103","1.2.1829727","bincance-bts-1","1.2.1805374","bincnce-bts-1","1.2.1803753","bineace-bts-0103","1.2.1829696","bineance-bts-0103","1.2.1827378","bineance-bts-1","1.2.1799262","binenace-bts-0103","1.2.1829429","binence-bts-0103","1.2.1827382","binenece-bts-0103","1.2.1829760","binoance-bts-1","1.2.1804405","bionance-bts-1","1.2.1800421","bivance-bts-1","1.2.1800210","biunance-bts-1","1.2.1806809","bninance-bts-0103","1.2.1829897","cionspot-au","1.2.1830062","gate-bts-io66","1.2.1798716","gdex-waillet","1.2.1800090","gdex-wallat","1.2.1800134","gdex-walleet","1.2.1804815","gdex-wellat","1.2.1804066","haobi-pro","1.2.1800626","hobui-pro","1.2.1795665","houabi-pro","1.2.1802143","houboi-pro","1.2.1831311","houbui-pro","1.2.1795489","houdi-pro","1.2.1795562","houobi-pro","1.2.1806061","huaobi-pro","1.2.1802041","huiobi-pro","1.2.1804659","huoabi-pro","1.2.1800962","huobiu-pro","1.2.1832866","huobui-pro","1.2.1795490","huobi-prc","1.2.1800589","huobi-pvo","1.2.1800730","huobio-pro","1.2.1801492","huobai-pro","1.2.1799738","huobi-qro","1.2.1799636","huoboi-pro","1.2.1799492","huolbi-pro","1.2.1806441","huonbi-pro","1.2.1804187","zbbst00l","1.2.1800460","zbbtsc001","1.2.1804011","zbbtst001","1.2.1801124","zbbbts-001","1.2.1800863","zbbts-001","1.2.826268","zbbit001","1.2.1795542","zbbls001","1.2.1795565","zblbts001","1.2.1799353","juhiy011-01","1.2.1798466","sarkie1337","1.2.1799478","niegoe9ia","1.2.1799397","botgate11","1.2.1799462","costa-rika","1.2.1799635","hujoyy-131hk","1.2.1799561","hitxxxrav25","1.2.1799380","subzyng11","1.2.1799563","coincoin77","1.2.1805513","nl2dinjjx2yjxtauo1f","1.2.1805007","ub67","1.2.1801691","aaa100","1.2.1803227","account222","1.2.1803865","gggqqqrss","1.2.1808001","aex-bts-withdrawal-wallet-security","1.2.1694852","citadel-one","1.2.1701664","ctadel-gold","1.2.1701665","account-free","1.2.1700256","huobi-pro-action","1.2.1822923","huobi-pro-bonus","1.2.1821511","huobi-pro-bridge-binance-bts-1","1.2.1822967","huobi-pro-gift","1.2.1822724","huobi-pro-listing","1.2.1822726","huobi-pro-promo","1.2.1822720","huobi-pro-promotions","1.2.1822976","huobi-pro-rewards","1.2.1822721","huobi-pro-security","1.2.1685151","huobi-promotion-code","1.2.1822728","huobi-bts-withdrawal-security","1.2.1694660","binance-bts-security","1.2.1695170","bitshares-dex.com","1.2.1784547","bitsharesdex.com-update1904454","1.2.1702044","bitsharesdex.com-security","1.2.1654426","bitshares-blockchain","1.2.1704232","bitshares-committee","1.2.1617075","bridge-assets","1.2.1680505","bridge-delegate","1.2.1699981","attention.hacker-attac.update-account","1.2.1679799","cn-vote.update","1.2.1791755","account-whitelist","1.2.1703478","committee-members","1.2.1672586","committee-capital","1.2.1672714","committee-member","1.2.1779077","committee-accaunt","1.2.1668194","committee-cryptobridge","1.2.1613328","committee-proposals-cryptobridge","1.2.1616990","committee-update.wallet","1.2.1680811","coommittee-proposals","1.2.1569126","committee-beos-update","1.2.1612406","committee-operator","1.2.1668188","committee-cnyoperator","1.2.1668177","committee-safe","1.2.1652200","committee-account.wallet","1.2.1680392","committee.data-lock","1.2.1672227","committee-manager","1.2.1799556","security-update","1.2.1621255","assets.committee-account","1.2.1680394","jademont-committee","1.2.1653895","cryptobridge-assist","1.2.1700317","cryptobridge-notification","1.2.1686969","cryptobridge.wallet-security","1.2.1662834","bitcrab-committee","1.2.1661890","bitcrab-security","1.2.1669292","bitcrab-delegate","1.2.1653889","dexbot-cryptobridge","1.2.1679899","deex-security","1.2.1697838","deliondex-witness","1.2.1701987","delegate-security","1.2.1649328","evraz-team","1.2.1701498","evraz-delegate","1.2.1703881","gdex-gateway","1.2.1783425","gdex-account","1.2.1700585","gdex-maintenance","1.2.1742757","gdex-proposals","1.2.1669295","gdex-update","1.2.1636052","gdex-whitelist","1.2.1761562","gdex-wallet-proposes","1.2.1669298","gdex.usdt-witness","1.2.1698882","obits-team","1.2.1701497","openledger.com-account","1.2.1653960","openledger-dc.witness","1.2.1678121","openledger-delegate","1.2.1623104","openledger-wallet.last-update","1.2.1702509","openledger-asset","1.2.1680387","openledger-team","1.2.1652169","openledger-news","1.2.1634974","openledger-notification","1.2.1686966","openledger-operator","1.2.1668859","openledger-proposal","1.2.1685599","openledger-wallet-security","1.2.1657279","openledger-dex.wallet","1.2.1680259","openledger-dex.account","1.2.1671740","openledgerdex-security","1.2.1656375","openledger-update-security","1.2.1621760","openledger-update.wallet","1.2.1684393","openledger-witness","1.2.1672208","openledger.bts-witness","1.2.1757518","openlegder-wallet","1.2.1574699","openledger-settings","1.2.1640823","openledger.io-update","1.2.1659323","openledger-new-option","1.2.1640335","openledgerdex-account","1.2.1668861","openledger-dex-wallet","1.2.1658954","openledger-deposition","1.2.1617054","openledgerdex-wallet","1.2.1657273","openservice1000","1.2.1640832","open-explorer.com","1.2.1672571","wallet-openledger","1.2.1680271","beos.gateway-wallet","1.2.1654890","beos-update","1.2.1613314","beos-market","1.2.1674026","beos-account","1.2.1665247","delegate-witness","1.2.1703158","transactions-blocked.recommendation-update","1.2.1679759","compumatrix-assets","1.2.1680396","compumatrix-witness","1.2.1698652","compumatrix-security","1.2.1675939","compumatrix-1","1.2.1678154","compamatrix1","1.2.1680878","bittrex-security-update","1.2.1695149","rudex-account","1.2.1700275","rudex-delegate","1.2.1699874","rudex-update","1.2.1612897","rudex-witness","1.2.1699897","rudex-farme","1.2.1664661","rudex-karma.contract","1.2.1699055","security-suport","1.2.1641465","sparkdex-wallet","1.2.1703512","wallet.bitshares.org-update","1.2.1782212","wallet.bitshares.org-security","1.2.1677407","wallet.bitshares.org-compumatrix","1.2.1675264","wallet-update","1.2.1684797","wallet-security","1.2.1656385","wallet.maintenance-security","1.2.1655293","libra-proposals","1.2.1663826","update-security","1.2.1621419","bitshares.org-wallet","1.2.1671745","bitshares.org-update","1.2.1653973","bitsharesmanagement-group","1.2.1804143","magicwallet-witness","1.2.1668200","delegate.freedom-witness","1.2.1666141","account-wallet","1.2.1685496","security-delegate","1.2.1669437","support-update","1.2.1652121","bitspark-committee","1.2.1653944","xbtsx-account","1.2.1700443","blockchain.com-wallet","1.2.1677087","sparkdex-delegate","1.2.1697883","account-update","1.2.1685113","witness-update","1.2.1785414","proposals-update","1.2.1620632","update-account","1.2.1679807","mekong6.protocol-release","1.2.1809989","xbtsio-deposit","1.2.1810493","bitcoin.com-work","1.2.1682875","condor1","1.2.1692389","condor2","1.2.1692603","ugv-1","1.2.1672113","selo-67","1.2.1617731","kg-033","1.2.1601638","u-67","1.2.1785627","dusja-1","1.2.1791654","honda1","1.2.1801164","galogenco2","1.2.1702987","dizel1","1.2.1701576","lusi1","1.2.1684459","lusi51","1.2.1684396","bts552","1.2.1683740","ag475","1.2.1679233","game-ss","1.2.1702766","bitforint-market","1.2.1689684","tank-34","1.2.1601663","dubl-1","1.2.1640338","dubl-2","1.2.1641069","dubl-3","1.2.1641083","cuda-1","1.2.1651011","gru1","1.2.1689985","f0123f","1.2.1640161","shaie-uh","1.2.1649099","nu35ko","1.2.1658517","loijuufao3","1.2.1668748","sfbf1uhf1i381191kal","1.2.1653720","fsjkfu1hf818181","1.2.1673663","gliofdr229","1.2.1671362","alfa-a","1.2.1786096","saks25","1.2.1799731","pocits-team","1.2.1702279","committee.blacklist-manager","1.2.1799121","bitcoin-wizards","1.2.457302","leon38marokko","1.2.1782246","orthodox-friar","1.2.645010","galvanzio845","1.2.880009","lus","1.2.142945","wit","1.2.5509","duolba26","1.2.446891","mstrader77","1.2.645984","dylan-1978","1.2.1600004","st4585k","1.2.780140","ippua1","1.2.392599","nicaracuaga-1","1.2.1653236","e-lena","1.2.1063803","dujuan0204","1.2.408553","liaofuxing-liaowenxin","1.2.1146367","blacknightdream410","1.2.1589532","pavelzcz-1","1.2.792058","grand-cryptos","1.2.787832","vve732","1.2.803373","loto1","1.2.480686","phienho226loj","1.2.1088744","mrbrown1","1.2.109836","doyle","1.2.20952","ifeomadee1","1.2.1654233","barmaley6","1.2.1639497","danfreeus-702","1.2.494368","inlusoble88","1.2.1582517","tne6mujflmcoc","1.2.811935","mister-hankeh","1.2.593183","ed-tred","1.2.36103","citizen1983","1.2.1096445","ghost-llk","1.2.1597865","vezunchik-account","1.2.462216","razdacha-bts","1.2.1646336","eliza85","1.2.1796679","audio0audio","1.2.1796678","audius000","1.2.1806535","alice0alice","1.2.1812146","mark302lap","1.2.1812148","teddy605bear","1.2.1813847","orangecoffee4","1.2.1812149","oliver1111","1.2.1817056","vasiliy666","1.2.1822974","solana","1.2.1813982","braz1lian","1.2.1813983","okx-btc","1.2.1810711","okx-bts","1.2.1810601","okx-deposit","1.2.1810602","okx-wallet","1.2.1810603","blockchain-prize","1.2.1827123","bin-node-rst1","1.2.1825454","tat-trade999","1.2.1827646","git0","1.2.1828014","bysuru2898","1.2.1827745","take1photo","1.2.1828298","costa-accidentale","1.2.1827119","bitshares-pro","1.2.1827380","binance.settlement","1.2.1830014","coinex-bst-11","1.2.1830064","qate-io-bts66","1.2.1829998","witnesses-security","1.2.1831730","l0test","1.2.1830342","kava1e7hc79eah0evz3dl5khnyh56w4y9nv3cmepvff","1.2.1828553","1.2.1822947","iceteam-main","1.2.1823094","iceteam-main1","1.2.1823095","binance-bts-0301","1.2.1827377","binance-bts-1-sdf","1.2.1823096","binance-bts-1-sdfs","1.2.1823097","binance-bts-1-promo43","1.2.1823098","binance-bts-1-promo3434","1.2.1823099","asdasdasdasdasd","1.2.1823100","asdsadasd","1.2.1823101","asdasdasdasd","1.2.1823102","binance-bts-1-hack","1.2.1823103","fdssdffds","1.2.1823104","binance-bts-1-starter","1.2.1823105","binance-bts-1-promolootusd","1.2.1823106","binance-bts-1-77","1.2.1823107","binance-bts-1-starting","1.2.1823108","binance-bts-1-exchange","1.2.1823109","binance-bts-1-trading","1.2.1823110","binance-bts-1-launch","1.2.1823111","binance-bts-1-voting","1.2.1823112","huobi-bts-1-loot","1.2.1823113","lootusd","1.2.1823114","promousd","1.2.1823115","mexc-bts-1","1.2.1823116","binance-bts-1-loot","1.2.1823117","mexc-bts-1-promo","1.2.1823118","mexc-bts-1-promoloot","1.2.1823119","mxccompromo","1.2.1823121","binance-bts-1-earnings","1.2.1823122","binance-bts-1-cold","1.2.1823124","binance-bts-1-burse","1.2.1823128","binance-bts-1-web3","1.2.1823132","binance-bts-1-025gift","1.2.1823137","binance-bts-1-futures","1.2.1823138","mexccomloot","1.2.1823139","asdads","1.2.1823140","mxccom-cold","1.2.1823143","huobi-pro-cold","1.2.1823145","binance-bts-1-network","1.2.1823150","great50newyork","1.2.1823151","binance-bts-1-payback","1.2.1823162","binance-bts-1-promo2022","1.2.1823167","binance-bts-1-payout","1.2.1823188","binance-bts-1-bag","1.2.1823206","binance-bts-1-refund","1.2.1823207","binance-bts-1-promo-offer","1.2.1823221","binance-bts-1-locked","1.2.1823222","binance-bts-1-dfsd","1.2.1823253","binance-bts-1-minecoldwallet","1.2.1823254","binance-bts-1-keep","1.2.1823266","binance-bts-1-frozen","1.2.1823267","binance-bts-1-an","1.2.1823268","binance-bts-1-promokde","1.2.1823271","binance-bts-1-china","1.2.1823277","binance-bts-1-am","1.2.1823278","binance-bts-1-abreise","1.2.1823285","binance-bts-1-lootusd","1.2.1823291","binance-bts-1-hold","1.2.1823293","binance-bts-1-tuta","1.2.1823696","testnet1010","1.2.1823715","support-team-chain","1.2.1823575","bit-shares-1","1.2.1823586","bybit-wallet-1","1.2.1702891","aw023swiecv432","1.2.1823622","geniosdf-27","1.2.1823249","avatar-1-1","1.2.1823837","support-team1","1.2.1823873","binance-bts-1-levelup","1.2.1823858","binance-bts-1-weezy","1.2.1823856","binance-bts-1-trytrade","1.2.1823853","binance-bts-1-cooperative","1.2.1823825","binance-bts-1-ara","1.2.1823822","binance-bts-1-giftabuse","1.2.1823821","binance-bts-1-abuse77","1.2.1823815","binance-bts-1-promos","1.2.1823813","binance-bts-1-address","1.2.1823811","binance-bts-1-bonuc","1.2.1823806","binance-bts-1-semokd","1.2.1823798","binance-bts-1-litecoin","1.2.1823797","binance-bts-1-usdt","1.2.1823796","binance-bts-1-ethereum","1.2.1823794","binance-bts-1-cr7","1.2.1823793","binance-bts-1-polygon","1.2.1823792","binance-bts-1-bnbnetwork","1.2.1823791","binance-bts-1-wallets","1.2.1823777","binance-bts-1-promo-fredigo","1.2.1823776","binance-bts-1-bitsharesblockchain","1.2.1823774","binance-bts-1-labian","1.2.1823773","binance-bts-1-adver","1.2.1823769","binance-bts-1-us01hsy","1.2.1823767","binance-bts-1-funo","1.2.1823766","binance-bts-1-wakes","1.2.1823765","binance-bts-1-memobit","1.2.1823764","binance-bts-1-sleep","1.2.1823752","binance-bts-1-bitcoin","1.2.1823714","binance-bts-1-promo29","1.2.1823701","binance-bts-1-close","1.2.1823692","mxccom-ledger","1.2.1823691","gate-io-bts66-ledger","1.2.1823690","huobi-pro-ledger","1.2.1823689","binance-bts-1-safepal","1.2.1823688","binance-bts-1-ledger","1.2.1823683","binance-bts-1-lupen","1.2.1823650","binance-bts-1-kuybvr","1.2.1823625","binance-bts-1-softa","1.2.1823624","binance-bts-1-soft-spam","1.2.1823615","binance-bts-1-soft","1.2.1823613","huobi-pro-adrss","1.2.1823608","binance-bts-1-adv","1.2.1823606","binance-bts-1-areslyugosrgdsg","1.2.1823600","binance-bts-1-transfer","1.2.1823599","binance-bts-1-promolinkolet","1.2.1823598","binance-bts-1-zalupakonya","1.2.1823597","binance-bts-1-korolopop","1.2.1823595","binance-bts-1-withdrawal","1.2.1823588","binance-bts-1-cwt","1.2.1823587","binance-bts-1-seed","1.2.1823581","mxccom-future","1.2.1823580","gate-io-bts66-future","1.2.1823579","huobi-pro-future","1.2.1823577","binance-bts-1-future","1.2.1823570","huobi-pro-bonus-code","1.2.1823569","huobi-pro-promotion-code","1.2.1823550","binance-bts-1-unlocked","1.2.1823507","binance-bts-1-20","1.2.1823504","mxccom-free25","1.2.1823500","mxccom-trade","1.2.1823499","mxccom-free","1.2.1823498","gate-io-bts66-free","1.2.1823497","gate-io-bts66-trade","1.2.1823496","huobi-pro-free","1.2.1823495","huobi-pro-trade","1.2.1823494","mxccom-crypto","1.2.1823493","gate-io-bts66-crypto","1.2.1823490","huobi-pro-crypto","1.2.1823485","binance-bts-1-025","1.2.1823484","binance-bts-1-free","1.2.1823483","binance-bts-1-trade","1.2.1823482","binance-bts-1-crypto","1.2.1823478","binance-bts-1-free25","1.2.1823476","mxccom-vcrypto","1.2.1823475","gate-io-bts66-vcrypto","1.2.1823474","binance-bts-1-vcrypto","1.2.1823473","huobi-pro-vcrypto","1.2.1823470","binance-bts-1-present","1.2.1823469","binance-bts-1-exclusives","1.2.1823468","binance-bts-1-error","1.2.1823452","binance-bts-1-erapy","1.2.1823451","huobi-pro-promoution","1.2.1823450","huobi-pro-network","1.2.1823448","binance-bts-1-fors","1.2.1823446","binance-bts-1-15","1.2.1823403","huobi-pro-withdraw","1.2.1823396","binance-bts-1-crypt","1.2.1823395","huobi-pro-bridge","1.2.1823393","binance-bts-1-upgrade","1.2.1823387","binance-bts-1-2021","1.2.1823386","binance-bts-1-transaction2020","1.2.1823384","binance-bts-1-earn","1.2.1823383","huobi-pro-transaction","1.2.1823382","binance-bts-1-io","1.2.1823381","binance-bts-1-net","1.2.1823380","binance-bts-1-update","1.2.1823379","binance-bts-1-transaction","1.2.1823378","binance-bts-1-coinburn","1.2.1823377","binance-bts-1-promofdsiyfsgdfgsdf","1.2.1823376","binance-bts-1-hfsdflsidufsdfh","1.2.1823375","binance-bts-1-availableoff","1.2.1823372","binance-bts-1-spot","1.2.1823371","binance-bts-1-sad","1.2.1823370","binance-bts-1-dev","1.2.1823365","binance-bts-1-referral","1.2.1823364","binance-bts-1-commission","1.2.1823363","binance-bts-1-traking","1.2.1823362","binance-bts-1-change","1.2.1823350","binance-bts-1-mywallet","1.2.1823330","binance-bts-1-lgbt","1.2.1823321","binance-bts-1-ggfsdf","1.2.1823317","binance-bts-1-own","1.2.1823316","binance-bts-1-fast","1.2.1823559","binance-bts-1-france","1.2.1823543","binance-bts-1-usa","1.2.1823412","binance-bts-1-exclusive","1.2.1823790","binance-bts-1-support","1.2.1823787","binance-bts-1-administrator","1.2.1823784","binance-bts-1-user","1.2.1823783","binance-bts-1-adm","1.2.1823782","binance-bts-1-admins","1.2.1823781","binance-bts-1-admin","1.2.1823779","binance-bts-1-testnetwork","1.2.1823697","binance-bts-1-promoac","1.2.1823772","huobi-pro-node-reward","1.2.1823743","huobi-pro-1-percent","1.2.1823742","bhuobi-pro-1-percent","1.2.1823741","binance-bts-1-percent","1.2.1823740","binance-bts-1-testnet-reward","1.2.1823724","huobi-pro-refill","1.2.1823723","binance-bts-1-refill","1.2.1823722","binance-bts-1-gain","1.2.1823721","huobi-pro-gain","1.2.1823720","binance-bts-1-replenishment","1.2.1823719","huobi-pro-return","1.2.1823717","huobi-pro-rewarding","1.2.1823800","binance-bts-1-tesnetnetwork","1.2.1823795","binance-bts-1-supports","1.2.1823601","binance-bts-reward","1.2.1823582","binance-bts-1-blockchainpromo","1.2.1823710","kucoin-bts-1","1.2.1823707","kukoin-bts-1","1.2.1823663","binance-cold-wallet","1.2.1823662","binance-smart-chain","1.2.1823661","binance-smart-chain-1","1.2.1823660","binance-network-1","1.2.1823659","binance-bep20","1.2.1823658","binance-trc20","1.2.1823657","binance-usdt-1","1.2.1823656","binance-bep20-1","1.2.1823655","binance-sol-1","1.2.1823654","binance-erc20-1","1.2.1823652","bybit-bts-1","1.2.1823651","binance-trc20-1","1.2.1823738","bybit-bts-1bybit-bts-1","1.2.1823737","bybit-1","1.2.1823736","bybit-bts","1.2.1823735","byblt-bts-1","1.2.1823734","bybt-bts-1","1.2.1823733","bybot-bts-1","1.2.1823732","ybit-bts-1","1.2.1823731","bbybit-bts-1","1.2.1823730","bybit-bts-11","1.2.1823729","bybit-bts-2","1.2.1823728","bybitbts1","1.2.1823727","bybitbts-1","1.2.1823726","bybit-bts1","1.2.1823693","bnb1fnd0k5l4p3ck2j9x9dp36chk059w977pszdgdz","1.2.1822891","bnb1humvl4yawfg9rgrclgkczey9x3pty6nnzgza8j","1.2.1822890","bnb1zha30kallr49kvxa897p46qhgz6zffufpsg53p","1.2.1822889","bnb1vheud6fefdfhds3u5qwh6dvt8rdkw0ktxafrr2","1.2.1822888","bnb177kuwn6n9fv83txq04y2tkcsp97s4yclz9k7dh","1.2.1822887","iaa1pvxmln9mzauwfpkcuz4kfus4rrrhrs9vv9tmyd","1.2.1822886","sp34ebmkmrr6sxx65grkj1fhexv7aghj2d8asq5m3","1.2.1822885","band1zr22tlzwyjc5mvgmfuw8ykgncg00y27x8da89c","1.2.1822884","ndhejkxy6yk7jgrfqt2l7p3o5vmugr4bwkqnvxxq","1.2.1822883","ndbrufe7r5oanede43vctmuvrhti6xz7tqfvntmu","1.2.1822882","gc5lf63grvit5zxxcxlpi3rx2yxkjqfzvbsao6aueln3yimswpd6z6fh","1.2.1822881","rn4guasx28wuyyi3mjekvg6ektqvwfwzjq","1.2.1822880","rrmgo6nw1w7ghjc5qepcpqnq8ne74zs1p","1.2.1822879","rwpth9dda52xkm9ntkp2qrjucgv5d1mqvp","1.2.1822878","rdae53vfmvftpb4ogpwgwvzkqxfht6jpxr","1.2.1822877","bnb17eak3g00hn5mvvlz6f0dv09p83z7cu5ym7cesl","1.2.1822876","qb4yfvseqzgm","1.2.1822875","bitgetxpr","1.2.1822305","mexceosceosc","1.2.1822304","wallet2lbank","1.2.1822303","bnb165q9dz39mqh789zuuuqwkv22plut6f4nzy9jc9","1.2.1821538","eosio.evm","1.2.1821382","waxupbitcold","1.2.1821274","nqashki3pufp","1.2.1821273","nexoeoschain","1.2.1821144","terra18vnrzlzm2c4xfsx382pj2xndqtt00rvhu24sqe","1.2.1821143","bitruewallet","1.2.1821142","bkexhiveusers","1.2.1821141","terra1frh79vmtur5fmrghz6gfjvfhpa3u2c0uemv4af","1.2.1820785","eosbndeposit","1.2.1820747","hive","1.2.1820739","wallthoteos5","1.2.1820738","wallthoteos4","1.2.1820737","wallthoteos3","1.2.1820736","wallthoteos2","1.2.1820735","wallthoteos1","1.2.1820734","wallethoteos","1.2.1820733","waxupbitsnd5","1.2.1820732","waxupbitsnd4","1.2.1820731","waxupbitsnd3","1.2.1820730","waxupbitsnd2","1.2.1820729","waxupbitsnd1","1.2.1820728","waxupbithot5","1.2.1820727","waxupbithot4","1.2.1820726","waxupbithot3","1.2.1820725","waxupbithot2","1.2.1820724","waxupbithot1","1.2.1820723","upbitswaxhot","1.2.1820722","eosupbitsnd5","1.2.1820721","eosupbitsnd4","1.2.1820720","eosupbitsnd3","1.2.1820719","eosupbitsnd2","1.2.1820718","eosupbitsnd1","1.2.1820717","eosupbithot5","1.2.1820716","eosupbithot4","1.2.1820715","eosupbithot3","1.2.1820714","eosupbithot2","1.2.1820713","eosupbithot1","1.2.1820712","eosupbitshot","1.2.1820711","fixedfloat","1.2.1820710","binancesweep","1.2.1820088","eqcxgggjkpl3matxg7t36hc78wlahm7j47ifxswdfaaxumnw","1.2.1820087","eqbx63radgshn34eafmv73cut7z15luzd1hnvva68sel7sxi","1.2.1820086","eqcfr3jo0dxpibf82mvgfc3zcdrksatinhenpfmq2fqzyqdb","1.2.1820085","eqbvxzbt4lcta3s7gxrg4hnl5fnsdkj4oneznp09aqxkwj1f","1.2.1820084","eqbfan7lfauygxznw5wc7gbgkex2yhuj5ka95j1jjwxxf4a8","1.2.1819704","telos","1.2.1819703","tlos","1.2.1819702","waxp","1.2.1819029","waxpwhitebit","1.2.1818883","xtwaxpwallet","1.2.1818882","binance4tlos","1.2.1818881","tipcc1111111","1.2.1818880","cold3binance","1.2.1818879","biturewallet","1.2.1818878","whitebitcom1","1.2.1817552","bybitdotxpr","1.2.1815623","kucoinriseup","1.2.1815622","kucoinrise11","1.2.1815607","rootwallet","1.2.1815606","rootwallet21","1.2.1815605","rootwallet22","1.2.1815479","coinextelos1","1.2.1815478","coinexvtelos","1.2.1815409","waxofbingray","1.2.1815408","ztseosofgray","1.2.1815407","leap","1.2.1815406","antelopeio","1.2.1815405","antelope","1.2.1814935","stakesocial1","1.2.1814934","eosforzoomex","1.2.1814933","korbitwaxact","1.2.1814932","korbitwaxdep","1.2.1814931","mexcloanloan","1.2.1814930","ccwithdrawax","1.2.1814929","ccdepositwax","1.2.1814928","waxwinluck55","1.2.1814927","bnb1vtmqhy3kddlj9wdtj90eh9832r05ljwg3j0uvr","1.2.1814926","bnb1v9zfqel0afjx0fuatmgrrpfzfl6yj7fk35selm","1.2.1814925","bnb1l75krvuxaqrrarnq3k0fn2509flcywhde0av6e","1.2.1814924","bnb1d42htaphcujdvr6f70thvhdftvve7nv5ufv540","1.2.1814923","bnb194lh3gkkn89emruxzytrksvsqs9m47cduyuxwn","1.2.1814922","bnb1veeev3tvf9u64jfpq7re9kctxdtery0mwk2zle","1.2.1814921","bnb1xk05h8xzy4f4t2scg232gkj99m3u24q70cudkv","1.2.1814920","bnb1hvsm38rrt774el7hnm5uajleytt8yysusmtpg0","1.2.1814919","bnb12awmrrhdlxgtx3y3mup6anm7axhm4wxhacemxk","1.2.1814918","bnb1smnh9sv3wwg5jfautcyqpk5xlarq0y2wjugjfr","1.2.1814917","bnb1a3thqymqqvuxpgqw5rrgecth7ydxzast0lvjyf","1.2.1814916","bnb1mlaeemt7t8qjpvp2sdq0v9ad53l4kjxern9gll","1.2.1814915","bnb19tfszf2rwncrhrakuykjdhj66z4vc3vxzcfhdm","1.2.1814914","bnb1lqfu2n6xg9n6ggqjjdjpp4r866vp99qxac87n8","1.2.1813653","inj1ka3zj576xa6qdef3fqpsq5kyr2mn4xswvus2wn","1.2.1813652","inj1u2rajhqtptzvu23leheta9yg99k3hazf4waf43","1.2.1813651","fetch1dyvgk9qza92uwkwdxznp5kq7pnej6xv6awuyqg","1.2.1813650","fetch1jzz0qzvcg3raeltrk52e79m7a8uran5jw38qr9","1.2.1813649","kava1nmksrlyljj7sapmq7r0lqx4vhpqfvfe2e3vstk","1.2.1813582","eosdididada3","1.2.1813581","eosdididada2","1.2.1813580","eosdididada1","1.2.1813579","waxdididada3","1.2.1813578","waxdididada2","1.2.1813577","waxdididada1","1.2.1813540","bybitwaxonly","1.2.1813120","waxponbitget","1.2.1813098","coinexhot111","1.2.1813097","coinexdoteos","1.2.1812781","binanceuswdr","1.2.1812780","binanceusdep","1.2.1812673","bnb1a00prqt6ufh3kt3lmswhynp02zujmzqedxuwtu","1.2.1812194","eostexpriwh1","1.2.1812192","hotbitioabb2","1.2.1812191","biboxforabbc","1.2.1812190","bnb1scs3pefvvzyz2vm4h3m9zyda4hsya9jxkext93","1.2.1811965","bitgetdetlos","1.2.1811950","abbclockacnt","1.2.1811949","abbc2bitmart","1.2.1811948","aloneinclude","1.2.1811947","bitgetdeabbc","1.2.1811674","ccomtranswax","1.2.1811673","ccomtranseos","1.2.1811672","cosmos1kvyevlmp0gfd7f9qdnkq98tc59p2mg2smppwn7","1.2.1811610","bitmart4tlos","1.2.1811322","band1skhwhpjyjphlnz7dsksexrqcq6lek6nm296j8j","1.2.1811321","band1dkl8wga94803qygwdspwa5kxdfyjpt8zr0uzh9","1.2.1811320","band1qrswrktalw79gwvr99sa9c9qyt9ltn8pq6y8au","1.2.1811319","band1rlvlqcwv6f68hm39cmg3v83zcczqpf4z4xkshq","1.2.1811318","band1hu308kyg2h829ql2sy47r2gl3m6zld3csv5y73","1.2.1811152","eoswinluck55","1.2.1811139","cosmos1l0znsvddllw9knha3yx2svnlxny676d8ns7uys","1.2.1811138","cosmos166aw4ect40p7hdh4tefqlj6cgv6llwjt65erwr","1.2.1811137","cosmos1ruqrgv8wh4fqm24uyeuvmg8jwv737qv9vxl8q9","1.2.1811136","cosmos1gy6ttxh802tt09097mjy2as7p6tvy9vjvkwc90","1.2.1811135","cosmos1jjxxxk24u6ju5h02p4g3g78l0hmgcnhq90f7xx","1.2.1811134","cosmos12qgdfju89e6zrecnqa2ws5mwlfpw8rcg68t6vk","1.2.1811133","cosmos1dgjkur9p23qrt8ayep4yaefq9e7nu4meaaslng","1.2.1811132","cosmos1scwcfre6h4c7epkyrdfegpeaz8umqldl50gn8w","1.2.1811131","cosmos1erzjr93gcqgvcs7azqaglrjqy5ntzn3da5p340","1.2.1811130","cosmos16qttcezac3hsr4ecdn0p40883246wmgkkwzx46","1.2.1811129","cosmos1qzekrh5tmcjyugrlp25c3y6zuhszh6v28tn6hk","1.2.1811128","cosmos144sh8vyv5nqfylmg4mlydnpe3l4w780jsrmf4k","1.2.1811127","okextokeneos","1.2.1811124","cosmos1nfmnjuy3yckt2ug67l4r42dy2r4qpce6mxlpel","1.2.1811123","cosmos1vkz5a2427p9z30h7wkj6m5p2u56zpjyvyv0ezk","1.2.1811122","cosmos1dng0wewxmsus8xm8zj8jaeugz074xukgehl9dd","1.2.1811121","cosmos13e00llnynj50p5xe7yecttzm7nf87dmy5hhjtz","1.2.1811120","cosmos1vl8xm7x04cedgh639hc9ucvf6zc754fyfewhef","1.2.1811072","waxpatokcoin","1.2.1811056","okxtothemars","1.2.1810522","hoowaxwallet","1.2.1810487","okcointomars","1.2.1810300","ascendex1111","1.2.1810120","nahm4sxxsoyddxxf62z6fyy7higmqdb3pnvxsuq","1.2.1810119","ncafyuo7pw3f45psh6qrbm6guxyuvk3h3nstkbi","1.2.1810118","abbcmexcmexc","1.2.1810117","terra1lgdpa7xl7n5k9wg65chldpkc06j2p5kg2cgf8w","1.2.1810116","terra12gmawj54szkfwx0hhx4dhftpz4mc4z0yg9f3sz","1.2.1809738","okbtoneptune","1.2.1809646","mexcmexctlos","1.2.1809631","band1hze8xe4sfu2drek9ehltq6fru3e4hstc8t73n5","1.2.1809498","coinex2zmoon","1.2.1809308","xtabbc1231xt","1.2.1809301","swap2020","1.2.1809278","ariginalhub1","1.2.1809257","waxonm33game","1.2.1809135","bkexwaxuser1","1.2.1809095","bullishfunds","1.2.1809085","waxpwaxpmexc","1.2.1808964","citystatedep","1.2.1808963","hotbitiowaxp","1.2.1808774","waxkingunion","1.2.1808773","waxfordfpool","1.2.1808741","lbkex","1.2.1808711","bfxtelos1111","1.2.1808345","ebonioeosusr","1.2.1808267","bitmarttelos","1.2.1808057","indodaxabbc1","1.2.1808056","coinsuperabc","1.2.1808055","gateioiotlos","1.2.1808054","cryptocomwax","1.2.1807759","liquidwallet","1.2.1807645","bcj31xnngotp","1.2.1807603","coinspotwaxp","1.2.1807555","bitmart2moon","1.2.1807300","bridge365","1.2.1807184","exchangeuser","1.2.1807178","maineosonbin","1.2.1807177","maineosofbin","1.2.1807109","terra10cn33pugeet6sgmdmswqckgka27gtt4n9l48vg","1.2.1807108","terra10n53teveah646t5npqs9hx7fv0jg6tvantnmam","1.2.1807107","terra17f0cp50wnzdgzfuqrq8qganqqkmhe2kvguw759","1.2.1807106","terra1e8zul28wl8nzj9dvnw82lww7kkw3ypt04xgf2p","1.2.1807105","terra1zqjd9p6nzy4g8alt6nsttwl6jxnqygdra56l8g","1.2.1807104","terra17dtydvn6wtvzvmv8mwyzfrvhakddduxjhym2a5","1.2.1807103","terra1enaz9s84hvspf0jquf9q922tq6y3fya5grf7lw","1.2.1806835","coinexofficial","1.2.1806802","zteosdeposit","1.2.1806800","usbinance","1.2.1806799","waxofbinance","1.2.1806798","useosofbinan","1.2.1806797","useosonbinan","1.2.1806730","bnb1wzcesxwt3388p5fgkpc263dpxnchkce387detg","1.2.1806729","bnb1udq3s2yn2q7mq5mlpkrj98uj58s7dujmjrj7nw","1.2.1806728","bnb1wx453pvavvnu6hfjafejjdyjez3frap497yd9n","1.2.1806727","bnb1fpqv3e4q2z49sn8w2c2usdqah9n99s8y0h6j3l","1.2.1806726","bnb1e4gahzl946dx4d7g62syny5vx4fvzg445u2c3k","1.2.1806725","bnb18ethdsp2ywg42dhx2tmrpg78xrlj78sydrzfr6","1.2.1806724","bnb1q4zmsq69rnq2jt3p2d9rady0earec7cfvyzjk5","1.2.1806723","bnb153qsnglpzc3zdfcu6ghnqeyx9vzuaf258lu5l9","1.2.1806722","bnb1n3ynaspzke9ql25gjekftsnscfh8qwvkupjrvy","1.2.1806721","bnb1f5r5amzg7a0fmfwmj6ukjvyksff0d837alyftd","1.2.1806720","bnb13yr97krpvspnk8qxmpq3csfsnzjpzavx0pf55c","1.2.1806719","bnb1qssvneg4lg4e7f2xvkdhrezm0tatc6lxv5ny9t","1.2.1806718","bnb14kktnh6n20efy4kfh0u5xy38rw53j8q5gkzuzv","1.2.1806717","bnb1qp7scyk3v4x07k2vkprhzmsyj0829j46ltp5vu","1.2.1806716","bnb13eqrynp3rls3m6dsw58d3y5l7z6zfdw5zj3sdy","1.2.1806715","bnb1fm4gqjxkrdfk8f23xjv6yfx3k7vhrdck8qp6a6","1.2.1806670","splintrlands","1.2.1806669","splinterland","1.2.1806482","zbwaxdeposit","1.2.1806107","ascendexaddr","1.2.1806054","protonccwrap","1.2.1806051","coinbasepro2","1.2.1806050","coinbasepro1","1.2.1806016","mn5kj5aiznux","1.2.1806004","gateioiowaxp","1.2.1805988","kucoindotxpr","1.2.1805985","waxonbinance","1.2.1805931","etheraccount","1.2.1805930","aexuoswallet","1.2.1805929","hitbtcabbcin","1.2.1805928","buyaladdin11","1.2.1805424","hotbit1","1.2.1805422","gopaxwallet","1.2.1805421","bithumbpro","1.2.1805419","kucoindotuos","1.2.1805377","coinbaseprme","1.2.1805192","nbs-beidge","1.2.1805038","xaverwaxdepo","1.2.1805037","wbfdeposit11","1.2.1805036","hiveenginewx","1.2.1805015","aaxhotwallet","1.2.1805014","yobit-wollet","1.2.1804970","zerohashseed","1.2.1804969","exchangewall","1.2.1804968","hotbitioeos2","1.2.1804967","gatedeposit","1.2.1804862","probiteoseos","1.2.1804721","coinex-deposito","1.2.1804720","cointiger-deposito-bts01","1.2.1804719","aex-bitcny-deposito-wallet","1.2.1804718","licai-deposito","1.2.1804717","aex-bts-deposito-wallet","1.2.1804715","probitdeposit","1.2.1804714","coinpaytelos","1.2.1804054","dpdigifinex","1.2.1802812","gxc-relay","1.2.1802514","mixin-pts","1.2.1802512","coinone-pts","1.2.1802511","cointiger-deposit-pts01","1.2.1802510","rudex-nps","1.2.1802509","nps-bridge","1.2.1802508","newbs-nps-crosschain-gateway","1.2.1802506","bitkan-pts-321","1.2.1802505","aex-pts-deposit-wallet","1.2.1802504","gate-io-pts66","1.2.1802503","propit-bts","1.2.1802502","yopit-wallet","1.2.1802501","aex-pitcny-deposit-wallet","1.2.1802500","x1pit","1.2.1802499","uppit-user","1.2.1802498","pikicoinbts1","1.2.1802497","pitcoinindonesia","1.2.1802496","pitkan-bts-321","1.2.1802495","pittrex-deposit","1.2.1802494","nbn10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1802493","probtc-bts","1.2.1802492","yobtc-wallet","1.2.1802491","x1btc","1.2.1802490","upbtc-user","1.2.1802489","btcoinindonesia","1.2.1802488","btckan-bts-321","1.2.1802487","btcrex-deposit","1.2.1802486","btctrex-deposit","1.2.1802450","nbn136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1802163","hitbit-exchange","1.2.1802075","cryptex24","1.2.1802017","gateiohot","1.2.1801714","hot.dunamu","1.2.1801519","alien.worlds","1.2.1801518","other.worlds","1.2.1801225","mixin-hts","1.2.1801224","coinone-hts","1.2.1801223","cointiger-deposit-hts01","1.2.1801222","probit-hts","1.2.1801221","prohit-bts","1.2.1801220","yohit-wallet","1.2.1801219","aex-hitcny-deposit-wallet","1.2.1801218","x1hit","1.2.1801217","uphit-user","1.2.1801216","rudex-nhs","1.2.1801214","nbs-hridge","1.2.1801213","nhs-bridge","1.2.1801212","newbs-nhs-crosschain-gateway","1.2.1801211","hikicoinbts1","1.2.1801210","hitcoinindonesia","1.2.1801209","bitkan-hts-321","1.2.1801208","aex-hts-deposit-wallet","1.2.1801207","hithtc-exchange","1.2.1801206","hittrex-deposit","1.2.1801205","zhhts001","1.2.1801204","zbhts001","1.2.1801203","zhbts001","1.2.1801202","gate-io-hts66","1.2.1801201","huohi-pro","1.2.1801196","newbs-nbs-crosscbain-gateway","1.2.1801195","bitbtc-exchange","1.2.1801193","hotbitio1","1.2.1800769","altillydep","1.2.1800768","altillydepos","1.2.1800767","capybaraexchange","1.2.1800766","coinpayments.net","1.2.1800765","daybitwallet","1.2.1800764","indodaxofficial","1.2.1800763","bitkubiost","1.2.1800762","indodaxiost","1.2.1800761","hyperpayhot","1.2.1800760","cobocustody","1.2.1800759","coboio","1.2.1800758","bitzbitz","1.2.1800757","kucoinkucoin","1.2.1800756","bithumbxprr1","1.2.1800755","hitbtcxprins","1.2.1800754","cttelosdespo","1.2.1800753","probitandtls","1.2.1800752","waxlocallyio","1.2.1800751","freewalletdp","1.2.1800750","addztdeposit","1.2.1800749","bitcounindonesia","1.2.1800748","bigonewaxnet","1.2.1800747","mxccon","1.2.1800746","udex","1.2.1800745","rude","1.2.1800744","rrudex","1.2.1800742","rudexx","1.2.1800741","itcoinindonesia","1.2.1800740","bbitcoinindonesia","1.2.1800739","bitcoinindonesiaa","1.2.1800738","coinonebts","1.2.1800737","probitbts","1.2.1800736","yobitwallet","1.2.1800735","aexbitcnydepositwallet","1.2.1800734","newbsnbscrosschaingateway","1.2.1800733","licaideposit","1.2.1800732","aexbtsdepositwallet","1.2.1800731","eosaqreosaqr","1.2.1800475","counex-deposit","1.2.1800474","counone-bts","1.2.1800473","countiger-deposit-bts01","1.2.1800472","livecoun-net","1.2.1800471","bikicounbts1","1.2.1800470","counegg-main","1.2.1800447","huopbi-pro","1.2.1800348","bnb-10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800347","nb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800346","bbnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800345","bmb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1800344","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glco","1.2.1800343","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc","1.2.1800342","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc00","1.2.1800340","bnb-136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800339","nb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800338","bmb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800337","bbnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1800336","bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf233","1.2.1800154","nbsdex.usdt","1.2.1800153","nbsdex.eos","1.2.1800152","nbsdex.btc","1.2.1800151","nbsdex-usdt","1.2.1800150","nbsdex-bitcoin","1.2.1800149","nbsdex-eos","1.2.1800148","nbsdex-witness","1.2.1800147","nbsdexmarket","1.2.1800145","coinlist","1.2.1800144","bitrue","1.2.1800143","cryptocom","1.2.1800142","hate-io-bts66","1.2.1800141","fate-io-bts66","1.2.1800050","coinbasepro","1.2.1799937","bnb1feernurypl9j9csznpyzuarv8ekelnzf9th65w","1.2.1799594","geta-io-bts66","1.2.1799533","terra14l46jrdgdhaw4cejukx50ndp0hss95ekt2kfmw","1.2.1799532","gaj4bsgje6uqhzaz5u5iuoabpdcypkps3rfs2nvngfgfxgvqdlbqjw2p","1.2.1799531","rnfugeoj3zn8wv6xhulegubbpxkcywlrkb","1.2.1799491","binanceus","1.2.1799068","ccointiger-deposit-bts01","1.2.1799067","probit-btss","1.2.1799066","xx1bit","1.2.1799065","x1bitt","1.2.1799064","uupbit-user","1.2.1799063","upbit-userr","1.2.1799062","udex-nbs","1.2.1799061","rudex-nb","1.2.1799060","rrudex-nbs","1.2.1799059","rudex-nbss","1.2.1799058","bbs-bridge","1.2.1799056","nnbs-bridge","1.2.1799055","crex2","1.2.1799054","ccrex24","1.2.1799053","crex244","1.2.1799052","llivecoin-net","1.2.1799051","livecoin-nett","1.2.1799050","bbikicoinbts1","1.2.1799048","ggxcom2020","1.2.1799047","gxcom20200","1.2.1799046","llicai-deposit","1.2.1799045","licai-depositt","1.2.1799044","ccoinegg-main","1.2.1799043","itkan-bts-321","1.2.1799042","bbitkan-bts-321","1.2.1799041","bitkan-bts-3211","1.2.1799040","mmxccom","1.2.1799039","ppxn-income","1.2.1799038","hhitbtc-exchange","1.2.1799037","hitbtc-exchangee","1.2.1798659","zbbtscharge1","1.2.1798359","coinex-depsoit","1.2.1798358","cointiger-depsoit-bts01","1.2.1798357","aaex-bts-deposit-wallet","1.2.1798356","aex-bitcny-depsoit-wallet","1.2.1798355","licai-depsoit","1.2.1798354","aex-bts-depsoit-wallet","1.2.1798353","bittrex-depsoit","1.2.1798351","hitbtcexchange","1.2.1798349","gate-bts66","1.2.1798348","binance-bys-1","1.2.1798001","binancepay","1.2.1797717","x0000000000000000000000000000000000001004","1.2.1797716","ox0000000000000000000000000000000000001004","1.2.1797715","ox0000000000000000000000000000000000000000","1.2.1797714","x0000000000000000000000000000000000000000","1.2.1797703","rudexnbs","1.2.1797702","openledgerdex","1.2.1797701","upbit-usre","1.2.1797424","opemledger-dex","1.2.1797423","prizm-7ql2-5cpl-nhma-65fvr","1.2.1797418","openiedger-dex","1.2.1797389","wacashierest","1.2.1797388","hashqhashqha","1.2.1797387","xdappactions","1.2.1797386","tocashierest","1.2.1797384","exmocleosdep","1.2.1797383","cloudwaxdepo","1.2.1797382","porbit-bts","1.2.1797381","problt-bts","1.2.1797380","probot-bts","1.2.1797379","x1bot","1.2.1797377","x1blt","1.2.1797376","upblt-user","1.2.1797375","nbs-brldge","1.2.1797374","bitcoinlndonesia","1.2.1797373","pxn-lncome","1.2.1797372","hotbtc-exchange","1.2.1797371","hltbtc-exchange","1.2.1797370","gate-lo-bts66","1.2.1797368","xlbit","1.2.1797367","aexcool","1.2.1797294","binancw-bts-1","1.2.1797121","dfinity","1.2.1796963","twtqxzfx8vwf7gnhm1hkkho7zvwra65ndq","1.2.1796962","tt21d6nxbgmjjuqtth4hntd6nulwamklib","1.2.1796961","txwkp3jlbqrgojuih1shznydan5csnebok","1.2.1796782","awx-bitcny-deposit-wallet","1.2.1796781","awx-bts-deposit-wallet","1.2.1796711","aexcoolnbs","1.2.1796710","okexchain","1.2.1796637","thssexqixrdneppilvnpspvtskyefcazbt","1.2.1796636","tkkrtxxwgszshcrysashxbyrvgbpmshuok","1.2.1796635","tcdeae91kcm7pbrmosywt42agkiwozzckf","1.2.1796634","tk1uxqbkvawbypz1btwculhfab8jmtjouw","1.2.1796633","tvn99u9mlg7scaurqsp2vj9y7q6zrh4nyw","1.2.1796632","tl2hpsw2aj2dmzqvfuyl5vyfwaa7diaxwb","1.2.1796631","tdnkrnot84ckxxhtw2scl6kqxnjmz8vei8","1.2.1796630","tllbbix3hqvzzsuqtbxgura3pdw317pmjm","1.2.1796629","tlcqed3zqilhjrktmzcfatmw8dl88qequg","1.2.1796628","tdyvndwuvx5xtbwhpyji7j3yq8pq8yh62h","1.2.1796627","txpw8xewyetud4qudskouqeqpowrh4jy65","1.2.1796626","texzaytodf2x5o9brqu12ebns7as6vpnik","1.2.1796625","tqrgqthm9yz5ymsej9pm23f4smzsh4wni7","1.2.1796624","ttnvtfpfhw3cdnzlhg3hkoyczf2nfbhyz9","1.2.1796623","te6kcr8vr1cg5ysjib9dk9fwgqqwy5jfnt","1.2.1796622","txchoftwskp5zqjopqmaqkza65zmpajasn","1.2.1796621","tgddfqcnl913p6tpkdcwxxqtb3tgx5sasp","1.2.1796620","tpqv6rdjj82jmuz7bqxqznuosgkb9tts9r","1.2.1796619","tbwkxiaxumebygtv1y3vjbyfx69fg8etfl","1.2.1796618","teumrkktkk1dcegqy6msjwbmup7bpwsmtk","1.2.1796617","tf5xfkp31rnouuxguvqadtmamnpjtx9jhd","1.2.1796616","tkl7ajpwvpfqjx1sxnaxfbkham94vz3y4e","1.2.1796615","tn4ugjx1glbfwjkxol3t2m5ymlebtqkdrp","1.2.1796614","thqfojswtsmmrkcg6b7p5kgcxjqxgi2kis","1.2.1796613","tdgmojez5kfnexkft987zafzutrhvcj85y","1.2.1796612","tun4dkblbazjarus7zyewhwcya6gsuesak","1.2.1796611","txmazverlvrycimyzd4xxf9mbjrsk4v4jk","1.2.1796610","tuqw7b6chq6er4c81blkhfhmxtbwkdmw9n","1.2.1796609","tq7wk19fhzzqldj2xcw2e6ejs3ctzbfbbf","1.2.1796608","tgr3kyhfasxfgkaywlregavstxq3y36tfm","1.2.1796607","tfanwbtt3kjehckjws51utf1dbkx7tiedi","1.2.1796606","tg2x6sycnmyppsmcm82oqdtv8xscerrkyn","1.2.1796605","tg3ke9eh5qh1rmuzwwkttxfzgv1d23jraq","1.2.1796604","tm1zzndzd2dpasbkcgdvotyhfmygtfwx9r","1.2.1796603","tydzsyuepvnymqk4zgp9swwcted2miatw6","1.2.1796602","tkzdm2zvmjgzipjxlesrkdtajmjdu5vjzh","1.2.1796601","tddfvzot1a2caf9m4mm29xkw2oy8fdymeu","1.2.1796600","tvaqst3ajskd2xup2w4c94v1smq9txfzz9","1.2.1796599","tcypj6mmzd9ytouvd82hns58iv75qimph6","1.2.1796598","txfbqbbqjommqzf7bv8nnyzeph97umjodj","1.2.1796597","tba6cypyjizwa9xdc7ubgc5f1bxrq7sqpt","1.2.1796596","twd4wrz9wn84f5x1hzhl4dhvk738ns5jwb","1.2.1796595","tkhuvq1okvrucglvqvexfs6dawkv6fqgfs","1.2.1796594","tuy54pveh6wccycd6zxxobdshytn9v5pxt","1.2.1796593","twqhcxawz4ehk4kd1ersdhjmfpopc9czts","1.2.1796592","tleeu311cbw63bcmmhdgdlu7fnk9fqgcqt","1.2.1796591","trg6mnpsfxc82ymupgf5qbj59ibxiedwvv","1.2.1796590","tgbr8uh9jbvhjhhkwsjvqn2zakzvkxdmno","1.2.1796589","tl5x9mtsndy537fxkx53yaahrrndg9tkka","1.2.1796588","txjgmdjvx5dkiqaui9qobwnxtsqafqccvd","1.2.1796587","te2rzosv3wfk99w6j9unnz4vlfxyoxvrwp","1.2.1796586","tgjyzgcypobsns9n6wcbdlvr9dh7mwqfx7","1.2.1796585","tks3tcjmttsspiyvnwqrqsppoed1xu2myw","1.2.1796584","teddutgnajspzxd7nicaz3banksgmeax3w","1.2.1796583","ttnshzuoho1cu6zfyvzvsckq8ex8zddkvv","1.2.1796581","tvp1pxjcrmiqcaqbe8ykx4dtvtx7q65g67","1.2.1796580","tqqbtjk4x4yuupeoizdanfvqdpkvzgaxgi","1.2.1796579","tahzyffyfcado9rfuhbpyynzo8ah8pnk4i","1.2.1796578","txrcrngrd75ry63qkfwtgnnjbh1nsrxrkr","1.2.1796577","thymjpp89kcs1hdqs1m2sginhsjkpnxubp","1.2.1796576","th7cfjafb2wxlssgx4w5izicj42qk8s36y","1.2.1796575","ttirq4kbdbemvafh61vqsthm7levjvagsf","1.2.1796574","trry9fxgnflmcp7ytklmhitpvymhg6zugf","1.2.1796573","taartkwb7qo53gkdrdaxgvksdgd77zezsb","1.2.1796572","trahtnknhbch8wqhumcsg2kgatuyda4gtf","1.2.1796571","tkmxdoqa7mlywr1rsrg8bxwpuzvqydr78b","1.2.1796570","tmxoskqsnoee3mzjajwynuk6pbwmzvyy6a","1.2.1796569","tepmzyy5qo9vp5g24aco1o7wquyqxrc1xy","1.2.1796568","tkkeibotkxxkjpbmvfbv4a8ov5rafrdmf9","1.2.1796567","tkeu2nvnhlhdk7gmvy6mvvobz81qulomvi","1.2.1796563","tdw3sdjdy11zn1ob6shdkum9vzsp7l4x2p","1.2.1796562","tcfll5dx5zjdknwuesxxi1vpwjlvmwzzy9","1.2.1796561","tyn6wh11marfzgg7n5b6nm5vw1jfgs9chu","1.2.1796560","thdwuqseinqh8olfhi7pjcywcoyv4hsohl","1.2.1796559","tepc1dgvddfrdf83jzduzdnzydehz9w21h","1.2.1796558","tyfk3vqyccmzrn3mtemwyfbd3yj3bbnopu","1.2.1796557","tqcia2h2tu3wrfk9sktdk9qcfkw8xirfpq","1.2.1796556","tkfjv9rnkjjcqpvbtk8l7knykh7dnwvnyt","1.2.1796555","taiab5typvquvmzybwapdjemqsz2bnaejd","1.2.1796554","teasdbe4zwwarx2fvgctvy1msp2xmndis6","1.2.1796553","taun6fwrnwwmaeqycckffc7wymbas6cbix","1.2.1796552","ta9fnqrlgdglw6cwbkue9dyqsbz1unzumr","1.2.1796546","tepuvymxluzravf88etahru4u2ssbdyp1b","1.2.1796545","tgccz47h1e8myske2gxymot3yrr5nc7mlz","1.2.1796544","tmsxsuxyinh2jjyzzo5zmmngz9ostkvbdo","1.2.1796543","tgsu3bdvxgkzzievex6tivs4eimbdegabv","1.2.1796542","tkg3kp8hdpm56jvrg41sxcj9syfncmvmtj","1.2.1796540","tel2fjud77iierbieh4xhrsfdvaqhpbunr","1.2.1796539","tbmmw9ussszmwxvuketh1wgyu5pdh3gwxk","1.2.1796538","tt6l6h2wa2mg7nykpe3fw9ga6s2buoemkf","1.2.1796537","tkatlocb529zuslflvkgvlnis6okwjb7jf","1.2.1796536","tncmctdyrykmtme1ku2itzecx76jgm5not","1.2.1796535","tnaraoluyyev2uf7gurzsjrqtu8v5zj5vr","1.2.1796534","tmua6yqfcex8ehbfyeg5y7s4dqzsjirey9","1.2.1796533","tueycypaqc4htg1fsubcpc18vgwcjdecvw","1.2.1796532","tjosxfhctyq8ug2rd8wlkdsdgawuxf5rdm","1.2.1796531","ttsijm2dburldrdfj367vjrev8zm5ebcnq","1.2.1796530","tbnnbhyqqs3vbiynmfnpu2ylkmialupxud","1.2.1796529","tvj7rnvhy6thbm7bwdse9g6gxwkhjhdnzs","1.2.1796528","thnsdgi6do7kvqhys7pndzvpvgzgrn4y7c","1.2.1796527","tqn9y2khesljw1chvwfmsmerdow5kcblse","1.2.1796526","tyukbqz2xxccrcreauguyxnccwny9ceidq","1.2.1796525","tnuc9qb1rrps5cbwlmnmxxbjyfoydxjwfr","1.2.1796524","tmwfhyxljarupew6421aqxl4zezprfgkgt","1.2.1796523","thb4cqifdwnhswsqcs4jhzwjmwys4aqcbf","1.2.1796522","tn3w4h6rk2ce4vx9ynfqhwkennhjoxb3m9","1.2.1796521","retc4xayjvtwdlj9jz4khrhkbnollxsnfb","1.2.1796520","r9armluj7jbqhppnamxdjkyuj3gbmheqqf","1.2.1796519","rgn1fxz8vhbmiz2zotneb4dk9jleqhjo8s","1.2.1796518","rp123uegwztcu5adofmghxe7sbuskiwnbc","1.2.1796517","rncckunsevxpdpgchrk6ax8w36wmi9ehcf","1.2.1796516","rbgnukaeifhcrlpoynppe3juwayrjp6ayg","1.2.1796515","rybankk28mj71jrkakt13u1x9ubztsgwz","1.2.1796514","r4ljtj87uybz7zhx6t1nbuvg8ohwbylfob","1.2.1796513","rnw8je5ssufjkmswkgfxvqzh3gltpxxffh","1.2.1796512","rpd8gwasks8p2znefmpnzr1i9u71tsisz3","1.2.1796511","rksqcwruhql8ggrtutbgnemhaaxpuaqa1v","1.2.1796510","rsry14fvipgqudigmptjbhr1rtpsgfzkmm","1.2.1796509","rpd6t1z7o4me2jgzhfbjyuwhpecbnzufgg","1.2.1796507","rpwfokdtix79ekwhhkpt8tqba2btbk9glc","1.2.1796506","r9hwsqbnaun4nf6ndqxd4sgp8drdndczp3","1.2.1796505","ragsfqhwogqwnecpxkmjcjrsamzf1sshyt","1.2.1796504","r3a44bxpspn7z6dklgsczjodkzrepsqott","1.2.1796503","rdm9x1ehphbwxx8uhvf2j8tyujy2vvnm5","1.2.1796502","rw7m3ctvhwgsdhfjv4myjozmzjv3dyqnsa","1.2.1796501","rdo3qxgspxkn1lhp7foguxs2htvlep73gk","1.2.1796500","rgc8zyutfrzejcu5ypapocmu93hclzbvgc","1.2.1796499","rwwr7kuz3zfwzgadgjkbysadbyzxvohq3c","1.2.1796498","rlpumszqnj6cve7hfqcdkg9rjbjhksv8ad","1.2.1796497","rlsn6z3t8ucxbcd1oxwfgqn1fdn5cygujk","1.2.1796496","r9npka5sbbu4qskvcwqyn5grkz4ab9t3bs","1.2.1796495","rpgwyb9cfqwjqtdzdcjfwy55gqbkdkkp5l","1.2.1796494","rdgdutletnxkhghpzpwyn9ljzcjxcbycez","1.2.1796493","rqhoyxu12uhnsydw7dqdvpktbdlenjnvqr","1.2.1796492","rlquo6vbtmha7dftpctzsztkauuwsy7u3k","1.2.1796491","rql3rmtijdt33ytpxdjd41bg3rpa2zyfqn","1.2.1796490","ruocf1ixkztuee34kmvhrvgqncofy1njzv","1.2.1796489","rxieaac3nevtkgvu2syoshjtcs2tfczqx","1.2.1796488","rnuptvikw8hkk4hbgctnq2j2433vyazpzq","1.2.1796487","rgzv96hkprbpchbeydtqe8z5f74ulz8o7e","1.2.1796486","r48pu8paxxzrqruvfsbthaonu1o4yvr72k","1.2.1796485","rsekgh9p9neipxym2tmjhqaczhfuokentu","1.2.1796484","rpe6ge8jen1trdwqwe47vmgdl5y6m3xx2n","1.2.1796483","rhzmaubybzzb6fybhw75zqw1ax7r8hn4wa","1.2.1796482","r4dkezm4qvh2wzuay2b2yeztxydawyudnm","1.2.1796481","ru7xjs7qmjbiyxpeoznyufqxard5kuey7z","1.2.1796480","r48kptkxw5gcs2bnbpvdc93ytwqyw7xx5q","1.2.1796479","rmutht2ablhfnmsw92ahmaluzgjvwomh26","1.2.1796477","rsf1rmhetexrgufua4pfxbw7seqkxfkfxb","1.2.1796476","rshvnxlde9jsm8sjxpxct425hhqc2tk5cv","1.2.1796475","r4npujprmhph2e1v3ty8vxsh8thqubepfw","1.2.1796474","rldhrvhmqss1vavkldzmstw2oranzk9fm2","1.2.1796473","rdsbeomae4fxwgqtjp9rs64qg9vditcdbv","1.2.1796472","rlzh28ygxc712opjyjyvu6wa8146ycxkbm","1.2.1796471","rksu67yatc7hj8y3cu4gkpbdhqys2sq5hg","1.2.1796470","re1sdh25bjq3qfwngitbwaq3zpggycrjp1","1.2.1796469","rmtb2jex8xmcgskxcb7azpdyzyvhbm2rzv","1.2.1796468","rhzqverv6uzttkm4nvexs1z5dtvuek2rbx","1.2.1796467","r9r3stgducskpku9cusasazmudkviwoxnv","1.2.1796466","rpxtzcuxtjipdfysxq8unmtzbe9xo97jbw","1.2.1796465","rjchk8e71gxvhyjsr1srzzxwhviswmmykz","1.2.1796464","ru2mejslqbrkylvtv55rftgqajkltnt6ma","1.2.1796463","rgt84ryuburwfmmijchrbwug9iqy18vguq","1.2.1796462","rpfxvvo2fyxvpdv9gchqouhsmgmhq2auwm","1.2.1796461","rpbmdp7cgikzmvpx6sscggedsrsuyv1k1b","1.2.1796460","repnmrctsxnnne9byechb94qm4kirddepy","1.2.1796459","rwu8raie2eyepz3sikfbhuqcuiatdxqa2v","1.2.1796458","rkptkojsfbcozkwydrv7nwtibgnrdtxj24","1.2.1796324","rhcfoo6a9qt5nhivn1thqrhsegcxtycv4d","1.2.1796323","rp2diyfvtpbgemyaownuawgfcakqcaeg28","1.2.1796322","rwsdwxsqvcjyxuyempsgxk1sgws6peryzl","1.2.1796321","rkdddrbu3medsg7vtbair4rjc35tzjdznr","1.2.1796320","rhwcuuzofvds6gnbmhsdpb7u1hzzxvcomt","1.2.1796319","rjn2zapdfa193sixjwufixrkydutx3apqh","1.2.1796318","rneygqkmv4vnj8m2ewnyt1tdnv1sc1x5sn","1.2.1796317","ga3mpsy7at5tef37ecgc6aiyiy4kzvtnyqljsjpeljlrv7yku7je5fj3","1.2.1796316","gczlcmum4q4h324ctt3753p6656cyr4kplhyfpgypge6jvhonglnrdi5","1.2.1796315","gbdesaw6jwewdb7gnuwuk2q6ggfmg4hrapogdtwzz5wrplkzb3esd55a","1.2.1796314","ga3ntbdikqvddm6zdkjlgxjfeswj636agriw34rh5wl24lumx3yaskx2","1.2.1796313","gctuyxrtc2opwwuce6kbqejtdfaln6bwhuxt3ihcxmthw5k46njcvhyn","1.2.1796312","gagcx4rx6oazmpnrgdmhlq7omhxzm7i3czo2isxcj3omndpe5q7encda","1.2.1796311","gcoinskibdb7e4yumzveatt7jriwluph6cbs63fyiz4dwdxh3p6u6xiu","1.2.1796310","gabrno3rcft5vs3jz5k6a5pbvi47bkkno6sh3xfqqhipcw5awiu3f4sl","1.2.1796309","gcd57yezmvuqw6ljtpexv34zvgq5kq4xtaswp42xu4qneejlbevy5nyo","1.2.1796308","gb67tjfjo3gua432ej4jtodhfysbtm44p4xqcdoftxjnnpv2ukujyvbf","1.2.1796307","gbjw6ylptgtwojns3z4dks2dmav7qbulnsbbx5iys7miquwuhmnlrkdh","1.2.1796306","gaa23stafih3d24gt3akkl4tpk44weubh3jf4opmln777xq4ehthchis","1.2.1796266","gcfyb43fhinp7v6c4436wecye7qzo5ln5suxthruluk4nqx6x5j6pdiu","1.2.1796265","gd3wcap6tjnwtsyizr2a34fdhu55qy3jfszgjmwhbzlczcm5el3efroz","1.2.1796264","gcuxdw3p24xxxrfw5yjjcyhok7kjhipxblzsfggnz62l7khzzspcmtl7","1.2.1796263","gbzlhgdymsvf4x6dyagkliqx3f64w3mxndvghkqpr226tcj5qj2zqkva","1.2.1796262","gdezdzywgbcixwemezbtue4b5h6n4wbykvy6gqbkcfil5houunuoi6s3","1.2.1796261","gbbalm76b5oupozcmfcnt5pvifv3wtuyx3vvgc7fmn4zpqlgcg2c4x3d","1.2.1796260","gakcl7tkhsvmqypqphwdf7yrvnlcarwbgockp36ljodnyiklcy4vffhk","1.2.1796259","gc7ynbwttlcmaodl2krbgvn6pihh25gvuytsiosc744tzog53vfnq247","1.2.1796258","gdx6ffzuvsytov23np2puugqiortwqhuxxpxyouioy6cdqxg4np6oeq7","1.2.1796257","gbc6nrttqlrcabqhir5j4r4ydjwfwrao4zrqim2svi5gsiz2hz42rinw","1.2.1796256","gacgfff5bbx6fzfnfpsgby6bzwbxpu2bs4wtuyd7moxswz7f62gw4xge","1.2.1796255","gcldh6l6fbltd3h3b23d6tifvvtfblzmnbc3zoi6fgi5gpqrol4foxin","1.2.1796254","gbjnv2mqa7m5gnbrdfw46jlxin7zlyvvm4uw4cwdzo4kzkxixcryhmh2","1.2.1796253","gcf7f72lnf3odsjiiwpjwevwx33vt2svzsuq5nmdkdlk3n2nfcuauhpt","1.2.1796252","gcxdr4qz4otvx6433dptxelcsewq4e5bipvrrjmur6m3nt4jcvidalzo","1.2.1796251","gdljs5swqqocb2b2hfczimrsahlpjs427ag2ubosumg6tocboe5ztma5","1.2.1796250","gb3rmptl47e4ulvanhbncxsxm2za5jfy5isdrerpcxnjudeo73qfzunk","1.2.1796249","gbofqcvzf2dsfljpjmkh7cieccn7tyvat2csd73ivebjjqu2vw6jnfht","1.2.1796248","gc4kas6w2ycgjglp633a6f6aktcv4wslmtmiqrseqe5qrrvksx7thv6s","1.2.1796247","gdmxnqbjms3fyi4pfsyccb4xodqmnmtkpq5hikouwbowj2p3cf6wasbe","1.2.1796246","gawpthy6233grwzz7jxdmvxdudcvqvvq2sxcstg3r3cnp5lqpdahnbkl","1.2.1796245","gb6ypgw5jfmmp2qb2usq33euwtxvl4zt5ituncy3ykvwojpp57canof3","1.2.1796244","ga5xiga5c7qtptwxqhy6mcjrmtrzdoshr6efibndqtcqhg262n4ggktm","1.2.1796243","gbgii2c7m4toec2mvazyg3trfm3atccewansn4q3ahex3nrkxjcvzdev","1.2.1796242","gdp34wxzrcshvudqlgkjkobms5loqphciadzu5poef3iicz7xnqj65y6","1.2.1796241","nbapjncpmlprb3l76gcmo42xrag4wkyfwmdulikm","1.2.1796240","nb67paw2rbvbptg2wx4aepx7grqr2svwmix6j4pz","1.2.1796239","na3mzm72lrcvrjyxlixwhqdknumlhy6kfo253icc","1.2.1795536","nd72swjgha7l7eckigwe5glpsn5pyr6s3gzzoqbc","1.2.1795535","ndromshkobmdexyi3y7vb2xn35yne5p5hcgauer4","1.2.1795534","nagjg3qfwyz37lmi7iqpsgqnyadgsjzgjrd2diya","1.2.1795533","ndsk2rwvshltnbi7amofhsaigmym2a6a5gp4t6hr","1.2.1795532","nax7lncnzq6v7smpfj4s46txyecvx2px2arouhh4","1.2.1795531","nbx3qkzjv2upo3nj5ultfw2v5ee4n2i5n2rex7po","1.2.1795530","ndmff4ncqijkcqhp6w47wszf3tnm2ylmrlgpltxu","1.2.1795529","ncyavmnqoz3mzetebd34acmax3s57wuswazwy3dw","1.2.1795528","ncb46tpcvsvzbukviginobroqwzdr2zoqvfjb74y","1.2.1795527","nbzmqo7zpbynbdur7f75maka2s3dhdcifg775n3d","1.2.1795526","nd2jrpqiwxhkaa26invga7sreeumx5qai6vu7hnr","1.2.1795525","cosmos1rlqgx88vke85d2rjppg5q2zmghqfqg5tpfg4pc","1.2.1795524","cosmos18ffdgqdkfhse4l50zuzvhvad5qdcdz9q8lxgwj","1.2.1795523","cosmos1qkjxrkxgtvjvyeuzzukg47qqwa8a2750pvfnp8","1.2.1795522","cosmos13z2eg068ft7h0jmhvcf8k3htn9etjvmgw732hj","1.2.1795521","cosmos1usgj7hetwz0tzt90rfk9vkmv7jjdlm6emf4nxp","1.2.1795520","cosmos1t3jzvm4jf3u9fajkr2l6v5agxq72hnc45y8mcn","1.2.1795519","cosmos1psr5x3kgra5fvm4gc4l6ufykn0nl3esdjeex8n","1.2.1795518","cosmos13elmr44n30u4sk73aqlu2m9cevkvt5d4a3cz3r","1.2.1795517","cosmos1hjyde2kfgtl78twvhs53u5j2gcsxrt649nn8j5","1.2.1795516","cosmos1xlp4k2yz6zhhqxlp0hwdfqlpsz9k9gru3ezese","1.2.1795515","cosmos1z7g5w84ynmjyg0kqpahdjqpj7yq34v3suckp0e","1.2.1795514","cosmos1dm68mx9jcsyqkyzp3up7gmnu3ku84v8gf6v75u","1.2.1795513","cosmos1t5u0jfg3ljsjrh2m9e47d4ny2hea7eehxrzdgd","1.2.1795512","cosmos1yeygh0y8rfyufdczhzytcl3pehsnxv9d3wsnlg","1.2.1795511","cosmos144fzpepuvdftv4u4r9kq8t35ap2crruv4u3udz","1.2.1795510","coinex-depoit","1.2.1795509","coinex-depsit","1.2.1795508","cointiger-depoit-bts01","1.2.1795507","cointiger-depsit-bts01","1.2.1795506","aex-bitcny-depsit-wallet","1.2.1795505","licai-depoit","1.2.1795504","licai-depsit","1.2.1795503","aex-bts-depsit-wallet","1.2.1795502","aex-bts-depoit-wallet","1.2.1795501","bittrex-depsit","1.2.1795500","bittrex-depoit","1.2.1795379","bittrex-depoesit","1.2.1829609","x00000000219ab540356cbb839cbe05303d7705fa","1.2.1795378","ox00000000219ab540356cbb839cbe05303d7705fa","1.2.1795366","diem","1.2.1795007","cosmos1nm0rrq86ucezaf8uj35pq9fpwr5r82cl8sc7p5","1.2.1795006","cosmos1nynns8ex9fq6sjjfj8k79ymkdz4sqth06xexae","1.2.1795005","cosmos1u42ucpq7zkr245wc8efwmwnzuq5kaky6yet7fy","1.2.1795004","cosmos1ghz39h0zkugxs3tst8mfvsy2g98xdaah83xl0t","1.2.1795003","cosmos1gvxwd6n7fmgruu8a3ex9faveemwj80rzx0wd5t","1.2.1795002","terra1v9ku44wycfnsucez6fp085f5fsksp47u9x8jr4","1.2.1795001","terra1t28h4fg8gjpggvq985d2zz569qj8hpxnsxcx93","1.2.1795000","spx8t06e8fjq33cx8yvr9cc6d9dstf6je0y8r7ds","1.2.1794999","kava1wv73ejw8aar7ftsahuz7y52n2nklr4qfpkh998","1.2.1794998","iaa1ztqlc6a7xrydlcng3q7ajqzu8wxpnsyh4xrkde","1.2.1794997","iaa1mvfej6hvkuplcvm9aa2qdeh54npvdnshzcjpat","1.2.1794996","iaa1p9acp2pmufuelr3vcmeuxrczwd9969dl6j83zn","1.2.1794995","iaa198g7d4xq3xk2dy8yt88gszxhct36c4egnseu7t","1.2.1794887","ardor-mgwu-kkrh-7amx-6ujbv","1.2.1794886","ardor-jx3v-2qbu-zrav-cvqw3","1.2.1794885","ardor-ttb5-xcjs-xx9l-7kgy6","1.2.1794884","ardor-8sgv-qmer-be2f-8xykv","1.2.1794822","iaa180z3qagykwpr7v6htawvh7z3n5t7zw6w0zjvc2","1.2.1794821","bnb142q467df6jun6rt5u2ar58sp47hm5f9wvz2cvg","1.2.1794820","bnb1jxfh2g85q3v0tdq56fnevx6xcxtcnhtsmcu64m","1.2.1794819","bnb19v2ayq6k6e5x6ny3jdutdm6kpqn3n6mxheegvj","1.2.1794818","bnb1v8vkkymvhe2sf7gd2092ujc6hweta38xadu2pj","1.2.1794817","tbnb1v8vkkymvhe2sf7gd2092ujc6hweta38xnc4wpr","1.2.1794815","bridge.near","1.2.1794772","upbituser","1.2.1794771","cointigerdepositbts01","1.2.1794770","bitkanbts321","1.2.1794769","gateiobts66","1.2.1794557","mxctomoon","1.2.1794556","aexplus","1.2.1794555","bithumbrecv","1.2.1794554","upbitswaxusr","1.2.1794553","beaxywallet","1.2.1794552","hitbtcpayin","1.2.1794551","hooexchange","1.2.1794550","gateiococos","1.2.1794456","bridge-team","1.2.1794431","newbs-bts-crosschain-gateway","1.2.1794430","depositcontract.eth","1.2.1794305","pnx-income","1.2.1794303","mcxcom","1.2.1794112","nbs-brdge","1.2.1794111","bridge-nbs","1.2.1794053","viabtc-coinex","1.2.1794052","coinex-viabtc","1.2.1793776","rmvo4vqoutqm3p1emxghcxrtdhnxxutu3x","1.2.1793775","razltrbzxvxyvvilquklh8yengljid9ztw","1.2.1793774","rpinhty4p35bpmvxpbfwrutz1w1k1gyshb","1.2.1793773","rlw9gnqo7bqhu6igk5keqynh3tvrcxgrzm","1.2.1793772","rkv8hel3vlc6q9watijcewdrdsfyx67qfb","1.2.1793771","rdxfhnrgcdndckm45zt5ayhkdc4ljm7uop","1.2.1793769","rmdg3ju8pgyvh29elpwadua74cpww6fxns","1.2.1793768","raqwcvajvqjrvm1nj5sfrcx8i22bhdc9wa","1.2.1793767","rlhzpsx6oxkzu2ql12khch8g8cnzv1rbjh","1.2.1793766","rpvmhwbsff9imxyj3aazjvkpdtfnsywdky","1.2.1793765","rdhuadn1bcowcnrfelvbv2fmbqv2qvcyxm","1.2.1793763","rw2yddh97qoaqtezqznhztr1iwxnha7sxa","1.2.1793762","rmvys27sys5dxdfsugpvv1csrpscz7epf5","1.2.1793759","bnb1z48pp6kvlcrqe8vcucqpggeh60ngxmzklkzfm0","1.2.1793758","bnb1k22unce9aqqva6ne3dz6w95ejskl0gvxxemgvv","1.2.1793757","bnb1rv89nkw2x5ksvhf6jtqwqpke4qhh7jmudpvqmj","1.2.1793756","bnb1p89xmrejmqpwmkye4z2pwtrw49n2vykf3nax33","1.2.1793755","bnb1990lfutz0f9wza6rsh36ysfwt9xpctxrll884r","1.2.1793754","bnb14wlklpk0dre6yje5y62sdel3vp0wp23kjqhq9r","1.2.1793753","bnb1yjlk7f47qf0z97ph6pxc00s2s0yw048edmtjtw","1.2.1793752","bnb1jzdy3vy3h0ux0j7qqcutfnsjm2xnsa5mru7gtj","1.2.1793751","bnb13q87ekxvvte78t2q7z05lzfethnlht5agfh4ur","1.2.1793750","bnb1g7kg0yl50u5xj5kumga24uudc5204pzgxkgg4u","1.2.1793749","bnb1zdqs6lhguvkffqthyzlz5hdd7pv9c2nn44jgsg","1.2.1793747","bnb165r4pxe862hetuz2l3wt4yx43uhh4ph9u0ptz6","1.2.1793746","bnb1mtmxe2y876s97k63dljayyn9fyn30vajfk6w6z","1.2.1793745","bnb155svs6sgxe55rnvs6ghprtqu0mh69kehphsppd","1.2.1793744","bnb1khqu84s7gz3lm0nnz47j4attl3lr4tgg6l8cpx","1.2.1793743","bnb10749k3j3lk763s9amgfhtyf72pfggf22x7glc0","1.2.1793721","yoyo.gateway","1.2.1793720","yoyo378854166","1.2.1793719","yoyo492404207","1.2.1793718","yoyo279734303","1.2.1793717","yoyo298918989","1.2.1793617","gdqp2kpqgkihyjgxnuiyomharuarca7djt5fo2ffooky3b2wsqhg4w37","1.2.1793559","rw2ciyanshphe7bcho4brwq6pqqynnwkqg","1.2.1793536","secret1q0eyhle2tedjqf2w4n4wgepf09uccrsh0lt3ge","1.2.1793535","iaa1fd8x2ww89ztq7qdrhw8x3z5aj25svxy3588n6u","1.2.1793534","ardor-hfne-e2ve-smv3-dcrz8","1.2.1793533","kava1ys70jvnajkv88529ys6urjcyle3k2j9r24g6a7","1.2.1793532","sp1p72z3704vmt3dmhpp2cb8tgqwgdbhd3rpr9gzs","1.2.1793531","terra1ncjg4a59x2pgvqy9qjyqprlj8lrwshm0wleht5","1.2.1793530","band1w4ml3tmn7t00603m2euqfj9ndm8h8q2rp4enfj","1.2.1793463","bbittrex-deposit","1.2.1793462","eosfinexeos1","1.2.1793458","coinone-nbs","1.2.1793457","newbs","1.2.1793453","probit-nbs","1.2.1793449","cnvote-01","1.2.1793448","zbgnbssend1","1.2.1793447","exxnbssend1","1.2.1793446","zbnbssend1","1.2.1793445","gate-nbs-cold","1.2.1793174","upbit-uset","1.2.1793172","cocosmxc","1.2.1793171","upbit-use","1.2.1793170","upbit-usr","1.2.1793169","upbit-usrr","1.2.1793168","upbot-user","1.2.1793167","uobit-user","1.2.1793021","aexnbs","1.2.1792955","rudex-nbsdex","1.2.1792951","zhaobi-nbs-withdrawal","1.2.1792950","zhaobi-nbs-pro","1.2.1792760","nbs-brudge","1.2.1792759","nbsbridge","1.2.1792758","nbd-bridge","1.2.1792757","nbs-birdge","1.2.1792756","mbs-bridge","1.2.1792755","nsb-bridge","1.2.1792754","nbs-brigde","1.2.1792753","nbs-brodge","1.2.1792752","nbs-btidge","1.2.1792751","nbs-brige","1.2.1792586","gate-nbs-deposit","1.2.1792473","bigone-nbs","1.2.1792472","bigone-nbs-deposit","1.2.1792471","bigone-nbs-hot","1.2.1792469","zbgnbs001","1.2.1792467","houbi-bro","1.2.1792464","bitkknbs2020","1.2.1792421","bigone-cold","1.2.1792420","zbnbscharge1","1.2.1792416","nbs2020","1.2.1792415","exxnbs001","1.2.1792414","cloud-nbs-deposit","1.2.1792383","zbnbs","1.2.1792382","zbnbs2020","1.2.1792381","houbi-otc","1.2.1792372","binance-nbs","1.2.1792282","aex-nbs-deposit","1.2.1792281","huobi-nbs-deposit","1.2.1792280","zb-nbs","1.2.1792273","newbitshares","1.2.1792270","eosdmdpool15","1.2.1792269","eosdmdpool14","1.2.1792268","eosdmdpool13","1.2.1792266","eosdmdpool12","1.2.1792265","eosdmdpool11","1.2.1792200","bikicoinnbs1","1.2.1792199","bikicoinnbts1","1.2.1792198","huobi-nbts","1.2.1792197","huobi-nbs","1.2.1792196","bitkan-nbs-321","1.2.1792195","bitkan-nbts-321","1.2.1792194","aex-nbs-deposit-wallet","1.2.1792193","aex-nbts-deposit-wallet","1.2.1792192","zbnbts001","1.2.1792191","zbnbs001","1.2.1792189","gate-io-nbts66","1.2.1792188","gate-io-nbs66","1.2.1792186","binance-nbts-1","1.2.1792185","binance-nbs-1","1.2.1792058","gxcon2020","1.2.1791485","felixwebuser","1.2.1791238","kcstothemoon","1.2.1791237","vip-bts-777777","1.2.1791236","bts-vip-6666666","1.2.1789975","swap.defi","1.2.1788709","graphene-swap","1.2.1788708","swap.app","1.2.1788024","account-kr","1.2.1788023","steem-kr","1.2.1788022","hive-kr","1.2.1787960","huobi-kr","1.2.1786399","bithumbrecv2","1.2.1783247","probithive","1.2.1783246","mxchive","1.2.1783244","hotbithived1","1.2.1779121","ctforabbc111","1.2.1779120","walletp2pb2b","1.2.1779119","digideposit1","1.2.1779118","idaxdeposit1","1.2.1779117","bitmaxabbcz1","1.2.1779116","bitmart4abbc","1.2.1779115","exchbitz1111","1.2.1779114","abbcdeposit1","1.2.1779113","bithumbabbc1","1.2.1779111","blockcity","1.2.1779110","longbit","1.2.1779109","hyperpaytech001","1.2.1779108","pxn-gxb-hot","1.2.1779107","bithumbpro-gxc","1.2.1779106","btc-recv1","1.2.1765119","blockcity-gxs","1.2.1765115","indodax-indonesia","1.2.1765111","gate-io-gxs66","1.2.1761492","huobi-hive","1.2.1761491","huobi-steem","1.2.1761490","binance-steem","1.2.1761489","binance-hive","1.2.1761485","houbideposit","1.2.1761253","myeosaddress","1.2.1761252","hitbtcwaxins","1.2.1761251","binanceiost","1.2.1761242","chattle55555","1.2.1761240","deposit.pro","1.2.1761239","bittrex-dep","1.2.1761238","btmxvault1","1.2.1761237","huobiwaxdepo","1.2.1761234","bithumbwaxr1","1.2.1761233","bitfinexwax1","1.2.1823640","gate-io-bts66-cold","1.2.1823639","gate-io-bts66-token","1.2.1823638","gate-io-bts66-reward","1.2.1823637","gate-io-bts66-gift","1.2.1823636","mxccom-reward","1.2.1823635","mxccom-token","1.2.1823634","mxccom-gift","1.2.1823633","huobi-pro-token","1.2.1823632","huobi-pro-reward","1.2.1823631","huobi-pro-1-gift","1.2.1823630","huobi-pro-1-token","1.2.1823629","binance-bts-1-offer","1.2.1823628","binance-bts-1-rebalance","1.2.1823626","binance-bts-1-token","1.2.1823603","eth20","1.2.1823256","binance-bts-1-bts","1.2.1823841","binance-bts-1-local","1.2.1823877","binance-bts-1-trc20","1.2.1823195","trc20-network-1","1.2.1823905","binance-bts-1-brighter","1.2.1823904","huobi-pro-mainnet","1.2.1823903","huobi-pro-testnet","1.2.1823902","huobi-pro-start","1.2.1823901","mxccom-start","1.2.1823898","binance-bts-1-bts1of","1.2.1823896","binance-bts-1-approve","1.2.1823895","binance-bts-1-mxzibit","1.2.1823890","binance-bts-1-cryplife","1.2.1823889","binance-bts-1-pepe","1.2.1823888","huobi-pro-cash","1.2.1823886","binance-bts-1-vector","1.2.1823883","binance-bts-1-promo-dice","1.2.1823882","binance-bts-1-prt11","1.2.1823878","binance-bts-1-lux","1.2.1823506","bybit-network-1","1.2.1823612","kukoin-wallet-1","1.2.1823325","trc20-network","1.2.1823907","mar-network-1","1.2.1823913","bit-shares-gpp","1.2.1823924","bit-shares-etc","1.2.1823938","bit-shares-rew","1.2.1823958","forest-328","1.2.1823859","base-inlan-acc","1.2.1824008","binance-bts-1-promo-crypto","1.2.1824004","binance-bts-1-x1","1.2.1823999","binance-bts-1-cripto","1.2.1823997","binance-bts-1-newflowtest","1.2.1823994","binance-bts-1-newflow","1.2.1823956","gate-io-bts66-withdrawal","1.2.1823955","binance-bts-1-sdafsdffsd","1.2.1823954","mxccom-testnet","1.2.1823953","binance-bts-1-buytosell","1.2.1823952","binance-bts-1-pump","1.2.1823951","binance-bts-1-investing","1.2.1823939","binance-bts-1-bnb","1.2.1823930","binance-bts-1-refers","1.2.1823919","binance-bts-1-testing","1.2.1823918","binance-bts-1-bug","1.2.1823915","binance-bts-1-free20","1.2.1823912","binance-bts-1-coins","1.2.1823944","binance-bts-promo2023","1.2.1823943","binance-bts-promo-1","1.2.1823942","binance-bts-promocode","1.2.1823940","binance-bts-1-promocodes","1.2.1823931","binance-bts-crypto","1.2.1823920","binance-bts-1-purse","1.2.1823916","binance-bts-1-test-1","1.2.1823948","binance-bts-1-1","1.2.1823946","binance-bts-binance","1.2.1823935","binance-bts-coin","1.2.1823933","binance-bts-bonus","1.2.1823950","binance-bts-prize","1.2.1823949","binance-bts-bts-1","1.2.1823947","binance-bts-premium","1.2.1823991","binance-airdrop-bts-1","1.2.1823990","binance-bts-1-airdrop-token","1.2.1823989","binance-bts-1-spot-promo-action","1.2.1823988","promoaction-binance-bts-1","1.2.1823987","promo-action-binance-bts-1","1.2.1823986","binance-promo-action-bts-1","1.2.1823985","binance-promoaction-bts-1","1.2.1823984","binance-bts-1-promo-action-deposit","1.2.1823983","binance-bts-1-promoaction-deposit","1.2.1823982","binance-bts-1-deposit-promo-action","1.2.1823981","binance-bts-1-deposit-promoaction","1.2.1823980","binance-bts-1-transfer-promoaction","1.2.1823979","binance-bts-1-transfer-promaction","1.2.1823978","binance-bts-1-prom-action","1.2.1823977","binance-bts-1-promo-action","1.2.1823976","binance-bts-1-crypto-promo","1.2.1823975","binance-bts-1-transfer-rewards","1.2.1823974","binance-bts-1-transfer-bonus","1.2.1823973","binance-bts-1-rewards-transfer","1.2.1823972","binance-bts-1-bonus-transfer","1.2.1823971","binance-bts-1-crypto-rewards","1.2.1823970","binance-bts-1-rewards-crypto","1.2.1823969","binance-bts-1-crypto-reward","1.2.1823968","binance-bts-1-reward-crypto","1.2.1823967","binance-bts-1-bonus-crypto","1.2.1823966","binance-bts-1-crypto-bonus","1.2.1823965","binance-bts-1-promo-p2p","1.2.1823964","binance-bts-1-rewards-p2p","1.2.1823963","binance-bts-1-promo-transfer","1.2.1823960","binance-bts-1-reward-p2p","1.2.1824000","binance-bts-1-active","1.2.1823993","binance-bts-x","1.2.1823992","binance-bts-one","1.2.1823959","binance-bts-1-creo","1.2.1824030","jonson-18392","1.2.1824044","zelya-3720","1.2.1824049","mxccom-testbts","1.2.1824045","binance-bts-1-itp","1.2.1824043","binance-bts-1-fhbcjd","1.2.1824038","binance-bts-1-humanbtc","1.2.1824037","binance-bts-1-fasi","1.2.1824036","binance-bts-1-withdraw","1.2.1824032","binance-bts-1-moneykup","1.2.1824031","binance-bts-1-mon","1.2.1824027","binance-bts-1-fdsfsdsfd","1.2.1824025","binance-bts-1-fdssdfsfd","1.2.1824024","binance-bts-1-sadasd","1.2.1824023","binance-bts-1-fsdfsdfsd","1.2.1824022","binance-bts-1-g11d9","1.2.1824021","binance-bts-1-g11h","1.2.1824020","binance-bts-1-x1d7","1.2.1824019","binance-bts-1-x1ad7","1.2.1824018","binance-bts-1-x1a","1.2.1824029","binance-bts-1-advantage","1.2.1824028","binance-bts-1-income","1.2.1824014","binance-hot2","1.2.1824048","reward-binance-bts-1","1.2.1824047","rewards-binance-bts-1","1.2.1824046","binance-bts-1-testnaebka","1.2.1824026","jonson-1839","1.2.1824053","binance-bts-1-recovery","1.2.1823704","miner5000","1.2.1823914","binance-bts-miner","1.2.1823851","binance-bts-1-miner","1.2.1823750","binance-bts-1-minning","1.2.1824064","binance-bts-1-iceteam","1.2.1824063","binance-bts-1-ice","1.2.1824062","binance-bts-1-selltobuy","1.2.1824059","binance-bts-1-first","1.2.1824055","binance-bts-1-chain","1.2.1824060","binance-bts-1-promoactions","1.2.1824149","binance-bts-1-ledge","1.2.1824146","binance-bts-1-hod","1.2.1824133","binance-bts-1-affilmo","1.2.1824131","binance-bts-1-nrp","1.2.1824130","binance-bts-1-ntcp","1.2.1824128","binance-bts-1-les","1.2.1824126","binance-bts-1-bitchain","1.2.1824120","binance-bts-1-memo","1.2.1824118","binance-bts-1-solar","1.2.1824117","binance-bts-1-bal","1.2.1824106","binance-bts-1-transaction90","1.2.1824084","mxccom-mxccompromo","1.2.1824083","binance-bts-1-colder","1.2.1824078","binance-bts-1-bts25","1.2.1824068","binance-bts-1-git","1.2.1824067","binance-bts-1-scam","1.2.1824141","bybit-bts-pool","1.2.1824089","binance-bts-1-remuneration","1.2.1824110","binance-promaction-bts-1","1.2.1824109","promaction-binance-bts-1","1.2.1824108","binance-prom-action-bts-1","1.2.1824107","prom-action-binance-bts-1","1.2.1824105","binance-promotions-bts-1","1.2.1824104","promotions-binance-bts-1","1.2.1824103","binance-bts-1-promo-actions","1.2.1824102","binance-promo-actions-bts-1","1.2.1824101","promo-actions-binance-bts-1","1.2.1824100","binance-promoactions-bts-1","1.2.1824099","promoactions-binance-bts-1","1.2.1824098","binance-promotion-bts-1","1.2.1824097","promotion-binance-bts-1","1.2.1824096","binance-bonus-bts-1","1.2.1824095","bonus-binance-bts-1","1.2.1824094","actions-binance-bts-1","1.2.1824093","binance-actions-bts-1","1.2.1824092","binance-action-bts-1","1.2.1824091","binance-rewards-bts-1","1.2.1824090","binance-reward-bts-1","1.2.1824088","action-binance-bts-1","1.2.1824087","promo-binance-bts-1","1.2.1824086","promo-transfer-binance-bts-1","1.2.1824173","ndvjdsdscxs","1.2.1824291","oko-saurona","1.2.1824324","binance-bts-1-memokit","1.2.1824298","binance-bts-1-auto","1.2.1824261","binance-bts-1-promo1","1.2.1824259","binance-bts-1-track","1.2.1824231","binance-bts-1-bep","1.2.1824230","huobi-pro-bal","1.2.1824209","binance-bts-1-cashup","1.2.1824193","binance-bts-1-r1","1.2.1824188","binance-bts-1-gg","1.2.1824171","binance-bts-1-777","1.2.1824163","binance-bts-1-nomydo","1.2.1824162","huobi-pro-noaqrg","1.2.1824161","binance-bts-1-dfsdfsfd","1.2.1824156","binance-bts-1-hdoshwoa","1.2.1824269","bitshares-liquidity","1.2.1824268","bitshares-liqudity","1.2.1824310","anonymous-user-c49fd","1.2.1824244","binance-xbts-1","1.2.1824297","upishfundout","1.2.1824296","upishfundsin","1.2.1824224","useosdeposit","1.2.1824232","binance-bts-1-new","1.2.1824221","binance-bts-1-rewardss","1.2.1824178","binance-bts-1-ru","1.2.1824294","binance-bts-1-coinbase","1.2.1824293","binance-bts-1-bybit","1.2.1824292","binance-xbts","1.2.1824199","network-faucet","1.2.1824459","binance-bts-1-crypto47","1.2.1824451","huobi-promo","1.2.1824450","binance-bts-1-bit1t","1.2.1824426","binance-bts-1-shib","1.2.1824425","binance-bts-1-solana","1.2.1824401","mxccom-kypia","1.2.1824400","gate-io-bts66-kypia","1.2.1824399","huobi-pro-kypia","1.2.1824398","binance-bts-1-kypia","1.2.1824364","mxccom-ledge","1.2.1824361","binance-bts-1-depo","1.2.1824351","mxccom-itp","1.2.1824347","binance-bts-1-worldwide","1.2.1824346","binance-bts-1-autotest","1.2.1824345","binance-bts-1-comm","1.2.1824335","mxccom-promo","1.2.1824334","gate-io-bts66-io","1.2.1824333","gate-io-bts66-promo","1.2.1824332","gate-io-bts66-gateiopromo","1.2.1824331","huobi-pro-proma","1.2.1824330","mxccom-mexcpromo","1.2.1824329","mxccom-mxcpromo","1.2.1824328","gate-io-bts66-gatpromo","1.2.1824326","mxccom-coins","1.2.1824382","binance-bts-1-sale","1.2.1824338","mxccom-refund","1.2.1824392","andriydemch","1.2.1824323","binance-bts-allocation","1.2.1823874","coinbase-1","1.2.1823477","bestchange-trade","1.2.1823467","bch-network-1","1.2.1824356","bybit-bsc-network-1","1.2.1823809","usdc-trc20-network","1.2.1823861","trc20-4-testnet","1.2.1824394","vladimir4621","1.2.1824427","binance-bts-1-done","1.2.1824404","binance-bts-1-share","1.2.1824524","mxccompromocode","1.2.1824521","mxccom-promocode","1.2.1824520","promocode","1.2.1824515","binance-bts-1-vest","1.2.1824506","binance-bts-1-us","1.2.1824499","huobi-pro-polygon","1.2.1824495","huobi-pro-bit","1.2.1824487","huobi-pro-newflow","1.2.1824476","binance-bts-1-hight","1.2.1824517","binance-bts-1-grant","1.2.1824509","binance-bts-1-donate","1.2.1824502","binance-bts-1-donation","1.2.1824526","dj-trader2023","1.2.1824525","lipatov1997","1.2.1824519","wadymko554","1.2.1824518","bot2222","1.2.1824504","binance-user-86d2b","1.2.1824500","cr1stal2408","1.2.1824473","binance-user-e33cd","1.2.1824471","binance-user-8f312","1.2.1824470","binance-user-7012d","1.2.1824491","binance-bts-airdrop","1.2.1824490","binance-bts-1-airdtop","1.2.1824560","btsfee","1.2.1824559","huobi-pro-memobit","1.2.1824556","binance-bts-1-blockchain","1.2.1824554","binance-bts-8-mem","1.2.1824545","gate-io-bts66-promocode","1.2.1824543","huobi-pro-colds","1.2.1824542","huobi-promocode","1.2.1824537","binance-bts-1-donating","1.2.1824602","activation","1.2.1824618","danyluk-vitaliy","1.2.1824615","vitaliy-danilyuk2","1.2.1824614","binance-user-a33c5","1.2.1824587","binance-user-4e6d5","1.2.1824573","binance-user54fa5","1.2.1824571","hannah-d6397","1.2.1824568","binance-user-5fc9a","1.2.1824566","binance-user71sv95","1.2.1824561","walpl0609","1.2.1824557","binance-user36va60","1.2.1824549","yaremchuk-m","1.2.1824539","zhasik-m","1.2.1824565","bnb1vzqm3zr3ajufzdhktnh5shn0n3wt59dfrjjgy3","1.2.1824591","test123-test123","1.2.1824589","nitron23","1.2.1824622","mxccom-network","1.2.1824621","mxccom-bts","1.2.1824619","huobi-pro-year","1.2.1824612","huobi-pro-chain","1.2.1824611","binance-bts-1-lightning","1.2.1824606","huobi-pro-rec","1.2.1824598","huobi-pro-affilmo","1.2.1824596","huobi-pro-dep","1.2.1824588","mxccom-test","1.2.1824441","bit-shares-token","1.2.1828863","green-null","1.2.1829718","murad","1.2.1829715","bo0rne2h","1.2.1829714","serhii1715","1.2.1829713","alexsan2010","1.2.1829648","andromeda729","1.2.1829641","nusxame95","1.2.1829640","nusxname95","1.2.1829639","yangibin","1.2.1829638","mxccom-marseill07","1.2.1829637","mxccom-markus01","1.2.1829636","marseill07","1.2.1829622","metalwork52","1.2.1829621","phartention","1.2.1829613","arsh86rus","1.2.1829600","oybek1999","1.2.1829599","zokir180","1.2.1829598","marshal15ram","1.2.1829595","nedofrey","1.2.1829492","fprizrak","1.2.1829491","kaught","1.2.1829482","powerlife81","1.2.1829454","belskiiden","1.2.1829453","denis36afg","1.2.1829450","patrusheva32","1.2.1829449","zevs97","1.2.1828620","mxccom-europe","1.2.1827070","mxccom-usa","1.2.1826812","mxccom-test-15","1.2.1826811","mxccom-vip","1.2.1826414","binance-bts-1-canada","1.2.1826347","binance-bts-1-sweden","1.2.1826254","binance-bts-1-world","1.2.1825856","binance-bts-1-chinese","1.2.1825769","binance-bts-1-asia","1.2.1825725","binance-bts-1-global","1.2.1825385","binance-bts-1-european","1.2.1825271","binance-bts-1-europe","1.2.1824861","binance-bts-1-activation","1.2.1824820","binance-bts-1-economy","1.2.1824814","binance-bts-1-trophy","1.2.1824778","huobi-pro-donation","1.2.1824729","binance-bts-1-chance","1.2.1824676","binance-bts-1-charity","1.2.1828276","mnbvcxzx1038","1.2.1827814","mxccom-promotions","1.2.1827813","mxccom-benefit","1.2.1826770","mxccom-payback","1.2.1826769","mxccom-payout","1.2.1826089","mxccom-refill","1.2.1825412","binance-bts-1-halal","1.2.1825408","binance-bts-promocode-1","1.2.1825297","binance-bts-1-promocode-05","1.2.1825025","binance-bts-1-awardings","1.2.1825024","binance-bts-1-refunds","1.2.1825022","binance-bts-1-airdrops","1.2.1825021","binance-bts-1-coindrops","1.2.1824951","binance-bts-1-refills","1.2.1824696","binance-bts-1-claim-reward","1.2.1824695","binance-bts-1-retrodrop","1.2.1824675","mxccom-rewarding","1.2.1827299","mxccom-ad","1.2.1824684","rewards","1.2.1825895","selim2204","1.2.1825477","vladislav12p","1.2.1825366","adam-mazur","1.2.1825365","borchahov-1996","1.2.1825363","borshahov-1996","1.2.1825349","afanaseyggg1","1.2.1825348","afanaseygg1","1.2.1825326","thenotorious1","1.2.1825310","afanaseygg","1.2.1825268","anonymous-user-893cb","1.2.1825267","anonymous-user-ca47d","1.2.1825266","anonymous-user-ca45d","1.2.1825265","anonymus-user-ca47d","1.2.1825264","anonymus-user-ca45d","1.2.1825262","adam-kostoyev","1.2.1825259","ruslan-mazur","1.2.1825231","alekschange","1.2.1825227","madibek1998","1.2.1825226","borz0510","1.2.1825209","binance-user492025","1.2.1825197","kmg-kz","1.2.1824809","yaali0413","1.2.1824760","grisha026","1.2.1824758","binance-user57ua93","1.2.1824694","izmir1","1.2.1826547","mxccom-testnet-bts","1.2.1826018","gate-io-bts66-bitshares","1.2.1825970","binance-bts-1-eu","1.2.1825829","huobi-pro-bitshares","1.2.1825571","binance-bitshares-ts1","1.2.1825347","binance-bts-1-bit-shares","1.2.1826549","mxccom-bts-testnet","1.2.1826548","mxccom-testnet-bitshares","1.2.1826546","mxccom-test-net","1.2.1826469","gate-io-bts66-testnet","1.2.1825753","binance-bts-1-overdraft","1.2.1826228","mxccom-premium","1.2.1826205","binance-bts-0103-promoaction-deposit","1.2.1827438","eosbttcojp21","1.2.1827437","eosbttcojp11","1.2.1827436","eosbttcust11","1.2.1827435","eosbittrade1","1.2.1826519","binance-bts-01030","1.2.1826476","binance-hts-0103","1.2.1826368","ztsiostw","1.2.1826367","ztsiostd","1.2.1826341","bdhivesteem","1.2.1826340","binance-bts-9193","1.2.1826339","binance-bts-0193","1.2.1826338","binance-bts-9103","1.2.1826337","binance-bts-1030","1.2.1826336","binance-bts-0203","1.2.1826335","binance-bts-003","1.2.1826334","xbtsx.eos","1.2.1826333","xbtsx.lunareum","1.2.1826332","xbtsx.btc","1.2.1826330","kucoin-wallet-1","1.2.1826329","xbtsx.usdt","1.2.1826328","binance-btc-0103","1.2.1826327","binace-btc-0103","1.2.1826326","binance-btz-0103","1.2.1826325","binance-bts-0103binance-bts-0103","1.2.1826324","bbinance-bts-0103","1.2.1826323","bunance-bts-0103","1.2.1826322","banance-bts-0103","1.2.1826321","benance-bts-0103","1.2.1826320","binanze-bts-0103","1.2.1826319","binonce-bts-0103","1.2.1826318","bnb-bts-0103","1.2.1826317","bn-bts-0103","1.2.1826316","binance-bitshares-0103","1.2.1826315","pinance-bts-0103","1.2.1826314","dinance-bts-0103","1.2.1826313","binancw-bts-0103","1.2.1826312","binancr-bts-0103","1.2.1826311","binanc3-bts-0103","1.2.1826310","binsnce-bts-0103","1.2.1826309","binamce-bts-0103","1.2.1826308","bimance-bts-0103","1.2.1826307","blnance-bts-0103","1.2.1826306","bonance-bts-0103","1.2.1826305","binane-bts-0103","1.2.1826304","binanec-bts-0103","1.2.1826303","binance-bts-0130","1.2.1826302","binance-bts-0013","1.2.1826301","binance-bts-1003","1.2.1826300","binance-bt-0103","1.2.1826298","binance-bs-0103","1.2.1826297","binance-ts-0103","1.2.1826296","binanc-bts-0103","1.2.1826295","binanse-bts-0103","1.2.1826294","biance-bts-0103","1.2.1826293","binace-bts-0103","1.2.1826292","binnace-bts-0103","1.2.1826291","biannce-bts-0103","1.2.1826290","bnance-bts-0103","1.2.1826289","binance-bts-0101","1.2.1826288","binance-bts-0105","1.2.1826287","binance-bts-0102","1.2.1826286","bts-0103-binance","1.2.1826285","binance-0103-bts","1.2.1826284","bts-binance-0103","1.2.1826283","binance-0103","1.2.1826282","binancebts0103","1.2.1826281","binance-bts0103","1.2.1826280","binancebts-0103","1.2.1826279","inance-bts-0103","1.2.1826278","binance-bts-01033","1.2.1826277","binance-bts-013","1.2.1826276","binance-bts-010","1.2.1826275","binance-bts-103","1.2.1829503","binance-bts-0103-rewards","1.2.1829501","binance-bts-0103-gift","1.2.1829500","binance-bts-0103-token","1.2.1826107","binance-bts-mining","1.2.1825492","binance-bts-1-taburetka","1.2.1829374","huobi-pro-miner2","1.2.1829181","huobi-pro-miner1","1.2.1827688","bts-pool-mining","1.2.1826983","bts-miner-pools","1.2.1826903","bts-miner-pool","1.2.1826902","huobi-pro-miner","1.2.1826901","bts-mining-0103","1.2.1826559","bts-mining-pool","1.2.1826525","binancebts01033","1.2.1826046","binance-bts-1mining","1.2.1826045","binance-bts-1-minings","1.2.1826044","binance-bts-1-stakingreward","1.2.1826043","binance-bts-1-stake","1.2.1826042","binance-bts-1-miningpool","1.2.1824883","binance-bts-1-1030","1.2.1824854","fresh-land","1.2.1828824","mxccom-texnetbtsru","1.2.1828482","binance-bts-0103-btspromoru","1.2.1827889","binance-bts-0103-promobtsru","1.2.1827431","binance-bts-0103-texnetbts","1.2.1827035","mxccom-texnetbts","1.2.1826865","binance-bts-0103-promobinanceru","1.2.1826863","binance-bts-0103-binancepromoru","1.2.1826862","binance-bts-0103-btspromo","1.2.1826861","binance-bts-0103-promobts","1.2.1826788","binance-bts-0103-promoru","1.2.1826786","binance-bts-1-promowxamp","1.2.1826148","binance-bts-0103-promoexample","1.2.1825976","binance-bts-1-promoexample","1.2.1825857","binance-bts-1-examplepromo","1.2.1825756","binance-bts-1-example","1.2.1824781","binance-bts-1ru","1.2.1824677","binance-bts-1-ua","1.2.1825804","coinbase-binance-1","1.2.1825803","bybit-binance-1","1.2.1825802","binance-bts-coinbase","1.2.1825801","binance-bts-bybit","1.2.1825055","coinbase-binance-testnet","1.2.1825054","binance-bts-trc-20","1.2.1825053","binance-bts-testnet","1.2.1825051","coinbase-bts-testnet","1.2.1825050","bybit-bts-testnet","1.2.1825049","binance-bybit-testnet","1.2.1825048","binance-bep-20","1.2.1825047","binance-testnet-bts","1.2.1824735","art04","1.2.1826744","binance-bts-1-bin","1.2.1826679","mxccom-mxpromo-2","1.2.1826660","mxccom-dsrqmxa","1.2.1826657","binance-bts-1-harr","1.2.1826623","mxccom-promout","1.2.1826612","binance-bts-1-asdas","1.2.1826604","mxccom-asdsa3","1.2.1826558","sad-dasasd","1.2.1826542","mxccom-prem-frost","1.2.1826500","binance-bts-1-test25","1.2.1826495","binance-bts-0103-cold","1.2.1826494","binance-bts-0103-bep20","1.2.1826493","binance-bts-0103-shib","1.2.1826492","binance-bts-0103-solana","1.2.1826491","binance-bts-0103-trc20","1.2.1826490","binance-bts-0103-erc20","1.2.1826488","binance-bts-0103-polygon","1.2.1826487","binance-bts-0103-trans","1.2.1826470","binance-bts-1-promow","1.2.1826452","binance-bts-1-jenia3495","1.2.1826444","mxccom-purse8794","1.2.1826436","mxccom-ingvar","1.2.1826431","mxccom-up","1.2.1826410","mxccom-cardano","1.2.1826407","binance-bts-1-yanyk","1.2.1826404","mxccom-vvaz","1.2.1826396","mxccomdev","1.2.1826386","mxccom-back","1.2.1826365","mxccom-affiliate","1.2.1826364","binance-bts-1-affiliate","1.2.1826363","mxccom-cryptoaffilate6","1.2.1826362","mxccom-cryptobusiness1","1.2.1826360","binance-bts-1-highrollerzxc","1.2.1826359","binance-bts-1-highroller","1.2.1826342","mxccom-moex","1.2.1826258","mxccom-kazah","1.2.1826242","mxccom-memobts","1.2.1826222","mxccom-prom","1.2.1826124","binance-bts-1-frost","1.2.1826121","mxccom-test2","1.2.1826120","mxccom-test1","1.2.1826109","binance-bts-1-pot","1.2.1826108","binance-bts-1-bts1","1.2.1826102","binance-bts-0103-award","1.2.1826101","binance-bts-0103-futures","1.2.1826100","binance-bts-0103-mining","1.2.1826078","binance-bts-1-base","1.2.1825703","binance-bts-1-core","1.2.1825632","huobi-pro-bts-send","1.2.1825631","mxbts20","1.2.1825630","mxccom-1","1.2.1825629","huobi-pro-red","1.2.1825628","mxccom-eth","1.2.1825627","mxccom-ethereum","1.2.1825626","mxccom-bnb","1.2.1825624","mxccom-bep2","1.2.1825622","mxccom-polygon","1.2.1825621","mxccom-erc20","1.2.1825620","huobi-pro-trc20","1.2.1825619","huobi-pro-bep20","1.2.1825618","huobi-pro-bep2","1.2.1825617","huobi-pro-testchain","1.2.1825616","huobi-pro-trustwallet","1.2.1825606","zalupa-konya","1.2.1825605","bts-subnetwork","1.2.1825599","huobi-pro-testnet1","1.2.1825415","binance-bts-1-mang","1.2.1825411","mxccom-memobits","1.2.1825410","mxccom-promobts","1.2.1825409","binance-bts-1-airdroping","1.2.1825333","mxccom-rede","1.2.1825332","mxccom-rete","1.2.1825331","mxccom-chain","1.2.1825330","mxccom-red","1.2.1825329","mxccom-bep20","1.2.1825328","mxccom-trc20","1.2.1825223","binance-bts-1-red","1.2.1825218","binance-bts-1-aasd","1.2.1825217","binance-bts-1-usas","1.2.1825138","binance-bts-1-deposhit","1.2.1825111","binance-bts-1-edge","1.2.1825108","binance-bts-1-memobits","1.2.1824938","binance-bts-1-fxkfop2018","1.2.1824847","binance-bts-1-subnetwork","1.2.1824793","huobi-pro-1-withdraw","1.2.1824783","binance-bts-1-fix","1.2.1824686","huobi-pro-025","1.2.1824685","huobi-pro-026","1.2.1824674","huobi-pro-erc20","1.2.1824673","huobi-pro-ethereum","1.2.1824665","mxccom-money","1.2.1824664","mxccom-binance","1.2.1824644","binance-bts-1-iceteam-pidorasy","1.2.1825838","huobi-pro-id","1.2.1825830","huobi-pro-0","1.2.1825596","huobi-pro-memo","1.2.1825595","huobi-pro-tag","1.2.1824829","huobi-bts-memo","1.2.1824827","gate-bts-memo","1.2.1824755","mxccom-bts-memo","1.2.1824754","mexc-bts-memo","1.2.1824707","binance-memo","1.2.1824617","binance-bts-memo","1.2.1824442","binance-bts-2-token","1.2.1830111","bitcoiindonesia","1.2.1830059","bictoinindonesia","1.2.1830056","mexcom","1.2.1830055","mccom","1.2.1829979","bitocinindonesia","1.2.1829978","mxcoom","1.2.1829891","bitcoinindonecia","1.2.1829889","bitcoinndonesia","1.2.1829888","bitcoinindodax","1.2.1829887","bitconindonesia","1.2.1829886","bitcoinindomesia","1.2.1829884","bitcoinindonesa","1.2.1829883","bitcionindonesia","1.2.1829635","mxccoom","1.2.1829577","binance-pro-0103","1.2.1829533","mexccom","1.2.1829302","mxccommxccom","1.2.1829253","gate-io--bts66","1.2.1829252","gate--io-bts66","1.2.1829249","huobi--pro","1.2.1829248","binance--bts-0103","1.2.1829247","binance-bts--0103","1.2.1829031","u86882318976131072","1.2.1829030","coinex-bts11","1.2.1829028","coinex-11","1.2.1828973","nxccom","1.2.1828951","simpleswap","1.2.1828949","zxfgft5","coinbasebase","1.2.1603952","accountcreat","1.2.1799179","atomintlexch","1.2.1799180","bcgame222333","1.2.1799181","bcgameeoswin","1.2.1799182","beexpayioeos","1.2.1799183","bikicoineos5","1.2.1593635","bilaxyeos111","1.2.1799184","bitforexcoin","1.2.1596635","bithumbeos15","1.2.1677135","bithumbrecv1","1.2.1635360","bitmaxaddrz1","1.2.1109244","bitoctoeosio","1.2.1799185","bitruebitrue","1.2.1799186","bitvavodepos","1.2.1799187","bkexeosusers","1.2.1234827","btcturkeosio","1.2.1761232","btflwnetex24","1.2.1799188","bweosdeposit","1.2.1282180","bybitdeposit","1.2.1761243","catexioeosio","1.2.1799189","changenoweos","1.2.1799119","coinboxstore","1.2.1799190","coincolasave","1.2.1653599","coinealeoswa","1.2.1799191","coinexviabtc","1.2.1087752","coinonekorea","1.2.1150124","coinspoteos1","1.2.1603157","crexpayments","1.2.1799192","cryptocomeos","1.2.1761230","cryptomkteos","1.2.1799193","ctforeos2222","1.2.1147939","dcoindeposit","1.2.1212186","dfttothemoon","1.2.1158646","e1k2m1ynpoof","1.2.1703024","eoshoowallet","1.2.1080697","eosprimedice","1.2.1799194","eosupbitsusr","1.2.1703357","eoswithmixin","1.2.1212806","exmodeposits","1.2.1799195","exodussignup","1.2.1689962","freewalletin","1.2.1797385","gopaxdeposit","1.2.1150123","gxgxcomtotal","1.2.1799196","gyztsojzgage","1.2.1799197","hitbtcpayins","1.2.1080701","hotbitioeoss","1.2.1606463","hotbitkorean","1.2.1799198","ilovebityard","1.2.1799199","indodaxaccnt","1.2.1594372","koineksadres","1.2.1594877","korbiteosdep","1.2.1797390","kunaexchange","1.2.1211841","latokeneos11","1.2.1799200","lbkexdeposit","1.2.1637485","luckyfish321","1.2.1799201","makeaccounts","1.2.1799202","mathmathmath","1.2.1794559","mercatoxeos1","1.2.1604773","metalcccceos","1.2.1799203","mxcexdeposit","1.2.1261064","myeostokenin","1.2.1799204","nobitexeosw1","1.2.1799205","okcoincomeos","1.2.1761246","orinocotrade","1.2.1799206","paribuwallet","1.2.1273867","probitwallet","1.2.1799207","radardeposit","1.2.1653604","stakecasino1","1.2.1799208","th3f4tw4113t","1.2.1681437","tokenbankpro","1.2.1211831","trustbitopro","1.2.1799209","unocoinindia","1.2.1799210","useosbinance","1.2.1761231","utexiopayin1","1.2.1799211","uytt1epvvwtn","1.2.1799212","wablockchain","1.2.1799213","walleteos125","1.2.1700871","whaleextrust","1.2.1147873","x1bitpaygate","1.2.1799214","xq3bcloi5tox","1.2.1799215","youhodlereos","1.2.1799216","yuo4dirjxmz4","1.2.1799217","z1wdmuuosmes","1.2.1770761","zebpaypayins","1.2.1799218","kucoin4telos","1.2.1804311","dadusdtokens","1.2.1804093","usdxusdxusdx","1.2.1804092","depositusd11","1.2.1804091","tethertether","1.2.1804089","kucointoabbc","1.2.1803967","roqquloveeos","1.2.1803409","eosctoxforce","1.2.1803312","gateioioabbc","1.2.1802728","coinbeneabbc","1.2.1802727","bikicoinpts1","1.2.1802507","coinex111111","1.2.1801732","bitsonicpro","1.2.1799436","bitvavo","1.2.1785173","deepcrypto8","1.2.1211130","deposit-kr","1.2.1787961","gateiodeposit","1.2.1783716","ionomy","1.2.1799435","mxcsteem","1.2.1785904","orinoco","1.2.1794558","probitsteem","1.2.1791239","receiver-kr","1.2.1787962","receiver-pro","1.2.1787963","user.dunamu","1.2.1761235","roqqulovesteem","1.2.1803408","roqqulovehive","1.2.1803407","bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23","1.2.1607940","bnb1jdy9svxl8jk3s9grsvencvrhx7pt3nvel68uk5","1.2.1798126"];var u=a(39014);class p{static checkFeePool(e,t){if(!(e=e.toJS?e:s.ChainStore.getAsset(e)))return;const a=s.ChainStore.getObject(e.get("dynamic_asset_data_id"));return a?parseInt(a.get("fee_pool"),10)>=t:void 0}static getPossibleFees(e,t,a=!1){let r=s.ChainStore.getAsset("1.3.0");if(!(e=!e||e.toJS?e:s.ChainStore.getAccount(e))||!r)return{assets:["1.3.0"],fees:{"1.3.0":0}};let o=[],l={},c=s.ChainStore.getObject("2.0.0"),d=(0,i.uQ)(t,null,c),u=e.get("balances");if(!u||0==Object.keys(u).length)return{assets:[],fees:{}};for(const[t,a]of Object.entries(this.getAccountBalances(e))){let e,i=!1;if("1.3.0"===t&&a>=d)i=!0;else if(a&&s.ChainStore.getAsset(t)){let o=s.ChainStore.getAsset(t),l=n.Z.convertPrice(r,o.getIn(["options","core_exchange_rate"]).toJS(),null,o.get("id"));e=parseInt(n.Z.convertValue(l,d,r,o),10),parseInt(e,10)!==e&&(e+=1),a>=e&&this.checkFeePool(o,e)&&(i=!0)}i&&(o.push(t),l[t]=e||d)}if(a&&0==o.length)throw"Insufficient balance for fee";return{assets:o,fees:l}}static getFinalFeeAsset(e,t,a="1.3.0",n=!1){let r=u.Z.getSetting("fee_asset"),o=s.ChainStore.getAsset(r).toJS(),{assets:i}=this.getPossibleFees(e,t,n);return i.length>0?-1!==i.indexOf(o.id)?o.id:-1!==i.indexOf(a)?a:i[0]:o.id}static getAccountBalances(e){let t=(e=!e||e.toJS?e:s.ChainStore.getAccount(e)).get("balances"),a={};return t.forEach(((e,t)=>{let n=s.ChainStore.getObject(e),r=n?parseInt(n.get("balance"),10):0;a[t]=r})),a}static isKnownScammer(e){let t=null;return-1!==l.indexOf(e)?t=o().translate("account.polo_scam"):-1!==c.indexOf(e)?t=o().translate("account.bittrex_scam"):-1!==d.indexOf(e)&&(t=o().translate("account.other_scam")),t}}},19490:(e,t,a)=>{"use strict";a.d(t,{Mg:()=>h,PU:()=>p,ei:()=>m,uI:()=>g});var s=a(67294),n=a(58074),r=a.n(n),o=a(112),i=a.n(o),l=a(41737),c=a(73727),d=a(76660),u=a(13973);function p(e="depositAllowed"){let t={};return this.props.backedCoins.forEach(((a,s)=>{a.forEach((n=>{let r=n.symbol.split(".").pop();t[r]||(t[r]=[]),n[e]&&("OPEN"!=a||n.isAvailable)&&t[r].push(s)}))})),t}function h(){const{gatewayStatus:e,selectedAsset:t}=this.state;var a=0;for(let s in e)this.props.backedCoins.get(s.toUpperCase(),[]).find((e=>{((t==e.backingCoinType||t==e.backingCoin)&&e.depositAllowed||e.isAvailable)&&a++}));return a}function m(e,t="depositAllowed",a=null){const{balances:s,assets:n}=this.props||{};let r=l.GD.call(this,e,t),o=this.state.selectedGateway||null,i={};s&&n&&s.forEach((e=>{if(e&&e.toJS){let t=n.get(e.get("asset_type"));if(t){let a=t.symbol.split(".");if(2==a.length){let t=a[1],s=a[0];i[t]||(i[t]={}),i[t][s]=e.get("balance")}}}}));let{coinToGatewayMapping:c}=this.state;if(e!=this.state.selectedAsset&&c&&c[e]){let t=c[e];if(t.length&&!a)if(i[e]){let a=null,s=null;for(var d in i[e]){let t=i[e][d];a||(a=t),s||(s=d)}o=t[t.indexOf(s)]||t[0]}else o=t[0];else t.length&&a&&(o=a(c[e],i[e]))}return this.setState({selectedAsset:e,selectedGateway:o,gatewayStatus:r}),{selectedAsset:e,selectedGateway:o}}function g(e){let{selectedGateway:t,gatewayStatus:a,nAvailableGateways:n,error:o,onGatewayChanged:l,selectedAsset:p=null,balances:h=null,assets:m=null}=e,g={};h&&m&&h.forEach((e=>{if(e&&e.toJS){let t=m.get(e.get("asset_type"));if(t){let a=t.symbol.split(".");if(2==a.length){let s=a[1],n=a[0];g[s]||(g[s]={}),g[s][n]=[e.get("balance"),t]}}}}));let b=t&&a[t]?"/help/gateways/"+a[t].name.toLowerCase().replace("-",""):null,f=[];return Object.keys(a).map((e=>{f.push(a[e]),a[e].id==t&&(t=a[e].name)})),f.sort(((e,t)=>e.name>t.name?1:e.name{if(e.options.enabled)return s.createElement(d.Select.Option,{key:e.name,value:e.id},e.name,g&&g[p]&&g[p][e.id]?s.createElement("span",{style:{float:"right"}},u.Z.format_asset(g[p][e.id][0],g[p][e.id][1])):null)})))))))}},7581:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});var s=a(35922),n=a.n(s),r=a(13973);class o{static getFlagBooleans(e,t=!1){let a={charge_market_fee:!1,white_list:!1,override_authority:!1,transfer_restricted:!1,disable_force_settle:!1,global_settle:!1,disable_confidential:!1,witness_fed_asset:!1,committee_fed_asset:!1,lock_max_supply:!1,disable_new_supply:!1,disable_mcr_update:!1,disable_icr_update:!1,disable_mssr_update:!1,disable_bsrm_update:!1,disable_collateral_bidding:!1};if("all"===e){for(let e in a)t||-1!==n().uia_permission_mask.indexOf(e)?a[e]=!0:delete a[e];return a}for(let s in a)t||-1!==n().uia_permission_mask.indexOf(s)?e&n().permission_flags[s]&&(a[s]=!0):delete a[s];return a}static getFlags(e){let t=Object.keys(n().permission_flags),a=0;return t.forEach((t=>{e[t]&&"global_settle"!==t&&(a+=n().permission_flags[t])})),a}static getPermissions(e,t=!1){let a=t?Object.keys(n().permission_flags):n().uia_permission_mask,s=0;return a.forEach((t=>{e[t]&&"global_settle"!==t&&(s+=n().permission_flags[t])})),t&&e.global_settle&&(s+=n().permission_flags.global_settle),s}static parseDescription(e){let t;e=r.Z.sanitize(e);try{t=JSON.parse(e)}catch(e){}for(let e in t)t[e]=r.Z.sanitize(t[e]);return t||{main:e}}static extractRawFeedPrice(e){if(e.bitasset)return e.bitasset.current_feed.settlement_price;if(e.current_feed)return e.current_feed.settlement_price;if(e.settlement_price)return e.settlement_price;if(e.get("bitasset"))return e.getIn(["bitasset","current_feed","settlement_price"]);if(e.get("settlement_price"))return e.getIn(["settlement_price"]);if(e.get("current_feed"))return e.getIn(["current_feed","settlement_price"]);throw"Feed price not found!"}}},96628:(e,t,a)=>{"use strict";a.d(t,{a:()=>n});var s=a(55420);function n(e,t=new Date){let a=e,n=s.ChainConfig.address_prefix.toLowerCase();0!==a.indexOf(n)&&(a=n+"_"+a);let r=t.getMonth()+1,o=t.getDate();return a=`${a}_${t.getFullYear()}${r>=10?r:"0"+r}${o>=10?o:"0"+o}.bin`,a}},84224:(e,t,a)=>{"use strict";a.d(t,{AN:()=>v,El:()=>m,Eu:()=>k,Im:()=>f,Ob:()=>S,Pk:()=>_,So:()=>C,YN:()=>E,Yr:()=>p,aK:()=>g,dV:()=>y,pQ:()=>A,r$:()=>b,vC:()=>h});var s=a(19602),n=a(21712),r=a(23316);const o=(0,s.ZP)("");let i=(0,s.ZP)("oidc.user:https://blocktrades.us/:10ecf048-b982-467b-9965-0b0926330869"),l={},c={},d={};function u(e){d[e]=setTimeout((()=>{delete c[e],delete d[e]}),3e4)}function p(e=n.yP.BASE+n.yP.COINS_LIST){const t="fetchCoins_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchCoins error from ${e}: ${t}`),t}))),new Promise(((e,s)=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)})).catch(s)})))}function h(e=n.yP.BASE+n.yP.COINS_LIST){return fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchCoinsSimple error from ${e}: ${t}`),t}))}function m(e=n.q.BASE+n.q.TRADING_PAIRS){const t="fetchTradingPairs_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e,{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((t=>{throw console.log(`fetchTradingPairs error from ${e}: ${t}`),t}))),new Promise(((e,s)=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)})).catch(s)})))}function g(e,t,a=n.q.BASE+n.q.DEPOSIT_LIMIT){return fetch(a+"?inputCoinType="+encodeURIComponent(e)+"&outputCoinType="+encodeURIComponent(t),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((a=>{console.log("error fetching deposit limit of",e,t,a)}))}function b(e,t,a,s=n.q.BASE+n.q.ESTIMATE_OUTPUT){return fetch(s+"?inputAmount="+encodeURIComponent(e)+"&inputCoinType="+encodeURIComponent(t)+"&outputCoinType="+encodeURIComponent(a),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("error fetching deposit limit of",t,a,e)}))}function f(e,t,a,s=n.q.BASE+n.q.ESTIMATE_INPUT){return fetch(s+"?outputAmount="+encodeURIComponent(e)+"&inputCoinType="+encodeURIComponent(t)+"&outputCoinType="+encodeURIComponent(a),{method:"get",headers:new Headers({Accept:"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("error fetching deposit limit of",t,a,e)}))}function y(e=n.yP.BASE+n.yP.ACTIVE_WALLETS){const t="getActiveWallets_"+e;let a=l[t];return c[t]?Promise.resolve(c[t]):(a||(l[t]=a=fetch(e).then((e=>e.json().then((e=>e)))).catch((t=>{console.log("error fetching blocktrades active wallets",t,e)}))),new Promise((e=>{a.then((a=>{c[t]=a,e(a),delete l[t],d[t]||u(t)}))})))}function _({coin:e,account:t,stateCallback:a}){let s={coin:e,account:t},r=JSON.stringify(s);fetch(n.yP.BASE+"/simple-api/get-last-address",{method:"POST",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:r}).then((e=>{e.json().then((e=>{let t={address:e.address,memo:e.memo||null,error:e.error||null,loading:!1};a&&a(t)}),(e=>{console.log("error: ",e),a&&a({address:e.message,memo:null})}))}),(e=>{console.log("error: ",e),a&&a({address:e.message,memo:null})})).catch((e=>{console.log("fetch error:",e)}))}let w={};function k({inputCoinType:e,outputCoinType:t,outputAddress:a,url:s=n.yP.BASE,stateCallback:o,selectedGateway:i}){let l=r.bg[i],c={inputCoinType:e=l&&l.assetWithdrawlAlias?l.assetWithdrawlAlias[e.toLowerCase()]||e.toLowerCase():e,outputCoinType:t,outputAddress:a},d=JSON.stringify(c);w[d]||(w[d]=!0,fetch(s+"/simple-api/initiate-trade",{method:"post",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:d}).then((e=>{e.json().then((e=>{delete w[d];let t={address:e.inputAddress||"unknown",memo:e.inputMemo,error:e.error||null};o&&o(t)}),(e=>{console.log("error: ",e),delete w[d],o&&o(null)}))}),(e=>{console.log("error: ",e),delete w[d],o&&o(null)})).catch((e=>{console.log("fetch error:",e),delete w[d]})))}function v(e,t,a){let s=JSON.stringify({inputCoinType:e,outputCoinType:t,outputAddress:{address:a}}),r=e+t+a;return o.has(`history_mapping_${r}`)?Promise.resolve(o.get(`history_mapping_${r}`)):new Promise(((e,t)=>{let a={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${i.get("").access_token}`};fetch(`${n.q.BASE}/mappings`,{method:"post",headers:a,body:s}).then((a=>{a.json().then((a=>{a.inputAddress?(o.set(`history_mapping_${r}`,a.inputAddress),e(a&&a.inputAddress)):t()}))})).catch((e=>{console.log("Error: ",e),t()}))}))}function A({allCoins:e,tradingPairs:t,backer:a}){let s=r.bg[a],n={};s.singleWallet&&e.forEach((e=>n[e.backingCoinType]=e)),e.forEach((e=>n[e.coinType]=e));let o={};t.forEach((e=>{o[e.inputCoinType]||(o[e.inputCoinType]={}),o[e.inputCoinType][e.outputCoinType]=!0}));let i=[];return e.forEach((e=>{let t=n[e.backingCoinType];if(e.walletSymbol.startsWith(a+".")&&e.backingCoinType&&t){let a=o[e.backingCoinType]&&o[e.backingCoinType][e.coinType],n=o[e.coinType]&&o[e.coinType][e.backingCoinType];i.push({name:t.name,intermediateAccount:s.intermediateAccount?s.intermediateAccount:t.intermediateAccount,gateFee:t.gateFee||t.transactionFee,walletType:t.walletType,backingCoinType:s.singleWallet?e.backingCoinType.toUpperCase():t.walletSymbol,minAmount:t.minAmount||0,maxAmount:t.maxAmount||999999999,symbol:e.walletSymbol,supportsMemos:t.supportsOutputMemos,depositAllowed:a,withdrawalAllowed:n})}})),i}function E({url:e=n.q.BASE,walletType:t,newAddress:a,output_coin_type:s=null,method:r=null}){return a?r&&"GET"!=r?"POST"==r?fetch(e+"/wallets/"+t+"/check-address",{method:"post",headers:new Headers({Accept:"application/json","Content-Type":"application/json"}),body:JSON.stringify({address:a})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("validate error:",e)})):void 0:(e+="/wallets/"+t+"/address-validator?address="+encodeURIComponent(a),s&&(e+="&outputCoinType="+s),fetch(e,{method:"get",headers:new Headers({Accept:"application/json","Content-Type":"application/json"})}).then((e=>e.json().then((e=>e)))).catch((e=>{console.log("validate error:",e)}))):new Promise((e=>e()))}let x={};function S(e,t=null){const{input_coin_type:a,output_coin_type:s,url:n,account_name:r}=e;if(!a||!s)return Promise.reject();const o=JSON.stringify({inputCoinType:a,outputCoinType:s,outputAddress:r,inputMemo:"blocktrades conversion: "+a+"to"+s}),i=n+a+s+r;return new Promise(((e,a)=>{if(x[i])return e(x[i]);let s={Accept:"application/json","Content-Type":"application/json"};t&&(s={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${t}`}),fetch(n+"/simple-api/initiate-trade",{method:"post",headers:s,body:o}).then((t=>{t.json().then((t=>{x[i]=t,e(t)}),a).catch(a)})).catch(a)}))}const C={has:function(e){return o.has(`history_address_${e}`)},set:function({wallet:e,addresses:t}){o.set(`history_address_${e}`,t)},get:function(e){return o.get(`history_address_${e}`,[])},setLast:function({wallet:e,address:t}){o.set(`history_address_last_${e}`,t)},getLast:function(e){return o.get(`history_address_last_${e}`,"")}}},41737:(e,t,a)=>{"use strict";a.d(t,{E0:()=>h,GD:()=>u,R2:()=>c,in:()=>p,p3:()=>m,v$:()=>d,xA:()=>g});var s=a(55420),n=a(56815),r=a(23316),o=a(112),i=a.n(o),l=a(91822);function c(e){if("1.2.0"===e.get("issuer"))return i().translate("exchange.native");let t="PPY"===e.get("symbol")?"RUDEX":e.get("symbol").split(".")[0];return d("PPY"===e.get("symbol")?"RUDEX.PPY":e.get("symbol"))?r.bg[t].name:null}function d(e){let t="";return t="PPY"===e?"RUDEX":e.split(".")[0],-1!==r.nT.indexOf(t)}function u(e,t="depositAllowed"){let{gatewayStatus:a}=this.state;for(let s in a)a[s].options.enabled=!1,a[s].enabled&&this.props.backedCoins.get(s.toUpperCase(),[]).find((n=>{let r=n.backingCoinType||n.backingCoin,o=void 0===n.isAvailable||"boolean"==typeof n.isAvailable&&n.isAvailable;if(-1!==r.toUpperCase().indexOf("EOS.")){let[e,t]=r.split(".");r=t}n[t]&&o&&e==r&&(a[s].options.enabled=!0)}));return a}function p(e,t){let{selectedGateway:a}=m(e),s=h(e,t);return s?"RUDEX"===a?s.issuerId||s.issuer:s.intermediateAccount||s.issuer:void 0}function h(e,t){let{selectedGateway:a}=m(e);return t.get(a,[]).find((t=>t.symbol.toUpperCase()===e.toUpperCase()))||{}}function m(e){if(e){let[t,a]=e.split(".");return"PPY"===e&&(t="RUDEX",a="PPY"),a||(a=t,t=void 0),{selectedGateway:t,selectedAsset:a}}}async function g(e="4018d784"){if(s.Apis.instance().chain_id&&s.Apis.instance().chain_id.substr(0,8)===e){if(1!==Object.values(r.$S).length)throw"Multiple bridges not yet supported!";r.$S.TRADE.enabled=await r.$S.TRADE.isEnabled(),r.$S.TRADE.enabled&&(n.Z.fetchPairs.defer(),await(0,l.AQ)("TRADE")&&n.Z.temporarilyDisable("TRADE"));for(let e in r.bg){let t=r.bg[e];t.enabled=await t.isEnabled(),t.enabled?t.isSimple?n.Z.fetchCoinsSimple.defer({backer:t.id,url:t.baseAPI.BASE+t.baseAPI.COINS_LIST}):n.Z.fetchCoins.defer({backer:r.bg[e].id,url:t.baseAPI.BASE+t.baseAPI.COINS_LIST,urlBridge:t.baseAPI.BASE+t.baseAPI.TRADING_PAIRS,urlWallets:t.baseAPI.BASE+t.baseAPI.ACTIVE_WALLETS}):n.Z.temporarilyDisable({backer:e})}}}},23316:(e,t,a)=>{"use strict";a.d(t,{$S:()=>c,bg:()=>l,bn:()=>u,nT:()=>d});var s=a(21712),n=a(60567),r=a(91822),o=a(39014);const i=e=>async function(t={}){if(!t.onlyOnChainConfig){if(!(0,n.rC)(e))return!1;if(t.onlyBranding)return!0}if(await(0,r.AQ)(e))return!1;if(t.onlyOnChainConfig)return!0;let a=o.Z.getState().settings.get("filteredServiceProviders",[]);a||(a=[]);let s=!1;return s=1==a.length&&"all"==a[0]||a.indexOf(e)>=0,!!s},l={IOB:{id:"IOB",name:"ioxbank",baseAPI:s.gL,isEnabled:i("IOB"),isSimple:!0,selected:!1,simpleAssetGateway:!0,fixedMemo:{prepend_default:"dex:",prepend_btsid:"",append:""},addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://ioxbank.com",wallet:"https://dex.iobanker.com/"},OPEN:{id:"OPEN",name:"OpenLedger",baseAPI:s.yP,isEnabled:()=>!1,selected:!1,options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},RUDEX:{id:"RUDEX",name:"RuDEX",baseAPI:s.Eu,isEnabled:()=>!1,isSimple:!0,selected:!1,simpleAssetGateway:!0,fixedMemo:{prepend_default:"dex:",prepend_btsid:"btsid-",append:""},addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},SPARKDEX:{id:"SPARKDEX",name:"BitSpark",baseAPI:s.Jt,isEnabled:()=>!1,selected:!1,options:{enabled:!1,selected:!1},landing:"https://www.bitspark.io/",wallet:"Shutdown"},BRIDGE:{id:"BRIDGE",name:"CryptoBridge",baseAPI:s.ul,isEnabled:()=>!1,selected:!1,singleWallet:!0,addressValidatorAsset:!0,useFullAssetName:!0,intermediateAccount:"cryptobridge",options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"},GDEX:{id:"GDEX",name:"GDEX",baseAPI:s.Jg,isEnabled:()=>!1,options:{enabled:!1,selected:!1},landing:"https://bitsharestalk.org/index.php?topic=33861",wallet:"Only manual deposit / withdraw",comment:"Only manual deposit / withdraw"},PIRATE:{id:"PIRATE",name:"PirateCash",baseAPI:s.GB,isEnabled:i("PIRATE"),isSimple:!0,selected:!1,addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://piratecash.net",wallet:"https://wallet.piratecash.net/"},XBTSX:{id:"XBTSX",name:"XBTS Native Chains",baseAPI:s.V9,isEnabled:i("XBTSX"),isSimple:!0,selected:!1,addressValidatorMethod:"POST",options:{enabled:!1,selected:!1},landing:"https://xbts.io/",wallet:"https://ex.xbts.io/"},CITADEL:{id:"CITADEL",name:"Citadel",baseAPI:s.Ay,isEnabled:()=>!1,selected:!1,assetWithdrawlAlias:{monero:"xmr"},options:{enabled:!1,selected:!1},landing:"Shutdown",wallet:"Shutdown"}},c={TRADE:{id:"TRADE",name:"Blocktrades",isEnabled:i("TRADE"),landing:"https://blocktrades.us"}},d=Object.keys(l);function u(e){return d.reduce(((t,a)=>(e.forEach((e=>{t.push(`${a}.${e}`)})),t)),[])}},19602:(e,t,a)=>{"use strict";a.d(t,{ZP:()=>p,oA:()=>c,tc:()=>l});const s="undefined"==typeof localStorage?null:localStorage;class n{constructor(e){this._storage_prefix=e}_translateKey(e){return this._storage_prefix+e}get(e,t={}){try{if(this.has(e)){e=this._translateKey(e);var a=this._get(e);return null==a?t:a}return t}catch(e){return t}}_get(e){throw Error("Needs implementation")}set(e,t){this._set(this._translateKey(e),t)}_set(e){throw Error("Needs implementation")}remove(e){this._remove(this._translateKey(e))}has(e){return this._has(this._translateKey(e))}_remove(e){throw Error("Needs implementation")}_has(e){throw Error("Needs implementation")}}class r extends n{_get(e){let t=s.getItem(e);return""===t?t:JSON.parse(t)}_set(e,t){""===t?s.setItem(e,t):s.setItem(e,JSON.stringify(t))}_remove(e){s.removeItem(e)}_has(e){return function(e,t){return e in t}(e,s)}_getLocalStorage(){return s}}class o extends n{constructor(e){super(e),this._dict={}}_get(e){return this._dict.get(e)}_set(e,t){this._dict[e]=JSON.stringify(t)}_remove(e){delete this._dict[e]}_has(e){return e in this._dict}}var i=null;const l=e=>{if("inram"!==e&&"persistant"!==e)throw"Please choose inram or persistant storage type";i=e},c=()=>null==i||"persistant"==i;class d extends n{constructor(e){super(e),null===s?this.useInRam():this.usePersistant()}isPersistant(){return this._impl instanceof r}_switchIfNecessary(){null!=i&&("inram"==i?this.useInRam():this.usePersistant())}_get(e){return this._switchIfNecessary(),this._impl._get(e)}_set(e,t){this._switchIfNecessary(),this._impl._set(e,t)}_remove(e){this._switchIfNecessary(),this._impl._remove(e)}_has(e){return this._switchIfNecessary(),this._impl._has(e)}useInRam(){let e={};if(this.isPersistant()){console.log("Switching to InRam storage for private session");for(var t=0,a=this._impl._getLocalStorage().length;t(e in u||(u[e]=new d(e)),u[e])},5833:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(13973),n=a(30806),r=a(74366);let{object_type:o}=n.ChainTypes,i=Object.keys(o),l={};const c={order_type(e){if("string"!=typeof e)return!1;let t=e.split(".")[1];return i[t]},isAsk(e,t){let a=t.toJS?t.get("id"):t.id;return e.sell_price?e.sell_price.quote.asset_id===a:e.call_price?e.call_price.quote.asset_id===a:void 0},isAskOp:e=>e.amount_to_sell.asset_id!==e.fee.asset_id,limitByPrecision(e,t,a=!0){let n=t.toJS?t.get("precision"):t.precision,r=e.toString().split(".");if(1===r.length||2===r.length&&r[1].length<=n)return e;let o=s.Z.get_asset_precision(n);return e=a?Math.floor(e*o)/o:Math.round(e*o)/o,isNaN(e)||!isFinite(e)?0:e},getFeedPrice(e,t=!1){let a=n.ChainStore.getAsset(e.getIn(["quote","asset_id"])),r=n.ChainStore.getAsset(e.getIn(["base","asset_id"])),o=s.Z.get_asset_price(e.getIn(["quote","amount"]),a,e.getIn(["base","amount"]),r);return t?1/o:o},getFinalPrice(e,t,a,s,n=!1,r=!1){if(a.get("id")===t.get("id"))return 1;const{marketName:o}=this.getMarketName(a,e),{marketName:i}=this.getMarketName(t,e),{marketName:c}=this.getMarketName(t,a);if(l[c]&&!r)return n?l[c].toReal(a.get("id")!==l[c].base.asset_id):l[c];const d=s.get(c);if(d&&d.price&&0!==d.volumeBase)return n?d.price.toReal(a.get("id")!==d.price.base.asset_id):d.price;let u,p;const h=s.get(i);if(h&&h.price){if(0===h.volumeBase&&0===h.volumeQuote)return null;p=h.price.clone()}const m=s.get(o);let g;if(m&&m.price&&(u=m.price.clone()),u&&p){if(0==p.base.amount||0==u.base.amount)return null;g=u.times(p)}else u?g=u:p&&(g=p);if(!g)return null;const b=[g.base.asset_id,g.quote.asset_id];return-1===b.indexOf(a.get("id"))||-1===b.indexOf(t.get("id"))?null:(l[c]=g,setTimeout((function(){delete l[undefined]}),3e4),n?g.toReal(a.get("id")!==g.base.asset_id):g)},convertValue(e,t,a,s,n,o=!0){let i=o?new r.xR({amount:e,asset_id:a.get("id"),precision:a.get("precision")}):new r.xR({real:e,asset_id:a.get("id"),precision:a.get("precision")});if(!t)return;let l=this.getFinalPrice(n,a,t,s,!1);return 1===l?i.getAmount({real:!o}):l&&l.toReal?i.times(l).getAmount({real:!o}):null},parseOrder(e,t,a,n=!1){let r,o,i,l=this.isAsk(e,t),c=s.Z.get_asset_precision(a.toJS?a.get("precision"):a.precision),d=s.Z.get_asset_precision(t.toJS?t.get("precision"):t.precision);if(e.call_price?a.toJS?a.get("precision"):a.precision:t.toJS?t.get("precision"):t.precision,e.sell_price)r=l?e.sell_price.base:e.sell_price.quote,o=l?e.sell_price.quote:e.sell_price.base;else if(e.call_price){r=e.call_price.base,o=e.call_price.quote;let t=r.amount/d/(o.amount/c);i=n?1/t:t}"number"!=typeof o.amount&&(o.amount=parseInt(o.amount,10)),"number"!=typeof r.amount&&(r.amount=parseInt(r.amount,10));let u,p,h=i||o.amount/d/(r.amount/c),m=s.Z.price_to_text(h,e.call_price?t:a,e.call_price?a:t);return e.debt?n?(p=e.debt/c,u=this.limitByPrecision(p/m.full,t)):(u=this.limitByPrecision(e.debt/c,a),p=m.full*u):l?(u=this.limitByPrecision(e.for_sale/c,a),p=m.full*u):(u=this.limitByPrecision(r.amount/o.amount*e.for_sale/c,a),p=e.for_sale/d),p=this.limitByPrecision(p,t),!l&&e.for_sale&&(p=this.limitByPrecision(m.full*u,t)),{value:p,price:m,amount:u}},split_price(e,t){let a=s.Z.format_number(e,Math.max(5,t)).split(".");return{int:a[0],dec:a[1]}},flatten_orderbookchart_highcharts(e,t,a,s){let n,r=[];if(a=void 0!==a&&a){if(e&&e.length)if(n=e.length-1,r.unshift([e[n][0],e[n][1]]),e.length>1)for(let a=e.length-2;a>=0;a--)t&&(e[a][1]+=e[a+1][1]),r.unshift([e[a][0],e[a][1]]);else r.unshift([0,e[n][1]])}else if(e&&e.length)if(r.push([e[0][0],e[0][1]]),e.length>1)for(var o=1;o1e-8*e);if("ask"===t)return{base:a,quote:n};if("bid"===t)return{quote:a,base:n};throw"Unknown type"},isMarketAsset(e,t){let a,s=!1,n=!1;return e.get("bitasset")&&t.get("id")===e.getIn(["bitasset","options","short_backing_asset"])?(s=!0,a={id:e.get("id")}):t.get("bitasset")&&e.get("id")===t.getIn(["bitasset","options","short_backing_asset"])&&(n=!0,s=!0,a={id:t.get("id")}),{isMarketAsset:s,marketAsset:a,inverted:n}},getMarketName(e,t){if(!e||!t)return{marketName:"_"};let a=parseInt(e.get("id").split(".")[2],10),s=parseInt(t.get("id").split(".")[2],10),n=s>a?t:e,r=s>a?e:t;return{baseID:a,quoteID:s,marketName:`${n.get("symbol")}_${r.get("symbol")}`,first:n,second:r}}}},98817:(e,t,a)=>{"use strict";a.d(t,{$:()=>o});var s=a(27851),n=a(92592),r=a(41075);const o=function(e){let t=function(t){return e.get(t).get("key_auths").map((e=>e.get(0)))};!function(e,t,a,o){const i=225/2.8;let l=i+50;const c=[t,e,a],d=["Active Key","Owner Key","Memo Key"];let u=r.Z.isLocked();const p=new s.default({orientation:"portrait",format:[300,450],compressPdf:!0}),h=(e,t,a)=>(t>=a&&(e.addPage(),l=10),p.internal.getNumberOfPages()),m=e=>{let t=h(p,l,400),a=null;u||(a=r.Z.getPrivateKey(e),a&&(a=a.toWif())),g(e,5,l+10,t),!u&&a&&g(a,245,l+10,t),p.text("PublicKey",57,l+20),p.text(e,57,l+30),p.rect(56,l+24,187,8),u||(p.text("PrivateKey",57,l+40),a?p.text(a,57,l+50):p.text("Not found.",57,l+50),p.rect(56,l+44,187,8)),l+=50},g=(e,t,a,s)=>{n.toDataURL(e).then((e=>{p.setPage(s),p.addImage(e,"JPEG",t,a,50,50)})).catch((e=>{console.error(e)}))};let b=new Image;b.src="data:image/png;base64,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",p.addImage(b,"PNG",37.5,30,225,i,"","MEDIUM"),p.text("Account:",18,l-10),p.text(o,42,l-10);let f=c.map(((e,t)=>{t>=1&&(l+=25),h(p,l,400),p.text("Public",22,l+7),p.text(d[t],120,l+7),u||p.text("Private",260,l+7),p.line(5,l+1,295,l+1),p.line(5,l+9,295,l+9),"string"==typeof e?m(e):e.map((e=>{m(e)}))}));Promise.all(f).then((()=>{p.save("bitshares-paper-wallet-"+(u?"public-":"private-")+o+".pdf")}))}(t("owner"),t("active"),e.get("options").get("memo_key"),e.get("name"))}},13863:(e,t,a)=>{"use strict";function s(e){return e.displayName||e.name||"Component"}a.d(t,{G:()=>s})},81237:(e,t,a)=>{"use strict";a.d(t,{cr:()=>f,rX:()=>d,uQ:()=>b});var s=a(30806),n=a(74366),r=a(48764).Buffer;const{operations:o}=s.ChainTypes;function i(e,t=null,a={}){return new Promise(((n,r)=>{(0,s.FetchChain)("getObject","2.0.0").then((s=>{try{n(b(e,t,s,a))}catch(e){r(e)}})).catch(r)}))}function l({assetID:e,type:t="transfer",options:a=null,data:n}={}){return new Promise(((r,o)=>{"1.3.0"===e?r(!0):Promise.all([i(t,a,n),(0,s.FetchChain)("getObject",e.replace(/^1\./,"2."))]).then((e=>{const[t,a]=e;r(parseInt(a.get("fee_pool"),10)>=t)})).catch(o)}))}let c={};function d({accountID:e,feeID:t="1.3.0",type:a="transfer",options:r=null,data:o,operationsCount:d=1}={}){let u=e+"_"+t+"_"+a+"_"+JSON.stringify(r)+"_"+JSON.stringify(o)+"_"+d;return c[u]?c[u].result?Promise.resolve(c[u].result):new Promise(((e,t)=>{c[u].queue.push({res:e,rej:t})})):new Promise(((p,h)=>{c[u]={queue:[{res:p,rej:h}],result:null},Promise.all([i(a,r,o),l({assetID:t,type:a,options:r,data:o}),(0,s.FetchChain)("getAccount",e),(0,s.FetchChain)("getAsset","1.3.0"),"1.3.0"!==t?(0,s.FetchChain)("getAsset",t):null]).then((e=>{let[a,r,o,i,l]=e,p=!1;"1.3.0"===t&&(l=i);let h=o.getIn(["balances","1.3.0"]),m=o.getIn(["balances",t]);if("1.3.0"===t&&!h)return c[u].queue.forEach((e=>{e.res({fee:new n.xR({amount:a*d}),hasBalance:p,hasPoolBalance:r})})),c[u]={result:{fee:new n.xR({amount:a*d}),hasBalance:p,hasPoolBalance:r}},void setTimeout((()=>{delete c[u]}),6e4);Promise.all([h?(0,s.FetchChain)("getObject",h):null,m?(0,s.FetchChain)("getObject",m):null]).then((e=>{let[s,o]=e,h=new n.xR({amount:a*d}),m=!0;if("1.3.0"!==t){let e=l.getIn(["options","core_exchange_rate"]),a=e.get("base").toJS();a.precision=a.asset_id===t?l.get("precision"):i.get("precision");let c=new n.xR(a),d=e.get("quote").toJS();d.precision=d.asset_id===t?l.get("precision"):i.get("precision");let u=new n.xR(d);try{let e=new n.tA({base:c,quote:u});h=h.times(e,!0)}catch(e){o=s,m=!1,r=!1}}o&&o.get("balance")>=h.getAmount()&&(p=!0),c[u].queue.forEach((e=>{e.res({fee:h,hasBalance:p,hasPoolBalance:r,hasValidCER:m})})),c[u]={result:{fee:h,hasBalance:p,hasPoolBalance:r,hasValidCER:m}},setTimeout((()=>{delete c[u]}),6e4)}))})).catch((e=>{c[u].queue.forEach((t=>{t.rej(e)}))}))}))}const u=s.TransactionHelper.unique_nonce_uint64();let p,h,m,g={};function b(e,t,a,n={}){if(n.content&&(n.content=new Array(n.content.length+1).join("a")),!a)return 0;const i=e+JSON.stringify(t)+JSON.stringify(n);if(g[i])return g[i];let l=o[e],c=null,d=a.getIn(["parameters","current_fees","parameters"]),b=d.findIndex((e=>e.get(0)==l));c=b>-1?d.getIn([b,1]):a.getIn(["parameters","current_fees","parameters",0,1]),c=c.toJS();let f=0;if(c.fee&&(f+=c.fee),t)for(let e of t){const t=c[e];if("price_per_kbyte"===e){if("memo"===n.type&&n.content){let e=p||s.PrivateKey.fromWif("5KikQ23YhcM7jdfHbFBQg1G7Do5y6SgD9sdBZq7BqQWXmNH7gqo");p&&(p=e);let a,o="BTS6B1taKXkDojuC1qECjvC7g186d8AdeGtz8wnqWAsoRGC6RY8Rp",i="BTS8eLeqSZZtB1YHdw7KjQxRSRmaKAseCxhUSqaLxUdqvdGpp6nck";a=n.content===m&&h?h:h=s.Aes.encrypt_with_checksum(e,i,u,n.content);let l={from:o,to:i,nonce:u,message:a},c=s.ops.memo_data.fromObject(l);const d=JSON.stringify(s.ops.memo_data.toHex(c));f+=t*r.byteLength(d,"hex")/1024,m=n.content}}else t&&(f+=t)}return f=f*a.getIn(["parameters","current_fees","scale"])/1e4,g[i]=f,setTimeout((()=>{delete g[i]}),3e5),f}function f(e,t,a,s){if(!e)return null;if("string"==typeof e&&(e=parseFloat(String.prototype.replace.call(e,/,/g,""))),!s||0===s.get("balance"))return!1;let r=new n.xR({asset_id:t.get("id"),precision:t.get("precision"),real:e}),o=r.clone(s.get("balance"));return!(o.lt(r)||r.asset_id===a.asset_id&&(r.plus(a),o.lt(r)))}},13973:(e,t,a)=>{"use strict";a.d(t,{Z:()=>u});var s=a(68924),n=a.n(s),r=a(7581),o=a(30806),i=a(60567),l=a(92077);let c=/\b\d+\.\d+\.(\d+)\b/;var{object_type:d}=o.ChainTypes;const u={is_object_id:e=>"string"==typeof e&&(null!==c.exec(e)&&3===e.split(".").length),is_object_type:(e,t)=>{let a=d[t];return a&&e?(a="1."+a.toString(),e.substring(0,a.length)===a):null},get_asset_precision:e=>(e=e.toJS?e.get("precision"):e,Math.pow(10,e)),get_asset_amount:function(e,t){return 0===e?e:e?e/this.get_asset_precision(t.toJS?t.get("precision"):t.precision):null},convert_satoshi_to_typed:function(e,t){return 0===e?e:e?e/this.get_asset_precision(t.toJS?t.get("precision"):t.precision):null},convert_typed_to_satoshi:function(e,t){return e*this.get_asset_precision(t.toJS?t.get("precision"):t.precision)},get_asset_price:function(e,t,a,s,n=!1){if(!t||!s)return 1;var r=this.get_asset_amount(e,t)/this.get_asset_amount(a,s);return n?1/r:r},format_volume(e,t=3){return e<1e4?this.format_number(e,t):e<1e6?(Math.round(e/10)/100).toFixed(2)+"k":(Math.round(e/1e4)/100).toFixed(2)+"M"},format_number:(e,t,a=!0)=>{if(isNaN(e)||!isFinite(e)||null==e)return"";let s=".";for(var n=0;n0&&!a?r.replace(/0+$/,"").replace(/\.$/,""):r},format_asset:function(e,t,a,s=!0){let n,r=0;if(void 0===t)return;"symbol"in t?(n=t.symbol,r=t.precision):(n=t.get("symbol"),r=t.get("precision"));let o=this.get_asset_precision(r);return`${this.format_number(e/o,r,s)}${a?"":" "+n}`},price_text:function(e,t,a){let s,n=a.toJS?a.get("id"):a.id,r=a.toJS?a.get("precision"):a.precision,o=t.toJS?t.get("id"):t.id,i=t.toJS?t.get("precision"):t.precision,l={"1.3.113":5,"1.3.121":5};return s="1.3.0"===n?this.format_number(e,r):"1.3.0"===o?this.format_number(e,Math.min(8,r+2)):l[n]?this.format_number(e,l[n]):this.format_number(e,Math.min(8,Math.max(r+i,2))),s},price_to_text:function(e,t,a,s=null){if("number"!=typeof e||!t||!a)return;let n;e===1/0&&(e=0),n=s?this.format_number(e,s):this.price_text(e,t,a);let r,o=n.split("."),i=o[0],l=o[1],c=0;if(l)if(e>1)for(r=l.length-1;r>=0&&"0"===l[r];r--)c++;else{let e=l.length;for(r=0;rt.length)return!1;if("string"==typeof e&&"string"==typeof t)return e===t;if("string"==typeof e&&"string"!=typeof t||"string"!=typeof e&&"string"==typeof t)return!1;if(e&&e.toJS&&t&&t.toJS)return e===t;for(var a in e)if(e.hasOwnProperty(a)&&!(a in t)||e[a]!==t[a])return!1;for(var a in t)if(t.hasOwnProperty(a)&&!(a in e)||e[a]!==t[a])return!1;return!0},makeISODateString:e=>("string"!=typeof e||/Z$/.test(e)||(e+="Z"),e),format_date:function(e){return e=this.makeISODateString(e),new Date(e).toLocaleDateString()},format_time:function(e){return e=this.makeISODateString(e),new Date(e).toLocaleString()},limitByPrecision:function(e,t){let a=e.toString(),s=a.split(".");return 1===s.length||2===s.length&&s[1].length<=t?a:s[0]+"."+s[1].substr(0,t)},convertPrice:function(e,t,a,s){if(!e||!t)return null;e.toJS&&this.is_object_type(e.get("id"),"asset")&&(a=e.get("id"),e=e.get("bitasset")?r.Z.extractRawFeedPrice(e).toJS():e.getIn(["options","core_exchange_rate"]).toJS()),t.toJS&&this.is_object_type(t.get("id"),"asset")&&(s=t.get("id"),t=t.get("bitasset")?r.Z.extractRawFeedPrice(t).toJS():t.getIn(["options","core_exchange_rate"]).toJS());let n,o,i,l,c,d,u,p=e.quote.asset_id,h=t.quote.asset_id;return p===a?(n=e.quote.amount,o=e.base.amount):(n=e.base.amount,o=e.quote.amount),h===s?(i=t.quote.amount,l=t.base.amount):(i=t.base.amount,l=t.quote.amount),l>o?(c=l/o,d=n*c,u=i):(c=o/l,d=n,u=i*c),{quote:{amount:d,asset_id:s},base:{amount:u,asset_id:a}}},convertValue:function(e,t,a,s){e=e.toJS?e.toJS():e;let n=this.get_asset_precision(a.get("precision")),r=this.get_asset_precision(s.get("precision")),o=this.get_asset_price(e.quote.amount,a,e.base.amount,s),i=a.get("id")!==s.get("id")?r*(t/n)/o:t;return isNaN(i)||!isFinite(i)?null:i},sortText:(e,t,a=!1)=>e>t?a?1:-1:ee.split(/{(.*?)}/g),get_percentage:(e,t)=>Math.round(e/t*100)+"%",replaceName(e){if(!e)return{name:"",prefix:null,isBitAsset:!1};let t=e.get("symbol");const a=e.get("bitasset")&&!e.getIn(["bitasset","is_prediction_market"])&&"1.2.0"===e.get("issuer");let s,n=(0,i.aJ)();for(s=0;s-1!==e.indexOf(r)))||(o=r?r.toLowerCase():null),{name:t,prefix:o,isBitAsset:!!a}},sanitize:e=>(e=(e=(e=(e=(e=n()(e,{whiteList:[],stripIgnoreTag:!0})).replace(/%3A/gi,":")).replace(/javascript:/gi,"")).replace(/vbscript:/gi,"")).replace(/data:/gi,"")).replace(/tcl:/gi,"")}},54453:(e,t,a)=>{"use strict";function s(e){navigator.userAgent.toLowerCase();let t=function(){let e=navigator.userAgent.toLowerCase();return e.indexOf("firefox")>-1?"firefox":e.search("safari")>=0&&e.search("chrome")<0?"safari":window.chrome?"chrome":e.indexOf("msie")>-1||e.match(/trident.*rv\:11\./)?"ie":e.indexOf("opera")>-1?"opera":e}();if("firefox"===t){var a=indexedDB.open("test");a.onerror=function(){e(!0)},a.onsuccess=function(){e(!1)}}else if("safari"===t){var s=window.sessionStorage;try{s.setItem("someKeyHere","test"),s.removeItem("someKeyHere"),e(!1)}catch(t){t.code===DOMException.QUOTA_EXCEEDED_ERR&&0===s.length?e(!0):e(!1)}}else if("chrome"===t||"opera"===t){var n=window.RequestFileSystem||window.webkitRequestFileSystem;if(!n)return void e(!1);n(window.TEMPORARY,100,(function(t){e(!1)}),(function(t){e(!0)}))}else"ie"===t&&(window.indexedDB||!window.PointerEvent&&!window.MSPointerEvent?e(!1):e(!0))}a.d(t,{Z:()=>s})},30881:(e,t,a)=>{"use strict";a.d(t,{Z:()=>k,_:()=>w});var s=a(55420),n=a(30806),r=a(83429),o=a.n(r),i=a(95768),l=a(44034),c=a(39238),d=a(41075),u=a(39014),p=a(32793),h=a(19602),m=a(112),g=a.n(m),b=a(43143),f=a(55294),y=a(76660);const _=(0,h.ZP)("__graphene__");n.ChainStore.setDispatchFrequency(60);let w=new class{constructor(){this._connectionManager,this._oldChain=null,this._autoSelection=null,this._connectInProgress=!1,this._connectionStart=null,this._willTransitionToInProgress=!1,this._transitionDone=this._transitionDone.bind(this),this._statusCallback=null}willTransitionTo(e=!0,t=(()=>{})){return this.isTransitionInProgress()?new Promise(((e,t)=>{e()})):(this._statusCallback=t,this._willTransitionToInProgress=!0,new Promise(((t,a)=>{const s=u.Z.getState().apiLatencies;let n=Object.keys(s).length>0,r=this._getLatencyChecks(1);r>=8?(this._setLatencyChecks(0),n=!1):e&&this._setLatencyChecks(r+1);let o=this._getNodesToConnectTo(!1,s);this._autoSelection=-1!==this._getLastNode().indexOf("fake.automatic-selection"),this._initConnectionManager(o),n&&0!=Object.keys(s).length?this._initiateConnection(e,t,a):this.doLatencyUpdate().then(this._initiateConnection.bind(this,e,t,a)).catch((e=>{console.log("catch doLatency",e)}))})))}isAutoSelection(){return this._autoSelection}isTransitionInProgress(){return!!this._willTransitionToInProgress&&"object"!=typeof this._willTransitionToInProgress}isBackgroundPingingInProgress(){return!!this._willTransitionToInProgress&&"object"==typeof this._willTransitionToInProgress}getBackgroundPingingTarget(){return this.isBackgroundPingingInProgress()?this._willTransitionToInProgress.key:null}getTransitionTarget(){return this.isTransitionInProgress()?this._willTransitionToInProgress:null}updateTransitionTarget(e){this._willTransitionToInProgress=e,null!=this._statusCallback&&this._statusCallback(e)}doQuickLatencyUpdate(e){return new Promise(((t,a)=>{let s=this._connectionManager.url,n=this._connectionManager.urls;"string"==typeof e&&(e=[e]),this._connectionManager.url=e[0],this._connectionManager.urls=e.slice(1,e.length),this._connectionManager.checkConnections().then((e=>{console.log("Following nodes have been pinged:",e);const t=u.Z.getState().apiLatencies;for(var a in e)t[a]=e[a];f.Z.updateLatencies(t)})).catch((e=>{console.log("doLatencyUpdate error",e)})).finally((()=>{this._connectionManager.url=s,this._connectionManager.urls=n,t()}))}))}doLatencyUpdate(e=!1,t=!1,a=5e3){this.updateTransitionTarget(g().translate("app_init.check_latency"));let s=this;return new Promise(((n,r)=>{null==s._connectionManager&&s._initConnectionManager();let o=s._getNodesToConnectTo(!0,null,!0);e&&this._clearLatencies();let i=this._connectionManager.url,l=new v(s._connectionManager,s._updateLatencies.bind(s),s.updateTransitionTarget.bind(s),t);new E(o,l,(function(){let e=s._getNodesToConnectTo(!1,null,!0);if(s._connectionManager.urls=e.map((e=>e.url)),s._setLatencyPreferences({region:e[0].region,country:e[0].country}),s.isAutoSelection()&&i!==s._connectionManager.urls[0]?(s._connectionManager.url=s._connectionManager.urls[0],console.log("auto selecting to "+s._connectionManager.url+" after latency update")):s._connectionManager.url=i,s._transitionDone(n),a>0){let e=function(){s._willTransitionToInProgress?setTimeout(e,2e3):(l.enableBackgroundPinging(),l.pingNodes((()=>{let e=s._getNodesToConnectTo(!1,null,!0);s._connectionManager.urls=e.map((e=>e.url)),s._transitionDone()})))};setTimeout(e,a)}}),s.getNodes.bind(s)).ping(this.isAutoSelection()?null:this._getLastNode(),this._getLatencyPreferences())}))}_getLatencyPreferences(){return _.get("latency_preferences",{})}_setLatencyPreferences(e){_.set("latency_preferences",e)}_getLatencyChecks(){return _.has("latencyChecks")&&_.remove("latencyChecks"),_.get("latency_checks",0)}_setLatencyChecks(e){_.set("latency_checks",e)}_clearLatencies(){f.Z.updateLatencies({})}_updateLatencies(e,t=!0,a=null){let s=u.Z.getState().apiLatencies;for(let n in e)!t&&n in s||(s[n]=e[n],null!=a&&(a[n]=e[n]));f.Z.updateLatencies(s)}_transitionDone(e=null){null!=e&&e(),this._willTransitionToInProgress=!1,this._statusCallback=null}_initConnectionManager(e=null){null==e&&(e=this._getNodesToConnectTo(!0));let t=this._getFirstToTry(e);this._willTransitionToInProgress=t,this._connectionManager=new s.Manager({url:t,urls:e,closeCb:this._onConnectionClose.bind(this),optionalApis:{enableOrders:!0},urlChangeCallback:e=>{console.log("fallback to new url:",e),e&&this.updateTransitionTarget(g().translate("app_init.connecting",{server:e})),f.Z.changeSetting({setting:"activeNode",value:e})}})}_onConnectionClose(){}_apiUrlSecuritySuitable(e){return"https:"!==window.location.protocol||-1==e.indexOf("ws://")}_isTestNet(e){return-1!==e.indexOf("testnet")}getAllApiServers(){return u.Z.getState().defaults.apiServer.filter((e=>{let t=u.Z.getState().settings.get("filteredApiServers",[]);return!(t.length>0&&-1===t.indexOf(e.url)&&(!e.region||-1===t.indexOf(e.region)))}))}getNodes(e=null,t=!0,a=!1,s=!1,n=!1){null==e&&(e=u.Z.getState().apiLatencies),t&&(t=Object.keys(e).length>0);let r=this.getAllApiServers().filter((r=>!(!a&&r.hidden||!n&&this._isTestNet(r.url)||-1!==r.url.indexOf("fake.automatic-selection")||!s&&!this._apiUrlSecuritySuitable(r.url)||t&&!e[r.url])));return r=r.map((t=>(t.hidden=!!t.hidden,t.name=t.location||"Unknown",null!=e&&t.url in e?t.latency=e[t.url]:t.latency=null,t))),r=r.sort(((e,t)=>null!=e.latency&&null!=t.latency?e.latency-t.latency:null==e.latency&&null==t.latency?this._isTestNet(e.url)?-1:1:null!=e.latency&&null==t.latency?-1:null!=t.latency&&null==e.latency?1:0)),r.length?r:(console.warn("No nodes length, returning all of them"),this.getAllApiServers())}_getNodesToConnectTo(e=!1,t=null,a=!1){let s=this.getNodes(t,!e);return a?s:s.map((e=>e.url))}_getLastNode(){return u.Z.getSetting("apiServer")}_setLastNode(e){u.Z.getSetting("apiServer")!==e&&f.Z.changeSetting({setting:"apiServer",value:e})}_getFirstToTry(e){let t=this._getLastNode();if(t||(t=e[0]),this.isAutoSelection()&&(t=e[0],console.log("auto selecting to "+t)),!t)throw"No node to connect to found, this should not happen.";return this._apiUrlSecuritySuitable(t)||(t=e[0]),t}_getIndexDBImpl(){return window.openDatabase&&shimIndexedDB||indexedDB}_initiateConnection(e,t,a){this._willTransitionToInProgress=this._connectionManager.url,this._connectionStart=(new Date).getTime(),console.log("Connecting to "+this._connectionManager.url),e?(this.updateTransitionTarget(g().translate("app_init.connecting",{server:this._connectionManager.url})),this._connectionManager.connectWithFallback(!0).then((()=>{this.isAutoSelection()||this._setLastNode(this._connectionManager.url),this._onConnect(t,a)})).catch((e=>{console.error("----- App.willTransitionTo error -----\x3e",e,(new Error).stack),"InvalidStateError"===e.name?alert("Can't access local storage.\nPlease make sure your browser is not in private/incognito mode."):this._transitionDone(a)}))):(this.isAutoSelection()||this._setLastNode(""),this._attemptReconnect(t,a))}_onResetError(e,t){console.error("onResetError:",t,e),this._willTransitionToInProgress=!1,this._statusCallback=!1,this._oldChain="old",y.Notification.error({message:g().translate("settings.connection_error",{url:e||"",error:t})});let a=u.Z.getState().apiLatencies;return delete a[e],f.Z.updateLatencies(a),s.Apis.close().then((()=>this.willTransitionTo(!0)))}_attemptReconnect(e,t){this._oldChain="old",s.Apis.reset(this._connectionManager.url,!0,void 0,{enableOrders:!0}).then((a=>{a.init_promise.then(this._onConnect.bind(this,e,t)).catch(this._onResetError.bind(this,this._connectionManager.url))}))}_onConnect(e,t){if(this._connectInProgress)return void console.error("MULTIPLE CONNECT IN PROGRESS");if(this.updateTransitionTarget(g().translate("app_init.database")),this._connectInProgress=!0,s.Apis.instance()){s.Apis.instance().orders_api()||console.log(`${s.Apis.instance().url} does not support the orders api`);let e=s.Apis.instance().url;this.isAutoSelection()||this._setLastNode(e);let t={};t[e]=(new Date).getTime()-this._connectionStart,this._updateLatencies(t,!1)}const a=s.Apis.instance().chain_id,r=this._oldChain!==a;this._oldChain=a;var o=Promise.resolve();try{r&&(i.Z.close(),o=i.Z.init_instance(this._getIndexDBImpl()).init_promise)}catch(e){return console.error("db init error:",e),this._connectInProgress=!1,this._transitionDone(t)}return Promise.all([o,u.Z.init()]).then((()=>(r?n.ChainStore.resetCache(!1):Promise.resolve()).then((()=>Promise.all([b.Z.loadDbData().then((()=>l.Z.loadDbData())),d.Z.loadDbData().then((()=>{if(r)return p.Z.reset(),p.Z.loadDbData(a).catch((e=>{console.error(e)}))})).catch((e=>{console.error("----- WalletDb.willTransitionTo error -----\x3e",e),this._transitionDone(t)})),c.Z.init()]).then((()=>{this._connectInProgress=!1,f.Z.changeSetting({setting:"activeNode",value:this._connectionManager.url}),this._transitionDone(e)})))).catch((e=>{this._connectInProgress=!1,this._transitionDone(t.bind(this,e))})))).catch((e=>{console.error(e),this._connectInProgress=!1,this._transitionDone(t)}))}};const k=w.willTransitionTo.bind(w);class v{constructor(e,t,a,s=!0){this._connectionManager=e,this._updateLatencies=t,this._updateTransitionTarget=a,this._beSatisfiedWith=s?{instant:0,low:0,medium:0}:{instant:500,low:800,medium:1500}}addNodes(e,t=!0,a=null){this._translationKey=a,t||void 0===this._nodeURLs?(this._nodeURLs=e,this._current=0,this._counter={instant:0,low:0,medium:0},this._localLatencyCache={},this._suitableNodeFound=!1,this._pingInBackGround=!1):e.forEach((e=>{-1===this._nodeURLs.indexOf(e)&&this._nodeURLs.push(e)}))}getLocalLatencyMap(){return this._localLatencyCache}enableBackgroundPinging(){this._beSatisfiedWith={instant:0,low:0,medium:0},this._counter={instant:0,low:0,medium:0},this._suitableNodeFound=!1,this._pingInBackGround=!0}doCallbackAndEnableBackgroundPinging(){this._beSatisfiedWith={instant:0,low:0,medium:0},this._counter={instant:0,low:0,medium:0},this._suitableNodeFound=!0,this._pingInBackGround=!0}pingNodes(e,t=null){null!=t&&this.addNodes(t,!0),this._callbackWasCalled=!1,this._callback=e,this._range=3,this._pingNodesInBatches()}_continueToPing(){return this._current{console.log("doLatencyUpdate error",e)})).finally((()=>{this._current=this._current+e.length,setTimeout(this._pingNodesInBatches.bind(this),500)}))}catch(e){console.error(e)}}else this._updateTransitionTarget(!1)}_updateSuitabilityCounter(e=null){for(let t in e)null!=this._beSatisfiedWith&&(e[t]0||this._counter.low>=2||this._counter.medium>=3)&&(this._suitableNodeFound=!0)}_handlePingResult(e){e&&Object.keys(e).length>0&&(console.log("Latency result:",e),this._updateSuitabilityCounter(e),this._updateLatencies(e,!0,this._localLatencyCache))}}class A{constructor(e){this.urls=[],this.timeout=e}async check(e){e.forEach((e=>{this.addURL(e)}));try{await this._runCheck()}catch(e){console.error(e)}let t={};return this._result.forEach((e=>{t[e.url]=e.latency})),t}addURL(e){this.urls.push({url:e,latency:NaN})}_checkURL(e){return new Promise((t=>{setTimeout((function(){t(null)}),this.timeout);try{let a=new WebSocket(e);a.openTime=o()(),a.onerror=e=>{t(null)},a.onopen=e=>{a.onmessage=function(){this.closeTime=a.openTime(o().MS),a.close(),t(this.closeTime)},a.onmessage.bind(a),a.send('{"id":1,"method":"call","params":[1,"login",["",""]]}')}}catch(e){t(null)}}))}async _runCheck(){for(let e=0;e{this.urls[e].latency=t}));await Promise.all(this.urls.map((e=>e.latency))),this.urls.sort(((e,t)=>Number(e.latency)-Number(t.latency))),this._result=this.urls.slice()}}class E{constructor(e,t,a,s){this._nodesToPing=e,this._pinger=t,this._callback=a,this._getNodes=s,this._sortNodesToTree()}ping(e,t={}){function a(){this._pinger.addNodes(this._nodesToPing.map((e=>e.url)),!1,"app_init.check_latency_feedback_rest"),this._pinger.pingNodes(this._callback)}function s(e=null){if(null==e){let t=this._getNodes(this._pinger.getLocalLatencyMap());e=t&&t[0].region}e&&this._pinger.addNodes(this.getFromRegion(e).map((e=>e.url)),!1,"app_init.check_latency_feedback_region"),this._pinger.pingNodes(a.bind(this))}function n(e=null,t=null){if(null==e){let a=this._getNodes(this._pinger.getLocalLatencyMap());e=a&&a[0].region,t=a&&a[0].country}e&&t&&this._pinger.addNodes(this.getFromRegion(e,t).map((e=>e.url)),!1,"app_init.check_latency_feedback_country"),this._pinger.pingNodes(s.bind(this))}function r(){this._pinger.addNodes(this.getFromEachRegion().map((e=>e.url)),!1,"app_init.check_latency_feedback_world"),this._pinger.pingNodes(n.bind(this))}function o(){t.region&&t.country?n.bind(this)(t.region,t.country):t.region?s.bind(this)(t.region):r.bind(this)()}e?(this._pinger.addNodes([e],!1,"app_init.check_latency_feedback_last"),this._pinger.pingNodes(o.bind(this))):o.bind(this)()}getFromEachRegion(e=2,t=!0){let a=[];return Object.keys(this._nodeTree).forEach((t=>{let s,n=this._nodeTree[t].all;for(s=1;s<=e;s++)n.length>=s&&a.push(n[s-1])})),console.log("Node tree",a),t?this._getShuffleArray(a):a}getFromRegion(e,t=null,a=10,s=!0){let n=[],r=null;return r=t?[t]:["all"],r.forEach((t=>{if(!this._nodeTree[e]||!this._nodeTree[e][t])return;let r,o=this._nodeTree[e][t],i=s?this._getShuffleArray(o):o;for(r=1;r<=a;r++)i.length>=r&&n.push(i[r-1])})),n}_getShuffleArray(e){for(let t=(e=e.slice(0)).length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[e[t],e[a]]=[e[a],e[t]]}return e}_sortNodesToTree(){let e={};this._nodesToPing.forEach((t=>{void 0===e[t.region]&&(e[t.region]={},e[t.region].all=[]),void 0===e[t.region][t.country]&&(e[t.region][t.country]=[]),e[t.region].all.push(t),e[t.region][t.country].push(t)})),this._nodeTree=e}}},13379:(e,t,a)=>{"use strict";a.d(t,{je:()=>s,vg:()=>n});const s={HIGHER_THAN:"1",LOWER_THAN:"2"},n={BUY:"buy",SELL:"sell"}},44034:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(57296),n=a(95768),r=a(43393),o=a.n(r),i=a(16912),l=a(30806),c=a(55420),d=a(79618),u=a(43143),p=a(91e3);class h extends i.Z{constructor(){super(),this._export("loadDbData","getAccountRefs"),this.state=this._getInitialState(),this.bindListeners({onAddPrivateKey:u.Z.addKey}),this.no_account_refs=o().Set(),l.ChainStore.subscribe(this.chainStoreUpdate.bind(this))}_getInitialState(){this.chainstore_account_ids_by_key=null,this.chainstore_account_ids_by_account=null;let e=new(o().Map);return e=e.set(this._getChainId(),o().Set()),{account_refs:e}}getAccountRefs(e=this._getChainId()){return this.state.account_refs.get(e,o().Set())}_getChainId(){return c.Apis.instance().chain_id||p.Z.MAIN_NET}onAddPrivateKey({private_key_object:e}){void 0!==l.ChainStore.getAccountRefsOfKey(e.pubkey)&&this.chainStoreUpdate()}loadDbData(){this.chainstore_account_ids_by_key=null,this.chainstore_account_ids_by_account=null,this.no_account_refs=o().Set();let e=new(o().Map);return e=e.set(this._getChainId(),o().Set()),this.state={account_refs:e},function(){let e=c.Apis.instance().chain_id,t="no_account_refs"+(e?"_"+e.substr(0,8):"");return n.Z.root.getProperty(t,[]).then((e=>o().Set(e)))}().then((e=>this.no_account_refs=e)).then((()=>this.chainStoreUpdate()))}chainStoreUpdate(){this.chainstore_account_ids_by_key===l.ChainStore.account_ids_by_key&&this.chainstore_account_ids_by_account===l.ChainStore.account_ids_by_account||(this.chainstore_account_ids_by_key=l.ChainStore.account_ids_by_key,this.chainstore_account_ids_by_account=l.ChainStore.account_ids_by_account,this.checkPrivateKeyStore())}checkPrivateKeyStore(){let e=this.no_account_refs,t=o().Set();d.Z.getState().keys.keySeq().forEach((a=>{if(e.has(a))return;let s=l.ChainStore.getAccountRefsOfKey(a);if(void 0!==s)if(s.size)t=t.add(s.valueSeq());else{if("number"==typeof d.Z.getState().keys.get(a).brainkey_sequence)return;e=e.add(a)}})),t=t.flatten(),t.forEach((e=>{let a=l.ChainStore.getAccountRefsOfAccount(e);void 0!==a&&a.size&&(t=t.add(a.valueSeq()))})),t=t.flatten(),this.getAccountRefs().equals(t)||(this.state.account_refs=this.state.account_refs.set(this._getChainId(),t)),this.no_account_refs.equals(e)||(this.no_account_refs=e,function(e){let t=[],a=c.Apis.instance().chain_id,s="no_account_refs"+(a?"_"+a.substr(0,8):"");for(let a of e)t.push(a);n.Z.root.setProperty(s,t)}(e))}}const m=s.Z.createStore(h,"AccountRefsStore")},32793:(e,t,a)=>{"use strict";a.d(t,{Z:()=>y});var s=a(16912),n=a(43393),r=a.n(n),o=a(57296),i=a(82050),l=a(55294),c=a(28969),d=a(95768),u=a(79618),p=a(30806),h=a(55420),m=a(44034),g=a(71452);let b=(0,a(19602).ZP)("__graphene__");class f extends s.Z{constructor(){super(),this.bindListeners({onSetCurrentAccount:i.Z.setCurrentAccount,onCreateAccount:i.Z.createAccount,onAccountSearch:i.Z.accountSearch,tryToSetCurrentAccount:i.Z.tryToSetCurrentAccount,onSetPasswordAccount:i.Z.setPasswordAccount,onChangeSetting:l.Z.changeSetting,onSetWallet:c.Z.setWallet,onAddStarAccount:i.Z.addStarAccount,onRemoveStarAccount:i.Z.removeStarAccount,onAddAccountContact:i.Z.addAccountContact,onRemoveAccountContact:i.Z.removeAccountContact,onToggleHideAccount:i.Z.toggleHideAccount}),this._export("loadDbData","tryToSetCurrentAccount","onCreateAccount","getMyAccounts","isMyAccount","getMyAuthorityForAccount","isMyKey","reset","setWallet");const e=b.get("settings_v4",{});void 0===e.passwordLogin&&(e.passwordLogin=!0);const t=this._checkReferrer();this.state={subbed:!1,myActiveAccounts:r().Set(),myHiddenAccounts:r().Set(),currentAccount:null,passwordAccount:null,starredAccounts:r().Map(),searchAccounts:r().Map(),accountContacts:r().Set(),linkedAccounts:r().Set(),referralAccount:t,passwordLogin:e.passwordLogin},this.getMyAccounts=this.getMyAccounts.bind(this),this.chainStoreUpdate=this.chainStoreUpdate.bind(this),this._getStorageKey=this._getStorageKey.bind(this),this.setWallet=this.setWallet.bind(this)}_migrateUnfollowedAccounts(e){try{let t=b.get("unfollowed_accounts",[]),a=b.get(this._getStorageKey("hiddenAccounts",e),[]);t.length&&!a.length&&(b.set(this._getStorageKey("hiddenAccounts",e),t),b.remove("unfollowed_accounts"),this.setState({myHiddenAccounts:r().Set(t)}))}catch(e){console.error(e)}}_checkReferrer(){let e="";if(window){let s=["r","ref","referrer","referral"];for(let n=0;n{d.Z.load_data("linked_accounts").then((n=>{this.state.linkedAccounts=r().fromJS(n||[]).toSet();let o=this.state.passwordLogin&&this.state.passwordAccount?[(0,p.FetchChain)("getAccount",this.state.passwordAccount)]:this.state.passwordLogin?[]:n.filter((e=>!e.chainId||e.chainId===t)).map((e=>(0,p.FetchChain)("getAccount",e.name)));Promise.all(o).then((t=>{t.forEach((t=>{t&&this.isMyAccount(t)&&!this.state.myHiddenAccounts.has(t.get("name"))?e.add(t.get("name")):t&&!this.isMyAccount(t)&&this._unlinkAccount(t.get("name"))}));let s=e.asImmutable();this.state.myActiveAccounts!==s&&this.setState({myActiveAccounts:e.asImmutable()}),!1===this.state.accountsLoaded&&this.setState({accountsLoaded:!0}),this.state.subbed||p.ChainStore.subscribe(this.chainStoreUpdate),this.state.subbed=!0,this.emitChange(),this.chainStoreUpdate(),a()})).catch((e=>{this.state.subbed||p.ChainStore.subscribe(this.chainStoreUpdate),this.state.subbed=!0,this.emitChange(),this.chainStoreUpdate(),s(e)}))})).catch((e=>{s(e)}))}))}chainStoreUpdate(){this.addAccountRefs()}addAccountRefs(){let e=m.Z.getAccountRefs();if(!this.initial_account_refs_load&&this.account_refs===e)return void(!1===this.state.refsLoaded&&this.setState({refsLoaded:!0}));this.account_refs=e;let t=!1;if(this.addAccountRefsInProgress)return;this.addAccountRefsInProgress=!0;let a=this.state.myActiveAccounts.withMutations((a=>{e.forEach((e=>{let s=p.ChainStore.getAccount(e);if(void 0===s)return void(t=!0);let n=s.get("name"),r=h.Apis.instance().chain_id,o=this.state.linkedAccounts.find((e=>e.get("name")===n&&e.get("chainId")===r));const i=this.state.linkedAccounts.findKey((e=>e.get("name")===n&&!e.has("chainId")));i&&(this.state.linkedAccounts=this.state.linkedAccounts.delete(i),this._unlinkAccount(s.get("name")),o=!1),s&&this.isMyAccount(s)&&!o&&this._linkAccount(s.get("name")),!s||a.includes(s.get("name"))||this.state.myHiddenAccounts.has(s.get("name"))||a.add(s.get("name"))}))}));this.state.passwordLogin&&(a=r().Set(this.state.passwordAccount?[this.state.passwordAccount]:[])),a!==this.state.myActiveAccounts&&this.setState({myActiveAccounts:a}),this.initial_account_refs_load=t,this.tryToSetCurrentAccount(),this.addAccountRefsInProgress=!1}getMyAccounts(){if(!this.state.subbed)return[];let e=[];for(let t of this.state.myActiveAccounts){let a=p.ChainStore.getAccount(t);if(void 0===a)continue;if(null==a){console.log("WARN: non-chain account name in myActiveAccounts",t);continue}let s=this.getMyAuthorityForAccount(a);void 0!==s&&("full"!==s&&"partial"!==s||e.push(t))}return this.state.passwordLogin?this.state.passwordAccount?[this.state.passwordAccount]:[]:e.sort()}getMyAuthorityForAccount(e,t=1){if(!e)return;let a=e.get("owner"),s=e.get("active"),n=_(a);if("full"==n)return"full";let r=_(s);if("full"==r)return"full";let o=w(a);if("full"==o)return"full";let i,l,c=w(s);if("full"==c)return"full";if(t<3){if(i=this._accountThreshold(a,t),void 0===i)return;if("full"==i)return"full";if(l=this._accountThreshold(s,t),void 0===l)return;if("full"==l)return"full"}return"partial"===n||"partial"===r||"partial"===o||"partial"===c||"partial"===i||"partial"===l?"partial":"none"}_accountThreshold(e,t){let a=e.get("account_auths");if(!a.size)return"none";let s=a.map((e=>{let a=p.ChainStore.getAccount(e.get(0),!1);if(void 0!==a)return this.getMyAuthorityForAccount(a,++t)})).reduce(((e,t)=>e.set(t,!0)),r().Map());return s.get("full")&&1===s.size?"full":s.get("partial")&&1===s.size?"partial":s.get("none")&&1===s.size?"none":s.get("full")||s.get("partial")?"partial":void 0}isMyAccount(e){let t=this.getMyAuthorityForAccount(e);if(void 0!==t)return"partial"===t||"full"===t}onAccountSearch(e){this.state.searchTerm=e.searchTerm,this.state.searchAccounts=this.state.searchAccounts.clear(),e.accounts.forEach((e=>{this.state.searchAccounts=this.state.searchAccounts.withMutations((t=>{t.set(e[1],e[0])}))}))}_getStorageKey(e="currentAccount",t=this.state){const a=t.wallet_name,s=h.Apis.instance().chain_id;return e+(s?`_${s.substr(0,8)}`:"")+(a?`_${a}`:"")}tryToSetCurrentAccount(){const e=this._getStorageKey("passwordAccount"),t=this._getStorageKey("currentAccount");if(b.has(e)){const t=b.get(e,null);return this.state.passwordAccount!==t&&this.setState({passwordAccount:t}),this.setCurrentAccount(t)}if(b.has(t))return this.setCurrentAccount(b.get(t,null));let{starredAccounts:a}=this.state;return a.size?this.setCurrentAccount(a.first().name):this.state.myActiveAccounts.size?this.setCurrentAccount(this.state.myActiveAccounts.first()):void 0}setCurrentAccount(e){this.state.passwordAccount&&(e=this.state.passwordAccount);const t=this._getStorageKey();e||(e=null),this.state.currentAccount!==e&&this.setState({currentAccount:e}),b.set(t,e||null)}onSetCurrentAccount(e){this.setCurrentAccount(e)}onCreateAccount(e){let t=e;if("string"==typeof t&&(t={name:t}),t.toJS&&(t=t.toJS()),""==t.name||this.state.myActiveAccounts.get(t.name))return Promise.resolve();if(!p.ChainValidation.is_account_name(t.name))throw new Error("Invalid account name: "+t.name);return d.Z.add_to_store("linked_accounts",{name:t.name,chainId:h.Apis.instance().chain_id}).then((()=>{console.log("[AccountStore.js] ----- Added account to store: -----\x3e",t.name),this.state.myActiveAccounts=this.state.myActiveAccounts.add(t.name),1===this.state.myActiveAccounts.size&&this.setCurrentAccount(t.name)}))}onAddAccountContact(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);if(!this.state.accountContacts.has(e)){const t=this.state.accountContacts.add(e);b.set(this._getStorageKey("accountContacts"),t.toArray()),this.setState({accountContacts:t})}}onRemoveAccountContact(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);if(this.state.accountContacts.has(e)){const t=this.state.accountContacts.remove(e);b.set(this._getStorageKey("accountContacts"),t),this.setState({accountContacts:t})}}_linkAccount(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);const t={name:e,chainId:h.Apis.instance().chain_id};try{d.Z.add_to_store("linked_accounts",t),this.state.linkedAccounts=this.state.linkedAccounts.add(r().fromJS(t)),this.state.myHiddenAccounts.has(e)||(this.state.myActiveAccounts=this.state.myActiveAccounts.add(e)),1===this.state.myActiveAccounts.size&&this.setCurrentAccount(e)}catch(e){console.error(e)}}_unlinkAccount(e){if(!p.ChainValidation.is_account_name(e,!0))throw new Error("Invalid account name: "+e);d.Z.remove_from_store("linked_accounts",e)}isMyKey(e){return u.Z.hasKey(e)}onChangeSetting(e){"passwordLogin"===e.setting&&(!1===e.value?(this.onSetPasswordAccount(null),b.remove(this._getStorageKey()),this.loadDbData()):this.setState({myActiveAccounts:r().Set()}),this.setState({passwordLogin:e.value}))}}const y=o.Z.createStore(f,"AccountStore");function _(e){let t=0,a=e.get("weight_threshold"),s=e.get("key_auths");for(let e of s)if(u.Z.hasKey(e.get(0))&&(t+=e.get(1)),t>=a)break;return t>=a?"full":t>0?"partial":"none"}function w(e){let t=0,a=e.get("weight_threshold"),s=e.get("address_auths");if(!s.size)return"none";let n=g.Z.getState().addresses;for(let e of s){let s=e.get(0),r=n.get(s);if(u.Z.hasKey(r)&&(t+=e.get(1)),t>=a)break}return t>=a?"full":t>0?"partial":"none"}},71452:(e,t,a)=>{"use strict";a.d(t,{Z:()=>p});var s=a(57296),n=a(95768),r=a(30806),o=a(55420),i=a(43393),l=a.n(i),c=a(16912);let d;class u extends c.Z{constructor(){super(),this.state={addresses:l().Map(),saving:!1},this.pubkeys=new Set,this._export("add","addAll","loadAddyMap")}saving(){this.state.saving||(this.state.saving=!0,this.setState({saving:!0}))}add(e){this.loadAddyMap().then((()=>{var t=!1;if(!this.pubkeys.has(e)){this.pubkeys.add(e),this.saving();var a=r.key.addresses(e);for(let s of a)this.state.addresses=this.state.addresses.set(s,e),t=!0;t?(this.setState({addresses:this.state.addresses}),this.saveAddyMap()):this.setState({saving:!1})}})).catch((e=>{throw e}))}addAll(e){return new Promise(((t,s)=>{this.saving(),this.loadAddyMap().then((()=>{d=a(47835).Z;let n=new d;n.postMessage({pubkeys:e,address_prefix:o.ChainConfig.address_prefix}),n.onmessage=a=>{try{let s=a.data,n=!1,r=this.state.addresses.withMutations((t=>{for(let a=0;a{throw e}))}))}loadAddyMap(){return this.loadAddyMapPromise||(this.loadAddyMapPromise=n.Z.root.getProperty("AddressIndex").then((e=>{this.state.addresses=e?l().Map(e):l().Map(),this.state.addresses.valueSeq().forEach((e=>this.pubkeys.add(e))),this.setState({addresses:this.state.addresses})}))),this.loadAddyMapPromise}saveAddyMap(){clearTimeout(this.saveAddyMapTimeout),this.saveAddyMapTimeout=setTimeout((()=>(this.setState({saving:!1}),n.Z.root.setProperty("AddressIndex",this.state.addresses.toObject()))),100)}}const p=s.Z.createStore(u,"AddressIndex")},89233:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(16912),n=a(43393),r=a.n(n),o=a(57296),i=a(7453);class l extends s.Z{constructor(){super(),this.assets=r().Map(),this.asset_symbol_to_id={},this.searchTerms={},this.lookupResults=[],this.assetsLoading=!1,this.bindListeners({onGetAssetList:i.Z.getAssetList,onLookupAsset:i.Z.lookupAsset,onGetAssetsByIssuer:i.Z.getAssetsByIssuer})}onGetAssetList(e){if(!e)return!1;this.assetsLoading=e.loading,e.assets&&e.assets.forEach((t=>{for(var a=0;a{for(var a=0;a{"use strict";a.d(t,{Z:()=>l});var s=a(57296),n=a(40678),r=a(16912),o=a(30806);class i extends r.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onIncommingFile:n.ZP.incommingWebFile,onIncommingBuffer:n.ZP.incommingBuffer,onReset:n.ZP.reset}),this._export("setWalletObjct")}_getInitialState(){return{name:null,contents:null,sha1:null,size:null,last_modified:null,public_key:null,wallet_object:null}}setWalletObjct(e){this.setState({wallet_object:e})}onReset(){this.setState(this._getInitialState())}onIncommingFile({name:e,contents:t,last_modified:a}){var s=o.hash.sha1(t).toString("hex"),n=t.length,r=c(t);this.setState({name:e,contents:t,sha1:s,size:n,last_modified:a,public_key:r})}onIncommingBuffer({name:e,contents:t,public_key:a}){this.onReset();var s=o.hash.sha1(t).toString("hex"),n=t.length;a||(a=c(t)),this.setState({name:e,contents:t,sha1:s,size:n,public_key:a})}}const l=s.Z.createStore(i,"BackupStore");function c(e){try{return o.PublicKey.fromBuffer(e.slice(0,33))}catch(e){console.error(e,e.stack)}}},54742:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(43393),r=a.n(n),o=a(16912),i=a(30806),l=a(55420),c=a(95768),d=a(33983),u=a(69778);class p extends o.Z{constructor(){super(),this.state=this._getInitialState(),this.no_balance_address=new Set,this._export("reset"),this.bindListeners({onSetPubkeys:d.Z.setPubkeys,onSetSelectedBalanceClaims:d.Z.setSelectedBalanceClaims,onClaimAccountChange:d.Z.claimAccountChange,onTransactionBroadcasted:u.Z.wasBroadcast})}_getInitialState(){this.pubkeys=null,this.addresses=new Set;var e=this.getInitialViewState();return e.address_to_pubkey=new Map,e}getInitialViewState(){return{balances:void 0,checked:r().Map(),selected_balances:r().Seq(),claim_account_name:void 0,loading:!0}}reset(){this.setState(this._getInitialState())}onTransactionBroadcasted(){this.refreshBalances()}onSetPubkeys(e){if(Array.isArray(e)&&(e=r().Seq(e)),!this.pubkeys||!this.pubkeys.equals(e)){if(this.reset(),this.pubkeys=e,0===e.size)return this.setState({loading:!1}),!0;this.setState({loading:!0}),this.loadNoBalanceAddresses().then((()=>(this.indexPubkeys(e),this.refreshBalances(),!1))).catch((e=>console.error(e)))}}onSetSelectedBalanceClaims(e){var t=e.valueSeq().flatten().toSet();this.setState({checked:e,selected_balances:t})}onClaimAccountChange(e){this.setState({claim_account_name:e})}loadNoBalanceAddresses(){return this.no_balance_address.size?Promise.resolve():c.Z.root.getProperty("no_balance_address",[]).then((e=>{this.no_balance_address=new Set(e)}))}indexPubkeys(e){let{address_to_pubkey:t}=this.state;for(let a of e)for(let e of i.key.addresses(a))this.no_balance_address.has(e)||(t.set(e,a),this.addresses.add(e));this.setState({address_to_pubkey:t})}indexPubkey(e){for(let t of i.key.addresses(e))this.no_balance_address.has(t)||(this.state.address_to_pubkey.set(t,e),this.addresses.add(t));this.setState({address_to_pubkey:this.state.address_to_pubkey})}refreshBalances(){this.lookupBalanceObjects().then((e=>{var t=this.getInitialViewState();t.balances=e,t.loading=!1,this.setState(t)}))}lookupBalanceObjects(){var e=l.Apis.instance().db_api(),t=new Set(this.no_balance_address),a=t.size;for(let e of this.addresses)t.add(e);return e.exec("get_balance_objects",[Array.from(this.addresses)]).then((s=>{var n=[];for(let e of s)n.push(e.id);return e.exec("get_vested_balances",[n]).then((e=>r().List().withMutations((n=>{for(let a=0;aconsole.error(e)))}))))}))}saveNoBalanceAddresses(e){this.no_balance_address=e;var t=[];for(let e of this.no_balance_address)t.push(e);return c.Z.root.setProperty("no_balance_address",t)}}const h=s.Z.createStore(p,"BalanceClaimActiveStore")},16912:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s=class{constructor(){}_export(...e){let t={};e.forEach((e=>{if(!this[e])throw new Error(`BaseStore._export: method '${e}' not found in ${this.__proto__._storeName}`);this[e]=this[e].bind(this),t[e]=this[e]})),this.exportPublicMethods(t)}}},38216:(e,t,a)=>{"use strict";a.d(t,{Z:()=>l});var s=a(43393),n=a.n(s),r=a(57296),o=a(72034),i=a(30806);const l=r.Z.createStore(class{constructor(){this.blocks=n().Map(),this.latestBlocks=n().List(),this.latestTransactions=n().List(),this.rpc_connection_status=null,this.no_ws_connection=!1,this.blockHeaders=new Map,this.bindListeners({onGetBlock:o.Z.getBlock,onGetLatest:o.Z.getLatest,onGetHeader:o.Z.getHeader,onUpdateRpcConnectionStatus:o.Z.updateRpcConnectionStatus}),this.maxBlocks=30}onGetHeader({header:e,height:t}){if(!e||!t)return!1;/Z$/.test(e.timestamp)||(e.timestamp+="Z"),e.timestamp=new Date(e.timestamp),this.blockHeaders.set(t,e)}onGetBlock(e){this.blocks.get(e.id)||(/Z$/.test(e.timestamp)||(e.timestamp+="Z"),e.timestamp=new Date(e.timestamp),this.blocks=this.blocks.set(e.id,e))}onGetLatest(e){let{block:t,maxBlock:a}=e;"string"==typeof t.timestamp&&(/Z$/.test(t.timestamp)||(t.timestamp+="Z")),t.timestamp=new Date(t.timestamp),this.blocks=this.blocks.set(t.id,t),t.id>a-this.maxBlocks&&(this.latestBlocks=this.latestBlocks.unshift(t),this.latestBlocks.size>this.maxBlocks&&(this.latestBlocks=this.latestBlocks.pop()),t.transactions.length>0&&t.transactions.forEach((e=>{e.block_num=t.id,this.latestTransactions=this.latestTransactions.unshift(e)})),this.latestTransactions.size>this.maxBlocks&&(this.latestTransactions=this.latestTransactions.pop()))}onUpdateRpcConnectionStatus(e){let t=this.rpc_connection_status;"reconnect"===e?i.ChainStore.resetCache(!1):this.rpc_connection_status=e,null===t&&"error"===e&&(this.no_ws_connection=!0),this.no_ws_connection&&"open"===e&&(this.no_ws_connection=!1),"closed"===e&&(this.no_ws_connection=!0)}},"BlockchainStore")},86481:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(57296),n=a(43393),r=a.n(n),o=a(95768),i=a(16912),l=a(99659);class c extends i.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onSet:l.Z.set,onGet:l.Z.get}),this._export("get","reset")}_getInitialState(){return{props:r().Map()}}get(e){return this.onGet({name:e})}onSet({name:e,value:t}){if(this.state.props.get(e)!==t){var a=this.state.props.set(e,t);this.state.props=a,o.Z.setCachedProperty(e,t).then((()=>this.setState({props:a})))}}onGet({name:e}){var t=this.state.props.get(e);if(void 0!==t)return t;try{o.Z.getCachedProperty(e,null).then((t=>{var a=this.state.props.set(e,t);this.state.props=a,this.setState({props:a})}))}catch(e){console.error("getCachedProperty error:",e)}}reset(){this.state=this._getInitialState(),this.setState(this.state)}}const d=s.Z.createStore(c,"CachedPropertyStore")},7437:(e,t,a)=>{"use strict";a.d(t,{Z:()=>d});var s=a(43393),n=a.n(s),r=a(57296),o=a(56815),i=a(19602),l=a(60567);let c=(0,i.ZP)("__graphene__");const d=r.Z.createStore(class{static isAllowed(e){return(0,l.rC)(e)}static anyAllowed(){return(0,l.rC)()}static isDown(e){return!!this.getState().down.get(e)}static getOnChainConfig(e){if(!e)return{};const t=this.getState().onChainGatewayConfig;return t&&t.gateways?t.gateways[e]:void 0}static getGlobalOnChainConfig(){return this.getState().onChainGatewayConfig}static isAssetBlacklisted(e){let t=null;"object"==typeof e?e.symbol?t=e.symbol:e.get&&(t=e.get("symbol")):t=e;const a=this.getState().onChainGatewayConfig;return!!(a&&a.blacklists&&a.blacklists.assets&&a.blacklists.assets.includes)&&a.blacklists.assets.includes(t)}constructor(){this.backedCoins=n().Map(c.get("backedCoins",{})),this.bridgeCoins=n().Map(n().fromJS(c.get("bridgeCoins",{}))),this.bridgeInputs=["btc","dash","eth","steem","sbd","doge","bch","ppy","ltc"],this.down=n().Map({}),this.onChainGatewayConfig=null,this.bindListeners({onFetchCoins:o.Z.fetchCoins,onFetchCoinsSimple:o.Z.fetchCoinsSimple,onFetchPairs:o.Z.fetchPairs,onTemporarilyDisable:o.Z.temporarilyDisable,onLoadOnChainGatewayConfig:o.Z.loadOnChainGatewayConfig})}onFetchCoins({backer:e,coins:t,backedCoins:a,down:s}={}){e&&t&&(this.backedCoins=this.backedCoins.set(e,a),c.set("backedCoins",this.backedCoins.toJS()),this.down=this.down.set(e,!1)),s&&(this.down=this.down.set(s,!0))}onFetchCoinsSimple({backer:e,coins:t,down:a}={}){e&&t&&(this.backedCoins=this.backedCoins.set(e,t),c.set("backedCoins",this.backedCoins.toJS()),this.down=this.down.set(e,!1)),a&&(this.down=this.down.set(a,!0))}onFetchPairs({coins:e,bridgeCoins:t,wallets:a,down:s}={}){if(e&&t&&a){let s={};e.forEach((e=>s[e.coinType]=e)),t=t.filter((e=>e&&s[e.outputCoinType]&&"bitshares2"===s[e.outputCoinType].walletType&&-1!==this.bridgeInputs.indexOf(e.inputCoinType))).forEach((e=>{e.isAvailable=-1!==a.indexOf(s[e.outputCoinType].walletType),this.bridgeCoins=this.bridgeCoins.setIn([s[e.outputCoinType].walletSymbol,e.inputCoinType],n().fromJS(e))})),c.set("bridgeCoins",this.bridgeCoins.toJS())}s&&(this.down=this.down.set(s,!0))}onTemporarilyDisable({backer:e}){this.down=this.down.set(e,!0),this.backedCoins.get(e)&&(this.backedCoins=this.backedCoins.remove(e),c.set("backedCoins",this.backedCoins.toJS())),this.bridgeCoins.get(e)&&(this.bridgeCoins=this.bridgeCoins.remove(e),c.set("bridgeCoins",this.bridgeCoins.toJS()))}onLoadOnChainGatewayConfig(e){this.onChainGatewayConfig=e||{}}},"GatewayStore")},774:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var s=a(57296),n=a(51477),r=a(55294),o=a(112),i=a.n(o),l=a(19602),c=a(62254),d=a(89515),u=a.n(d),p=a(36079);let h=(0,l.ZP)("__graphene__");i().registerTranslations("en",p),i().setFallbackLocale("en");for(let e of u())(0,c.oK)(a(80888)(`./${e}`));const m=s.Z.createStore(class{constructor(){const e=h.get("settings_v4",{});void 0===e.locale&&(e.locale="en"),this.currentLocale=e.locale,this.locales=["en"],this.localesObject={en:p},this.bindListeners({onSwitchLocale:n.Z.switchLocale,onGetLocale:n.Z.getLocale,onClearSettings:r.Z.clearSettings})}hasLocale(e){return-1!==this.locales.indexOf(e)}getCurrentLocale(){return this.currentLocale}onSwitchLocale({locale:e,localeData:t}){"en"===e?i().registerTranslations("en",this.localesObject.en):i().registerTranslations(e,t),i().setLocale(e),this.currentLocale=e}onGetLocale(e){-1===this.locales.indexOf(e)&&this.locales.push(e)}onClearSettings(){this.onSwitchLocale({locale:"en"})}},"IntlStore")},12326:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(43393),n=a.n(s),r=a(57296),o=a(22463),i=a(5833),l=a(19602),c=a(30806),d=a(13973),u=a(74366),p=a(7581);const h={getPrice:()=>0,sellPrice:()=>0};let m=(0,l.ZP)("__graphene__");const g=r.Z.createStore(class{constructor(){this.markets=n().Map(),this.asset_symbol_to_id={},this.pendingOrders=n().Map(),this.marketLimitOrders=n().Map(),this.marketCallOrders=n().Map(),this.allCallOrders=[],this.feedPrice=null,this.marketSettleOrders=n().OrderedSet(),this.activeMarketHistory=n().OrderedSet(),this.marketData={bids:[],asks:[],calls:[],combinedBids:[],highestBid:h,combinedAsks:[],lowestAsk:h,flatBids:[],flatAsks:[],flatCalls:[],flatSettles:[],groupedBids:[],groupedAsks:[]},this.totals={bid:0,ask:0,call:0},this.priceData=[],this.pendingCreateLimitOrders=[],this.activeMarket=null,this.quoteAsset=null,this.pendingCounter=0,this.buckets=[15,60,300,3600,86400],this.bucketSize=this._getBucketSize(),this.priceHistory=[],this.lowestCallPrice=null,this.marketBase="BTS",this.marketStats=n().Map({change:0,volumeBase:0,volumeQuote:0}),this.marketReady=!1;let e=m.get("allMarketStats",{});for(let t in e)e[t].price&&(e[t].price=new u.tA({base:new u.xR({...e[t].price.base}),quote:new u.xR({...e[t].price.quote})}));this.allMarketStats=n().Map(e),this.onlyStars=m.get("onlyStars",!1),this.baseAsset={id:"1.3.0",symbol:"BTS",precision:5},this.coreAsset={id:"1.3.0",symbol:"CORE",precision:5},this.trackedGroupsConfig=[],this.currentGroupLimit=0,this.bindListeners({onSubscribeMarket:o.Z.subscribeMarket,onUnSubscribeMarket:o.Z.unSubscribeMarket,onChangeBase:o.Z.changeBase,onChangeBucketSize:o.Z.changeBucketSize,onCancelLimitOrderSuccess:o.Z.cancelLimitOrderSuccess,onCloseCallOrderSuccess:o.Z.closeCallOrderSuccess,onCallOrderUpdate:o.Z.callOrderUpdate,onGetMarketStats:o.Z.getMarketStats,onSettleOrderUpdate:o.Z.settleOrderUpdate,onSwitchMarket:o.Z.switchMarket,onFeedUpdate:o.Z.feedUpdate,onToggleStars:o.Z.toggleStars,onGetTrackedGroupsConfig:o.Z.getTrackedGroupsConfig,onChangeCurrentGroupLimit:o.Z.changeCurrentGroupLimit}),this.subscribers=new Map,this.exportPublicMethods({subscribe:this.subscribe.bind(this),unsubscribe:this.unsubscribe.bind(this),clearSubs:this.clearSubs.bind(this)})}subscribe(e,t){if(this.subscribers.has(e)&&this.subscribers.get(e)===t)return console.error("Subscribe callback already exists",t);this.subscribers.set(e,t)}unsubscribe(e){this.subscribers.has(e)&&this.subscribers.delete(e)}_notifySubscriber(e,t){this.subscribers.has(e)&&this.subscribers.get(e)(t)}clearSubs(){this.subscribers.clear()}onGetCollateralPositions(e){this.borrowMarketState={totalDebt:e.totalDebt,totalCollateral:e.totalCollateral}}_getBucketSize(){return parseInt(m.get("bucketSize",3600))}_setBucketSize(e){this.bucketSize=e,m.set("bucketSize",e)}onChangeBase(e){this.marketBase=e}onChangeBucketSize(e){this._setBucketSize(e)}onToggleStars(){this.onlyStars=!this.onlyStars,m.set("onlyStars",this.onlyStars)}onUnSubscribeMarket(e){e.unSub?this.activeMarket=null:this.activeMarket=e.market,e.resolve&&e.resolve()}onSwitchMarket(){this.marketReady=!1}onClearMarket(){this.activeMarket=null,this.is_prediction_market=!1,this.marketLimitOrders=this.marketLimitOrders.clear(),this.marketCallOrders=this.marketCallOrders.clear(),this.allCallOrders=[],this.feedPrice=null,this.marketSettleOrders=this.marketSettleOrders.clear(),this.activeMarketHistory=this.activeMarketHistory.clear(),this.marketData={bids:[],asks:[],calls:[],combinedBids:[],highestBid:h,combinedAsks:[],lowestAsk:h,flatBids:[],flatAsks:[],flatCalls:[],flatSettles:[],groupedBids:[],groupedAsks:[]},this.totals={bid:0,ask:0,call:0},this.lowestCallPrice=null,this.pendingCreateLimitOrders=[],this.priceHistory=[],this.marketStats=n().Map({change:0,volumeBase:0,volumeQuote:0})}_marketHasCalls(){const{quoteAsset:e,baseAsset:t}=this;return!(!e.has("bitasset")||e.getIn(["bitasset","options","short_backing_asset"])!==t.get("id"))||!(!t.has("bitasset")||t.getIn(["bitasset","options","short_backing_asset"])!==e.get("id"))}onSubscribeMarket(e){let t=!1;if(e.switchMarket)return this.marketReady=!1,this.emitChange();let a=!1,s=!1;this.invertedCalls=e.inverted,this.quoteAsset=c.ChainStore.getAsset(e.quote.get("id")),this.baseAsset=c.ChainStore.getAsset(e.base.get("id"));const n={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};if(e.market&&e.market!==this.activeMarket&&(this.onClearMarket(),this.activeMarket=e.market,t=!0,this.unsubscribe("subscribeBars")),this.feedPrice=this._getFeed(),e.buckets&&(this.buckets=e.buckets,-1===e.buckets.indexOf(this.bucketSize)&&(this.bucketSize=e.buckets[e.buckets.length-1])),e.buckets&&(this.buckets=e.buckets),e.limits){const t=this.marketLimitOrders;this.marketLimitOrders=this.marketLimitOrders.clear(),e.limits.forEach((e=>{"number"!=typeof e.for_sale&&(e.for_sale=parseInt(e.for_sale,10)),e.expiration=new Date(e.expiration),this.marketLimitOrders=this.marketLimitOrders.set(e.id,new u.eN(e,n,this.quoteAsset.get("id")))})),a=(0,u.Pz)(this.marketLimitOrders,t);for(let e=this.pendingCreateLimitOrders.length-1;e>=0;e--){let t=this.pendingCreateLimitOrders[e];this.marketLimitOrders.find((e=>t.seller===e.seller&&t.expiration===e.expiration))&&this.pendingCreateLimitOrders.splice(e,1)}0===this.pendingCreateLimitOrders.length&&(this.pendingCounter=0)}if(e.calls){const t=this.marketCallOrders;this.allCallOrders=e.calls,this.marketCallOrders=this.marketCallOrders.clear(),e.calls.forEach((e=>{try{let t=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]),a=new u.Gy(e,n,this.quoteAsset.get("id"),this.feedPrice,t,this.is_prediction_market);a.isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(e.id,a,t))}catch(e){console.error("Unable to construct calls array, invalid feed price or prediction market?")}})),s=(0,u.Pz)(this.marketCallOrders,t)}if(this.updateSettleOrders(e),e.history&&(this.activeMarketHistory=this.activeMarketHistory.clear(),e.history.forEach((e=>{e.op.is_maker||0==e.op.receives.amount||0==e.op.pays.amount||(this.activeMarketHistory=this.activeMarketHistory.add(new u.te(e,n,this.quoteAsset.get("id"))))}))),e.fillOrders&&e.fillOrders.forEach((e=>{this.activeMarketHistory=this.activeMarketHistory.add(new u.te(e[0][1],n,this.quoteAsset.get("id")))})),e.ticker){let t=this.quoteAsset.get("symbol")+"_"+this.baseAsset.get("symbol"),a=this._calcMarketStats(this.baseAsset,this.quoteAsset,t,e.ticker);this.allMarketStats=this.allMarketStats.set(t,a);let{invertedStats:s,invertedMarketName:n}=this._invertMarketStats(a,t);this.allMarketStats=this.allMarketStats.set(n,s),this._saveMarketStats(),this.marketStats=this.marketStats.set("change",a.change),this.marketStats=this.marketStats.set("volumeBase",a.volumeBase),this.marketStats=this.marketStats.set("volumeQuote",a.volumeQuote)}if((s||a)&&(this._orderBook(a,s),this._depthChart()),e.price&&(this.priceHistory=e.price,this._priceChart()),e.groupedOrdersBids.length>0||e.groupedOrdersAsks.length>0){const t=[],a=[];e.groupedOrdersBids.forEach(((e,a)=>{t.push(new u.aN(e,n,!0))})),e.groupedOrdersAsks.forEach(((e,t)=>{a.push(new u.aN(e,n,!1))})),this._groupedOrderBook(t,a),this._depthChart()}this.marketReady=!0,this.emitChange(),t&&this._notifySubscriber("market_change",this.quoteAsset.get("symbol")+"_"+this.baseAsset.get("symbol")),e.resolve&&e.resolve()}onCancelLimitOrderSuccess(e){if(!e||!e.length)return!1;{let t=!1;e.forEach((e=>{e&&this.marketLimitOrders.has(e)&&(t=!0,this.marketLimitOrders=this.marketLimitOrders.delete(e))})),0===this.marketLimitOrders.size&&(this.marketData.bids=[],this.marketData.flatBids=[],this.marketData.asks=[],this.marketData.flatAsks=[]),t&&(this._orderBook(!0,!1),this._depthChart())}}onCloseCallOrderSuccess(e){if(!e||!this.marketCallOrders.has(e))return!1;this.marketCallOrders=this.marketCallOrders.delete(e),0===this.marketCallOrders.size&&(this.marketData.calls=[],this.marketData.flatCalls=[]),this._orderBook(!1,!0),this._depthChart()}onCallOrderUpdate(e){if(!(e&&this.quoteAsset&&this.baseAsset&&this.feedPrice))return!1;if(e.call_price.quote.asset_id===this.quoteAsset.get("id")||e.call_price.quote.asset_id===this.baseAsset.get("id")){const t={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]),s=new u.Gy(e,t,this.quoteAsset.get("id"),this.feedPrice,a);s.isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(e.id,s,a),this._orderBook(!1,!0),this._depthChart())}catch(t){console.error("Unable to construct calls array, invalid feed price or prediction market?",e,this.quoteAsset&&this.quoteAsset.get("id"),this.baseAsset&&this.baseAsset.get("id"))}}}onFeedUpdate(e){if(!this.quoteAsset||!this.baseAsset)return!1;if(e.get("id")!==this[this.invertedCalls?"baseAsset":"quoteAsset"].get("id"))return!1;this[this.invertedCalls?"baseAsset":"quoteAsset"]=e;let t=!1,a=this._getFeed();if((a&&!this.feedPrice||this.feedPrice&&this.feedPrice.ne(a))&&(t=!0),t){this.feedPrice=a;const e={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};this.marketCallOrders=this.marketCallOrders.clear(),this.allCallOrders.forEach((t=>{try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maintenance_collateral_ratio"]);new u.Gy(t,e,this.quoteAsset.get("id"),this.feedPrice,a,this.is_prediction_market).isMarginCalled()&&(this.marketCallOrders=this.marketCallOrders.set(t.id,new u.Gy(t,e,this.quoteAsset.get("id"),this.feedPrice,a)))}catch(e){console.error("Unable to construct calls array, invalid feed price or prediction market?")}})),this._orderBook(!0,!0),this._depthChart()}}_getFeed(){if(!this._marketHasCalls())return this.bitasset_options=null,this.is_prediction_market=!1,null;const e={[this.quoteAsset.get("id")]:{precision:this.quoteAsset.get("precision")},[this.baseAsset.get("id")]:{precision:this.baseAsset.get("precision")}};let t=p.Z.extractRawFeedPrice(this[this.invertedCalls?"baseAsset":"quoteAsset"]);try{let a=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","current_feed","maximum_short_squeeze_ratio"]),s=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","options","extensions","margin_call_fee_ratio"]);if(this.is_prediction_market=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","is_prediction_market"],!1),this.bitasset_options=this[this.invertedCalls?"baseAsset":"quoteAsset"].getIn(["bitasset","options"]).toJS(),this.is_prediction_market&&t.getIn(["base","asset_id"])===t.getIn(["quote","asset_id"])){const s=this.bitasset_options.short_backing_asset;e[s]||(e[s]={precision:this.quoteAsset.get("precision")}),t=t.setIn(["base","amount"],1),t=t.setIn(["base","asset_id"],s),t=t.setIn(["quote","amount"],1),t=t.setIn(["quote","asset_id"],this.quoteAsset.get("id")),a=1e3}return new u.ad({priceObject:t,market_base:this.quoteAsset.get("id"),sqr:a,mcfr:s,assets:e})}catch(e){return console.error(this.activeMarket,"does not have a properly configured feed price"),null}}_priceChart(){let e,t,a,s,n,r=[];for(let o=0;o(e+s)/2*1.3&&(t=c(e,s)),a<(e+s)/2*.7&&(a=u(e,s)),r.push({time:l.getTime(),open:e,high:t,low:a,close:s,volume:n})}this.priceData=r,this._notifySubscriber("subscribeBars")}_orderBook(e=!0,t=!1){e&&(this.marketData.bids=(e=>{let t=this.marketLimitOrders.filter((e=>e.isBid())).sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>e)).toArray();if(t.length>1)for(let e=t.length-2;e>=0;e--)t[e].getPrice()===t[e+1].getPrice()&&(t[e]=t[e].sum(t[e+1]),t.splice(e+1,1));return t})(),this.marketData.asks=(e=>{let t=this.marketLimitOrders.filter((e=>!e.isBid())).sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>e)).toArray();if(t.length>1)for(let e=t.length-2;e>=0;e--)t[e].getPrice()===t[e+1].getPrice()&&(t[e]=t[e].sum(t[e+1]),t.splice(e+1,1));return t})(),t||this._combineOrders()),t&&(this.marketData.calls=this.constructCalls(this.marketCallOrders),this._combineOrders())}_groupedOrderBook(e=null,t=null){if(e&&t){let a=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),s=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")});e.sort(((e,t)=>t.getPrice()-e.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!0)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),a=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")}),s=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),t.sort(((e,t)=>e.getPrice()-t.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!1)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),this.marketData.groupedBids=e,this.marketData.groupedAsks=t}}constructCalls(e){let t=[];if(e.size){if(t=e.sort(((e,t)=>e.getPrice()-t.getPrice())).map((e=>(this.invertedCalls?this.lowestCallPrice=this.lowestCallPrice?Math.max(this.lowestCallPrice,e.getPrice(!1)):e.getPrice(!1):this.lowestCallPrice=this.lowestCallPrice?Math.min(this.lowestCallPrice,e.getPrice(!1)):e.getPrice(!1),e))).toArray(),t.length>1)for(let e=t.length-2;e>=0;e--)t[e]=t[e].sum(t[e+1]),t.splice(e+1,1)}else this.lowestCallPrice=null;return t}_saveMarketStats(){this.saveStatsTimeout||(this.saveStatsTimeout=setTimeout((()=>{m.set("allMarketStats",this.allMarketStats.toJS()),this.saveStatsTimeout=null}),3e4))}_combineOrders(){let e,t;this.marketCallOrders.size&&this.marketCallOrders.first().isBid()?(e=this.marketData.bids.concat(this.marketData.calls),t=this.marketData.asks.concat([])):(e=this.marketData.bids.concat([]),t=this.marketData.asks.concat(this.marketData.calls));let a=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),s=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")});e.sort(((e,t)=>t.getPrice()-e.getPrice())).forEach((e=>{a.plus(e.amountToReceive(!0)),s.plus(e.amountForSale()),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),a=new u.xR({asset_id:this.baseAsset.get("id"),precision:this.baseAsset.get("precision")}),s=new u.xR({asset_id:this.quoteAsset.get("id"),precision:this.quoteAsset.get("precision")}),t.sort(((e,t)=>e.getPrice()-t.getPrice())).forEach((e=>{s.plus(e.amountForSale()),a.plus(e.amountToReceive(!1)),e.setTotalForSale(s.clone()),e.setTotalToReceive(a.clone())})),this.marketData.lowestAsk=t.length?t[0]:h,this.marketData.highestBid=e.length?e[0]:h,this.marketData.combinedBids=e,this.marketData.combinedAsks=t}_depthChart(){let e=[],t=[],a=[],s=0,n=0,r=0,o=[],l=[],c=[],d=[];if(this.marketLimitOrders.size&&(this.marketData.bids.forEach((t=>{e.push([t.getPrice(),t.amountToReceive().getAmount({real:!0})]),s+=t.amountForSale().getAmount({real:!0})})),this.marketData.asks.forEach((e=>{t.push([e.getPrice(),e.amountForSale().getAmount({real:!0})])})),t.sort(((e,t)=>e[0]-t[0])),e.sort(((e,t)=>e[0]-t[0])),o=i.Z.flatten_orderbookchart_highcharts(e,!0,!0,1e3),o.length>0&&o.unshift([0,o[0][1]]),l=i.Z.flatten_orderbookchart_highcharts(t,!0,!1,1e3),l.length>0&&(l.push([1.5*l[l.length-1][0],l[l.length-1][1]]),n=l[l.length-1][1])),this.marketData.calls.length){let e=this.marketData.calls[0].isBid();this.marketData.calls.forEach((e=>{a.push([e.getSqueezePrice(),e[e.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0})])})),a.forEach((e=>{this.invertedCalls?r+=e[1]:r+=e[1]*e[0]})),e?s+=r:n+=r,a.sort(((e,t)=>e[0]-t[0])),this.invertedCalls?(c=i.Z.flatten_orderbookchart_highcharts(a,!0,!1,1e3),l.length>0&&c[c.length-1][0]0&&c.unshift([0,c[0][1]]))}this.marketSettleOrders.size&&(d=this.marketSettleOrders.reduce(((e,t)=>e?(e[0][1]=e[0][1]+t[t.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0}),e):[[t.getPrice(),t[t.isBid()?"amountToReceive":"amountForSale"]().getAmount({real:!0})]]),null),this.feedPrice.inverted?l.length>0&&d.push([l[l.length-1][0],d[0][1]]):d.unshift([0,d[0][1]])),this.marketData.groupedBids.length>0&&this.marketData.groupedAsks.length>0&&(e=[],t=[],s=0,n=0,this.marketData.groupedBids.forEach((t=>{e.push([t.getPrice(),t.amountToReceive().getAmount({real:!0})]),s+=t.amountForSale().getAmount({real:!0})})),this.marketData.groupedAsks.forEach((e=>{t.push([e.getPrice(),e.amountForSale().getAmount({real:!0})])})),t.sort(((e,t)=>e[0]-t[0])),e.sort(((e,t)=>e[0]-t[0])),o=i.Z.flatten_orderbookchart_highcharts(e,!0,!0,1e3),o.length>0&&o.unshift([0,o[0][1]]),l=i.Z.flatten_orderbookchart_highcharts(t,!0,!1,1e3),l.length>0&&(l.push([1.5*l[l.length-1][0],l[l.length-1][1]]),n=l[l.length-1][1])),this.marketData.flatAsks=l,this.marketData.flatBids=o,this.marketData.flatCalls=c,this.marketData.flatSettles=d,this.totals={bid:s,ask:n,call:r}}_calcMarketStats(e,t,a,s){let n,r=new u.xR({real:parseFloat(s.base_volume),asset_id:e.get("id"),precision:e.get("precision")}),o=new u.xR({real:parseFloat(s.quote_volume),asset_id:t.get("id"),precision:t.get("precision")});try{n=new u.tA({base:r,quote:o,real:parseFloat(s.latest)})}catch(e){}let i=n?{base:n.base.toObject(),quote:n.quote.toObject()}:null;return n&&isNaN(n.toReal())&&(n=void 0,i=null),{change:parseFloat(s.percent_change).toFixed(2),volumeBase:r.getAmount({real:!0}),volumeQuote:o.getAmount({real:!0}),price:n,close:i}}_invertMarketStats(e,t){let a=t.split("_")[1]+"_"+t.split("_")[0];return{invertedStats:{change:(100*(1/(1+parseFloat(e.change)/100)-1)).toFixed(2),price:e.price?e.price.invert():e.price,volumeBase:e.volumeQuote,volumeQuote:e.volumeBase,close:e.close?{base:e.close.quote,quote:e.close.base}:e.close},invertedMarketName:a}}onGetMarketStats(e){if(e&&e.tickers){for(var t=0;t{e.settlement_date=new Date(e.settlement_date+"Z"),this.marketSettleOrders=this.marketSettleOrders.add(new u.l4(e,t,this.quoteAsset.get("id"),this.feedPrice,this.bitasset_options))}))}}onGetTrackedGroupsConfig(e){e.trackedGroupsConfig.length>0&&(this.trackedGroupsConfig=e.trackedGroupsConfig)}onChangeCurrentGroupLimit(e){this.currentGroupLimit=e}},"MarketsStore")},79618:(e,t,a)=>{"use strict";a.d(t,{Z:()=>g});var s=a(43393),n=a.n(s),r=a(57296),o=a(16912),i=a(80017),l=a(41075),c=a(48126),d=a(43143),u=a(99659),p=a(71452),h=a(30806);class m extends o.Z{constructor(){super(),this.state=this._getInitialState(),this.pending_operation_count=0,this.bindListeners({onLoadDbData:d.Z.loadDbData,onAddKey:d.Z.addKey}),this._export("hasKey","getPubkeys","getTcomb_byPubkey","getPubkeys_having_PrivateKey","addPrivateKeys_noindex","decodeMemo","setPasswordLoginKey")}_getInitialState(){return{keys:n().Map(),privateKeyStorage_error:!1,pending_operation_count:0,privateKeyStorage_error_add_key:null,privateKeyStorage_error_loading:null}}setPasswordLoginKey(e){let t=this.state.keys.set(e.pubkey,e);this.setState({keys:t})}onLoadDbData(e){this.pendingOperation(),this.setState(this._getInitialState());let t=n().Map().asMutable();e(i.Z.cursor("private_keys",(e=>{if(!e)return void this.setState({keys:t.asImmutable()});let a=(0,c.E)(e.value);t.set(a.pubkey,a),p.Z.add(a.pubkey),e.continue()})).then((()=>{this.pendingOperationDone()})).catch((e=>{throw this.setState(this._getInitialState()),this.privateKeyStorageError("loading",e),e})))}hasKey(e){return this.state.keys.has(e)}getPubkeys(){return this.state.keys.keySeq().toArray()}getPubkeys_having_PrivateKey(e,t=null){let a=[];if(e)for(let t of e)this.hasKey(t)&&a.push(t);if(t){let e=p.Z.getState().addresses;for(let s of t){let t=e.get(s);a.push(t)}}return a}getTcomb_byPubkey(e){return e?(e.Q&&(e=e.toPublicKeyString()),this.state.keys.get(e)):null}onAddKey({private_key_object:e,transaction:t,resolve:a}){if(this.state.keys.has(e.pubkey))return void a({result:"duplicate",id:null});this.pendingOperation(),this.state.keys=this.state.keys.set(e.pubkey,(0,c.E)(e)),this.setState({keys:this.state.keys}),p.Z.add(e.pubkey);let s=new Promise(((a,s)=>{(0,c.E)(e);let n=!1,r=i.Z.add(t.objectStore("private_keys"),e);r.catch((e=>{let t=e.target.error;if(console.log("... error",t,e),"ConstraintError"!=t.name||-1==t.message.indexOf("by_encrypted_key"))throw this.privateKeyStorageError("add_key",t),e;n=!0,e.preventDefault()})).then((()=>(this.pendingOperationDone(),n?{result:"duplicate",id:null}:(null==e.brainkey_sequence&&this.binaryBackupRecommended(),i.Z.on_transaction_end(t).then((()=>{this.setState({keys:this.state.keys})})),{result:"added",id:e.id})))),a(r)}));a(s)}addPrivateKeys_noindex(e,t){let a=t.objectStore("private_keys"),s=0,n=this.state.keys.withMutations((t=>{for(let n of e){if(this.state.keys.has(n.pubkey)){s++;continue}let e=(0,c.E)(n);a.add(n),t.set(n.pubkey,e),h.ChainStore.getAccountRefsOfKey(n.pubkey)}}));return this.setState({keys:n}),this.binaryBackupRecommended(),s}binaryBackupRecommended(){u.Z.set("backup_recommended",!0)}pendingOperation(){this.pending_operation_count++,this.setState({pending_operation_count:this.pending_operation_count})}pendingOperationDone(){if(0==this.pending_operation_count)throw new Error("Pending operation done called too many times");this.pending_operation_count--,this.setState({pending_operation_count:this.pending_operation_count})}privateKeyStorageError(e,t){this.pendingOperationDone();let a={privateKeyStorage_error:!0};a["privateKeyStorage_error_"+e]=t,console.error("privateKeyStorage_error_"+e,t),this.setState(a)}decodeMemo(e){let t,a=!1,s=!1,n=this.state.keys.get(e.from),r=this.state.keys.get(e.to),o=n||r,i=n?e.to:e.from;i=h.PublicKey.fromPublicKeyString(i);try{o=l.Z.decryptTcomb_PrivateKey(o)}catch(e){a=!0,o=null,s=!0}if(o){let a=!1;try{t=o?h.Aes.decrypt_with_checksum(o,i,e.nonce,e.message).toString("utf-8"):null}catch(e){console.log("transfer memo exception ...",e),t="*",a=!0}if(o&&a)try{t=h.Aes.decrypt_with_checksum(o,i,e.nonce,e.message,!0).toString("utf-8")}catch(e){console.log("transfer memo exception ...",e),t="**"}}return{text:t,isMine:s}}}const g=r.Z.createStore(m,"PrivateKeyStore")},39014:(e,t,a)=>{"use strict";a.d(t,{Z:()=>h});var s=a(57296),n=a(55294),r=a(51477),o=a(43393),i=a.n(o),l=a(19602),c=a(55420),d=a(21712),u=a(60567);let p=(0,l.ZP)("__graphene__");const h=s.Z.createStore(class{constructor(){this.exportPublicMethods({init:this.init.bind(this),getSetting:this.getSetting.bind(this),getLastBudgetObject:this.getLastBudgetObject.bind(this),setLastBudgetObject:this.setLastBudgetObject.bind(this),hasAnyPriceAlert:this.hasAnyPriceAlert.bind(this)}),this.bindListeners({onSetPriceAlert:n.Z.setPriceAlert,onSetExchangeLastExpiration:n.Z.setExchangeLastExpiration,onSetExchangeTutorialShown:n.Z.setExchangeTutorialShown,onChangeSetting:n.Z.changeSetting,onChangeViewSetting:n.Z.changeViewSetting,onChangeMarketDirection:n.Z.changeMarketDirection,onAddStarMarket:n.Z.addStarMarket,onRemoveStarMarket:n.Z.removeStarMarket,onClearStarredMarkets:n.Z.clearStarredMarkets,onAddWS:n.Z.addWS,onRemoveWS:n.Z.removeWS,onShowWS:n.Z.showWS,onHideWS:n.Z.hideWS,onHideAsset:n.Z.hideAsset,onHideMarket:n.Z.hideMarket,onClearSettings:n.Z.clearSettings,onSwitchLocale:r.Z.switchLocale,onSetUserMarket:n.Z.setUserMarket,onUpdateLatencies:n.Z.updateLatencies,onModifyPreferedBases:n.Z.modifyPreferedBases,onUpdateUnits:n.Z.updateUnits,onHideNewsHeadline:n.Z.hideNewsHeadline,onAddChartLayout:n.Z.addChartLayout,onDeleteChartLayout:n.Z.deleteChartLayout}),this.initDone=!1,this.settings=i().Map(this._getSetting()),this.defaultSettings=i().Map(this._getDefaultSetting()),this.defaults=this._getChoices(),this.viewSettings=i().Map(p.get("viewSettings_v1")),this.marketDirections=i().Map(p.get("marketDirections")),this.hiddenAssets=i().List(p.get("hiddenAssets",[])),this.hiddenMarkets=i().List(p.get("hiddenMarkets",[])),this.apiLatencies=p.get("apiLatencies",{}),this.mainnet_faucet=p.get("mainnet_faucet",d.MU.DEFAULT_FAUCET),this.testnet_faucet=p.get("testnet_faucet",d.MU.TESTNET_FAUCET),this.exchange=(0,o.fromJS)(p.get("exchange",{})),this.priceAlert=(0,o.fromJS)(p.get("priceAlert",[])),this.hiddenNewsHeadline=i().List(p.get("hiddenNewsHeadline",[])),this.chartLayouts=i().List(p.get("chartLayouts",[]))}_getDefaultSetting(){return{locale:"en",apiServer:d.MU.DEFAULT_WS_NODE,filteredApiServers:[],filteredServiceProviders:["all"],faucet_address:d.MU.DEFAULT_FAUCET,unit:"BTS",fee_asset:"BTS",showSettles:!1,showAssetPercent:!1,walletLockTimeout:600,themes:(0,u.Vx)(),passwordLogin:"password"==(0,u.f1)(),browser_notifications:{allow:!0,additional:{transferToMe:!0}},rememberMe:!0,viewOnlyMode:!0,showProposedTx:!1}}_getDefaultChoices(){return{locale:["en","zh","fr","ko","de","es","it","tr","ru","ja"],apiServer:d.MU.WS_NODE_LIST.slice(0),filteredApiServers:[[]],filteredServiceProviders:[[]],unit:(0,u.rY)(),fee_asset:(0,u.rY)(),showProposedTx:[{translate:"yes"},{translate:"no"}],showSettles:[{translate:"yes"},{translate:"no"}],showAssetPercent:[{translate:"yes"},{translate:"no"}],themes:["darkTheme","lightTheme","midnightTheme"],passwordLogin:[{translate:"cloud_login"},{translate:"local_wallet"}],browser_notifications:{allow:[!0,!1],additional:{transferToMe:[!0,!1]}},rememberMe:[!0,!1],viewOnlyMode:[{translate:"show"},{translate:"hide"}]}}_isEmpty(e){let t=!0;return Object.keys(e).forEach((a=>{e.hasOwnProperty(a)&&null!==e[a]&&(t=!1)})),t}_replaceDefaults(e="saving",t,a=null){null==a&&(a=this._getDefaultSetting());let s=["activeNode"],n={};return"saving"===e?Object.keys(t).forEach((e=>{if(!s.includes(e)&&typeof t[e]==typeof a[e])if(t[e]instanceof Array||"object"!=typeof t[e])t[e]!==a[e]&&(t[e]instanceof Array?JSON.stringify(t[e])!==JSON.stringify(a[e])&&(n[e]=t[e]):n[e]=t[e]);else{let s=this._replaceDefaults("saving",t[e],a[e]);this._isEmpty(s)||(n[e]=s)}})):(Object.keys(a).forEach((e=>{let s=!1;void 0!==t[e]?typeof t[e]!=typeof a[e]?s=!0:t[e]instanceof Array||"object"!=typeof t[e]?n[e]=t[e]:n[e]=this._replaceDefaults("loading",t[e],a[e]):s=!0,s&&("object"==typeof t[e]?n[e]=JSON.parse(JSON.stringify(a[e])):n[e]=a[e])})),Object.keys(t).forEach((e=>{null==n[e]&&(n[e]=JSON.parse(JSON.stringify(t[e])))}))),n}_getSetting(){let e=new Date("2018-10-20T00:00:00Z");if(!p.has("settings_v4")&&new Date{"apiServer"!=t&&(a[t]=e[t])})),a.apiServer=this._getApiServerChoices(e,t),a}_getApiServerChoices(e,t){let a=e.apiServer.slice(0);return t.apiServer.forEach((e=>{let t=a.find((t=>t.url==e.url));t?this._injectApiConfiguration(t,e):e.default||a.push(e)})),a=a.map((t=>{let a=e.apiServer.find((e=>e.url==t.url));return t.default=!!a,t.hidden=!!t.hidden,t})),a}_ensureBackwardsCompatibilityChoices(e){if(e&&e.locale){let t=e.locale.findIndex((e=>"cn"===e));-1!==t&&(e.locale[t]="zh")}if(e&&e.themes){let t=e.themes.findIndex((e=>"olDarkTheme"===e));-1!==t&&(e.themes[t]="midnightTheme")}return e&&e.apiServer&&(e.apiServer=e.apiServer.map((e=>("string"==typeof e&&(e={url:e,location:null}),e)))),e}init(){return new Promise((e=>{this.initDone&&e(),this.starredKey=this._getChainKey("markets"),this.marketsKey=this._getChainKey("userMarkets"),this.basesKey=this._getChainKey("preferredBases");let t={markets_4018d784:(0,u.sY)(),markets_39f5e2ed:["PEG.FAKEUSD","BTWTY"]},a={markets_4018d784:(0,u.wV)(),markets_39f5e2ed:["TEST"]},s={markets_4018d784:"BTS",markets_39f5e2ed:"TEST"}[this.starredKey]||"BTS";this.onUpdateUnits(),this.defaults.unit[0]=s;let n=a[this.starredKey]||a.markets_4018d784,r=p.get(this.basesKey,[]);this.preferredBases=i().List(r.length?r:n),this.chainMarkets=t[this.starredKey]||[];let o=this._getDefaultMarkets();this.defaultMarkets=i().Map(o),this.starredMarkets=i().Map(p.get(this.starredKey,[])),this.userMarkets=i().Map(p.get(this.marketsKey,{})),this.initDone=!0,e()}))}_getDefaultMarkets(){let e=[];return this.preferredBases.forEach((t=>{!function(e,t,a){a.filter((e=>e!==t)).forEach((a=>{e.push([`${a}_${t}`,{quote:a,base:t}])}))}(e,t,this.chainMarkets)})),e}getSetting(e){return this.settings.get(e)}onChangeSetting(e){let t=!0;switch(e.setting){case"faucet_address":-1===e.value.indexOf("testnet")?(this.mainnet_faucet=e.value,p.set("mainnet_faucet",e.value)):(this.testnet_faucet=e.value,p.set("testnet_faucet",e.value));break;case"walletLockTimeout":p.set("lockTimeout",e.value);break;case"activeNode":t=!0}this.settings.get(e.setting)!==e.value&&(this.settings=this.settings.set(e.setting,e.value),t&&this._saveSettings())}onChangeViewSetting(e){for(let t in e)this.viewSettings=this.viewSettings.set(t,e[t]);p.set("viewSettings_v1",this.viewSettings.toJS())}onChangeMarketDirection(e){for(let t in e)e[t]?this.marketDirections=this.marketDirections.set(t,e[t]):this.marketDirections=this.marketDirections.delete(t);p.set("marketDirections",this.marketDirections.toJS())}onHideAsset(e){e.id&&(e.status?this.hiddenAssets=this.hiddenAssets.push(e.id):this.hiddenAssets=this.hiddenAssets.delete(this.hiddenAssets.indexOf(e.id))),p.set("hiddenAssets",this.hiddenAssets.toJS())}onHideMarket(e){e.id&&(e.status?this.hiddenMarkets=this.hiddenMarkets.push(e.id):this.hiddenMarkets=this.hiddenMarkets.delete(this.hiddenMarkets.indexOf(e.id))),p.set("hiddenMarkets",this.hiddenMarkets.toJS())}onAddStarMarket(e){let t=e.quote+"_"+e.base;if(this.starredMarkets.has(t))return!1;this.starredMarkets=this.starredMarkets.set(t,{quote:e.quote,base:e.base}),p.set(this.starredKey,this.starredMarkets.toJS())}onSetUserMarket(e){let t=e.quote+"_"+e.base;e.value?this.userMarkets=this.userMarkets.set(t,{quote:e.quote,base:e.base}):this.userMarkets=this.userMarkets.delete(t),p.set(this.marketsKey,this.userMarkets.toJS())}onRemoveStarMarket(e){let t=e.quote+"_"+e.base;this.starredMarkets=this.starredMarkets.delete(t),p.set(this.starredKey,this.starredMarkets.toJS())}onClearStarredMarkets(){this.starredMarkets=i().Map({}),p.set(this.starredKey,this.starredMarkets.toJS())}onAddWS(e){"string"==typeof e&&(e={url:e,location:null}),this.defaults.apiServer.push(e),p.set("defaults_v1",this.defaults)}onRemoveWS(e){this.defaults.apiServer.splice(e,1),p.set("defaults_v1",this.defaults)}onHideWS(e){this.defaults.apiServer.find((t=>t.url===e)).hidden=!0,p.set("defaults_v1",this.defaults)}onShowWS(e){this.defaults.apiServer.find((t=>t.url===e)).hidden=!1,p.set("defaults_v1",this.defaults)}onClearSettings(e){p.remove("settings_v3"),p.remove("settings_v4"),this.settings=this.defaultSettings,this._saveSettings(),e&&e()}onSwitchLocale({locale:e}){this.onChangeSetting({setting:"locale",value:e})}_getChainId(){return(c.Apis.instance().chain_id||"4018d784").substr(0,8)}_getChainKey(e){const t=this._getChainId();return e+(t?`_${t.substr(0,8)}`:"")}onUpdateLatencies(e){p.set("apiLatencies",e),this.apiLatencies=e}getLastBudgetObject(){return p.get(this._getChainKey("lastBudgetObject"),"2.13.1")}setLastBudgetObject(e){p.set(this._getChainKey("lastBudgetObject"),e)}setExchangeSettings(e,t){this.exchange=this.exchange.set(e,t),p.set("exchange",this.exchange.toJS())}getPriceAlert(){return this.priceAlert.toJS()}onSetPriceAlert(e){this.priceAlert=(0,o.fromJS)(e),p.set("priceAlert",e)}hasAnyPriceAlert(e,t){return this.priceAlert.some((a=>a.get("quoteAssetSymbol")===e&&a.get("baseAssetSymbol")===t))}getExchangeSettings(e){return this.exchange.get(e)}onSetExchangeLastExpiration(e){this.setExchangeSettings("lastExpiration",(0,o.fromJS)(e))}onSetExchangeTutorialShown(e){this.setExchangeSettings("tutorialShown",e)}getExhchangeLastExpiration(){return this.getExchangeSettings("lastExpiration")}onModifyPreferedBases(e){if("newIndex"in e&&"oldIndex"in e){let t=this.preferredBases.get(e.newIndex);this.preferredBases=this.preferredBases.set(e.newIndex,this.preferredBases.get(e.oldIndex)),this.preferredBases=this.preferredBases.set(e.oldIndex,t)}else if("remove"in e){this.preferredBases=this.preferredBases.delete(e.remove);let t=this._getDefaultMarkets();this.defaultMarkets=i().Map(t)}else if("add"in e){this.preferredBases=this.preferredBases.push(e.add);let t=this._getDefaultMarkets();this.defaultMarkets=i().Map(t)}p.set(this.basesKey,this.preferredBases.toArray())}onUpdateUnits(){this.defaults.unit=(0,u.rY)(),-1===this.defaults.unit.indexOf(this.settings.get("unit"))&&(this.settings=this.settings.set("unit",this.defaults.unit[0]),this.settings=this.settings.set("fee_asset",this.defaults.unit[0]))}onHideNewsHeadline(e){e&&this.hiddenNewsHeadline.indexOf(e)&&(this.hiddenNewsHeadline=this.hiddenNewsHeadline.push(e),p.set("hiddenNewsHeadline",this.hiddenNewsHeadline.toJS()))}onAddChartLayout(e){if(e.name){e.enabled=!0;const t=this.chartLayouts.findIndex((t=>t.name===e.name&&t.symbol===e.symbol));-1!==t&&(this.chartLayouts=this.chartLayouts.delete(t)),this.chartLayouts=this.chartLayouts.map((t=>(t.symbol===e.symbol&&(t.enabled=!1),t))),this.chartLayouts=this.chartLayouts.push(e),p.set("chartLayouts",this.chartLayouts.toJS())}}onDeleteChartLayout(e){if(e){const t=this.chartLayouts.findIndex((t=>t.name===e));-1!==t&&(this.chartLayouts=this.chartLayouts.delete(t)),p.set("chartLayouts",this.chartLayouts.toJS())}}},"SettingsStore")},69730:(e,t,a)=>{"use strict";a.d(t,{Z:()=>r});var s=a(57296),n=a(69778);const r=s.Z.createStore(class{constructor(){this.bindActions(n.Z),this.state=this.getInitialState(),this.exportPublicMethods({reset:this.reset.bind(this)})}getInitialState(){return{transaction:null,error:null,broadcasting:!1,broadcast:!1,included:!1,trx_id:null,trx_block_num:null,closed:!0,broadcasted_transaction:null,propose:!1,fee_paying_account:null}}onConfirm({transaction:e,resolve:t,reject:a}){let s={...this.getInitialState(),transaction:e,closed:!1,broadcasted_transaction:null,resolve:t,reject:a};this.setState(s)}onClose(){this.setState({closed:!0})}onBroadcast(e){this.setState(e),e.broadcasted_transaction&&this.setState({broadcasted_transaction:this.state.transaction})}onWasBroadcast(e){this.setState({broadcasting:!1,broadcast:!0})}onWasIncluded(e){this.setState({error:null,broadcasting:!1,broadcast:!0,included:!0,trx_id:e[0].id,trx_block_num:e[0].block_num,broadcasted_transaction:this.state.transaction})}onError({error:e}){this.setState({broadcast:!1,broadcasting:!1,error:e})}onTogglePropose(){this.setState({propose:!this.state.propose})}onProposeFeePayingAccount(e){this.setState({fee_paying_account:e})}reset(){this.state=this.getInitialState()}},"TransactionConfirmStore")},41075:(e,t,a)=>{"use strict";a.d(t,{Z:()=>C});var s=a(68652),n=a(57296),r=a(16912),o=a(95768),i=a(80017),l=a(79618),c=a(39014),d=a(48126),u=a(69778),p=a(56934),h=a(43143),m=a(82050),g=a(30806),b=a(55420),f=a(71452),y=a(55294),_=a(76660),w=a(112),k=a.n(w),v=a(48764).Buffer;let A,E=null,x=null;class S extends r.Z{constructor(){super(),this.state={wallet:null,saving_keys:!1},this.confirm_transactions=!0,g.ChainStore.subscribe(this.checkNextGeneratedKey.bind(this)),this.generateNextKey_pubcache=[],this._export("checkNextGeneratedKey","getWallet","onLock","isLocked","decryptTcomb_PrivateKey","getPrivateKey","process_transaction","transaction_update","transaction_update_keys","getBrainKey","getBrainKeyPrivate","onCreateWallet","validatePassword","changePassword","generateNextKey","incrementBrainKeySequence","saveKeys","saveKey","setWalletModified","setBackupDate","setBrainkeyBackupDate","_updateWallet","loadDbData","importKeysWorker","resetBrainKeySequence","decrementBrainKeySequence","generateKeyFromPassword"),this.generatingKey=!1}checkNextGeneratedKey(){if(this.state.wallet&&E&&this.state.wallet.encrypted_brainkey&&this.chainstore_account_ids_by_key!==g.ChainStore.account_ids_by_key){this.chainstore_account_ids_by_key=g.ChainStore.account_ids_by_key;try{this.generateNextKey(!1)}catch(e){console.error(e)}}}getWallet(){return this.state.wallet}onLock(){x=null,E=null}isLocked(){return!(E||x)}decryptTcomb_PrivateKey(e){if(!e)return null;if(this.isLocked())throw new Error("wallet locked");if(x&&x[e.pubkey])return x[e.pubkey];let t=E.decryptHex(e.encrypted_key);return g.PrivateKey.fromBuffer(new v(t,"hex"))}getPrivateKey(e){if(x)return x[e];if(!e)return null;e.Q&&(e=e.toPublicKeyString());let t=l.Z.getTcomb_byPubkey(e);return t?this.decryptTcomb_PrivateKey(t):null}process_transaction(e,t,a,s=[]){return!c.Z.getState().settings.get("passwordLogin")&&this.state.wallet&&b.Apis.instance().chain_id!==this.state.wallet.chain_id?Promise.reject("Mismatched chain_id; expecting "+this.state.wallet.chain_id+", but got "+b.Apis.instance().chain_id):p.Z.unlock().then((()=>(m.Z.tryToSetCurrentAccount(),Promise.all([e.set_required_fees(),e.update_head_block()]).then((()=>{let n={};if(t){let a=l.Z.getPubkeys_having_PrivateKey(t);if(!a.length)throw new Error("Missing signing key");for(let t of a){let a=this.getPrivateKey(t);e.add_signer(a,t),n[t]=!0}}return e.get_potential_signatures().then((({pubkeys:t,addys:a})=>{let r=l.Z.getPubkeys_having_PrivateKey(t.concat(s),a);return e.get_required_signatures(r).then((t=>{for(let a of t){if(n[a])continue;let t=this.getPrivateKey(a);if(!t)throw new Error("Missing signing key for "+a);e.add_signer(t,a)}}))})).then((()=>{if(a){if(this.confirm_transactions){return new Promise(((t,a)=>{u.Z.confirm(e,t,a)}))}return e.broadcast()}return e.serialize()}))}))))).catch((e=>{console.error(e)}))}transaction_update(){return o.Z.instance().db().transaction(["wallet"],"readwrite")}transaction_update_keys(){return o.Z.instance().db().transaction(["wallet","private_keys"],"readwrite")}getBrainKey(){let e=this.state.wallet;if(!e.encrypted_brainkey)throw new Error("missing brainkey");if(!E)throw new Error("wallet locked");return E.decryptHexToText(e.encrypted_brainkey)}getBrainKeyPrivate(e=this.getBrainKey()){if(!e)throw new Error("missing brainkey");return g.PrivateKey.fromSeed(g.key.normalize_brainKey(e))}onCreateWallet(e,t,a=!1,s="default"){let n=n=>new Promise(((r,o)=>{if("string"!=typeof e)throw new Error("password string is required");let l;if(t){if("string"!=typeof t)throw new Error("Brainkey must be a string");if(""===t.trim())throw new Error("Brainkey can not be an empty string");if(t.length<50)throw new Error("Brainkey must be at least 50 characters long");l=new Date}let c=g.Aes.fromSeed(e),u=g.key.get_random_key().toBuffer(),h=c.encryptToHex(u),m=g.Aes.fromSeed(u);t=t?g.key.normalize_brainKey(t):g.key.suggest_brain_key(n.en);let f=this.getBrainKeyPrivate(t).toPublicKey().toPublicKeyString(),y=m.encryptToHex(t),_=g.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString(),w={public_name:s,password_pubkey:_,encryption_key:h,encrypted_brainkey:y,brainkey_pubkey:f,brainkey_sequence:0,brainkey_backup_date:l,created:new Date,last_modified:new Date,chain_id:b.Apis.instance().chain_id};(0,d.j)(w);let k=this.transaction_update(),v=i.Z.add(k.objectStore("wallet"),w),A=i.Z.on_transaction_end(k).then((()=>{this.state.wallet=w,this.setState({wallet:w}),a&&(E=m,p.Z.unlock().catch((()=>{})))}));Promise.all([v,A]).then((()=>{r()})).catch((e=>{o(e)}))}));{let e=t?null:fetch("dictionary.json");return Promise.all([e]).then((e=>t?n(null):e[0].json().then(n))).catch((e=>{console.log("unable to fetch dictionary.json",e)}))}}generateKeyFromPassword(e,t,a){let s=e+t+a,n=g.PrivateKey.fromSeed(s),r=n.toPublicKey().toString();return{privKey:n,pubKey:r}}validatePassword(e,t=!1,a=null,s=["active","owner","memo"]){if(a){let n,r=0;function o(e,t,s){x||(x={}),x[s]=t,r++,l.Z.setPasswordLoginKey({pubkey:s,import_account_names:[a],encrypted_key:null,id:r,brainkey_sequence:null})}try{n=g.PrivateKey.fromWif(e)}catch(d){}let i,c=g.ChainStore.getAccount(a,!1);if(n&&(i={privKey:n,pubKey:n.toPublicKey().toString()}),s.forEach((t=>{n||(i=this.generateKeyFromPassword(a,t,e));let s=!1;if(c)if("memo"===t)c.getIn(["options","memo_key"])===i.pubKey&&(o(0,i.privKey,i.pubKey),s=!0);else if(c.getIn([t,"key_auths"]).forEach((e=>{if(e.get(0)===i.pubKey)return o(0,i.privKey,i.pubKey),s=!0,!1})),!s){let e="active"===t?"owner":"active";c.getIn([e,"key_auths"]).forEach((e=>{if(e.get(0)===i.pubKey)return o(0,i.privKey,i.pubKey),s=!0,!1}))}})),!x&&this.state.wallet){let{success:u,cloudMode:p}=this.validatePassword(e,!0);if(u&&!p)return _.Notification.success({message:k().translate("wallet.local_switch")}),y.Z.changeSetting({setting:"passwordLogin",value:!1}),{success:!0,cloudMode:!1}}return{success:!!x,cloudMode:!0}}{let h=this.state.wallet;try{let m=g.PrivateKey.fromSeed(e).toPublicKey().toPublicKeyString();if(h.password_pubkey!==m)return!1;if(t){let b=g.Aes.fromSeed(e).decryptHexToBuffer(h.encryption_key);E=g.Aes.fromSeed(b)}return{success:!0,cloudMode:!1}}catch(f){return console.error(f),{success:!1,cloudMode:!1}}}}changePassword(e,t,a=!1){return new Promise((s=>{let n=this.state.wallet,{success:r}=this.validatePassword(e);if(!r)throw new Error("wrong password");let o=g.Aes.fromSeed(e),i=g.Aes.fromSeed(t);if(!n.encryption_key)throw new Error("This wallet does not support the change password feature.");let l=o.decryptHexToBuffer(n.encryption_key);n.encryption_key=i.encryptToHex(l);let c=g.PrivateKey.fromSeed(t);n.password_pubkey=c.toPublicKey().toPublicKeyString(),E=a?g.Aes.fromSeed(l):null,s(this.setWalletModified())}))}generateNextKey(e=!0){if(this.generatingKey)return;this.generatingKey=!0;let t=this.getBrainKey(),a=this.state.wallet,s=Math.max(a.brainkey_sequence,0),n=null;this.brainkey_look_ahead=Math.min(10,(this.brainkey_look_ahead||0)+1);const r=s?s+this.brainkey_look_ahead:Math.max(s+this.brainkey_look_ahead,10);for(let e=s;e{let n=[];for(let t of e)n.push(t.public_key_string);let r=f.Z.addAll(n),o=[];for(let t of e)o.push(t.private_plainhex);A=a(81895).Z;let c=new A;c.postMessage({private_plainhex_array:o,key:E.key,iv:E.iv});let d=this;this.setState({saving_keys:!0}),c.onmessage=a=>{try{console.log("Preparing for private keys save");let n=a.data,o=[];for(let t=0;t{console.log("Done saving keys",(new Date).toString())})))}catch(e){c.abort(),console.error(e),s(e)}}catch(e){console.error("AesWorker.encrypt",e)}}}))}saveKeys(e,t,a){let s=[];for(let n of e)s.push(this.saveKey(n.private_key,n.sequence,null,a,t));return Promise.all(s)}saveKey(e,t,a,s,n=this.transaction_update_keys()){let r=E.encryptToHex(e.toBuffer());if(this.state.wallet,s){if(0!=s.indexOf(b.ChainConfig.address_prefix))throw new Error("Public Key should start with "+b.ChainConfig.address_prefix)}else s=e.toPublicKey().toPublicKeyString();let o={import_account_names:a,encrypted_key:r,pubkey:s,brainkey_sequence:t};return h.Z.addKey(o,n).then((e=>e))}setWalletModified(e){return this._updateWallet(e)}setBackupDate(){return this.state.wallet.backup_date=new Date,this._updateWallet()}setBrainkeyBackupDate(){return this.state.wallet.brainkey_backup_date=new Date,this._updateWallet()}_updateWallet(e=this.transaction_update()){let t=this.state.wallet;if(!t)return void function(e){throw console.error("----- WalletDb reject error -----",e),new Error(e)}("missing wallet");let a=(0,s.Z)(t);a.last_modified=new Date,(0,d.j)(a);let n=e.objectStore("wallet"),r=i.Z.on_request_end(n.put(a)),o=i.Z.on_transaction_end(e).then((()=>{this.state.wallet=a,this.setState({wallet:a})}));return Promise.all([r,o])}loadDbData(){return i.Z.cursor("wallet",(e=>{if(!e)return!1;let t=e.value;t.created=new Date(t.created),t.last_modified=new Date(t.last_modified),t.backup_date=t.backup_date?new Date(t.backup_date):null,t.brainkey_backup_date=t.brainkey_backup_date?new Date(t.brainkey_backup_date):null;try{(0,d.j)(t)}catch(e){console.log("WalletDb format error",e)}return this.state.wallet=t,this.setState({wallet:t}),!1}))}}const C=n.Z.createStore(S,"WalletDb")},39238:(e,t,a)=>{"use strict";a.d(t,{Z:()=>f});var s=a(57296),n=a(41075),r=a(44034),o=a(32793),i=a(54742),l=a(86481),c=a(43143),d=a(28969),u=a(30806),p=a(16912),h=a(95768),m=a(43393),g=a.n(m);class b extends p.Z{constructor(){super(),this.state=this._getInitialState(),this.bindListeners({onRestore:d.Z.restore,onSetWallet:d.Z.setWallet,onSetBackupDate:d.Z.setBackupDate,onSetBrainkeyBackupDate:d.Z.setBrainkeyBackupDate,onDeleteWallet:d.Z.deleteWallet}),super._export("init","setNewWallet","onDeleteWallet","onDeleteAllWallets")}_getInitialState(){return{new_wallet:void 0,current_wallet:void 0,wallet_names:g().Set()}}onRestore({wallet_name:e,wallet_object:t}){h.Z.restore(e,t).then((()=>(o.Z.setWallet(e),this.onSetWallet({wallet_name:e})))).catch((e=>(console.error(e),Promise.reject(e))))}onSetWallet({wallet_name:e="default",create_wallet_password:t,brnkey:a,resolve:s}){var d=new Promise((s=>{if(/[^a-z0-9_-]/.test(e)||""===e)throw new Error("Invalid wallet name");if(this.state.current_wallet!==e){var d;if(!this.state.wallet_names.has(e)){var p=this.state.wallet_names.add(e);d=h.Z.root.setProperty("wallet_names",p),this.setState({wallet_names:p})}var m=h.Z.root.setProperty("current_wallet",e);s(Promise.all([d,m]).then((()=>(h.Z.close(),u.ChainStore.clearCache(),i.Z.reset(),h.Z.init_instance().init_promise.then((()=>(l.Z.reset(),Promise.all([n.Z.loadDbData().then((()=>o.Z.loadDbData())),c.Z.loadDbData().then((()=>r.Z.loadDbData()))]).then((()=>{if(t)return n.Z.onCreateWallet(t,a,!0,e).then((()=>this.setState({current_wallet:e})));this.setState({current_wallet:e})})))))))))}else s()})).catch((e=>(console.error(e),Promise.reject(e))));s&&s(d)}setNewWallet(e){this.setState({new_wallet:e})}init(){return h.Z.root.getProperty("current_wallet").then((e=>h.Z.root.getProperty("wallet_names",[]).then((t=>{this.setState({wallet_names:g().Set(t),current_wallet:e}),o.Z.setWallet(e)}))))}onDeleteAllWallets(){var e=[];return this.state.wallet_names.forEach((t=>e.push(this.onDeleteWallet(t)))),Promise.all(e)}onDeleteWallet(e){return new Promise((t=>{var{current_wallet:a,wallet_names:s}=this.state;if(!s.has(e))throw new Error("Can't delete wallet, does not exist in index");s=s.delete(e),h.Z.root.setProperty("wallet_names",s),a===e&&(a=s.size?s.first():void 0,h.Z.root.setProperty("current_wallet",a),a&&d.Z.setWallet(a)),this.setState({current_wallet:a,wallet_names:s});var n=h.Z.getDatabaseName(e);h.Z.impl.deleteDatabase(n),t(n)}))}onSetBackupDate(){n.Z.setBackupDate()}onSetBrainkeyBackupDate(){n.Z.setBrainkeyBackupDate()}}const f=s.Z.createStore(b,"WalletManagerStore")},29548:(e,t,a)=>{"use strict";a.d(t,{Z:()=>c});var s=a(57296),n=a(56934),r=a(55294),o=a(41075),i=a(19602);let l=(0,i.ZP)("__graphene__");const c=s.Z.createStore(class{constructor(){this.bindActions(n.Z);const e=l.get("settings_v4",{});void 0===e.passwordLogin&&(e.passwordLogin=!0);let t=e.passwordLogin;this.state={locked:!0,passwordLogin:t,rememberMe:void 0===e.rememberMe||e.rememberMe},this.walletLockTimeout=this._getTimeout(),this.timeout=null,this.bindListeners({onChangeSetting:r.Z.changeSetting})}onUnlock({resolve:e,reject:t}){if(this._setLockTimeout(),!o.Z.isLocked())return this.setState({locked:!1}),void e();this.setState({resolve:e,reject:t,locked:o.Z.isLocked()})}onLock({resolve:e}){o.Z.isLocked()||(o.Z.onLock(),this.setState({resolve:null,reject:null,locked:o.Z.isLocked()}),this.state.rememberMe||(0,i.oA)()||(0,i.tc)("persistant")),e()}onCancel(){"function"==typeof this.state.reject&&this.state.reject({isCanceled:!0}),this.setState({resolve:null,reject:null})}onChange(){this.setState({locked:o.Z.isLocked()})}onChangeSetting(e){"walletLockTimeout"===e.setting?(this.walletLockTimeout=e.value,this._clearLockTimeout(),this._setLockTimeout()):"passwordLogin"===e.setting?this.setState({passwordLogin:e.value}):"rememberMe"===e.setting&&this.setState({rememberMe:e.rememberMe})}_setLockTimeout(){this._clearLockTimeout(),this.walletLockTimeout&&(this.timeout=setTimeout((()=>{o.Z.isLocked()||(console.log("auto locking after",this.walletLockTimeout,"s"),o.Z.onLock(),this.setState({locked:!0}))}),1e3*this.walletLockTimeout))}_clearLockTimeout(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null)}_getTimeout(){return parseInt(l.get("lockTimeout",600),10)}onCheckLock(){this.setState({locked:o.Z.isLocked()})}},"WalletUnlockStore")},48126:(e,t,a)=>{"use strict";a.d(t,{E:()=>r,j:()=>n});var s=a(4893);let n=(0,s.struct)({public_name:s.Str,created:s.Dat,last_modified:s.Dat,backup_date:(0,s.maybe)(s.Dat),password_pubkey:s.Str,encryption_key:s.Str,encrypted_brainkey:(0,s.maybe)(s.Str),brainkey_pubkey:s.Str,brainkey_sequence:s.Num,brainkey_backup_date:(0,s.maybe)(s.Dat),deposit_keys:(0,s.maybe)(s.Obj),chain_id:s.Str},"WalletTcomb"),r=(0,s.struct)({id:(0,s.maybe)(s.Num),pubkey:s.Str,label:(0,s.maybe)(s.Str),import_account_names:(0,s.maybe)(s.Arr),brainkey_sequence:(0,s.maybe)(s.Num),encrypted_key:s.Str},"PrivateKeyTcomb")},37199:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/atn.png"},64652:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/atri.png"},58661:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bat.png"},85977:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bch.png"},13221:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bkbt.png"},8971:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bkt.png"},34661:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/blockpay.png"},6717:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btc.png"},81551:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btg.png"},15234:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btm.png"},26275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bto.png"},34921:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/bts.png"},79063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btsr.png"},47987:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/btwty.png"},32316:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/cny.png"},13538:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/cof.png"},44851:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dao.png"},47868:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dash.png"},14935:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dct.png"},1904:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dgb.png"},65731:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dgd.png"},87554:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/dht.png"},43368:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/doge.png"},51482:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/egem.png"},6644:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eos.png"},10372:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eth.png"},4552:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eur.png"},53289:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/eurt.png"},31253:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/exr.png"},54849:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/fil.png"},61010:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/game.png"},97835:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gas.png"},74384:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gbg.png"},65968:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gdex.btc.png"},30649:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gold.png"},80790:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/golos.png"},89776:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/grc.png"},80265:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/gxs.png"},51797:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hempsweet.png"},41519:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hero.png"},23254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/hertz.png"},72794:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/icoo.png"},64254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/incnt.png"},89951:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kec.png"},90037:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kexcoin.png"},34389:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/krm.png"},63016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/lcrt.png"},20170:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/lisk.png"},89773:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ltc.png"},32275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/mdl.png"},58728:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/mkr.png"},44301:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/neo.png"},86741:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/nvc.png"},57634:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/nxc.png"},8476:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/obits.png"},99042:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/oct.png"},90378:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/open.btc.png"},81610:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/peerplays.png"},59639:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.bcc.png"},33902:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.btc.png"},24019:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.cosa.png"},57681:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.doge.png"},77399:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.ltc.png"},57202:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.pirate.png"},41450:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/pirate.png"},61139:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/post.png"},90859:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ppy.png"},6418:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/qtum.png"},19612:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/ruble.png"},1185:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.btc.png"},42364:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.eos.png"},5119:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.eth.png"},25585:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.gbg.png"},44704:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.golos.png"},18625:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.grc.png"},65953:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.krm.png"},59929:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.pzm.png"},89745:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.sbd.png"},48810:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.smoke.png"},86946:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.steem.png"},75919:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.usdt.png"},13176:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/rudex.wls.png"},36324:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/sbd.png"},10853:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/scr.png"},78331:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/smoke.png"},72590:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/stealth.png"},93815:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/steem.png"},83408:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/sth.png"},21113:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/tusd.png"},37344:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/unknown.png"},44532:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usd.png"},6047:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdc.png"},26203:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdn.png"},22425:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/usdt.png"},50623:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/waves.png"},8131:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/xmr.png"},92124:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/xrp.png"},46195:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/yoyow.png"},99139:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zec.png"},5228:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zeph.png"},67063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/zrx.png"},17038:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/kapital.png"},88918:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"asset-symbols/silver.png"},118:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/default.svg"},27599:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/downloaded.svg"},62821:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/error.svg"},87664:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/hover.svg"},86633:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"bin-file/rounded-arrow.svg"},87056:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"favicon.ico"},24242:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/EN.png"},89907:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/KO.png"},72484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/DE.png"},12710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/ES.png"},59628:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/FR.png"},71466:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/IT.png"},63600:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/JA.png"},79710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/RU.png"},30210:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/TR.png"},9967:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"language-dropdown/ZH.png"},15663:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account-active.svg"},2:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account-inactive.svg"},94770:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/account.svg"},33508:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-active.svg"},69426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-drive.svg"},21912:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s=a.p+"model-type-images/flesh-inactive.svg"},74423:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Accounts

    As you may have already noticed by now, this blockchain technology requires you to register an account name. This comes with many advantages: Besides improved scalability, we have separated the identity from the transaction authorizing signature. In practice, owning an account name is independent from being able to spend its funds. Furthermore, both rights (we call them permissions) can split among an arbitrary complex relation of people (we call them authorities) using weights and a required thresholds.

    '},21710:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Memberships

    Accounts in BitShares are separated into three groups. We decided to give users the option to upgrade their accounts into a VIP-like status if they desire and profit from reduced fees and additional features.

    Non-Members

    A regular account is a non-member.

    Lifetime Members

    Lifetime Members get a percentage cashback on every transaction fee they pay and income from referrals. A Lifetime membership is associated with a certain one-time fee defined in this schedule.

    Fee Division

    Every time an account you referred pays a transaction fee, that fee is divided among several different accounts. The network takes a cut, and the Lifetime Member who referred the account gets a cut.

    The registrar is the account that paid the transaction fee to register the account with the network. The registrar gets to decide how to divide the remaining fee between themselves and their own affiliate.

    Pending Fees

    Fees paid are only divided among the network, referrers, and registrars once every maintenance interval.

    Vesting Fees

    Most fees are made available immediately, but fees over the vesting threshold (such as those paid to upgrade your membership or register a premium account name) must vest for some period of time as defined by the committee.

    '},62313:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Permissions

    In BitShares, each account is separated into

    • Active Permission: control over its funds and
    • Owner Permission: control over the account.

    Both can be defined in the Permissions tab of your account using so called authorities (see below) together with a so called threshold that has to be exceeded in order for a transaction to be valid.

    Authorities

    In BitShares an authority consists of one or many entities that authorize an action, such as transfers or trades.

    An authority consists of one or several pairs of an account name with a weight.

    In order to obtain a valid transaction, the sum of the weights from signing the parties has to exceed the threshold as defined in the permissions.

    Examples

    Let's discuss some examples to shed some light on the used terminology and the use-cases. We assume that a new account is created with it's active permissions set as described below. Note that the same scheme also works for the owner permissions!

    (Flat) Multi-Signature

    A flat multi-signature scheme is composed of M entities of which N entities must sign in order for the transaction to be valid. Now, in BitShares, we have weights and a threshold instead of M and N. Still we can achieve the very same thing with even more flexibility as we will see now.

    Let's assume, Alice, Bob, Charlie and Dennis have common funds. We want to be able to construct a valid transaction if only two of those agree. Hence a 2-of-4 (N-of-M) scheme can look as follows:

    Account Weight
    Alice 33%
    Bob 33%
    Charlie 33%
    Dennis 33%
    ---------- ------
    Threshold: 51%

    All four participants have a weight of 33% but the threshold is set to 51%. Hence only two out of the four need to agree to validate the transaction.

    Alternatively, to construct a 3-of-4 scheme, we can either decrease the weights to 17 or increase the threshold to 99%.

    (Flat) Flexible Multi-Signature

    With the threshold and weights, we now have more flexibility over our funds, or more precisely, we have more control. For instance, we can have separate weights for different people. Let's assume Alice wants to secure here funds against theft by a multi-signature scheme but she does not want to hand over too much control to her friends. Hence, we create an authority similar to:

    Account Weight
    Alice 49%
    Bob 25%
    Charlie 25%
    Dennis 10%
    ---------- ------
    Threshold: 51%

    Now the funds can either be accessed by Alice and a single friend or by all three friends together.

    Multi-Hierarchical Flexible Multi-Signature

    Let's take a look at a simple multi-hierarchical corporate account setup. We are looking at a company that has a Chief of Financial Officer (CFO) and a some departments working for him, such as the Treasurer, Controller, Tax Manager, Accounting, etc. The company also has a CEO that wants to have spending privileges. Hence we construct an authority for the funds according to:

    Account Weight
    CEO.COMPANY 51%
    CFO.COMPANY 51%
    ---------- ------
    Threshold: 51%

    whereas CEO.COMPANY and CFO.COMPANY have their own authorities. For instance, the CFO.COMPANY account could look like:

    CFO.COMPANY Weight
    Chief.COMPANY 51%
    Treasurer.COMPANY 33%
    Controller.COMPANY 33%
    Tax Manager.COMPANY 10%
    Accounting.COMPANY 10%
    ------------------- ------
    Threshold: 51%

    This scheme allows:

    • the CEO to spend funds
    • the Chief of Finance Officer to spend funds
    • Treasurer together with Controller to spend funds
    • Controller or Treasurer together with the Tax Manager and Accounting to spend funds.

    Hence, a try of arbitrary depth can be spanned in order to construct a flexible authority to reflect mostly any business use-case.

    '},60807:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Proposed Transactions

    With the feature of proposals, anyone can submit a transaction to the blockchain with a "Proposed" action. This is an advanced feature and it allows you to suggest actions of accounts you do not control yourself.

    For example, an account can be a multi-sig of several other accounts. One of the parties submit a proposal (e.g. the transfer of some asset), and the others accounts being part of the multi-sig approve the proposal. When it surpasses the threshold, the proposal is executed.

    If one have been submitted to your account without you expecting one, be very careful. If you don't know the account that proposed something for you, ignore it, even if the account name sounds familiar. When in doubt, always contact third parties directly, such as gateways, bridges or other accounts.

    A proposed transaction has an expiration date, and when that is surpassed, the proposal will disappear by itself.

    '},8419:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Asset {symbol}

    {description}

    Issued by: {issuer}

    [# annual]

    If a lifetime membership is too much you can still get {feesCashback}% cashback for the next year by becoming an annual subscriber for just {price} per year. GitHub Logo

    [# fee-division]

    Fee Division

    Every time {account} pays a transaction fee, that fee is divided among several different accounts. The network takes a {networkFee}% cut, and the Lifetime Member who referred {account} gets a {lifetimeFee}% cut.

    The registrar is the account that paid the transaction fee to register {account} with the network. The registrar gets to decide how to divide the remaining {referrerTotalFee}% between themselves and their own Affiliate Referrer program.

    {account}'s registrar chose to share {referrerFee}% of the total fee with the Affiliate Referrer and keep {registrarFee}% of the total fee for themselves.

    Pending Fees

    Fees paid by {account} are only divided among the network, referrers, and registrars once every maintenance interval ({maintenanceInterval} seconds). The next maintenance time is {nextMaintenanceTime}.

    Vesting Fees

    Most fees are made available immediately, but fees over {vestingThreshold} (such as those paid to upgrade your membership or register a premium account name) must vest for a total of {vestingPeriod} days.

    '},10997:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Asset {symbol}

    {description}

    Issued by: {issuer}

    The Euro (sign: €; symbol: EUR) is the official currency of participating countries in the Europ zone.

    '},62816:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Asset {symbol}

    {description}

    Issued by: {issuer}

    The United States dollar (sign: $; symbol: USD) is the official currency of the United States of America.

    '},97548:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Market Pegged Assets

    A crypto-currency, with the properties and advantages of Bitcoin, that is capable of maintaining price parity with a globally adopted currency (e.g. U.S. dollar), has high utility for convenient and censorship resistant commerce. This can be achieved by BitShares' market pegged assets (MPA), a new type of freely traded digital asset whose value is meant to track the value of a conventional underlying asset by means of contracts for difference (CFD).

    A SmartCoin (synonym for MPA) is a crypto-currency that always has 100% or more of its value backed by the BitShares core currency (BTS), to which they can be converted at any time, as collateral in a CFD.

    What makes MPAs unique is that they are free from counterparty risk even though they resemble a CFD backed by collateral. This is achievable by letting the network itself (implemented as a software protocol) be responsible for securing the collateral and performing settlements as will be described in more detail below.

    This is a subset of the available market pegged assets:

    • BitUSD
    • BitCNY
    • BitEUR
    • BitGOLD
    • ...
    '},6225:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Privatized BitAssets

    Privatized BitAssets serve those customers that would like to issue a market pegged asset but do not want the witnesses to publish the prices. Instead, when creating a privatized bitasset, the issuer can define a set of authorities that are allowed to publish the price for that particular asset. The issuer can further define all kinds of fees involving this asset and make a profit.

    This feature is of particular interest for exchanges and institutes that have access to real-time prices and would like to increase exposure and volume.

    '},89913:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    User Issued Assets

    In addition to the aforementioned market pegged assets, BitShares allows individuals and companies to create and issue their own tokens for anything they can imagine. The potential use cases for so called user-issued assets (UIA) are innumerable. On the one hand, UIAs can be used as simple event tickets deposited on the customers mobile phone to pass the entrance of a concert. On the other hand, they can be used for crowd funding, ownership tracking or even to sell equity of a company in form of stock.

    Obviously, the regulations that apply to each kind of token vary widely and are often different in every jurisdiction. Hence, BitShares comes with tools that allow issuers to remain compliant with all applicable regulations when issuing assets assuming regulators allow such assets in the first place.

    '},39856:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# permissions] Permissions define the available features for an asset. However, even if a feature is permitted, it must still be activated using the corresponding flag in order to be enforced by the blockchain.

    After creation, you may only remove a given permission, you cannot enable a permission that was disabled on creation.

    [# flags] Flags define which asset features are active or inactive. They can be switched on and off by the asset owner at any time.

    "},69329:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# lifetime]

    Get {feesCashback}% Cashback on Fees

    Every transaction on the BitShares network is divided between the network and referrers. By registering to a Lifetime Membership the account will receive {feesCashback}% cashback on every transaction fee paid. As a bonus it will also qualify to earn referral income from users registered with or refered to the network.

    A Lifetime Membership price will change over time, right now it is only {price}.

    [# fee-division]

    Fee Division

    Every time {account} pays a transaction fee, that fee is divided among several different accounts. The network takes a {networkFee}% cut, and the Lifetime Member who referred {account} gets a {lifetimeFee}% cut.

    The registrar is the account that paid the transaction fee to register {account} with the network. The registrar gets to decide how to divide the remaining {referrerTotalFee}% between themselves and their own Affiliate Referrer program.

    {account}'s registrar chose to share {referrerFee}% of the total fee with the Affiliate Referrer and keep {registrarFee}% of the total fee for themselves.

    Pending Fees

    Fees paid by {account} are divided among the network, referrers, and registrars once every maintenance interval ({maintenanceInterval} seconds). The next maintenance time is {nextMaintenanceTime}.

    Vesting Fees

    Most fees are made available immediately, but fees over {vestingThreshold} (such as those paid to upgrade your membership or register a premium account name) must vest for a total of {vestingPeriod} days.

    '},36638:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Active permissions define the accounts that have permission to spend funds for this account.

    They can be used to easily setup a multi-signature scheme, see permissions for more details.

    '},63933:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    The memo key is where you receive memos, in order to decode the memos you need to control the private key for the public key.

    By using a public/private key pair without spending authority, you may give read-only access to your memos to third parties.

    "},8408:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Owner permissions define who has control over the account. Owners may overwrite all keys and change any account settings.

    See permissions for more details.

    '},28379:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Voting

    Voting in BitShares is important for both the security and the development of the network. Votes determine which Witnesses are selected to handle the network, which Committee Members have the power to vote on important policies and which Worker Proposals are accepted to improve or expand features.

    If you don't fully understand the various roles listed above, you may choose to delegate your voting power to a Proxy, who can then vote on your behalf. If you do choose to use a Proxy, you will be unable to vote for Witnesses, Committee Members and Worker Proposals. You can always release your proxy at a later date if you decide to participate in the full voting process.

    Be sure to select Publish Changes once you've made your selection.

    '},2270:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Committee members may propose changes to the dynamic parameters of the blockchain, such as fees, block time and many other things. It is a position of great responsibility that requires a good understanding of how BitShares works.

    '},88336:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    If you don't fully understand the roles of Witnesses, Committee Members and Workers, you may elect to choose a Proxy. A proxy is an account that you trust to make decisions about the Bitshares network on your behalf. You may find people proposing to act as proxies in the BitShares forum at BitSharestalk. Additionally, you may choose from the list below, or you can manually enter any account you choose.

    Be sure to select publish changes above once you've made your selection.

    '},80878:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Witnesses are the block producers of BitShares. They validate transactions and ensure the safety of the network. You may vote for as many witnesses as you'd like, and they will all receive the same amount of votes. Witness proposals can be found here: BitSharestalk - Stakeholder Proposals Board.

    '},95043:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Workers are a unique concept to BitShares. They are proposals to provide services in return for a salary from the blockchain itself. A proposal should include a link to a website or forum thread that explains the purpose of the proposal, a collection of proposals can be found here: BitSharestalk - Stakeholder Proposals Board.

    '},85920:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Borrow {debt} from blockchain, by locking up at least {mr} times the value in {collateral} as collateral. If a target collateral ratio (TCR) is set, you need at least TCR times the value (not supported in UI yet).

    Collateral and debt levels can be adjusted in any way you desire, as long as your collateral ratio stays above the maintenance collateral ratio of {mr}, or the target collateral ratio if it is set. If your collateral value risks dropping under the maintenance ratio of {mr} by price changes you need to add collateral or reduce debt in order to avoid a margin call.

    Read more or check out the Explanation Wizard.

    '},56507:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    This is a binary prediction market.

    The collateral ratio of this market is 1:1.

    "},99087:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# receive]

    Receiving BTS

    In order to receive BTS from another person or from an exchange, simply give them your account name: {account}

    [# deposit-short]

    Depositing or withdrawing coins

    If you want to deposit or withdraw funds, either in fiat or from other blockchains, you may use a bridge or gateway service to do so.

    '},1911:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Fees

    In the BitShares ecosystem every operation is assigned an individual fee. These fees are subject to change. However, they are defined solely by shareholder approval, thus each and every shareholder of the BitShares core asset (BTS) has a say as to what the fees should be. If shareholders can be convinced to reduce a certain fee and consensus is reached, the fee will be reduced automatically by the blockchain. Changes of blockchain parameters are proposed by members of the committee. These members are voted by shareholders and improve the flexibility and reaction rate.

    *: These operations require Lifetime membership!

    '},29362:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# connection-error] We couldn't establish websocket connection to a full node.

    Possible reasons: TODO

    • reason #1
    • reason #2
    "},80281:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Prediction Market Assets

    A prediction market asset allows you to agree or disagree with the prediction (condition) of the asset and put collateral behind your opinion. A prediction market is resolved by its issuer after the resolution date to reflect the real world outcome of the prediction on-chain.

    On the blockchain, a prediction market asset is special kind of SmartCoin that anyone can borrow. The total debt and total collateral are always equal amounts (borrowing 1:1), margin calls or force settlements are deactivated. A prediction market asset has the active market of itself with its collateral. Agreeing with the prediction means to buy the prediction market asset, whereas disagreeing with the prediction means to borrow it and sell it. Resolving a prediction market asset is done by forcing global settlement, with a global settlement price given by the issuer. After resolution (global settlement), and if the prediction proves true (global settlement price is 1), holders of the prediction market asset can instantly force settle it to obtain the same amount of the underlying collateral. If the prediction is incorrect (global settlement price 0), owners of margin positions will automatically get back all the collateral that was locked up in the position.

    '},38251:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Decentralized Exchange

    The decentralized exchange (further denoted simply as the DEX) allows for direct exchange of digital goods traded in the BitShares ecosystem.

    A decentralized exchange has a very particular set of advantages over traditional centralized exchanges and we would like to address some of them briefly below. Although the BitShares DEX comes with all of them, it is up to the reader and customer to leverage those features in full or only partially.

    • Separation of Powers: There is no reason why the same entity needs to be responsible for issuing IOUs and for processing the order book. In BitShares, order matching is performed by the protocol, which is unaware of implications concerning the involved assets.

    • Global Unified Order Book: Since BitShares is global, anybody with an internet access can use the DEX for trading. This brings the world's liquidity to a single order book for decentralized trading.

    • Trade Almost Anything: The BitShares DEX is asset agnostic. Hence you can trade at any pair. While some pairs may end up with low liquidity, such as SILVER:GOLD, other pairs such as USD:EUR for FOREX trading will see huge volume.

    • No Limits: The BitShares protocol is unable to limit your trading experience.

    • Decentralized: The DEX is decentralized across the globe. This not only means that there is no single point of failure, but it also implies that the BitShares exchange is open for trading 24/7 because it's always daytime somewhere.

    • Secure: Your funds and trades are secured with industry-grade elliptic curve cryptography. No one will be able to access your funds unless you let them. To further strengthen the security, we allow our customers to setup escrow and multi-signature schemes.

    • Fast: In contrast to other decentralized networks, the BitShares DEX allows for real-time trading and is only limited by the speed of light and the size of the planet.

    • Provable Order Matching Algorithm: What makes the BitShares DEX unique is the provable order matching algorithm. Given a set of orders, you will always be able to provably verify that these orders have been matched properly.

    • Collateralized Smartcoins: One of the biggest features of BitShares are its smartcoins such as bitUSD, bitEUR, bitCNY, and others. For the sake of convenience, these assets are denotes simply as USD, EUR, CNY, etc. in the wallet. These digital tokens represent the same value as their underlaying physical asset. Hence 1 USD in this wallet is worth $1 and can be redeemed as such. Any of these tokens is backed by BitShares' company shares (BTS) being locked up as collateral and being available for settlement at its current price.

    '},21076:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Short Selling BitAssets

    In order to increase your exposure to BTS and offer liquidity to BitAssets, such as USD, EUR, GOLD, etc., you can go borrow this bitAsset from the network and sell it short. We will here briefly describe the procedure.

    Borrowing

    The BitShares network is capable of issuing any amount of any BitAsset and lend it out to participants given enough collateral.

    • settlement price: The price for 1 BTS as it is traded on external exchanges.
    • maintenance collateral ratio (MCR): A ratio defined by the witnesses as minimum required collateral ratio
    • maximum short squeeze ratio (MSQR): A ratio defined by the witnesses as to how far shorts are protected against short squeezes
    • short squeeze protection (SQP): Defines the most that a margin position will ever be forced to pay to cover
    • call price (CP): The price at which short/borrow positions are margin called

    Margin Call

    The BitShares network is capable of margin calling those positions that do not have enough collateral to back their borrowed bitAssets. A margin call will occur any time the highest bid is less than the call price and greater than SQP. The margin position will be forced to sell its collateral anytime the highest offer to buy the collateral is less than the call price (x/BTS).

    SQP = settlement price / MSQR\ncall price = DEBT / COLLATERAL * MCR

    The margin call will take the collateral, buy shares of borrowed bitAsset at market rates up to the SQP and close the position. The remaining BTS of the collateral are returned to the customer.

    Settlement

    Holders of any bitAsset can request a settlement at a fair price at any time. The settlement closes the borrow/short positions with lowest collateral ratio and sells the collateral for the settlement.

    Selling

    After borrowing bitAssets, they can be sold free at any of the corresponding markets at any price a buyer is willing to pay. With this step, the short-selling is now complete and you are short that particular bitAsset.

    Updating Collateral Ratio

    At any time, the holder of a borrow/short position can modify the collateral ratio in order to flexibly adjust to market behavior. If the collateral ratio is increase, an additional amount of BTS is locked as collateral, while reducing the collateral ratio will require an amount of the corresponding BitAsset to be payed back to the network.

    Covering

    To close a borrow/short position, one must hold the borrowed amount of that particular bitAsset to hand it over to the BitShares network. After that, the BitAssets are reduced from the corresponding supply and the collateral is released and given back to its owner.

    '},7607:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Trading

    This page will give a very quick introduction on how to interpret the terms used by the DEX and how trading pairs are presented.

    Pairs

    In BitShares, almost any asset can be traded with all other assets. Once we have picked two assets, we usually refer to a market pair. For instance, we can trade USD against EUR in the USD:EUR pair.

    For sake of consistency, we will use the generalized terms base and quote such that pairs are represented as

    *quote* : *base*

    and for instance with base being USD and quote being EUR, denote the EUR:USD pair.

    Order Books

    The order book consists of an ask and a bid side. Since trading pairs do not have a preferred orientation, and can be flipped, the following table shall give an overview of ask/bid and the corresponding buy/sell operations for each side:

    Side Sell Buy
    Ask quote base
    Bid base quote
    ---------- ------- -------

    Obviously, what is on the bid side of the USD:EUR pair will be on the ask side on the EUR:USD pair. Of course prices are internally represented as fractions, and thus results in both pairs being identical.

    Trading

    To place a trading order, it is required to fill the form on either the ask or the bid side (respectively, buy or sell side). You will need to define a price and an amount to sell/buy. The cost for this order will be calculated automatically. Note that there will be an additional fee required to actually place the order.

    Once the order is filled (i.e. someone sold/bought your offer), your account will be credited by the corresponding asset.

    Unfilled orders can be canceled at any time.

    '},46645:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Disclaimer

    Information Published

    This Website or Software (hereinafter, referred to as the "Platform") provides information and material of a general nature. You are not authorized and nor should you rely on the Platform for legal advice, business advice, or advice of any kind. You act at your own risk in reliance on the contents of this Platform. Should you make a decision to act or not act you should contact a licensed attorney in the relevant jurisdiction in which you want or need help. In no way are the owners of, or contributors to, this Platform responsible for the actions, decisions, or other behavior taken or not taken by you in reliance upon the Platform.

    Information and Material Nature

    This Platform is an interface connecting to the BitShares Blockchain, hence information appearing over the platform are the means of their creators and users over BitShares Blockchain. By using this Platform, you understand and agree that the Platform is only a terminal that is interfacing with the BitShares Blockchain "as is", and that contents are NOT made by the Platform, but by BitShares Blockchain Users.

    Translations

    The Website may contain translations of the English version of the content available on the Website. These translations are provided only as a convenience. In the event of any conflict between the English language version and the translated version, the English language version shall take precedence. If you notice any inconsistency, please report them on GitHub.

    General Risks

    This Platform will not be responsible for any losses, damages or claims arising from events falling within the scope of the following five categories:

    (1) Mistakes made by the user of any BitShares Blockchain related software or service, e.g., forgotten passwords, payments sent to wrong BitShares Blockchain addresses, and accidental deletion of wallets information and credentials.

    (2) Platform problems and/or any BitShares Blockchain related software or service, e.g., corrupted wallet file, incorrectly constructed transactions, unsafe cryptographic libraries, malware affecting the Platform and/or any BitShares Blockchain related software or service.

    (3) Technical failures in the hardware of the user of any BitShares Blockchain related software or service, e.g., data loss due to a faulty or damaged storage device.

    (4) Security problems experienced by the user of any BitShares Blockchain related software or service, e.g., unauthorized access to users' wallets and/or accounts.

    (5) Actions or inactions of third parties and/or events experienced by third parties, e.g., bankruptcy of service providers, information security attacks on service providers, and fraud conducted by third parties.

    Investment Risks

    The investment in BitShares Blockchain can lead to loss of money over short or even long periods. The investors in BitShares Blockchain should expect prices to have large range fluctuations. The information published on the Platform cannot guarantee that the investors in BitShares Blockchain would not lose money.

    Compliance with Tax Obligations

    The users of the Platform are solely responsible to determinate what, if any, taxes apply to their BitShares Blockchain transactions. The owners of, or contributors to, the Platform are NOT responsible for determining the taxes that apply to BitShares Blockchain transactions.

    The Platform does not store, send, receive or otherwise manipulate any assets

    The Platform does not store, send, receive or otherwise manipulate any assets. This is because BitShares Blockchain assets exist only by virtue of the ownership record maintained in the BitShares Blockchain. Any transaction that affects assets in the BitShares Blockchain occurs within a decentralized BitShares Blockchain, and not on the Platform.

    No Warranties

    Your use or inability to use this Platform and BitShares Blockchain is carried out solely at your own risk and you don't put any responsibility on platform hosting company. The Platform is provided on an "as is" basis without any warranties of any kind regarding the Platform and/or any content, data, materials and/or services provided on the Platform.

    Limitation of liability

    Unless otherwise required by law, in no event shall the owners of, or contributors to, the Platform be liable for any damages of any kind, including, but not limited to, loss of use, loss of profits, or loss of data arising out of or in any way connected with the use of the Platform.

    Arbitration

    The user of the Platform agrees to arbitrate any dispute arising from or in connection with the Platform or this disclaimer, except for disputes related to copyrights, logos, trademarks, trade names, trade secrets or patents.

    Last amendment

    This disclaimer was amended for the last time on Sep 14th, 2022.

    '},13069:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitShares Gateways

    Gateways and Bridges are external service providers that allow you to deposit, trade and withdraw assets into the BitShares Blockchain that are not native to it. For example, you can send your BTC on the Bitcoin Blockchain to a Gateway, who will in turn give you an UIA (user issued asset) on the BitShares Blockchain, with the promise that you can withdraw it again (for a fee of course). While you are holding such an UIA on the BitShares Blockchain, the Gateway becomes the custodian of your funds. A external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.

    '},81885:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    ioxbank Instant Gateway Service

    ioxbank instant gateway service is connecting cryptocurrencies between BitShares and other Blockchains. Blockchain transactions are being settled immediately once blocks are confirmed over Blockchain. You can easily identify those cryptocurrencies supported by ioxbank, they are prefixed with IOB. and can be found under assets explore page.

    Gateway Transparency Information

    XRP

    XLM

    Gateway Features

    IOB.XRP Features

    • Instant Gateway
    • Min. amount: 50 XRP
    • No KYC
    • No limits
    • 0% market fee for maker/taker
    • Low withdraw fee

    IOB.XLM features

    • Instant Gateway
    • Min. amount: 50 XLM
    • No KYC
    • No limits
    • 0% market fee for maker/taker
    • Low withdraw fee

    Gateway Methods

    Deposit/Withdraw Using Referencec Wallet UI

    • Deposit: Click on Deposit From the burger menu then pick up XRP or XLM; an Address and (Tag or Memo) will appear to you, you should use them externally to deposit to them; make sure you are mentioning Tag or Memo at source of your transaction to the Gateway.
    • Withdraw: Click on Withdraw From the burger menu then pick up XRP or XLM; you should right carefully your destination withdraw Address and (Tag or Memo), you should use what was provided the address that was provided to you in case you're using an exchange address and not your own address.

    XRP Deposit in case you already know your BitShares user-id

    • XRP Gateway Destination Address: rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y
    • XRP Gateway Destination (Tag or Memo): BitShares user-id (without 1.2.)

    XLM Deposit in case you already know your BitShares user-id

    • XLM Gateway Destination Address: GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH
    • XLM Gateway Destination (Tag or Memo): BitShares user-id (without 1.2.)

    Withdraw Manually using send assets

    For XRP Withdraw from your BitShares wallet to your XRP wallet

    Send your IOB.XRP assets to BitShares Blockchain Account ioxbank-gateway and include in BitShares Memo your XRP destination address and destination (Tag or Memo) as per the following examples, you need to replace xrp-address with your XRP destination address and replace tag-or-memo-number with your destination (Tag or Memo) number, in case you do NOT need (Tag or Memo) number as you might own the destination address keys then you can just send your IOB.XRP asset to ioxbank-gateway and just include your xrp-destination-address without including any (Tag or Memo) number:

    BitShares Memo Format

    • xrp:xrp-destination-address:tag:tag-or-memo-number
    • xrp:xrp-destination-address:tag:tag-or-memo-number:any notes
    • xrp:xrp-destination-address

    BitShares Memo Format Examples

    • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y:tag:485738
    • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y:tag:485738:thanks ioxbank
    • xrp:rDce39TBzszQJx2sshLy5jPXV3F9nEaQ9Y

    For XLM Withdraw from your BitShares wallet to your XLM wallet

    Send your IOB.XLM assets to BitShares Blockchain Account ioxbank-gateway and include in BitShares Memo your XLM destination address and destination (Tag or Memo) as per the following examples, you need to replace xlm-address with your XLM destination address and replace tag-or-memo-number with your destination (Tag or Memo) number, in case you do NOT need (Tag or Memo) number as you might own the destination address keys then you can just send your IOB.XLM asset to ioxbank-gateway and just include your xlm-destination-address without including any (Tag or Memo) number:

    BitShares Memo Format

    • xlm:xlm-destination-address:tag:tag-or-memo-number
    • xlm:xlm-destination-address:tag:tag-or-memo-number:any notes
    • xlm:xlm-destination-address

    BitShares Memo Format Examples

    • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH:tag:485738
    • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH:tag:485738:thanks ioxbank
    • xlm:GCYDZS45X25IKBOOV7PJNYKH5RNGVGSDUH4TTYGXHFBBQMVHG7GVUHMH

    Technical Support

    '},32604:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Xbtsx Gateway Service

    Xbtsx is a gateway service built on the Bitshares Exchange. A gateway service is responsible for moving cryptocurrencies to and from the Bitshares Exchange. They support a wide range of popular assets. You can easily identify those supported by XbtsX because they are prefixed with the word XBTSX.*. For example XBTSX.STH, XBTSX.POST etc.

    Website

    XBTS.io

    Support

    '},77339:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Glossary

    Back to index

    '},60700:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Help

    This is the reference wallet of BitShares Blockchain which connects to BitShares Blockchain nodes (bitshares-core).

    This help section gives a brief overview and describes the most basic concepts of this application.

    Introduction

    Accounts

    Assets

    Decentralized Exchange

    Development


    Glossary

    '},87117:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Backups

    Local Wallet

    It is recommended to make regular backups of your Local Wallet even though in most cases a single backup may be sufficient. Please note that in order to recover from a backup you will also need to provide the passphrase (password) because backups are encrypted. Hence, if you either lose your wallet or your passphrase you will be unable to access any of your funds again!

    You can create a backup from Settings -> Backup.

    • Store this backup in at least two secure locations only accessible by you
    • The backup is encrypted with your passphrase/password so do not store your passwrod in the same location

    Advanced Users Only

    Brainkey

    If you never manually imported an account key into your wallet, you can alternatively backup your accounts and their funds by exporting the brainkey, a string of words from which your keys are derived deterministically.

    Remark: Hierarchical Authorities (advanced uses ONLY)

    If you are using hierarchical authorities (account and/or active permissions), backing up your keys alone may not be sufficient to regain access to your funds! Please revise the documentations about hierarchical authorities.

    '},93275:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitShares

    This is the reference wallet of BitShares Blockchain which connects to BitShares Blockchain nodes (bitshares-core).

    This reference wallet is a browser based wallet. Your keys are stored locally in your browser and never leave it as transactions are signed locally before broadcasting them. Never expose your keys to anyone.

    Support

    If you have an issue related to a Gateway provider, please be sure to contact them directly. See Gateways in the left menu.

    BitShares Chat

    You can chat with other member of the BitShares community in real time at:

    If you seek support for this wallet, there are community members offering that in Telegram:

    Developers

    If you are a software developer, you may contribute to the BitShares Blockchain via:

    Introduction

    Welcome to the worlds fastest decentralized exchange (DEX).

    BitShares looks to extend the innovation of the blockchain to all industries that rely upon the internet to provide their services. Whether its banking, stock exchanges, lotteries, voting, music, auctions or many others, a digital public ledger allows for the creation of distributed autonomous companies (or DACs) that provide better quality services at a fraction of the cost incurred by their more traditional, centralized counterparts. The advent of DACs ushers in a new paradigm in organizational structure in which companies can run without any human management and under the control of an incorruptible set of business rules. These rules are encoded in publicly auditable open source software distributed across the computers of the companies’ shareholders, who effortlessly secure the company from arbitrary control.

    BitShares does for business what bitcoin did for money by utilizing distributed consensus technology to create companies that are inherently global, transparent, trustworthy, efficient and most importantly profitable.

    BitShares Blockchain has enabled several financial innovations such as: User Issued Asset (UIA), Market Pegged Asset (MPA), Non-Fungible Tokens (NFT), Decentralized Exchange (DEX), Automated Market Maker (AMM) and Hashed Time-lock Contract (HTLC).

    Wallet

    This wallet allows access most features of the BitShares network including:

    The main focuses for the design of BitShares Blockchain Reference wallet and BitShares Blockchain are:

    • No custody of core cryptocurrency funds: traders maintain control of their own private keys and core cryptocurrency funds.
    • High performance: low latency, high throughput for a large user base, and high ability of liquidity trading.
    • Low cost of transaction: in both transaction fees and liquidity trading cost.
    • Fair trading features: transparency for all.
    • Evolving: able to develop with forever-improving technology stack, architecture, and ideas.
    '},42438:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Blockchain

    As most crypto currencies, Graphene makes use of a blockchain to update participants about transfers and market activities. Since blocks always refer to the previous block, we get a chain of blocks (blockchain) that contains all transactions every made in the network. Because the blockchain is a publicly accessible and auditable ledger, everyone can take a closer look and verify transfers as well as market orders and order books.

    Of course, this web wallet offers a block explorer to assist you with your audit.

    Consensus Mechanism

    Who exactly is allows to produce a block at which time instant is defined by a consensus mechanism called Delegated Proof of Stake. In essence, the shareholders of BitShares (holders of the BTS token) can cast a vote for their preferred block producers on the blockchain. Those so called witnesses with the most votes are allowed to produce blocks.

    Transactions

    The Graphene blockchain technology offers a variety of transaction types. Users are not only able to simply transfer assets between each other, but there are also transactions to interact with the decentralized exchange. Most of these transaction types are labeled with a self-explaining tag, others require more knowledge about the inner workings of the company.

    '},46595:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Bridge and gateway services

    Both bridges and gateways allow you to deposit and withdraw coins, but there is a difference in the amount of trust you need to place in the service providers.

    Bridges: trust-free model

    A bridge service provides a way to deposit an amount of a crypto-currency other than BitShares, and in turn receive a SmartCoin equivalent. SmartCoins have no counterparty risk, so the only risk you experience when using a bridge is during the short time it takes to complete the transfer. This is better than a centralized exchange such as Poloniex, where you are always at risk of the exchange being hacked, going bankrupt, or experiencing any number of other issues.

    Gateways: trust-based model

    Gateways are basically equivalent to the standard exchange model where you depend on the solvency of the exchange to be able to redeem your coins. Generally gateways issue assets prefixed with their symbol, like OPEN, TRADE, or META. These assets are backed 100% by the real BTC or ETH or any other coin that people deposit with the gateways.

    An OPEN.BTC is thus in theory equivalent to the BTC you get on Poloniex, which could be prefixed POLO.BTC. In both cases you rely on the service provider, CCEDK for OPEN. assets and Poloniex for POLO. assets, to remain solvent in order to back the value of the assets they've issued. Because gateways only provide this one service which is normally only one part of running an exchange, one might even argue that they have an easier job of securing their holdings.

    '},15851:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Wallet

    As you may have noticed already, this application is a web application and runs in a browser. A connection is established to a trusted node in the network that serves as a gateway to the rest of the ecosystem.

    Cloud Wallet

    If you registered with a username and password, you have a cloud wallet. Although nothing is technically stored in the cloud, we use the term Cloud Wallet because you can use these credentials (username and password) from any web browser at any time to gain access to your account. The cloud wallet only allows for a single account to be accessed at a time. This is generally the correct choice for new users. While it is possible to change the auto-generated password, we do not recommend doing so at this time. The team is working on a responsible way to manage the password change that requires no technical knowledge. We will make an announcement once it's released.

    Local Wallet

    The local wallet creates a database within your browser. This means that access to your funds it tied to that browser only. If you attempt to access your local wallet from any other computer, or any other browser, it will fail unless you actively import your backup file from the original browser backup file. The process actually easy. See managing backups.

    Security

    Rest assured that our servers do not have access to your funds because none of your private keys ever leave your browser. Instead, they are encrypted with your passphrase and are stored in your local browser's database. As such, you should make sure to have a proper Backup in the event something happens to your computer or browser.

    Management

    The user interface is capable of carrying and accessing several separated wallets each containing possible several accounts and corresponding funds. You can create, backup, and switch existing wallets in Settings->Wallets.

    '},81821:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Help

    '},95008:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Voting

    Voting is important in Bitshares in the same way it is important to the community in which you live. The weight of your vote is directly correlated to the number of BTS you own. If you aren't heavily involved in the community, you are encouraged to choose a proxy who represents your interests. If you would like to be more involved in the community, check out these channels.

    Proxy

    You may choose to not be active in the governance of Bitshares. If this is the case, it's important that you choose someone in the Bitshares community who you identify with and set that entity as your proxy. This gives them to the power to vote on your behalf with your BTS shares backing their vote. This is similar to electing a representative.

    Witnesses

    Witnesses are entities that work for the blockchain by constructing new blocks. Their role is similar to the role of miners for Bitcoin and other blockchains. Each witness is approved by the shareholders and constructs and signs blocks from validated transactions. Every transaction made in the network is required to be validated by all witnesses.

    Consensus Mechanism

    Who exactly is allowed to produce a block at which time instant is defined by a consensus mechanism called Delegated Proof of Stake. In essence, you, the shareholders of BitShares can cast a vote for your preferred block producers on the blockchain. Those witnesses with the most votes are allowed to produce blocks.

    Committee

    The committee is a set of entities that are approved by the shareholders and set policy for the Bitshares blockchain including:

    • Transaction and trading fees
    • Blockchain parameters, such as block size, block interval
    • Referral and vesting parameters such as cash back percentage and vesting periods

    Workers

    Workers are proposals to perform a service in return for a salary from the blockchain. A worker proposal contains at a minimum the following information:

    • A start and end date
    • A daily pay
    • A maximum total pay
    • A link to a webpage where the worker proposal is explained

    Worker Lifecycle

    Proposed

    These worker proposals have been submitted to the blockchain and are being actively voted on. In order to become active, they must exceed the refund400k worker in total votes.

    Active

    These worker proposals have exceeded the threshold and are being actively paid. Active workers can be defunded if their vote threshold is reduced below the refund400k worker level.

    Expired

    These worker proposals are displayed for historical purposes. You will find propsals that have ended based upon their end date.

    Worker budget mechanics

    Workers receive pay from a fixed daily budget on a first-come, first-serve basis until there are no more funds left.

    • A daily total budget of 400k BTS for all workers
    • 5 worker proposals with a positive votes total, with daily pay requests of 100k BTS each

    Now the four workers with the most votes will all receive 100k BTS each per day, but once they've been paid the worker budget is empty. Therefore the fifth worker will receive nothing.

    '},62677:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Cuentas

    Como ya se habrá notado, esta tecnología blockchain requiere que usted registre un nombre de cuenta. Esto trae numerosas ventajas. Además de incrementar la escalabilidad, hemos separado la identidad de la firma autorizante de las transacciones. En la práctica, ser propietario de una cuenta es independiente de poder utilizar sus fondos". Adicionalmente, ambos derechos (que llamamos "permisos") pueden combinarse en una compleja relación arbitraria entre personas (que llamamos "autoridades") usando los parámetros *peso y humbral.

    '},68042:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Indice

    '},36272:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# lifetime]

    取引手数料の{feesCashback}%のキャッシュバックを受けよう

    終身会員になることで、取引手数料に対して{feesCashback}%のキャッシュバックを受けられ、ネットワークにユーザーを紹介することで紹介収入を得ることができるようになります。終身会員権の価格はたったの{price}です。

    [# fee-division]

    手数料割り当てについて

    {account}が取引手数料を支払う度に、その手数料はいくつかの異なる口座に分けられていきます。まず、ネットワークは{networkFee}%、{account}を紹介した終身会員は{lifetimeFee}%を受け取ります。

    レジストラとは、{account}をネットワークに登録するための取引手数料を支払ったアカウントのことです。レジストラは、残りの{referrerTotalFee}%を自分自身と、レジストラが展開しているアフィリエイト紹介プログラムの間でどのように分割するかを決定することができます。

    {account}のレジストラは、総費用の{referrerFee}%をアフィリエイト紹介者と共有し、総費用の{registrarFee}%を自己で保つことを選択しました。

    保留中の取引手数料

    {account}によって支払われた取引手数料は、メンテナンスインターバル({maintenanceInterval}秒)ごとに1回、ネットワーク、紹介者、レジストラの間で分割されます。次のメンテナンス時間は{nextMaintenanceTime}です。

    権利確定手数料

    ほとんどの手数料は即座に有効になりますが、{vestingThreshold}を超える手数料(会員権のアップグレードやプレミアムアカウント名の登録費用など)は{vestingPeriod}日間の権利付与期間後に有効になります。

    '},20892:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    賃借および担保のレベルを調整すれば{debt}のマージンポジションを更新できます。

    担保比率がメンテナンス担保比率である{mr}を超えている限り、担保および賃借のレベルは任意に調整できます。もっと知る

    '},41063:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# receive]

    BTSの受け取り

    他の人や取引所からBTSを受け取るには、次のアカウント名を入力するだけです: {account}

    [# deposit-short]

    コインの入出金

    フィアットや他のブロックチェーンから資金を預け入れる、または引き出す場合は、ブリッジまたはゲートウェイサービスを利用することができます。

    '},28438:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Аккаунты

    Как Вы могли заметить, эта блокчейн технология требует регистрации имени аккаунта. Это дает множество преимуществ: помимо улучшенной масштабируемости теперь личность и подпись, авторизующая транзакцию, существуют отдельно. На практике это значит, что владение именем аккаунта полностью независимо от возможности распоряжаться его средствами. Более того, оба права (мы называем их разрешениями) можно разделить между произвольным сложным отношением людей (мы называем их полномочиями) с использованием весов и требуемых порогов.

    '},12155:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Подписки

    Аккаунты в BitShares разделены на три группы. Мы решили дать пользователям возможность по желанию обновлять свои аккаунты до подобного VIP статуса, чтобы получать выгоду от сниженных комиссий и дополнительных функций.

    Не имеющие подписки

    Обычный аккаунт не имеет членства.

    Пожизненная подписка

    Пожизненные члены получают процентный кэшбэк с каждой комиссии за транзакцию, которую они оплачивают, и имеют право получать реферальный доход от пользователей, которых они регистрируют, или рефереров сети. Пожизненное членство подразумевает единоразовую оплату членского взноса, размер которого определяется комитетом.

    Разделение комиссии

    Каждый раз, когда Ваш реферальный аккаунт оплачивает комиссию за транзакцию, эта комиссия делится между несколькими разными аккаунтами. Часть получает сеть, еще часть получает Пожизненный Член, рефералом которого является аккаунт.

    Регистратором является аккаунт, который оплатил комиссию за транзакцию при регистрации аккаунта в сети. Регистратор должен решить, как разделить оставшуюся комиссию между собой и своими аффилиатами.

    Ожидаемые комиссии

    Оплаченные комиссии разделяются между сетью, реферерами и регистраторами только один раз в определенный интервал обслуживания.

    Вестинговые комиссии

    Большинство комиссий становятся доступны немедленно, но комиссии за переход порога (как при оплате повышения уровня Вашего членства или регистрации премиум-имени аккаунта) должны обрабатываться несколько дней, как это определено комитетом.

    '},43239:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Разрешения

    В BitShares каждый аккаунт разделен на

    • Активное разрешение: контроль над его средствами и
    • Разрешение владельца: контроль над аккаунтом.

    Оба их можно назначить во вкладке Разрешения в Вашем аккаунте, воспользовавшись так называемыми авторитетами (см. ниже) в сочетании с так называемым порогом, который должен быть преодолен, чтобы транзакция стала действительной.

    Авторитеты

    В BitShares авторитет состоит из одной или нескольких единиц, которые авторизуют действие, такое как перевод или торговля.

    Авторитет состоит из одной или нескольких пар имен аккаунтов с весом.

    Чтобы получить действительную транзакцию, сумма весов подписывающих сторон должна превысить порог, который определен в разрешениях.

    Примеры

    Давайте обсудим несколько примеров, дабы пролить свет на используемую терминологию и варианты применения. Предположим, что новый аккаунт создан с такими активными разрешениями, какие указаны ниже. Обратите внимание, что такая же схема работает и для разрешений владельца!

    (Фиксированная) Мульти-подпись

    Фиксированная мульти-подпись состоит из M единиц, из которых N единиц должны подписать транзакцию, чтобы она стала действительной. Сейчас в BitShares у нас весы и пороги вместо M и N. Тем не менее, мы можем достичь того же результата с еще большей гибкостью, как мы сейчас увидим.

    Предположим, что Алиса, Боб, Чарли и Денис имеют общие средства. Мы хотим иметь возможность создать действительную транзакцию, если только двое из них согласятся. Значит, 2-из-4 (N-из-M) схема может выглядеть следующим образом:

    Аккаунт Вес
    Алиса 33%
    Боб 33%
    Чарли 33%
    Денис 33%
    ---------- ------
    Порог: 51%

    Все четыре участника имеют 33%, но порог установлен на 51%. Таким образом, нужно согласие всего лишь двух из четырех участников, чтобы подтвердить транзакцию.

    Аналогично, чтобы составить схему 3-из-4, мы можем либо уменьшить вес до 17, либо повысить порог до 99%.

    (Фиксированная) Гибкая Мульти-подпись

    Теперь, с порогом и весами, мы имеем большую гибкость в отношении наших средств, или точнее, мы обладаем большим контролем. Например, мы можем использовать отдельные весы для разных людей. Предположим, что Алиса хочет обезопасить свои средства от кражи, используя схему мульти-подписи, но она не хочет передавать слишком много контроля своим друзьям. Значит, мы создадим авторитет, подобный такому:

    Аккаунт Вес
    Алиса 49%
    Боб 25%
    Чарли 25%
    Денис 10%
    ---------- ------
    Порог: 51%

    Теперь доступ к средствам могут иметь либо Алиса и один из друзей, либо три друга вместе.

    Мульти-иерархическая Гибкая Мульти-подпись

    Давайте взглянем на структуру простого мульти-иерархического корпоративного аккаунта. Мы рассматриваем компанию, в которой есть Финансовый Директор (CFO) и несколько отделов, работающих на него, такие как Казначей, Контролер, Налоговый Менеджер, Бухгалтер и т. п. В компании также есть Исполнительный директор (CEO), который хочет обладать привилегией тратить средства. Значит, мы создадим авторитет для средств в соответствии с:

    Аккаунт Вес
    CEO.КОМПАНИИ 51%
    CFO.КОМПАНИИ 51%
    ---------- ------
    Порог: 51%

    В то же время, CEO.КОМПАНИИ и CFO.КОМПАНИИ имеют свои собственные авторитеты. Например, аккаунт CFO.КОМПАНИИ может выглядеть так:

    CFO.КОМПАНИИ Вес
    Шеф.КОМПАНИИ 51%
    Казначей.КОМПАНИИ 33%
    Контролер.КОМПАНИИ 33%
    Налоговый менеджер.КОМПАНИИ 10%
    Бухгалтер.КОМПАНИИ 10%
    ------------------- ------
    Порог: 51%

    Эта схема позволяет:

    • CEO расходовать средства
    • Финансовому Директору расходовать средства
    • Казначею совместно с Контролером расходовать средства
    • Контролеру или Казначею совместно с Налоговым менеджером и Бухгалтером расходовать средства.

    Значит, попытка установить произвольную глубину может быть растянута, дабы установить гибкий авторитет, чтобы отобразить почти любой случай использования для бизнеса.

    '},6193:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Актив {symbol}

    {description}

    Выпущен: {issuer}

    [# annual]

    Если пожизненное членство - это слишком много, Вы все равно можете получать {feesCashback}% кэшбэка за следующий год, став годовым подписчиком всего за {price} в год. GitHub лого

    [# fee-division]

    Разделение Комиссии

    Каждый раз, когда {account} платит комиссию за транзакцию, эта комиссия делится между разными аккаунтами. Сеть забирает долю в {networkFee}%, и Пожизненный Член, рефералом которого является {account}, получает долю в {lifetimeFee}%.

    Регистратор - это аккаунт, который заплатил комиссию за регистрацию {account} в сети. Регистратор должен решить, как разделить оставшиеся {referrerTotalFee}% между ним и его собственной Аффилированной Партнерской программой.

    Регистратор {account} а решил отдать {referrerFee}% от суммы комиссии Аффилированному Рефереру и оставить {registrarFee}% от суммы комиссии себе.

    Ожидаемые комиссии

    Комиссии, оплаченные {account}, разделяются только между сетью, реферерами и регистраторами один раз в каждый период обслуживания ({maintenanceInterval} секунд). Следующее время обслуживания {nextMaintenanceTime}.

    Вестинговые комиссии

    Большинство комиссий доступны немедленно, но комиссии за {vestingThreshold} (такие как комиссия за повышение уровня Вашего членства или регистрацию премиум-имени аккаунта) должны ожидать обработки {vestingPeriod} дней.

    '},35796:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Актив {symbol}

    {description}

    Выпущен: {issuer}

    Евро (знак: €; символ: EUR) является официальной валютой стран-участниц Еврозоны.

    '},65418:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Актив {symbol}

    {description}

    Выпущен: {issuer}

    Доллар США (знак: $; символ: USD) является официальной валютой Соединенных Штатов Америки.

    '},11387:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Привязанные к рынку активы

    Криптовалюта со свойствами и преимуществами Биткойна, которая способна поддерживать паритет цен с глобально принятой валютой (например, долларом США), может широко использоваться для удобной и устойчивой к цензуре торговли. Это может быть достигнуто с помощью привязанных к рынку активов (market pegged assets - MPA) от BitShares, нового типа свободно торгуемых цифровых активов, чья стоимость привязана к стоимости обычного базового актива посредством контрактов на разницу цен (CFD).

    SmartCoin (синоним MPA) - это криптовалюта, которая всегда имеет 100% или более своей стоимости обеспеченной основной валютой BitShares (BTS), на которую она может быть обменяна в любой момент, в качестве залога в CFD.

    Такими уникальными MPA делает их независимость от риска партнеров, даже несмотря на то, что они имеют сходство с CFD, подкрепленными залогом. Этого можно достичь с помощью предоставления сети возможности (реализованной как протокол программного обеспечения) самой быть ответственной за обеспечение залога и проведение сделок, как более подробно описано ниже.

    Это подгруппа доступных привязанных к рынку активов:

    • BitUSD
    • BitCNY
    • BitEUR
    • BitGOLD
    • ...
    '},74759:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Приватизированные BitAssets

    Приватизированные BitAssets обслуживают тех клиентов, которые хотели бы выпустить актив с привязкой к рынку, но не хотели бы, чтобы делегаты публиковали его цены. Вместо этого, когда клиент создает приватизированный bitasset, он может определять набор авторитетов, которые смогут публиковать цену для этого конкретного актива. Эмитент также может определить все виды комиссий, связанных с этим активом, и получать прибыль.

    Эта функция представляет особый интерес для бирж и институтов, которые имеют доступ к ценам в режиме реального времени и хотели бы увеличить видимость и объем.

    '},6643:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Эмитированные пользователем активы

    Помимо вышеупомянутых привязанных к рынку активов, BitShares позволяет отдельным лицам и компаниям создавать и выпускать свои собственные токены для всего, что они только могут себе представить. Потенциальные варианты использования для так называемых эмитированных пользователем активов (User Issued Assets - UIA) не поддаются исчислению. С одной стороны, такие активы можно использовать в качестве обычных входных билетов, хранящихся на мобильном телефоне пользователя, чтобы облегчить вход на концерт. С другой стороны, они могут использоваться для краудфандинга, отслеживания владения или даже для продажи доли компании в форме акций.

    Очевидно, правила, применимые к каждому виду токенов, сильно отличаются и зачастую варьируются в каждой отдельной юрисдикции. Таким образом, BitShares располагает инструментами, которые позволяют эмитентам соответствовать всем применяемым правилам при выпуске активов с тем условием, что регуляторы изначально позволяют такие активы.

    '},53556:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# разрешения] Разрешения определяют доступные для актива функции. Однако, даже если функция разрешена, она по-прежнему должна быть активирована с помощью соответствующего маркера, чтобы она исполнялась блокчейном.

    После создания Вы можете только удалить данное разрешение, Вы не можете включить разрешение, которое было отключено при создании.

    [# маркеры] Маркеры определяют, какие функции активов являются активными или неактивными. Они могут быть включены и отключены владельцем актива в любое время.

    "},49046:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# пожизненно]

    Получите {feesCashback}% кэшбэка с комиссий

    Пожизненные члены получают {feesCashback}% кэшбэка с каждой комиссии за транзакцию, которую они оплачивают, и имеют право получать реферальный доход от пользователей, которых они регистрируют, или рефереров сети. Пожизненное членство стоит всего {price}.

    [# разделение-комиссии]

    Разделение Комиссии

    Каждый раз, когда {account} платит комиссию за транзакцию, эта комиссия делится между разными аккаунтами. Сеть забирает долю в {networkFee}%, и Пожизненный Член, рефералом которого является {account}, получает долю в {lifetimeFee}%.

    Регистратор - это аккаунт, который заплатил комиссию за регистрацию {account} в сети. Регистратор должен решить, как разделить оставшиеся {referrerTotalFee}% между ним и его собственной Аффилированной Партнерской программой.

    Регистратор {account} а решил отдать {referrerFee}% от суммы комиссии Аффилированному Рефереру и оставить {registrarFee}% от суммы комиссии себе.

    Ожидаемые комиссии

    Комиссии, оплаченные {account}, разделяются между сетью, реферерами и регистраторами один раз в каждый период обслуживания ({maintenanceInterval} секунд). Следующий период обслуживания {nextMaintenanceTime}.

    Вестинговые комиссии

    Большинство комиссий доступны немедленно, но комиссии за {vestingThreshold} (такие как комиссия за повышение уровня Вашего членства или регистрацию премиум-имени аккаунта) должны ожидать обработки {vestingPeriod} дней.

    '},27281:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Активные разрешения определяют аккаунты, которые имеют разрешение тратить средства этого аккаунта.

    Они могут быть использованы для упрощенной настройки схемы с мульти-подписью, смотрите раздел разрешения чтобы узнать подробности.

    '},47718:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    Мемо ключ - это место, где Вы получаете мемо. Чтобы расшифровать мемо, Вы должны контролировать приватный ключ для публичного ключа.

    Используя пару из публичного/приватного ключей без разрешения на трату средств, Вы можете дать доступ к Вашим мемо в режиме "только чтение" третьим сторонам.

    "},50010:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Разрешения владельца определяют кто распоряжается аккаунтом. Владельцы могут переписывать все ключи и менять любые настройки аккаунта.

    Для получения подробной информации смотрите раздел разрешения.

    '},21767:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Голосование

    Голосование в BitShares крайне важно как для безопасности, так и для развития сети. Голосование определяет, какие Заверители избраны для поддержания работы сети, какие Члены Комитета обладают способностью голосовать за важные изменения и какие Предлагаемые Работники приняты для улучшения и расширения функционала.

    Если же Вы не понимаете различные приведенные выше роли в полной мере, Вы можете выбрать вариант делегирования Вашей силы голоса Прокси, который будет голосовать от Вашего имени. Если Вы решите использовать Прокси, Вы не сможете самостоятельно голосовать за Заверителей, Членов Комитета и Предлагаемых Работников. Вы всегда можете освободить вашу силу голоса из Прокси после, если решите в принимать участие в процессе голосования в полной мере.

    Не забудьте нажать "Опубликовать изменения" после того, как вы сделали свой выбор.

    '},73849:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Члены Комитета могут предлагать изменения динамических параметров блокчейна, таких как комиссия, время блока и многое другое. Эта позиция несет в себе большую ответственность, которая требует четкого понимания механизма работы BitShares.

    '},51413:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Если Вы не понимаете ролей Заверителей, Членов Комитета и Работников в полной мере, Вы можете выбрать вариант использования Прокси. Прокси - это аккаунт, которому Вы доверяете принятие решений о сети Bitshares от Вашего имени. Вы можете найти людей, предлагающих свои услуги в качестве Прокси, на форуме BitShares на BitSharestalk. Кроме того, Вы можете выбрать прокси из списка ниже или ввести имя выбранного Вами аккаунта вручную.

    Обязательно выберите вышеуказанный пункт "Опубликовать изменения", как только Вы сделали свой выбор.

    '},45485:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Делегаты - это производители блоков BitShares. Они подтверждают транзакции и обеспечивают безопасность сети. Вы можете проголосовать за стольких делегатов, за скольких пожелаете, и все они получат одинаковое количество голосов. Предлагаемые кандидатуры делегатов можно найти здесь: BitSharestalk - Stakeholder Proposals Board.

    '},91288:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Работники - это уникальный концепт, придуманный BitShares. Они состоят из предложений по предоставлению услуг в обмен на зарплату от самого блокчейна. Предложение должно включать в себя ссылку на веб-сайт или ветку форума, которая объясняет назначение предложения. Коллекцию предложений можно найти здесь: BitSharestalk - Stakeholder Proposals Board.

    '},37091:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Обновите Вашу позицию маржи {debt}, отрегулировав уровни задолженности и залогового обеспечения.

    Вы можете настраивать уровни залогового обеспечения и задолженности как Вам угодно до тех пор, пока размер Вашего залогового обеспечения остается больше размера обслуживания обеспечения {mr}. Прочитайте больше и проверьте Мастер объяснений

    '},38309:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    Это рынок бинарных прогнозов.

    Соотношение обеспечения для этого рынка составляет 1:1.

    "},95781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# receive]

    Получение BTS

    Для того, чтобы получить BTS от другого лица или биржи, просто сообщите им имя Вашего аккаунта: {account}

    [# deposit-short]

    Внесение депозита или снятие койнов

    Если Вы хотите внести депозит или снять средства, в фиате или из других блокчейнов, Вы можете воспользоваться для этого сервисами моста или шлюза.

    '},15015:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Комиссии

    В экосистеме BitShares каждой операции присваивается индивидуальная комиссия. Эти комиссии могут меняться. Тем не менее, они определяются только одобрением держателей долей, поэтому каждый держатель основного актива BitShares (BTS) имеет право влиять на то, какими эти комиссии должны быть. Если держатели согласятся снизить некую комиссию и консенсус будет достигнут, комиссия будет автоматически снижена блокчейном. Изменения параметров блокчейна предлагаются членами комитета. Этих члены избираются держателями долей и улучшают показатели гибкости и реакции.

    *: Для этих операций требуется Пожизненное Членство!

    '},63037:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# connection-error] Мы не смогли установить соединение WebSocket с полной нодой.

    Возможные причины: TODO

    • причина #1
    • причина #2
    "},53632:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Децентрализованная биржа

    Децентрализованная биржа (далее обозначается как DEX) позволяет производить прямой обмен цифровых товаров, торгующихся в экосистеме BitShares.

    Децентрализованная биржа обладает весьма определенным набором преимуществ перед традиционными централизованными биржами, о чем мы хотим кратко рассказать ниже. И хотя BitShares DEX включает в себя их все, право использовать эти функции полностью или частично остается за читателем и клиентом.

    • Разделение сил: Нет такой причины, которая бы обязывала одну и ту же единицу быть ответственной и за выдачу IOU, и за обработку книги ордеров. В BitShares подбор ордеров производится протоколом, который не знает о последствиях, касающихся связанных с ними активов.

    • Единая Общая Книга Ордеров: Так как BitShares глобальна, любой, у кого есть Интернет, может использовать DEX для торговли. Это делает всю ликвидность мира доступной единственной книге ордеров для децентрализованной торговли.

    • Торгуй чем угодно: BitShares DEX - агностик в отношении активов. А значит, Вы можете торговать на любой паре. И хотя ликвидность некоторых пар в итоге окажется низкой, как у SILVER:GOLD, другие пары, вроде USD:EUR для торговли на FOREX, будут обладать внушительным объемом.

    • Без ограничений: Протокол BitShares не в состоянии ограничить Ваш торговый опыт.

    • Децентрализованная: DEX децентрализована по всему миру. Это не только означает, что не существует ни единого отказа, но и позволяет бирже BitShares работать 24/7, так как где-нибудь на планете всегда день.

    • Безопасная: Безопасность Ваших средств и торгов обеспечивается эллиптической криптографией промышленного уровня. Никто не сможет получить доступ к Вашим средствам, пока Вы им не позволите. Чтобы возвести безопасность на новый уровень, мы позволяем нашим клиентам устанавливать escrow и схемы с мульти-подписью.

    • Быстрая: В отличие от других децентрализованных сетей, BitShares DEX позволяет торговать в реальном времени, ограничиваясь только скоростью света и размером планеты.

    • Доказуемый алгоритм подбора ордеров: Что делает BitShares DEX поистине уникальной, так это доказуемый алгоритм подбора ордеров. Получив набор ордеров, Вы всегда сможете доказуемо проверить, что эти ордера были подобраны правильно.

    • Обеспеченные Smartcoins: Одно из самых больших новшеств BitShares - это smartcoins, такие как bitUSD, bitEUR, bitCNY и другие. Ради удобства эти активы обозначены просто как USD, EUR, CNY и т. д. в кошельке. Эти цифровые токены обладают той же ценностью, что и прикрепленные к ним физические активы. Поэтому 1 USD в таком кошельке стоит $1 и может использоваться как таковой. Любой из этих токенов обеспечен долями компании BitShares (BTS), которые заморожены в качестве обеспечения залога и доступны для сделок по своей текущей цене.

    '},48167:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Короткая продажа BitAssets

    Для увеличения Вашего воздействия на BTS и увеличения ликвидности активов BitAssets, таких как USD, EUR, GOLD и др., Вы можете занять этот актив bitAsset у сети и выставить шорт. Здесь мы кратко опишем данную процедуру.

    Заём

    Сеть BitShares способна создавать любое количество каждого актива BitAsset и занимать его субьектам экосистемы при условии предоставления достаточного залога.

    • расчетная цена: Цена за 1 BTS взятая с внешних бирж.
    • уровень обеспечивающего залога (MCR): Размер залога, определённый участниками рынка как минимальный
    • максимальный размер сжатия шорта (MSQR): Установленный участниками рынка размер вынужденной покупки актива медведями по высокому курсу из опасения еще большего его роста
    • защита от сжатия шорта(SQP): Определяет предельную величину принудительного покрытия позиции
    • черта марджин колла (CP): Цена, при которой шорт будет принудительно закрыт

    Марджин Колл

    Сеть BitShares способна применять марджин колл к тем позициям, которые не имеют достаточного обеспечения для покрытия одолженных ими bitAssets. Марджин колл будет происходить каждый раз, когда самая высокая ставка окажется меньше, чем цена досрочного выкупа и больше SQP. Маржинальная позиция будет вынуждена продавать своё залоговое обеспечение каждый раз, когда самое высокое предложение на покупку обеспечения будет меньше, чем цена дострочного выкупа (x/BTS).

    SQP = расчетная цена / MSQR\nцена дострочного выкупа = DEBT / COLLATERAL * MCR

    Марджин колл возьмет обеспечение, выкупит доли одолженных bitAsset на уровне рынка до SQP и закроет позицию. Оставшиеся BTS залогового обеспечения вернутся к клиенту.

    Погашение

    Держатели любого bitAsset могут запросить расчет по справедливой цене в любой момент. Расчет закрывает заемные/шорт позиции с самым низким уровнем обеспечивающего залога и продает залог для расчета.

    Продажа

    После заёма bitAssets Вы можете свободно продавать их на любых соответствующих рынках по любой цене, какую будет готов заплатить покупатель. После этого шага короткая продажа считается завершенной и Вы произвели шорт с этим конкретным bitAsset.

    Обновление обеспечивающего залога

    В любой момент держатель заемной/шорт позиции может изменить обеспечивающий залог в стремлении гибко подстроиться под поведение рынка. Если обеспечивающий залог увеличится, дополнительное количество BTS будет заморожено в качестве залога, тогда как уменьшение обеспечивающего залога потребует выплаты соответствующего количества BitAsset обратно сети.

    Покрытие

    Чтобы закрыть заемную/шорт позицию нужно обладать одолженным количеством этого конкретного bitAsset, чтобы передать его сети BitShares. После этого BitAssets снимаются с соответствующего запаса, а залог освобождается и отправляется обратно владельцу.

    '},2373:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Торговля

    Эта страница предоставит Вам краткую интерпретацию терминов, используемых на DEX, и информацию о том, как размещаются торговые пары.

    Пары

    На BitShares практически любой актив может торговаться со всеми остальными активами. Как только мы выбрали два актива, обычно мы ссылаемся на определенную рыночную пару. Например, мы можем торговать USD против EUR в паре USD:EUR.

    В целях установки ориентира, мы будем использовать общие термины базовый и котируемый, где подобные пары представлены как

    "котируемый" : "базовый"

    в частности, в представленной паре EUR:USD, базовым активом будет являться USD, а котируемым - EUR.

    Регистр Ордеров

    Регистр состоит из цен покупки и цен продажи. Так как стороны торговых пар не фиксированы и могут меняться, следующая таблица даст Вам представление о ценах покупки и продажи в соответствии с продаваемым/покупаемым лотом для каждого случая:

    Сторона Продажа Покупка
    Цена Покупки котируемый базовый
    Цена Продажи базовый котируемый
    ---------- ------- -------

    Естественно, цена покупки пары USD:EUR является ценой продажи обратной пары EUR:USD. Конечно, цены внутри представлены в виде фракций, а потому результаты в обеих парах будут идентичны.

    Торговля

    Чтобы разместить торговый ордер, Вам нужно заполнить форму либо покупки, либо продажи, а также определить цену и количество покупаемого/продаваемого актива. Вам нужно будет определить цену и количество покупаемого/продаваемого актива. Стоимость ордера будет рассчитана автоматически. Обратите внимание, что для размещения ордера нужно будет заплатить дополнительную комиссию.

    Как только ордер будет исполнен (т.е. кто-то купил/продал Ваше предложение), на Ваш аккаунт будет переведен соответствующий актив.

    Неисполненные ордера могут быть отменены в любой момент.

    '},42199:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюз от CryptoBridge

    CryptoBridge – сервис шлюза, построенный на бирже Bitshares. Сервис шлюза ответственнен за ввод и вывод криптовалют с биржи Bitshares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает CryptoBridge, так как они обладают префиксом вида BRIDGE.*. Например, BRIDGE.BTC, BRIDGE.LTC и т.п.

    Веб-сайт

    https://crypto-bridge.org

    Поддержка

    CryptoBridge всё ещё ведет завершающие работы над своим шлюзом, поэтому не весь его функционал доступен для широкой публики.

    '},49331:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюзы BitShares

    Шлюзы и Мосты являются внешними поставщиками услуг, позволяющими вносить депозиты, торговать и выводить из блокчейна BitShares активы, которые были созданы в других блокчейнах. Например, вы можете отправить свой BTC из блокчейна Биткойн на шлюз, который в свою очередь выдаст вам эквивалентный UIA (выпущенный пользователем актив) в блокчейне BitShares с обещанием, что вы можете вывести его снова (за комиссию, конечно). Пока вы держите такие UIA в блокчейне BitShares, именно шлюз является хранителем ваших средств. Используя услуги сторонних поставщиков, вы безоговорочно соглашаетесь с их условиями использования любых сервисов или активов.

    '},58662:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюз от Openledger

    Openledger – сервис шлюза, построенный на бирже Bitshares. Сервис шлюза ответственнен за ввод и вывод криптовалют с биржи Bitshares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает OpenLedger, так как они обладают префиксом вида OPEN.*. Например, OPEN.BTC, OPEN.LTC и т.п.

    Веб-сайт

    https://dex.openledger.io

    Поддержка

    Если у вас возник вопрос или случилась задержка в отправке или получении активов, обратитесь сюда:

    '},77860:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюз от RuDEX

    RuDEX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает RuDEX, так как они обладают префиксом вида RUDEX.*. Например, RUDEX.BTC, RUDEX.EOS, RUDEX.USDT, RUDEX.GOLOS и т.п.

    Веб-сайт

    market.rudex.org

    Публичный аудит шлюза:

    Поддержка

    '},35672:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюз от SparkDEX

    SparkDEX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает SparkDEX, так как они обладают префиксом вида SPARKDEX.*. Например, SPARKDEX.BTC, SPARKDEX.ETH, SPARKDEX.HKD и т.п.

    Веб-сайт

    https://bitspark.io

    Поддержка

    '},77207:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Шлюз от XBTS.io

    XBTSX предоставляет сервис шлюза, построенный на бирже BitShares. Сервис шлюза отвечает за ввод и вывод криптовалют с биржи BitShares. Он поддерживает обширный список популярных активов. Вы легко можете определить, какие из них поддерживает XBTS.io, так как они обладают префиксом вида XBTSX.*. Например, XBTSX.STH, XBTSX.POST и т.п.

    Веб-сайт

    XBTS.io

    Поддержка

    '},38038:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Глоссарий

    Вернуться к содержанию

    '},25528:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Помощь Graphene

    BitShares 2.0 - это платформа Финансовых Смарт-Контрактов, постороенная на технологии Graphene, созданной Cryptonomex. Graphene можно рассматривать как набор инструментов или технологию для создания блокчейнов работающих в режиме реального времени.

    Этот раздел помощи дает краткий обзор и описывает основные понятия этого приложения.

    Введение

    Аккаунты

    Активы

    Децентрализованная биржа


    Глоссарий

    '},3709:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Резервные копии

    Мы настоятельно рекомендуем Вам регулярно создавать резервные копии Вашего кошелька несмотря на то, что одной резервной копии в большинстве случаев оказывается достаточно. Пожалуйста, обратите внимание, что для восстановления из резервной копии будет необходимо предоставить фразу-пароль, так как резервные копии зашифрованы. Следовательно, если Вы потеряете кошелек или Вашу фразу-пароль, то больше никогда не сможете получить доступ к своим средствам!

    Резервные копии можно получить с помощью Панели Управления Кошельком (Настройки -> Кошельки).

    Экспорт кошелька

    Наиболее удобным способом создания новой резервной копии является экспорт кошелька с помощью ссылки, сгенерированной в Панели Управления Кошельком. Пожалуйста, храните свои резервные копии так, чтобы их нельзя было потерять, украсть или случайно повредить.

    Brainkey (ТОЛЬКО для опытных пользователей)

    Если Вы никогда не импортировали ключ аккаунта в свой кошелек вручную, Вы также можете создать резервную копию Вашего аккаунта и принадлежащих ему средств, экспортировав brainkey - цепочку слов, из которой Ваши ключи извлекаются детерминированно.

    Примечание: Иерархические авторитеты (ТОЛЬКО для опытных пользователей)

    Если Вы используете иерархические авторитеты (разрешения аккаунта/активные разрешения), создания резервной копии только одних ключей может быть недостаточно для восстановления доступа к Вашим средствам! Пожалуйста, ознакомьтесь с документацией об иерархических авторитетах.

    '},78997:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitShares

    Поддержка

    Если у Вас возникли проблемы со шлюзом от провайдера, пожалуйста, свяжитесь с ним напрямую. Смотрите список шлюзов в левом меню.

    Чат Bitshares

    Вы можете общаться с другими членами сообщества Bitshares в реальном времени здесь:

    Разработчики

    Если вы являетесь разработчиком программного обеспечения, то можете поучаствовать в баунти-программе здесь:

    Введение

    Добро пожаловать на самую быструю в мире децентрализованную биржу (The DEX). BitShares создан для того, чтобы распространить инновационность технологии блокчейн во все индустрии, которые используют интернет для предоставления своих услуг. Банки ли это, или фондовые биржи, лотереи, голосование, музыка, аукционы и многие другие сферы, публичный цифровой регистр позволяет создавать децентрализованные автономные компании (т. н. DAC), которые предоставляют сервисы лучшего качества за меньшие деньги в сравнении с их более традиционными, централизованными коллегами. Появление таких децентрализованных компаний возвещает о появлении в организационной структуре новой парадигмы, в которой компании могут работать без управления человеком и под контролем не подверженного коррупции набора правил ведения бизнеса. Эти правила закодированы в публично проверяемом программном обеспечении с открытым исходным кодом, распространенном на компьютерах держателей долей компании, которые без особых усилий защищают компанию от произвольного захвата контроля.

    BitShares делает для бизнеса то, что Биткойн сделал для денег, используя технологию распределенного консенсуса для создания компаний, которые по своей сути глобальны, прозрачны, надежны, эффективны и, что не менее важно, прибыльны.

    Кошелек

    Этот кошелек обеспечивает доступ к большинству функций сети BitShares, включая

    '},63175:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Блокчейн

    Как и большинство криптовалют, для оповещения участников о транзакциях и происходящем на рынке Графен использует технологию блокчейн. Так как блок всегда ссылается на предыдущий блок, мы получаем цепь блоков (блокчейн), которая содержит все когда-либо проведенные в сети транзакции. Так как блокчейн - это публично доступный и проверяемый регистр, любой желающий может детально просмотреть и проверить транзакции, а также рыночные ордера и книги ордеров.

    Конечно, этот веб-кошелек предлагает Вам обозреватель блоков, дабы помочь Вам с аудитом.

    Механизм консенсуса

    То, кому именно и в какое время будет позволено произвести блок, определяется механизмом консенсуса под названием Делегированное доказательство владением долей. По сути, держатели долей BitShares (держатели токена BTS) могут голосовать за предпочитаемых ими производителей блоков в блокчейне. Этим так называемым делегатам с наибольшим количеством голосов и позволяется производить блоки.

    Транзакции

    Блокчейн-технология Графен предлагает Вам различные типы транзакций. Пользователи могут не только просто переводить активы друг другу, но и воспользоваться транзакциями для взаимодействия с децентрализованной биржей. Большая часть этих типов транзакций помечена поясняющим флагом, другие же требуют некоторых познаний в механизмах внутреннего функционирования компании.

    '},90186:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Сервисы моста и шлюза

    И мосты, и шлюзы позволяют Вам заводить и выводить монеты, но существует разница в уровне доверия, которое Вам нужно будет оказать поставщикам этих сервисов.

    Мосты: модель без доверия

    Сервис моста предоставляет Вам способ завести некоторое количество криптовалюты, кроме BitShares, и получить взамен эквивалент в SmartCoin. SmartCoins не подвержены риску от третьей стороны, поэтому единственный риск, с которым Вы сталкиваетесь при использовании моста, это тот короткий момент времени, который нужен на завершение трансфера. Это лучше, чем централизованная биржа вроде Poloniex, на которой Вы всегда находитесь под риском взлома биржи, ее банкротства, или других подобных проблем.

    Шлюзы: модель на основе доверия

    Шлюзы по сути являются аналогом стандартной модели обмена, где Вы зависите от платежеспособности биржи, которая должна выкупить Ваши монеты. В основном шлюзы выпускают активы с собственным символом в префиксе, например, OPEN, TRADE, или META. Эти активы на 100% обеспечены реальными BTC или ETH, либо же любой другой валютой, которую люди заводят через шлюзы.

    Таким образом, OPEN.BTC теоретически эквивалентны BTC, которые Вы получаете на Poloniex, которые могут иметь префикс POLO.BTC. В обоих случаях Вы полагаетесь на поставщика сервиса: CCEDK для OPEN. assets и Poloniex для POLO. assets, которые должны оставаться платежеспособными, дабы обеспечивать ценность выпущенных ими активов. Так как шлюзы предоставляют только один сервис, который обычно является частью работы биржи, кто-нибудь даже может сказать, что их работа по обеспечению своих средств довольно легкая.

    '},81950:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Комитет

    Комитет представляет собой утвержденный держателями долей набор единиц, который определяет некоторые параметры ведения дел. Среди этих параметров

    • комиссии за транзакции и торговлю
    • параметры блокчейна, такие как размер блока, интервал блока и т.п.
    • реферальные и вестинговые параметры, такие как процент кэшбэка и вестинговые периоды.
    '},13366:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Кошелек

    Как Вы уже могли заметить, это веб-приложение, которое работает в браузере. Соединение устанавливается с доверенным узлом сети, который служит шлюзом в остальную часть экосистемы.

    Облачный кошелек (Модель "аккаунт")

    Если Вы зарегистрировались с использованием имени пользователя и пароля, Вы обладаете облачным кошельком. И хотя технически ничего не хранится в облаке, мы используем термин Облачный кошелек, потому что Вы можете использовать эти данные (имя пользователя и пароль) для получения доступа к своему аккаунту из любого веб-браузера в любой момент. Облачный кошелек позволяет получить доступ только к одному аккаунту за раз. Обычно это является оптимальным вариантом для новых пользователей. Несмотря на то, что автоматически сгенерированный пароль можно изменить, мы не рекомендуем делать это прямо сейчас. Наша команда работает над надежным способом смены пароля, который не потребует технических знаний. Мы объявим о его появлении, как только он будет готов.

    Локальный кошелек (Модель "кошелек")

    Локальный кошелек создает базу данных в рамках Вашего браузера. Это означает, что доступ к Вашим средствам привязан только к этому браузеру. Если Вы попытаетесь получить доступ к своему локальному кошельку с любого другого компьютера или браузера, Вам это не удастся, если только Вы не проведете активный импорт файла резервной копии из файла резервной копии оригинального браузера. На самом деле этот процесс очень прост. Смотрите информацию об управлении резервными копиями.

    Безопасность

    Будьте уверены, что наши сервера никогда не получат доступа к Вашим средствам, потому как ни один из Ваших приватных ключей никогда не покидает браузер. Вместо этого они зашифрованы с помощью Вашей фразы-пароля и хранятся в локальной базе данных Вашего браузера. Поэтому Вам обязательно нужно иметь резервную копию на случай повреждения Вашего компьютера или браузера.

    Управление

    Пользовательский интерфейс способен содержать и предоставлять доступ к нескольким кошелькам, каждый из которых может содержать несколько аккаунтов и соответствующие им средства. Вы можете добавлять, создавать резервную копию и переключаться между существующими кошельками в меню Настройки->Кошельки.

    '},99396:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Делегат

    Делегаты - это единицы, которые работают на блокчейн, создавая новые блоки. Каждый делегат утвержден держателями долей; он создает и подписывает блоки с действительными транзакциями. Каждая совершенная в сети транзакция должна в конечном итоге быть подтверждена всеми делегатами.

    Механизм консенсуса

    То, кому именно и в какое время будет позволено произвести блок, определяется механизмом консенсуса под названием Делегированное доказательство владением долей. По сути, держатели долей BitShares (держатели токена BTS) могут голосовать за предпочитаемых ими производителей блоков в блокчейне. Этим так называемым делегатам с наибольшим количеством голосов и позволяется производить блоки.

    '},26134:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Работники

    Работники состоят из предложений по выполнению услуг в обмен на зарплату от блокчейна. Предложение о работе как минимум содержит следующую информацию:

    • Даты начала и окончания
    • Размер ежедневной выплаты
    • Максимальную итоговую выплату

    Оно также должно содержать ссылку на страницу, где предложение о работе описывается детально.

    Голоса за предложение о работе могут быть как положительными, так и отрицательными, что означает, что Вы можете проголосовать против предложения о работе, которое Вам не нравится.

    Механизм бюджета работника

    Работники получают оплату из фиксированного ежедневного бюджета по принципу кто раньше пришел - того раньше обслужили, до тех пор, пока средств больше не останется. Чтобы понять, как это работает, давайте представим следующее:

    • Ежедневный общий бюджет составляет 400 000 BTS на всех работников
    • Есть 5 предложений о работе с положительным количеством голосов и запросом на ежедневную оплату в размере 100 000 BTS каждое

    Тогда четыре работника с наибольшим количеством голосов получат по 100 000 BTS в день каждый, но как только они получают выплаты, бюджет остается пустым. Следовательно, пятый работник ничего не получит.

    '},69208:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Содержание

    '},95132:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Hesaplar

    Şu ana kadar farkkettiğiniz gibi, bu blokzinciri teknolojisi bir hesap adı kaydetmenizi mecbur kılar. Bunun bir çok avantajı vardır : Gelişmiş ölçeklenebilirlik bir yana, biz bu şekilde , kimlik bilgilerini , işlemleri yetkilendiren imzalardan ayırmış oluyoruz. Uygulamada , bir hesap adına sahip olmak o hesaba ait fonları harcayabilmekten bağımsızdır. Dahası her iki hak da (biz bunlara izinler diyoruz) ağırlıklar ve eşikler kullanılarak gelişigüzel karmaşık insan ilişkileri (biz bunlara "yetkiler" diyoruz) arasında paylaştırılabilirler.

    '},5845:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Üyelik

    BitShares'deki hesaplar üç gruba ayrılırlar . Biz kullanıcılara dilerlerse hesaplarını VIP gibi bir statüye yükseltmelerine ve ilave özelliklerden ve indirimlerden faydalanmalarına imkan tanıdık.

    Üye-Olmayanlar

    Normal hesap üye-olmayan bir hesaptır.

    Ömür-boyu Üyeler

    Ömür-boyu-üyelerinin ödediği her işlem ücretinin belirli bir yüzdesi kendilerine iade edilir ve kaydını yaptıkları ya da getirdikleri üyelerden komisyon geliri kazanmaya hak kazanırlar. Ömür-boyu-üyelikle alakalı kurul tarafından belirlenmiş belli miktarda tek-seferlik bir ücret vardır.

    Ücret Paylaşımı

    Getirdiğiniz hesap her işlem ücreti ödediğinde o ücret birçok farklı hesap arasında pay edilir. Ağımız bir kısmını alır , hesabı getiren ömür-boyu-üye de diğer kısmını alır. Hesabı getiren üye bir kısım pay alır.

    Kayıtçı , hesabın ağımıza kaydı yapılırken işlem ücretini ödeyen hesaptır. Kayıtçı ücretin geri kalan kısmını kendisi ve bağlantılarıyla nasıl pay edeceğine kendisi karar verir.

    Bekleyen Ücretler

    Ödenen ücretler sadece ağımız, getirenler, ve kayıtçılar arasında her bakım aralığında bir kez pay edilir.

    Hak Edilen Ücretler

    Çoğu ücretler anında ödenmesine rağmen , bir limitin üzerindeki ücretler (mesela üyeliğinizi yükseltmek için ödediğiniz ya da paralı hesap kaydetmek için ödediğiniz ücretler) kurul tarafından belirlenen bir kaç gün boyunca haciz altında tutulabilirler.

    '},68211:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    İzinler

    BitShares'de , her hesap ikiye ayrılır

    • Etkin İzin: fonların yönetimi ve
    • Sahip İzni: hesap yönetimi.

    Her ikisi de hesabınızın İzinler sekmesinde yetkiler ve alt-sınır'ın birlikte kullanılmasıyla belirlenebilir. İşlemin geçerli olması için alt-sınır ın geçilmesi gerekmektedir.

    Yetkililer

    BitShares'de bir yetkili, transfer veya alım-satım gibi işlemlere yetki veren bir veya daha çok sayıda kişiden oluşur.

    Bir yetki , bir yada daha fazla sayıda hesap adı ve ağırlık çiftinden oluşur.

    Geçerli bir işlem elde edebilmek için , imzalayan tarafların etki ağırlıklarının toplamı izinlerde belirlenmiş olan alt-sınırı geçiyor olması gerekir.

    Örnekler

    Birkaç örneğe bakarak kullanılan terminolojiye ve kullanım senaryolarına ışık tutalım. Aşağıda tanımlanmış etkin izinlerle yeni bir hesap oluşturulduğunu farz edelim. Dikkatinizi çekeriz , aynı şema sahip izinleri için de işe yarar.

    (Düz) Çok-İmzalı

    Düz çok-imzalı bir şema, işlemin geçerli olabilmesi için aralarından 'N' sayıda kişinin imzası gerekli toplam 'M' sayıda kişiden oluşur. Şimdi biz, BitShares'de, 'M' ve 'N' yerine ağırlıklar ve alt-sınır kullanıyoruz. Şimdi göreceğimiz gibi tamamen aynı sonuca çok daha esnek bir şekilde varacağız.

    Gelin şöyle farz edelim , Alice, Bob, Charlie ve Dennis'in ortak fonları olsun . Eğer yalnızca ikisi anlaşırlarsa geçerli olabilecek bir işlem oluşturmak istiyoruz . Dolayısıyla 4-ün-2-si (M-in-N-i) şeması şöyle görünür :

    Hesap Ağırlık
    Alice 33%
    Bob 33%
    Charlie 33%
    Dennis 33%
    ---------- ------
    Alt Sınır : 51%

    Katılımcıların her birinin 33% etki ağırlığı var fakat alt sınır 51% olarak ayarlanmış. Dolayısıyla işlemi geçerli kılmak için 4 kişiden sadece 2 sinin anlaşması yeterlidir.

    Alternatif olarak, bir 4-ün-3'ü şeması oluşturmak için ya ağırlıkları 17% ye indirebiliriz yada alt-sınırı 99%'a yükseltebiliriz.

    (Düz) Esnek Çok-İmzalı

    Alt-sınır ve ağırlıklar sayesinde fonlarımızla şimdi daha esneğiz, yada daha doğrusu daha fazla hakimiyetimiz var. Mesela , farklı kişiler için ayrı ağırlıklar belirleyebiliriz. Farzedelim ki Alice fonlarını çoklu-imza şeması kullanarak hırsızlığa karşı korumak istiyor fakat aynı zamanda arkadaşlarına da gereğinden fazla hakimiyet teslim etmek istemiyor. O zaman şuna benzer bir yetki oluşturuyoruz :

    Hesap Ağırlık
    Alice 49%
    Bob 25%
    Charlie 25%
    Dennis 10%
    ---------- ------
    Alt Sınır : 51%

    Şimdi, fonlara Alice tek bir arkadaşıyla yada tüm üç arkadaşıyla birlikte erişebilme imkanına sahip olur.

    Çok-Basamaklı Esnek Çoklu-İmza

    Gelin beraber basit bir çok-basamaklı anonim hesap kurulumuna göz atalım. Mali İşler Müdürü (MİM) ve onun için altında çalışan Vezne, Denetçi, Vergi Müdürü, Muhasebe vb. gibi departmanları olan bir şirkete bakıyor olalım. Bir de harcama ayrıcalıklarına sahip olmayı isteyen bir CEO'su olsun. O zaman biz fonlar için şunlara göre bir yetki oluştururuz :

    Hesap Ağırlık
    CEO.ŞİRKET 51%
    MİM.ŞİRKET 51%
    ---------- ------
    Alt Sınır : 51%

    burada CEO.ŞİRKET ve MİM.ŞİRKET in kendilerine ait ayrı yetkileri var. Mesela MİM.ŞİRKET hesabı şöyle olabilir :

    MİM.ŞİRKET Ağırlık
    Müdür.ŞİRKET 51%
    Vezne.ŞİRKET 33%
    Denetçi.ŞİRKET 33%
    Vergi Müdürü.ŞİRKET 10%
    Muhasebe.ŞİRKET 10%
    ------------------- ------
    Alt-sınır : 51%

    Bu şema fonların harcanabilmesi için kişilere şöyle izinler verir :

    • CEO tek başına
    • Mali İşler Müdürün tek başına
    • Vezne ve Denetçi birlikte
    • Denetçi veya Veznedar , Vergi Müdürü ve Muhasebeciyle birlikte harcama.

    Dolayısıyla görüldüldüğü gibi yetkilendirmeleri gelişigüzel derinlikte yayarak her türlü iş alanına uyacak esneklikte uygulamak mümkün.

    '},3260:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Aktif {symbol}

    {description}
    Piyasaya süren {issuer}

    [# annual]

    Eğer ömür-boyu üyelik fazla geliyorsa, {price} miktarında bir ücret karşılığında bir
    yıllığına abone olarak gelecek yıl için {feesCashback}% para iadesi alabilirsiniz. GitHub Logo

    [# fee-division]

    Ücret Paylaşımı

    {account} adlı hesap her işlem ücreti ödediğinde, o ücret birçok farklı hesaplar arasında paylaştırılır. Ağımız {networkFee}% pay alırken, {account} adlı hesabı getiren Ömür-boyu Üye de {lifetimeFee}% pay alır.

    {account} adlı hesabın kayıt işlem ücretini ödeyen hesabın adı kayıtçı_dır. Kayıtçı geri kalan {referrerTotalFee}% miktarı kendileri ve _Bağlı Getirici arasında nasıl pay edileceğini kendi belirler.

    {account} adlı hesabın kayıtçısı toplam ücretin {referrerFee}% kadarki kısmını Bağlı Getirici yle paylaşmayı ve {registrarFee}% kadarki kısmını kendine bırakmayı tercih etti.

    Bekleyen Ücretler

    {account} adlı hesabın ödediği ücretler her bakım periodu ({maintenanceInterval} seconds) nda sadece ağ, getiriciler ve kayıtçılar arasında paylaştırılır. Bir sonraki bakım vakti {nextMaintenanceTime}dır.

    Hacizdeki Ücretler

    Çoğu ücretler anında ödendiği halde {vestingThreshold} miktarını aşan bazı ücretler (üyeliğinizi yükseltmek için yada paralı hesap adı kaydı yaptırmak için ödenen) toplam {vestingPeriod} gün hacizde tutulmak zorundadır.

    '},89215:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Aktif {symbol}

    {description}
    Piyasaya süren {issuer}

    Euro (işaret: €; sembol: EUR) Avrupa bölgesindeki katılımcı ülkelerin resmi para birimidir.

    '},86978:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    Aktif {symbol}

    {description}
    Piyasaya süren {issuer}

    Amerikan Doları (işeret: $; sembol: USD $) ABD'nin resmi para birimidir.

    '},55912:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Piyasa Sabitli Aktifler (MPA-Market Pegged Assets)

    Bitcoin'e benzeyen özelliklerde ve avantajlarda, amerikan Doları gibi tüm dünya tarafından benimsenmiş bir parayla pariteyi koruyabilen bir kripto-paranın sansürsüz ve kolay bir ticaret için çok faydası vardır. Bu, BitShares'in piyasaya sabitli varlıkları (MPA) sayesinde mümkün olur. Bunlar, serbestçe alıp-satılabilen yeni bir tür dijital varlıklardır. Bunların değerleri, fark-kontratı (CFD) yöntemiyle dayandıkları geleneksel varlıkların değerlerini takip etmek üzere dizayn edilmişlerdir.

    AkıllıPara (eşanlamı MPA) , değerinin daima 100% yada daha fazlası BitShares'in ana para birimi (BTS) ile desteklenen bir kripto-paradır. Bu AkıllıParalar herhangi bir zamanda bir fark-kontratı (CFD) içinde teminat olarak BTS'ye dönüştürülebilirler .

    Teminatla desteklenen FK'nı andırmalarına rağmen PSV'leri nadir yapan şey onların karşı taraf riskinden muaf olmalarıdır. Bunun mümkün olması için teminatı güvence altına alma ve hesap görme işlemleri ağın kendi sorumluluğuna bırakılmıştır
    (yazılım protokolüyle uygulanarak) . Bu konunun detayları aşağıda anlatılacaktır.

    Bu, piyasaya-sabitli-varlıkların mevcut bir alt kümesidir:

    • BitUSD
    • BitCNY
    • BitEUR
    • BitGOLD
    • ...
    '},8862:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Özelleştirilmiş BitAktifler (Privatized BitAssets)

    Özelleştirilmiş BitAktifler piyasa-sabitli-aktif çıkarmak isteyen fakat fiyatların tanıklar tarafından duyurulmasını istemeyen müşterilere hitab eder. Onun yerine, süren kimse özelleştirilmiş bitaktif yaratırken o aktif için özel olarak fiyatlarını duyurmaya müsadesi olan bir takım yetkililer belirleyebilir. Süren kimse aktifle ilgili başka her türlü ücreti belirleyebilir ve kar elde edebilir.

    Bu özellik gerçek-zamanlı fiyatlara erişimi olan ve teşhir ve hacim arttırmak isteyen borsalar ve kuruluşlar için ayrıca ilgi çekicidir.

    '},17600:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Kullanıcı Sürümü Aktifler (UIA-User Issued Assets)

    Daha önce bahsedilen piyasaya sabitli varlıkların yanısıra , BitShares bireylere ve şirketlere, hayal edebilecekleri herşeye ait kendi kuponlarını yaratma ve piyasaya sürme imkanı verir. Kullanıcı Sürümü Varlıklar (UIA) için potansiyel kullanım alanları sayısızdır. Bir tarafta UIA'ler müşterilerin telefonlarına konser girişlerinde kullanabilecekleri basit organizasyon biletleri olarak yüklenebilirler. Diğer tarafta ise kitle fonlaması, mülkiyet takibi , ya da hisse şeklinde şirket özsermayesi satışında bile kullanılabilirler.

    Tabiiki, her tür kupona uygulanan kurallar çeşitlidir ve her yetki bölgesinde farklılık gösterir. Dolayısıyla BitShares, varlıklar piyasaya sürülürken , piyasaya süren kişinin geçerli kanunlar çerçevesinde korunmasına yardımcı olacak araçlarla gelir -kanunların böyle varlıklara zaten izin verdiğini farz ediyoruz.

    '},71792:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    Bir aktif yaratmak için şunlar gerekli :

    • Geçerli bir varlık sembolü
    • 0 (sıfır)dan büyük maksimum arz

    Hassasiyet , varlığın destekleyeceği ondalık hane sayısını belirler.

    Varlık yaratmanın masraf ücreti öncelikle varlığa ait sembolün uzunluğuna bağlıdır.

    Ücretlerin nekadarını tutacağınızı da piyasa ücreti ile yüzde olarak belirtebilirsiniz.

    "},49292:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# lifetime]

    Ücretlerde {feesCashback}% iade alın.

    Ömür-boyu Üyeler ödedikleri her ücretten {feesCashback}% iade alırlar ve kaydını yaptıkları ya da ağa yönlendirdikleri kullanıcılardan gelir elde ederler. Ömür-boyu ücret sadece {price}dir.

    [# annual]

    Eğer ömür-boyu üyelik fazla geliyorsa, {price} miktarında bir ücret karşılığında bir
    yıllığına abone olarak gelecek yıl için {feesCashback}% para iadesi alabilirsiniz.

    [# fee-division]

    Ücret Paylaşımı

    {account} adlı hesap her işlem ücreti ödediğinde, o ücret birçok farklı hesaplar arasında paylaştırılır. Ağımız {networkFee}% pay alırken, {account} adlı hesabı getiren Ömür-boyu Üye de {lifetimeFee}% pay alır.

    {account} adlı hesabın kayıt işlem ücretini ödeyen hesabın adı kayıtçı_dır. Kayıtçı geri kalan {referrerTotalFee}% miktarı kendileri ve _Bağlı Getirici arasında nasıl pay edileceğini kendi belirler.

    {account} adlı hesabın kayıtçısı toplam ücretin {referrerFee}% kadarki kısmını Bağlı Getirici yle paylaşmayı ve {registrarFee}% kadarki kısmını kendine bırakmayı tercih etti.

    Bekleyen Ücretler

    {account} adlı hesabın ödediği ücretler her bakım periodu ({maintenanceInterval} seconds) nda sadece ağ, getiriciler ve kayıtçılar arasında paylaştırılır. Bir sonraki bakım vakti {nextMaintenanceTime}dır.

    Hacizdeki Ücretler

    Çoğu ücretler anında ödendiği halde {vestingThreshold} miktarını aşan bazı ücretler (üyeliğinizi yükseltmek için yada paralı hesap adı kaydı yaptırmak için ödenen) toplam {vestingPeriod} gün hacizde tutulmak zorundadır.

    '},26426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Etkin izinler, bu hesaptaki fonları harcamaya izni olan hesapları belirler.

    Etkin izinler kolay bir şekilde çok-imzalı bir düzen kurmak için kullanılabilirler, daha fazla bilgi için izinler bölümüne bakabilirsiniz.

    '},538:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    Memo anahtarı, memoların size ulaştığı yerdir, memoları deşifre edebilmeniz için açık anahtara ait özel anahtarın yönetimine sahip olmanız gerekir.

    Bir açık/özel anahtar çifti kullanarak harcama yetkisi olmadan üçüncü şahıslara memolarınıza salt-okuma erişimi sağlayabilirsiniz.

    "},14261:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Sahip izinleri hesap üzerinde kimin kontrolü olduğunu belirler. Sahipler tüm anahtarların yenilerini belirleyebilir ve herhangi hesap ayarını değiştirebilir.

    Daha fazla bilgi için izinler .

    '},60705:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Oy Kullanma

    BitShares'de oy kullanmak ağın hem gelişmesi hem de güvenliği için önemlidir. Eğer dilerseniz oy kullanma hakkınızı sizin için oy kullanabilecek bir vekile devredebilirsiniz. Eğer vekil tayin ederseniz, manuel oylama etkisiz hale getirilecektir.

    '},86744:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Kurul üyeleri blok zincirine ait ücretler, blok süreleri ve diğer bir çok şey gibi dinamik parametrelerin değiştirilmesini teklif edebilirler. BitShares'in nasıl işlediğine dair derin bilgi gerektiren büyük bir sorumluluk pozisyonudur.

    '},72137:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Bir vekil adınıza oy kullanımını yönetir. BitShares forumunda vekil olarak görev almaya gnüllü kişileri bulabilirsiniz BitSharestalk.

    '},83455:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Taniklar BitShares'in blok üreticileridirler. İşlemlerin geçerliliklerini teyit eder ve ağın güvenliğini sağlarlar. Dilediğiniz kadar tanığa oy verebilirsiniz, hepsi aynı miktarda alır. Tanık tekliflerini buradan takip edebilirsiniz: BitSharestalk - Stakeholder Proposals Board.

    '},83904:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    İşçiler BitShares'e özgü bir kavramdır. İşçiler, blok zincirinin kendisinden aldıkları maaş karşılığında hizmet sağlayan tekliflerdir. Teklifin amacını açıklayan bir web veya forum bağlantısı teklifin içine dahil edilmelidir, teklifleri burada görebilirsiniz : BitSharestalk - Stakeholder Proposals Board.

    '},20254:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Bu ileti arzu ettiğiniz borç ve teminatı belirlemenizi sağlar.

    Eğer {debt} borç azaltılırsa {borrower} hesabından düşürülecektir. Eğer {debt} borç artarsa yeterli {collateral} teminat bulunması kaydıyla {borrower} hesabına yatırılacaktır.

    Asgari idame teminatı muhafaza edildiği sürece teminat eklenebilir yada eksiltilebilir.

    Devamını oku & Açıklama Sihirbazı'nı kontrol et

    '},45713:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# receive]

    Kullanıcı adınız

    Bitshares hesabınıza bir başkasından ya da bir borsadan BTS gönderimi için, göndericiye kullanıcı adınızı vermeniz yeterlidir. BTS'ler doğrudan kullanıcı adı belirtilerek gönderilir:

    [# deposit-short]

    Kripto para yatır/çek

    Başka blokzincirlerinden Bitshares hesabınıza (ör. BTC gibi) "coin" aktarmak için ya da TL, dolar gibi fiat para birimleriyle Bitshares'de işlem yapabilmek için lütfen aşağıdan bir transfer hizmet sağlayıcısı seçin.

    '},14327:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Ücretler

    BitShares ekosistemi içerisinde her işleme tahsis edilmiş bireysel bir ücret vardır. Bu ücretler değişime tabidirler. Bununla birlikte, bunlar sadece hissedarların oylarıyla belirlenirler, böylece BitShares'in esas varlığı olan BTS hissedarlarının her biri ücretlerin ne olacağı konusunda söz sahibi olur. Eğer hissedarlar belli bir ücretin düşürülmesi konusunda fikir birliği sağlarlarsa o ücret blok zinciri tarafından otomatik olarak düşürülür. Blok zinciri parametrelerinin düzenlemesiyle ilgili teklifler kurul üyeleri tarafından yapılırlar. Bu üyeler hissedarlar tarafından oy kullanılarak seçilirler ve herhangi bir durumda, esneklik ve reaksiyon kabiliyetini arttırırlar.

    '},63604:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# connection-error] Ful noda websocket bağlantısı kuramadık.

    Olası sebepler: TODO

    • sebep #1
    • sebep #2
    "},93416:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Giriş

    Merkezsiz borsa (kısaca DEX) , BitShares ekosisteminde alıp-satılan dijital mamüllerin doğrudan takas edilebilmelerini sağlar.

    Merkezsiz bir borsanın , bariz geleneksel borsalardan bir takım avantajları vardır. Bunlardan kısaca bahsetmek istiyoruz. BitShares DEX'de hepsi mevcut olmasina rağmen o özellikleri tamamen ya da kısmen layığı ile kullanabilmek okuyucuya ve müşteriye kalmıştır.

    • Güçler Ayrılığı : IOU 'lari piyasaya sürme ve sipariş defterlerine işleme görevinden aynı kimsenin sorumlu olmasını gerektirecek bir sebep yoktur. BitShares'de işlem emirlerin eşleştirilmesi işi protokol tarafından yürütülür, protokolün işlemlere konu olan aktiflerle ilgili bilgisi yoktur, sadece işlem görür.
    • Genel Birleşik Emir/Sipariş Defteri : BitShares evrensel olduğu için , internet erişimi olan herkes DEX'i alım-satım için kullanabilir. Bu, dünyanın likiditesini , merkezsiz/dağıtık alım-satım için tek bir emir defterine getirir.
    • Neredeyse Herşeyi Alıp-Satabilirsiniz : BitShares DEX varlığın muhteviyatını bilmez , dolayısı ile her türlü eşleşme ticareti yapılabilir. GÜMÜŞ:ALTIN gibi bazı eşleşmeler az likidite sağlarken FOREX ticareti için USD:EUR gibi eşleşmeler çok büyük hacimli işlem görür.
    • Limit Yok : BitShares protokolünün sizin ticaret deneyiminizi sınırlaması mümkün değildir.
    • Merkezsiz : DEX (merkezsiz borsa) tüm dünyaya dağıtıktır. Bölece tek kırılma noktası olmadığı gibi bu BitShares borsasının ticaret için 7/24 açık olduğu anlamına gelir, çünkü her zaman dünyada bir yerde vakit mutlaka gündüzdür.
    • Güvenli : Fonlarınız ve ticari işlemleriniz endüstriyel seviyedeki eliptik-eğri kriptografisiyle tamamen güvence altındadır. Kimse siz izin vermedikçe fonlarınıza erişemez. Güvenliği daha da güçlendirmek amacıyla müşterilerimize emanet-escrow ve çoklu- imza planları düzenlemelerine imkan tanıyoruz.
    • Hızlı : Diğer merkezsiz ağların tersine BitShares DEX gerçek-zamanlı ticarete imkan tanır , sadece ışık hızı ve gezegenin büyüklüğü ile sınırlıdır.
    • Kanıtlanabilir Emir Eşleştirme Algoritması : BitShares DEX i nadir kılan şeylerden biri de ispatlanabilir emir eşleştirme algoritmasıdır. Verilen bir takım işlem-emri için her zaman bu emirlerin kanıtlanabilir şekilde eşleştirilmiş olduğunu teyit edebilirsiniz.
    • Teminata Bağlanmış : BitShares'in en büyük özelliklerinden biri de bitUSD, bitEUR, bitCNY gibi akıllıparalardır. Kolaylık olsun diye bu varlıklar cüzdan içerisinde USD,EUR,CNY diye kısaltılmışlardır. Bu dijital kuponlar dayandıkları fiziksel varlıkla aynı değeri temsil ederler. Yani bu cüzdandaki 1 USD nin değeri 1 dolardır ve o şekilde ödenebilir. Bu kuponların hepsinin karşılığı olarak teminat olarak kitli tutulan ve anlık fiyatında hesap görümü için mevcut olabilen, BitShares'in şirket hisseleri (BTS) vardır.
    '},16693:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitAktif Kısa Satışı

    BTS'le temasınızı arttırmak ve USD,EUR,GOLD gibi BitAktiflere likidite sağlamak için bu BitAktifleri ağdan ödünç alabilir ve kısa satabilirsiniz. Prosedürü burada kısaca anlatacağız.

    Ödünç Alma

    BitShares ağının herhangi bir miktarda BitVarlığı piyasaya sürmesi ve yeterli teminat karşılığında katılımcılara borç vermesi mümkündür.

    • uzlaşma fiyatı : 1 BTS in dış borsalarda alıp-satılırkenki fiyatı.
    • idame teminat oranı (MCR) : zorunlu minimum teminat oranı
    • maksimum kısa sıkıştırma oranı (MSQR) : Tanıklar tarafından kısaların kısa sıkıştırmalara karşı nereye kadar korunacaklarını belirleyen oran.
    • kısa sıkıştırmadan korunma (SQP) : Marjin pozisyonuna ödettirilebilecek en yüksek
    • çağrı fiyatı (cp): Kısa/ödünç pozisyonlarının marjin çağrıldığı fiyat.

    Marjin Çağrısı ( Teminat Tamamlama Çağrısı)

    BitShares ağı , ödünç aldığı bitVarlığın karşılığında yeterince teminatı bulunmayan pozisyonları teminatı tamamlamaları için çağırabilir. Marjin çağrısı , en yüksek alış fiyat teklifinin çağrı fiyatından az , ve SQP dan büyük olduğu herhangi bir anda meydana gelebilir. Marjin pozisyonu, teminatı satın almaya verilen en yüksek teklifin çağrı fiyatından(x/BTS) daha düşük olduğu anda teminatı zorla sattırılır.

    SQP =  uzlaşma fiyatı / MSQR\nçağrı fiyatı = BORÇ / TEMİNAT * MCR

    Marjin çağrısı teminatı alır , ödünç alınmış bitaktif hisselerinin SQP ya kadarki kısmını piyasa fiyatından satın alır ve pozisyonu kapar. Teminattan geri kalan BTS müşteriye iade edilir.

    Hesap görme

    Her bitaktif sahibi istediği zaman adil bir fiyattan hesap görmeyi talep edebilir. Hesap görme işlemi, ödünç/kısa pozisyonlarını en düşük teminat oranıyla kapar ve hesap görmek üzere teminatı satar.

    Satış

    BitAktif ödünç alındıktan sonra alakalı piyasalardan herhangi birinde herhangi bir fiyattan satılabilir . Bu aşamayla , kısa-satış tamamlanmış olur ve o bitaktif da kısa olursunuz.

    Teminat Oranını Güncellemek

    Ödünç/kısa pozisyonu tutan kişi , herhangi bir zamanda , piyasa davranışını esnek bir biçimde ayarlamak için teminat oranını değiştirebilir. Eğer teminat oranı arttırılırsa , ilave miktarda BTS teminat olarak kilit altına alınır, teminat oranının düşürülmesi ise tekabül eden miktarda BitVarlığın ağa geri ödenmesini gerektirir.

    Kapamak

    Ödünç/kısa pozisyonunu kapamak için , ilk önce kişinin , BitShares ağına teslim etmek üzere o Bitvarlığın ödünç alınan miktarda elinde bulunması gerekir. Ondan sonra , BitAktifler arz stoğundan düşer ve teminat serbest bırakılıp sahibine geri verilir.

    '},92781:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Alış-Satış

    Bu sayfa DEX (dağıtık borsa)de kullanılan terimlerin nasıl yorumlanması gerektiği ve al-sat eşlerinin nasıl temsil edildiğine dair hızlı bir giriştir.

    Çiftler/Eşler

    BitShares'de , neredeyse her aktif tüm diğer aktiflerle alınıp-satılabilirler. İki varlık seçmiş olduğumuz vakit , biz genelde piyasa çifti diye hitab ediyoruz. Mesela , USD'yi EUR'a karşı USD:EUR çiftinde takas edebiliriz.

    Tutarlı olmak adına , biz temel ve kota genel terimlerini kullanacağız , öyleki çiftler şöyle temsil edileceklerdir

    *kota* : *temel*

    ve mesela temel USD olursa ve kota da EUR olursa biz bunu EUR:USD çifti olarak belirteceğiz

    Sipariş Defterleri

    Sipariş defteri ask (istenilen satış fiyatı) ve bid (verilen alış teklif fiyatı) yanlarından oluşur. Alış-satış çiftlerin tercihen bir yönü olmadığından ters çevirilebilirler, aşağıdaki tabloda ask/bid ve her iki tarafın ilgili al/sat operasyonlarına genel bakış verilmiştir:

    Taraf Sat Al
    Ask kota temel
    Bid temel kota
    ---------- ------- -------

    USD:EUR çiftinin bid tarafında olan EUR:USD çiftinin ask tarafında olacaktır. Tabiiki fiyatlar kesir olarak temsil edileceğinden sonuçta her iki çift aynı olacaktır.

    Alış-Satış

    Al-sat emri vermek için , formun taraflarından birini doldurmak gereklidir, ya ask, yada bid tarafı ( al yada sat tarafı) . Satmak/almak için bir fiyat ve bir miktar belirlemeniz gerekecektir. Bu emrin maliyeti otomatik olarak hesaplanacaktır. Bu emrin verilmesi için ilave ücret gerekecektir.

    Emir icra edildiğinde (biri teklifinizi sattığında/aldığında) , hesabınıza söz konusu varlıktan yatırılacaktır.

    Yerine getirilmemiş emirler herhangi bir zamanda iptal edilebilirler.

    '},71118:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Terimler

    İndexe Geri Git

    '},57357:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Graphene Yardım

    BitShares 2.0 , Cryptonomex tarafından inşa edilmiş olan Graphene teknolojisine dayanan bir Finansal-Akıllı-Kontratlar platformudur. Graphene'i gerçek-zamanlı blokzincirleri için bir araç takımı yada bir teknoloji olarak da görebilirsiniz.

    Bu yardım bölümü özet bir genel bakış sağlar ve bu uygulamanın en temel kavramlarını tanımlar.

    Takdim

    Hesaplar

    Aktifler

    Merkezsiz/Dağıtık Borsa


    Terimler

    '},31901:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Yedeklemer

    Çoğu zaman tek bir yedekleme yeterli olsa bile cüzdanınızı düzenli bir şekilde yedeklemeniz önerilir. Bir yedeklemeden geri kurtarma yapabilmek için şifre cümlenize ihtiyacınız olduğunu unutmayın , çünkü yedeklemeler kriptolanmıştır. Dolayısıyla , cüzdanınızı yada şifre cümlenizi kaybederseniz fonlarınıza tekrar erişmeniz imkansız olur.

    Yedeklere Cüzdan Yönetim Panelinden ulaşabilirsiniz . (Ayarlar ->Cüzdanlar).

    Cüzdan İhracı

    Yeni bir yedekleme oluşturmanın en kolay yolu Cüzdan Yönetim Panelinde verilen bağlantıdan cüzdanı dışarı ihrac etmektir. Lütfen yedeklerinizi güvenli bir kaybetmekten, hırsızlıklardan, ve doğal afetlerden koruyunuz.

    Beyin-anahtarı (YALNIZCA gelişmiş kullanıcılar )

    Eğer cüzdanınızın içine hiç hesap anahtarı aktarmadıysanız , alternatif olarak hesaplarınızı ve fonlarınızı dışarı beyin-anahtarı ihrac ederek yedekleyebilirsiniz. Beyin-anahtarı anahtarlarınızın deterministik yöntemle türetildiği bir kelimeler dizisidir.

    Dikkat : Hiyerarşik Yetkililer (SADECE uzman kullanıcılar)

    Eğer hiyerarşik yetkiler kullanıyorsanız (hesap ve/yada etkin izinler), sadece anahtarları yedeklemeniz fonlarınıza tekrar erişmenize yeterli olmayabilir! Lütfen hiyerarşik yetkiler konusundaki dokümantasyonları tekrar gözden geçirin.

    '},58715:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitShares

    Daha önce bahsedildiği gibi , Graphene sadece bir teknolojiyi yada protokolü tarif etmektedir. Fakat fiilen bir ekosisteme dönüşmesi BitShares gibi gerçek bir blokzinciri ile birlikte mümkün olur.

    BitShares , blokzinciri yeniliğini , hizmetlerini internet kullanarak sunan tüm endüstrilere yaymayı ummaktadır. Bankacılık, hisse senedi borsaları, piyangolar,seçimler, müzik, mezat veya birçok diğerleri olsun , dijital umumi bir defteri-kebir, dağıtık-otonom-şirketlerin (DAC- distributed autonomous companies) yaratılabilmesine imkan tanır. Bu DAC lar geleneksel merkeziyetçi rakiplerinin sunduklarından daha kaliteli hizmetleri çok daha ucuza sunarlar. DACların ortaya çıkışı , organizasyon yapılarında yeni bir paradigma teşkil etmektedir. Artık şirketler, bozulamayan iş kuralları altında ve insan yönetimi olmadan işleyebilirler. Bu kurallar halka açık şekilde denetlenilebilen açık kaynak bir yazılımın içine kodlanmıştır ve şirketin hissedarlarının bilgisayarlarına dağıtılmıştır. Bu şekilde şirketin keyfekeder manüpülelerden korunması daha kolay olur.

    Bitcoin para için ne yaptıysa BitShares'de işletmeler için onu yapar. Bunu , evrensel, şeffaf, güvenilir, verimli ve karlı şirketler yaratmak için dağıtık mutabakat teknolojisini kullanarak yapar.

    Bu Cüzdan

    Şu an bu tarayıcı penceresinde açık olan cüzdanla BitShares ağının tüm işlevlerine erişebilirsiniz. BitAktifler, Kullanıcı-Sürümü-Varlıklar ve dağıtık borsa.

    '},87597:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Blokzinciri

    Graphene de çoğu kripto para gibi , transferler ve piyasa hareketleriyle ilgili katılımcıları haberdar etmek için blokzincirinden faydalanır. Her blok bir önceki bloğu kaynak olarak gösterdiği için ağda daha önceden gerçekleşmiş tüm işlemleri içeren bir bloklar zinciri (blokzinciri) elde ederiz . Blokzinciri açık ve erişilebilir ve denetlenebilir bir defteri-kebir olduğundan , herkes transferlere, piyasa emirlerine ve sipariş defterlerine yakından bakabilir ve teyit edebilir.

    Tabii ki, bu web cüzdanı denetlemelerinize yardımcı olması için size bir blok araştırıcısı da sunmaktadır.

    Mutabakat Mekanizması

    Hangi anda ve kimin blok üretmeye izni olduğu , Delegated Proof of Stake (Yetkilendirilmiş-vekil-pay-ispatı) denilen mutabakat mekanizmasıyla belirlenir. Esasında, BitShares hissedarları (elinde BTS kuponu olan) tercih ettikleri blok üreticilerine blokzincirinde oy verebilirler. En çok oyu alan o tanıkların blokları üretmelerine izin verilir.

    İşlemler

    Graphene blokzinciri teknolojisi çeşitli işlem türleri sunmaktadır. Kullanıcılar aralarında aktiif transferleri yapabildikleri gibi dağıtık borsayla ilişkili işlemler de vardır. Bu işlem türlerinin bir çoğu kendini izah eden fişlerle etiketlenmişlerdir, diğer işlemler ise şirketin iç işleriyle alakalı daha çok bilgi gerektirir.

    '},35488:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    #Kurul

    Kurul, hissedarlar tarafından onaylanan kişilerden oluşan ve bazı ticari parametreleri belirleyen bir gruptur. Bu parametrelerden bazıları şunlardır :

    • işlem ve alım-satım ücretleri
    • blok büyüklüğü ve blok aralıkları gibi blokzinciri parametreleri
    • nakit iade oranları ve vesting periodları gibi parametreleri
        gibi.
    "},45677:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Cüzdan

    Şu ana kadar farketmiş olduğunuz gibi bu uygulama bir web uygulamasıdır ve tarayacı içerisinde çalışır. Ekosistemin geri kalanına geçit görevi gören , ağda bulunan güvenilir bir düğüm(node) bağlantı kurar. test

    Cüzdan Güvenliği

    İçiniz rahat olsun , sunucularımızın fonlarınıza erişimi mümkün değildir, çünkü özel anahtarlarınızın hiçbiri asla tarayıcınızdan ayrılmazlar. Onun yerine , parola cümlenizle kriptolanmış vaziyette yerel tarayıcınızın veritabanında saklı tutulurlar. O yüzden, bilgisayar arızaları ve tarayıcı çökmelerine karşı mutlaka uygun bir Backup yapmayı ihmal etmeyin.

    Cüzdan Yönetimi

    Dahası , bu kullanıcı arayüzü , birden çok sayıda ve içerisinde muhtemel birçok hesap ve bunlara ait fonlar bulunduran ayrı cüzdanları muhafaza edebilir ve bunlara erişebilir. Ayarlar->Cüzdanlar'dan ekleme, yedekleme yapabilir ve mevcut cüzdanlar arasında geçiş yapabilirsiniz.

    '},20315:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Tanık

    Tanıklar yeni bloklar inşa etmek suretiyle blokzincirine çalışan kimselerdir. Her tanık, hissedarlar tarafından onaylanır ve tasdikli işlemlerden bloklar inşaa eder ve imzalar. Ağın içinde gerçekleşen her işlem en sonunda tüm tanıklar tarafından tasdik edilmek zorundadır.

    Mutabakat Mekanizması

    Kimin tam olarak hangi anda blok ürettiği , Delegated Proof of Stake (Yetkilendirilmiş-vekil-pay-ispatı) denilen mutabakat mekanizmasıyla belirlenir. Esasında, BitShares hissedarları (elinde BTS kuponu olan) tercih edilen blok üreticilerine blokzincirinde oy verebilirler. O tanıklar adı verilen, en çok oyu alan kimselerin blokları üretmelerine müsade edilir.

    '},1018:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Emekçiler

    Emekçiler maaş karşılığında hizmet veren tekliflerdir, maaşlarını blok zincirinden alırlar. Bir emekçi teklifi en azından aşağıdaki bilgileri kapsamalıdır :

    • Bir başlangıç ve bitiş tarihi
    • Gündelik bir ücret
    • Maksimum bir toplam maaş

    Emekçi teklifinin daha detaylı anlatıldığı bir web sayfasına da bağlantı sunmalıdır.

    Emekçi tekliflerine verilen oylar pozitif yada negatif olabilirler, yani beğenmediğiniz bir teklife red oyu kullanabilirsiniz.

    Emekçi bütçesi mekanizması

    Emekçilerin ücretleri, ilk-gelen ilk-çalışır prensibiyle günlük sabit bir bütçeden para tükenene kadar ödenir. Nasıl işlediğini görmek için şu örneğe bakın:

    • Tüm Emekçiler için günlük toplam bütçe 400 bin BTS olsun
    • Her biri günlük 100k BTS talep eden toplam oyların pozitif olduğu 5 emekçi teklifi

    Oyların çoğuna sahip 4 emekçinin her birine günlük 100 bin BTS ödenecek, fakat ödemeler tamamlandığında emekçi bütçesi tükenmiş olacak. O yüzden 5. emekçiye hiç bir şey ödenmeyecek.

    '},18405:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    İçindekiler

    '},39356:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    账户

    或许你已经注意到,本区块链技术要求你注册一个账户名。这带来很多好处:这不仅增强了系统的可扩展性,同时我们可以将身份标示与交易授权签名分开。事实上,拥有一个账户名和能够花费它的资金是相互独立的。而且,这两种权利 (我们称之为权限)能够分散赋予任意复杂的人群关系中。我们称之为职权实体你可通过分配权重和设定 门槛阀值来实现。

    '},99016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    会员级别

    BitShares 系统中,用户账户分为3个种类。我们运行用户升级账户到类似VIP的会员级别,享受费率折扣以及其他专属特性。

    非会员(普通账户)

    一个非会员账户,也就是一个普通账户

    终身会员

    终身会员账户可以从自己支付的各种手续费中获得一定比例的返现奖励,并有资格加入引荐计划,通过引荐或注册用户获得引荐奖励。升级到终身会员要求支付一笔一次性的升级费用,具体金额由理事会成员通过投票设定和调整。

    手续费分配

    每次你推荐的用户支付手续费时,该手续费将分配给多个不同账户。网络、推荐人都将获得一部分分成。

    注册人是账户注册时代其支付注册费的账户。注册人账户可自行决定剩余的手续费如何在它自己及它的市场合作方之间分配。

    待结费用

    手续费每个维护周期在网络、推荐人和注册人之间结算一次。尚未结算的手续费称为待结费用

    待解冻金额

    大部分获取手续费的利益账户可立即使用资金,但金额超过一定数量的费用(比如支付升级终身会员的手续费、注册高级账户名的手续费等)则需要暂时冻结,并在一段时间内线性解冻释放。

    '},26387:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    权限

    在BitShares (比特股)中,每一个账户的权限可分为

    • 活跃权限: 控制资金
    • 账户权限: 控制账户

    两者都可以通过钱包账户页面中权限标签进行设定。设定授权的职权实体 (详见下文)以及分配相应的权重。只有高于门槛阀值权重的职权实体才能签署有效的交易。

    授权账户

    在比特股系统中,一个职权实体通过一个或多个实体进行操作授权,比如转账或者交易。

    一个职权实体由一个或多个账户名加权重组合构成。

    参与签名的一个或多个实体的权重之和必须大于门槛阀值才能进行签署有效的交易动作。

    示例

    现在让我们讨论几个例子来更好的理解这些术语以及使用场景。假设我们创建了一个新的账户,他的活跃权限如下文所述。请注意,同样的模式也适用于账户权限。

    (扁平结构) 多重签名

    一个扁平结构的多重签名由M方实体参与,其中N个实体必须进行签名以使交易有效。现在,在比特股系统中,我们使用权重门槛阀值来代替MN。我们可以实现相同的功能,但是更加灵活。

    假设Alice,Bob,Charlie和Dennis管理一个共同基金。我们希望只要有2个人同意,我们就能构建一个有效的交易。也就是2-of-4 (N-of-M)模式,这个结构如下:

    账户名 权重
    Alice 33%
    Bob 33%
    Charlie 33%
    Dennis 33%
    ---------- ------
    门槛阀值: 51%

    这4个成员每人都有33%的权重,但是门槛阀值设定在50%。这样,至少需要2名成员同意才能获得多余门槛阀值的权重以签署有效交易。

    同理,要构建 3-of-4 结构,我们可以降低每个成员的权重值到 17%,或者增加门槛阀值到 99%。

    (扁平结构) 灵活的多重签名

    通过门槛阀值和权重,现在我们管理资金时拥有了更多的灵活性,更准确的说,我们拥有了更多的控制权。比如,我们可以分配不同的权重到不同的成员。假设Alice希望通过多重签名机制来提高资金安全性防范偷窃,但又不想给与她的朋友们过多的控制权,那么,我们可以设定这样的职权实体分布:

    账户名 权重
    Alice 49%
    Bob 25%
    Charlie 25%
    Dennis 10%
    ---------- ------
    门槛阀值: 51%

    这样,Alice只需要任何一个朋友协助就能使用资金,或者其他3个朋友必须全部同意才能使用资金。

    多层次灵活的多重签名

    我们再来看一下一种简单的企业常用的多层级组织架构。这个公司有一个首席财务官,有多个部门向其汇报,如Treasurer, Controller, Tax Manager, Accounting等。公司的首席执行官也要求拥有支付权。我们可以这样设计职权实体结构:

    账户名 权重
    CEO.COMPANY 51%
    CFO.COMPANY 51%
    ------------ ------
    门槛阀值: 51%

    而 CEO.COMPANY 和 CFO.COMPANY 则拥有各自的职权实体。比如 CFO.COMPANY 账户可设置如下:

    CFO.COMPANY 权重
    Chief.COMPANY 51%
    Treasurer.COMPANY 33%
    Controller.COMPANY 33%
    Tax Manager.COMPANY 10%
    Accounting.COMPANY 10%
    ------------------- ------
    门槛阀值: 51%

    这个设计允许:

    • 首席执行官使用资金
    • 首席财务官使用资金
    • Treasurer连同Controller一起可以使用资金
    • Controller或者Treasurer连同Tax Manager或者Accounting可以使用资金

    这样,通过设计构建灵活的职权实体,从而拥有任意层级的结构,将满足绝大多数企业使用场景。

    '},35722:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    资产 {symbol}

    {description}
    发行人 {issuer}

    欧元 (标识: €; 符号: EUR) 是欧元区参与国的官方货币。

    '},55854:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# summary]

    资产 {symbol}

    {description}
    发行人 {issuer}

    美元 (标识: $; 符号: USD) 是美利坚合众国的官方货币。

    '},16504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    市场锚定资产

    一种加密数字货币,拥有类似比特币的属性和优点,同时能保持价格与对应的全球接受的货币同步(比如美元)。具有很强的便利性和实用性,对管制免疫。BitShares的市场锚定资产(MPA)可以实现这样的目的。市场锚定资产是一种新型的可自由交易的数字资产,通过差价合约(CFD)机制,它的价值能够追踪传统的对应资产的价值。

    SmartCoin (市场锚定资产的另一种叫法)是一种数字货币,它的价值总是有100%或更多价值的比特股核心货币(BTS)来支撑。这些BTS在差价合约(CFD)中,作为抵押物存在,并在任何时间可被赎回。

    市场锚定资产与众不同的一个特点在于,尽管它使用了有抵押的价差合约,它却能免于对手盘风险。这是由网络本身(软件协议)通过确保抵押充足,并在特定情况下进行强制清算的机制来实现的。

    以下是部分已经可用的市场锚定资产

    • BitUSD (比特美元)
    • BitCNY (比特人民币)
    • BitEUR (比特欧元)
    • BitGOLD (比特黄金)
    • ...
    '},3910:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    私有比特资产

    通过私有比特资产,某些用户可以发行市场锚地资产,然后并不依赖见证人发布的喂价信息。相反的,在创建私有比特资产时,发行人设定一组授权账号来发布喂价信息。发行人可以设置与该资产相关的各种费率参数。

    这个特性主要适用于一些中心化交易所和机构,它们往往能够获得实时的价格信息,并以此来增加交易量。

    '},95276:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    用户发行的资产

    除了之前提到的 市场锚定资产 外,BitShares允许个人或公司用户创建和发行各种自定义资产凭证(UIA)。相关的应用场景数不胜数。比如,UIA可被用来代替简单的活动门票,存入合格用户的手机钱包中,在进入活动现场时进行实时验证。同样,UIA可被用来进行众筹、所有权追踪,甚至是代表公司的股权。

    显然,适用于不同凭证使用场景的法律法规可能天差地别,尤其是在不同国家时。所以,BitShares提供了一组工具来帮助发行人来合规发行和管理UIA。

    '},52419:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    创建自定义资产需要以下信息:

    • 资产符号
    • 最大供给量

    精度决定了资产支持的小数点后的位数。

    资产创建需要支付的费用取决于资产符号的字符长度。

    你可以设定交易手续费率来决定用户交易时需要向你支付多少比例的费用。

    "},85472:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# lifetime]

    可获得 {feesCashback}% 手续费返现奖励

    终身会员可获得自己支付的每笔交易手续费的{feesCashback}%的现金返现,并自动作为推荐人加入引荐计划,通过引荐用户注册获得推荐奖励。升级到终身会员只需要花费 {price}。

    [# annual]

    如果你暂时不想成为终身会员,那么你还可以选择升级到年度会员,可获得 {feesCashback}% 的手续费返现。升级为年度会员,每年只需花费 {price}。

    [# fee-division]

    手续费分配

    每次 {account} 支付交易手续费时,该手续费将分配给多个不同账户。网络将收取 {networkFee}%,引荐 {account} 的推荐人账户将获得 {lifetimeFee}%。

    注册人账户 是在 {account} 注册时代其支付注册费的账户。注册人账户可自行决定剩余的 {referrerTotalFee}% 手续费如何在它自己及它的 合作推荐人 之间分配。

    {account}的注册人账户决定与它的_合作推荐人_分享{referrerFee}%手续费,自己保留{registrarFee}%。

    待结费用

    {account} 支付的手续费每个维护周期 ({maintenanceInterval} 秒)在网络、推荐人和注册人之间结算一次。下一个维护时间在 {nextMaintenanceTime}。

    待解冻金额

    大部分获取手续费的利益账户可立即使用资金,但金额超过{vestingThreshold}的费用(比如支付升级终身会员的手续费、注册高级账户名的手续费等)则需要暂时冻结,并在{vestingPeriod}天内线性解冻释放。

    '},13430:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    资金权限用来规定 谁(账户名或公钥)可以控制本账户资金用于交易及转账。

    这种设置可以用来方便的构建<多重签名>机制,更多信息请参见 权限

    '},30489:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    交易附带的备注信息是使用备注公钥加密后传输的。为了解密备注信息,需要拥有备注公钥对应的私钥。

    备注信息由单独<公/私钥对>进行管理,如果账户资金权限与备注权限不一致或者此账户不拥有资金权限,你才可以安全的将此账户备注信息的只读权限交由第三方,这样才不会导致资金控制权外泄。

    警告:一般情况下,账户的资金权限与备注权限的<公/私钥对>相同,请不要轻易泄露备注权限的私钥,如需更改为不一致,请参考(账号登录模式)处说明。

    "},86249:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    账户权限设定谁可以控制本账户。控制人(账户名或公钥)可修改账户相关的各种设置,包括权限设置。

    参见 权限 了解更多信息。

    '},66678:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    投票

    在BitShares系统中,投票是非常重要的一项特性,不仅事关网络安全,同时也能影响系统的后续开发方向。如果你愿意的话,你可以将你的投票权交由代理投票账户执行。如果你设定了代理投票账户,则手动投票将相应关闭。

    '},92976:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    理事会成员 可以提议修改区块链的动态参数,比如手续费,区块间隔时间以及其他很多参数。这是一个需要对BitShares系统如何运作有很深理解,需要有很强责任感的职位。

    '},24198:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    代理投票账户代表你行使投票权力。你可以在BitSharestalk论坛上找到一些申请成为投票代理人的提案。

    '},33829:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    见证人 是BitShares系统中区块的生产者。他们验证交易数据并维护网络安全。你可以投票选举你信任的人成为见证人。投票时,你选择的候选人将获得你投出的相同票数。见证人的竞选帖可在这里找到BitSharestalk - Stakeholder Proposals Board

    '},98689:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    预算项目 是BitShares系统中独有的概念。他们是一些期望通过提供服务来从区块链获得奖金的工作项目提案。一项提案包含一个指向网站或论坛帖子的链接,在其中详细解释了工作项目的介绍。在这里BitSharestalk - Stakeholder Proposals Board可以看到一些提案。

    '},59530:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    调整和设置你的债务及抵押物(保证金).

    如果调低 {debt} 债务水平,将从 {borrower} 账户中扣除相应 {debt} 归还。 如果调高 {debt} 债务水平,只要 {borrower} 账户持有足够的 {collateral} 可供抵押冻结,新借入的 {debt} 将存入 {borrower} 账户中。

    保证金可以增加或减少,只要抵押率超过维持保证金率。更多信息

    '},32684:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    [# receive]

    获取 BTS

    为了从其他人或者交易所获得BTS,你只需要提供你的账户名: {account}

    [# deposit-short]

    充值/提现 数字资产

    如果你要充值或提现资产,无论是法币或是来自其他区块链,你需要使用桥接网关 服务来实现。你可以从下面找到一系列提供服务的服务商:

    '},17490:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    手续费率

    在BitShares系统中,每一种操作都将花费相应手续费。手续费率可能发生变化。然而,手续费的调整需要获得股东的授权。所以每一位持有BitShares核心资产(BTS)的股东对费率的构成都有话语权。如果股东确信某种手续费的降低将带来好处,并且达成共识,那么该种手续费则由区块链自动进行调低。区块链参数的改变由理事会成员提出动议。这些成员由全体股东投票选举产生,以提高系统灵活性和响应率。

    '},680:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s="

    [# connection-error] 无法获取到全节点的 websocket 连接

    Possible reasons: TODO

    • reason #1
    • reason #2
    "},85354:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    预测市场资产

    预测市场资产允许你赞同或者不赞同预测(条件)资产,并可以在你的意见上使用抵押物。
    预测市场由发行者在判定日期到期后根据真实世界的结果进行判定并反馈到链上。

    预测市场资产在区块链上是一种特殊种类的借贷资产,债务与抵押物总是相等数量(借贷 1:1),强平或者强清无效。
    预测市场资产有其及抵押物的活跃市场。
    赞同预测意味着你将要买入预测市场资产,不赞同预测意味着你将要借入预测市场资产并将其出售。
    市场预测资产的判定结束由强制全局清算完成,全局清算的价格由发行人给出。
    在判定结束(全局清算)后,如果预测被证明为真(全局清算价格是 1),预测市场资产持有者会快速的将其强清并得到同等数量的基础抵押物。
    在判定结束(全局清算)后,如果预测被确认为错(全局清算价格是 0),债仓所有者将自动获得在头寸中被锁定的全部抵押物。

    '},43021:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    DEX去中心化交易所简介

    BitShares 去中心化交易所(简称DEX)允许用户在BitShares系统中直接进行数字商品的交易。

    去中心化交易所相对于传统的中心化交易所拥有很多优势,文档中对其中一些特性进行简单介绍。BitShares DEX拥有的众多特性,用户可以根据自身需求来选择利用全部或者部分功能。

    • 权力分离: 由同一个实体来发行资产(IOU)和处理订单是不合理,也是不必要的。在BitShares系统中,订单撮合是由网络协议执行,并不关心相关资产的内涵。
    • 全球整合的买卖盘: 全世界任何人只要能访问互联网就能访问BitShares,并使用DEX进行交易。这使得全球的流动性汇聚到同一个去中心化的买卖盘市场。
    • 交易几乎任何标的: BitShares DEX可交易的资产是不受限的。你可以交易任何交易对。尽管有些交易对市场深度可能很低,比如白银:黄金(SILVER:GOLD),而有些交易对则会非常活跃,交易量很大,比如外汇交易美元:欧元(USD:EUR)。
    • 乐趣无限: BitShares协议将无法限制你的交易体验。
    • 去中心化: DEX在全球都是去中心化的。这不仅意味着不存在单点失败,而且BitShares交易所全年无休,7/24开放交易,因为任何时间,在世界上总有一个地方是白天交易时间。
    • 安全性: 你的资金和交易订单都由工业级别的椭圆曲线加密算法进行加密保护。没有人能够在未经你许可的情况下访问这些信息。我们还为用户提供了担保和多重签名机制进一步提高安全性。
    • 快捷: 与其他去中心化网络相比,BitShares DEX可以实现实时交易,速度仅受制于光速和地球的大小。
    • 可自证的订单撮合算法: 使BitShares DEX独一无二的是可自证的订单撮合算法。给定的一组交易订单,你总是可以验证这些订单是被正确的撮合,而不存在欺诈。
    • 抵押担保的智能资产(Smartcoins): BitShares一个最重要的特性是智能资产(smartcoins),比如比特美元(bitUSD)、比特欧元(bitEUR)、比特人民币(bitCNY)等等。为了方便起见,系统中这些资产直接已美元(USD),欧元(EUR),人民币(CNY)表示。这些数字资产代表其对应物理货币的价值。钱包中的1比特美元等价于$1,可自由兑换。这些数字资产由BitShares公司股份(BTS)冻结抵押进行担保,并可按市价进行清算。
    '},25432:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    卖空比特资产

    为了看多BTS,并且为比特资产,比如USD, EUR, GOLD等提供市场深度,你可以从网络借入比特资产,并且卖出。我们来介绍下相关步骤。

    借入

    BitShares网络能够发行比特资产,并借给用户,只要用户能够提供足够的抵押担保。

    • 喂价: 在外部交易所中1BTS的交易价格
    • 维持保证金比率 (MCR): 由见证人维护并调节的起始抵押比率
    • 最大强制平仓比率 (MSQR): 由见证人维护并调节的最大强制平仓比率以保护空头围堵。
    • 强制平仓保护价 (SQP): 指定一个空头头寸被强制平仓支付最多时的价格
    • 强制平仓价 (CP): 将触发空头/贷款头寸强制平仓的价格

    强制平仓

    BitShares网络可以强制平仓那些抵押不足的空头仓位。任何时候,如果空头仓位抵押物的市场最高买价低于强制平仓价(CP),且高于强制平仓保护价(SQP)时将触发强制平仓,空头仓位将被强制卖出抵押物。

    SQP = 喂价 / MSQR\nCP = 债务价值 / 抵押物价值 * MCR

    强制平仓发生时,将用抵押物按市场价格(最高到SQP价格)买入之前接入的比特资产,进行平仓。剩余的抵押BTS将会归还用户。

    清算

    比特资产的持有人可以随时要求按公允价格进行清算。清算发生时将关闭抵押率最低的空头/借贷头寸,卖出抵押物已完成清算。

    卖出

    借入比特资产后,用户可以随时在市场上以自己意愿的价格卖出。卖出后,用户即实现了卖空该比特资产的目的。

    更新抵押率

    任何时间,持有空头/借贷头寸的用户可以修改抵押率来灵活地适应市场变化。如果调高抵押率,则额外的BTS将被锁定以增加抵押,而调低抵押率则要求用户返还网络相应差额数量的比特资产。

    平仓

    空头/借贷头寸平仓时,用户必须持有相应借入的比特资产,以返还网络。网络将相应数量的比特资产从流通供给中去除,并解锁抵押物返还用户账户。

    '},52182:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    交易

    文本将介绍在BitShares DEX去中心化交易所系统中使用的一些术语,以及交易对的呈现方式。

    交易对

    在BitShares系统中,任何资产之间都可相互交易。我们选取任意2种资产,它们就形成了市场交易对。比如,我们可以使用美元USD与欧元EUR在USD:EUR交易对市场中进行交易。

    为了与外汇交易习惯统一,交易对中的资产标准化为 基础资产报价资产,表现形式如下:

    *报价资产* : *基础资产*

    比如基础资产为USD和报价资产为EUR的交易对表现为EUR:USD。

    买卖盘

    买卖盘由买盘卖盘构成。由于交易对并无固定的顺序,所以可以进行反转,下表展示了买盘和卖盘对应的资产买、卖操作:

    方向
    报价资产 基础资产
    基础资产 报价资产
    -------- --------- ---------

    显然在 USD:EUR 交易对的买方即为 EUR:USD 交易对的卖方。价格在系统内部自动转换,在交易对反转时也能正确转换。

    交易

    下单时,需要填写买单卖单表单(对应希望的买入卖出)。你需要填写打算买入或卖出的价格数量。订单总额将自动计算。下单时可能需要支付额外的手续费。

    一旦订单被撮合(比如你的订单被其他人接受),你的账户将存入相应的资产。

    未撮合订单可随时取消。

    '},80111:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    词汇表

    返回索引页

    '},12484:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    Graphene 石墨烯

    BitShares(比特股) 2.0 是一个金融智能合约平台,该平台基于Cryptonomex公司研发的Graphene(石墨烯)技术开发。Graphene(石墨烯)是一个开发工具包,同时也是实时区块链的技术实现。

    本帮助文档旨在提供用户一个系统概述,并解释系统中的一些基本概念。

    简介

    账户

    资产

    去中心化交易所


    词汇表

    '},77794:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    备份

    我们建议你经常备份你的钱包,尽管在绝大多数情况下备份一次已经足够。需要注意的是,从备份中恢复钱包数据时,由于备份是加密保存的,你需要提供创建钱包时使用的密码进行解密才能恢复。所以,如果你丢失了钱包文件或者忘记了你的密码,你将无法访问钱包中的资金!

    备份功能可以通过钱包管理界面进行操作(设置->钱包)。

    钱包导出

    最便捷的备份方式是通过钱包管理界面提供的操作按钮进行钱包导出。请妥善保存你的备份文件,防止遗失、被盗或自然灾害。

    脑钱包密钥 (仅高级用户适用)

    如果你从未手动导入过账户私钥进入过你的钱包,那么你还可以选择通过导出脑钱包密钥进行备份。脑钱包密钥是一长串由单词组成的字符串,通过它钱包软件可进行确定性重算恢复你的账户私钥。

    多层级职权实体 (仅高级用户适用)

    如果你使用了多层级职权实体功能(设置了账户权限/活跃权限),那么只是备份你自己的钱包是不够的。还需要相关的被授权的职权实体的密钥也被安全备份。请阅读关于多层级职权实体的更多内容。

    '},51341:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    BitShares (比特股)

    Graphene (石墨烯) 旨在实现一种区块链技术协议。然而,与具体的区块链整合后,比如 BitShares (比特股),它逐渐进化为一种生态系统。

    BitShares 不断寻求拓展区块链应用技术创新,为所有通过互联网提供服务的行业提供基础支持。无论是银行、证券交易、博彩、投票、音乐、拍卖或其他很多行业,一个数字公共账簿使得分布式自治公司(简称DACs)的创建相对于传统的中心化的方式成本更低,从而带来更佳的服务质量。

    分布式自治公司的出现引领了一种崭新的公司组织结构的变革,公司不再需要"人类"的管理,并在一系列不可腐化的业务规则下运行。

    这些运营规则编码入公开可审计的开源软件系统中,分布运行于公司股东用户的电脑中,从而保证公司的运作不受独断控制。

    BitShares 为商业而生,如同 Bitcoin 为货币而生。两者皆采用分布式共识机制来创建与生俱来的具有全球性、透明性、可信赖的、更高效的系统,更重要的是能为企业带来更多利润。

    钱包软件

    通过在浏览器中运行本钱包软件,你可以使用 BitShares 网络提供的各种服务和功能,包括但不限于 比特资产用户发行资产去中心化交易所.

    '},94510:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    区块链

    与大多数数字货币类似,Graphene (石墨烯) 使用区块链来记录参与者的转账信息及市场行为。由于每个区块总是指向前一个区块,我们获得一个区块链条包含了所有在网络上发生的交易信息。区块链是一个公开的,可审计的账簿,每个人都能够查看详细数据,并验证交易、市场订单和买卖盘数据。

    当然,本钱包软件内置了一个区块链浏览工具,帮助你进行数据查看和审验。

    共识机制

    由谁在什么时间来打包生成区块是由被称为Delegated Proof of Stak (DPOS)的共识算法决定的。算法的本质是 BitShares 的股东(BTS的持有者)能通过投票来决定他们期望的块打包者。由获得最多票数的所谓"见证人"来打包生成区块。

    交易

    Graphene (石墨烯) 区块链技术提供了多种交易类型。用户不仅可以相互进行简单的资产转账,还能与去中心化交易所进行交互。大多数交易类型可通过字面意思理解,其他的则要求对系统的内部运作机制有较深的理解。

    '},40835:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    桥接及网关服务

    桥接和网关服务帮助用户进行数字资产的充值和提现活动。但这两种服务模式有些不同。

    桥接: 无需信任的模式

    桥接服务运行用户存入一定数量的BTS以外的数字货币(资产),并获得相应的智能锚定货币(SmartCoin)。锚定货币没有对手方风险。所以这种模式下,用户面对的风险仅在于充值期间一小段时间的风险。这相对于比中心化的交易所的充值方式安全得多,因为中心化交易所总是面临各种黑客攻击或者其他管理漏洞而导致丢币的风险。

    网关: 需要信任的模式

    网关模式下基本上就和传统的交易所运作模式相似,依赖于交易所的偿付能力。网关发行资产,一般以网关品牌作为前缀,比如OPEN,TRADE或是META。这些资产由用户存入网关的对真实应资产背书,比如BTC,ETH等。

    OPEN.BTC理论上和你充值到一般中心化交易所,比如Poloniex的BTC一样,可以记作POLO.BTC。你都将依赖网关对你的数字资产进行兑付。

    '},30265:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    理事会

    理事会由一组股东投票通过的理事会成员组成,理事会成员的职责在于设定系统运行参数。其中包括:

    • 转账及交易手续费
    • 区块链参数,比如区块大小,区块生成时间间隔,等等
    • 推荐及冻结/解冻参数,比如奖励返现比例和冻结时间等
    '},29706:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    钱包软件

    你或许已经注意到,本应用是一个基于web的应用软件,在浏览器中运行。通过与一个受信任的节点连接来获得整个生态系统的接入。

    钱包安全性

    你可以确信的是我们的服务器永远不会也不能访问你的资产。你的私钥不会离开你的本地浏览器。它们使用你的密码进行加密后保存在本地浏览器的数据库中。因此,你只需要确保你已经备份了钱包,就不用担心由于计算机失灵或者浏览器奔溃导致钱包数据丢失。

    钱包管理

    钱包系统的用户界面允许你使用多个独立的钱包,每个钱包可能包含相互独立的账户和资金。你可以通过设置->钱包菜单进行创建、备份和切换钱包的操作。

    '},8399:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    见证人

    见证人是为区块链打包生成新的区块的实体。每一个见证人由股东批准,打包经验证的交易,生成并签署区块。每一条进入网络的交易最终将被所有见证人验证。

    共识机制

    由谁在什么时间来打包生成区块是由被称为Delegated Proof of Stak (DPOS)的共识算法决定的。算法的本质是 BitShares 的股东(BTS的持有者)能通过投票来决定他们期望的块打包者。由获得最多票数的所谓"见证人"来打包生成区块。

    '},15357:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    预算项目

    预算项目期望通过提供服务来从区块链获得奖金的工作项目提案。一项提案包含至少以下信息:

    • 开始和结束时间
    • 每日支付预算
    • 预算上限

    它还应该包含一个指向网页或论坛帖子的链接,以详细介绍工作项目内容。

    针对预算项目,投票人可以选择支持或者反对。

    预算项目支付机制

    预算项目每天收到的金额来自一个金额固定的每日预算池,根据票数多寡排序进行分配,知道每日预算池中资金耗尽。举一个例子:

    • 每日预算池总额为400K BTS
    • 有5个预算项目符合条件(支持票多余反对票),他们都要求每天获得100K BTS的预算支持。

    那么得票较多的4个项目将每天获得100K BTS的支付,但是由于付完这4各项目,每日预算池中已无资金剩余,那么第五个项目受付金额则为0。

    '},86602:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});const s='

    目录

    '},48434:(e,t,a)=>{var s={"./src/lzma_worker.js":50704};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=48434},71146:(e,t,a)=>{"use strict";a.r(t)},81705:(e,t,a)=>{"use strict";a.r(t)},64:(e,t,a)=>{"use strict";a.r(t)},40795:(e,t,a)=>{var s={"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":39901,"./es-us.js":39901,"./es.js":55655,"./fr":15596,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":15596,"./gom-deva":27884,"./gom-deva.js":27884,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./ko":33730,"./ko.js":33730,"./ru":21793,"./ru.js":21793,"./tr":72397,"./tr.js":72397,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=40795},80888:(e,t,a)=>{var s={"./de":51738,"./de.js":51738,"./es":32820,"./es.js":32820,"./fr":54206,"./fr.js":54206,"./index":90561,"./index.js":87603,"./it":78398,"./it.js":78398,"./ja":63151,"./ja.js":63151,"./kde":33026,"./kde.js":33026,"./ko":4187,"./ko.js":4187,"./kok":92030,"./kok.js":92030,"./ru":51949,"./ru.js":51949,"./ses":89754,"./ses.js":89754,"./tr":88495,"./tr.js":88495,"./zh":13655,"./zh.js":13655};function n(e){var t=r(e);return a(t)}function r(e){if(!a.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}n.keys=function(){return Object.keys(s)},n.resolve=r,e.exports=n,n.id=80888},40564:e=>{e.exports=''},24401:e=>{e.exports=''},22695:e=>{e.exports=''},97609:e=>{e.exports=''},88751:e=>{e.exports=''},35371:e=>{e.exports=''},83160:e=>{e.exports=''},30305:e=>{e.exports=''},36942:e=>{e.exports=''},4401:e=>{e.exports=''},60004:e=>{e.exports=''},80870:e=>{e.exports=''},13405:e=>{e.exports=''},45140:e=>{e.exports=''},21764:e=>{e.exports=''},43695:e=>{e.exports=''},95882:e=>{e.exports=''},82458:e=>{e.exports=''},22862:e=>{e.exports=''},94563:e=>{e.exports=''},47794:e=>{e.exports=''},67027:e=>{e.exports=''},65437:e=>{e.exports=''},30270:e=>{e.exports=''},69052:e=>{e.exports=''},96860:e=>{e.exports=''},1326:e=>{e.exports=''},19431:e=>{e.exports=''},83870:e=>{e.exports=''},18864:e=>{e.exports=''},77051:e=>{e.exports=''},56609:e=>{e.exports=''},83662:e=>{e.exports=''},77552:e=>{e.exports=''},66414:e=>{e.exports=''},54383:e=>{e.exports=''},18581:e=>{e.exports=''},82266:e=>{e.exports=''},24481:e=>{e.exports=''},11808:e=>{e.exports=''},9389:e=>{e.exports=''},38078:e=>{e.exports=''},30208:e=>{e.exports=''},11615:e=>{e.exports=''},15888:e=>{e.exports=''},17325:e=>{e.exports=''},91702:e=>{e.exports=''},81242:e=>{e.exports=''},82728:e=>{e.exports=''},1673:e=>{e.exports=''},27791:e=>{e.exports=''},29908:e=>{e.exports=''},71372:e=>{e.exports=''},51498:e=>{e.exports=''},10785:e=>{e.exports=''},7058:e=>{e.exports=''},63114:e=>{e.exports=''},22765:e=>{e.exports=''},90874:e=>{e.exports=''},10411:e=>{e.exports=''},84185:e=>{e.exports=''},15146:e=>{e.exports=''},35479:e=>{e.exports=''},42641:e=>{e.exports=''},99200:e=>{e.exports=''},93603:e=>{e.exports=''},7649:e=>{e.exports=''},17047:e=>{e.exports=''},20153:e=>{e.exports=''},60740:e=>{e.exports=''},79006:e=>{e.exports=''},95459:e=>{e.exports=''},20044:e=>{e.exports=''},40293:e=>{e.exports=''},5972:e=>{e.exports=''},80530:e=>{e.exports=''},77814:e=>{e.exports=''},62075:e=>{e.exports=''},48637:e=>{e.exports=''},42083:e=>{e.exports=''},72007:e=>{e.exports=''},36225:e=>{e.exports=''},74477:e=>{e.exports=''},30821:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});const s="data:image/png;base64,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"},47835:(e,t,a)=>{"use strict";function s(){return new Worker(a.p+"AddressIndexWorker.7ff9cb22f53b9e482cdf.worker.js")}a.d(t,{Z:()=>s})},81895:(e,t,a)=>{"use strict";function s(){return new Worker(a.p+"AesWorker.23768d94b8d19c7e4064.worker.js")}a.d(t,{Z:()=>s})},42480:()=>{},69386:()=>{},31616:()=>{},24654:()=>{},7116:()=>{},90561:()=>{},87603:()=>{},83954:()=>{},69862:()=>{},40964:()=>{},36079:e=>{"use strict";e.exports=JSON.parse('{"account":{"accounts":"Accounts","activity":"Activity","advanced":"Advanced","as_collateral":"Collateral","asset":"Asset","asset_details":"Asset details","average_price":"Average price","bittrex_scam":"This account is not the real Bittrex account, please send to this account: bittrex-deposit.","bts_market":"Market","cancel_orders":"Cancel orders","collaterals":"Margin Positions","confirm_asset_modal":{"are_you_sure":"Are you sure you want to save all changes to these tabs?","header":"Confirm multiple changes"},"connections":{"black":"Blacklisted by","known":"Known by"},"contacts":"Contacts","create_account":"Create account","create_new":"Create A New Account","credit_offer":"Credit Management","deactivate_suspicious_proposals":"Hide approve for suspicious proposals","deposit":"Deposit BTS","deposit_address":"Your deposit address is your account name","deposit_withdraw":"Deposit/Withdraw","download_history":"Download History","eq_value":"Estimated","eq_value_header":"Value ({asset})","errors":{"invalid":"Invalid account name","memo_missing":"You do not have control of the memo key for this account. In order to use a memo, please set the account memo key to a key you control using the Permissions page.","not_found":"The account %(name)s does not exist, are you sure you spelled it correctly?","not_yours":"Not your account","unknown":"Unknown account"},"estimate_value":"Estimated Account value","existing_accounts":"Existing Accounts","existing_user":"Existing user","export_modal":{"coinbase_report":"CoinTracking.info Report","description":"Enter your desired elastic search instance and click the report type","full_report":"Full Report","title":"History Export","use_custom":"Use custom wrapper"},"filter_orders":"Filter...","follow":"Add contact","group_by_asset":"Group by asset","hidden_accounts_row":"Hidden Accounts","hide_hidden":"Active","hide_ignored":"Hide hidden accounts","history":"History","history_error":"Failed to download the account history, please try again","home":"Home","hour_24":"24hr Change","hour_24_short":"24hr","id":"Account ID","identicon":"Identicon","ignore":"Hide","inCollateral":"In Collateral","inOrders":"In Orders","inVestingBalances":"In Vesting Balances","in_open":"This is the amount of %(asset)s you have in open orders.","in_open_value":"This is the estimated value of the %(asset)s you have in open orders.","intro_text_1":"Your Decentralized Platform","intro_text_2":"The DEX is inherently decentralized, enabling you to trade the BitShares core token (BTS) and a range of trustless price-stable, market-pegged assets such as bitUSD, bitCNY, bitBTC, bitGold and more. These assets can all be traded with zero counter-party risk, putting you in total control of your funds.","intro_text_3":"The DEX also enables creation of user-issued assets (UIAs), which can be traded against any other UIAs or trustless assets on the platform. One well-known asset owner on The DEX is OpenLedger, offering a host of assets including BTC, ETH, STEEM, DASH, LTC, DOGE, and many more","intro_text_4":"This gives cryptocurrency traders a unique blend of traditional and decentralized trading, all in a familiar exchange interface. Happy trading!","intro_text_title":"Welcome to %(wallet_name)s","liquidity_pools":{"alert_asset_a":"ID of ASSET A should be greater than ID of ASSET B","alert_asset_b":"ID of ASSET B should be smaller than ID of ASSET A","alert_request_input_asset_a":"Please select ASSET A","alert_request_input_asset_b":"Please select ASSET B","alert_request_input_pool":"Please select pool","alert_request_input_taker_fee":"Please input taker fee","alert_request_input_unstack_fee":"Please input unstacke fee","alert_taker_fee":"","alert_unstack_fee":"","asset_a":"Asset A","asset_a_balance":"Asset A Balance","asset_b":"Asset B","asset_b_balance":"Asset B Balance","create_pool":"Create Pool","delete":"Delete","liquidity_pools":"Liquidity Pools","pool_balance":"Pool Balance","pool_name":"Pool Name","stake_status":"Stake/Unstake","taker_fee":"Taker Fee","title":"Pools","unstake_fee":"Unstake Fee"},"login_with":"Login with","market_actions":"Market actions","market_orders":"Market orders","market_value":"Market Value","member":{"action":"Action","annual":"Annual subscriber","available":"Available to claim","balance_type":"Type","basic":"Basic member","cashback":"Vesting balance amount","claim":"Claim now","coindays":"coin days","days":"days","earned":"Coin days earned","expires":"expires","fee_allocation":"Fee Allocation","fee_division":"Fee Division","fee_division_text":{"paragraph_1":"Every time %(account)s pays a transaction fee, that fee is divided among several different accounts. The network takes %(fee_share_network)s%. The Lifetime Member who referred %(account)s takes %(fee_share_ltm)s%.","paragraph_2":"The registrar is the account that paid the transaction fee to register %(account)s with the network and decide how to divide the remaining %(fee_share_registrar)s% between themselves and their own Affiliate Referrer program. %(account)s\'s registrar chose to share %(fee_share_affiliate)s% of the total fee with the Affiliate Referrer.","paragraph_3":"Fee shares, market rewards and other rewards is found on the Vesting Balances page"},"fee_pending":"Pending Fees","fee_pending_text":"Fees paid by %(account)s are divided among the network, referrers, and registrars once every maintenance interval (%(maintenanceInterval)s seconds). The next maintenance time is %(nextMaintenanceTime)s.","fee_vesting":"Vesting Fees","fee_vesting_text":"Most fees are made available immediately, but fees over %(vestingThresholdAmount)s %(vestingThresholdAsset)s (such as those paid to upgrade your membership or register a premium account name) must vest for a total of %(vestingPeriod)s days.","fees_cashback":"Fee statistics","fees_paid":"Total fees paid","join":"Joined on","lifetime":"Lifetime member","lifetime_referrer":"Lifetime Referrer","lifetime_title":"Earn cashback","membership":"Membership","membership_expiration":"Membership Expiration","network_percentage":"Network","ref_distribution":"Referral Fee Distribution","referal_fees":"Referral Fee Distribution","referral_info":"As a lifetime member (LTM) you are eligable for a %(feesCashback)s% cashback on all your fees. You will also recieve cashback from markets with a referral reward. The referral reward is based on your own and your referred members market orders.","referral_link":"Your personal referral link","referral_text":"Give this link to people you want to refer to %(wallet_name)s","referrals":"Referrals","referrer":"Affiliate Referrer","registrar":"Registrar","remaining":"Days left of vesting period","required":"Coin days required","rewards":"Cashback Rewards","stats":"Membership stats","subscribe":"Buy Annual Subscription","suspected_scammer":"Suspected Scammer","total_ref":"Total referred %(total)s","unknown":"Unknown member","upgrade_lifetime":"Buy Lifetime Subscription","vested":"Vested"},"mine":"My account","more":"see more","name":"Account name","name_input":{"name_is_taken":"Account name is already taken.","not_found":"Account not found.","premium_name_faucet":"This is a premium name which is not supported by this faucet. Please enter a regular name containing least one dash, a number or no vowels.","premium_name_warning":"This is a premium name which is more expensive than a name containing a dash (-) or a number."},"new_user":"New user?","no_order_history":"No order history","no_orders":"No open orders","no_price":"--","no_trades":"No last trades","open_orders":"Open Orders","optional":{"formatter":"Optionally, {restore_link} or create an account using the {restore_form}.","restore_form":"advanced form","restore_link":"restore your account"},"options":{"memo_key":"Memo Key","num_committee":"Desired Committee Members","num_witnesses":"Desired Witnesses"},"orders":"Orders","other_scam":"This account is not known to be an official account, please verify the destination before transferring","overview":"Overview","password_login":"Login with password","pay":"Send to","pay_from":"Pay with account","payees":"Payees","percent":"% total supply","perm":{"account_name_or_key":"Account name or key","acct_or_key":"Account / Key / Address","action":"Action","active":"Active Permissions","add":"Add Permission","add_permission_label":"Enter account name/key and weight","brain":"Brainkey position","cancel":"Cancel","confirm_add":"Add","create_paperwallet":"Create Paper Wallet","create_paperwallet_private_hint":"Unlock/Login before creating the paper wallet to include private keys","from":"Imported from account","key":"Key/Name","key_viewer":"Private key viewer","memo_key":"Memo key","memo_public_key":"Memo Public Key","memo_warning":"WARNING: If you replace the memo key you will be unable to read old memos when logging in with your password, and unless you import the new memo private key into your old wallet that wallet will be unable to decode new memos","new_active":"New active key","new_memo":"New memo key","new_owner":"New owner key","owner":"Owner Permissions","password_model":"Cloud Wallet","password_model_1":"If you want to be able to login from anywhere using only your password and account name, you can use this page to add new keys to your permissions. If you also want to remove the original keys, you can do so in the active/owner permissions tabs.","password_model_2":"Add password generated keys","private":"Private key (WIF - Wallet Import Format)","public":"Public key","publish":"Save","publish_prediction":"Publish","remove_proxy":"Remove proxy","remove_text":"Remove","reset":"Reset","resolve_prediction_disabled_button":"The button will be enabled after resolution date has passed","save":"Save Changes","save_all":"Save All Changes","show":"Show","sign_owner":"Sign as owner","threshold":"Threshold","type":"Type","use_text":"Use","valid_pub":"Valid Public Key","warning1":"Active permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s","warning2":"Owner permissions weights total of %(weights_total)s should be equal or exceed threshold of %(threshold)s","warning3":"Account is already in the list","warning4":"Key is already in the list","weight":"Weight"},"permissions":"Permissions","please_create_account":"Please create an account","polo_scam":"This account is not the real Poloniex account, please send to this account: poloniexwallet.","portfolio":"Balances","propose_from":"Propose From","proposed_transactions":{"advanced_feature":"This is an advanced feature. Please answer the following questions","answered_no":"If your answer to any of the questions above is no, do NOT continue. You can also turn this on and off in Settings.","question1":"Do you know what a proposal is?","question2":"Are you expecting a proposal?","question3":"Are you aware that a proposal can steal your funds or lock you out of the account?","show_me_proposals":"Show me Proposals"},"qty":"Qty","quote":"Quote","recent":"Recent activity","reset_orders":"Reset","restore":"Restore","search":"Search for an account","see_open":"See open orders","select_placeholder":"Select Account...","settle":"Settle","settle_orders":"Settle orders","show_hidden":"Hidden","show_ignored":"Show hidden accounts","show_visual":"Visual","signedmessages":{"automaticcreation":"Signed message will be created automatically","copysuccessful":"Signed message copied to clipboard","copyunsuccessful":"Failed to copy message","entermessage":"Enter message here","errorverifying":"An error occured while verifying the message","invalidformat":"Signed message format can\'t be recognized","invalidkey":"Private key could not be obtained, is the public key valid?","invalidsignature":"The content of the message could not be validated against the signature","invaliduser":"Account of the message sender is invalid","keymismatch":"Given public key of the sender doesn\'t to the one stored in the senders account","menuitem":"Signed Messages","sign":"Sign","signing":"Signing, please wait ...","signmessage":"Sign Message","title":"Signed Messages","verify":"Verify","verifying":"Verifying, please wait ...","verifymessage":"Verify Message","verifyonchange":"Verify while typing"},"start_typing_to_search":"Start typing to search for accounts","submit_orders":"Submit","total":"Total ({asset})","total_estimate":"This is the estimated value of all your assets, including any hidden assets, open orders, debt and collateral. The estimate is done using only live blockchain data and may not be perfectly accurate.","total_value":"Total value","trade":"Trade","transactions":{"fee":"Fee","id":"ID","info":"Info","time":"Time","type":"Type"},"transfer_actions":"Transfer actions","unfollow":"Remove contact","unignore":"Unhide","upgrade":"Upgrade account","user_issued_assets":{"add_feed":"Add new feed producer","advanced":"Advanced features","approx_fee":"Approximate fee","backing":"Short backing asset","base":"Base asset amount","base_name":"Base asset","bitasset_opts":"SmartCoin options","cer_warning_1":"Warning","cer_warning_2":"Make sure your core exchange rate is higher than the market price, otherwise people will buy your token from the market and drain your fee pool via implicit arbitrage. The core exchange rate should be updated regularly to reflect market pricing of your asset.","charge_market_fee":"Enable market fee","committee_fed_asset":"Allow committee members to provide feeds","condition":"Condition (max 60 characters)","conflict_feed":"Cannot allow witnesses and committee members to provide feeds simultaneously","core_exchange_rate":"Core exchange rate","current_issuer":"Current owner account","decimals":"Number of decimal points","description":"Description","details":"Details","disable_bsrm_update":"Disable owner update BSRM","disable_collateral_bidding":"Disable collateral bidding","disable_confidential":"Disable confidential transactions","disable_force_settle":"Disable force settling","disable_icr_update":"Disable owner update ICR","disable_mcr_update":"Disable owner update MCR","disable_mssr_update":"Disable owner update MSSR","disable_new_supply":"Disable new supply","error_invalid":"That asset may not be used","error_precision":"That asset does not have the same precision as %(asset)s","error_too_deep":"May not create a bitasset backed by a bitasset backed by a bitasset","exists":"That asset already exists","expiry":"Market resolution date","feed_lifetime_sec":"Feed lifetime in minutes","feed_not_allowed_1":"Cannot set feed producers on a witness- or committee-fed asset","feed_not_allowed_2":"Please disable the flags called \'Allow witnesses to provide feeds\' and \'Allow committee members to provide feeds\' in order to allow manual definition of feed producers","feed_producers":"Feed producers","flags":"Flags","force_settlement_delay_sec":"Delay for forced settlements (minutes)","force_settlement_offset_percent":"Percent offset of forced settlements","global_settle":"Allow asset owner to force a global settling","id":"ID","invalid_backing_asset_change":"You can\'t change the backing asset of an asset that has a non-zero current supply","invalid_market_pair":"Preferred market pairing can not be the same market","invalid_permissions_change":"You can\'t enable a permission for an asset that has a non-zero current supply","issued_assets":"Issued Assets","lock_max_supply":"Lock max supply","market":"Preferred market pairing","market_fee":"Market fee","max_market_fee":"Max market fee","max_positive":"Max supply should be a positive number","max_supply":"Maximum supply","maximum_force_settlement_volume":"Max force settle volume (percent of total supply per hour)","minimum_feeds":"Minimum number of feeds","mpa":"SmartCoin","name":"Asset Name","need_asset":"At least one of the two assets must be %(name)s","new_issuer":"New asset owner account","optional":"Optional settings","override_authority":"Asset owner may transfer asset back to himself","perm_warning":"WARNING: Permissions may only be disabled, once disabled they may not be reactivated!!","pm":"Binary prediction market","precision":"Precision","precision_warning":"Warning: The number of decimals may not be changed after creation","primary":"Primary settings","quote":"Quote asset amount","quote_name":"Quote asset","resolve_prediction":"Resolve prediction","resolve_prediction_text":"The asset prediction can be resolved here.","reward_percent":"Reward percent","reward_percent_tooltip":"If a market fee is set, the reward percent indicates how much of that market fee is shared through the referral rewards program instead of only benefitting the asset owner.","short":"Short name (max 32 characters)","symbol":"Symbol","taker_fee_percent":"Taker Fee percent","taker_fee_percent_tooltip":"If taker fee is set, the taker percent indicates how much percent is shared with the asset owner.","to":"Issue to account","too_large":"That max supply is too big, please choose a smaller number","too_many_feed":"Number of feed producers exceeded the max allowed (%(max)s).","transfer_restricted":"Asset owner must approve all transfers","update_owner":"Update owner","update_owner_text":"The asset owner may change the owner to another account using this form:","visible":"Hide asset from search and markets","white_list":"Require holders to be white-listed","witness_fed_asset":"Allow witnesses to provide feeds"},"vesting":{"balance_number":"Balance #%(id)s","explain":"Vesting balances contain any fees earned through the referral program or from worker pay, for example. They have a certain vesting period and are continually unlocked during that vesting period until all of the balances are available","no_balances":"This account has no vesting balances","title":"Vesting balances","type":{"cashback":"Cashback","market_fee_sharing":"Market fee sharing","unspecified":"Unspecified","witness":"Witness","worker":"Worker"}},"votes":{"about":"About","active":"Active (%(count)s)","active_short":"Active","add_committee":"Add","add_committee_label":"Committee Member","add_witness":"Add","add_witness_label":"Witness","already":"Account is already in the list","approve_worker":"Approve","cast_votes_through_one_operation":"Cast your votes for witness, committee and workers and broadcast them together.","clear_proxy":"Remove proxy","cm_approved_by":"Committee members approved by %(account)s","cm_not_approved_by":"Committee members not approved by %(account)s","committee":"Committee member name","create_worker":"Create a new worker","creator":"Creator","daily":"daily","daily_pay":"Daily Pay","end":"End date","expired":"Expired","funding":"Funding","go_proxy":"Go to","hide_legacy_proposals":"Hide Legacy Proposals","inactive":"Backup","info":"Info","join_committee":"Join committee","join_witnesses":"Join Witnesses","update_witness":"Update Witness","line":"Line","max_pay":"Maximum total pay","missing":"Needed","name":"Name","new":"Proposed (%(count)s)","no_proxy":"No Proxy","polls":"BSIPs/Polls (%(count)s)","proxy":"Manually enter an account as your proxy","proxy_current":"Your current proxy is","proxy_known":"Or choose an account as your proxy","proxy_short":"Proxy","publish":"Save","recycled":"Recycled","reject_worker":"Reject","remove_committee":"Remove","remove_witness":"Remove","save_finish":"Click save to finish","set_proxy":"Set a proxy here","start":"Start date","status":{"neutral":"Neutral","rejected":"Rejected","supported":"Supported","title":"Status"},"support":"Support","supported":"Supported","threshold":"Votes required to activate","toggle":"Toggle vote","total_budget":"Daily budget","total_votes":"Votes","unclaimed":"Unclaimed pay","unused_budget":"Unused daily worker budget","url":"Webpage","votes":"Votes","votes_against":"Votes against","w_approved_by":"Witnesses approved by %(account)s","w_not_approved_by":"Witnesses not approved by %(account)s","witness":"Witness name","worker_account":"Worker account","workers":"Budget Items","workers_short":"Workers"},"voting":"Voting","welcome":"Welcome to %(wallet_name)s","whitelist":{"add":"Add to whitelist","add_black":"Add to blacklist","black":"Blacklist","black_by":"Blacklisted by","blacklist_authorities":"Blacklist authority","empty":"%(account)s has not whitelisted any accounts.","empty_black":"%(account)s has not blacklisted any accounts.","empty_black_by":"No accounts have blacklisted %(account)s.","empty_white_by":"No accounts have whitelisted %(account)s.","title":"Whitelist","white_by":"Whitelisted by","whitelist_authorities":"Whitelist authority","whitelist_market_fee_sharing":"Market fee sharing whitelist"}},"account_browsing_mode":{"go_back":"Go back to my account","modal_description":"You\'re switching to an account which you don\'t have active authority over. You can browse this account, but in view only mode","modal_title":"View Only Mode","never_show_again":"Never show again","view_mode":"View Mode","you_are_in_browsing_mode":"You\'re in view only mode of the current account. Click here to get back to your account."},"alert":{"warning":"Warning"},"app_init":{"browser":"Unsupported browser","browser_text":"The Browser you are using has not been fully tested to support the %(wallet_name)s Wallet. We highly recommend that you backup your local wallet and import it using the Chrome Browser until we have had more time to fully test your browser of choice. Use at your own risk.","check_latency":"Running latency checks...","check_latency_feedback":"Running latency checks (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_country":"Latency check in best country (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_last":"Latency check for last connected node (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_region":"Latency check in best region (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_rest":"Latency check for remaining nodes (%(pinged)s/%(totalToPing)s nodes)","check_latency_feedback_world":"Latency check in each region (%(pinged)s/%(totalToPing)s nodes)","connected":"Connected","connecting":"Connecting to API server: %(server)s","database":"Connection established, initializing local databases","not_connected":"Not connected","retry":"Retry","title":"Application initialization issues","understand":"I understand","ws_status":"Full node connection status"},"assets":{"BTS":"BTS is the core token of the BitShares Blockchain"},"boolean":{"false":"False","true":"True"},"borrow":{"adjust":"Update position","adjust_short":"Adjust","call_limit":"Market Call Limit","close":"Close position","coll_ratio":"Ratio","coll_ratio_target":"Target Ratio","considered_on_revival":"Included","enable_target_collateral_ratio":"Use Target Collateral Ratio","errors":{"below":"Your collateral ratio is below %(mr)s which is not allowed.","below_info":"Your position is below the required maintenance collateral ratio! Increasing collateral ratio is allowed, debt can only be decreased.","below_mcr_tcr":"Any ratio below %(mr)s will be treated as %(mr)s by chain.","below_ratio_mcr_update":"Your collateral ratio is blow your original %(ocr)s. Only increased ratio is allowed on margin called orders","close":"Your collateral ratio is close to %(mr)s which means this position is in danger of being margin called if the price drops.","collateral":"Insufficient collateral balance","increased_debt_on_margin_call":"You increased your debt, which is not allowed when updating a margin called position"},"lockedCR":"Locking Collateral Ratio will override other locked fields","maximize_debt_set_ratio_slider":"You must set a collateral ratio before being able to maximize debt","no_valid":"No valid feeds for %(asset_symbol)s","pay_max_debt":"Pay Max Debt","target_collateral_ratio":"Target Collateral Ratio","target_collateral_ratio_explanation":"The corresponding order for a margin call will be just big enough, to bring the collateral ratio to the target collateral ratio","target_collateral_ratio_short":"TCR","title":"%(asset_symbol)s Margin","update":"Update","use_max":"Use Max"},"browser_notification_messages":{"money_received_body":"Sent you %(amount)s %(symbol)s","money_received_title":"Transfer from %(from)s"},"cancel":"Cancel","connection":{"automatic_reconnect":" After %(reconnect_in_seconds)s seconds a reconnection attempt will be made automatically.","manual_ping":"Go to ping nodes","manual_ping_and_narrow_down":"Narrow down nodes and ping","manual_reconnect":"Try reconnecting now","narrow_down_nodes":"Narrow down nodes","narrow_down_nodes_tooltip":"Restrict the ping and automatic selection process of the wallet to only the selected nodes/regions. Choose nodes/regions close to your geolocation, this may significantly increase your felt connectivity. Leave empty to consider all.","out_of_sync":"Your connection has been out of sync for %(out_of_sync_seconds)s seconds.","title_out_of_sync":"Connection out of sync","want_to_reconnect":"If the connection can be recovered this message will disappear automatically."},"counterpart":{"formats":{"date":{"full":"%F %T %Z","market_history":"%e/%m %H:%M:%S","market_history_us":"%m/%e %H:%M:%S","short_custom":"%e %b \'%y"}}},"credit_offer":{"accepted_pawn":"Acceptable","account":"Account","active":"Active","add_pawn":"Add collateral","add_whitelist":"Add white account","asset":"Asset","available_amount":"Available","borrow":"Loan","borrow_amount":"Amount","closed":"Closed","create":"Create credit offer","credit_debt_account":"Account","credit_debts":"Credit Debts","credit_offers":"Credit Offers","credit_right_account":"Account","credit_rights":"Credit Rights","current_available_balance":"Current Available Balance","current_balance":"Available","debt":"Debt","edit":"Modify credit offer","estimated_fee":"Estimated fee","fee_rate":"Rate","info_borrow_err":"Can\'t borrow from oneself !","invalid_min_bigger_amount":"Min cannot be bigger than amount","list_repay_period":{"period_-1":"No limit","period_0":"12 Hours","period_1":"1 Day","period_2":"3 Days","period_3":"7 Days","period_4":"30 Days","period_5":"90 days","period_6":"365 days","period_7":"730 days","period_8":"1825 days"},"loan_amount":"Maximum","min_borrow":"Minimum","min_loan_bigger_than_balance":"Min to loan > Total credit offer balance (%(min)s > %(balance)s)","mortgage_assets":"Collateral","my_debt":"My debt","number_is_to_big":"You have used a big number which caused overflow","operate":"Action","operate_delete":"Delete","operate_edit":"Modify","override_authority_warning":"Be careful, this asset has an `override_authority` setting, so the owner of the asset could transfer it back to himself with no agreement","override_authority_warning_p1":"%(symbol)s is controlled by its issuer","override_authority_warning_p2":"Do your own due diligence when using ","pawn_amount":"Amount","plh_input_asset_name":"Enter asset","plh_select_validity_period":"Choose an expiration date","price":"Price","redemption_collateral":"Redeem collateral","repay":"Repay","repay_period":"Repay period","status":"Status","tip_fee_rate":"Expressed as a percentage","tip_pawn_amount":"The amount of collateral required for each unit of assets lent","title_add_pawn":"Add collateral","title_add_whitelist":"Add white account","total_amount":"Total","total_to_repay":"Repay Total","validity_period":"Expiration","whitelist_account":"Account"},"customizable_table":{"customize_the_columns":"Customize the Columns"},"dashboard":{"featured_markets":"Featured Markets","starred_markets":"Favorites","table_empty":"No market matched","top_markets":"Top Markets"},"errors":{"loading_from_blockchain":"Error fetching from the blockchain, please retry.","loading_from_es":"Error fetching from elastic search database."},"exchange":{"actions":"Actions","add_quote":"Add","asks":"Sell orders","atr":"Average True Range","balance":"Balance","base_supply":"Base supply","bids":"Buy orders","borrow":"Borrow","borrow_short":"Borrow","buy":"Buy","buy_description":"Buy %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s","buy_min":"Buy at least","buy_sell":"Order Form","buysell_formatter":"{direction} {asset}","call":"Call Price","cancel_order_select_all":"Select all orders","cancel_selected_orders":"Cancel selected order(s)","change":"Change","chart_error":"Chart already exist","chart_height":"Chart height (pixels)","chart_hide":"Hide Charts","chart_load":"Load","chart_modal":"Chart options","chart_save":"Save","chart_type":"Chart type","checking_for_worth_less_settlement":"Checking if you can get a better price by selling to market, please wait..","confirm_buy":"Your order is %(diff)s times higher than the lowest ask, are you sure?","confirm_no_orders_buy":"You are placing a buy order in a market with no open sell orders. Are you certain you wish to proceed?","confirm_no_orders_sell":"You are placing a sell order in a market with no open buy orders. Are you certain you wish to proceed?","confirm_sell":"Your order is %(diff)s times lower than the highest bid, are you sure?","core_rate":"Fee Rate","custom_quote":"Add a custom quote","deposit":"Deposit","description":"Description","ema":"Exponential Moving Average","enter_chart_layout_name":"Enter Chart Layout Name","featured":"Top Markets","fee":"Fee","feed_price":"Feed Price","filter":"Filter...","flip":"Flip","global_settle":"Global Settlement","group_order_limit":"Group","hide":"Hide","highest_bid":"Highest bid","history":"Market trades","horizontal":"Horizontal","index":"Index","invalid_amount":"Invalid amount","invalid_price":"Invalid price","invert":"Invert the price","latest":"Latest","layout_name":"Layout Name","limit":"Limit","load_chart_layout":"Load Chart Layout","load_custom_charts":"Load custom charts","lowest_ask":"Lowest ask","maintenance":"Maintenance Call Price","market":"Market","market_depth":"Market Depth","market_frozen":"The owner of %(asset)s has disabled trading in this market.","market_name":"My Markets","market_picker":{"filter_by_issuer":"Filter by asset owner","find_by_asset":"Find by asset","results":"Results (%(total_assets)s)","search":"Asset name","search_for_asset":"Search for asset","search_mode":"Mode","show_all":"Show All","sub_title":"Find an asset to replace","title":"Market Picker","use":"Use"},"modified":"Modified","more":"Find markets","move_down":"Move down","move_up":"Move up","my_asks":"My asks","my_bids":"My bids","my_history":"My trades","my_orders":"My open orders","native":"Native","new":"New","no_asks":"No asks","no_balance":"Insufficient balance","no_bids":"No bids","no_data":"No data","no_orders":"No orders","order_book":"Order Book","order_depth":"Market Depth","order_grouping":"Order Grouping %(orderlimit)s%","orders":"Orders","others":"Others","overbought":"Overbought","oversold":"Oversold","panels_mirror":"Mirror Panels","period":"Time period (days)","price":"Price","price_alert":{"add_rule":"add rule","alert_when":"Alert me when","higher_than":"Higher Than","lower_than":"Lower Than","notification":{"higher_than":"The price of %(pair)s rose higher than %(expectedPrice)s and is now %(actualPrice)s","lower_than":"The price of %(pair)s fell lower than %(expectedPrice)s and is now %(actualPrice)s"},"price":"Price","title":"Price Alert","use_button":"Use \\"add rule\\" button to create price alert for "},"price_history":"Price Chart","price_market":"Market Price","quantity":"Quantity","quick_deposit":"Deposit %(asset)s","quick_deposit_bridge":"Use a Bridge to deposit external assets using one of the existing gateways and instantly trade it into %(target)s","quick_deposit_bridge_button":"Use a Bridge","quick_deposit_gateway":"Deposit real %(asset)s using a gateway to obtain IOUs whose backing is provided by the respective gateway","quick_deposit_gateway_button":"Use a Gateway","quick_deposit_tooltip":"Deposit %(asset)s, click to open options","quick_trade":"Quick trade","quick_trade_details":{"amount":"Amount","effective":"effective","feed_price":"Feed price","id":"Id","last_price":"Last market price","liquidity_penalty":"Liquidity penalty","market_fee":"Market fee","order":"Order","orders":"Orders","placeholder_receive":"Choose asset to receive","placeholder_sell":"Choose asset to sell","price":"Price","seller":"Seller","subscribe_to_market":"Subscribe to market","tooltip":"Enter at least three characters of an asset symbol to search","total":"Total","transaction_fee":"Transaction fee","your_price":"Your price"},"quote":"Quote currency:","quote_selection":"Modify quote selection","quote_supply":"Quote supply","receive":"Receive","remove":"Remove","rsi":"Relative Strength Index","save_custom_charts":"Save custom charts","save_new_chart_layout":"Save New Chart Layout ","scaled":"Scaled","search":"Search for more markets here","sell":"Sell","sell_description":"Sell %(baseAsset)s %(baseName)s for %(quoteAsset)s %(quoteName)s","settings":{"header":{"chart_options":"Chart options","general":"General","order_options":"Order Options","panel_grouping":"Panel Grouping","title":"Personalize"},"options":{"grouping_1":"Group 1","grouping_2":"Group 2","grouping_standalone":"Standalone","hidden_chart":"Hide chart","horizontal":"Horizontal","position_order_asset_opt1":"Orderbook above Orderform","position_order_asset_opt2":"Orderform above Orderbook","position_order_form_opt1":"Buy - Sell","position_order_form_opt2":"Sell - Buy","position_order_orders_opt1":"Buy - Sell","position_order_orders_opt2":"Sell - Buy","vertical":"Vertical"},"title":{"chart_height":"Height","chart_tools":"View Tools","chart_type":"Type","chart_zoom":"Allow Zoom","hide_function_buttons":"Hide function buttons","market_location":"Market location","market_trades":"Market Trades","my_trades":"My Trades","open_orders":"Open Orders","order_book_grouping":"Order Book Grouping","order_style":"Style","orderbook_auto_scroll":"Auto scroll","position_order_asset":"Vertical Orders / Asset","position_order_form":"Buy/Sell Asset","position_order_orders":"Buy/Sell Orders","reduce_scrollbars":"Reduce Scroll Bars","reverse_order_book":"Reverse Order Book","settlements":"Settlements","single_colum_order_form":"Single Column Order Form"},"tooltip":{"chart_height":"Define the height of the charts","chart_reload":"Changing this setting will reload the chart","chart_tools":"Shows/Hides the left and top toolbar, as well as the context menu. Tools are always hidden in tiny screen.","chart_type":"Switch between market depth and price charts, or disable charts","chart_zoom":"Allow chart zooming. Zooming is always disabled in tiny screen.","decrease_chart_height":"Decrease the height of the chart","hide_function_buttons":"Hide all buttons that can be managed within the personalize form","increase_chart_height":"Increase the height of the chart","market_location":"Which side to pin the vertical order book on. This will switch place with market panel","market_trades":"","my_trades":"","open_orders":"","order_book_grouping":"Group orders which are close together by a defined percentage","order_style":"Use vertical order book to pin it to the side panel","orderbook_auto_scroll":"Auto scroll orderbook for new orders. Disable to allow scrolling","panel_grouping":"Define panel grouping","position_order_asset":"Define the vertical order for the order form vs order book","position_order_form":"Define the horizontal order for the order form","position_order_orders":"Define the horizontal order for the order book","reduce_scrollbars":"Disable scroll bars by default","reload":"Changing this option will only affect after manually reloading","reverse_order_book":"Reverse order book to have buy orders on top","settlements":"","show_market_depth":"Show market depth","show_price_chart":"Show price chart","single_colum_order_form":"Enforce that Price, Quantity, Total, etc. are in one column (not floating)"}},"settle":"Settlement","settle_better_marketprice":"Market price is in favour","settle_better_settleprice":"Settlement price is in favour","settle_delay":"This asset will settle in %(hours)s hours","settle_delay_globally_settled":"This asset will settle instantly","settle_globally_settled":"Settle instantly","settle_globally_settled_tooltip":"This asset is globally settled. You can settle it instantly for the global settlement price (see exchange header or asset details)","settle_offset":"Settlement price offset: %(offset)s%","settle_orders":"Settle orders","settlement_date":"Settlement date","settlement_description":"Settlement of %(quoteAsset)s %(quoteName)s","settlement_hint":"You are attempting to settle {long}. Current price of {market_link}","settlement_of":"Settlement of","short":"Short","show_all_orders":"Show all %(rowcount)s orders","show_all_trades":"Show all %(rowcount)s trades","show_asks":"Show all asks","show_bids":"Show all bids","show_only_liquid":"Show liquid markets only","show_only_star_formatter":"Show {star_icon} only","sma":"Simple Moving Average","spread":"Spread","squeeze":"Margin Call Price","time":"Candlesticks","to_market":"Go to market","total":"Total","trading_pair":"Trading pair","value":"Value","vertical":"Vertical","vol_short":"Vol","volume":"Volume","volume_24":"24hr Volume","worth_less_settlement_warning":"The current market price of {market_link} is higher than settle price","your_price":"Your Call Price","zoom":"Zoom","zoom_all":"All"},"explorer":{"account":{"title":"Account"},"accounts":{"filter":"Filter accounts","filter_contacts":"Filter contacts","title":"Accounts"},"asset":{"actions":"Asset actions","asset_owner_responsible":"The asset symbol, description as well as its parameters are user defined (by the asset owner)","collateral":{"bid":"Bid Collateral","bid_price":"Bid price","bid_text":"Unfortunately, %(asset)s is in Global Settlement. During this time it is possible to bid on the collateral in the Settlement Fund and the debt it covers. When the total outstanding debt is covered by bids, and the additional collateral of each bid plus its share from the settlement fund is greater than the MCR, the asset is automatically revived and a margin position is created for each bid.","remove_bid":"A bid can be removed by placing a zero collateral bid."},"collateral_bid":{"bid":"Bid Price","collateral":"Additional Collateral","debt":"Debt Covered","empty":"No collateral bids","included":{"no":"No","partial":"Partially","yes":"Yes"},"title":"Collateral Bids"},"cumulative":"Σ","fee_pool":{"accumulated_collateral_fees":"Accumulated collateral fees","claim_balance":"Claim fee pool balance","claim_collateral_fees":"Claim fees","claim_fees":"Claim fees","claim_pool_text":"The asset owner may withdraw funds from the fee pool using this form:","claim_text":"The asset owner may claim any accumulated fees here.","core_exchange_rate":"Core exchange rate (CER)","fund":"Fund the fee pool","fund_text":"Anyone can add %(core)s to the fee pool balance using this form:","pool_balance":"Pool balance","pool_text":"The fee pool is used to pay fees in %(core)s by converting the fee in %(asset)s to %(core)s. If the fee pool runs out of funds, fees may no longer be paid in %(asset)s and will default to %(core)s.

    The core exchange rate is the price at which %(asset)s are converted to %(core)s.","select_fee_asset":"Select asset to pay fee","title":"Fee Pool","unclaimed_issuer_income":"Unclaimed asset owner income","use_asset_as_default_fee":"Make selected asset default for paying fees","use_selected_asset":"Use selected asset"},"feed_producer":"Feed producer","feed_producer_text":"Approved feed producers may publish a new feed using the form below:","info":"Asset info","invalid":"The asset name %(name)s is invalid","margin_positions":{"click_to_switch_to_cumulative":"Click to switch between cumulative and position values","empty":"No margin positions","ratio_danger":"Position is below MCR and will be margin called","ratio_warning":"Position is near MCR and in danger of being margin called","title":"Margin positions"},"not_found":"The asset %(name)s does not exist","permissions":{"accounts_in_whitelist_market_fee_sharing":"Accounts included in Market fee sharing whitelist","blacklist_authorities":"Blacklist authorities","blacklist_markets":"Blacklist markets","max_market_fee":"Max market fee","max_supply":"Max supply","title":"Permissions","whitelist_authorities":"Whitelist authorities","whitelist_markets":"Whitelist markets"},"prediction_market_asset":{"prediction":"Prediction","resolution_date":"Resolution date","tooltip_prediction":"The prediction is a statement defined by the asset owner. If the statement is true, this prediction market asset should be resolved to a settlement price of 1 by the asset owner.","tooltip_resolution_date":"The resolution date is an informal statement when the asset owner intends to resolve this betting market."},"price_feed":{"external_feed_price":"Settlement price (derived from price feeds and other parameters)","feed_lifetime":"Feed lifetime (hours)","feed_price":"Feed price","global_settlement_price":"Global settlement price will be","global_settlement_trigger":"Global settlement happens at price","initial_collateral_ratio":"Initial collateral ratio (ICR)","initial_collateral_ratio2":"Initial collateral ratio (ICR, Set by asset owner)","maintenance_collateral_ratio":"Maintenance collateral ratio (MCR)","maintenance_collateral_ratio2":"Maintenance collateral ratio (MCR, Set by asset owner)","margin_call_fee_ratio":"Margin Call Fee Ratio (MCFR)","maximum_short_squeeze_price":"Maximum short squeeze price (MSSP)","maximum_short_squeeze_ratio":"Maximum short squeeze ratio (MSSR)","maximum_short_squeeze_ratio2":"Maximum short squeeze ratio (MSSR, Set by asset owner)","median_price_feeds":"Median of price feeds","min_feeds":"Minimum feeds","settlement_price":"Force Settlement price","title":"Price Feed"},"price_feed_data":{"core_exchange_rate":"CER","empty":"No valid feed producers","feed_price":"Feed price","initial_collateral_ratio":"ICR","maintenance_collateral_ratio":"MCR","maximum_short_squeeze_ratio":"MSSR","published":"Published","publisher":"Publisher","settlement_price":"Force Settlement Price","title":"Price Feed Data"},"settlement":{"black_swan_response_method":"Global settlement response method (BSRM)","current_settled":"Already settled supply","delay":"Delay","force_settle_fee_percent":"Force settlement fee","force_settlement":"Force Settlement","gs_auto_revive_price":"Auto Revive Price (without/with bids)","gs_collateral_valuation":"Collateral Valuation (with bids)","gs_description":"Unfortunately, this asset is in Global Settlement. During this time there is no delay in asset force settlements, which will be covered by the settlement funds at the fixed settlement price.","gs_included_on_revival":"Bids will be included on revival sorted by their bid price until the whole debt is covered (last bid might be covered partially). Included bids will be converted into margin positions and receive the residual collateral such that the position reaches MCR from the settlement fund. Not included bids will be reimbursed.","gs_or":"or","gs_place_bid":"click here to place a bid","gs_revert":"Reviving","gs_revive":"Asset will be revived automatically if feed price is greater than auto revive price (bids included) or all debt is force settled","gs_see_actions":"see Asset actions","individual_settlement_debt":"Individual settlement debt","individual_settlement_fund":"Individual settlement fund","max_settle_volume":"Max. settlement volume each maintenance period","offset":"offset included","price":"Price","settle_remaining_volume":"Remaining settleable volume","settlement_funds":"Settlement Funds","settlement_funds_collateral_ratio":"Settlement fund collateral ratio","settlement_price":"Force settlement price","title":"Settlement"},"summary":{"asset_type":"Asset type","current_supply":"Current supply","issuer":"Asset owner","market_fee":"Market fee","market_fee_referral_reward_percent":"Market fee referral reward","market_fee_referral_taker_fee_percent":"Taker fee percent","stealth_supply":"Stealth supply"},"title":"Asset","whitelist":{"blacklist_authorities":"Blacklist authorities","blacklist_markets":"Market blacklist","enable_flag":"The whitelist flag must be enabled in order to set whitelist authorities","market_fee_enable_flag":"The market fee flag must be enabled in order to set whitelist","whitelist_authorities":"Whitelist authorities","whitelist_market_fee_sharing":"Market fee sharing whitelist","whitelist_markets":"Market whitelist"}},"assets":{"backing_asset":"Backing asset","blacklisted":"This asset is blacklisted, beware of scam attempts!","id":"ID","issuer":"Asset owner","market":"SmartCoins","precision":"Precision","prediction":"Prediction market assets","symbol":"Symbol","title":"Assets","units":"Units","user":"User Issued Assets"},"block":{"account_upgrade":"Account to upgrade","asset_issue":"Amount to issue","asset_update":"Asset to update","authorizing_account":"Authorizing account","call_limit":"Call limit, %(price)s","common_options":"Common options","count":"Transaction count","date":"Date","fee_payer":"Fee paying account","feed_price":"Feed Price, %(price)s","go_to":"Go to block","gs_support":"Global settlement limit, %(price)s","id":"Block ID","key":"Public key","lifetime":"Upgrade to lifetime member","listed_account":"Listed account","max_margin_period_sec":"Max margin period (s)","new_listing":"New listing","new_options":"New options","new_producers":"New feed producers","next_secret":"Next secret hash","op":"Operation","op_type":"Operation type","previous":"Previous","previous_secret":"Previous secret","settlement_price":"Force Settlement Price","short_limit":"Short limit","time":"Time","title":"Block","transactions":"Transaction count","trx":"Tx","witness":"Witness"},"blocks":{"active_committee_members":"Active committee members","active_witnesses":"Active Witnesses","avg_conf_time":"Average confirmation time","block_time":"Block time","block_times":"Block times","current_block":"Current Block","globals":"Global parameters","last_block":"Last block","recent":"Recent blocks","recently_missed_blocks":"Recently missed blocks","title":"Blockchain","transactions":"# of transactions","trx":"Transaction","trx_per_block":"Trx/block","trx_per_sec":"Trx/s"},"committee_member":{"title":"Committee member"},"committee_members":{"active":"Total number of active committee members","title":"Committee"},"fees":{"fee":"Standard Fee","feeeq":"(equivalent)","feeltm":"Lifetime Member Fee","feeltmeq":"(equivalent)","type":"Fee Type"},"proposals":{"authority_depth_warning":"This proposal may not get approved because this permission exceeds the maximum authority depth.","children_authority_depth_warning":"This proposal may not get approved because a permission exceeds the maximum authority depth.","failed":"Failed","failed_execute":"Approved, failed to execute.","no_reason_available_switch_node":"Reason of failure is available with core release >=3.1.0, please switch your node.","pending":"Pending","pending_approval":"Pending approval.","pending_review":"Approved, review time.","review":"Review","title":"Proposed transactions"},"witnesses":{"budget":"Remaining budget","card":"Card view","current":"Current witness","filter_by_name":"Filter...","last_confirmed":"Last confirmed","missed":"Blocks missed","next_vote":"Next vote update","participation":"Participation rate","pay":"Pay-per-block","rank":"Rank","table":"Table view","title":"Witnesses"},"workers":{"create":"Create a new worker proposal","create_text_1":"In order to create your new worker, please fill in the form below. The worker will be created using your currently active account, which must already be a lifetime member.","create_text_2":"Consider carefully the parameters you choose as they can not be changed once you\'ve published your worker.","daily_pay":"Daily pay (BTS)","date_text":"The start date should be at least a week into the future in order to allow people the time to discover, evaluate and vote for your worker.","name_text":"The name of your worker should be short and descriptive, something like this: \'Worker Purpose - Account Name\'","pay_text":"The daily pay defines how much you want to be paid per day and is defined in BTS. The current best practice is to define a salary in USD/CNY, and commit to burning whatever surplus you receive as a result of the BTS price increasing. As long as your worker is active and has sufficient votes to be above the refund worker, you will receive this daily salary.","period":"Duration","title":"Worker name","url_text":"You should supply a website, github document or google doc that describes in more detail the purpose of the worker and how you intend to use the worker pay.","vesting_pay":"Salary vesting period (days)","vesting_text":"The vesting period defines the number of days that worker earnings will vest before being fully claimable.","website":"Website"}},"external_service_provider":{"bridge":{"description":"Bridges are external service providers that allow you to swap assets in and out of the BitShares Blockchain. For example, you can send your BTC on the Bitcoin Blockchain to a Bridge, who will swap it and give you an equivalent amount of BTS or another Gateways UIA on the BitShares Blockchain (for a fee of course). Normally, a Bridge does not hold your funds, but trust is required that they send you back the proper amount of the target asset. As it is an external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.","short":"Bridge","what_is":"What is a Bridge?"},"disabled_asset_1":"This asset is managed by an external service provider (gateway). Currently deposits and withdrawals for this asset are disabled","disabled_asset_2":"For more information visit Settings -> Entry External Service Providers. For any issues or questions please contact the gateway operator directly.","expect_more":"If you expect to see more deposit and withdraw options for your assets, please check the External Service Providers in Settings > General.","gateway":{"description":"Gateways are external service providers that allow you to deposit, trade and withdraw assets into the BitShares Blockchain that are not native to it. For example, you can send your BTC on the Bitcoin Blockchain to a Gateway, who will in turn give you an UIA (user issued asset) on the BitShares Blockchain, with the promise that you can withdraw it again (for a fee of course). While you are holding such an UIA on the BitShares Blockchain, the Gateway becomes the custodian of your funds. As it is external service providers you implicitly agree to their Terms and Conditions by using any of their services or assets.","prefix":"Prefix","short":"Gateway","what_is":"What is a Gateway?"},"is_down":"The external provider that offers this service is currently not working correctly. You can check the status in the Settings (General > External Service Provider).","selector":{"cancel":"Cancel","choose_services":"Choose Services","landing":"Landing Page","name":"Name","not_now":"Not now","table_description":"The table below lists all Gateways and Bridges that are currently integrated with the BitShares UI, this does not reflect any kind of endorsement. It lists the Name (sorted alphabetically), the type (Bridge or Gateway, and if Gateway the asset prefix, e.g. RUDEX.BTC), a link to their landing page with further information and an affiliate link to the Gateways wallet (if exists, usually a branded version of this UI). Please do your own due dilligence.","title":"Choose your preferred Service Providers","type":"Type","use_none":"Use none","use_selected":"Use selected","wallet":"Wallet"},"welcome":{"explanation_dex":"BitShares offers a native decentralized exchange, the BitShares DEX. It is running completely on the blockchain with no need for centralized services, even the order matching is transparently on-chain.","explanation_later":"If you want to adjust this later on, you can also choose the external service providers in the Settings.","explanation_service_providers":"You can trade anything against everything, as long as the asset (token) is available on the BitShares Blockchain. For tokens that are not native to it there exist external service providers (so called Gateways and Bridges), that allow you to trade tokens like BTC on the BitShares DEX by providing you their own IOU (\'I owe you\') of it.","explanation_what_to_do":"You may choose which of those service providers you want to see readily available in the BitShares UI. To do so, click \'Choose Services\'. If you want to keep using the BitShares UI just like before, lick \'Not now\'.","first_line":"today, we want to give you some insight on the BitShares Blockchain and services around it.","hello":"Dear BitShares\' User"}},"fees":{"title":"Fees"},"footer":{"advanced_settings":"Advanced settings","backup":"A Backup is Required","block":"Block","brainkey":"Backup brainkey recommended","connected":"Connected","connection":"No Blockchain connection","disconnected":"Disconnected","latency":"Latency","loading":"Loading...","nosync":"Your active node is out of sync","synced":"Synced","title":"%(wallet_name)s","unsynced":"Out of sync","update_available":"UPDATE AVAILABLE"},"gateway":{"add_funds":"Quickly and easily add funds to your %(wallet_name)s account %(account)s. This service is provided by Openledger.","address":"Address","address_with_memo":"%(address)s with memo %(memo)s","agreement":{"hint":"I have read and agreed to","name":"《Service Agreement》","notice":"Please check the agreement to continue","register":"Agree"},"asset":"Asset","asset_search_deposit":"Search for an asset to deposit","asset_search_withdraw":"Search for an asset to withdraw","asset_to_deposit":"Asset to deposit:","asset_to_receive":"You will receive:","asset_to_withdraw":"Asset to withdraw:","asset_unavailable":"The gateway for %(asset)s is not in service","assets":{"bit":"bit%(asset)s is a derivative that tracks the real value of %(backed)s. It is 100%% decentralized, trustless and backed by collateral held by the blockchain in a smart contract.","bitcny":"bitCNY can be deposited or withdrawn 1:1 to real Yuan using a gateway service such as Magic Wallet. For more info, see https://www.magicw.net/","bridge":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by CryptoBridge.","gdex":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by GDEX.","iob":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by ioxbank.com.","open":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by OpenLedger.","pirate":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by PirateDEX.","rudex":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Rudex.","trade":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by Blocktrades.","win":"","xbtsx":"The %(asset)s asset is backed 1:1 by real %(backed)s and can be deposited or withdrawn using the gateway service provided by XBTS."},"balance":"Current balance","balance_asset":"Current %(asset)s balance","bitkapital_receive":"You will receive","bitkapital_text":"Choose an asset to deposit or withdraw:","bitkapital_withdraw":"You are withdrawing","bitspark":{"support_block":"For DEPOSIT AND WITHDRAWAL issues using \\"BitSpark TRANSFER SERVICE\\", please contact BitSpark at:"},"bridge":"Bridge","bridge_text":"A bridge lets you exchange an asset into another one, for example BTC to BTS.","calc":"Calculating","choose_deposit":"Please select the coin you would like to deposit","choose_withdraw":"Please select the coin you would like to withdraw","citadel":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact citadel.li at:","under_construction":"Under Construction"},"contact_TRADE":"Contact Blocktrades","convert":"Internal conversion","convert_coin":"Convert to %(coin)s (%(symbol)s)","convert_now":"Convert now","copy_address":"Copy address","copy_memo":"Copy memo","deposit":"Deposit","deposit_address":"Deposit address","deposit_from_wallet":"Deposit from wallet","deposit_history_status":{"confirming":"deposit confirming","fail":"fail","success":"success","transfering":"transfering","waiting":"waiting for deposit"},"deposit_inst":"Deposit instructions","deposit_limit":"Deposit limit","deposit_notice_delay":"(new address can be generated once per 5 minutes)","deposit_summary":"Deposit summary","deposit_to":"Please send your %(asset)s to the address below","deposit_warning":"Sending any other currency to the %(asset)s address will result in the loss of your deposit","deposit_warning_memo":"Deposit %(asset)s must contains memo, otherwise it won\'t be credited","fee":"Gateway fee","fiat":"Fiat","fiat_text":"Note: Fiat gateways are closed till further notice. Sorry for the inconvenience! Please follow our latest news and updates here blog.openledger.info","frozen":"The user account %(account)s was frozen","gateway":"Gateway","gateway_deposit":{"confirmations":{"last_irreversible":"Your deposit will be deposited after transaction will become irreversible","n_blocks":"Your deposit will be deposited after %(blocks)s confirmations from the network"}},"gateway_text":"Choose whether you want to make a deposit or withdrawal here","generate":"Generate","generate_new":"Get new address","generate_new_memo":"Get new memo","iban":"IBAN","info":"Info","intermediate":"Intermediate account","inventory":"Inventory","iob":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact ioxbank at:","under_construction":"Under Construction"},"limit":"Limit: %(amount)s %(symbol)s","limit_withdraw_asset":"Min: %(min)s, Max: %(max)s","limit_withdraw_asset_max":"Maximum withdraw: %(min)s %(coin)s","limit_withdraw_asset_min":"Minimum withdraw: %(min)s %(coin)s","limit_withdraw_asset_none":"None","logout_now":"Logout now","memo":"Memo","meta":{"open_website":"Open Website"},"min_deposit_warning_amount":"Minimum Deposit: %(minDeposit)s %(coin)s","min_deposit_warning_asset":"IMPORTANT: Send only %(coin)s to this deposit address on the blockchain native to %(coin)s. Sending less than %(minDeposit)s %(coin)s or any other currency to this address may result in the loss of your deposit.","over_limit":"Limit Reached","phase_out_warning":"We recommend using the new {deposit_modal_link} and {withdraw_modal_link} modals as this page will be phased out","piratecash":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact PirateCash at:","under_construction":"Under Construction"},"please_generate_address":"Please, get new address ","purchase":"Purchase %(asset)s","purchase_1":"Quickly and easily purchase %(outputAsset)s using %(inputAsset)s from an external wallet. This service is provided by Blocktrades","purchase_notice":"%(inputAsset)s sent to this address will show up as %(outputAsset)s","purchase_notice_memo":"Memo required for proper routing to your account","purchase_notice_tag":"Tag required for proper routing to your account","receive_account":"Receiving account:","recent_deposit":"Recent deposits","recent_withdraw":"Recent withdrawals","rudex":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact RuDEX at:","under_construction":"Under Construction"},"scan_qr":"Scan QR","service":"Transfer Service","status":"Status","support_block":"For DEPOSIT AND WITHDRAWAL issues using \\"OpenLedger TRANSFER SERVICE\\", please contact Openledger at:","support_gdex":"For support, please contact GDEX","symbol":"Symbol","time":"Time","title":"Deposit & Withdraw","transaction_history_info":" %(amount)s %(assetName)s with trancation id: %(txid)s ","unavailable":"The gateway service for this asset is currently down, please try again later","unavailable_CITADEL":"The Citadel Bridge is down or not responding","unavailable_OPEN":"The OpenLedger Gateway is down or not responding","unavailable_RUDEX":"The RuDEX Gateway is down or not responding","unavailable_TRADE":"The Blocktrades Bridge is down or not responding","unavailable_bridge":"The bridge service for this asset is currently down, please try again later","use_copy_button":"PLEASE USE COPY BUTTON TO MAKE COPY OF ADDRESS OR MEMO ON THIS PAGE","user_unavailable":"User informaction is current unavailable, please try again later","valid_address":"Please enter a valid %(coin_type)s address","website":"Visit the website","withdraw":"Withdrawal","withdraw_coin":"Withdraw %(coin)s (%(symbol)s)","withdraw_funds":"You are going to withdraw funds from your %(wallet_name)s account to your external %(asset)s account.","withdraw_history_status":{"audited":"auditting completed","auditing":"withdraw auditing","confirming":"confirming","fail":"fail","refused":"auditting failed","success":"success","transfering":"transfering"},"withdraw_inst":"Withdrawal instructions","withdraw_now":"Withdraw now","withdraw_placeholder":"Please enter your %(asset)s address","withdraw_summary":"Withdrawal summary","withdraw_to":"Click the button below to open a %(asset)s withdrawal","xbtsx":{"coming_soon":"Coming soon","min_amount":"Minimum amount: %(minAmount)s %(symbol)s","min_amount_error":"Please enter number >= minimum","support_block":"For support, please contact XBTS at:","under_construction":"Under Construction"},"your_account":"Your account"},"global":{"cancel":"Cancel","close":"Close","confirm":"Confirm","field_type":{"account":"account"},"help":"Help","not_found":"Not found","return_to_top":"Return to top","scan_qr_code":"Scan QR code","set":"Set"},"header":{"account":"Account","account_notify":"The active account is now %(account)s","account_value":"Account value","accounts_manage":"Manage Accounts","advanced":"Advanced","collateral_ratio":"Collateral ratio","create_account":"Create Account","create_asset":"Create Asset","current":"Current Account","dashboard":"Portfolio","deposit-withdraw":"Deposit/Withdraw","deposit_legacy":"or Legacy Deposit","exchange":"Exchange","explorer":"Explore","help":"Help","insight":"Insight","lock":"Log out (lock the local wallet)","lock_short":"Log out","locked_tip":"
    Click to login.

    Closing the browser window will also log you out.","logout":"Logout","p2p_lending":"Credit Offer","payments":"Send","payments_legacy":"or Legacy Send","poolmart":"Liquidity Pools","settings":"Settings","showcases":"Spotlight","title":"%(wallet_name)s UI","unlock":"Local Wallet Login","unlock_password":"Cloud Wallet Login","unlock_short":"Login","unlocked_tip":"
    Click to log out.

    Closing the browser window will also log you out.","update_asset":"Update Asset","withdraw_legacy":"or Legacy Withdraw"},"htlc":{"claim_period":"Seconds to claim","claim_period_due":"Claimable until","id":"HTLC id","preimage":"Preimage","preimage_explanation":"The secret preimage was used to calculate the preimage hash and is required to redeem this HTLC","preimage_hash":"Preimage hash","preimage_hash_explanation":"The preimage hash is calculated from the secret preimage and is imperative to HTLCs. With the secret preimage the HTLC can be redeemed. The content you see is: \'(, ): \'","redeemer":"Redeemer","seconds_to_add":"Add seconds to claim period"},"icons":{"adjust":"Adjust margin position","assets":"Assets","checkmark_circle":{"approved":"Approved","operation_succeed":"Operation succeed","yes":"Yes"},"chevron_down":{"gateways":"Show more gateways","other":"Show more items","transactions":"Show more transactions"},"clippy":{"copy":"Copy to clipboard","withdraw_full":"Withdraw the full balance"},"clock":"Please check your computer\'s clock","cog":"Settings","cogs":"Settings","connect":"Connect to this API Node","connected":"API Node is connected","cross_circle":{"cancel_order":"Cancel order","close_position":"Close position","hide_asset":"Hide asset","hide_market":"Hide market","operation_failed":"Operation failed","remove":"Remove"},"dashboard":"Portfolio","debug-report":"Report your error log console, or create a screenshot","deposit":{"deposit":"Deposit","deposit_withdraw":"Deposit/Withdraw"},"disconnected":"API Node is disconnected","dollar":{"borrow":"Borrow","buy":"Buy"},"download":"Download new version of %(wallet_name)s UI","excel":"Download .csv file","eye":"Hide Node","eye-striked":"Show Node","fees":"Fees","fi_star":{"account":"Add/remove account from favorites","market":"Add/remove market from favorites","sort_accounts":"Sort by favorites","symbol":"Add/remove symbol from favorites"},"filter":"Filter","folder":"Accounts","hamburger":"Open menu","hamburger_x":"Close menu","hourglass":"Vesting balances","info_circle_o":"Info","key":"Key","list":"Whitelist","locked":{"action":"Click to unlock your account to perform this action","common":"Click to unlock your account","enable_auto_scroll":"Enable auto scroll"},"manage_accounts":"Manage Accounts","minus_circle":{"disapproved":"Disapproved","no":"No","remove_contact":"Remove contact from the list","wrong_address":"Unable to generate address"},"news":"News","order_grouping":"Order Grouping Active","plus_circle":{"add_contact":"Add contact to the list","show_asset":"Show asset","show_market":"Show market"},"poolmart":{"title":"Liquidity Pools"},"power":"Login","question_circle":"Help","reverse_orderbook":"Reverse orderbook","server":"Explore","settle":"Settle","share":"About","shuffle":"Switch trading pair","text":{"membership_stats":"Membership stats","signed_messages":"Signed messages"},"thumb_tack":"Pin panel to the side","thumb_untack":"Unpin panel","thumbs_up":"Voting","times":"Remove API Node","trade":{"exchange":"Exchange","trade":"Trade"},"transfer":"Send","unlocked":{"common":"Click to lock your account","disable_auto_scroll":"Disable auto scroll"},"user":{"account":"Account","create_account":"Create account","following":"You are following this user"},"warning":"Permissions","withdraw":"Withdraw","zoom":"Search"},"incognito":{"mode":"Private/Incognito:","warning":"If you close your browser without backing up your wallet, you will lose this account permanently."},"invoice":{"amount":"Amount","date":"Date","invalid_format":"Invoice has invalid format","invoice_data_found":"Invoice data found","items":"Items","memo":"Memo","note":"Note","paid_by":"Paid by","pay":{"barcode":"Barcode","invoice_qr_code":"Invoice QR code","payment_qr_code":"Payment QR code","title":"Pay"},"pay_button":"Pay %(asset)s to %(name)s","pay_invoice":"Pay Invoice","pay_to":"Pay To","payment_proof":"Payment proof","payment_request":"Payment request","print_receipt":"Print receipt","raw_invoice_data":"raw invoice data","receipt_total":"Receipt Total","request":{"action":"Action","create_invoice_string":"Create invoice string","currency":"Currency","identifier":"Identifier","identifier_tooltip":"The identifier needs to be used as the memo/message when the request is paid.","items":"Items","note":"Note","note_tooltip":"You can attach a note to this payment request, this can be any additional information.","payment_asset":"Payment Asset","payment_asset_tooltip":"This payment request will be paid with one transfer, and will be requesting to be paid in the indicated asset.","price":"Price","quantity":"Quantity","recipient_account":"Recipient Account","recipient_name":"Recipient Name","recipient_name_tooltip":"You can define an arbitrary plaintext name for yourself to indicate who is being paid. Must not be a BitShares account name.","submit":"Submit","title":"Request"},"tooltip_payment_proof":"Your account history has been searched for a match of sender, recipient and asset. This is an educated guess, but there is no direct link between this transfer and the shown invoice written on-chain.","total":"Total","transaction":"Transaction","unit":"Unit","use_invoice_data":"Use invoice data"},"languages":{"de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","ja":"日本語","ko":"한국어","ru":"Русский","tr":"Türkçe","zh":"简体中文"},"login":{"browseFile":"browse your files","browseFileLabel":"Browse your backup file","dropFile":"Drop your backup file in this area or ","invalidFormat":"Invalid format!","loginButton":"Login","selectDifferent":"Select different file","supportWarning":"Warning! Your browser doesn\'t support the necessary file operations to restore your backup. We recommend to use Chrome or Firefox browsers for recovery.","title":"Select Login Type","withoutBinFile":"I don\'t have .bin-file"},"markets":{"base":"Base asset","core_rate":"Core rate","filter":"Filter","market_search":"Market Search","preferred":"My Favorite Markets","search":"Search","supply":"Supply","title":"Markets"},"migration":{"announcement_1":"In an effort to provide enhanced security for the web-based wallet, we are migrating it, effective immediately to the address below. Please be sure to update any bookmarks you may have.","text_1":"Local wallet detected","text_2":"Please backup your wallet now and restore the backup file to %(wallet_url)s, which will be your new address for the web wallet. Thanks for your continued support.","text_3":"Please use %(wallet_url)s from now on, your existing credentials will let you login there as well.","title":"Notice"},"modal":{"buy":{"asset":"Asset","bridge":"Bridge","title":"Buy"},"cancel":"cancel","close":"close","committee":{"confirm":"CONFIRM","create_committee":"Become a committee member","from":"From","text":"After being voted in as active committee you can help set policies and parameters for the BitShares blockchain including:
    • Transaction fees
    • Parameters of BitAssets (e.g. market fees)
    • Blockchain parameters (e.g. block size & interval)
    • Referral and vesting parameters (e.g. cash back percent for life-time-members and vesting period)
    • Other governance matters
    Submit a link to your website or forum post explaining why yo would be a exemplary member to attract enough votes to become active. Committee members should have basic technical understanding of BitShares and bring knowledge and expertise in key aspects of governing an autonomous and self-sustaining blockchain. This is an unpaid position.","url":"URL","web_example":"Enter link to your committee proposal post"},"confirmation":{"accept":"Yes","cancel":"No","title":"The address you entered does not appear valid, are you sure you want to make the withdrawal?"},"convert":{"amount":"Amount to Convert","submit":"Ok"},"create_lock":{"amount":"Amount to lock","from":"Account to lock from","submit":"Lock","targetType":"Lock Type","title":"Create Lock","type_warning":"Please choose a lock type.","warning_message":"Note that locked assets must be requested to unlock, and can only be claimed back after the unlock period has passed. Current unlock period would be %(lock_days)s days"},"deposit":{"address_generation_error":"Unable to generate address","amount":"Amount to Deposit","asset":"Asset","bts_transfer_description":"It\'s easy to receive BTS from anywhere. As long as BTS is sent to your account name it will show up in your wallet. This QR code also contains your account name.","cancel":"Cancel","close":"Close","header":"Deposit to %(account_name)s","header_short":"Deposit","no_assets":"No depositable assets available","submit":"Deposit"},"deposit_withdraw":{"disabled":"%(gateway)s gateway service disabled","gateway":"Gateway","no_gateway_available":"No gateway available","select_gateway":"Please select a gateway operator","wallet_error":"Gateway wallet disabled"},"issue":{"amount":"Amount to Issue","submit":"Issue Asset","to":"Issue To"},"ok":"OK","proposals":{"actions":{"approve":"Approve proposal","delete":"Permanently reject proposal","reject":"Reject proposal"},"approval_add":"Approval to add","approval_remove":"Approval to remove","key_approval_add":"Key approval to add","key_approval_remove":"Key approval to remove","pay_with":"Pay with account"},"qrcode":{"input_message":"Please enter a password used to encrypt the QR code.
    An empty password will show an unencrypted QR code.","label":"qrcode","title":"Private key QR code"},"report":{"button":"Report","copyLog":"Copy Log","copyScreenshot":"Right click in Image Preview -> Copy","copySuccess":"Copy ended","explanatory_text_1":"This report collects the last entries of the error log and takes a screenshot of the current view, without the dialog opened. Click on entry to see the details.","explanatory_text_2":"Please report the issue you have found to GitHub:","explanatory_text_3":"You can copy and paste (CTRL+C & CTRL+V) the screenshot and the log entries directly into the issue content text area. This works also for Telegram chat.","explanatory_text_4":"If your issue affects user security you might be eligible for a bounty. In that case do not report it publicly, but rather through:","hideLog":"Hide Log","hideScreenshot":"Hide screenshot","lastLogEntries":"Last 20 log entries","screenshot":"Screenshot","showLog":"Show Log","takeScreenshot":"Show screenshot","title":"Error report"},"reserve":{"amount":"Amount to burn","from":"Account to burn from","submit":"Burn","title":"Burn (reserve) asset","warning_message":"Note that asset burn (reserve) will destroy the amount of selected asset. This action can not be reverted once submitted!"},"save":"save","send":{"header":"Send from %(fromName)s","header_propose":"Propose Send from %(fromName)s"},"settle":{"amount":"Amount to settle","delay":"Estimated delay: %(amount)s hours","max_volume":"Max. settlement volume: %(amount)s %(asset)s","remaining_volume":"Remaining settleable volume: %(amount)s %(asset)s","submit":"Settle asset","title":"Request settlement of %(asset)s"},"withdraw":{"address":"Withdraw to Address","address_not_valid":"Invalid address","amount":"Amount to Withdraw","available":"Available: ","bitshares_account":"Send to %(wallet_name)s Account","cancel":"Cancel","cannot_cover":"Insufficient funds!","estimated_value":"Estimated Value","fee":"Fee","gateway_fee":"Gateway Fee","header":"Withdraw","memo":"Memo","no_assets":"No withdrawable assets available","no_estimate":"No estimate available for this object","no_gateways":"Sorry, but there are no gateways available to handle this withdrawal","public_key":"Public key","quantity":"Quantity","submit":"Withdraw","tag":"tag","withdraw":"Withdraw"},"witness":{"confirm":"CONFIRM","create_witness":"Become a witness member","enter_public_signing_key":"Enter your public signing key","invalid_key":"Public Key is invalid","public_signing_key":"Public Signing Key","text":"After being voted in as an active witness you are added in the rotation of block producers and expected to produce blocks signed by your signing key and you are rewarded in BTS per produced block. Common criteria that help make your case are
    • implementation of fallbacks (e.g. running a hot swap backup server) and appropriate server specifications to ensure a low number of missed blocks (e.g. high connectivity)
    • participation in block production and rolling releases of the testnet
    • provision of a public node for the community
    • publication of price feeds for the BitAssets
    Submit a link to your website or forum post explaining why you would be a exemplary member to attract enough votes to become active.","url":"URL","web_example":"Enter link to your witness proposal post","witness_account":"Witness Account"}},"news":{"author":"Author","errors":{"fetch":"Ops... Something went wrong fetching the news"},"news":"News","subject":"Subject"},"notifications":{"account_create_failure":"Failed to create account: %(account_name)s - %(error_msg)s","account_permissions_update_warning":"Setting your owner permissions like this will render your account permanently unusable. Please make sure you know what you\'re doing before modifying account authorities!","account_wallet_create_failure":"Failed to create wallet: %(error_msg)s","asset_issue_failure":"Failed to issue the asset, probably due to an invalid amount being issued","backup_file_save_unsupported":"File saving is not supported","balance_claim_error":"Error claiming balance: %(error_msg)s","exchange_enter_valid_values":"Please enter a valid amount and price","exchange_insufficient_funds_for_fees":"Insufficient funds to pay fees","exchange_insufficient_funds_to_place_order":"Insufficient funds to place order, you need at least %(amount)s $(symbol)s","exchange_unknown_error_place_order":"Unknown error. Failed to place order for %(amount)s %(symbol)s","exchange_unknown_error_place_scaled_order":"Unknown error. Failed to place Scaled Order","import_keys_already_imported":"This wallet has already been imported","import_keys_error":"Account %(account_name)s had a private key import error: %(error_msg)s","import_keys_error_unknown":"Key import error: %(error_msg)s","invalid_password":"Invalid Password","password_change_failure":"Unable to change password: %(error_msg)s","password_change_success":"Password changed","wallet_unlock_different_block_chain":"This wallet was intended for a different block-chain; expecting %(expectedWalletId)s, but got %(actualWalletId)s","worker_create_failure":"Failed to create worker: %(error_msg)s"},"openledger":{"deposit_amount":"Deposit Amount","deposit_details":"Details","deposit_none":"No deposits","header_fiat":"Fiat","header_transaction_history":"Transaction history","loading":"Loading...","refresh_transaction_history":"Refresh","retry":"Retry","show_transaction_history":"Show transaction history","status":"Status","withdraw_amount":"Withdrawal Amount","withdraw_none":"No withdrawals"},"operation":{"annual_upgrade_account":"{account} was upgraded to annual member","asset_claim_pool":"{account} claimed {amount} from asset {asset}\'s fee pool","asset_create":"{account} created the asset {asset}","asset_fund_fee_pool":"{account} funded {asset} fee pool with {amount}","asset_global_settle":"{account} requested global settlement of {asset} at {price}","asset_issue":"{account} issued {amount} to {to}","asset_reserve":"{account} burned (reserved) {amount}","asset_settle":"{account} requested settlement of {amount}","asset_settle_cancel":"{account} cancelled settlement of {amount}","asset_settle_instant":"{account} settled {amount} instantly at {price}.","asset_update":"{account} updated the asset {asset}","asset_update_feed_producers":"{account} updated the feed producers for the asset {asset}","asset_update_issuer":"{from_account} transferred {asset} to {to_account}","balance_claim":"{account} claimed a balance of {amount}","bid_collateral":"{bid_account} bid {collateral} for {debt}","blacklisted_by":"{lister} blacklisted the account {listee}","call_order_update":"{account} changed {debtSymbol} debt by {debt} and collateral by {collateral}","committee_member_update_global_parameters":"{account} updated the global committee parameters","credit_deal_expired":"{account} credit deal has expired.","credit_deal_repay":"{account} repays {amount} to credit offer with fee {fee}","credit_offer_accept":"{account} borrows {amount} from credit offer","credit_offer_create":"{account} create a credit offer of {amount} with fee rate {fee}","credit_offer_delete":"{account} deleted credit offer {id}","credit_offer_update":"{account} update a credit offer {id}","fill_order_buy":"{account} bought {amount} at {price} for order #%(order)s","fill_order_sell":"{account} sold {amount} at {price} for order #%(order)s","htlc_create":"{from} locked {amount} for {to} to redeem until {lock_period}","htlc_extend":"{update_issuer} added {seconds_to_add} seconds to redeem period of HTLC {htlc_id}","htlc_redeem":"{redeemer} request to redeem from HTLC {htlc_id}","htlc_redeemed":"{to} redeemed {amount} from HTLC {htlc_id} of {from}","htlc_refund":"{to} got refund of HTLC {htlc_id}","lifetime_upgrade_account":"{account} was upgraded to lifetime member","limit_order_buy":"{account} placed order %(order)s to buy {amount} at {price}","limit_order_cancel":"{account} cancelled order #%(order)s","limit_order_sell":"{account} placed order %(order)s to sell {amount} at {price}","liquidity_pool_create":"{account} created liquidity pool {id} with {asset_a} and {asset_b}","liquidity_pool_delete":"{account} deleted liquidity pool {id}","liquidity_pool_deposit":"{account} added liquidity {amount_a} and {amount_b} to liquidity pool {id}","liquidity_pool_exchange":"{account} exchanged {amount_a} for {amount_b} from liquidity pool {id}","liquidity_pool_withdraw":"{account} removed liquidity {amount_a} and {amount_b} from liquidity pool {id}","no_recent":"No recent transactions","override_transfer":"{issuer} transferred {amount} from {from} to {to}","pending":"pending %(blocks)s blocks","proposal_create":"{account} created a proposal","proposal_delete":"{account} deleted a proposal","proposal_update":"{account} updated a proposal","publish_feed":"{account} published feed price of {price}","reg_account":"{registrar} registered the account {new_account}","samet_fund_borrow":"{account} lent {amount} from flash loan {id}","samet_fund_create":"{account} created flash loan of {amount} with fee rate {fee}","samet_fund_delete":"{account} delete flash loan {id} with get back {amount}","samet_fund_repay":"{account} repays flash loan {id} {amount} with fee {fee}","samet_fund_update":"{account} update flash loan {id}","set_proxy":"{account} set {proxy} as their voting proxy","ticket_create":"{account} locked away {amount} in a ticket","ticket_types":{"0":"Liquid","1":"Claimable 180 days after unlock request","2":"Claimable 360 days after unlock request","3":"Claimable 720 days after unlock request","4":"Locked forever","liquid":"Liquid","lock_180_days":"Claimable 180 days after unlock request","lock_360_days":"Claimable 360 days after unlock request","lock_720_days":"Claimable 720 days after unlock request","lock_forever":"Locked forever"},"transfer":"{from} sent {amount} to {to}","transfer_account":"{account} ownership transferred to {to}","unknown_operation":"Unknown operation","unlisted_by":"{lister} unlisted the account {listee}","update_account":"{account} updated their account data {change}","vesting_balance_withdraw":"{account} withdrew vesting balance of {amount}","whitelisted_by":"{lister} whitelisted the account {listee}","witness_create":"{account} was upgraded to become a witness","witness_pay":"Withdrew witness pay to account","witness_receive":"Received witness from witness","witness_update":"{account} update its witness info","worker_create":"{account} created a worker proposal with daily pay of {pay}"},"page404":{"asset_not_found_subtitle":"That asset does not exist","home":"Home","market_not_found_subtitle":"That market does not exist","page_not_found_subtitle":"This page does not exist","page_not_found_title":"404 page not found"},"pagination":{"newer":"Newer","older":"Older"},"poolmart":{"liquidity_pools":{"amount_to_sell":"Amount to sell","asset_a":"Asset A","asset_a_qty":"Asset A QTY","asset_b":"Asset B","asset_b_qty":"Asset B QTY","confirm_delete_pool":"Are you sure you want to delete the pool?","delete_pool":"Delete","exchange":"Exchange","min_to_receive":"Min to receive","need_stake_first":"Need Stake The Pool First!","pool_id":"Pool Id","share_asset":"Share Asset","stake":"Stake","stake_unstake":"Stake/Unstake","taker_fee_percent":"Taker Fee","taker_fee_percent_rate":"Taker Fee Rate","title":"Pools","unstake":"Unstake","withdrawal_fee_percent":"Withdrawal Fee"}},"prediction":{"add_opinion_modal":{"amount":"Amount","condition":"Condition","no":"NO","probability":"Probability (0...1)","resolution":"Resolution","symbol":"Symbol","title":"Add Prediction Offer","warning":"Set amount","yes":"YES"},"create_market_modal":{"backing_asset":"Backing asset","commission":"Commission (in %)","condition":"Condition","description":"Description","resolution_date":"Resolution date","select_date_and_time":"Select date and time","symbol":"Symbol","title":"Create prediction market","tooltip_backing_asset":"The backing asset will be used to pay the premium, i.e. it is the leverage that participants use.","tooltip_commission":"Every participant pays the commission when opposing opinions on the prediction are being matched. On the blockchain, the commission is the market fee of this new asset.","tooltip_condition":"The condition is a statement that can be resolved unambiguous to correct or incorrect at the resolution state.","tooltip_description":"The description gives background information that help the user understand the significance of the prediction.","tooltip_resolution_date":"The point in time at which the prediction will be resolved. This needs to be done manually by you as the asset owner.","tooltip_symbol":"A prediction market asset has a symbol just like any other assets. Pick a symbol with 5 or more letters to minimize the creation fee.","warning":"Fill all blanks"},"details":{"add_prediction":"Add prediction","all":"All","amount":"Amount","cancel":"Cancel","commission":"Commission","fee":"Fee","i_think_that":"I think that the prediction","incorrect":"Is incorrect","list_of_current_prediction_offers":"List of current prediction offers","oppose":"Oppose","potential_profit":"Potential Winnings","predicated_likelihood":"Predicated Likelihood","prediction":"Prediction","predictor":"Predictor","premium":"Premium","proves_true":"Proves true"},"overview":{"action":"Action","all":"All","create_market":"Create Prediction Market","description":"Description","expiry":"Resolution date","hide_invalid_asset":"Hide invalid assets","hide_unknown_houses":"Hide unknown houses","issuer":"House","loading":"Loading...","market_confidence":"Market confidence","market_predicated_likelihood":"Market predicated likelihood","no":"No","odds":"Odds","open":"Open","past_resolution_date":"Past Resolution Time","prediction":"Prediction","resolve":"Resolve","yes":"Yes"},"resolve_modal":{"prediction":"Prediction","proven_true":"... has proven true","resolution":"Resolution","symbol":"Symbol","the_prediction_has":"The prediction ...","title":"Resolve Prediction Market Asset","was_incorrect":"... was incorrect"},"tooltips":{"add_prediction":"A prediction is reflected as a limit order on the market of the prediction market asset with its collateral. This lets you create a buy order (you agree with the prediction), or a sell order with previous borrowing of the prediction market asset (you disagree with the prediction). You can also oppose one of the existing predictions listed below, which correlates to matching one of the existing limit orders on the blockchain.","create_prediction_market_asset":"A prediction market is a special kind of SmartCoin. This lets you create such a prediction market asset with inputs tailored for this purpose.","hide_invalid_asset":"Per default the table below only shows prediction market assets that meet common standards required for a consistent user experience (prediction and resolution date are given, and reasonable market fee). Uncheck this to show all assets that exist on the blockchain, and make sure you know what you are doing.","hide_unknown_houses":"Per default the table below only shows prediction market assets of known asset owners that meet requirements to increase their trustworthiness. As a participant, you need trust in the asset owner such that the asset will be resolved according to the real world outcome. Uncheck this to show all asset owners that exist on the blockchain, and make sure you know what you are doing. If you are the owner of a prediction market asset and want to be included in the default list, please contact the BitShares community.","oppose_is_incorrect":"You are opposing someone that thinks the prediction is incorrect. That means, you think the prediction will prove true. On the blockchain that reflects as buying and hodling the prediction market asset.","oppose_proves_true":"You are opposing someone that thinks the prediction proves true. That means, you think the prediction will be incorrect. On the blockchain that reflects as borrowing and selling the prediction market asset.","what_is_a_prediction_market_asset":"A prediction market asset is a special kind of asset that allows you to agree or disagree with the prediction statement of the asset and put collateral behind your opinion. It can be created by any user, and if you are participating you need to trust the asset owner to properly reflects the real world outcome on the blockchain.","what_is_a_prediction_offer":"A prediction offer reflects limit orders on the market of the prediction market asset and its collateral. Agreement with the prediction (Prediction proves true) means that you want to buy the prediction market asset, disagreement (Prediction is incorrect) means that you borrow the prediction market asset and sell it"}},"proposal":{"action":"Actions","add":"Add","add_vote":"Add vote for","approve":"Approve","approvers":"Approver(s)","asset_create":"Create the asset %(asset)s using the account {account}","asset_issue":"Issue {amount} to {to} using {account}","asset_reserve":"Burn (reserve) {amount} using {account}","asset_settle":"Request a settlement of {amount} for {account}","asset_update":"Update the asset {asset} using the account {account}","call_order_update":"Change {account} {debtSymbol} debt by {debt} and collateral by {collateral}","changes_to_active":"Changes to active","changes_to_memo":"Changes to memo","changes_to_owner":"Changes to owner","committee_member_update_global_parameters":"Update committee global parameters by {account}","danger_operation":"Dangerous operation","delete":"Permanently reject","expires":"Expires","feed_producer":"Update the feed producers for the asset {asset} using the account {account}","limit_order_buy":"Place an order to buy {amount} at {price} for {account}","limit_order_create":"Place an order to buy %(buy_amount)s for %(sell_amount)s for %(account)s","limit_order_sell":"Place an order to sell {amount} at {price} for {account}","override_transfer":"Transfer {amount} from {from} to {to} by authority of {issuer}","permission_changes":"Permission changes","proposals":"Proposals","reject":"Reject","remove":"Remove","remove_vote":"Remove vote for","set_threshold":"Set threshold to %(threshold)s","status":"Status","transfer":"Transfer {amount} from {from} to {to}","update":{"active_approvals_to_add":"Active approvals to add","active_approvals_to_remove":"Active approvals to remove","key_approvals_to_add":"Key approvals to add","key_approvals_to_remove":"Key approvals to remove","owner_approvals_to_add":"Owner approvals to add","owner_approvals_to_remove":"Owner approvals to remove"},"update_account":"Update account data for {account} {change}","updated":{"active_approvals_to_add":"Active approval(s) added","active_approvals_to_remove":"Active approval(s) removed","key_approvals_to_add":"Key approval(s) added","key_approvals_to_remove":"Key approval(s) removed","owner_approvals_to_add":"Owner approval(s) added","owner_approvals_to_remove":"Owner approval(s) removed"},"vesting_balance_withdraw":"Withdraw {amount} from vesting balance of {account}","votes":"Votes"},"proposal_create":{"expiration_time":"Expiration time","fee_paying_account":"Fee paying account","id":"Proposal object id","proposed_operations":"Proposed operations","review_period":"Review period begin"},"proposal_delete":{"using_owner_authority":"Using owner authority"},"propose":"Propose","qr_address_scanner":{"address_found":"Address found","amount":"Amount","retry":"Retry","use_address":"Use Address"},"refcode":{"claim":"Claim","claim_refcode":"Claim Referral Code","enter_refcode":"Enter referral code","refcode_optional":"Referral Code (optional)"},"registration":{"accountConfirmation":"I have written down or otherwise stored my username and password.","accountDescription":"Please keep your password in a safe place. Don’t share it with any third-parties or send it online.","accountLoginByValue":"Account name + Password","accountModelTitle":"By Account Name and Password","accountNote":"If you forget your passphrase you will be unable to access your account and your funds. We cannot reset or restore your password! Memorize or write down your username and password!","attention":"Attention","backUpRestoreKey":"Back up and restore Account","checkboxRecover":"I understand that no one can recover my password or .bin file if I forget or lose it.","checkboxRemember":"I have memorized or otherwise stored my password and I safely kept downloaded .bin file.","checkboxUploaded":"I understand that .bin file must be used during the login process and without .bin file I will lose access to my funds.","continue":"Continue","copyPassword":"Copy password","createAccountTitle":"Create Account by .bin-file","createByPassword":"Create Account by Name and Password","downloadFile":"Download file","loginByKey":"Login by","passwordPlaceholder":"Minimum 7 characters","recommended":"recommended","securityAccountModel":"Medium","securityKey":"Security","securityWalletModel":"High","select":"Select","title":"Registration","walletDescription":"A .bin-file will be automatically created. Please download it and keep in a safe place. You’ll need to use this file to login to your account in the future.","walletLoginByValue":".bin-file + Password","walletModelTitle":"By .bin-file","walletNote":"Please keep in mind, that BitShares doesn\'t store users passwords and couldn\'t recover users accounts after password loss.","whyBinFile":"Why do I need a .bin-file?"},"scaled_orders":{"action":{"buy":"Buy","sell":"Sell","title":"Action"},"distribution":{"flat":"Flat","title":"Distribution"},"fee":"Fee","market_fee":"Market Fee","order_count":"Order Count","order_s":"Order(s)","please_log_in":"You need to login before use Scaled Orders","preview_table":{"price":"Price"},"price_lower":"Price Lower","price_upper":"Price Upper","quantity":"Quantity","title":"Scaled Order","total":"Total"},"settings":{"access":"Nodes","access_text":"","accounts":"Accounts","accounts_text":"Your accounts list.","activate":"Activate","active_node":"Active Node","add_api":"Add Node","add_ws":"Add Node","always_confirm":"Always ask for confirmation","apiServer":"Full node API server","api_closest":"Choose closest automatically","automatic":"Automatically select node (%(totalNodes)s listed)","automatic_short":"Automatic Switching","available_nodes":"Available","backup":"Backup","backup_backup":"Restore from a backup .bin-file","backup_backup_short":"Restore from a backup","backup_brainkey":"Restore using a local wallet brainkey","backup_favorites":"Restore favorites using a json file","backup_favorites_error":"Could not parse JSON.","backup_favorites_finish":"Import favorites","backup_favorites_success":"Successfully restored market favorites","backup_favoritesbtn":"Backup favorites","backup_favoritestext":"Back up your favorites to restore them later after updates.","backup_key":"Import a private key","backup_legacy":"Import a BTS 0.9.3c key export file (.json)","backup_text":"Create backups here.","backupcreate_backup":"Create local wallet backup","backupcreate_brainkey":"Create brainkey backup","backupcreate_favorites":"Create favorites backup","browser_notifications":"Browser Notifications","browser_notifications_additional_transfer_to_me":"Notify about transfers to my account","browser_notifications_allow":"Enable notifications","browser_notifications_disabled_by_browser_notify":"Your browser disabled notifications. Click to learn how enable browser notifications","can_change_default_fee_asset_tooltip":"The default asset used to pay transaction fees can be changed in the settings","change":"Change","change_default":"Change default","change_default_fee_asset":"Change default fee asset","change_default_fee_asset_tooltip":"Change the default asset that is used to pay the transaction fee","cloud_login":"Cloud Wallet Login","confirmMarketOrder":"Ask for confirmation of market orders","confirm_no":"Never","confirm_remove":"Are you sure you want to remove %(name)s from your available nodes?","confirm_yes":"Always","connection_error":"Unable to connect to API node %(url)s, falling back to known working nodes. Error was: %(error)s","current_fee_asset":"Current fee asset is: ","custom":"Custom","darkTheme":"Dark","delete_select":"Select local wallet to delete","disabled":"Disabled","enable_wallet":"Enable local wallet","faucet_address":"Faucet","faucet_address_text":"The faucet address is used to pay the registration fee for new users.","fee_asset":"Default fee paying asset","filteredServiceProviders":"External service providers (Gateways, Bridges)","general":"General","general_text":"Adjust the basic settings.","global_settings":"Default Global Settings","hidden_nodes":"Hidden","hide":"Hide","high_latency":"High latency","inverseMarket":"Market orientation preference","left":"Left","lightTheme":"Light","local_wallet":"Local Wallet Login","locale":"Switch language","lookup_text":"Click the button below to check for unclaimed balances from BTS 1.0","low_latency":"Low latency","medium_latency":"Medium latency","midnightTheme":"Midnight","my_nodes":"Personal","no":"No","no_accounts":"This local wallet does not contain any accounts.","node_already_exists":"Node with such URL already exists","node_down":"Unreachable","node_up":"Available","olDarkTheme":"Openledger dark","orderbook_autoscroll":"Order Book Autoscroll","orderbook_grouping":"Order Book Grouping","orderbook_reverse":"Order Book Reversed","password":"Password","passwordLogin":"Login mode","password_text":"Change your password.","personal_active":"Your only personal node is active, to remove or modify it you must first connect to a different node","ping":"Ping Nodes","pinging":"Pinging ...","placeholder_select":"Select option","remove":"Remove","remove_api":"Remove Node","remove_ws":"Remove Node","reset":"Reset settings","reset_text":"Restore settings to their original defaults.","reset_text_description":"This will reset all your %(generalName)s, %(accessName)s and %(faucetName)s Settings","restore":"Restore/Import","restore_brainkey_text":"In order to restore from a brainkey, you will need to create a new local wallet. Please provide a password and name for your new local wallet below, then enter your brainkey.","restore_default_success":"Settings have been reset successfully","restore_key_count":"# of keys","restore_text":"Restore from a backup or import keys.","right":"Right","scrollbars_hide":"Reduce scroll bars","show":"Show","showAssetPercent":"Show asset percentages on the account page","showProposedTx":"Show proposed transactions in Portfolio","showSettles":"Show settle orders in depth chart","skipped":"Skipped","switch":"Switch Node","testnet_nodes":"Testnet","testnet_nodes_disclaimer":"Availability of the testnet is not guaranteed. Establish a connection by connected manually to one of the nodes below:","themes":"Theme","unit":"Preferred unit of account","valid_node_url":"Node URL must begin with ws:// or wss://","viewOnlyMode":"View only mode","view_keys":"View keys","wallet":"Local Wallet","walletLockTimeout":"Wallet auto-lock time (in seconds, 0 to disable)","walletLockTimeoutTooltip":"Click to adjust the time before the wallet auto-locks","wallet_required":"Local wallet required","wallet_required_text":"In order to restore a backup you will need to switch to a local wallet first, do so by clicking the button below","wallet_text":"Control the details of your local wallet.","wallets":"Wallets","yes":"Yes"},"showcases":{"barter":{"account":"Account","action":"Peer 1 (%(peer_left)s) offers to send %(assets_left)s to Peer 2 (%(peer_right)s) and receives %(assets_right)s in return. ","add_escrow":"Add escrow","add_escrow_tooltip":"Adds or removes an escrow to this barter. This escrow will have to approve the resulting proposal as well. The escrow can serve as a witness only, or also be the custodian of Peer 1\'s funds.","balance_warning":"Balance Warning","balance_warning_line":"wants to send a total of %(asset_amount)s %(asset_symbol)s, but only has %(asset_balance)s %(asset_symbol)s","balance_warning_tooltip":"%(peer)s does not have enough funds to execute the transfers when the proposal gets approved and executes. This is not an issue when creating the proposal, but the balances must match when executed","bartering_asset":"Bartering asset","description":"Allows you to suggest an asset swap with another account, this happens outside the order book and can include an escrow.","error_fill_in_escrow_name":"Please fill in the account name of the escrow","error_fill_in_peer_left_name":"Please fill in the account name of Peer 1","error_fill_in_peer_right_name":"Please fill in the account name of Peer 2","error_fill_in_valid_asset_amount":"Please fill in valid amounts for the bartering assets","error_same_name":"Peer 1 and Peer 2 must be different accounts","error_same_name_escrow":"The escrow can not be Peer 1 or Peer 2","escrow_account":"Escrowing account","escrow_as_custodian":"An escrow (%(escrow)s) is used as custodian which holds the funds of Peer 1 and which has to approve the barter before it can execute.","escrow_as_witness":"An escrow (%(escrow)s) is used as a witness which has to approve the barter before it can execute.","escrow_payment":"Payment for escrow services","escrow_payment_tooltip":"Being an escrow requires trust from both peers and should be considered a paid service. The escrow will be paid from Peer 1\'s account via an additional transfer in the proposal, which increases the overall fee for Peer 1. Set this value to zero to remove it, default value is equal to the transactions fee induced for the escrow.","fee_due_now":"Fee due now","fee_due_now_tooltip":"The indicated transaction fee will be paid when creating this barter proposal to move funds to the escrow","fee_when_proposal_executes":"Fee when proposal executes","fee_when_proposal_executes_tooltip":"When the proposal of this barter executes, the mentioned account will have to pay the indicated transaction fee for the underlying transfer operations","new_barter":"Propose a new barter","new_barter_tooltip":"This panel allows you to create a new barter. It utilizes the atomicity of a transaction to securely swap assets between two accounts (via transfer operations). The transaction is wrapped in a proposal and needs approval from both parties (called Peer 1 and Peer 2 below) to execute, and optionally from an escrow","not_complete":"Please fill out all fields to see a description of the action here","peer_left":"Peer 1","peer_right":"Peer 2","proposal_fee":"Proposal fee","proposal_fee_tooltip":"The indicated transaction fee will be paid to create the proposal to realize this barter","propose_tooltip":"This creates a proposal that needs to be approved by you and all other involved parties. After broadcasting the proposal, go to find the Proposal tab in your Portfolio, approve the proposal and notify the other involved parties.","remove_escrow":"Remove escrow","send_to_escrow":"Use escrow as custodian for Peer 1\'s funds","send_to_escrow_tooltip":"Enabling this will send the selected funds to the escrow, and then a barter proposal is created between escrow and Peer 2","title":"Barter","total_fees":"Total fees: %(fee)s %(asset)s","total_fees_tooltip":"The account that is indicated as Peer 1 will have to pay the indicated transaction fee in total for the whole barter"},"borrow":{"borrow_tooltip":"You can also find this feature in your Portfolio under the tab Margin Positions, or by clicking Borrow in the Exchange","choose":"Choose the SmartCoin you want to create a position for","description":"Borrow a BitAsset from the BitShares Blockchain by locking up collateral (e.g. bitUSD, bitCNY, etc.)","do_it":"Let\'s do it","get_started":"Get started","navigate_with_keys":"The mechanism of the SmartCoin generation will be explained in the following steps. You can also use arrow keys to navigate","next":"Next","now_ready":"Finalize the creation of your own Collateralized Debt Position","previous":"Previous","steps_benefits":{"text":"Creating a Collateralized Debt Position allows you to provide liquidity for your desired SmartCoin (MPA), without giving up ownership of your collateral provided that you lock up enough collateral to guarantee the value of the SmartCoin. On the one hand, selling the newly generated SmartCoin on the open market will create leverage on your position (i.e. you sell it short, and will need to buy it back to close the position). On the other hand, holders of the SmartCoin benefit from the significantly less volatile SmartCoin, and they can additionally request a force settlement to obtain the corresponding value in its collateral without the need of markets.","text_legend":"Forced settlement: Holders of a SmartCoin can request a forced settlement. The SmartCoin is used to forcefully pay back the debt of the least collateralized positions while the former SmartCoin holder receives collateral as if he sold it for the forced settlement price. Any leftover collateral is returned to the position holder. This mechanism enforces a mandated delay after being triggered to avoid abuse (24 hours). \\nForced Settlement Price: The price at which a forced settlement price will occur. It is calculated from the feed price by adding a forced settlement offset to disincentivize forced settlements. All settlements are converted to underlying backing asset (e.g. BTS in the case of bitUSD).","title":"Benefits","title_within":"What are the benefits?"},"steps_concept":{"text":"A Collateralized Debt Position enables every user of the BitShares Blockchain to generate SmartCoins (MPA) by providing collateral. The collateral is locked up until you pay back the SmartCoins you have generated. You are effectively borrowing the SmartCoin from the BitShares Blockchain.","text_legend":"Example bitUSD: Provide BTS as collateral to borrow bitUSD","title":"Concept","title_within":"What is a Collateralized Debt Position?"},"steps_costs":{"text":"Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text Some longer text ","title":"Settlement","title_within":""},"steps_introduction":{"text":"Use this native dApp from the BitShares Blockchain to manage depositing collateral and the generation of SmartCoins.","title_within":"This is the place to generate SmartCoins (Market Pegged Assets, MPAs)"},"steps_risks":{"text":"As long as you monitor your position and make sure that the Collateral Ratio (CR) stays above the Maintenance Collateral Ratio (MCR), your position will not be liquidated. If the value of the collateral drops and your position gets close to MCR, you can lock up more collateral or pay back some of the debt to increase the CR. Failure to remain above MCR results in a forced liquidation of your position (Margin Call). This means that your collateral is automatically sold on the respective market to reduce your debt, with a 10% penalty to ensure the order is filled (penalty is given by the Maximum Short Squeeze Ratio (MSSR)). Any leftover collateral is returned to you after the full debt is paid. You can choose to only allow partial selling of your position by setting the Target Collateral Ratio (TCR). If your position can not be forced to liquidate due to extreme market conditions and the CR drops below the MSSR, the SmartCoin (MPA) automatically enters a state of Global Settlement (GS) and you lose your entire position instantly.","text_legend":"Target Collateral Ratio (TCR): If your position is liquidated, the system automatically puts an order on the market buying back the full debt. If Target Collateral Ratio (TCR) is set, the order will only sell as much debt as needed such that the Collateral Ratio (CR) of your position is the Target Collateral Ratio (TCR). \\n Maximum Short Squeeze Ratio (MSSR): When your position is force liquidated, it is being sold below the current feed price to ensure the order is filled. The MSSR defines how much below feed price. \\n Global Settlement: A globally settled SmartCoin can no longer be generated by opening a Collateralized Debt Position CDP). Instead, SmartCoin holders can settle it instantly for a fixed Global Settlement Price.","title":"Risks","title_within":"What are the risks involved in borrowing?"},"steps_setup":{"text":"You decide how much collateral you want to provide and what the collateral ratio (CR) should be. The Maintenance (Minimum) Collateral Ratio (MCR) reflects the lowermost possible value on the scale. You spend the SmartCoin (MPA) as you wish, and when you no longer need the liquidity you buy it back and close the position by paying your debt.","text_legend":"Collateral Ratio (CR): The CR defines how much percent of the generated SmartCoin value is covered by collateral.\\nMaintenance Collateral ratio (MCR): To guarantee that the SmartCoin has enough backing collateral and to account for volatility, the MCR is enforced when creating the position.","title":"Setup","title_within":"How does it work?"},"title":"Collateralized Debt Position","title_long":"Create a Collateralized Debt Position"},"direct_debit":{"amount_to_withdraw":"Amount to collect","authorized_account":"Payee","authorizing_account":"Payer","claim":"Claim","claim_funds":"Claim funds","create":"Create","create_new_mandate":"Create authorization","current_period_expires":"Current period ends","delete":"Delete","description":"Setup a direct debit authorization for recurring payments. The authorization allows another account to transfer funds out of your account, with a limit on the amount for defined time intervals.","expires":"Expires","first_period_not_started":"First period has not started!","limit":"limit","limit_per_period":"Maximum amount per period","num_of_periods":"Number of periods","payer_balance_not_sufficient":"There are not enough funds in the payer\'s account to claim the full limit amount of {limit}. The limit has been adjusted to reflect the currently available balance!","period":"Specify period","start_date":"First period starts on","title":"Direct debit","tooltip":{"authorized_account":"The account that is eligible to collect from your account.","limit_per_period":"The payee may collect a maximum amount of the specified asset (up to) per period. The payee can only collect once per period, even if not collected in full.","num_of_periods":"After the start time this amount of periods are available consecutively.","period":"One period lasts the indicated time interval, e.g. 2 weeks.","start_time":"The start time of the first period must be in the future when broadcasting."},"update":"Update","update_mandate":"Update existing authorization"},"htlc":{"actions":"Actions","amount":"Amount","create_htlc":"Create HTLC","custom":"Custom","description":"A HTLC locks away funds for given recipient, who can redeem those funds by providing a secret preimage (password) that was used by the sender to create the contract. Disclosing the password happens off-chain.","enter_secret_preimage":"Enter secret preimage","expiration":"Expiration","expiration_date":"Expiration date","expiration_period":{"one_day":"One day","one_week":"One week","two_days":"Two days"},"expires":"Expires","extend":"Extend","extend_htlc":"Extend HTLC","first_stage":"1st stage","from":"From","hash":"Hash","preimage":"Preimage","preimage_has_been_created":"A random preimage has been created and filled in automatically below.","recipient":"Recipient","redeem":"Redeem","redeem_htlc":"Redeem HTLC","second_stage":"2nd stage","sender":"Sender","size":"Size","title":"Hashed Time-Lock Contracts","title_short":"HTLC","to":"To","tooltip":{"enter_preimage":"Enter the secret preimage that you have obtained from the sender","new_random":"Roll the dice and create a new random string.","preimage_button":"Please click to enter secret preimage","preimage_hash":"The Preimage hash is calculated from the above Preimage using the indicated hashing algorithm. Use the copy button in this row to save the Preimage hash and Preimage size.","preimage_input":"Field requires a secret preimage","preimage_random":"The best choice for the secret is a random string. If your secret can be guessed or is too short, you risk losing your funds. Use the copy button in this row to save the Preimage and hashing algorithm.","preimage_size":"The Preimage size is the length of the above Preimage. This value will also be written to the chain. Use the copy button in this row to save the Preimage hash and Preimage size."}},"instant_trade":{"description":"Instantly execute market orders in a simplified interface.","title":"Instant trade"},"merchant_protocol":{"description":"Create, view and pay remittance requests or invoices","title":"Merchant Protocol"},"paper_wallet":{"description":"Create a PDF with your account\'s keys printed (plain text and barcode). If the wallet is unlocked, the private keys are added as well.","title":"Paper Wallet"},"prediction_market":{"description":"Create a prediction into the future that others can agree or disagree with, leveraged with collateral.","title":"Prediction Markets"},"timed_transfer":{"description":"Initiate a transfer that will execute at a specified time.","title":"Timed transfer"},"voting":{"description":"Vote on block producers, committee members and worker proposals to influence strategic decisions and advancement of the BitShares Blockchain.","title":"Voting"}},"sync_fail":{"sub_text_1":"Please verify that your computer clock is correct.","sub_text_2":"Once you\'ve synchronized your clock, please refresh this page.

    If your clock is already correct, the API server you\'re using could be out of sync. In that case, please try a different server from the list below.","title":"Failed to sync with the API server"},"tooltip":{"add_memo_field":"Add memo text field","borrow":"Borrow %(asset)s from the network. This creates a smart contract that locks your collateral until you either modify the position or a margin call is required.","borrow_disabled":"%(asset)s is in global settlement. Margin positions can\'t be created until it is revived. See asset details page for more information","bridge":"Bridges allow deposit of any external assets and instant trade into the desired gateway asset","bridge_TRADE":"BlockTrades is a bridge which supports instant trade of assets. Details and terms can be found on https://blocktrades.us","buy_min":"You will receive at minimum this amount. If there are matching orders with a cheaper price than you specified, you will receive more than this amount.","call_limit":"This is the call price of the least collateralized margin position in the market.","call_price":"This is the call price of the position. If the feed price goes below the call price, the position will be margin called.","close_position":"Click here to close your position. You will need to have at least %(amount)s %(asset)s in order to do so.","coll_ratio":"The collateral ratio of the position is COLLATERAL * FEED PRICE / DEBT.","copy_password":"Click here to copy the password to your clipboard","copy_tip":"Click here to copy the text to your clipboard","cr_danger":"This position is currently being margin called. Consider adding collateral to bring the collateral ratio above %(mr)s or closing the position.","cr_warning":"This position has a low level of collateral, and will get margin called if the collateral ratio drops below %(mr)s. Consider adding collateral or closing the position.","create_lock_periods":"Lock Periods","debug_report":"Report an error or unexpected behavior you have found. Click to see the browser console log, create a screenshot and instructions how to best report your issue.","deposit_tip":"To complete the deposit, go to your external %(asset)s wallet and make a transfer to the address listed on this page. You will receive the deposit as soon as it has been confirmed. If a memo is shown , it is essential that you include this memo in your transfer.","disconnected":"You are not connected to an API node, try reloading or setting a new access point in the Settings","feed_price":"This is the current external feed price (median of all feed prices given by witnesses)","filter_ops":"Use this list to filter your history by operation type.","follow_user":"You are following this user","follow_user_add":"Click to Follow this user","gateway":"Gateways provide IOUs on the BitShares Blockchain that are backed by the real asset","generate":"The generated password was created by your browser, locally. No one but you has access to it. Paste it below and save a copy in a safe place","global_settle":"This asset is globally settled. Settling it will let you convert your holdings of %(asset)s to %(backingAsset)s instantly, at the global settlement price (visible in exchange header or asset details page).","global_settle_price":"This is the price at which settle orders will execute. This asset is globally settled, thus settlement orders will execute instantly","hide_asset":"Click here to hide this asset from this list.","lack_funds":"There is not enough funds to perform the operation","latest_price":"This is the latest price seen in this market.","legacy_explanation":"Hides proposals that are duplicates, spam or have been started but not active for longer than 2 months.","login":"This %(wallet_name)s wallet does not offer a traditional login but instead simply locks or unlocks a wallet that is only stored locally in your browser.

    Whenever you close the wallet it will be locked and you will effectively be logged out.","login-tooltip":{"incorrectPassword":{"begin":"Enter another password or try ","end":" to login.","model":"Local wallet"},"withoutBinFileBlock":{"begin":"If you haven’t .bin-file try ","brainkey":"Brainkey","end":" to login.","middle":" or use ","model":"Cloud wallet"}},"login-tooltips":{"incorrectPassword":{"begin":"Enter another password or try ","end":" to login.","model":"Local wallet"},"withoutBinFileBlock":{"begin":"If you haven’t .bin-file try ","brainkey":"Brainkey","end":" to login.","middle":" or use ","model":"Cloud wallet"}},"login_required":"Please login to the selected account to perform this action","margin_price":"This is the maximum price that a margin called position can be made to pay. It is also called the Squeeze Price.","market_fee":"The owner of %(asset)s charges a market fee of %(percent)s for buy orders. This fee will be subtracted from the amount you receive when your order fills, it is not paid when placing an order.","memo_tip":"You may include an optional message in the memo field. This allows you to write personal notes and is also often used by exchanges to identify deposits.","no_groups_available":"No groupings available using this API server","no_price":"There\'s no recent price available for this asset that can be used to estimate its value.","nodes_popup":"Click here to open the access settings popup that allows you to switch nodes if necessary","over_limit":"The bridge does not have enough of the desired asset for this buy order","own_account":"You hold keys for this account","print_receipt":"Click here to create pdf receipt","propose_scam":"This proposal was created by a known scammer or from someone that you blacklisted! Approval not possible.","propose_tip":"Propose another user to initiate a transaction","propose_unhide":"Do not uncheck this unless you know what you are doing","propose_unknown":"This proposal was created by or targets an unknown account (not in contacts or whitelist). Beware of scam attempts and carefully check the contained operations.","proxy_remove":"You have a proxy set, to remove it clear this input field and click save or directly click remove proxy","proxy_search":"Search for an account to be used as your proxy for voting. Your account will act as if you would be voting exactly the same as your proxy.","registration":{"accountModel":"The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!","accountName":"Account name must contain from 4 to 63 characters and must consist of latin letters, dashes, digits.","password":"Password must contain at least 8 characters. It would be better to use a complicated password containing a combination of numbers, special characters and letters.","walletModel":"The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.","whyBinFile":".bin-file - is a backup file. File is encrypted with your password, and contains all the private keys for your accounts. This file must be used during the login process."},"required_input":"Field requires a valid %(type)s","scam_account":"Account is suspected scammer","self_help":"Depending on the currently visible panel, this opens a help guide with explanations on what you currently see or the general help section of the wallet","settle":"Settling will let you convert your holdings of %(asset)s to %(backingAsset)s after a delay of %(settleDelay)s hours, at a price equal to the feed price at that time.","settle_market_prediction":"Settling a prediction market asset is only possible after its resolution.","settle_price":"This is the price at which settle orders will execute.","show_asset":"Click here to show this asset in the main list.","show_block":"Click here to show block #%(block)s where this transaction occurred.","sign_owner":"If you are the owner of this account, please check this to make sure the transaction gets signed properly. This is only necessary if you are using the owner account and that account is not included in the active permissions.","sync_no":"The current node is out of sync with the blockchain, try switching to another one","sync_yes":"The current node is in sync with the blockchain","target_collateral_ratio":"Setting a Target Collateral Ratio (TCR) will allow the blockchain to automatically sell the required amount of your collateral in order to keep your collateral ratio at or above your defined TCR when the value of your collateral decreases. To frequently sell small amounts, set a low target (eg. < 2). To sell larger amounts infrequently, set a high target (eg. > 3)","transfer_actions":"Click here to make a transfer, or to deposit/withdraw those assets that support it.","unlock_account_name":"Click to edit the account name, e.g. when your account is set as permission of another account.","update_position":"Click here to update your position. You may at any time change the debt and/or collateral levels of your position.","withdraw_address":"If you don\'t already have a %(asset)s address, please find a wallet provider and create one in order to complete the withdrawal.","withdraw_full":"Click to withdraw the full balance"},"transaction":{"amount_sell":"Amount to sell","asset_claim_fees":"claimed asset fees of {balance_amount} from {asset} fee pool","asset_reserve":"burned asset amount","at":"at","balance_id":"Balance ID","balance_owner":"Balance owner key","bidder":"Bidder","blinding_factor":"Blinding factor","bond_accept_offer":"Accepted bond offer of","bond_cancel_offer":"Cancelled bond offer","bond_claim_collateral":"Claimed collateral of","bond_create_offer":"Created bond offer","bond_pay_collateral":"Paid collateral of","borrow_amount":"Debt","borrower":"Borrower","broadcast_fail":"Failed to broadcast the transaction: %(message)s","broadcast_success":"Transaction has been broadcast","broadcasting":"Broadcasting transaction..","broadcasting_short":"Broadcasting..","burn_asset":"Burnt","by":"by","claimed":"Total claimed","coll_maint":"Collateral maintenance ratio","coll_of":"with collateral of","coll_ratio":"Initial collateral ratio","collateral":"Collateral","collateral_target":"Target Collateral","committee_member_create":"Created the committee member","confirm":"Please confirm the transaction","create_key":"Created a public key","csv":"Export to .csv","csv_tip":"Download full account history as a comma separated .csv file using Cointracking.info or raw format","cumulative_borrow_amount":"Cumulative Debt","custom":"Created a custom operation","delta_collateral":"Collateral change","delta_debt":"Debt change","deposit_to":"Deposited to account","expiration":"Expiration","feeGroups":{"account":"Account-Specific","asset":"Asset-Specific","business":"Business Administration","general":"General","market":"Market-Specific"},"feeTypes":{"_none":"Free of Charge","basic_fee":"Basic Fee","fee":"Regular Transaction Fee","fee_per_day":"Price per day","fee_per_kb":"Price per KByte Transaction Size","long_symbol":"Longer Symbols","membership_annual_fee":"Annual Membership","membership_lifetime_fee":"Lifetime Membership","premium_fee":"Fee for Premium Names","price_per_kbyte":"Price per KByte Transaction Size","price_per_output":"Price per recipient","symbol3":"Symbols with 3 Characters","symbol4":"Symbols with 4 Characters"},"feed_price":"Feed price","feed_producer":"Became a feed producer for the asset","file_write":"Wrote a file","fill_or":"Fill or kill","for":"for","from":"from","fund_pool":"funded %(asset)s fee pool with","funding_account":"Funding account","global_parameters_update":"Updated global parameters","hide":"Hide","inputs":"Inputs","market_fee":"Market fee","max_market_fee":"Maximum market fee","min_receive":"Minimum amount to receive","new_url":"Website","obtain":"to obtain","operations":"Operations","order_id":"Order ID","outputs":"Outputs","paid":"paid","publisher":"Publisher","received":"received","seller":"Seller","sent":"sent","settlement_date":"Settlement date","show_more":"Show more","title_qrcode":"Transaction QR Code","to":"to","transaction_confirmed":"Transaction confirmed","trxTypes":{"account_create":"Create account","account_transfer":"Transfer Account","account_update":"Update account","account_upgrade":"Upgrade Account","account_whitelist":"Account whitelist","all":"Show all","assert":"Assert operation","asset_bid_collateral":"Bid collateral","asset_claim_fee_pool":"Claim fee pool balance","asset_claim_fees":"Claim asset fees","asset_claim_pool":"Claim asset fee pool","asset_create":"Create asset","asset_fund_fee_pool":"Fund asset fee pool","asset_global_settle":"Global asset settlement","asset_issue":"Issue asset","asset_publish_feed":"Publish feed","asset_reserve":"Burn asset","asset_settle":"Asset settlement","asset_settle_cancel":"Cancel asset settlement","asset_update":"Update asset","asset_update_bitasset":"Update SmartCoin","asset_update_feed_producers":"Update asset feed producers","asset_update_issuer":"Update asset owner","balance_claim":"Claim balance","bid_collateral":"Collateral bid","blind_transfer":"Blinded transfer","call_order_update":"Update margin","committee_member_create":"Create committee member","committee_member_update":"Update committee member","committee_member_update_global_parameters":"Global parameters update","credit_deal_expired":"Credit deal expired","credit_deal_repay":"Repay credit deal","credit_offer_accept":"Accept credit offer","credit_offer_create":"Create credit offer","credit_offer_delete":"Delete credit offer","credit_offer_update":"Update credit offer","custom":"Custom","execute_bid":"Execute bid","fba_distribute":"Fee backed asset distribution","fill_order":"Fill order","htlc_create":"HTLC create","htlc_extend":"HTLC extend","htlc_redeem":"HTLC redeem","htlc_redeemed":"HTLC redeemed","htlc_refund":"HTLC refund","limit_order_cancel":"Cancel order","limit_order_create":"Place order","liquidity_pool_create":"Create liquidity pool","liquidity_pool_delete":"Delete liquidity pool","liquidity_pool_deposit":"Add liquidity","liquidity_pool_exchange":"Exchange liquidity","liquidity_pool_withdraw":"Remove liquidity","override_transfer":"Override transfer","proposal_create":"Create proposal","proposal_delete":"Delete proposal","proposal_update":"Update proposal","samet_fund_borrow":"Borrow flash loan","samet_fund_create":"Create flash loan","samet_fund_delete":"Delete flash loan","samet_fund_repay":"Repay flash loan","samet_fund_update":"Update flash loan","ticket_create":"Create ticket","transfer":"Transfer","transfer_from_blind":"Transfer from blinded account","transfer_to_blind":"Transfer to blinded account","vesting_balance_create":"Create vesting balance","vesting_balance_withdraw":"Withdraw vesting balance","withdraw_permission_claim":"Claim withdrawal permission","withdraw_permission_create":"Create withdrawal permission","withdraw_permission_delete":"Delete withdrawal permission","withdraw_permission_update":"Update withdrawal permission","witness_create":"Create witness","witness_update":"Update witness","witness_withdraw_pay":"Witness pay withdrawal","worker_create":"Create worker"},"vesting_balance_create":"created vesting balance of","view_json":"Show raw json","view_qr":"Show QR","view_qrcode":"Show Trx QR code","waiting":"Waiting for confirmation..","whitelist_states":{"black_listed":"Blacklisted","no_listing":"Unlisted","white_and_black_listed":"Whitelisted and blacklisted","white_listed":"Whitelisted"},"withdraw_permission_claim":"Claimed withdrawal permission for account","withdraw_permission_create":"Gave withdrawal permission for account","withdraw_permission_delete":"Deleted withdrawal permissions for account","withdraw_permission_update":"Updated withdrawal permission for account"},"transfer":{"again":"MAKE ANOTHER TRANSFER","amount":"Amount","available":"Available","back":"BACK","balances":"Balances","broadcast":"Your transfer has been broadcast to the network","broadcasting":"Broadcasting...","by":"By","cancel":"Cancel","close":"Close","confirm":"CONFIRM","copy_address":"Copy Address","copy_memo":"Copy Memo","errors":{"asset_unsupported":"Asset %(currency)s is not supported by this blockchain.","balance":"The final balance must be larger than 0","insufficient":"Insufficient funds","memo_error":"The transfer memo parsing error, please try again later.","memo_length_error":"The transfer memo length exceed, please check","minimum_amount":"Minimum withdraw amount: %(amount)s %(symbol)s","noFeeBalance":"Your balance is insufficient to pay fees using this asset, please choose another asset to pay your fees with","noFunds":"No funds","noPoolBalance":"That asset has an insufficient fee pool balance to pay the fees with. Please inform the asset owner or select another asset for paying fees.","noPoolBalanceShort":"Fee pool empty","pos":"Amount must be positive","precision":"Minimum withdraw precision value: %(precision)s","req":"Required field","unknown":"Unknown error","valid":"Please enter a valid, positive number"},"explict_price":"Explict price:","fee":"Fee","final":"Final balance","free":"Free","from":"From","header":"Transfer details","header_subheader":"Send funds from an account you control to another %(wallet_name)s account holder.","header_subheader_propose":"Propose to send funds from one %(wallet_name)s account to another. The BY account is the account proposing the transaction.","memo":"Memo / Message","memo_unlock":"Unlock your wallet/account in order to see this memo","optional":"Optional","phase_out_warning":"We recommend using the new {modal_link} modal as this page will be phased out","see":"SEE MY TRANSFERS","send":"Send","to":"To","total":"Total: ","warn_name_unable_read_memo":"Proposed sender will be unable to read this memo!"},"trx_error":{"expire":"Your transaction has expired without being confirmed, please try again later."},"utility":{"asset_input_placeholder":"Enter asset symbol","asset_select_placeholder":"Select asset","total_x_assets":"Total of %(count)s assets","total_x_items":"Total of %(count)s items","total_x_items_y_hidden":"Total of %(totelCount)s items loaded, %(count)s of those shown in pagination","total_x_markets":"Total of %(count)s markets","total_x_operations":"Total of %(count)s operations","x_assets_hidden":"%(count)s of %(total)s assets filtered out"},"validation":{"messages":{"balance":"Insufficient balance. Available only: %(balance)s %(symbol)s","email":"The field should be email","emailNamed":"%(name)s should be email","float":"The field should be float","floatNamed":"%(name)s should be float","integer":"The field should be integer","integerNamed":"%(name)s should be integer","max":"The field should be less than %(max)s","maxNamed":"%(name)s should be less than %(max)s","min":"The field should higher than %(min)s","minNamed":"%(name)s should be higher than %(min)s","number":"The field should be number","numberNamed":"%(name)s should be number","oneOf":"The field should be one of: %(list)s","oneOfNamed":"%(name)s should be one of: %(list)s","range":"The field should be in range from %(min)s to %(max)s","rangeNamed":"%(name)s should in range from %(min)s to %(max)s","required":"The field is required","requiredNamed":"%(name)s is required","test":"","types":{"array":"The field should be array","arrayNamed":"%(name)s should be array","boolean":"The field should be boolean","booleanNamed":"%(name)s should be boolean","date":"The field should be date","dateNamed":"%(name)s should be date","enum":"The field should be one of %(list)s","enumNamed":"%(name)s should be one of %(list)s","hex":"The field should be hex","hexNamed":"%(name)s should be hex","method":"The field should be method","methodNamed":"%(name)s should be method","object":"The field should be object","objectNamed":"%(name)s should be object","regexp":"The field should be regexp","regexpNamed":"%(name)s should be regexp","string":"The field should be string","stringNamed":"%(name)s should be string"},"url":"The field should be url","urlNamed":"%(name)s should be url"}},"voting":{"create_ticket":"Lock 1 {asset}","description":"The BitShares blockchain allows the holders of its core token BTS to vote on block producers (witnesses), committee members (blockchain governance), worker proposals (reimbursement for tasks and strategic decisions through BSIPs/Polls).","increase_voting_power":"Create Lock","ticket_explanation":"Obtain voting power by locking away the core token BTS.","title":"Voting"},"walkthrough":{"buy_form":"Place buy orders using this form.","buy_orders":"View all buy orders for this market.","chart_tool_duration":"Group trade data using different intervals.","chart_tool_indicators":"Add technical indicators to the price chart to identify trading opportunities.","chart_tool_zoom":"Adjust the price chart to show more or less price history.","collapsed_items":"View one or several sections of the market by expanding the drawers","create_cloud_wallet":"Access the cloud wallet using an account name and password.","create_local_wallet":"Create a local wallet and download any private keys belonging to it.","depth_chart":"Use a market depth chart to show the supply and demand at different prices.","done_label":"Done","favourite_button":"Mark this pair as a favourite in your markets list.","find_markets_tab":"This tab allows you to search and add additional markets to the \'my markets\' tab.","language_flag":"Choose from 9 different languages to use in the DEX.","my_markets":"This tab lists commonly used markets.","next_label":"Next","panel_hide":"You can hide the panel to have more room","personalize":"Change the default layout in the personalize settings","prev_label":"Back","price_alerts":"Set alerts to get notifications if the price fluctuates","price_chart":"View price action of an asset using the price chart.","restore_account":"Restore a wallet using your backup file.","sell_form":"Place sell orders using this form.","sell_orders":"View all sell orders for this market.","skip_label":"Skip","switch_button":"Switch the trading pairs using this button.","vertical_lock":"Disable auto scroll to scroll through the order book","vertical_order":"View all orders for this market, including spread and latest order price"},"wallet":{"accept":"Accept","account_public":"Account Name (Public)","active_wallet":"Active Local Wallet","all_set":"You\'re all set!","ask_to_select_wallet":"Please select a key file","back":"Back","backup_brainkey":"Backup Brainkey","backup_explain":"Clicking on the button below will generate a .bin-file. This file is encrypted with your wallet password, and contains all the private keys for your accounts. It can be used to restore your wallet, or move it to a different computer/browser.","backup_login":"Backup & login","backup_new_account":"Congratulations, you\'ve just created a new account on the %(wallet_name)s exchange powered by the BitShares blockchain! It is strongly recommended that you make a backup of your wallet now. Without a backup there is no way to restore your account if something happens to your computer.","backup_types":"backup types","backup_warning":"It appears that your private key files are not backed up. For security reasons we recommend users do not log in without backing up their private keys.","balance_claim_lookup":"Lookup balances","balance_claims":"Balance Claims","brainkey":"Brainkey","brainkey_backed_up":"This brainkey was last backed up","brainkey_not_backed_up":"This brainkey has never been backed up","brainkey_not_verified":"This Brainkey is not verified","brainkey_reset_success":"Sequence reset. In order to regenerate your private keys from the wallet brain key, refresh your browser then unlock the wallet.","brainkey_seq_reset":"Reset brainkey sequence","brainkey_seq_reset_button":"Reset now","brainkey_seq_reset_text":"Use this to reset the sequence counter used to derive private keys from the wallet brainkey.
    It can be used to force a regeneration of private keys from your wallet brain key.","brainkey_w1":"To complete your backup, print this out, or write it down.","brainkey_w2":"Anyone with access to your recovery key will","brainkey_w3":"have access to funds within this local wallet.","bts_09_export":"BTS 0.9.3c key export file (.json)","cancel":"Cancel","change":"Change to %(name)s","change_backup":"Now that you\'ve changed your password, we highly recommend making a new backup.","change_password":"Change Password","change_success":"Password successfully changed!","change_wallet":"Change Local Wallet","claim_balance":"Claim Balance","claim_balances":"Claim Balances","claim_later":"Once you\'ve imported the keys, you can claim these balances to an account of your choosing.","confirm":"Wallet password (confirm)","confirm_error":"The confirmation does not match the password","confirm_password":"Confirm Password","congrat":"Congratulations, you\'re ready!","console":"Local Wallet Management Console","create":"Create","create_a":"Create a new blockchain account","create_account_password_text":"The keys for this new account will be derived using your password. Nothing is stored in the browser or in a central server, so you will need to ensure you remember this password!! Store it using a password manager or by writing it down manually.","create_account_text":"The account name you choose needs to be unique, as it will be registered publicly on the blockchain and will be your identifer for any transactions you make.","create_backup":"Create Backup","create_backup_of":"Create backup now","create_importkeys_text":"In order to import keys, you first need to create a local wallet to contain the keys. Complete the dialog below to create a new local wallet.","create_password":"Create a new account using a password","create_success":"Your local wallet has been created","create_text":"The %(wallet_name)s local wallet is stored in your browser, it is not stored in the cloud. A wallet can contain multiple accounts and can be easily transferred between browsers and computers using a backup file.","create_w_a":"Create a local wallet containing an account","create_wallet":"Create new local wallet","create_wallet_backup":"Create new wallet from backup","current_pass":"Current password","custom_brainkey":"Use a custom brainkey (advanced)","delete_confirm_line1":"Are you ABSOLUTELY sure?","delete_confirm_line2":"Unexpected bad things will happen if you don’t read this!","delete_confirm_line3":"This action CANNOT be undone, and if you do not have a backup this local wallet will be gone.","delete_confirm_line4":"Yes, delete wallet %(name)s","delete_wallet":"Delete Local Wallet","delete_wallet_name":"Delete Local Wallet (%(name)s)","different_file_type":"Have a different file type?","done":"Done","dont_ask_for_backup":"Don\'t ask me to back up again","download":"Download","enter_password":"Password","existing_password":"Existing Password","first_account_paid":"Since this is your first account, a faucet will pay the registration fee for you.","generated":"Generated password","go_get_started":"Getting Started","has_wallet":"When you create your first %(wallet_name)s account, a %(wallet_name)s local wallet will be automatically created as well and stored in your browser. This local wallet is encrypted with your password, and will contain any private keys belonging to your accounts. It is important that you take the time to backup this wallet once created!","import_20_notice1":"Import your BTS 2.0+ BACKUP first","import_20_notice2":"(if you have one)","import_backup":"Import %(wallet_name)s 2.0 backup (.bin-file)","import_backup_choose":"Please select your backup file in the dialog below. This is completely safe as the file is not uploaded anywhere and never leaves your browser.","import_balance":"Import balance(s)","import_bts":"Import a BTS 0.9.3c key export","import_bts1":"Import from BitShares 0.9.3c","import_key_success":"Successfully imported %(count)s keys.","import_keys":"Import Keys","import_keys_tool":"Key Import Tool","import_pass_match":"Password matches. Decrypting the backup now...","import_password":"Enter import file password","import_private_key":"Import a private key","invalid_format":"Invalid Format","key_file":"Key file","key_file_bin":"Key-file or .bin-file","last_backup":"Last backup","link_account":"Account","link_deposit":"Deposits","link_transfer":"Transfers","loading_balances":"Looking for unclaimed balances","local_switch":"Local wallet detected matching the given password, switching to local wallet mode","login_type":"Login type selection","must_be_ltm":"The fee paying account must be a lifetime member to perform that operation.","name":"Local Wallet Name","need_backup":"This local wallet needs a backup","never_backed_up":"This local wallet has never been backed up, you should create a backup now!","new_confirm":"Confirm new password","new_password":"New password","new_wallet":"New Local Wallet","new_wallet_name":"New Local Wallet Name","no_accounts":"No accounts found","no_balance":"No unclaimed balances found","no_wallet":"You do not have a local wallet yet?","noneed_backup":"No backup is needed","not_first_account":"Since you already have an account, you will need to pay for this new account yourself. In order to do so, your account needs to have lifetime membership, which can be bought in the account page.","ok_done":"OK, take me to the Portfolio","pass_incorrect":"Incorrect password","pass_length":"The password must contain at least %(minLength)s characters. Ideally you should use 20 or more, and a combination of numbers, special characters and letters.","password":"Wallet password","password_crucial":"In case you haven\'t already done so, it is crucial that you take the time to write down your account name and password now, whether it be on paper, a password manager, or somewhere else. If you lose or forget your account name or this password your account will be lost, we cannot help you get it back.","password_lose_warning":"IMPORTANT: If you forget your account name or pass phrase you will be unable to access your account, we cannot reset or restore your password! Make sure you memorize or write down your account name and password!","password_model":"Cloud Wallet","password_model_1":"The cloud wallet uses a password in combination with your account name to generate your private keys on the fly. It restricts you to only logging in with one account at a time, in return for ease of use and convenience.","password_model_2":"The cloud wallet lets you login to your wallet from anywhere using only your account name and password, but your password is vulnerable to brute-force attacks which means it is important to use a very long password, ideally 20+ characters!","password_model_3":"
  • Single account
  • Easy login
  • Moderate security
  • ","password_show":"Show me my password","paste_private":"Paste private keys here (Wallet Import Format - WIF)","pwd4brainkey":"Enter your password to show your brainkey","read_more":"Read more about %(wallet)s and %(backup)s.","ready_to_restore":"Ready to Restore","reenter_brainkey":"Re-Enter Brainkey","remember_me":"Remember me","remember_me_explanation":"Turn \'Remember Me\' off to disable remembering your account name and other personal settings.","reset":"Reset","restore":"Restore Local Wallet from Backup","restore_backup":"Restore Backup","restore_it_here":"Restore it here","restore_key_file":"Restore key file..","restore_success":"Successfully restored (%(name)s) wallet","restore_wallet_of":"Restore (%(name)s Wallet)","select_wallet":"Select key file","setup_wallet":"Setup your local wallet","show_brainkey":"Show Brainkey","step_1":"Create a wallet","step_2":"Create a backup","step_3":"Getting Started","submit":"Submit","switch_model_password":"Switch to cloud wallet","switch_model_wallet":"Switch to local wallet","tips_account":"See your new account","tips_dashboard":"See your Portfolio","tips_deposit":"Make a deposit","tips_explore":"Now that you\'ve successfully created an account and downloaded the backup, it\'s time to get started. Click on one of the links below to start exploring.","tips_explore_pass":"Now that you\'ve successfully created an account and backed up your password, it\'s time to get started. Click on one of the links below to start exploring.","tips_header":"You can also find these same links in the top menu, and in the drop-down menu next to your account name.","tips_login":"IMPORTANT: There is no login/logout functionality here, you merely unlock your wallet when you wish to make a transaction.","tips_settings":"Change the settings","tips_transfer":"Make a transfer","title":"Wallet","totals":"Asset Totals","unclaimed":"Unclaimed balances belonging to these keys","unclaimed_vesting":"Unclaimed (vesting)","understand_1":"I understand that no one can recover my password if I lose or forget it","understand_2":"I have written down or otherwise stored my password","understand_3":" I understand that I will lose access to my funds if I lose my password","use_different":"Use different file","use_password":"Use a cloud wallet","use_wallet":"Use a local wallet","using":"Using:","verified":"Verified","verify":"I\'ve written it down","verify_prior_backup":"Verify Prior Backup","wallet_browser":"Your Web Browser is your Wallet","wallet_created":"Local Wallet Created","wallet_crucial":"Your local wallet is only stored in your browser, so it is crucial that you create a backup that will enable you to recover your wallet if the data in your browser is lost! No one else can restore your account if you lose your backup.","wallet_exist":"A local wallet called that already exists, please choose a new name","wallet_exist_with_name":"A local wallet called (%(name)s) already exists, please change the name","wallet_lose_warning":"IMPORTANT: If you lose your local wallet or your pass phrase you will be unable to access any of your funds again. Make sure you store the backup somewhere safe, and memorize or write down your password!","wallet_model":"Local Wallet","wallet_model_1":"The local wallet stores the wallet in your browser. It is encrypted with a password that you choose, and can be backed up using either a brainkey or an encrypted binary file that contains all the private keys. The local wallet lets you use multiple accounts at the same time.","wallet_model_2":"The local wallet has the best security, but is restricted to your current browser and computer. To migrate the wallet to another browser or computer, you may use the backup file or brainkey.","wallet_model_3":"
  • Multiple accounts
  • Wallet file backup required
  • High security
  • ","wallet_move":"This backup file can also be used to move your local wallet to different computers or different browsers. In order to restore your local wallet using this backup you will also need your password!","wallet_password":"Login anywhere using your password","wallet_types":"wallet types","wif_associated_accounts":"Associated Account(s): ","wif_import_error":"Please enter a valid WIF","wif_length_error":"Incorrect input length"}}')}},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var a=l[e]={id:e,loaded:!1,exports:{}};return i[e].call(a.exports,a,a.exports,c),a.loaded=!0,a.exports}c.m=i,c.amdD=function(){throw new Error("define cannot be used indirect")},c.amdO={},e=[],c.O=(t,a,s,n)=>{if(!a){var r=1/0;for(d=0;d=n)&&Object.keys(c.O).every((e=>c.O[e](a[i])))?a.splice(i--,1):(o=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[a,s,n]},c.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return c.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,s){if(1&s&&(e=this(e)),8&s)return e;if("object"==typeof e&&e){if(4&s&&e.__esModule)return e;if(16&s&&"function"==typeof e.then)return e}var n=Object.create(null);c.r(n);var r={};t=t||[null,a({}),a([]),a(a)];for(var o=2&s&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>r[t]=()=>e[t]));return r.default=()=>e,c.d(n,r),n},c.d=(e,t)=>{for(var a in t)c.o(t,a)&&!c.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((t,a)=>(c.f[a](e,t),t)),[])),c.u=e=>(({25:"deposit-withdraw",39:"help",58:"QuickTrade",214:"explorer",397:"existing-account",521:"asset",571:"settings",584:"block",663:"exchange",697:"news",809:"account",810:"pm",882:"wallet",884:"dashboard-accounts",966:"dashboard",970:"poolmart",975:"create-worker"}[e]||e)+"."+{14:"98453bcd5736db5e2135",25:"490c548fde948ece93a8",39:"3f62ed8b25fb740ab474",49:"da864c8eccba4deee0c1",58:"69413ba101a47601ebd7",164:"c6862824e72909a8baf8",197:"c831281602681c43318e",214:"813f0bc70ed57d25da7b",223:"3bff0ef3d6281fc3ae29",267:"1d43a81af194ddfd621f",327:"fb326645625d7c1b3348",343:"e2e1c9aacdb9738f3427",397:"ddd6ec90176e3c67b535",466:"ddd423e4d0ed5761849b",473:"4c6a1094467bf27b5c48",478:"1d49f70fcbd4161afe21",521:"af0294420e02411fe50f",571:"df8b2ad9ab7657c64a63",584:"85e46b23ef1417ead8ba",590:"bd3163cb1efada87d37d",605:"e135fa4a9877c501d517",663:"090f2e511bec8e8e2598",683:"d6d4fd0da050077a5792",695:"41cc3e53e3eb66ec14c8",696:"df93bf20d361d27511cf",697:"e7633e4bb2066654b5a7",809:"3c87ab9e7f74df336459",810:"cd9e4e82a1d8a9dbc1dc",820:"b3393903813695e5ece1",835:"a294bebbb8566893b414",857:"bded3df964c8a229dce7",882:"63d37f514b34db39975f",884:"8ac18cb9479de97a80ab",891:"032160ebb26d9f734c10",941:"e9f799b5c4cf5252459f",966:"0ad86fd086b5c213b0e1",970:"c8970afdf7588c062fbb",975:"4ca8e3157473e80f1d6a"}[e]+".js"),c.miniCssF=e=>({25:"deposit-withdraw",214:"explorer",397:"existing-account",571:"settings",663:"exchange",809:"account",810:"pm",882:"wallet",884:"dashboard-accounts",966:"dashboard"}[e]+"."+{25:"15fb9ca18e93d4e66fae",214:"46703dcd69e5bac13011",397:"f1f9242ac510a16e0088",571:"570534c5962261cb9a84",663:"a0636bca14dcde6e4af7",809:"15fb9ca18e93d4e66fae",810:"9d4b061c2fb181e49c3b",882:"f1f9242ac510a16e0088",884:"15fb9ca18e93d4e66fae",966:"15fb9ca18e93d4e66fae"}[e]+".css"),c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},n="BitShares2-light:",c.l=(e,t,a,r)=>{if(s[e])s[e].push(t);else{var o,i;if(void 0!==a)for(var l=document.getElementsByTagName("script"),d=0;d{o.onerror=o.onload=null,clearTimeout(h);var n=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach((e=>e(a))),t)return t(a)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=p.bind(null,o.onerror),o.onload=p.bind(null,o.onload),i&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),c.p="",r=e=>new Promise(((t,a)=>{var s=c.miniCssF(e),n=c.p+s;if(((e,t)=>{for(var a=document.getElementsByTagName("link"),s=0;s{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",n.onerror=n.onload=r=>{if(n.onerror=n.onload=null,"load"===r.type)a();else{var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+i+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=o,l.request=i,n.parentNode.removeChild(n),s(l)}},n.href=t,document.head.appendChild(n)})(e,n,t,a)})),o={143:0},c.f.miniCss=(e,t)=>{o[e]?t.push(o[e]):0!==o[e]&&{25:1,214:1,397:1,571:1,663:1,809:1,810:1,882:1,884:1,966:1}[e]&&t.push(o[e]=r(e).then((()=>{o[e]=0}),(t=>{throw delete o[e],t})))},(()=>{var e={143:0};c.f.j=(t,a)=>{var s=c.o(e,t)?e[t]:void 0;if(0!==s)if(s)a.push(s[2]);else if(/^(397|882)$/.test(t))e[t]=0;else{var n=new Promise(((a,n)=>s=e[t]=[a,n]));a.push(s[2]=n);var r=c.p+c.u(t),o=new Error;c.l(r,(a=>{if(c.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var n=a&&("load"===a.type?"missing":a.type),r=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",o.name="ChunkLoadError",o.type=n,o.request=r,s[1](o)}}),"chunk-"+t,t)}},c.O.j=t=>0===e[t];var t=(t,a)=>{var s,n,[r,o,i]=a,l=0;if(r.some((t=>0!==e[t]))){for(s in o)c.o(o,s)&&(c.m[s]=o[s]);if(i)var d=i(c)}for(t&&t(a);lc(33396)));d=c.O(d)})(); \ No newline at end of file diff --git a/index.html b/index.html index 711fb51..713e661 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -BitShares 7dd98d3

    Loading...

    Loading...