+ return NewSuccessResponse(&signTemplateResp{Tx: &x.Txs, SignComplete: txbuilder.SignProgress(&x.Txs)})
+}
+
+type signTemplatesResp struct {
+ Tx []*txbuilder.Template `json:"transaction"`
+ SignComplete bool `json:"sign_complete"`
+}
+
+func (a *API) signTemplates(ctx context.Context, x struct {
+ Password string `json:"password"`
+ Txs []*txbuilder.Template `json:"transactions"`
+}) Response {
+ signComplete := true
+ for _, tx := range x.Txs {
+ if err := txbuilder.Sign(ctx, tx, x.Password, a.pseudohsmSignTemplate); err != nil {
+ log.WithField("build err", err).Error("fail on sign transaction.")
+ return NewErrorResponse(err)
+ }
+ signComplete = signComplete && txbuilder.SignProgress(tx)
+ }
+
+ log.Info("Sign Chain Tx complete.")
+ return NewSuccessResponse(&signTemplatesResp{Tx: x.Txs, SignComplete: signComplete})