Go to file
zkbot ec8dc3a88a Auto merge of #1431 - bitcartel:master_1373_taddr_coinbase_error, r=bitcartel
Return a more informative error message when trying to spend coinbase; select non-coinbase inputs when sending to a transparent output if needed

For #1373 and #1519

Code change:
- Extra parameter added to AvailableCoins to include or exclude Coinbase coins.  Default value of parameter is 'true' as current behaviour is to include Coinbase coins.
- SelectCoins, used for sending taddr->taddr, will now exclude Coinbase coins.

Unit test:
Tried to write a test to focus on the extra parameter added to AvailableCoins but could not.

Empirical testing on Testnet:
Current behaviour is that upstream RPC commands sendfrom and sendtoaddress try to spend coinbase coins returned by AvailableCoins.  So the user will see:

```
./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 1000.0
error: {"code":-6,"message":"Insufficient funds"}

./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 0.00003000
error: {"code":-4,"message":"Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."}

./zcash-cli sendfrom "" mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 0.00003000
error: {"code":-4,"message":"Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."}
```

After fix is applied:

```
./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 1000.0
error: {"code":-6,"message":"Insufficient funds"}

./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 0.00003000
error: {"code":-4,"message":"Coinbase funds can only be sent to a zaddr"}
```

When non-coinbase UTXOs exist, they will now be selected and used:

```
./zcash-cli z_sendmany tnPJZHeVxegCg91utaquBRPEDBGjozfz9iLDHt7zvphFbZdspNgkTVLCGjDcadQBKNyUwKs8pNjDXuEZKrE1aNLpFwHgz4t '[{"address":"mx5fTRhLZwbYE7ZqhAPueZgQGSnwTbdvKU", "amount":0.01}]'

./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 1000.0
error: {"code":-6,"message":"Insufficient funds"}

./zcash-cli sendtoaddress mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 0.00003000
9818e543ac2f689d4ce8b52087607d73fecd771d45d316a1d9db092f0485aff2

./zcash-cli sendfrom "" mrEGRmGJhmwAa4MQjzGd86ry63vrvovu9b 0.00003000
899f2894823f51f15fc73b5e0871ac943edbe0ff88e1635f86906087b72caf30
```
2016-10-16 22:08:07 -04:00
.tx
build-aux/m4
contrib Rename client identifier from Satoshi to MagicBean (closes #1481) 2016-10-12 10:50:05 -07:00
depends Update libsnark to include determinism fix 2016-10-16 12:27:01 -05:00
doc Auto merge of #1499 - arcalinea:document-coinbase-maturity-security, r=bitcartel 2016-10-13 23:52:37 -04:00
qa Auto merge of #1431 - bitcartel:master_1373_taddr_coinbase_error, r=bitcartel 2016-10-16 22:08:07 -04:00
share
src Auto merge of #1431 - bitcartel:master_1373_taddr_coinbase_error, r=bitcartel 2016-10-16 22:08:07 -04:00
zcutil Increases timeout to 30s, wait before retry to 3s 2016-10-11 10:56:01 -07:00
.gitattributes
.gitignore
.travis.yml
COPYING
INSTALL Refer to Zcash wiki in INSTALL 2016-10-07 16:17:08 -07:00
Makefile.am
README.md
autogen.sh
code_of_conduct.md
configure.ac v1.0.0-beta2 2016-10-04 21:55:26 -05:00
libbitcoinconsensus.pc.in

README.md

Zcash

https://z.cash/

Where do I begin?

We have a guide for joining the public testnet: https://github.com/zcash/zcash/wiki/Beta-Guide

What is Zcash?

Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's code, it intends to offer a far higher standard of privacy and anonymity through a sophisticiated zero-knowledge proving scheme which preserves confidentiality of transaction metadata.

Zcash is unfinished and highly experimental. Use at your own risk.

Participation in the Zcash project is subject to a Code of Conduct.

Security Warnings

See important security warnings in doc/security-warnings.md.

License

Zcash is released under the terms of the MIT license. See COPYING for more information or see http://opensource.org/licenses/MIT.