mpool: get nonce for correct address

This commit is contained in:
Łukasz Magiera 2020-04-18 02:25:43 +02:00
parent 2de6a38c8b
commit f11b1bbbeb

View File

@ -482,19 +482,21 @@ func (mp *MessagePool) PushWithNonce(ctx context.Context, addr address.Address,
mp.lk.Lock()
defer mp.lk.Unlock()
nonce, err := mp.getNonceLocked(addr, mp.curTs)
if err != nil {
return nil, xerrors.Errorf("get nonce locked failed: %w", err)
}
fromKey := addr
if fromKey.Protocol() == address.ID {
var err error
fromKey, err = mp.api.StateAccountKey(ctx, fromKey, mp.curTs)
if err != nil {
return nil, xerrors.Errorf("resolving sender key: %w", err)
}
}
nonce, err := mp.getNonceLocked(fromKey, mp.curTs)
if err != nil {
return nil, xerrors.Errorf("get nonce locked failed: %w", err)
}
msg, err := cb(fromKey, nonce)
if err != nil {
return nil, err