From 7aa71f62b2d988373b1c521268c673bd9dbef395 Mon Sep 17 00:00:00 2001 From: serdrdoor Date: Thu, 16 Apr 2020 21:34:45 +0300 Subject: [PATCH] - add PRIZM and it markets - add custom logic for public key PZM - add Tab for listed projects - change endpoint gateApi - add IDENA to candidate for listing --- app/api/apiConfig.js | 2 +- app/assets/asset-symbols/rudex.pzm.png | Bin 0 -> 2208 bytes app/assets/asset-symbols/symbols.js | 1 + app/assets/coins-logo/coins.js | 1 + app/assets/coins-logo/dna.png | Bin 0 -> 20594 bytes app/assets/locales/locale-en.json | 2 + app/assets/locales/locale-ru.json | 2 + app/branding.js | 21 +++- .../DepositWithdraw/rudex/RuDexGateway.jsx | 3 + .../rudex/RuDexGatewayDepositRequest.jsx | 4 + .../rudex/RuDexWithdrawModal.jsx | 76 ++++++++++-- app/components/Listing/CoinCardListing.jsx | 101 +++++++-------- app/components/Listing/ListingPage.css | 4 +- app/components/Listing/ListingPage.jsx | 116 ++++++++++++++++-- app/lib/common/RuDexMethods.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 17 files changed, 261 insertions(+), 78 deletions(-) create mode 100644 app/assets/asset-symbols/rudex.pzm.png create mode 100644 app/assets/coins-logo/dna.png diff --git a/app/api/apiConfig.js b/app/api/apiConfig.js index 123569e842..06a073bf57 100644 --- a/app/api/apiConfig.js +++ b/app/api/apiConfig.js @@ -22,7 +22,7 @@ export const openledgerAPIs = { }; export const rudexAPIs = { - BASE: "https://gateway.rudex.org/api/v3_0", + BASE: "https://gateway.rudex.org/api/rudex", COINS_LIST: "/coins", NEW_DEPOSIT_ADDRESS: "/simple-api/initiate-trade" }; diff --git a/app/assets/asset-symbols/rudex.pzm.png b/app/assets/asset-symbols/rudex.pzm.png new file mode 100644 index 0000000000000000000000000000000000000000..1275b9ccb72b4deed9db705b03eb586b1392271e GIT binary patch literal 2208 zcma)8`#%$k8{WurJ#+gqLyft&vD{O+HMhBxp)8S!owWFdqHuYUBP!>;>>nZ+Fe20 zQIkarVtw<@G(59RFZEwlh4VeNptF84ejI0HAN6lM^xgQxh!b;`j>^qFokFWtrNJq4 zT^mm7s_p0ZcLcYx$-OKfE7MB%;jwDg0g2*tkl z#cexKjA7g2UZE@Dr4s!m&Mrl?|6yMq?mSlSnVO>)l8kwSt;T91-lJw>-$bqsYglaw zE=-q1uowHaA?*3j4gk$zdq8K`sGvuwP1)4sktYQ<VZIIOM3Tu5<(Ad(>st@r{BbmeY+tfBspDILl19U96RLck~Ys6`Fr` zx`I-(cu0Vp*-*RHnYfdAC4h~}8h$Gu$m-tQoXIi8Z-~T23)*}XH7UTy;7g_7>rXAn zI3y4RC7%{dWc$FsWO^UHzI$rzBGuZdHNn+|+Ys+jg&M?VRi|#)&SxCDkxi^b!Lr_@ zD&_)I`B@_TR%BtRK^D}XDsH+QT#dcT^a7hN zccA?PRs7T5R!j^p?_YSbIm_*d@FK(-e_OIicps}JqbVi7jzO5;0Uvk?GJQRhFF^mL{{guoGH$7u0a}H!wkesKs`->K`>M`X&d7KaIL3g^w&}v8Sar8J zs@^1Nv}pA$pqkbF8(|VQBL!r%JoIrSkCh(ga7pp@epTO{rp3)frU(w^9@cu{+F@T7 z>Q|8{)e@4h#&G)ZTjN*(neKPOEX$^Lve|O{R`Ur-Yk1#rlNH}jFpemK8<7Hn^r?I! zn6l1f?1T;bwbz-ibu=un%w=((;=$rci`$>u<|UYTh1Hi4x@Xk-cJQz?nnA#s>(N(M zeCP5eJ!xNkW7F0q$5;L5%vRT|upz**lbv-dANvh5U*8Dy6R0ejtp&6g|LB?O`YTW2CEAXE6r-fDvW>qa9p95L7~6%e1; z`H$$Rz*_%o!_@#a@DnL7XkpyFYRU{vWBV7k^qxs;+Xbtn9An|&Yiv9^uhhRUr@@-J z|JSj;yiaS7A}_yyRl4b%!M5$z#d|{t`tEPoE;h9>M)rBrOn46P!2)W*OZ{XU=E{^= zXkgJ2K~Ji{RwZ)d1-r{)F-D0h8P-QVyqn^51Y8xu&n{g&e*OJ7!^wR&S_TIJ+ccmN zE9_3%Tpz^$oHC5c5Sz!IkIL1leZ|(*7tmS3z_x9?CC1B-(0HlBztaB>UnDZ@T|~~n z!LiqGwVxFuYGSa=;KHrsUZmVW$Ju30nR3{i2Z10WiUX7!EXDckdQ>aL$cm!UO+$y! z*73?ZT!1+b;4#{8FB3t^McG!a_qr+dct9SG%DUnJu6SE7*XQ0!J?9~R=8U59#2S=9 zrn#oCLV%wsKz9uW07nwXlg38HGsUQKAWMA)3`f$#le|X7v&E@}XQRnOB7KsgXbjv}33d?z!$AM$0@ir|xlv1))QzB;+SXu>RY&OjBWZbyhLy&1 v$abNv$@})C=~k;Oocoqh^{)=I%BB%ZG*RT#fU2?Zp#Zozc%a$#f%pFpYnAfz literal 0 HcmV?d00001 diff --git a/app/assets/asset-symbols/symbols.js b/app/assets/asset-symbols/symbols.js index 95604f82ab..c16c153a55 100644 --- a/app/assets/asset-symbols/symbols.js +++ b/app/assets/asset-symbols/symbols.js @@ -19,6 +19,7 @@ require("file-loader?name=asset-symbols/[name].png!./rudex.eth.png"); require("file-loader?name=asset-symbols/[name].png!./rudex.golos.png"); require("file-loader?name=asset-symbols/[name].png!./rudex.steem.png"); require("file-loader?name=asset-symbols/[name].png!./rudex.smoke.png"); +require("file-loader?name=asset-symbols/[name].png!./rudex.pzm.png"); require("file-loader?name=asset-symbols/[name].png!./rudex.dgb.png"); require("file-loader?name=asset-symbols/[name].png!./rudex.gbg.png"); diff --git a/app/assets/coins-logo/coins.js b/app/assets/coins-logo/coins.js index bd7d2cca8d..2ab68679e4 100644 --- a/app/assets/coins-logo/coins.js +++ b/app/assets/coins-logo/coins.js @@ -9,5 +9,6 @@ require("file-loader?name=coins-logo/[name].png!./neo.png"); require("file-loader?name=coins-logo/[name].png!./ltc.png"); require("file-loader?name=coins-logo/[name].png!./doge.png"); require("file-loader?name=coins-logo/[name].png!./dash.png"); +require("file-loader?name=coins-logo/[name].png!./dna.png"); require("file-loader?name=coins-logo/[name].png!./pzm.png"); diff --git a/app/assets/coins-logo/dna.png b/app/assets/coins-logo/dna.png new file mode 100644 index 0000000000000000000000000000000000000000..59f72cd1a23867c375e099c6c8c24cae3fdf53b5 GIT binary patch literal 20594 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 { if (!quotes.length) return true; @@ -362,6 +367,18 @@ export function getListingCoins() { goal: 10000, votes: 0 }, + { + name: "Idena", + ticker: "DNA", + account: "rudex-idena", + goal: 10000, + votes: 0 + } + ]; +} + +export function getListedCoins() { + return [ { name: "PRIZM", ticker: "PZM", diff --git a/app/components/DepositWithdraw/rudex/RuDexGateway.jsx b/app/components/DepositWithdraw/rudex/RuDexGateway.jsx index 2f1a9ba125..34acd45355 100644 --- a/app/components/DepositWithdraw/rudex/RuDexGateway.jsx +++ b/app/components/DepositWithdraw/rudex/RuDexGateway.jsx @@ -241,6 +241,9 @@ class RuDexGateway extends React.Component { receive_asset={coin.symbol} receive_coin_type={coin.symbol.toLowerCase()} supports_output_memos={coin.supportsMemos} + supportsPublicKey={ + coin.supportsPublicKey || false + } memoType={coin.memoType} min_amount={coin.minAmount} gateFee={coin.gateFee} diff --git a/app/components/DepositWithdraw/rudex/RuDexGatewayDepositRequest.jsx b/app/components/DepositWithdraw/rudex/RuDexGatewayDepositRequest.jsx index 7855b53a2f..36e6213c33 100644 --- a/app/components/DepositWithdraw/rudex/RuDexGatewayDepositRequest.jsx +++ b/app/components/DepositWithdraw/rudex/RuDexGatewayDepositRequest.jsx @@ -33,6 +33,7 @@ class RuDexGatewayDepositRequest extends React.Component { deprecated_message: PropTypes.string, action: PropTypes.string, supports_output_memos: PropTypes.bool.isRequired, + supportsPublicKey: PropTypes.bool.isRequired, memoType: PropTypes.string, min_amount: PropTypes.number, gateFee: PropTypes.number, @@ -572,6 +573,9 @@ class RuDexGatewayDepositRequest extends React.Component { output_supports_memos={ this.props.supports_output_memos } + output_supportsPublicKey={ + this.props.supportsPublicKey + } memo_prefix={withdraw_memo_prefix} modal_id={withdraw_modal_id} min_amount={this.props.min_amount} diff --git a/app/components/DepositWithdraw/rudex/RuDexWithdrawModal.jsx b/app/components/DepositWithdraw/rudex/RuDexWithdrawModal.jsx index 5e116a052b..f0245c690f 100644 --- a/app/components/DepositWithdraw/rudex/RuDexWithdrawModal.jsx +++ b/app/components/DepositWithdraw/rudex/RuDexWithdrawModal.jsx @@ -28,6 +28,7 @@ class RuDexWithdrawModal extends React.Component { url: PropTypes.string, output_wallet_type: PropTypes.string, output_supports_memos: PropTypes.bool.isRequired, + output_supportsPublicKey: PropTypes.bool.isRequired, amount_to_withdraw: PropTypes.string, balance: ChainTypes.ChainObject, min_amount: PropTypes.number, @@ -50,6 +51,10 @@ class RuDexWithdrawModal extends React.Component { withdraw_address_selected: WithdrawAddresses.getLast( props.output_wallet_type ), + withdraw_publicKey: "", + withdraw_publicKey_not_empty: this.props.output_supportsPublicKey + ? false + : true, memo: "", withdraw_address_first: true, empty_withdraw_value: false, @@ -245,16 +250,37 @@ class RuDexWithdrawModal extends React.Component { this._validateAddress(new_withdraw_address); } + onWithdrawPublicKeyChanged(e) { + let new_withdraw_publicKey = e.target.value.trim(); + this.setState({ + withdraw_publicKey: new_withdraw_publicKey, + withdraw_publicKey_not_empty: + new_withdraw_publicKey != "" ? true : false + }); + } + _validateAddress(new_withdraw_address, props = this.props) { validateAddress({ url: props.url, walletType: props.output_wallet_type, newAddress: new_withdraw_address - }).then(isValid => { + }).then(json => { + if (typeof json === "undefined") { + json = {isValid: false}; + } if (this.state.withdraw_address === new_withdraw_address) { this.setState({ withdraw_address_check_in_progress: false, - withdraw_address_is_valid: isValid + withdraw_address_is_valid: json.isValid, + withdraw_publicKey: json.hasOwnProperty("publicKey") + ? json.publicKey + : "", + withdraw_publicKey_not_empty: this.props + .output_supportsPublicKey + ? json.hasOwnProperty("publicKey") + ? true + : false + : true }); } }); @@ -283,12 +309,12 @@ class RuDexWithdrawModal extends React.Component { withdraw_amount < this.props.min_amount / utils.get_asset_precision(this.props.asset_precision); - console.log( + /* console.log( "X", withdraw_amount, this.props.min_amount / - utils.get_asset_precision(this.props.asset_precision) - ); + utils.get_asset_precision(this.props.asset_precision) + );*/ this.setState({minAmountError: lessThanMinimum}); return lessThanMinimum; } @@ -353,6 +379,9 @@ class RuDexWithdrawModal extends React.Component { this.props.output_coin_type + ":" + this.state.withdraw_address + + (this.props.output_supportsPublicKey + ? ":" + this.state.withdraw_publicKey + : "") + (this.state.memo ? ":" + new Buffer(this.state.memo, "utf-8") : ""), @@ -415,6 +444,9 @@ class RuDexWithdrawModal extends React.Component { this.props.output_coin_type + ":" + this.state.withdraw_address + + (this.props.output_supportsPublicKey + ? ":" + this.state.withdraw_publicKey + : "") + (this.state.memo ? ":" + new Buffer(this.state.memo, "utf-8") : ""), @@ -483,6 +515,7 @@ class RuDexWithdrawModal extends React.Component { _getAvailableAssets(state = this.state) { const {from_account, feeStatus} = state; + function hasFeePoolBalance(id) { if (feeStatus[id] === undefined) return true; return feeStatus[id] && feeStatus[id].hasPoolBalance; @@ -552,7 +585,7 @@ class RuDexWithdrawModal extends React.Component { } render() { - let {withdraw_address_selected, memo} = this.state; + let {withdraw_address_selected, withdraw_publicKey, memo} = this.state; let storedAddress = WithdrawAddresses.get( this.props.output_wallet_type ); @@ -842,6 +875,34 @@ class RuDexWithdrawModal extends React.Component { {invalid_address_message} + {/* for PublicKey input (ex.PRIZM) */} + {this.props.output_supportsPublicKey ? ( +
+ +
+
+ +
+
+
+ ) : null} + {/* Memo input */} {withdraw_memo} @@ -851,7 +912,8 @@ class RuDexWithdrawModal extends React.Component { disabled={ this.state.error || this.state.balanceError || - this.state.minAmountError + this.state.minAmountError || + !this.state.withdraw_publicKey_not_empty } type="primary" onClick={this.onSubmit.bind(this)} diff --git a/app/components/Listing/CoinCardListing.jsx b/app/components/Listing/CoinCardListing.jsx index ec48e047c3..ee32f9f97e 100644 --- a/app/components/Listing/CoinCardListing.jsx +++ b/app/components/Listing/CoinCardListing.jsx @@ -15,13 +15,6 @@ class CoinCardListing extends React.Component { super(props); this.props.coin.votes = 0; - - this.state = { - key: this.props.key, - rank: this.props.rank, - - coin: this.props.coin - }; } triggerSend(asset) { @@ -90,42 +83,46 @@ class CoinCardListing extends React.Component { {coin.goal} -
-
- - :  + {coin.listed ? ( + "" + ) : ( +
+
+ + :  +
+ {coin.votes} + {coin.soon === true ? ( + + { + + } +   Donate + + ) : ( + + { + + } +   Donate + + )}
- {coin.votes} - {coin.soon === true ? ( - - { - - } -   Donate - - ) : ( - - { - - } -   Donate - - )} -
+ )}
@@ -138,14 +135,18 @@ class CoinCardListing extends React.Component {
-
- { - - } -
+ {coin.listed ? ( + "" + ) : ( +
+ { + + } +
+ )}
diff --git a/app/components/Listing/ListingPage.css b/app/components/Listing/ListingPage.css index e0590b70ab..53cfec389e 100644 --- a/app/components/Listing/ListingPage.css +++ b/app/components/Listing/ListingPage.css @@ -212,10 +212,10 @@ body .listing_button .ant-btn[disabled]:hover { border-radius: 3px; } -@media only screen and (max-width: 768px) { +@media only screen and (max-width: 468px) { .listingTable__cell.listingTableVotes a { position: absolute; - right: 100px; + right: 20px; } } diff --git a/app/components/Listing/ListingPage.jsx b/app/components/Listing/ListingPage.jsx index af9ac4ed1e..d6c3c5768c 100644 --- a/app/components/Listing/ListingPage.jsx +++ b/app/components/Listing/ListingPage.jsx @@ -5,7 +5,7 @@ import {Apis} from "bitsharesjs-ws"; import {FetchChain} from "bitsharesjs"; import CoinCardListing from "./CoinCardListing"; -import {getListingCoins} from "../../branding"; +import {getListingCoins, getListedCoins} from "../../branding"; import {Tabs, Tab} from "../Utility/Tabs"; import AssetImage from "../Utility/AssetImage"; import Translate from "react-translate-component"; @@ -18,7 +18,8 @@ class ListingPage extends React.Component { super(); this.state = { ListingNotice1Informed: false, - coins: [] + coins: [], + updating: true }; } @@ -42,6 +43,15 @@ class ListingPage extends React.Component { }); } + componentDidMount() { + setInterval(() => this._getBalances(), 1000); + } + + shouldComponentUpdate(nextProps, nextState) { + if (nextState.updating == false) return true; + return false; + } + render() { let current_locale = SettingsStore.getState().settings.get("locale"); @@ -92,8 +102,8 @@ class ListingPage extends React.Component { >
- {this.state.coins.length === - 0 ? ( + {this.state.updating === + true ? (
@@ -108,16 +118,40 @@ class ListingPage extends React.Component {
+ {/* LISTED*/} + +