2

Very related to Getting error delegate.no_deletion when delegating but with a bit more specific info, in case it helps.

Working on BabylonNet, I'm trying to delegate from one tz1 to another tz1. This is what I send to the /helpers/preapply/operations rpc:

 [{
    "protocol": "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS",
    "contents": [{
        "delegate": "tz1eZAGXmXxwkXUBUxuSk5XkJ5UZ5Q25Baja",
        "storage_limit": "0",
        "gas_limit": "10000",
        "kind": "delegation",
        "fee": "1257",
        "source": "tz1XSXBeWqdupm73qWAJkxJkxRzH16y77i1B",
        "counter": "201458"
    }],
    "signature": "edsigthfYr(...)",
    "branch": "BM5RAzkJPNetKE5XhbAP1KcSo8bRhgGDrU8HTwcdZM6g1obSN7M"
 }]

And the response I get is:

[{
    "contents": [{
        "kind": "delegation",
        "source": "tz1XSXBeWqdupm73qWAJkxJkxRzH16y77i1B",
        "fee": "1257",
        "counter": "201458",
        "gas_limit": "10000",
        "storage_limit": "0",
        "delegate": "tz1eZAGXmXxwkXUBUxuSk5XkJ5UZ5Q25Baja",
        "metadata": {
            "balance_updates": [{
                "kind": "contract",
                "contract": "tz1XSXBeWqdupm73qWAJkxJkxRzH16y77i1B",
                "change": "-1257"
            }, {
                "kind": "freezer",
                "category": "fees",
                "delegate": "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU",
                "cycle": 88,
                "change": "1257"
            }],
            "operation_result": {
                "status": "failed",
                "errors": [{
                    "kind": "permanent",
                    "id": "proto.005-PsBabyM1.delegate.no_deletion",
                    "delegate": "tz1XSXBeWqdupm73qWAJkxJkxRzH16y77i1B"
                }]
            }
        }
    }],
    "signature": "edsigthfYr(...)"
}]

What do proto.005-PsBabyM1.delegate.no_deletion mean in this situation? I do send a delegate parameter. I tried reviewing the code for delegation but none of the conditions seems to apply to what I am sending.

Any help or pointers would be greatly appreciated. Thank you!

  • The error seems to apply when a contract that is delegated to removes its delegatable status (eg tz1a is delegatable, tz1b delegates to tz1a, tz1a tries to remove its delegatable status). Are you sure this is not your case? – arvidj Jan 3 at 15:22
  • Seems so, since the source tz1 address was registered as a baker and trying to delegate to another address gives the no_deletion error. My confusion was regarding that baker status from the source address. – MalenaLBC Jan 3 at 15:59
1

The problem is that the source address you're trying to delegate from is already registered as a baker. There are two situations that lead to the No_deletion error:

Note that when you're registered as a baker, you're delegating to self.

  • Thanks for your answer. How did you check the source address was registered as a baker? I don't think I registered it myself but since I'm in the middle of several tests, I might inadvertently did so. Also, is there a way to unregister as baker? – MalenaLBC Jan 3 at 15:58
  • You can query e.g. tezos-client -A babylonnet.tezos.cryptium.ch get delegate for tz1eZAGXmXxwkXUBUxuSk5XkJ5UZ5Q25Baja. It returns back the same address, which means that the contract is self-delegated (i.e. registered baker). Unfortunately, there is no way to unregister at the moment. – Tomáš Zemanovič Jan 4 at 16:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.