Hey all,
I would like to understand how to read the result of a sign/send in a cold storage setup. As an example let’s take the get_full_neuron
call to the governance canister. This would work if it’s done from a networked computer where the owner of the neuron is the active user and provides the neuron id as the argument of the script.
NETWORK="https://ic0.app" # Mainnet
CANISTER="rrkah-fqaaa-aaaaa-aaaaq-cai" # Governance canister
ARGS="($1:nat64)"
echo $ARGS
RESULT="$(dfx canister --no-wallet --network=$NETWORK call $CANISTER get_full_neuron $ARGS --output=raw)"
didc decode -t "(Result_1)" -d ./nns-ifaces-0.8.1/governance.did $RESULT
But … my question is how can I achieve the same with a cold storage setup, where the private key is in another non-networked system. It signs the message there and then we send the corresponding message.json from a networked system.
What I tried after some advice from the telegram channel is:
- Sign the get_full_neuron request in the cold computer
- Move the message.json in the networked one and send it. Get a
request_id
- Use
request-status
to query the request id with a script like this:
#!/bin/bash
NETWORK="https://ic0.app" # Mainnet
CANISTER="rrkah-fqaaa-aaaaa-aaaaq-cai" # Governance canister
REQUEST_ID=$1
./dfx canister --network=$NETWORK request-status $REQUEST_ID $CANISTER
The problem with this is that I always seem to get an html 404 error.
Creating a wallet canister on the https___ic0_app network.
The replica returned an HTTP Error: Http Error: status 404 Not Found, content type "text/html", content: <html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.19.10</center>
</body>
</html>
So how can I get around this and make it work?