* oracle pair init
* update
* updates
* progress
* update
* update
* progress
* builds
* update
* progress
* update
* copy pasta
* Refactor and add Instruction serializing/deserializing
* Add pack/unpack for Pool struct
* Implement InitPool instruction
* Add unit test and refactor InitPool instruction
* Minor changes
* Add using deposing token mint decimals in pass and fail mints
* Add Deposit instruction processing
* Add test for Deposit instruction
* Add Withdraw instruction processing
* Add test for Withdraw instruction
* Add Decide instruction with test
* Changes in Withdraw instruciton and add time travel to Decide instruction test
* Fix clippy warning
* Fix warning with if operator
* Fix clippy warnings
* Update libs version and minor fixes
* Minor changes
* Add user_transfer_authority to withdraw instruction and other minor changes
* Fix clippy warns
* Change return value after serialization
* Update tokio and solana-program-test libs version
Co-authored-by: Anatoly Yakovenko <anatoly@solana.com>
* Add scaffolding
* Add create / update / delete instructions and tests
* Update SerializationError -> IOError and program id
* Address review feedback
* Make initialize work with `create_with_seed`
* Cargo fmt
* Use offset for writing
* Update crud -> record
* More feedback
* Remove rent
* Update program id
* Use official Solana crates 1.5.10
* Update Cargo lock and toml
* Cargo fmt
* Update record program version to 1.5.11
* Bump compute budget
* token-swap: Add fuzzer for swap / withdraw / deposit
* Run cargo fmt
* Make end-to-end testing work
* Fix test failures
* Cleanup for review
* Remove Clone trait for Initialize
* Fix building fuzz targets
* Fix fuzz withdraw logic to avoid ZeroTradingTokens error
* Cargo fmt
* Clippy / fmt again
* Integrate fuzzer in main workspace to share clippy / fmt
* Fix clippy
* Switch to stable honggfuzz that could work with BPF
* Update to most recent honggfuzz
* Add build / run requirements
* Add fuzz CI and cleanup for honggfuzz
* Revert to using fuzz feature to integrate with workspace
* Make fuzz script executable
* Refactor and cleanup
* Add nightly run
* Fix workflow typo
* Add runtime for pull request fuzz workflow
* Fix unrelated new clippy errors
* Implemented stake-pool CLI with create-pool, deposit, list and withdraw commands, fixed several bugs in underlying smart contract
* Several typos fixed, some error text clarifications.
* Fee parameter in stake pool creation changed into two: numarator and demoninator
* Refactoring to resolve pool request comments
* Added merge to stake_receiver account when claiming whole stake account
* Removed unused import
* Withdraw bump seed calculation fixed
* 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