ergo icon indicating copy to clipboard operation
ergo copied to clipboard

POST `/transactions` returns indecipherable error `Malformed transaction: empty.max`

Open greenhat opened this issue 2 years ago • 4 comments

I expected a more detailed error description. The node version is v5.0.3. No mention of the tx id or any error in the node's log (debug).

The following tx (part of the chained txs on testnet):

{
  "id": "e4563bb28cfe418f393b7958ce72ae4c10330dcc5eebde0cc3aba52bf88d898c",
  "inputs": [
    {
      "boxId": "5998c324a86a3374f4c9e18153623e82064407f34562f69cab727967e690dcb8",
      "spendingProof": {
        "proofBytes": "d99708ebfc279b9df228b9f024b70c62fe3819c4948a099d414e18a0f76d47f9ea148f2b064cf176b1c0e4e240ec2ff92bb035649b0c188a",
        "extension": {}
      }
    },
    {
      "boxId": "7c84af22f8a93d9f4de13b4b98ceb58416c06b7f6fb51374709dbe36d60dbbb0",
      "spendingProof": {
        "proofBytes": "6300bafb1ab08dd1be71d45e0d114d603200805205599de19c8cbf3fa1ad0b3eda91ee71d90145c63ee7a904be498867d3394c2ee52640cf",
        "extension": {}
      }
    }
  ],
  "dataInputs": [],
  "outputs": [
    {
      "boxId": "11646891a52e94dfb4168b708a3185f9bdfd34bd42785e74f11893c185e7061e",
      "value": 1100000,
      "ergoTree": "0008cd0340191c66444bad57a1c80b19fa86d7483b4cde996747ce2cd76a81f3a5dd2aa6",
      "assets": [
        {
          "tokenId": "5998c324a86a3374f4c9e18153623e82064407f34562f69cab727967e690dcb8",
          "amount": 1
        }
      ],
      "additionalRegisters": {
        "R4": "0e0b72656672657368204e4654",
        "R6": "0e0131",
        "R5": "0e0b72656672657368204e4654"
      },
      "creationHeight": 145398,
      "transactionId": "e4563bb28cfe418f393b7958ce72ae4c10330dcc5eebde0cc3aba52bf88d898c",
      "index": 0
    },
    {
      "boxId": "385c9c30e83ed09e045522a97fccc19e8a027b10854ff7d16bfdada4a905a179",
      "value": 6600000,
      "ergoTree": "0008cd0340191c66444bad57a1c80b19fa86d7483b4cde996747ce2cd76a81f3a5dd2aa6",
      "assets": [],
      "additionalRegisters": {},
      "creationHeight": 145398,
      "transactionId": "e4563bb28cfe418f393b7958ce72ae4c10330dcc5eebde0cc3aba52bf88d898c",
      "index": 1
    },
    {
      "boxId": "07fc58183483abde549d9ac5193d52601bb29c2c4ab12a02534ccf3e99cd1252",
      "value": 1800000,
      "ergoTree": "0008cd0340191c66444bad57a1c80b19fa86d7483b4cde996747ce2cd76a81f3a5dd2aa6",
      "assets": [
        {
          "tokenId": "7ba0e7bcd0f4c165e7f65b307f0989d569b02c25ccad6f5a0a28b566a0a80501",
          "amount": 3
        },
        {
          "tokenId": "b76359e49ffc64b220f6270d658309e8a732678b2fe86dc2355e19dddf9e2f60",
          "amount": 1
        },
        {
          "tokenId": "4ef9c5fa01d634eea5177eb9d5d73889a4b4a458c4024b1b646fc332c2346c27",
          "amount": 15
        }
      ],
      "additionalRegisters": {},
      "creationHeight": 145398,
      "transactionId": "e4563bb28cfe418f393b7958ce72ae4c10330dcc5eebde0cc3aba52bf88d898c",
      "index": 2
    },
    {
      "boxId": "2e098d1da134eb36a4b86de2e121711a291357a1d9541e20dba41b1c07100b24",
      "value": 1100000,
      "ergoTree": "1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304",
      "assets": [],
      "additionalRegisters": {},
      "creationHeight": 145398,
      "transactionId": "e4563bb28cfe418f393b7958ce72ae4c10330dcc5eebde0cc3aba52bf88d898c",
      "index": 3
    }
  ]
}

Discovered in https://github.com/ergoplatform/oracle-core/issues/182

greenhat avatar Dec 01 '22 09:12 greenhat

@greenhat @aslesarenko I guess the error is coming from interpreter ?

kushti avatar Dec 01 '22 13:12 kushti

@greenhat @aslesarenko I guess the error is coming from interpreter ?

I don't think so. It's a token minting tx, so all inputs should be p2pk.

greenhat avatar Dec 01 '22 14:12 greenhat

The reason for this error is an empty boxesToSpend (inputs not found) at https://github.com/ergoplatform/ergo/blob/37a2e078d6d4f0540ea785768533ec3334a6e490/src/main/scala/org/ergoplatform/modifiers/mempool/ErgoTransaction.scala#L385

greenhat avatar Dec 07 '22 09:12 greenhat

Will do a better error for such case

kushti avatar Dec 08 '22 20:12 kushti

@greenhat I moved boxes-to-spend check before outputs(w. creationHeight) check. Thus in case of empty boxesToSpend error would be "Missing inputs: ..."

kushti avatar Jan 16 '23 10:01 kushti