"encoding/json"
"time"
+ btmBc "github.com/bytom/protocol/bc"
btmTypes "github.com/bytom/protocol/bc/types"
"github.com/jinzhu/gorm"
log "github.com/sirupsen/logrus"
}).Error
}
-// TODO:
func (w *warder) getSigns(destTx interface{}, ormTx *orm.CrossTransaction) ([]string, error) {
if ormTx.Status != common.CrossTxPendingStatus || !ormTx.DestTxHash.Valid {
return nil, errors.New("cross-chain tx status error")
var signs []string
for _, data := range signData {
+ var sign []byte
switch destTx.(type) {
case *vaporTypes.Tx:
+ msg := &vaporBc.Hash{}
+ if err := msg.UnmarshalText([]byte(data)); err != nil {
+ return nil, errors.Wrap(err, "Unmarshal signData")
+ }
+
+ sign = w.xprv.Sign([]byte(msg.String()))
+
case *btmTypes.Tx:
+ msg := &btmBc.Hash{}
+ if err := msg.UnmarshalText([]byte(data)); err != nil {
+ return nil, errors.Wrap(err, "Unmarshal signData")
+ }
+
+ sign = w.xprv.Sign([]byte(msg.String()))
+
default:
return nil, errUnknownTxType
}
- // TODO: sign it
- msg := []byte{}
- sign := w.xprv.Sign(msg)
+
signs = append(signs, hex.EncodeToString(sign))
}