Merge pull request #8833 from kaola526/master
feat: msig cli: Check for existing signers in add-propose
This commit is contained in:
commit
1de56d5e47
@ -878,6 +878,39 @@ var msigAddProposeCmd = &cli.Command{
|
||||
from = defaddr
|
||||
}
|
||||
|
||||
store := adt.WrapStore(ctx, cbor.NewCborStore(blockstore.NewAPIBlockstore(api)))
|
||||
|
||||
head, err := api.ChainHead(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
act, err := api.StateGetActor(ctx, msig, head.Key())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mstate, err := multisig.Load(store, act)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
signers, err := mstate.Signers()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
addrId, err := api.StateLookupID(ctx, addr, types.EmptyTSK)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, s := range signers {
|
||||
if s == addrId {
|
||||
return fmt.Errorf("%s is already a signer", addr.String())
|
||||
}
|
||||
}
|
||||
|
||||
proto, err := api.MsigAddPropose(ctx, msig, from, addr, cctx.Bool("increase-threshold"))
|
||||
if err != nil {
|
||||
return err
|
||||
|
Loading…
Reference in New Issue
Block a user