9dfcb921cf
Refactoring: Move KeyedAccounts to InvokeContext ( #15410 )
...
Collects all parametric occurrences and the construction of keyed_accounts and puts them into InvokeContext.
2021-04-19 18:48:48 +02:00
a911ae00ba
clippy
2021-04-18 20:55:02 -07:00
fa83f3bd73
Return sysvars via syscalls ( #16422 )
2021-04-12 16:04:57 -07:00
105a6bfb46
Replace RootsTracker HashSet ( #16310 )
...
* Replace RootsTracker HashSet
* use bitvec
* cleanup, add brenchmark test
* test cleanup
* add lots of tests
* get rid of demo
* change warp test constant
* get rid of unused function
* pr feedback
* reorder use
* rework get_all to remove range checks
* add tests, fix bugs
2021-04-12 12:11:33 -05:00
278c125d99
Fix account copy step in program test message processor ( #16469 )
2021-04-11 07:59:43 +00:00
43feef7362
Adjust tokio version to just "1"
2021-04-05 17:13:20 +00:00
dee655df35
Cleanup use ( #16327 )
2021-04-02 08:54:09 -07:00
3f63ed9a72
removes OrderedIterator and transaction batch iteration order ( #16153 )
...
In TransactionBatch,
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/transaction_batch.rs#L4-L11
lock_results[i] is aligned with transactions[iteration_order[i]]:
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/bank.rs#L2414-L2424
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/accounts.rs#L788-L817
However load_and_execute_transactions is iterating over
lock_results[iteration_order[i]]
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/bank.rs#L2878-L2889
and then returning i as for the index of the retryable transaction.
If iteratorion_order is [1, 2, 0], and i is 0, then:
lock_results[iteration_order[i]] = lock_results[1]
which corresponds to
transactions[iteration_order[1]] = transactions[2]
so neither i = 0, nor iteration_order[i] = 1 gives the correct index for the
corresponding transaction (which is 2).
This commit removes OrderedIterator and transaction batch iteration order
entirely. There is only one place in blockstore processor which the
iteration order is not ordinal:
https://github.com/solana-labs/solana/blob/e50f59844/ledger/src/blockstore_processor.rs#L269-L271
It seems like, instead of using an iteration order, that can shuffle entry
transactions in-place.
2021-03-31 23:59:19 +00:00
ce7f7c2b6c
Align ProcessInstruction error handling ( #16232 )
2021-03-30 13:41:04 -07:00
54c68ea83f
Drop write lock on sysvars ( #15497 )
...
* Drop write lock on sysvars
* adds env var for demoting sysvar write lock demotion
* moves demote logic to is_writable
* feature gates sysvar write lock demotion
* adds builtins to write lock demotion
* adds system program id to builtins
* adds Feature111...
* adds an abi-freeze test
* mvines set of builtin program keys
Co-authored-by: Michael Vines <mvines@gmail.com >
* update tests
* adds bpf loader keys
* Add test sysvar
* Plumb demote_sysvar to is_writable
* more plumbing of demote_sysvar_write_locks to is_writable
* patches test_program_bpf_instruction_introspection
* hard codes demote_sysvar_write_locks to false for serialization/encoding methods
* Revert "hard codes demote_sysvar_write_locks to false for serialization/encoding methods"
This reverts commit ae3e2d2e777437bddd753933097a210dcbc1b1fc.
* change the hardcoded ones to demote_sysvar_write_locks=true
* Use data_as_mut_slice
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
Co-authored-by: Michael Vines <mvines@gmail.com >
2021-03-30 10:05:09 -07:00
27ab415ecc
Fix handling of invoked ix accounts in program-test ( #16170 )
2021-03-29 08:42:11 +08:00
6cc22e62d4
program-test: Fix warp and staking issue ( #16002 )
...
Since program-test creates a test genesis and then adds fees and rent,
some of the genesis accounts get rent-collected after warping. Most
notably, `StakeConfig` gets rent-collected, causing any stake operations
to fail after warp. This fix creates genesis with the `Rent` and
`FeeRateGovernor` actually used by the bank.
2021-03-19 14:37:13 +01:00
03180b502d
Avoid changing signature of ProgramTest::add_account
2021-03-17 13:21:43 -07:00
a2eb655322
=1.7.0
2021-03-16 07:51:07 +00:00
430ed6d774
Export tokio for program-test clients
2021-03-15 20:03:55 -07:00
e50f284658
use Account for test since it borrows mut ref to data ( #15852 )
2021-03-15 21:56:48 -05:00
0c9ca5522c
Bump version to v1.7.0
2021-03-13 09:01:21 +00:00
952c3bcbb7
AccountSharedData construction ( #15790 )
2021-03-11 18:09:04 -06:00
3419a5446e
AccountSharedData.set_data ( #15781 )
...
* account.set_data and resize_data
* remove data_resize
2021-03-11 16:40:45 -06:00
478518308d
Share RO and Executable accounts within invocations ( #15799 )
2021-03-10 23:04:00 -08:00
52e54e1100
account.data -> data() ( #15778 )
2021-03-09 22:31:33 +00:00
8a3135d17b
Account->AccountSharedData ( #15691 )
2021-03-09 15:06:07 -06:00
b53cb8eb2d
Deprecate Instruction::new ( #15695 )
2021-03-04 05:46:48 +00:00
3cd00965a7
Enable BPF program instruction traces ( #15613 )
2021-03-01 23:11:58 -08:00
5df36aec7d
Pacify clippy
2021-02-19 20:08:41 -08:00
995bd0cb6b
Rename IOError to BorshIoError
2021-02-19 10:54:39 -08:00
7b67a6d208
Load memo v2 into genesis for test validator ( #15425 )
...
* Load memo v2 into genesis for test validator
* feedback
* versions
* remove .so
* add .so
2021-02-19 15:59:31 +08:00
0f6f6080f3
sdk: Add Borsh support for types and utilities ( #15290 )
...
* sdk: Add Borsh to Pubkey
* Add serialization error for easier borsh integration
* Add Borsh usage to banks-client and sdk
* Rename SerializationError -> IOError
* Add new errors to proto
* Update Cargo lock
* Update Cargo.lock based on CI
* Clippy
* Update ABI on bank
* Address review feedback
* Update sanity program instruction count test
2021-02-18 11:14:56 +01:00
7f7370c306
Re-allow clippy::integer_arithmetic at crate-level
2021-02-17 13:55:08 -07:00
aa97da2146
Upgrade to SPL Token 3.1.0 program binary
2021-02-12 21:57:53 +00:00
c5be226821
program-test: Add warp tests for rent and stake rewards ( #15136 )
...
* program-test Add rent collection and stake rewards
* Improve tests to initialize vote state
* Update comment
* Update program-test/src/lib.rs
Co-authored-by: Michael Vines <mvines@gmail.com >
* Review feedback
* cargo fmt
* Avoid using hard-coded slots in tests
* Make genesis_config private
Co-authored-by: Michael Vines <mvines@gmail.com >
2021-02-05 22:08:00 +01:00
d1563f0ccd
Bump tonic, prost, tarpc, tokio ( #15013 )
...
* Update tonic & prost, and regenerate proto
* Reignore doc code
* Revert pull #14367 , but pin tokio to v0.2 for jsonrpc
* Bump backoff and goauth -> and therefore tokio
* Bump tokio in faucet, net-utils
* Bump remaining tokio, plus tarpc
2021-02-05 00:21:53 -07:00
8e93a784f3
program-test: Add ability to warp to the future ( #14998 )
...
* program-test: Add ability to warp to the future
* Make `start_local_server` take by value
* Remove clear_invoke_context
2021-02-03 23:31:36 +01:00
4324374ab5
program-test: Set context without panic ( #14997 )
...
* program-test: Fix CPI and multiple instructions
* Whitespace
* Add CPI test in program-test
2021-02-03 13:45:29 +01:00
0ce08274f9
program-test: Expose bank task to fix fuzzing ( #14908 )
...
* program-test: Expose bank task to fix fuzzing
* Run cargo fmt and clippy
* Remove unnecessary print in test
* Review feedback
* Transition to AtomicBool
2021-01-29 14:23:59 +01:00
77572a7c53
Track account writable deescalation ( #14626 )
2021-01-22 15:28:01 -08:00
0d29f9e82c
Fix program-test's CPI support ( #14594 )
...
* Fix program-test's CPI support
* feedback
2021-01-15 03:27:37 +00:00
907f518f6d
Add load/execute/store timings ( #14561 )
2021-01-14 14:14:16 -08:00
e5bd9ee0ff
Require tokio 0.3.5
2020-12-31 06:26:53 +00:00
1e977ac025
Bump version to v1.6.0
2020-12-15 18:28:04 +00:00
7143aaa89b
Clippy
2020-12-14 08:03:29 -08:00
9f2d154588
Rework TestValidator API to be more like ProgramTest
2020-12-13 07:45:55 +00:00
88d950e5a8
chore: bump log from 0.4.8 to 0.4.11 ( #13691 )
...
* chore: bump log from 0.4.8 to 0.4.11
Bumps [log](https://github.com/rust-lang/log ) from 0.4.8 to 0.4.11.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.8...0.4.11 )
Signed-off-by: dependabot[bot] <support@github.com >
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com >
2020-12-13 13:48:23 +09:00
8b380ec364
Override yanked mio crate to 0.7.6
2020-12-11 23:44:03 +00:00
0a9ff1dc9d
Initial solana-test-validator command-line program
2020-12-11 04:17:38 +00:00
81f38738e8
Use add_builtin, as user-supplied builtins may not yet exist
2020-12-02 14:31:06 -08:00
0e2578a0b8
Add commonly-used SPL programs as a convenience to the user
2020-11-25 20:53:16 +00:00
f96c4ec84e
chore: bump async-trait from 0.1.36 to 0.1.42
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.36 to 0.1.42.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.36...0.1.42 )
Signed-off-by: dependabot[bot] <support@github.com >
2020-11-25 09:34:31 -08:00
baa6b3a261
Add stable program logging for BPF and native programs
2020-11-14 08:26:01 -08:00
114b91afe6
program-test now generates new blockhashes for test usage
2020-11-11 20:29:00 -08:00