Browse Source

Per miner payout treshold

master
yuriy0803 3 years ago
parent
commit
54dac9db73
  1. 10
      payouts/payer.go
  2. 10
      storage/redis.go
  3. 2
      www/app/helpers/format-hashrate.js
  4. 5
      www/app/templates/account.hbs

10
payouts/payer.go

@ -132,11 +132,15 @@ func (u *PayoutsProcessor) process() {
for _, login := range payees { for _, login := range payees {
amount, _ := u.backend.GetBalance(login) amount, _ := u.backend.GetBalance(login)
amountInShannon := big.NewInt(amount) amountInShannon := big.NewInt(amount)
ptresh, _ := u.backend.GetTreshold(login)
if ptresh <= 10 {
ptresh = u.config.Threshold
}
// Shannon^2 = Wei // Shannon^2 = Wei
amountInWei := new(big.Int).Mul(amountInShannon, util.Shannon) amountInWei := new(big.Int).Mul(amountInShannon, util.Shannon)
if !u.reachedThreshold(amountInShannon) { if !u.reachedThreshold(amountInShannon, ptresh) {
continue continue
} }
mustPay++ mustPay++
@ -285,8 +289,8 @@ func (self PayoutsProcessor) checkPeers() bool {
return true return true
} }
func (self PayoutsProcessor) reachedThreshold(amount *big.Int) bool { func (self PayoutsProcessor) reachedThreshold(amount *big.Int, threshold int64) bool {
return big.NewInt(self.config.Threshold).Cmp(amount) < 0 return big.NewInt(threshold).Cmp(amount) < 0
} }
func formatPendingPayments(list []*storage.PendingPayment) string { func formatPendingPayments(list []*storage.PendingPayment) string {

10
storage/redis.go

@ -758,6 +758,16 @@ func (r *RedisClient) GetBalance(login string) (int64, error) {
return cmd.Int64() return cmd.Int64()
} }
func (r *RedisClient) GetTreshold(login string) (int64, error) {
cmd := r.client.HGet(r.formatKey("miners", login), "payouttreshold")
if cmd.Err() == redis.Nil {
return 0, nil
} else if cmd.Err() != nil {
return 0, cmd.Err()
}
return cmd.Int64()
}
func (r *RedisClient) LockPayouts(login string, amount int64) error { func (r *RedisClient) LockPayouts(login string, amount int64) error {
key := r.formatKey("payments", "lock") key := r.formatKey("payments", "lock")
result := r.client.SetNX(key, join(login, amount), 0).Val() result := r.client.SetNX(key, join(login, amount), 0).Val()

2
www/app/helpers/format-hashrate.js

@ -3,7 +3,7 @@ import Ember from 'ember';
export function formatHashrate(params/*, hash*/) { export function formatHashrate(params/*, hash*/) {
var hashrate = params[0]; var hashrate = params[0];
var i = 0; var i = 0;
var units = ['H', 'KH', 'MH', 'GH', 'TH', 'PH']; var units = ['H/s', 'KH/s', 'MH/s', 'GH/s', 'TH/s', 'PH/s'];
while (hashrate > 1000) { while (hashrate > 1000) {
hashrate = hashrate / 1000; hashrate = hashrate / 1000;
i++; i++;

5
www/app/templates/account.hbs

@ -11,6 +11,11 @@
<i class="fa fa-bank"></i> Pending Balance: <span>{{format-balance model.stats.balance}}</span><br> <i class="fa fa-bank"></i> Pending Balance: <span>{{format-balance model.stats.balance}}</span><br>
<small>Credited coins awaiting payout.</small> <small>Credited coins awaiting payout.</small>
</div> </div>
{{#if model.stats.payouttreshold}}
<div style="display: block;">
<i class="fa fa-bank"></i> Payout Treshold: <span>{{format-balance model.stats.payouttreshold}}</span><br>
</div>
{{/if}}
{{#if model.stats.pending}} {{#if model.stats.pending}}
<div style="display: block;"> <div style="display: block;">
<i class="fa fa-clock-o"></i> Current Payment: <span>{{format-balance model.stats.pending}}</span><br> <i class="fa fa-clock-o"></i> Current Payment: <span>{{format-balance model.stats.pending}}</span><br>

Loading…
Cancel
Save