earlier we have fixed size buffer for outputs uint8_t outputs[1000]
(derived from markemaker source), and this causes problems when we
try to split over 22 duplicates, bcz in this case outputs array size
overflows 1000 bytes. now memory for array allocates dynamically,
depends on actual outputs size.
- added sapling param in `struct iguana_info`
- each coin now have coin->sapling param (sapling=0 - sapling disabled, sapling !=0 - sapling enabled), we can set "sapling":1 in JSON when calling "addcoin" method.
- removed hardcoded "VRSC" and "VRSCTEST", now we should use "sapling" param in "addcoin" method
- removed unused zcash param in bitcoin_sigtxid
now iguana uses additional depependency libsodium (!) for calculating
BLAKE2b-256 hash in preimage, according to ZIP-0243
(https://github.com/zcash/zips/blob/master/zip-0243.rst). On Ubuntu
based systems it can be easily installed via `sudo apt install libsodium-dev` .
dpow_signrawtransaction used signrawtransaction RPC call to daemon
when obtain scriptSig for known notary vin. but signrawtransaction
RPC call in VRSC with activated sapling need to pass amount as required
parameter, otherwise it produced incorrect sig. spent many time
to understand this.
now we have correct format of unsigned rawtx with sapling support inside
dpow_notarytx and correct format of signed raw tx when usesigs=0.
but as we don't yet create sapling preimage - sigs are still incorrect,
and notary tx can't be broadcasted.
on ubuntu-like systems libsodium can be easily installed by
`sudo apt install libsodium-dev`, but we can make download and
compile it from sources in additional bash script.
before build iguana under Windows you should download and compile
libsodium.lib & libsodium.dll by using iguana_build_depends.cmd .
in marketmaker this accomplished by using cmake, but iguana didn't use
cmake build.
Added symbol_len in iguana_coinchoose. Here was a sizeof(symbol)
in safecopy call args, but sizeof(char *) always = 8 on 64-bit systems,
as a result if symbol have more than 7 letters, like "VRSCTEST"
safecopy returns an error.