[#128] IR: Do not try to emit GAS to nobody #151
1 changed files with 19 additions and 14 deletions
|
@ -49,15 +49,18 @@ func (ap *Processor) processEmit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
nmNodes := networkMap.Nodes()
|
nmNodes := networkMap.Nodes()
|
||||||
|
nmLen := len(nmNodes)
|
||||||
|
extraLen := len(ap.parsedWallets)
|
||||||
|
|
||||||
ln := len(nmNodes)
|
ap.log.Debug("gas emission",
|
||||||
if ln == 0 {
|
zap.Int("network_map", nmLen),
|
||||||
ap.log.Debug("empty network map, do not emit gas")
|
zap.Int("extra_wallets", extraLen))
|
||||||
|
|
||||||
|
if nmLen+extraLen == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
gasPerNode := fixedn.Fixed8(ap.storageEmission / uint64(ln+len(ap.parsedWallets)))
|
gasPerNode := fixedn.Fixed8(ap.storageEmission / uint64(nmLen+extraLen))
|
||||||
|
|
||||||
for i := range nmNodes {
|
for i := range nmNodes {
|
||||||
keyBytes := nmNodes[i].PublicKey()
|
keyBytes := nmNodes[i].PublicKey()
|
||||||
|
@ -80,16 +83,18 @@ func (ap *Processor) processEmit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ap.morphClient.BatchTransferGas(ap.parsedWallets, gasPerNode)
|
if extraLen != 0 {
|
||||||
|
|||||||
if err != nil {
|
err = ap.morphClient.BatchTransferGas(ap.parsedWallets, gasPerNode)
|
||||||
receiversLog := make([]string, len(ap.parsedWallets))
|
if err != nil {
|
||||||
for i, addr := range ap.parsedWallets {
|
receiversLog := make([]string, extraLen)
|
||||||
ironbee
commented
I had this condition initially but lost it in transition to batch processing. 👽 I had this condition initially but lost it in transition to batch processing. 👽
|
|||||||
receiversLog[i] = addr.StringLE()
|
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
Can we use 1 log message like
Debug("gas emission", zap.Int("network_map", nmLen), zap.Int("extra", extraLen))
instead on 3 (2 inelse
and 1 if both are 0).fixed
fixed