Any projects which want to use Hush code from now on will need to be licensed as
GPLv3 or we will send the lawyers: https://www.softwarefreedom.org/
Notably, Komodo (KMD) is licensed as GPLv2 and is no longer compatible to receive
code changes, without causing legal issues. MIT projects, such as Zcash, also cannot pull
in changes from the Hush Full Node without permission from The Hush Developers,
which may in some circumstances grant an MIT license on a case-by-case basis.
This code will be "experimental" forever, only supports Sprout, and
is a piece of shit. Deleting with fire.
Sapling viewing keys are the replacement, which already exist.
* Remove voutsum check
* Teach RPC interface about dpow-enabled minconfs (#1231)
* Make minconfs dpow-aware in z_listunspent + z_listreceivedbyaddress
* Add dpow-related test files to test suite
* Add dpow simulation to regtest every 7 blocks
* Fix compiler errors
* Fix link error
* Fix stdout spam when running regtests
* Dpowminconfs for listreceivedbyaddress
* dpowconfs tests
* Start adding specific tests for dpowminconfs in listreceivedbyaddress
* Get dpowminconfs tests for listreceivedbyaddress working
* Add dpowminconfs to getreceivedbyaddress + listunspent
* Add test for listtransactions + getreceivedbyaddress support
* Reliably passing dpowminconf tests. We only check for notarized-ness now, not exact confirmation numbers, to avoid race conditions
* Poll for the expected notarization info before running further tests; add support for getbalance
* Migrate tx_height() to a place where asyncrpcoperation_sendmany.cpp can use it
* fix
* Teach GetFilteredNotes about dpowconfs
Many RPCs rely on this internal function, which now correctly uses
dpowconfs to filter by the minconf/maxconf parameters.
* Fix sendmany when using non-default minconf
* inline seems to make things happy
* cleanup
* Add some code to test z_sendmany, which points out https://github.com/jl777/komodo/issues/1247
* try this
* Use already calculated value of dpowconfs instead of calculating it again
* Cleanup .pack file
* Remove
* Remove .pack
* Make minconfs dpow-aware in z_listunspent + z_listreceivedbyaddress
* Add dpow-related test files to test suite
* Add dpow simulation to regtest every 7 blocks
* Fix compiler errors
* Fix link error
* Fix stdout spam when running regtests
* Dpowminconfs for listreceivedbyaddress
* dpowconfs tests
* Start adding specific tests for dpowminconfs in listreceivedbyaddress
* Get dpowminconfs tests for listreceivedbyaddress working
* Add dpowminconfs to getreceivedbyaddress + listunspent
* Add test for listtransactions + getreceivedbyaddress support
* Reliably passing dpowminconf tests. We only check for notarized-ness now, not exact confirmation numbers, to avoid race conditions
* Poll for the expected notarization info before running further tests; add support for getbalance
* Migrate tx_height() to a place where asyncrpcoperation_sendmany.cpp can use it
* fix
* Teach GetFilteredNotes about dpowconfs
Many RPCs rely on this internal function, which now correctly uses
dpowconfs to filter by the minconf/maxconf parameters.
* Fix sendmany when using non-default minconf
* inline seems to make things happy
* cleanup
* Add some code to test z_sendmany, which points out https://github.com/jl777/komodo/issues/1247
* try this
* Use already calculated value of dpowconfs instead of calculating it again
The wallet now only stores Sapling extended spending keys, and thus can
only be used with keys generated from an HDSeed via ZIP 32.
Note that not all Sapling keys in the wallet will correspond to the
wallet's HDSeed, as a standalone Sapling xsk can be imported via
z_importkey. However, it must have been generated from a seed itself,
and thus is more likely to be backed up elsewhere.
This could in future be refactored to be generic over PaymentAddress and
NotePlaintext in the return type, but for now let's be explicit about which
returned notes are for Sprout vs Sapling, and handle them separately.
Co-authored-by: Sean Bowe <ewillbefull@gmail.com>
* Fix
* -print
* Filter null outputs
* Rewards cc
* Fix
* Linker
* Fix
* Fix
* KOMODO_LONGESTCHAIN
* Mining_height
* Fix dropped assetoshis
* Error null CCvin
* Test
* Test
* Test
* Fix sell
* Fix order book prints
* )
* Test
* Test
* Fix order display
* Fix oops
* Fix duplicate vin
* Remove dust check
* Fix silly bug
* Test
* Test
* Fix
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Fix compiler error: call of overloaded 'Pair(const char [9], time_t)' is ambiguous
* Fix compiler error: call of overloaded 'Pair(const char [9], time_t)' is ambiguous
* Correctly parse optional top parameter to getsnapshot
* Fix token orders crash
* Add SEC to assetchains.json
* Split amounts/validation: bid, ask, swap
* Fixes
* Test
* Test
* Test
* Test
* +print
* Test
* Test
* Test
* Test
* Test
* Test
* SMALLVAL
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Properly handle multiple vins funding fills
* Test
* Test
* Test
* Test
* Fix ask fill dest
* Test
* Rewards functions
* Fix
* Test
* Params to rewardscalc
* Create funding, addfunding, lock
* Test
* +print
* tokenswapask
* Test
* Test
* Swap functions
* ac_cc under 1000 is not fungible
* Allow to cancel invalid orders
* Prevent negative numbers in assets tx
* Uint64 -> int64
* Fix oops
* Prevent bid for nonexistent assetid
* Error check bidding for assetid that is txid but not asset creation
* Fix
* Fix
* Add pause if scriptcheckqueue isn't idle
* Fix
* -> -> .
* Fix
* Test
* VOBJ
* Tokeninfo rpc
* Asset list
* Test
* strcpy(cp->normaladdr,AssetsNormaladdr);
* Fix
* Rewardslist rewardsinfo
* Fix
* Fix
* Fix
* Vent
* fix
* Int64
* Int64
* Fix createfunding
* Fix false positive error
* sbits = stringbits(planstr);
* Fix maxmoney
* Fix funding name
* Test
* Print
* CCutoxvalue
* Fix rewardslock utxo selection
* New PoW diff calc
* tst
* Test
* Oldflag for PoW calc
* Test
* Test
* tst
* Test
* Test
* Filter locked utxo
* Test
* Fix PoW recalc
* Test min seconds
* int64_t CCduration(uint256 txid)
* Test
* Test
* Test one day
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Prevent inputs of CC inputs
* Test
* tst
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* New rewards address
* Fix mask
* Test
* Test
* Test
* Test
* Test
* Test
* Teest
* Stricter vin/vout checks for assets
* Token swap ready for testing
* Fix rewards unlock
* Fix
* Test
* Validate rewards
* Test
* Trim funding input
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Test
* Activate CCduration constraint
* Parameterize KOMODO_FIRSTFUNGIBLEID to 100
* +print
* Test
* Test
* Test
* Test
* Fix c script
* Test
* Initial dice morph from rewards.cpp
* Fix
* Test
* Fix
* Test
* Diceaddfunds
* Fix
* Dice list and dice info
* dicefund
* Dice bet
* Test
* Test
* Put process block's check block call inside lock, revert mining testblockvalidity outside lock
* Don't exit fiat-cli on error
* Docs for coinsupply RPC and improved error-checking on block height
* Version to 0.3.12-beta.
* Change version to 0.3.12 for gilab CI.
* Put undefines for _cpuid back.
* Network decentralizatoin and bug fixes
* Remove unnecessary staking delay
* Staking and mining timeing improvements
* Put staking readout once per staking loop so people know it's staking
* Fail on get_chainactive before lock if checks fail
* Fix check for stake transaction after Komodo merge
* Portable dev (#105)
* Force portable code
* Switch to old MMX instructions, avoiding SSE & SSE2 instructions.
* Less agressive, leave verus code (which checks for it) using advanced instructions.
* Compiling only for windows
* Update .gitlab-ci.yml
* Try -march=native for C++ code generation.
* Tweaking machine architecture settings.
* Try native alone.
* Also get LIBCRYPTOCONDITIONS to -march=native
* Switch other lib to native as well.
* Try switching back further for CPU architecture.
* Even lower end settings.
* Turn on symbols.
* Use sse2,3 and 4 capable x64.
* Once again let verus lib use advances instructioins since it checjs via CPUID at run time.
* Modify a few more makefile entries.
* Switch to AMD model similar to our test system.
* Get snark makefile to k8 too.
* Yet another -march to modify to k8, or two of them.
* Brute force k8 settings, comment non-portable code out.
* Put the condition on cpuid back.
* Put non-portable advenced instruction code back
* Enable instructions.
* Add lib for separate settings.
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* replacing k8-sse3 specific flags to x86-84
* updating versions
* updating versions
* Get verus-cli verusd updated (#106)
* Force portable code
* Switch to old MMX instructions, avoiding SSE & SSE2 instructions.
* Less agressive, leave verus code (which checks for it) using advanced instructions.
* Compiling only for windows
* Update .gitlab-ci.yml
* Try -march=native for C++ code generation.
* Tweaking machine architecture settings.
* Try native alone.
* Also get LIBCRYPTOCONDITIONS to -march=native
* Switch other lib to native as well.
* Try switching back further for CPU architecture.
* Even lower end settings.
* Turn on symbols.
* Use sse2,3 and 4 capable x64.
* Once again let verus lib use advances instructioins since it checjs via CPUID at run time.
* Modify a few more makefile entries.
* Switch to AMD model similar to our test system.
* Get snark makefile to k8 too.
* Yet another -march to modify to k8, or two of them.
* Brute force k8 settings, comment non-portable code out.
* Put the condition on cpuid back.
* Put non-portable advenced instruction code back
* Enable instructions.
* Add lib for separate settings.
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* replacing k8-sse3 specific flags to x86-84
* updating versions
* Propagate verusd changes.
Split out methods to every module, apart from 'help' and 'stop' which
are implemented in rpcserver.cpp itself.
- This makes it easier to add or remove RPC commands - no longer everything that includes
rpcserver.h has to be rebuilt when there's a change there.
- Cleans up `rpc/server.h` by getting rid of the huge cluttered list of function definitions.
- Removes most of the bitcoin-specific code from rpcserver.cpp and .h.
Continues #7307 for the non-wallet.
libzcash::PaymentAddress has been renamed to libzcash::SproutPaymentAddress,
and a new typedef boost::variant is now libzcash::PaymentAddress. Similarly
for ViewingKey and SpendingKey.
A new class InvalidEncoding is introduced as the default boost::variant
option for each address and key type; it is used during decoding instead
of boost::optional.
All address and key storage functions in the wallet have been modified to
refer specifically to the Sprout types, as they are used very precisely.
In most other cases, the more general type is leveraged as much as possible,
and we convert to the Sprout type when necessary. This will be subsequently
wrapped in, or replaced with, context-specific functions once Sapling
types are implemented.