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!

2
  • 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
    Commented Jan 3, 2020 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
    Commented Jan 3, 2020 at 15:59

1 Answer 1

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.

2
  • 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
    Commented Jan 3, 2020 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. Commented Jan 4, 2020 at 16:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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