-
Notifications
You must be signed in to change notification settings - Fork 66
Open
Description
The CollectEndorsementsView view contains the following code
func (c *CollectEndorsementsView) Call(context view.Context) (interface{}, error) {
metrics := GetMetrics(context)
externalWallets := make(map[string]ExternalWalletSigner)
// 1. First collect signatures on the token request
issueSigmas, err := c.requestSignaturesOnIssues(context, externalWallets)
if err != nil {
return nil, errors.WithMessagef(err, "failed requesting signatures on issues")
}
transferSigmas, err := c.requestSignaturesOnTransfers(context, externalWallets)
if err != nil {
return nil, errors.WithMessagef(err, "failed requesting signatures on transfers")
}
// signal the external wallets that the process is completed
logger.DebugfContext(context.Context(), "Inform external wallets that endorsement is complete")
for id, signer := range externalWallets {
if err := signer.Done(); err != nil {
logger.ErrorfContext(context.Context(), "failed to signal done external wallet [%s]", id)
logger.Errorf("failed to signal done external wallet [%s]", id)
}
}It is possible that Done is not called on all external wallets in case some error occurs.