* replace program account
* modify for all cases
* remove non-data swap
* address tests & conditional feedback
* get the rent involved
* mix in owner & executable
* feature-related cases
* stripped back to feature-specific case only
* added feature
* address initial feedback
* added more lamport checks
* condense tests
* using test_case
* add fail cases to tests
* more cleanup
* add verifiably built program
* update program account state
* cleaned up serializing logic
* use full word capitalization
* rename old & new to dst & src
* swap src and dst in parameters
* add warnings and errors
* rename feature to programify
* test suite description clarity
* remove strings from datapoints
* spell out source and destination
* more verbose comments in account replace functions
* move lamport calculation
* swap lamport check for state check
* move replace functions to helper module
* make replace_account methods fallible
* refactor error handling
* add test for source program state
* Define generic AbiExample for OnceLock
* Guard with cfg...
cargo-test-sbf (governance/addin-mock/program, governance/program):
error[E0658]: use of unstable library feature 'once_cell'
--> src/abi_example.rs:559:36
|
559 | impl<T: AbiExample> AbiExample for std::sync::OnceLock<T> {
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #74465 <https://github.com/rust-lang/rust/issues/74465> for more information
= help: add `#![feature(once_cell)]` to the crate attributes to enable
* Adjust test_purge_transaction_status_exact to test slots that cross primary indexes
* Minimize deletes by checking the primary-index range
* Fix test_purge_special_columns_compaction_filter
These entries were found to improve compaction performance when
LedgerCleanupService was performing direct compactions on each primary
index. Cleaning by primary index has been deprecated for a while, and
as such, these dummy entries are no longer needed and can be removed.
These options are now disallowed on the command line for
solana-validator and solana-ledger-tool, which effectively means no more
snapshots will be created with this types in normal usecases. However,
support for reading the deprecated types is still in place.
* transaction-status: Remove `convert_pubkey`
Ran `git g -l convert_pubkey | xargs sed -i'' -re 's/convert_pubkey\(([^)]+)\)/\1/g'`
* Remove convert_compiled_instruction
Ran `git g -l convert_compiled_instruction | xargs sed -i'' -re 's/convert_compiled_instruction\(([^)]+)\)/\1/g'`
* Cleanup + clippy
* Remove instruction conversions in new extensions
* Run clippy --fix
* token: Update to 4.0.0
* token-2022: Bump and support new account and instruction types
* Update token-2022 in fetch_spl / program-test
* Fixup downstream uses
* Mint and destination were flipped in 0.9.0
* Don't use `convert_pubkey`
* Bump spl dependencies to versions which avoid recompilations
* add tests for validating `Pubkey` and `Hash`
* add pubkey signature parser
* add parsers for straightforward validators
* add parser for token amounts
* add parser for derivation and seeds
* resolve warnings from deprecations in clap-v3-utils
* remove some deprecated functions from `solana_keygen`
* refactor signer related input parsers into a submodule
* fix deprecation notice for utl
* refactor parsers in `input_validators` to `input_parsers`
* cargo fmt
* Apply suggestions from code review
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update clap-v3-utils/src/input_parsers/mod.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* mionr fixes to build
* add deprecation notice for old `input_parsers::signer` functions
* update `UiTokenAmount` to `Amount`
* refactor to-be-deprecated functions back to `input_parsers/mod.rs
* fmt
---------
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* hash_dedup vec algo
* reviews
* reviews
* more reviews
* simplify working_set init with add_next_item
* refactor to remove special case "new" from add_item.
The new change is that, even the new item is the new min, it will still be added to working_set.
This change will make init working_set code simpler and the loop loop check simpler.
Since the item is inserted in at the end of the vector, the cost of push into and pop from the working will be O(1), shouldn't affect performance much.
* comments
* refactor unnamed tuple in working set to SlotGroupPointer type
* use SlotGroupPointer in ItemLocation
* Add Copy traits to avoid explicty call of clone on SlotGroupPointer
* consume next in add_next_item fn (credit to jeff).
note that the old code is still correct, since before call to
add_next_item, we will have already overwritten `next` to correct value.
---------
Co-authored-by: HaoranYi <haoran.yi@solana.com>
* docs: add direct link to StackExchange from the On-Chain Programs docs
* Update link to Discord.
Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com>
---------
Co-authored-by: Nick Frostbutter <75431177+nickfrosty@users.noreply.github.com>