* Bump borsh to 0.10.3
transaction-status relies on SPL which still requires borsh 0.9, so
until SPL also gets updated that package alone will use an older version of
borsh.
* ci: Temporarily disable spl and openbook-dex builds
#### Summary of Changes
This PR includes the util structs for writing byte blocks, which will be used
by the TieredStorage writer (currently used in the prototype #30626).
The PR only includes the Raw encoding format. Will add more in subsequent PRs.
#### Test Plan
Tested in mnb with the prototype implementation of the tiered-storage (#30626)
Unit tests are also included in this PR.
* Use spl-token ids directly in program-id checks
* Remove id redefinitions
* Deprecate pubkey_from_spl_token and remove usage
* Deprecate spl_token_pubkey and remove usage
* Deprecate native mint helpers and remove usage
* Deprecate spl_token_instruction and remove usage
* refactor `DecryptHandle` into `pod::elgamal` from `pod::pedersen`
* refactor conversion for elgamal
* refactor conversion for pedersen
* change variable names
* add brief description of the types
* fix variable names in comments
* rename `sigma_proof::ctxt_comm_equality_proof` to non-abbreviated name
* rename `sigma_proof::ctxt_ctxt_equality_proof` to non-abbreviated name
* rename `instruction::ctxt_ctxt_equality` to non-abbreviated name
Add snapshots arguments to the ledger tool command because numerous operators
have been tripped up by not realizing that these arguments are needed for
fairly standard configs. The additional arguments are harmless for those
who don't separate snapshots into separate dirs, but essential for those
who do.
* add aggregate range proof instructions data
* add aggregate range proof instruction
* update proof program processor for aggregate range proof instructions
* cargo fmt
* Update zk-token-sdk/src/instruction/aggregate_range_proof/aggregate_range_proof_256.rs
Co-authored-by: mvines <mvines@gmail.com>
* add remark in instruction description that context state account must be pre-allocated
* use `u64::BITS` and `u128::BITS`
* add proof description in `zk_token_proof_instruction.rs`
* rename instruction names to `VerifyBatchedRangeProofU{N}`
* rename module names from `aggregate` to `batched`
* add `tokio::test` that was lost in rebase
---------
Co-authored-by: mvines <mvines@gmail.com>
* move `pod.rs` to separate submodule
* refactor `ElGamalCiphertext` and `ElGamalPubkey` to separate submodule
* refactor `PedersenCommitment` and `DecryptHandle` to separate submodule
* refactor pod sigma proof types to separate submodule
* refactor pod range proof types to separate submodule
* refactor `AeCiphertext` into a separate submodule
* refactor instruction-related pod types to separate submodule
* Apply suggestions from code review
Co-authored-by: Tyera <teulberg@gmail.com>
---------
Co-authored-by: Tyera <teulberg@gmail.com>
* add `VerifyRangeProof` instruction
* update proof program processor for `VerifyRangeProof64`
* specify target arch for `RANGEPROOF64_BIT_LENGTH
* rename `transcript_new` to `new_transcript`
* add constructor for `VerifyRangeProof64`
* add remark in the instruction description that context state account must be pre-allocated
* add proof description in `zk_token_proof_instruction.rs`
* rename `VerifyRangeProof64` to `VerifyRangeProofU64`
* use `u64::BITS`
* Update zk-token-sdk/src/zk_token_proof_instruction.rs
Co-authored-by: Tyera <teulberg@gmail.com>
* Apply suggestions from code review
Co-authored-by: Tyera <teulberg@gmail.com>
* fix range proof test
---------
Co-authored-by: Tyera <teulberg@gmail.com>
#### Problem
AppendVec currently uses std::io::ErrorKind::Other for its own errors.
#### Summary of Changes
This PR introduces AppendVecError and has AppendVec use it.