* Update all dependencies to 1.7.3, fix issues
* Remove esm from mocha
* Fix missed token test
* Also update rust version
* token-swap: update tolerance on sim test
* Run `cargo clippy --fix` for needless_borrow errors
* Rerun cargo fmt
* Added validator stake account list storage, deprecated old tests
* Added join and leave stake pool instructions, error messages refactoring
* Stake pool tests refactoring, tests for join and leave pool added
* Added validator stake account creation instruction, join/leave pool instructions renamed, version field added
* Formatting fixes
* Added update list/pool instructions (no tests yet), updated deposit instruction logic, claim instruction removed, refactoring
* Updated deposit logic and tests, updated withdraw logic and added tests, refactoring
* Stake pool CLI updated to work with new deposit/withdraw instructions, claim usage removed
* Added validator stake account management and balance update commands to the stake pool CLI, updated dependency versions, updated devnet program address
* Merge conflicts fixed
* Removed deprecated tests
* Fixes for review comments
* Additional program id checks across the code
* Formatting errors fixed
* Changed minimum stake balance in CLI, removed deprecated tests, removed check for stake history id
* Added TODO for stake account warmup status check
* Cargo.lock conflict fix
* Formatting fixed
* Update Cargo lock file for CI
* Pin themis version of subtle
Co-authored-by: Yuriy Savchenko <yuriy.savchenko@gmail.com>
* Use ristretto_mul builtin to stay below BPF instruction limit
* Test against a full local validator
There's now three levels of integration test:
* local_e2e uses a native program and tests with a single Bank instance.
This configuration is simplest to compile and offers the best error
messages.
* validator_e2e uses a BPF program and tests with a single Validator
instance.
This configuration allows us to test new validator functionality
before it's released without having to spin up nodes manually.
* examples/tps.rs uses whatever cluster the Solana CLI points to,
which may be devnet, testnet, mainnet-beta or a cluster of your
own.
* Move interactions PublicKey to User constructor
* Permit incremental interaction submissions
* Split InitializePoliciesAccount into two instructions
* Clean up BPF instruction count output
* Update Themis program
* Get submit_interactions() working on testnet
* Fix build
* Add THEMIS Policy Contract
* Add test with 128 ads
* Add instructions
* Allow clients to work concurrently
* pub(crate) utils to find unused code
* Remove serde_json dep
* Drop dependency on primitive_types
* Add a simpler inner_product
* Use elgamal for proof verification
* Migrate to Ristretto
Also, use Serde for instruction serialization
* Add remaining instructions to processor
* Remove rand 0.6 dependency
* Add instruction constructors
* Add e2e test
* Move client test out of BPF build
* Add BPF instruction count test
Shows us that serde makes too many recursive calls and causes
a very high instruction count (Vec<U256> becomes impractical).
* Use Borsh serialization and test calculate_aggregate()
Bump BPF instruction count limits after upgrading compiler
* Test SubmitProofDecryption BPF instruction count
* Remove CompressedRistretto
This drops SubmitProofDecryption instructions by ~2.5M.
Also, box up more RistrettoPoints, because they're huge (120 bytes) and
blow up the BPF stack.
* Add transaction size metrics and update BPF counts
* Switch back to BN
* Add benchmarking
* Use configured keypair path
* Make num_users configurable
* Make testnet benchmark an example, not a test
* Exclude themis client from CI build
Because of Travis failure on itertools dependency