Skip to content
Snippets Groups Projects
Commit c65ced55 authored by Bartłomiej Górnicki's avatar Bartłomiej Górnicki
Browse files

fix: payout breakdown

Refactoring assets and chain properties to Hive
parent 81e80096
No related branches found
No related tags found
2 merge requests!127Develop,!126fix: payout breakdown
...@@ -20,7 +20,7 @@ module.exports = { ...@@ -20,7 +20,7 @@ module.exports = {
pending_rewarded_vesting_shares: '274189427.875310 VESTS', pending_rewarded_vesting_shares: '274189427.875310 VESTS',
pending_rewarded_vesting_steem: '133161.266 STEEM', pending_rewarded_vesting_steem: '133161.266 STEEM',
sbd_interest_rate: 0, sbd_interest_rate: 0,
sbd_print_rate: 10000, hbd_print_rate: 10000,
maximum_block_size: 65536, maximum_block_size: 65536,
current_aslot: 18899348, current_aslot: 18899348,
recent_slots_filled: '340282366920938463463374607431768211455', recent_slots_filled: '340282366920938463463374607431768211455',
......
...@@ -27,7 +27,7 @@ module.exports = { ...@@ -27,7 +27,7 @@ module.exports = {
pending_rewarded_vesting_shares: '273210850.970058 VESTS', pending_rewarded_vesting_shares: '273210850.970058 VESTS',
pending_rewarded_vesting_steem: '132683.599 STEEM', pending_rewarded_vesting_steem: '132683.599 STEEM',
sbd_interest_rate: 0, sbd_interest_rate: 0,
sbd_print_rate: 10000, bbd_print_rate: 10000,
maximum_block_size: 65536, maximum_block_size: 65536,
current_aslot: 18902088, current_aslot: 18902088,
recent_slots_filled: '340282366920938463463374607431768211455', recent_slots_filled: '340282366920938463463374607431768211455',
......
...@@ -12,7 +12,7 @@ import { ...@@ -12,7 +12,7 @@ import {
INVEST_TOKEN_SHORT, INVEST_TOKEN_SHORT,
} from 'app/client_config'; } from 'app/client_config';
import FormattedAsset from 'app/components/elements/FormattedAsset'; import FormattedAsset from 'app/components/elements/FormattedAsset';
import { pricePerSteem } from 'app/utils/StateFunctions'; import { pricePerHive } from 'app/utils/StateFunctions';
import shouldComponentUpdate from 'app/utils/shouldComponentUpdate'; import shouldComponentUpdate from 'app/utils/shouldComponentUpdate';
import { import {
formatDecimal, formatDecimal,
...@@ -39,7 +39,7 @@ const ABOUT_FLAG = ( ...@@ -39,7 +39,7 @@ const ABOUT_FLAG = (
const MAX_VOTES_DISPLAY = 20; const MAX_VOTES_DISPLAY = 20;
const VOTE_WEIGHT_DROPDOWN_THRESHOLD = 1.0 * 1000.0 * 1000.0; const VOTE_WEIGHT_DROPDOWN_THRESHOLD = 1.0 * 1000.0 * 1000.0;
const SBD_PRINT_RATE_MAX = 10000; const HBD_PRINT_RATE_MAX = 10000;
const MAX_WEIGHT = 10000; const MAX_WEIGHT = 10000;
const MIN_PAYOUT = 0.02; const MIN_PAYOUT = 0.02;
...@@ -70,8 +70,8 @@ class Voting extends React.Component { ...@@ -70,8 +70,8 @@ class Voting extends React.Component {
post: PropTypes.object, post: PropTypes.object,
enable_slider: PropTypes.bool, enable_slider: PropTypes.bool,
voting: PropTypes.bool, voting: PropTypes.bool,
price_per_steem: PropTypes.number, price_per_hive: PropTypes.number,
sbd_print_rate: PropTypes.number, hbd_print_rate: PropTypes.number,
}; };
static defaultProps = { static defaultProps = {
...@@ -223,8 +223,8 @@ class Voting extends React.Component { ...@@ -223,8 +223,8 @@ class Voting extends React.Component {
enable_slider, enable_slider,
is_comment, is_comment,
post, post,
price_per_steem, price_per_hive,
sbd_print_rate, hbd_print_rate,
username, username,
} = this.props; } = this.props;
...@@ -363,7 +363,7 @@ class Voting extends React.Component { ...@@ -363,7 +363,7 @@ class Voting extends React.Component {
const payout_at = post.get('payout_at'); const payout_at = post.get('payout_at');
const promoted = amt(post.get('promoted')); const promoted = amt(post.get('promoted'));
const max_payout = amt(post.get('max_accepted_payout')); const max_payout = amt(post.get('max_accepted_payout'));
const percent_sbd = post.get('percent_hbd') / 20000; const percent_hbd = post.get('percent_hbd') / 20000;
// pending payout, and completed author/curator payout // pending payout, and completed author/curator payout
const pending_payout = amt(post.get('pending_payout_value')); const pending_payout = amt(post.get('pending_payout_value'));
...@@ -372,10 +372,10 @@ class Voting extends React.Component { ...@@ -372,10 +372,10 @@ class Voting extends React.Component {
const total_payout = pending_payout + author_payout + curator_payout; const total_payout = pending_payout + author_payout + curator_payout;
// estimated pending payout breakdowns // estimated pending payout breakdowns
const _sbd = pending_payout * percent_sbd; const _hbd = pending_payout * percent_hbd;
const pending_sp = (pending_payout - _sbd) / price_per_steem; const pending_hp = (pending_payout - _hbd) / price_per_hive;
const pending_sbd = _sbd * (sbd_print_rate / SBD_PRINT_RATE_MAX); const pending_hbd = _hbd * (hbd_print_rate / HBD_PRINT_RATE_MAX);
const pending_steem = (_sbd - pending_sbd) / price_per_steem; const pending_hive = (_hbd - pending_hbd) / price_per_hive;
const payout_limit_hit = total_payout >= max_payout; const payout_limit_hit = total_payout >= max_payout;
const shown_payout = const shown_payout =
...@@ -408,11 +408,11 @@ class Voting extends React.Component { ...@@ -408,11 +408,11 @@ class Voting extends React.Component {
value: value:
tt('voting_jsx.breakdown') + tt('voting_jsx.breakdown') +
': ' + ': ' +
(fmt(pending_sbd, DEBT_TOKEN_SHORT) + ', ') + (fmt(pending_hbd, DEBT_TOKEN_SHORT) + ', ') +
(sbd_print_rate != SBD_PRINT_RATE_MAX (hbd_print_rate != HBD_PRINT_RATE_MAX
? fmt(pending_steem, LIQUID_TOKEN_UPPERCASE) + ', ' ? fmt(pending_hive, LIQUID_TOKEN_UPPERCASE) + ', '
: '') + : '') +
fmt(pending_sp, INVEST_TOKEN_SHORT), fmt(pending_hp, INVEST_TOKEN_SHORT),
}); });
} }
...@@ -630,11 +630,10 @@ export default connect( ...@@ -630,11 +630,10 @@ export default connect(
const net_vests = current ? current.get('effective_vests') : 0.0; const net_vests = current ? current.get('effective_vests') : 0.0;
const vote_status_key = `transaction_vote_active_${author}_${permlink}`; const vote_status_key = `transaction_vote_active_${author}_${permlink}`;
const voting = state.global.get(vote_status_key); const voting = state.global.get(vote_status_key);
const price_per_steem = const price_per_hive = pricePerHive(state) || ownProps.price_per_hive;
pricePerSteem(state) || ownProps.price_per_steem; const hbd_print_rate = state.global.getIn(
const sbd_print_rate = state.global.getIn( ['props', 'hbd_print_rate'],
['props', 'sbd_print_rate'], ownProps.hbd_print_rate
ownProps.sbd_print_rate
); );
const enable_slider = net_vests > VOTE_WEIGHT_DROPDOWN_THRESHOLD; const enable_slider = net_vests > VOTE_WEIGHT_DROPDOWN_THRESHOLD;
...@@ -656,8 +655,8 @@ export default connect( ...@@ -656,8 +655,8 @@ export default connect(
enable_slider, enable_slider,
is_comment, is_comment,
voting, voting,
price_per_steem, price_per_hive,
sbd_print_rate, hbd_print_rate,
}; };
}, },
......
...@@ -17,7 +17,7 @@ window.localStorage = global.localStorage; ...@@ -17,7 +17,7 @@ window.localStorage = global.localStorage;
configure({ adapter: new Adapter() }); configure({ adapter: new Adapter() });
const mockGlobal = Map({ const mockGlobal = Map({
props: Map({ sbd_print_rate: 99 }), props: Map({ hbd_print_rate: 99 }),
feed_price: Map({ feed_price: Map({
base: '5 HBD', base: '5 HBD',
quote: '10 HIVE', quote: '10 HIVE',
...@@ -67,8 +67,8 @@ describe('Voting', () => { ...@@ -67,8 +67,8 @@ describe('Voting', () => {
flag={true} flag={true}
vote={(w, p) => {}} vote={(w, p) => {}}
post={voteTestObj} post={voteTestObj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
store={mockStore} store={mockStore}
/> />
).dive(); ).dive();
...@@ -94,8 +94,8 @@ describe('Voting', () => { ...@@ -94,8 +94,8 @@ describe('Voting', () => {
myVote={-666} myVote={-666}
vote={(w, p) => {}} vote={(w, p) => {}}
post={voteTestObj} post={voteTestObj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
store={mockStore} store={mockStore}
/> />
).dive(); ).dive();
...@@ -124,8 +124,8 @@ describe('Voting', () => { ...@@ -124,8 +124,8 @@ describe('Voting', () => {
flag={false} flag={false}
vote={(w, p) => {}} vote={(w, p) => {}}
post={voteTestObj} post={voteTestObj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
store={mockStore} store={mockStore}
/> />
).dive(); ).dive();
...@@ -148,8 +148,8 @@ describe('Voting', () => { ...@@ -148,8 +148,8 @@ describe('Voting', () => {
flag={false} flag={false}
vote={(w, p) => {}} vote={(w, p) => {}}
post={voteTestObj} post={voteTestObj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
store={mockStore} store={mockStore}
/> />
).dive(); ).dive();
...@@ -182,8 +182,8 @@ describe('Voting', () => { ...@@ -182,8 +182,8 @@ describe('Voting', () => {
<Voting <Voting
vote={(w, p) => {}} vote={(w, p) => {}}
post={post_obj} post={post_obj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
/> />
</IntlProvider> </IntlProvider>
</Provider> </Provider>
...@@ -210,8 +210,8 @@ describe('Voting', () => { ...@@ -210,8 +210,8 @@ describe('Voting', () => {
<Voting <Voting
vote={(w, p) => {}} vote={(w, p) => {}}
post={post_obj} post={post_obj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={10000} hbd_print_rate={10000}
/> />
</IntlProvider> </IntlProvider>
</Provider> </Provider>
...@@ -238,8 +238,8 @@ describe('Voting', () => { ...@@ -238,8 +238,8 @@ describe('Voting', () => {
<Voting <Voting
vote={(w, p) => {}} vote={(w, p) => {}}
post={post_obj} post={post_obj}
price_per_steem={1} price_per_hive={1}
sbd_print_rate={5000} hbd_print_rate={5000}
/> />
</IntlProvider> </IntlProvider>
</Provider> </Provider>
......
...@@ -57,10 +57,10 @@ export function filterTags(tags) { ...@@ -57,10 +57,10 @@ export function filterTags(tags) {
.filter((value, index, self) => value && self.indexOf(value) === index); .filter((value, index, self) => value && self.indexOf(value) === index);
} }
export function pricePerSteem(state) { export function pricePerHive(state) {
const feed_price = state.global.get('feed_price'); const feed_price = state.global.get('feed_price');
if (feed_price && feed_price.has('base') && feed_price.has('quote')) { if (feed_price && feed_price.has('base') && feed_price.has('quote')) {
return formatter.pricePerSteem(feed_price.toJS()); return formatter.pricePerHive(feed_price.toJS());
} }
return undefined; return undefined;
} }
......
...@@ -470,7 +470,7 @@ async function apiFetchState(url) { ...@@ -470,7 +470,7 @@ async function apiFetchState(url) {
try { try {
const dgpo = await api.getDynamicGlobalPropertiesAsync(); const dgpo = await api.getDynamicGlobalPropertiesAsync();
onchain['props'] = { sbd_print_rate: dgpo['sbd_print_rate'] }; onchain['props'] = { hbd_print_rate: dgpo['hbd_print_rate'] };
} catch (error) { } catch (error) {
console.error('Error fetching dgpo:', error); console.error('Error fetching dgpo:', error);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment