오늘은 간단하게 리워드 계산하는 사이트의 소스를 한번 보려합니다.
자신이 보팅했을때 얼마나 찍히는지 나오는데요.
일단 해당사이트에서 쓰는 js를 보면 jquery랑 steem-js를 사용했네요.
저는 안쓰지만.... 위의 소스를 분석하기 위해 추가해서 돌려봤습니다.
가급적 위의 사이트에서 사용한 그대로를 사용했는데요 소스는 아래와같습니다.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Voteing Power</title>
<script>
$(function () {
//입력한 값으로 보팅 달러 계산하기
function e() {
($("input[name='frm_steempower']").val() < 0 || $("input[name='frm_steempower']").val() > 1e7) && $("input[name='frm_steempower']").val(1e7),
($("input[name='frm_votingpower']").val() < 0 || $("input[name='frm_votingpower']").val() > 100) && $("input[name='frm_votingpower']").val(100),
($("input[name='frm_voteweight']").val() < 0 || $("input[name='frm_voteweight']").val() > 100) && $("input[name='frm_voteweight']").val(100);
var e = $("input[name='frm_steempower']").val()
, t = $("input[name='frm_votingpower']").val()
, n = $("input[name='frm_voteweight']").val()
, r = e / a
, m = parseInt(100 * t * (100 * n) / p);
m = parseInt((m + 49) / 50);
var l = parseInt(r * m * 100) * i * o;
$("#vote_value").text(l.toFixed(2)),
$("#vote_value").hide().fadeIn("fast")
}
function t() {
//리워드값 가져오기
steem.api.getRewardFund("post", function (e, t) {
n = t.reward_balance,
r = t.recent_claims,
i = n.replace(" STEEM", "") / r,
$("#reward_balance").text(parseInt(n).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")),
$("#recent_claims").text(parseInt(r / 1e9).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + "B")
}),
steem.api.getCurrentMedianHistoryPrice(function (e, t) {
o = t.base.replace(" SBD", "") / t.quote.replace(" STEEM", ""),
$("#steem_price_sbd").text("$" + o.toFixed(2))
}),
setTimeout(t, 1e4);//10*10*10*10이니까 10초마다 호출해서 가져오는거네요
}
var a, n, r, i, o, p = 1e4;
steem.api.setOptions({
url: https://api.steemit.com
}),
t();//Steem Price,Reward balance,Recent claims 값 셋팅
var m = setInterval(function () {
void 0 !== o && (clearInterval(m),
steem.api.getDynamicGlobalProperties(function (t, n) {
a = n.total_vesting_fund_steem.replace(" STEEM", "") / n.total_vesting_shares.replace(" VESTS", ""),
e()
}))
}, 200);
$("#form_calc").on("submit", function (t) {
e(),
t.preventDefault()
})
});
</script>
</head>
<body>
<div id="mainwrapper">
<br>
<div class="topbox">Steem Price
<br>
<span class="value" id="steem_price_sbd">$0.00</span>
</div>
<div class="topbox">Reward balance
<br>
<span class="value" id="reward_balance">0</span>
</div>
<div class="topbox">Recent claims
<br>
<span class="value" id="recent_claims">0</span>
</div>
<div style="clear:both;height:40px"></div>
<section class="box">
<div class="header">
<span>Upvote Calculator</span>
</div>
<div style="float:right;padding-top:36px;font-size:44px;width:40%">
<b>$
<span id="vote_value">0.00</span>
</b>
</div>
<form id="form_calc" method="get" style="padding:16px;line-height:21px">
<label for="frm_steempower">
<span style="width:130px">Steem Power</span>
<input name="frm_steempower" size="6" value="10000">
</label>
<br>
<label for="frm_votingpower">
<span style="width:130px">Voting Power</span>
<input name="frm_votingpower" size="6" value="100"> %</label>
<br>
<label for="frm_voteweight">
<span style="width:130px">Vote Weight</span>
<input name="frm_voteweight" size="6" value="100"> %</label>
<br>
<label style="display:block;margin-top:14px">
<span> </span>
<input type="submit" value="Calculate">
</label>
</form>
</section>
</div>
</div>
</body>
</html>