I get an error when Disbursing ICP from neurons that are fully dissolved

Disburse ICP from neurons that are fully dissolved:.

ACCOUNT_ID=$(echo $seed | keysmith account -f -)
ACCOUNT_ID_WITHOUT_CHECKSUM_BYTES="$(printf ${ACCOUNT_ID:8} | fold -w 2 | gxargs -I {} printf '%d:nat8; ' '0x{}')"
RESULT="$(dfx canister --network=https://ic0.app --no-wallet call $CANISTER manage_neuron "(record { id = opt record { id = $NEURON_ID:nat64 }; command = opt variant { Disburse = record { to_account = opt record { hash = vec { $ACCOUNT_ID_WITHOUT_CHECKSUM_BYTES } }; amount = null } } })" --output=raw)"
didc decode -t "(ManageNeuronResponse)" -d ~/Downloads/nns-ifaces-0.8.1/governance.did $RESULT

The returned results show that:

opt table2 <: opt Command_1 via special opt rule
(record { command = null })

But the command execution is successful because my icp balance is increased. The problem should be with governance.did.

Is there any solution?

1 Like

dfx: 0.8.1
nns-ifaces: 0.8.1
OS: MacOS 11.3

1 Like

Hey @PaulLiu @diegop have you come across this issue before? Is there someone from the engineering team that can help us follow up this with @bitbruce ?

1 Like

I have not, but I have pinged the SDK team to see who can help.

The did file from the nns-ifaces repo is out-dated. That repo is a stop-gap measure before we open sourced ic. The updated did files can be found here: quill/candid at master · dfinity/quill · GitHub.

From the error message, it only affects decoding of the return message. So the command is already executed on the IC.

Soon dfx will support automatically downloading the did file from canisters, so that we won’t need to keep the did file manually.

Also, if you are dealing with neurons and ledger account, I recommend using quill or ic-repl, which have more native support for communicating with NNS and ledger canisters. See Home - Staking with Self-Custody


You’ll also find the latest candid here if you click ‘view did file’: Canlista: nns-governance rrkah-fqaaa-aaaaa-aaaaq-cai