[#1959] neofs-adm: Fix double multisig

Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
This commit is contained in:
Evgenii Stratonikov 2022-10-24 14:12:36 +03:00 committed by fyrchik
parent 2484c1d35e
commit 942155be6e
2 changed files with 10 additions and 4 deletions

View file

@ -395,6 +395,7 @@ func (c *initializeContext) sendMultiTx(script []byte, tryGroup bool, withConsen
var act *actor.Actor var act *actor.Actor
var err error var err error
withConsensus = withConsensus && !c.ConsensusAcc.Contract.ScriptHash().Equals(c.CommitteeAcc.ScriptHash())
if tryGroup { if tryGroup {
// Even for consensus signatures we need the committee to pay. // Even for consensus signatures we need the committee to pay.
signers := make([]actor.SignerAccount, 1, 2) signers := make([]actor.SignerAccount, 1, 2)

View file

@ -131,12 +131,17 @@ func (c *initializeContext) multiSign(tx *transaction.Transaction, accType strin
} }
if len(tx.Scripts) == 0 { if len(tx.Scripts) == 0 {
tx.Scripts = append(tx.Scripts, *w) tx.Scripts = make([]transaction.Witness, len(tx.Signers))
} else {
tx.Scripts[0] = *w
} }
return nil for i := range tx.Signers {
if tx.Signers[i].Account == h {
tx.Scripts[i] = *w
return nil
}
}
return fmt.Errorf("%s account was not found among transaction signers", accType)
} }
func (c *initializeContext) transferGASToProxy() error { func (c *initializeContext) transferGASToProxy() error {