Error while send transaction: Data push larger than necessary

2

Looks like transaction decodes fine. But when I use sendrawtransaction I got

Data push larger than necessary

What's wrong with this tx?

bitcoin-cli -testnet decoderawtransaction 020000000149d4a5f520ded6fa94f79cd268f0334baeec9a7732c9d946d1cdee58d81e7aad00000000020101ffffffff01904c96000000000017a914f45d94733d430261962932e0c847075195916a048700000000
{
  "txid": "1bbf569b281f2cd9d948e4273120a9bc3bb2c21e31bc9786682c0a22d8feb76c",
  "hash": "1bbf569b281f2cd9d948e4273120a9bc3bb2c21e31bc9786682c0a22d8feb76c",
  "version": 2,
  "size": 85,
  "vsize": 85,
  "weight": 340,
  "locktime": 0,
  "vin": [
    {
      "txid": "ad7a1ed858eecdd146d9c932779aecae4b33f068d29cf794fad6de20f5a5d449",
      "vout": 0,
      "scriptSig": {
        "asm": "1",
        "hex": "0101"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.09850000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 f45d94733d430261962932e0c847075195916a04 OP_EQUAL",
        "hex": "a914f45d94733d430261962932e0c847075195916a0487",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2NFXJy8mvz7ZiT4VVN29xPGC38hTygd3AyJ"
        ]
      }
    }
  ]
}

Andrew

Posted 2018-11-16T01:31:36.983

Reputation: 161

Answers

2

Your scriptSig uses a data push to push 0x01 onto the stack. It could use OP_1 instead.

Pieter Wuille

Posted 2018-11-16T01:31:36.983

Reputation: 54 032

Thank you! But now I got "Script evaluated without error but finished with a false/empty top stack element)" Is this something wrong with my redeem script or scriptpubkey ?Andrew 2018-11-16T02:09:17.357

2

Your transaction is failing validation with SCRIPT_VERIFY_MINIMALDATA, which is described in BIP 62 rule 3 protections against malleability. CheckMinimalPush() requires a push of 0x01 to be done using OP_1.

This standardness rule avoids the case where someone takes a transaction from the network and a push with a longer encoding of the same push and as a result creates a malleated form of the transaction.

G. Maxwell

Posted 2018-11-16T01:31:36.983

Reputation: 6 039