+
);
}
}
module.exports = {
path: '/~witnesses(/:witness)',
- component: connect(
- state => {
- const current_user = state.user.get('current');
- const username = current_user && current_user.get('username');
- const current_account =
- current_user && state.global.getIn(['accounts', username]);
- const witness_votes =
- current_account && current_account.get('witness_votes').toSet();
- const current_proxy =
- current_account && current_account.get('proxy');
- const witnesses = state.global.get('witnesses', List());
- const witnessVotesInProgress = state.global.get(
- `transaction_witness_vote_active_${username}`,
- Set()
- );
- return {
- head_block: state.global.getIn(['props', 'head_block_number']),
- witnesses,
- username,
- witness_votes,
- witnessVotesInProgress,
- current_proxy,
- };
- },
- dispatch => {
- return {
- accountWitnessVote: (username, witness, approve) => {
- userActionRecord('account_witness_vote', {
- username,
- witness,
- });
- dispatch(
- transactionActions.broadcastOperation({
- type: 'account_witness_vote',
- operation: { account: username, witness, approve },
- confirm: !approve
- ? 'You are about to remove your vote for this witness'
- : null,
- })
- );
- },
- accountWitnessProxy: (account, proxy, stateCallback) => {
- userActionRecord('account_witness_proxy', {
- username: account,
- proxy,
- });
- dispatch(
- transactionActions.broadcastOperation({
- type: 'account_witness_proxy',
- operation: { account, proxy },
- confirm: proxy.length
- ? 'Set proxy to: ' + proxy
- : 'You are about to remove your proxy.',
- successCallback: () => {
- dispatch(
- globalActions.updateAccountWitnessProxy({
- account,
- proxy,
- })
- );
- stateCallback({
- proxyFailed: false,
- proxy: '',
- });
- },
- errorCallback: e => {
- console.log('error:', e);
- stateCallback({ proxyFailed: true });
- },
- })
- );
- },
- setRouteTag: () =>
- dispatch(
- appActions.setRouteTag({ routeTag: 'vote_to_witness' })
- ),
- };
- }
- )(Witnesses),
+ component: Witnesses,
};
diff --git a/src/app/components/pages/Witnesses.scss b/src/app/components/pages/Witnesses.scss
index 915b439fb..3cdaddbf4 100644
--- a/src/app/components/pages/Witnesses.scss
+++ b/src/app/components/pages/Witnesses.scss
@@ -2,19 +2,19 @@
.Witnesses {
.extlink path {
transition: 0.2s all ease-in-out;
- @include themify($themes) {
- fill: themed('textColorAccent');
- }
+ @include themify($themes) {
+ fill: themed('textColorAccent');
+ }
}
a:hover .extlink path {
transition: 0.2s all ease-in-out;
- @include themify($themes) {
- fill: themed('textColorAccentHover');
- }
+ @include themify($themes) {
+ fill: themed('textColorAccentHover');
+ }
}
td > a {
@extend .link;
- @extend .link--primary;
+ @extend .link--primary;
}
.button {
@@ -24,7 +24,12 @@
&:hover {
background-color: $color-teal;
}
- }
+ }
+ .inline-text {
+ display: inline;
+ padding-left: 5px;
+ font-size: 100%;
+ }
}
diff --git a/src/app/help/en/faq.md b/src/app/help/en/faq.md
index 3638b46ba..df0cea922 100644
--- a/src/app/help/en/faq.md
+++ b/src/app/help/en/faq.md
@@ -87,6 +87,7 @@
- How do I get more STEEM Power?
- How long does it take STEEM or STEEM Power that I purchased to show up in my account?
- What is powering up and down?
+- What is a withdraw route?
- What do the dollar amounts for pending payouts represent?
- Will 1 Steem Dollar always be worth $1.00 USD?
- How do Steem Dollar to STEEM conversions work?
@@ -206,7 +207,7 @@ Steemit has redefined social media by building a living, breathing, and growing
^
## How does Steemit work?
-Steemit.com is one of the many websites (including [Busy.org](https://busy.org/), [DTube](https://d.tube/), and [Utopian.io](https://utopian.io/)) that are powered by the Steem blockchain and STEEM cryptocurrency. All of these websites read and write content to the Steem blockchain, which stores the content in an immutable blockchain ledger, and rewards users for their contributions with digital tokens called STEEM.
+Steemit.com is one of the many websites (including [SteemPro](https://www.steempro.com/), [SteemX](https://steemx.org/), and [UPVU](https://upvu.org/)) that are powered by the Steem blockchain and STEEM cryptocurrency. All of these websites read and write content to the Steem blockchain, which stores the content in an immutable blockchain ledger, and rewards users for their contributions with digital tokens called STEEM.
Every day, the Steem blockchain mints new STEEM tokens and adds them to a community's "rewards pool". These tokens are then awarded to users for their contributions, based on the votes that their content receives. Users who hold more tokens in their account as "Steem Power" will get to decide where a larger portion of the rewards pool is distributed.
@@ -238,7 +239,33 @@ You can earn digital tokens on Steemit by:
**Voting and curating** - If you discover a post and upvote it before it becomes popular, you can earn a curation reward. The reward amount will depend on the amount of Steem Power you have.
-**Purchasing** - Users can purchase STEEM or Steem Dollar tokens directly through their Steemit wallet using bitcoin, Ether, or BitShares tokens. They are also available from other markets and exchanges including [Binance](https://www.binance.com/), [Bithumb](https://www.bithumb.com/), [BitShares](https://wallet.bitshares.org/), [Bittrex](https://bittrex.com), [Changelly](https://changelly.com), [GOBADA](https://www.gobaba.com/), [HitBTC](https://hitbtc.com/), [Huobi](https://www.huobi.pro/), [LocalBitcoinCash](https://www.localbitcoincash.org/), [Poloniex](https://poloniex.com), [Shapeshift.io](https://shapeshift.io), [UpBit](https://upbit.com/), and [Yensesa](https://yensesa.com).
+**Purchasing** – Users can purchase **STEEM** or **Steem Dollar (SBD)** tokens directly through their **Steemit wallet** by buying them on exchanges and then trading in the internal market, or by directly buying them from exchanges.
+
+The **current exchanges that support STEEM and SBD** include:
+
+| # | Exchange | Supported Tokens | Link |
+|----|---------------|------------------|------|
+| 1 | HTX (Huobi) | STEEM / **SBD** | [htx.com](https://www.htx.com/) |
+| 2 | Poloniex | STEEM | [poloniex.com](https://poloniex.com/) |
+| 3 | CoinUp.io | STEEM | [coinup.io](https://coinup.io/) |
+| 4 | MEXC | STEEM | [mexc.com](https://www.mexc.com/) |
+| 5 | Binance | STEEM | [binance.com](https://www.binance.com/) |
+| 6 | WhiteBIT | STEEM | [whitebit.com](https://whitebit.com/) |
+| 7 | Upbit | STEEM | [upbit.com](https://upbit.com/) |
+| 8 | BitKan | STEEM | [bitkan.com](https://bitkan.com/) |
+| 9 | Bithumb | STEEM | [bithumb.com](https://www.bithumb.com/) |
+| 10 | WEEX | STEEM | [weex.com](https://www.weex.com/) |
+| 11 | Gate | STEEM | [gate.io](https://www.gate.io/) |
+| 12 | Koinbay | STEEM | [koinbay.com](https://koinbay.com/) |
+| 13 | Bitexen | STEEM | [bitexen.com](https://www.bitexen.com/) |
+| 14 | ZKE | STEEM | [zkex.com](https://www.zke.com/) |
+| 15 | DigiFinex | STEEM | [digifinex.com](https://www.digifinex.com/) |
+| 16 | ProBit Global | STEEM | [probit.com](https://www.probit.com/) |
+| 17 | CoinEx | STEEM | [coinex.com](https://www.coinex.com/) |
+| 18 | ChangeNOW | STEEM | [changenow.io](https://changenow.io/) |
+| 19 | CoinDCX | STEEM | [coindcx.com](https://coindcx.com/) |
+| 20 | ONUS Pro | STEEM | [onus.pro](https://goonus.io/) |
+| 21 | Pionex | STEEM | [pionex.com](https://www.pionex.com/) |
**Vesting** - STEEM tokens that are powered up to Steem Power will earn a small amount of new tokens for holding.
@@ -270,7 +297,7 @@ It is best to have realistic expectations, without focusing on rewards when you
Click on the "Sign Up" link at the top of steemit.com to get started.
-You will be asked to enter your email address and verify your phone number. After your information has been verified, you will be added to the waiting list to receive an account. You will be notified via email once your account is approved.
+You will be asked to enter your email address and verify your phone number. After your information has been verified, you will be added to receive an account. You will be notified via email once your account is approved.
After you receive notification that your account is approved, click on the link in the email to finish the account creation process. **Be sure to save and backup your username and password.** It is very important that you do not lose your password. There is no way to recover your password or access your account if it is lost. Once your password is saved and backed up, click on the "Create Account" button to create the account.
@@ -635,21 +662,29 @@ Out of the new tokens that are generated:
STEEM and SBD are listed on the following exchanges:
-| Exchange | STEEM | SBD |
-| ------------- |:-------------:| -----:|
-| [Binance](https://www.binance.com/) | Y | N |
-| [Bithumb](https://www.bithumb.com/) | Y | N |
-| [BitShares](https://wallet.bitshares.org/) | Y | Y |
-| [Bittrex](https://bittrex.com) | Y | Y |
-| [Changelly](https://changelly.com) | Y | N |
-| [GOBADA](https://www.gobaba.com/) | Y | N |
-| [HitBTC](https://hitbtc.com/) | Y | Y |
-| [Huobi](https://www.huobi.pro/) | Y | N |
-| [LocalBitcoinCash](https://www.localbitcoincash.org/) | Y | N |
-| [Poloniex](https://poloniex.com) | Y | Y |
-| [Shapeshift.io](https://shapeshift.io) | Y | N |
-| [UpBit](https://upbit.com/) | Y | Y |
-| [Yensesa](https://yensesa.com) | Y | Y |
+| # | Exchange | Supported Tokens | Link |
+|----|---------------|------------------|------|
+| 1 | HTX (Huobi) | STEEM / **SBD** | [htx.com](https://www.htx.com/) |
+| 2 | Poloniex | STEEM | [poloniex.com](https://poloniex.com/) |
+| 3 | CoinUp.io | STEEM | [coinup.io](https://coinup.io/) |
+| 4 | MEXC | STEEM | [mexc.com](https://www.mexc.com/) |
+| 5 | Binance | STEEM | [binance.com](https://www.binance.com/) |
+| 6 | WhiteBIT | STEEM | [whitebit.com](https://whitebit.com/) |
+| 7 | Upbit | STEEM | [upbit.com](https://upbit.com/) |
+| 8 | BitKan | STEEM | [bitkan.com](https://bitkan.com/) |
+| 9 | Bithumb | STEEM | [bithumb.com](https://www.bithumb.com/) |
+| 10 | WEEX | STEEM | [weex.com](https://www.weex.com/) |
+| 11 | Gate | STEEM | [gate.io](https://www.gate.io/) |
+| 12 | Koinbay | STEEM | [koinbay.com](https://koinbay.com/) |
+| 13 | Bitexen | STEEM | [bitexen.com](https://www.bitexen.com/) |
+| 14 | ZKE | STEEM | [zkex.com](https://www.zke.com/) |
+| 15 | DigiFinex | STEEM | [digifinex.com](https://www.digifinex.com/) |
+| 16 | ProBit Global | STEEM | [probit.com](https://www.probit.com/) |
+| 17 | CoinEx | STEEM | [coinex.com](https://www.coinex.com/) |
+| 18 | ChangeNOW | STEEM | [changenow.io](https://changenow.io/) |
+| 19 | CoinDCX | STEEM | [coindcx.com](https://coindcx.com/) |
+| 20 | ONUS Pro | STEEM | [onus.pro](https://goonus.io/) |
+| 21 | Pionex | STEEM | [pionex.com](https://www.pionex.com/) |
^
## What is the reward pool?
@@ -721,25 +756,18 @@ The price of STEEM is based on the supply and demand of the token, as determined
^
## How do I get more Steem Power?
-With STEEM tokens in your wallet, click "Power Up" to turn them into Steem Power. If you have Steem Dollars, you can convert them to STEEM from your wallet, and then power up the STEEM.
+With **STEEM tokens** in your wallet, you can click **“Power Up”** to convert them into **Steem Power**.
+If you hold **Steem Dollars (SBD)**, you may first convert them into **STEEM** within your wallet and then power up the STEEM, or alternatively, you can directly purchase STEEM through the internal market. If you do not already have STEEM or Steem Dollars in your wallet, they can be obtained from the exchanges that support these tokens.
-If you don’t already have STEEM or Steem Dollars in your wallet, you can purchase them using bitcoin (BTC), Ether (ETH), Litecoin (LTC), or BitShares (BTS) tokens. You may purchase BTC on various exchanges, such as Coinbase.com or Localbitcoins.com.
+Bitcoin can also be exchanged for **STEEM** on external markets such as [Binance](https://www.binance.com/), [Upbit](https://upbit.com/), [CoinEx](https://www.coinex.com/), [Poloniex](https://poloniex.com/), and [ChangeNOW](https://changenow.io/).
-To buy:
-- Click "Buy Steem" from the main menu in the top right corner of steemit.com, or from your wallet.
-- Select the currency to deposit, and enter the amount of that currency you wish to use.
-- Enter your Steemit account name (without the @) for "Your receive address".
-- Click the "Get Deposit Address" button.
-- Send the currency to the provided address.
-
-bitcoin can also be exchanged for STEEM on external markets such as [Binance](https://www.binance.com/), [Bithumb](https://www.bithumb.com/), [BitShares](https://wallet.bitshares.org/), [Bittrex](https://bittrex.com), [Changelly](https://changelly.com), [GOBADA](https://www.gobaba.com/), [HitBTC](https://hitbtc.com/), [Huobi](https://www.huobi.pro/), [LocalBitcoinCash](https://www.localbitcoincash.org/), [Poloniex](https://poloniex.com), [Shapeshift.io](https://shapeshift.io), [UpBit](https://upbit.com/), and [Yensesa](https://yensesa.com).
^
## How long does it take STEEM or Steem Power that I purchased to show up in my account?
Transactions on the Steem blockchain typically only take about three seconds to process, but when you are purchasing the STEEM tokens using bitcoin or some other token, then the transaction must wait for the transaction to be confirmed on the other network. This can take several hours, and sometimes even days.
-If you paid using bitcoin, the third party website bitcoinfees.21.co can estimate the approximate wait time of the transaction based on the fees that were paid. The third party website blockchain.info will lookup the fees that were paid on a specific blockchain transaction.
+If you paid using bitcoin, the third party website btc.network can estimate the approximate wait time of the transaction based on the fees that were paid. The third party website blockchain.info will lookup the fees that were paid on a specific blockchain transaction.
^
## What is powering up and down?
@@ -748,6 +776,13 @@ If you paid using bitcoin, the third party website ^
+## What is a withdraw route?
+
+A withdraw route on Steem is simply an instruction on your Steem account that tells the blockchain where your weekly power down payouts should go. When Steem Power (SP) is powered down, the withdrawn amount is divided according to the configured routes, if they exist, and each destination may receive either liquid STEEM or additional SP via automatic power up. Users can also remove routes at any time, regardless of whether the power down process is in progress.
+
+The number of permissible routes is defined by the blockchain. The account holder can allocate up to a total of 100% across all routes. If the configured routes sum to 100%, the entire payout is redirected to designated recipients; if the sum is below 100%, the remaining percentage normally returns to the owner’s account as STEEM, unless specified otherwise.
+
^
## What do the dollar amounts for pending payouts represent?
@@ -810,15 +845,6 @@ It is recommended that you withdraw a small amount first, to verify it works bef
#### Sell Steem Dollars via Poloniex
https://steemit.com/steemit/@ash/steemit-how-to-sell-steem-dollars-via-poloniex-newbie-friendly
-#### Withdraw Steem Dollars to a Bitcoin address
-https://steemit.com/steem-help/@piedpiper/how-to-withdraw-your-steem-dollars-in-less-that-a-minute
-
-#### Convert Steem Dollars to a country’s currency and withdraw to a bank account
-https://steemit.com/tutorial/@beanz/how-to-get-my-usdteemit-money-into-my-bank-account
-
-#### Convert STEEM to many other cryptocurrencies via ShapeShift
-https://steemit.com/steemit/@shapeshiftio/official-announcement-shapeshift-has-added-steem-to-the-exchange
-
^
## Will I get a 1099 from Steemit?
@@ -1049,7 +1075,6 @@ Normally everyone's bandwidth allowance is quite high, and users are able to use
You can check how much bandwidth you currently have based on the current limit at:
https://steemdb.io/@youraccount
-
If users are below their bandwidth limit, they will be unable to transact with the blockchain until their bandwidth recharges or their limit is raised.
If you get an error that you have exceeded your bandwidth allowance, it is normally best to just wait and try again later (when it is less busy). Usually if you wait and try again later, the transaction will likley go through.
@@ -1089,7 +1114,6 @@ The Steem blockchain schedules witnesses to produce a new block every 3 seconds.
Yes. The blockchain data can be viewed in different ways with third-party tools such as steemdb.io
-
^
## Where can I find the information for the official launch of the blockchain?
@@ -1257,7 +1281,7 @@ The Steem blockchain requires a set of people to create blocks and uses a consen
^
## How can I vote for witnesses?
-Visit https://steemit.com/~witnesses.
+Visit https://steemitwallet.com/~witnesses, or https://steemitwallet.com/@youraccount/witnesses.
^
## How many witnesses can I vote for?
@@ -1279,7 +1303,7 @@ The SPS (DAO) is funded by 10% of the annual token inflation. These funds are he
^
## How to create or cancel a proposal?
-To submit a proposal to the Steem DAO, community members must complete the official form available through the Steemit Wallet interface. Required fields include the proposal title, daily requested amount in SBD, start and end dates, a valid proposal permlink (linking to a post that outlines the proposal), the creator’s username, and the intended receiver’s username.
+To submit a proposal to the Steem DAO, community members must complete the official form available through the Steemit Wallet interface or their account dashboard. The required fields include the proposal title, the daily requested amount in SBD, the start and end dates, a valid proposal permlink (linking to the post that outlines the proposal), the creator’s username, and the intended receiver’s username.
Proposal creation is subject to a submission fee. The exact amount is defined by the blockchain protocol and is displayed during the proposal creation process. Once submitted, the proposal becomes active and open for voting by Steem Power holders.
@@ -1306,7 +1330,7 @@ No. Once submitted to the DAO, a proposal cannot be edited or updated. It can on
^
## Where can community members view active proposals?
-Active and votable proposals can be viewed on the official Steemit Wallet interface.
+Active and votable proposals can be viewed on the official Steemit Wallet interface or on an account’s dashboard.
^
@@ -1314,7 +1338,6 @@ Active and votable proposals can be viewed on the official What third-party tools are there for Steemit?
-
^
## Is there an official Steemit Facebook page?
@@ -1344,10 +1367,10 @@ https://steem.io/SteemWhitePaper.pdf
## Third Party References and User Links
-Binance, bitcoinfees, Bitcointalk, Bithumb, BitShares, Bittrex, blockchain.info, Busy.org, Changelly, @cheetah, Coinbase, DTube, GOBADA, HitBTC, Huobi, LocalBitcoinCash, Localbitcoins, Markdown Cheatsheet, Pexels, Pixabay, Poloniex, Postimage, Shapeshift.io, Steemcleaners, SteemCreate, steemd, SteemStats, The Steemit Shop, UpBit, Utopian.io, Vessel, and Yensesa are third party applications/services, and are not owned or maintained by Steemit, Inc. Their listing here, as well as any other third party applications or websites that are listed, does not constitute and endorsement or recommendation on behalf of Steemit, Inc.
+Binance, bitcoinfees, Bitcointalk, Bithumb, blockchain.info, DTube, Huobi (HTX), Markdown Cheatsheet, Pexels, Pixabay, Poloniex, Postimage, SteemCreate, SteemStats, UpBit, Vessel, WhiteBIT, MEXC, Gate, WEEX, BitKan, DigiFinex, CoinEx, ProBit Global, ChangeNOW, CoinDCX, Bitexen, ZKE, CoinUp.io, ONUS Pro, Koinbay, Pionex, SteemPro, SteemX, Boy, UPVU, as well as other third-party applications and services, are not owned or maintained by Steemit, Inc. Their listing here, as well as any other third-party applications or websites that are referenced, does not constitute an endorsement or recommendation on behalf of Steemit, Inc.
All links to user posts were created by our users and do not necessarily represent the views of Steemit, Inc. or its management. Their listing here does not constitute and endorsement or recommendation on behalf of Steemit, Inc.
Please use the third party tools and content at your own risk.
-^
+^
\ No newline at end of file
diff --git a/src/app/help/en/welcome.md b/src/app/help/en/welcome.md
index bff04278c..12c9d43e8 100644
--- a/src/app/help/en/welcome.md
+++ b/src/app/help/en/welcome.md
@@ -272,7 +272,6 @@ Don't get discouraged if you don't earn much at first. Keep up the good work!
## Users to Follow
- @steemitblog - Official Steemit Announcements
-- @ned - Ned Scott, CEO and Co-Founder of Steemit, Inc.
^
## Other Resources
@@ -283,12 +282,9 @@ Don't get discouraged if you don't earn much at first. Keep up the good work!
- [Apps Built on Steem] will come up soon - Directory of apps, sites and tools built by Steem community
- [Steem Blockchain Explorer](https://Steemdb.io/) - Analysis pages for the Steem blockchain data
-
^
## Get Help
-
-
New Member Support Community is a group of people dedicated to helping new users find their way around Steemit. You can find them in the [New Member Support Community](https://discord.gg/HYj4yvw) channel of Discord Chat.
^
diff --git a/src/app/locales/en.json b/src/app/locales/en.json
index a9ca302bd..551109a56 100644
--- a/src/app/locales/en.json
+++ b/src/app/locales/en.json
@@ -85,6 +85,7 @@
"previous": "Previous",
"price": "Price",
"print": "Print",
+ "proposals": "Proposals",
"promote": "Promote",
"promoted": "Promoted",
"re": "RE",
@@ -597,7 +598,9 @@
"witness_proxy_current": "Your current proxy is",
"witness_proxy_set": "Set proxy",
"witness_proxy_clear": "Clear proxy",
- "proxy_update_error": "Your proxy was not updated"
+ "proxy_update_error": "Your proxy was not updated",
+ "witnesses_description": "Witnesses are trusted accounts that run and secure the Steem blockchain.",
+ "witnesses_learn_more": "Learn more in the FAQ."
},
"votesandcomments_jsx": {
"no_responses_yet_click_to_respond":
@@ -721,7 +724,11 @@
"This is a price feed conversion. The 3.5 day delay is necessary to prevent abuse from gaming the price feed average.",
"convert_to_LIQUID_TOKEN": "Convert to %(LIQUID_TOKEN)s",
"DEBT_TOKEN_will_be_unavailable":
- "The conversion process takes 3.5 days to complete and cannot be canceled once initiated. During this period, the specified %(DEBT_TOKEN)s (SBD) amount becomes immediately unavailable. The final amount of STEEM received is not fixed, as it is determined by the median witness price feed averaged over the entire 3.5-day window. As a result, conversions carry risk, particularly during periods of price volatility. Due to this, exercising due diligence before initiating a conversion is strongly advised."
+ "The conversion process takes 3.5 days to complete and cannot be canceled once initiated. During this period, the specified %(DEBT_TOKEN)s (SBD) amount becomes immediately unavailable. The final amount of STEEM received is not fixed, as it is determined by the median witness price feed averaged over the entire 3.5-day window. As a result, conversions carry risk, particularly during periods of price volatility. Due to this, exercising due diligence before initiating a conversion is strongly advised.",
+ "current_conversions": "Current Conversions",
+ "no_conversion_data": "No conversion data available.",
+ "id": "ID",
+ "request_id": "Request ID"
},
"tips_js": {
"liquid_token":
@@ -1040,6 +1047,8 @@
"power_down": "Power Down",
"delegate": "Delegate",
"advanced_routes": "Advanced Routes",
+ "set_advanced_routes": "Set Withdraw Route",
+ "advanced_routes_visit_faq":"Set or update withdraw routes. Visit the FAQ for more details.",
"route_settings": "Route Settings",
"market": "Market",
"convert_to_LIQUID_TOKEN": "Convert to %(LIQUID_TOKEN)s",
@@ -1055,6 +1064,8 @@
"estimated_account_value": "Estimated Account Value",
"next_power_down_is_scheduled_to_happen":
"The next power down is scheduled to happen",
+ "routed_to_single": "100%% routed to the following account: ",
+ "view_all_withdraw_routes": "View all withdraw routes",
"transfers_are_temporary_disabled": "Transfers are temporary disabled.",
"history": "HISTORY",
"redeem_rewards": "Redeem Rewards (Transfer to Balance)",
@@ -1063,6 +1074,26 @@
"incorrect_account_format": "Incorrect account format",
"confirm_route_setup": "Are you sure you want to set up %(percent)s%% of your Steem Power withdrawal to go to @%(account)s?"
},
+ "advanced_routes": {
+ "from": "From",
+ "to": "To",
+ "percent": "Percentage",
+ "current_routes": "Current Withdraw Routes (%(accounts_number)s left)",
+ "current_withdraw_route": "Current Withdraw Routes",
+ "account": "Account",
+ "percentage": "Percentage",
+ "receive": "Receive As",
+ "receive_amount": "Receive",
+ "remove": "Remove",
+ "steem_power": "Steem Power",
+ "steem": "STEEM",
+ "no_routes": "No withdraw routes are set.",
+ "not_remaining_routes": "No additional routes can be added due to a blockchain limitation.",
+ "not_remaining_percentage": "All 100%% has already been distributed. No additional routes can be added.",
+ "withdraw_routes_detected": "Active withdraw routes detected on your account. Review now to prevent assets loss.",
+ "take_action": "Take Action",
+ "acknowledge_routes": "I have read and acknowledge the current withdraw routes."
+ },
"powerdown_jsx": {
"power_down": "Power Down",
"amount": "Amount",
@@ -1075,6 +1106,12 @@
"Leaving less than %(AMOUNT)s %(VESTING_TOKEN)s in your account is not recommended and can leave your account in a unusable state.",
"error": "Unable to power down (ERROR: %(MESSAGE)s)"
},
+ "powerdown_alert": {
+ "message": "%(percent)s%% of your Steem Power (%(amount)s SP) is currently being powered down.",
+ "high_risk_label": "High risk",
+ "learn_more": "Learn more",
+ "aria_label": "Power-down alert"
+ },
"checkloginowner_jsx": {
"your_password_permissions_were_reduced":
"Your password permissions were reduced",
diff --git a/src/app/redux/GlobalReducer.js b/src/app/redux/GlobalReducer.js
index 30ec262da..d1f2a7a3d 100644
--- a/src/app/redux/GlobalReducer.js
+++ b/src/app/redux/GlobalReducer.js
@@ -14,6 +14,7 @@ const RECEIVE_STATE = 'global/RECEIVE_STATE';
const RECEIVE_ACCOUNT = 'global/RECEIVE_ACCOUNT';
const RECEIVE_ACCOUNTS = 'global/RECEIVE_ACCOUNTS';
const UPDATE_ACCOUNT_WITNESS_VOTE = 'global/UPDATE_ACCOUNT_WITNESS_VOTE';
+const UPDATE_ACCOUNT_WITNESS_VOTES = 'global/UPDATE_ACCOUNT_WITNESS_VOTES';
const UPDATE_ACCOUNT_WITNESS_PROXY = 'global/UPDATE_ACCOUNT_WITNESS_PROXY';
const FETCHING_DATA = 'global/FETCHING_DATA';
const RECEIVE_DATA = 'global/RECEIVE_DATA';
@@ -130,6 +131,14 @@ export default function reducer(state = defaultState, action = {}) {
);
}
+ case UPDATE_ACCOUNT_WITNESS_VOTES: {
+ const { account, witness_votes } = action.payload;
+ return state.setIn(
+ ['accounts', account, 'witness_votes'],
+ Set(witness_votes)
+ );
+ }
+
case UPDATE_ACCOUNT_WITNESS_PROXY: {
const { account, proxy } = payload;
return state.setIn(['accounts', account, 'proxy'], proxy);
@@ -349,6 +358,11 @@ export const updateAccountWitnessVote = payload => ({
payload,
});
+export const updateAccountWitnessVotes = payload => ({
+ type: UPDATE_ACCOUNT_WITNESS_VOTES,
+ payload,
+});
+
export const updateAccountWitnessProxy = payload => ({
type: UPDATE_ACCOUNT_WITNESS_PROXY,
payload,
diff --git a/src/app/redux/TransactionReducer.js b/src/app/redux/TransactionReducer.js
index 7493cc9b7..2bb2e4ec5 100644
--- a/src/app/redux/TransactionReducer.js
+++ b/src/app/redux/TransactionReducer.js
@@ -19,6 +19,7 @@ export const UPDATE_PRICES = 'transaction/UPDATE_PRICES';
export const SET_PRICES = 'transaction/SET_PRICES';
// Saga-related
export const RECOVER_ACCOUNT = 'transaction/RECOVER_ACCOUNT';
+export const FETCH_ACCOUNT_WITNESS_VOTES = 'transaction/FETCH_ACCOUNT_WITNESS_VOTES';
const defaultState = fromJS({
operations: [],
status: { key: '', error: false, busy: false },
@@ -271,3 +272,8 @@ export const setPrices = payload => ({
type: SET_PRICES,
payload,
});
+
+export const fetchAccountWitnessVotes = payload => ({
+ type: FETCH_ACCOUNT_WITNESS_VOTES,
+ payload,
+});
diff --git a/src/app/redux/TransactionSaga.js b/src/app/redux/TransactionSaga.js
index 53239fe79..38ac0c9a9 100644
--- a/src/app/redux/TransactionSaga.js
+++ b/src/app/redux/TransactionSaga.js
@@ -33,6 +33,7 @@ export const transactionWatches = [
takeEvery(transactionActions.UPDATE_AUTHORITIES, updateAuthorities),
takeEvery(transactionActions.RECOVER_ACCOUNT, recoverAccount),
takeEvery(transactionActions.UPDATE_PRICES, updatePricesSaga),
+ takeEvery(transactionActions.FETCH_ACCOUNT_WITNESS_VOTES, refreshAccountWitnessVotes),
];
const hook = {
@@ -169,6 +170,17 @@ function* error_account_witness_vote({
);
}
+export function* refreshAccountWitnessVotes({ payload: { accountName } }) {
+ try {
+ const [account] = yield call([api, api.getAccountsAsync], [accountName]);
+ if (account) {
+ yield put(globalActions.updateAccountWitnessVotes({account: account.name, witness_votes: account.witness_votes || []}));
+ }
+ } catch (err) {
+ console.error('Error refreshing witness_votes:', err);
+ }
+}
+
/** Keys, username, and password are not needed for the initial call. This will check the login and may trigger an action to prompt for the password / key. */
export function* broadcastOperation({
payload: {
@@ -746,3 +758,4 @@ export function* updateAuthorities({
};
yield call(broadcastOperation, { payload });
}
+
diff --git a/src/app/redux/TransactionSaga.test.js b/src/app/redux/TransactionSaga.test.js
index 0c0121c94..3ce195307 100644
--- a/src/app/redux/TransactionSaga.test.js
+++ b/src/app/redux/TransactionSaga.test.js
@@ -12,7 +12,8 @@ import {
transactionWatches,
broadcastOperation,
updateAuthorities,
- updatePricesSaga
+ updatePricesSaga,
+ refreshAccountWitnessVotes
} from './TransactionSaga';
import { DEBT_TICKER } from 'app/client_config';
@@ -61,6 +62,7 @@ describe('TransactionSaga', () => {
transactionActions.UPDATE_PRICES,
updatePricesSaga
),
+ takeEvery(transactionActions.FETCH_ACCOUNT_WITNESS_VOTES, refreshAccountWitnessVotes),
]);
});
});
diff --git a/src/app/redux/UserSaga.js b/src/app/redux/UserSaga.js
index 8c7968e0c..1410b051a 100644
--- a/src/app/redux/UserSaga.js
+++ b/src/app/redux/UserSaga.js
@@ -86,7 +86,7 @@ export function* getWithdrawRoutes(action) {
const highSecurityPages = [
/\/market/,
- /\/@.+\/(transfers|permissions|password|communities|delegations)/,
+ /\/@.+\/(transfers|permissions|password|communities|delegations|proposals|witnesses)/,
/\/~witnesses/,
/\/proposals/,
];
diff --git a/src/app/utils/StateFunctions.js b/src/app/utils/StateFunctions.js
index f59b6f2b5..af3dbac05 100644
--- a/src/app/utils/StateFunctions.js
+++ b/src/app/utils/StateFunctions.js
@@ -124,6 +124,13 @@ export function isFetchingOrRecentlyUpdated(global_status, order, category) {
return false;
}
+export function getRedirectPagePath(location) {
+ if (location.match(/^\/(@[\w\.\d-]+)\/(witnesses)\/?$/)) {
+ return { location: '/~witnesses', search_account: location.replace('/witnesses', '/transfers') };
+ }
+ return { location, search_account: false };
+}
+
export function contentStats(content) {
if (!content) return {};
if (!(content instanceof Map)) content = fromJS(content);
diff --git a/src/app/utils/VerifiedExchangeList.js b/src/app/utils/VerifiedExchangeList.js
index 43379f9b8..db47311a9 100644
--- a/src/app/utils/VerifiedExchangeList.js
+++ b/src/app/utils/VerifiedExchangeList.js
@@ -2,7 +2,6 @@ const list = `
bittrex
blocktrades
changelly
-deepcrypto8
gopax-deposit
hitbtc-exchange
poloniex
@@ -17,7 +16,6 @@ gateiodeposit
bingxsteem
probitsteem
coinexofficial
-whitebit
rudex
cold.dunamu
binance-hot2
@@ -31,7 +29,6 @@ hot5.dunamu
hot1.dunamu
polopw-01
htx-s8vznt82
-bittrex
user.dunamu
deepcrypto8
bithumbrecv1
diff --git a/src/app/utils/steemApi.js b/src/app/utils/steemApi.js
index 17e96118f..0bfda856b 100644
--- a/src/app/utils/steemApi.js
+++ b/src/app/utils/steemApi.js
@@ -1,13 +1,19 @@
import { api } from '@steemit/steem-js';
-
+import { getRedirectPagePath } from './StateFunctions'
import stateCleaner from 'app/redux/stateCleaner';
+import Witnesses from '../components/modules/Witnesses';
export async function getStateAsync(url) {
// strip off query string
const path = url.split('?')[0];
-
- const raw = await api.getStateAsync(path);
-
+ let raw;
+ if (path.match(/^\/(@[\w\.\d-]+)\/(witnesses)\/?$/)) {
+ raw = await api.getStateAsync(path.replace('/witnesses', '/transfers'));
+ let witnesses = await api.getStateAsync('/~witnesses');
+ raw.witnesses = witnesses ? witnesses.witnesses : raw.witnesses
+ } else {
+ raw = await api.getStateAsync(path);
+ }
const cleansed = stateCleaner(raw);
return cleansed;