forked from TrueCloudLab/frostfs-node
[#128] IR: Do not try to emit GAS to nobody
Fix sending GAS to an empty extra wallets receivers list. Also, send GAS to extra wallets even if netmap is empty. Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
This commit is contained in:
parent
7a31988a36
commit
9a4f40626c
1 changed files with 19 additions and 14 deletions
|
@ -50,15 +50,18 @@ func (ap *Processor) processEmit() {
|
|||
}
|
||||
|
||||
nmNodes := networkMap.Nodes()
|
||||
nmLen := len(nmNodes)
|
||||
extraLen := len(ap.parsedWallets)
|
||||
|
||||
ln := len(nmNodes)
|
||||
if ln == 0 {
|
||||
ap.log.Debug("empty network map, do not emit gas")
|
||||
ap.log.Debug("gas emission",
|
||||
zap.Int("network_map", nmLen),
|
||||
zap.Int("extra_wallets", extraLen))
|
||||
|
||||
if nmLen+extraLen == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
gasPerNode := fixedn.Fixed8(ap.storageEmission / uint64(ln+len(ap.parsedWallets)))
|
||||
gasPerNode := fixedn.Fixed8(ap.storageEmission / uint64(nmLen+extraLen))
|
||||
|
||||
for i := range nmNodes {
|
||||
keyBytes := nmNodes[i].PublicKey()
|
||||
|
@ -81,16 +84,18 @@ func (ap *Processor) processEmit() {
|
|||
}
|
||||
}
|
||||
|
||||
err = ap.morphClient.BatchTransferGas(ap.parsedWallets, gasPerNode)
|
||||
if err != nil {
|
||||
receiversLog := make([]string, len(ap.parsedWallets))
|
||||
for i, addr := range ap.parsedWallets {
|
||||
receiversLog[i] = addr.StringLE()
|
||||
if extraLen != 0 {
|
||||
err = ap.morphClient.BatchTransferGas(ap.parsedWallets, gasPerNode)
|
||||
if err != nil {
|
||||
receiversLog := make([]string, extraLen)
|
||||
for i, addr := range ap.parsedWallets {
|
||||
receiversLog[i] = addr.StringLE()
|
||||
}
|
||||
ap.log.Warn("can't transfer gas to wallet",
|
||||
zap.Strings("receivers", receiversLog),
|
||||
zap.Int64("amount", int64(gasPerNode)),
|
||||
zap.String("error", err.Error()),
|
||||
)
|
||||
}
|
||||
ap.log.Warn("can't transfer gas to wallet",
|
||||
zap.Strings("receivers", receiversLog),
|
||||
zap.Int64("amount", int64(gasPerNode)),
|
||||
zap.String("error", err.Error()),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue