func sendRawTransaction(msgtx *wire.MsgTx) (*wire.ShaHash, error) { //anchorLog.Debug("sendRawTransaction: msgTx=", spew.Sdump(msgtx)) buf := bytes.Buffer{} buf.Grow(msgtx.SerializeSize()) if err := msgtx.BtcEncode(&buf, wire.ProtocolVersion); err != nil { return nil, err } // use rpc client for btcd here for better callback info // this should not require wallet to be unlocked shaHash, err := dclient.SendRawTransaction(msgtx, false) if err != nil { return nil, fmt.Errorf("failed in rpcclient.SendRawTransaction: %s", err) } anchorLog.Info("btc txHash returned: ", shaHash) // new tx hash return shaHash, nil }
func sendRawTransaction(msgtx *wire.MsgTx) (*wire.ShaHash, error) { //anchorLog.Debug("sendRawTransaction: msgTx=", spew.Sdump(msgtx)) buf := bytes.Buffer{} buf.Grow(msgtx.SerializeSize()) if err := msgtx.BtcEncode(&buf, wire.ProtocolVersion); err != nil { // Hitting OOM by growing or writing to a bytes.Buffer already // panics, and all returned errors are unexpected. //panic(err) //TODO: should we have retry logic? return nil, err } // use rpc client for btcd here for better callback info // this should not require wallet to be unlocked shaHash, err := dclient.SendRawTransaction(msgtx, false) if err != nil { return nil, fmt.Errorf("failed in rpcclient.SendRawTransaction: %s", err) } anchorLog.Info("btc txHash returned: ", shaHash) // new tx hash return shaHash, nil }