I made a script to automate protect coins procedure


#1

FIrst time zcash user here. I was following the Public Alpha Guide and there were a lot of steps so I made a little script to automate things. maybe it can be useful for someone.

This script does the protect your coins portion of the guide, but not (yet) the sending.

It can protect either: first, last, or all utxo. or a comma seperated list of txid.

By default it shows all commands executed and also all json results.

Usage:

$ ./protect_coins.php

protect_coins.php --unspent=<arg>

This script makes public funds (utxo) into private funds.

Required:

--unspent=<arg>       all|first|last|<txlist>
                       all    = convert all unspent outputs
                       first  = convert first unspent output
                       last   = convert last unspent output
                       txlist = one or more txid, comma separated.

Optional:

--zcash-cli=<path>    path to zcash-cli.  default = './src/zcash-cli'

--verbosity=<level>   silent|results|full|debug   default = full

--help                display usage information

Example run

$ ./protect_coins.php --unspent=first


-- Listing Unspent Coins --

executing: ./src/zcash-cli listunspent 


Result:
[
    {
        "txid": "2019...a6f1",
        "vout": 0,
        "address": "mxFMkDZu19QECvqoCn67FQgvYi2Dbsp71Y",
        "scriptPubKey": "2102...32ac",
        "amount": 50,
        "confirmations": 258,
        "spendable": true
    }
]



-- Unspent Coins Chosen --
  User's choice: first


Result:
[
    {
        "txid": "2019...a6f1",
        "vout": 0,
        "address": "mxFMkDZu19QECvqoCn67FQgvYi2Dbsp71Y",
        "scriptPubKey": "2102...32ac",
        "amount": 50,
        "confirmations": 258,
        "spendable": true
    }
]



-- Generating Address --

executing: ./src/zcash-cli zcrawkeygen 


Result:
{
    "zcaddress": "20ad....1070",
    "zcsecretkey": "20e5...cc92"
}



-- Creating Raw Tx --

executing: ./src/zcash-cli createrawtransaction '[{"txid":"2019...a6f1","vout":0}]' '{}' 


Result:
"0100...0000"



-- Calling zcrawpour --

executing: ./src/zcash-cli zcrawpour '0100...1070":49.9}' '50' '0.1' 


Result:
{
    "encryptedbucket1": "04f7...c275",
    "encryptedbucket2": "04e5f...d2c4",
    "rawtxn": "..."
}



-- Signing Tx --

executing: ./src/zcash-cli signrawtransaction '...' 


Result:
{
    "hex": "...",
    "complete": true
}



-- Sending the Tx to ourself --

executing: ./src/zcash-cli sendrawtransaction '0200...330a' 


Result:
"9ae8...230b"



-- Decrypting the received Tx --

executing: ./src/zcash-cli zcrawreceive '20e5...c92' '04f7...c275' 


Result:
{
    "amount": 49.9,
    "bucket": "805b...4c68",
    "exists": false
}



-- Done! --

I was going to upload it here, but it wouldn't allow any non image uploads, so I made a little github repo for it at [https://github.com/dan-da/zcash-util].


#2

Hello, i received (not mined) zec from genesis mining to my t address. I tried sending that to my poloniex t address but keep getting non-coinbase UTXO not available and no spendable.

please help.


#3

This script is old and uses the soon-to-be deprecated zc* RPC calls.

I'd be happy to try to help you. Can you PM me 'zcash-cli listtransactions' output, and the command you are trying to use to send to Poloniex, exactly.


#4

can you send me your email to me at haegon@yahoo.com? thx