Compare commits

...

20 Commits

Author SHA1 Message Date
carllin
7956f04fa5 Backport Accounts Fixes #16838 and the test #17038 (#19412)
* reclaims unref accounts from index (#16838)

* Test account index and store alignment (#17038)

* Use ReclaimResult::Default() instead of building subtypes

* Add test to ensure account_db store and index are aligned

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: steviez <steven@solana.com>
2021-08-25 14:40:53 -07:00
mergify[bot]
2825f82bee Add parameter to allow setting max-retries for SendTransaction rpc (backport #19387) (#19415)
* Add parameter to allow setting max-retries for SendTransaction rpc (#19387)

* Add parameter to cap rpc send retries for a tx

* Add parameter to docs

(cherry picked from commit 7482861f4b)

# Conflicts:
#	banks-server/src/banks_server.rs
#	core/src/rpc.rs
#	core/src/send_transaction_service.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2021-08-25 16:47:47 +00:00
mergify[bot]
45e3cd373b Bump crossbeam-epoch (backport #19378) (#19388)
* Bump to get off yanked crate (#19378)

(cherry picked from commit 82ea4891fd)

# Conflicts:
#	Cargo.lock
#	programs/bpf/Cargo.lock

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2021-08-24 08:16:08 +00:00
Brooks Prumo
2b4b260c71 Update crossbeam-deque to 0.8.1 (#19361) (#19381)
(cherry picked from commit 2ccbe471ae)
2021-08-23 23:10:35 +00:00
Trent Nelson
866fd22fde ci: pin patched solana crates version for downstream project builds 2021-08-18 22:08:12 -06:00
Tyera Eulberg
d23df85410 Remove pin-project-lite warning 2021-08-18 22:08:12 -06:00
Tyera Eulberg
839cdecfd2 Bump assert_cmd and remove audit ignore 2021-08-18 22:08:12 -06:00
Tyera Eulberg
cc6296b1fa Add audit ignores 2021-08-18 22:08:12 -06:00
Tyera Eulberg
0c2a85a903 Update hyper 0.14 2021-08-18 22:08:12 -06:00
Trent Nelson
011fe72aa2 Bump version to v1.6.22 2021-08-18 22:08:12 -06:00
mergify[bot]
40fc14471d Really start caching by fixing swapped CAS... (#18842) (#18969)
(cherry picked from commit 611af87fdb)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2021-07-29 16:52:46 +00:00
mergify[bot]
7fc85b8c9b Fix erroneous default start_slot (#18948) (#18951)
(cherry picked from commit 578f2aa22b)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2021-07-29 03:56:54 +00:00
Tyera Eulberg
4d77ac1688 Bump version to v1.6.21 (#18953) 2021-07-28 23:47:03 +00:00
sakridge
77bdb45d4a Sigverify refactor (#18873) 2021-07-23 22:32:09 +02:00
sakridge
3539849a7f Add voting service (#18552) (#18781) 2021-07-22 22:26:04 +02:00
Tyera Eulberg
8c28f9b63e Exclude stubbed ProgramCosts column from compaction (#18840) 2021-07-22 17:56:23 +00:00
mergify[bot]
3346843a87 token: Swap new token program id for consistency on all networks (#18823) (#18836)
(cherry picked from commit d6f5945653)

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2021-07-22 09:55:39 +00:00
Jon Cinque
007c49ff2b feature: add new token program feature (v1.6 backport of #18780) (#18804)
* feature: add new token program feature

* Fixup test

* Cargo fmt

* Add back whitespace for cargo fmt

* Revert file totally
2021-07-21 21:58:28 +02:00
mergify[bot]
bbd386884d Disambiguate archive_snapshot_package IO error sources (#18797)
(cherry picked from commit a4c3db51fc)

Co-authored-by: Trent Nelson <trent@solana.com>
2021-07-21 19:32:19 +00:00
Jon Cinque
ba8426e0fd 1.6: Bump crates to 1.6.20 (#18805) 2021-07-21 17:44:41 +02:00
135 changed files with 1571 additions and 1174 deletions

561
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-account-decoder"
version = "1.6.19"
version = "1.6.22"
description = "Solana account decoder"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -19,10 +19,10 @@ lazy_static = "1.4.0"
serde = "1.0.122"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
thiserror = "1.0"
zstd = "0.5.1"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-accounts-bench"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -11,11 +11,11 @@ publish = false
[dependencies]
log = "0.4.11"
rayon = "1.5.0"
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
rand = "0.7.0"
clap = "2.33.1"
crossbeam-channel = "0.4"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-accounts-cluster-bench"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -13,22 +13,22 @@ clap = "2.33.1"
log = "0.4.11"
rand = "0.7.0"
rayon = "1.4.1"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
[dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-banking-bench"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -14,16 +14,16 @@ crossbeam-channel = "0.4"
log = "0.4.11"
rand = "0.7.0"
rayon = "1.5.0"
solana-core = { path = "../core", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-streamer = { path = "../streamer", version = "=1.6.19" }
solana-perf = { path = "../perf", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-streamer = { path = "../streamer", version = "=1.6.22" }
solana-perf = { path = "../perf", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-banks-client"
version = "1.6.19"
version = "1.6.22"
description = "Solana banks client"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -15,16 +15,16 @@ borsh = "0.9.0"
borsh-derive = "0.9.0"
futures = "0.3"
mio = "0.7.6"
solana-banks-interface = { path = "../banks-interface", version = "=1.6.19" }
solana-program = { path = "../sdk/program", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-banks-interface = { path = "../banks-interface", version = "=1.6.22" }
solana-program = { path = "../sdk/program", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
tarpc = { version = "0.24.1", features = ["full"] }
tokio = { version = "1", features = ["full"] }
tokio-serde = { version = "0.8", features = ["bincode"] }
[dev-dependencies]
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
[lib]
crate-type = ["lib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-banks-interface"
version = "1.6.19"
version = "1.6.22"
description = "Solana banks RPC interface"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ edition = "2018"
[dependencies]
mio = "0.7.6"
serde = { version = "1.0.122", features = ["derive"] }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
tarpc = { version = "0.24.1", features = ["full"] }
[dev-dependencies]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-banks-server"
version = "1.6.19"
version = "1.6.22"
description = "Solana banks server"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -14,10 +14,10 @@ bincode = "1.3.1"
futures = "0.3"
log = "0.4.11"
mio = "0.7.6"
solana-banks-interface = { path = "../banks-interface", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-banks-interface = { path = "../banks-interface", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
tarpc = { version = "0.24.1", features = ["full"] }
tokio = { version = "1", features = ["full"] }
tokio-serde = { version = "0.8", features = ["bincode"] }

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-bench-exchange"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -18,21 +18,21 @@ rand = "0.7.0"
rayon = "1.5.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-genesis = { path = "../genesis", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-genesis = { path = "../genesis", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-bench-streamer"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -10,11 +10,11 @@ publish = false
[dependencies]
clap = "2.33.1"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-streamer = { path = "../streamer", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-streamer = { path = "../streamer", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-bench-tps"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -15,22 +15,22 @@ log = "0.4.11"
rayon = "1.5.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-genesis = { path = "../genesis", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-genesis = { path = "../genesis", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[dev-dependencies]
serial_test = "0.4.0"
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -28,16 +28,29 @@ cargo_audit_ignores=(
# Blocked on multiple crates updating `time` to >= 0.2.23
--ignore RUSTSEC-2020-0071
# difference is unmaintained
#
# Blocked on predicates v1.0.6 removing its dependency on `difference`
--ignore RUSTSEC-2020-0095
# generic-array: arr! macro erases lifetimes
#
# Blocked on libsecp256k1 releasing with upgraded dependencies
# https://github.com/paritytech/libsecp256k1/issues/66
--ignore RUSTSEC-2020-0146
# hyper: Lenient `hyper` header parsing of `Content-Length` could allow request smuggling
#
# Blocked on jsonrpc removing dependency on unmaintained `websocket`
# https://github.com/paritytech/jsonrpc/issues/605
--ignore RUSTSEC-2021-0078
# hyper: Integer overflow in `hyper`'s parsing of the `Transfer-Encoding` header leads to data loss
#
# Blocked on jsonrpc removing dependency on unmaintained `websocket`
# https://github.com/paritytech/jsonrpc/issues/605
--ignore RUSTSEC-2021-0079
# tar: Links in archive can create arbitrary directories
#
# Blocked on `tar` releasing safe upgrade
# https://github.com/alexcrichton/tar-rs/issues/238
--ignore RUSTSEC-2021-0080
)
scripts/cargo-for-all-lock-files.sh stable audit "${cargo_audit_ignores[@]}"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-clap-utils"
version = "1.6.19"
version = "1.6.22"
description = "Solana utilities for the clap"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -12,8 +12,8 @@ edition = "2018"
[dependencies]
clap = "2.33.0"
rpassword = "4.0"
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
thiserror = "1.0.21"
tiny-bip39 = "0.8.0"
uriparse = "0.6.3"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-cli-config"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-cli-output"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -19,13 +19,13 @@ indicatif = "0.15.0"
serde = "1.0.122"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
[package.metadata.docs.rs]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-cli"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -29,30 +29,30 @@ reqwest = { version = "0.11.2", default-features = false, features = ["blocking"
serde = "1.0.122"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
solana-cli-output = { path = "../cli-output", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
solana-cli-output = { path = "../cli-output", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana_rbpf = "=0.2.9"
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
thiserror = "1.0.21"
tiny-bip39 = "0.7.0"
url = "2.1.1"
[dev-dependencies]
solana-core = { path = "../core", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.22" }
tempfile = "3.1.0"
[[bin]]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-client"
version = "1.6.19"
version = "1.6.22"
description = "Solana Client"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -24,14 +24,14 @@ semver = "0.11.0"
serde = "1.0.122"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }
tungstenite = "0.10.1"
@@ -40,7 +40,7 @@ url = "2.1.1"
[dev-dependencies]
assert_matches = "1.3.0"
jsonrpc-http-server = "17.0.0"
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -21,6 +21,7 @@ pub struct RpcSendTransactionConfig {
pub skip_preflight: bool,
pub preflight_commitment: Option<CommitmentLevel>,
pub encoding: Option<UiTransactionEncoding>,
pub max_retries: Option<usize>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]

View File

@@ -1,7 +1,7 @@
[package]
name = "solana-core"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
homepage = "https://solana.com/"
documentation = "https://docs.rs/solana-core"
readme = "../README.md"
@@ -52,37 +52,37 @@ serde = "1.0.122"
serde_bytes = "0.11"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-perf = { path = "../perf", version = "=1.6.19" }
solana-program-test = { path = "../program-test", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.19" }
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
solana-streamer = { path = "../streamer", version = "=1.6.19" }
solana-sys-tuner = { path = "../sys-tuner", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-perf = { path = "../perf", version = "=1.6.22" }
solana-program-test = { path = "../program-test", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.22" }
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
solana-streamer = { path = "../streamer", version = "=1.6.22" }
solana-sys-tuner = { path = "../sys-tuner", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
tempfile = "3.1.0"
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }
tokio_02 = { version = "0.2", package = "tokio", features = ["full"] }
tokio-util = { version = "0.3", features = ["codec"] } # This crate needs to stay in sync with tokio_02, until that dependency can be removed
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
trees = "0.2.1"
[dev-dependencies]

View File

@@ -351,7 +351,7 @@ impl StandardBroadcastRun {
if now - last > BROADCAST_PEER_UPDATE_INTERVAL_MS
&& self
.last_peer_update
.compare_and_swap(now, last, Ordering::Relaxed)
.compare_and_swap(last, now, Ordering::Relaxed)
== last
{
let mut w_broadcast_peer_cache = self.broadcast_peer_cache.write().unwrap();

View File

@@ -83,6 +83,7 @@ pub mod unfrozen_gossip_verified_vote_hashes;
pub mod validator;
pub mod verified_vote_packets;
pub mod vote_stake_tracker;
pub mod voting_service;
pub mod weighted_shuffle;
pub mod window_service;

View File

@@ -24,6 +24,7 @@ use crate::{
rewards_recorder_service::RewardsRecorderSender,
rpc_subscriptions::RpcSubscriptions,
unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes,
voting_service::VoteOp,
window_service::DuplicateSlotReceiver,
};
use solana_client::rpc_response::SlotUpdate;
@@ -305,6 +306,7 @@ impl ReplayStage {
replay_vote_sender: ReplayVoteSender,
gossip_duplicate_confirmed_slots_receiver: GossipDuplicateConfirmedSlotsReceiver,
gossip_verified_vote_hash_receiver: GossipVerifiedVoteHashReceiver,
voting_sender: Sender<VoteOp>,
) -> Self {
let ReplayStageConfig {
my_pubkey,
@@ -525,7 +527,7 @@ impl ReplayStage {
if let Some(heaviest_bank_on_same_voted_fork) = heaviest_bank_on_same_voted_fork.as_ref() {
if let Some(my_latest_landed_vote) = progress.my_latest_landed_vote(heaviest_bank_on_same_voted_fork.slot()) {
Self::refresh_last_vote(&mut tower, &cluster_info, heaviest_bank_on_same_voted_fork, &poh_recorder, my_latest_landed_vote, &vote_account, &authorized_voter_keypairs.read().unwrap(), &mut voted_signatures, has_new_vote_been_rooted, &mut last_vote_refresh_time);
Self::refresh_last_vote(&mut tower, &cluster_info, heaviest_bank_on_same_voted_fork, my_latest_landed_vote, &vote_account, &authorized_voter_keypairs.read().unwrap(), &mut voted_signatures, has_new_vote_been_rooted, &mut last_vote_refresh_time, &voting_sender);
}
}
@@ -583,7 +585,6 @@ impl ReplayStage {
Self::handle_votable_bank(
&vote_bank,
&poh_recorder,
switch_fork_decision,
&bank_forks,
&mut tower,
@@ -606,6 +607,7 @@ impl ReplayStage {
&mut voted_signatures,
&mut has_new_vote_been_rooted,
&mut replay_timing,
&voting_sender,
);
};
voting_time.stop();
@@ -1337,7 +1339,6 @@ impl ReplayStage {
#[allow(clippy::too_many_arguments)]
fn handle_votable_bank(
bank: &Arc<Bank>,
poh_recorder: &Arc<Mutex<PohRecorder>>,
switch_fork_decision: &SwitchForkDecision,
bank_forks: &Arc<RwLock<BankForks>>,
tower: &mut Tower,
@@ -1360,6 +1361,7 @@ impl ReplayStage {
vote_signatures: &mut Vec<Signature>,
has_new_vote_been_rooted: &mut bool,
replay_timing: &mut ReplayTiming,
voting_sender: &Sender<VoteOp>,
) {
if bank.is_empty() {
inc_new_counter_info!("replay_stage-voted_empty_bank", 1);
@@ -1437,7 +1439,6 @@ impl ReplayStage {
Self::push_vote(
cluster_info,
bank,
poh_recorder,
vote_account_pubkey,
authorized_voter_keypairs,
tower,
@@ -1445,6 +1446,7 @@ impl ReplayStage {
vote_signatures,
*has_new_vote_been_rooted,
replay_timing,
voting_sender,
);
}
@@ -1538,13 +1540,13 @@ impl ReplayStage {
tower: &mut Tower,
cluster_info: &ClusterInfo,
heaviest_bank_on_same_fork: &Bank,
poh_recorder: &Mutex<PohRecorder>,
my_latest_landed_vote: Slot,
vote_account_pubkey: &Pubkey,
authorized_voter_keypairs: &[Arc<Keypair>],
vote_signatures: &mut Vec<Signature>,
has_new_vote_been_rooted: bool,
last_vote_refresh_time: &mut LastVoteRefreshTime,
voting_sender: &Sender<VoteOp>,
) {
let last_voted_slot = tower.last_voted_slot();
if last_voted_slot.is_none() {
@@ -1596,11 +1598,12 @@ impl ReplayStage {
("target_bank_slot", heaviest_bank_on_same_fork.slot(), i64),
("target_bank_hash", hash_string, String),
);
let _ = cluster_info.send_vote(
&vote_tx,
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
);
cluster_info.refresh_vote(vote_tx, last_voted_slot);
voting_sender
.send(VoteOp::RefreshVote {
tx: vote_tx,
last_voted_slot,
})
.unwrap_or_else(|err| warn!("Error: {:?}", err));
last_vote_refresh_time.last_refresh_time = Instant::now();
}
}
@@ -1609,7 +1612,6 @@ impl ReplayStage {
fn push_vote(
cluster_info: &ClusterInfo,
bank: &Bank,
poh_recorder: &Mutex<PohRecorder>,
vote_account_pubkey: &Pubkey,
authorized_voter_keypairs: &[Arc<Keypair>],
tower: &mut Tower,
@@ -1617,6 +1619,7 @@ impl ReplayStage {
vote_signatures: &mut Vec<Signature>,
has_new_vote_been_rooted: bool,
replay_timing: &mut ReplayTiming,
voting_sender: &Sender<VoteOp>,
) {
let mut generate_time = Measure::start("generate_vote");
let vote_tx = Self::generate_vote_tx(
@@ -1633,16 +1636,14 @@ impl ReplayStage {
replay_timing.generate_vote_us += generate_time.as_us();
if let Some(vote_tx) = vote_tx {
tower.refresh_last_vote_tx_blockhash(vote_tx.message.recent_blockhash);
let mut send_time = Measure::start("send_vote");
let _ = cluster_info.send_vote(
&vote_tx,
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
);
send_time.stop();
let mut push_time = Measure::start("push_vote");
cluster_info.push_vote(&tower.tower_slots(), vote_tx);
push_time.stop();
replay_timing.vote_push_us += push_time.as_us();
let tower_slots = tower.tower_slots();
voting_sender
.send(VoteOp::PushVote {
tx: vote_tx,
tower_slots,
})
.unwrap_or_else(|err| warn!("Error: {:?}", err));
}
}
@@ -2594,6 +2595,7 @@ pub(crate) mod tests {
vote_state::{VoteState, VoteStateVersions},
vote_transaction,
};
use std::sync::mpsc::channel;
use std::{
fs::remove_dir_all,
iter,
@@ -4845,6 +4847,7 @@ pub(crate) mod tests {
}
}
}
let (voting_sender, voting_receiver) = channel();
// Simulate landing a vote for slot 0 landing in slot 1
let bank1 = Arc::new(Bank::new_from_parent(&bank0, &Pubkey::default(), 1));
@@ -4853,7 +4856,6 @@ pub(crate) mod tests {
ReplayStage::push_vote(
&cluster_info,
&bank0,
&poh_recorder,
&my_vote_pubkey,
&my_vote_keypair,
&mut tower,
@@ -4861,7 +4863,13 @@ pub(crate) mod tests {
&mut voted_signatures,
has_new_vote_been_rooted,
&mut ReplayTiming::default(),
&voting_sender,
);
let vote_info = voting_receiver
.recv_timeout(Duration::from_secs(1))
.unwrap();
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
let mut cursor = Cursor::default();
let (_, votes) = cluster_info.get_votes(&mut cursor);
assert_eq!(votes.len(), 1);
@@ -4882,13 +4890,13 @@ pub(crate) mod tests {
&mut tower,
&cluster_info,
refresh_bank,
&poh_recorder,
Tower::last_voted_slot_in_bank(&refresh_bank, &my_vote_pubkey).unwrap(),
&my_vote_pubkey,
&my_vote_keypair,
&mut voted_signatures,
has_new_vote_been_rooted,
&mut last_vote_refresh_time,
&voting_sender,
);
// No new votes have been submitted to gossip
@@ -4905,7 +4913,6 @@ pub(crate) mod tests {
ReplayStage::push_vote(
&cluster_info,
&bank1,
&poh_recorder,
&my_vote_pubkey,
&my_vote_keypair,
&mut tower,
@@ -4913,7 +4920,12 @@ pub(crate) mod tests {
&mut voted_signatures,
has_new_vote_been_rooted,
&mut ReplayTiming::default(),
&voting_sender,
);
let vote_info = voting_receiver
.recv_timeout(Duration::from_secs(1))
.unwrap();
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
let (_, votes) = cluster_info.get_votes(&mut cursor);
assert_eq!(votes.len(), 1);
let vote_tx = &votes[0];
@@ -4927,14 +4939,15 @@ pub(crate) mod tests {
&mut tower,
&cluster_info,
&bank2,
&poh_recorder,
Tower::last_voted_slot_in_bank(&bank2, &my_vote_pubkey).unwrap(),
&my_vote_pubkey,
&my_vote_keypair,
&mut voted_signatures,
has_new_vote_been_rooted,
&mut last_vote_refresh_time,
&voting_sender,
);
// No new votes have been submitted to gossip
let (_, votes) = cluster_info.get_votes(&mut cursor);
assert!(votes.is_empty());
@@ -4963,14 +4976,19 @@ pub(crate) mod tests {
&mut tower,
&cluster_info,
&expired_bank,
&poh_recorder,
Tower::last_voted_slot_in_bank(&expired_bank, &my_vote_pubkey).unwrap(),
&my_vote_pubkey,
&my_vote_keypair,
&mut voted_signatures,
has_new_vote_been_rooted,
&mut last_vote_refresh_time,
&voting_sender,
);
let vote_info = voting_receiver
.recv_timeout(Duration::from_secs(1))
.unwrap();
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
assert!(last_vote_refresh_time.last_refresh_time > clone_refresh_time);
let (_, votes) = cluster_info.get_votes(&mut cursor);
assert_eq!(votes.len(), 1);
@@ -5019,14 +5037,15 @@ pub(crate) mod tests {
&mut tower,
&cluster_info,
&expired_bank_sibling,
&poh_recorder,
Tower::last_voted_slot_in_bank(&expired_bank_sibling, &my_vote_pubkey).unwrap(),
&my_vote_pubkey,
&my_vote_keypair,
&mut voted_signatures,
has_new_vote_been_rooted,
&mut last_vote_refresh_time,
&voting_sender,
);
let (_, votes) = cluster_info.get_votes(&mut cursor);
assert!(votes.is_empty());
assert_eq!(

View File

@@ -1054,7 +1054,10 @@ impl JsonRpcRequestProcessor {
.map_err(|_| Error::internal_error())?
.filter(|&slot| slot <= end_slot && slot <= highest_confirmed_root)
.collect();
let last_element = blocks.last().cloned().unwrap_or_default();
let last_element = blocks
.last()
.cloned()
.unwrap_or_else(|| start_slot.saturating_sub(1));
// Maybe add confirmed blocks
if commitment.is_confirmed() && last_element < end_slot {
@@ -2160,6 +2163,7 @@ fn _send_transaction(
wire_transaction: Vec<u8>,
last_valid_slot: Slot,
durable_nonce_info: Option<(Pubkey, Hash)>,
max_retries: Option<usize>,
) -> Result<String> {
if transaction.signatures.is_empty() {
return Err(RpcCustomError::TransactionSignatureVerificationFailure.into());
@@ -2170,6 +2174,7 @@ fn _send_transaction(
wire_transaction,
last_valid_slot,
durable_nonce_info,
max_retries,
);
meta.transaction_sender
.lock()
@@ -3109,7 +3114,14 @@ pub mod rpc_full {
Error::internal_error()
})?;
_send_transaction(meta, transaction, wire_transaction, last_valid_slot, None)
_send_transaction(
meta,
transaction,
wire_transaction,
last_valid_slot,
None,
None,
)
}
fn send_transaction(
@@ -3201,6 +3213,7 @@ pub mod rpc_full {
wire_transaction,
last_valid_slot,
durable_nonce_info,
config.max_retries,
)
}

View File

@@ -35,6 +35,8 @@ pub struct TransactionInfo {
pub wire_transaction: Vec<u8>,
pub last_valid_slot: Slot,
pub durable_nonce_info: Option<(Pubkey, Hash)>,
pub max_retries: Option<usize>,
retries: usize,
}
impl TransactionInfo {
@@ -43,12 +45,15 @@ impl TransactionInfo {
wire_transaction: Vec<u8>,
last_valid_slot: Slot,
durable_nonce_info: Option<(Pubkey, Hash)>,
max_retries: Option<usize>,
) -> Self {
Self {
signature,
wire_transaction,
last_valid_slot,
durable_nonce_info,
max_retries,
retries: 0,
}
}
}
@@ -100,6 +105,7 @@ struct ProcessTransactionsResult {
rooted: u64,
expired: u64,
retried: u64,
max_retries_elapsed: u64,
failed: u64,
retained: u64,
}
@@ -222,7 +228,7 @@ impl SendTransactionService {
) -> ProcessTransactionsResult {
let mut result = ProcessTransactionsResult::default();
transactions.retain(|signature, transaction_info| {
transactions.retain(|signature, mut transaction_info| {
if transaction_info.durable_nonce_info.is_some() {
inc_new_counter_info!("send_transaction_service-nonced", 1);
}
@@ -249,6 +255,14 @@ impl SendTransactionService {
inc_new_counter_info!("send_transaction_service-expired", 1);
return false;
}
if let Some(max_retries) = transaction_info.max_retries {
if transaction_info.retries >= max_retries {
info!("Dropping transaction due to max retries: {}", signature);
result.max_retries_elapsed += 1;
inc_new_counter_info!("send_transaction_service-max_retries", 1);
return false;
}
}
match working_bank.get_signature_status_slot(signature) {
None => {
@@ -256,6 +270,7 @@ impl SendTransactionService {
// dropped or landed in another fork. Re-send it
info!("Retrying transaction: {}", signature);
result.retried += 1;
transaction_info.retries += 1;
inc_new_counter_info!("send_transaction_service-retry", 1);
let addresses = leader_info
.as_ref()
@@ -387,7 +402,13 @@ mod test {
info!("Expired transactions are dropped...");
transactions.insert(
Signature::default(),
TransactionInfo::new(Signature::default(), vec![], root_bank.slot() - 1, None),
TransactionInfo::new(
Signature::default(),
vec![],
root_bank.slot() - 1,
None,
None,
),
);
let result = SendTransactionService::process_transactions(
&working_bank,
@@ -410,7 +431,7 @@ mod test {
info!("Rooted transactions are dropped...");
transactions.insert(
rooted_signature,
TransactionInfo::new(rooted_signature, vec![], working_bank.slot(), None),
TransactionInfo::new(rooted_signature, vec![], working_bank.slot(), None, None),
);
let result = SendTransactionService::process_transactions(
&working_bank,
@@ -433,7 +454,7 @@ mod test {
info!("Failed transactions are dropped...");
transactions.insert(
failed_signature,
TransactionInfo::new(failed_signature, vec![], working_bank.slot(), None),
TransactionInfo::new(failed_signature, vec![], working_bank.slot(), None, None),
);
let result = SendTransactionService::process_transactions(
&working_bank,
@@ -456,7 +477,13 @@ mod test {
info!("Non-rooted transactions are kept...");
transactions.insert(
non_rooted_signature,
TransactionInfo::new(non_rooted_signature, vec![], working_bank.slot(), None),
TransactionInfo::new(
non_rooted_signature,
vec![],
working_bank.slot(),
None,
None,
),
);
let result = SendTransactionService::process_transactions(
&working_bank,
@@ -480,7 +507,13 @@ mod test {
info!("Unknown transactions are retried...");
transactions.insert(
Signature::default(),
TransactionInfo::new(Signature::default(), vec![], working_bank.slot(), None),
TransactionInfo::new(
Signature::default(),
vec![],
working_bank.slot(),
None,
None,
),
);
let result = SendTransactionService::process_transactions(
&working_bank,
@@ -499,6 +532,64 @@ mod test {
..ProcessTransactionsResult::default()
}
);
transactions.clear();
info!("Transactions are only retried until max_retries");
transactions.insert(
Signature::new(&[1; 64]),
TransactionInfo::new(
Signature::default(),
vec![],
working_bank.slot(),
None,
Some(0),
),
);
transactions.insert(
Signature::new(&[2; 64]),
TransactionInfo::new(
Signature::default(),
vec![],
working_bank.slot(),
None,
Some(1),
),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
&None,
leader_forward_count,
);
assert_eq!(transactions.len(), 1);
assert_eq!(
result,
ProcessTransactionsResult {
retried: 1,
max_retries_elapsed: 1,
..ProcessTransactionsResult::default()
}
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
&None,
leader_forward_count,
);
assert!(transactions.is_empty());
assert_eq!(
result,
ProcessTransactionsResult {
max_retries_elapsed: 1,
..ProcessTransactionsResult::default()
}
);
}
#[test]
@@ -559,6 +650,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, durable_nonce)),
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -586,6 +678,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, Hash::new_unique())),
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -615,6 +708,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, Hash::new_unique())),
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -642,6 +736,7 @@ mod test {
vec![],
root_bank.slot() - 1,
Some((nonce_address, durable_nonce)),
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -670,6 +765,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, Hash::new_unique())), // runtime should advance nonce on failed transactions
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -698,6 +794,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, Hash::new_unique())), // runtime advances nonce when transaction lands
None,
),
);
let result = SendTransactionService::process_transactions(
@@ -727,6 +824,7 @@ mod test {
vec![],
last_valid_slot,
Some((nonce_address, durable_nonce)),
None,
),
);
let result = SendTransactionService::process_transactions(

View File

@@ -25,6 +25,7 @@ use crate::{
sigverify_shreds::ShredSigVerifier,
sigverify_stage::SigVerifyStage,
snapshot_packager_service::PendingSnapshotPackage,
voting_service::VotingService,
};
use crossbeam_channel::unbounded;
use solana_ledger::{
@@ -65,6 +66,7 @@ pub struct Tvu {
ledger_cleanup_service: Option<LedgerCleanupService>,
accounts_background_service: AccountsBackgroundService,
accounts_hash_verifier: AccountsHashVerifier,
voting_service: VotingService,
}
pub struct Sockets {
@@ -265,6 +267,10 @@ impl Tvu {
wait_for_vote_to_start_leader: tvu_config.wait_for_vote_to_start_leader,
};
let (voting_sender, voting_receiver) = channel();
let voting_service =
VotingService::new(voting_receiver, cluster_info.clone(), poh_recorder.clone());
let replay_stage = ReplayStage::new(
replay_stage_config,
blockstore.clone(),
@@ -281,6 +287,7 @@ impl Tvu {
replay_vote_sender,
gossip_confirmed_slots_receiver,
gossip_verified_vote_hash_receiver,
voting_sender,
);
let ledger_cleanup_service = tvu_config.max_ledger_shreds.map(|max_ledger_shreds| {
@@ -311,6 +318,7 @@ impl Tvu {
ledger_cleanup_service,
accounts_background_service,
accounts_hash_verifier,
voting_service,
}
}
@@ -324,6 +332,7 @@ impl Tvu {
self.accounts_background_service.join()?;
self.replay_stage.join()?;
self.accounts_hash_verifier.join()?;
self.voting_service.join()?;
Ok(())
}
}

View File

@@ -0,0 +1,79 @@
use crate::cluster_info::ClusterInfo;
use crate::poh_recorder::PohRecorder;
use solana_sdk::{clock::Slot, transaction::Transaction};
use std::{
sync::{mpsc::Receiver, Arc, Mutex},
thread::{self, Builder, JoinHandle},
};
pub enum VoteOp {
PushVote {
tx: Transaction,
tower_slots: Vec<Slot>,
},
RefreshVote {
tx: Transaction,
last_voted_slot: Slot,
},
}
impl VoteOp {
fn tx(&self) -> &Transaction {
match self {
VoteOp::PushVote { tx, tower_slots: _ } => tx,
VoteOp::RefreshVote {
tx,
last_voted_slot: _,
} => tx,
}
}
}
pub struct VotingService {
thread_hdl: JoinHandle<()>,
}
impl VotingService {
pub fn new(
vote_receiver: Receiver<VoteOp>,
cluster_info: Arc<ClusterInfo>,
poh_recorder: Arc<Mutex<PohRecorder>>,
) -> Self {
let thread_hdl = Builder::new()
.name("sol-vote-service".to_string())
.spawn(move || {
for vote_op in vote_receiver.iter() {
Self::handle_vote(&cluster_info, &poh_recorder, vote_op);
}
})
.unwrap();
Self { thread_hdl }
}
pub fn handle_vote(
cluster_info: &ClusterInfo,
poh_recorder: &Mutex<PohRecorder>,
vote_op: VoteOp,
) {
let _ = cluster_info.send_vote(
vote_op.tx(),
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
);
match vote_op {
VoteOp::PushVote { tx, tower_slots } => {
cluster_info.push_vote(&tower_slots, tx);
}
VoteOp::RefreshVote {
tx,
last_voted_slot,
} => {
cluster_info.refresh_vote(tx, last_voted_slot);
}
}
}
pub fn join(self) -> thread::Result<()> {
self.thread_hdl.join()
}
}

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-crate-features"
version = "1.6.19"
version = "1.6.22"
description = "Solana Crate Features"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"

View File

@@ -3034,7 +3034,7 @@ curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d '
Result:
```json
{"jsonrpc":"2.0","result":{"solana-core": "1.6.19"},"id":1}
{"jsonrpc":"2.0","result":{"solana-core": "1.6.22"},"id":1}
```
### getVoteAccounts
@@ -3241,6 +3241,8 @@ submission.
- `skipPreflight: <bool>` - if true, skip the preflight transaction checks (default: false)
- `preflightCommitment: <string>` - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment) level to use for preflight (default: `"finalized"`).
- `encoding: <string>` - (optional) Encoding used for the transaction data. Either `"base58"` (*slow*, **DEPRECATED**), or `"base64"`. (default: `"base58"`).
- `maxRetries: <usize>` - (optional) Maximum number of times for the RPC node to retry sending the transaction to the leader.
If this parameter not provided, the RPC node will retry the transaction until it is finalized or until the blockhash expires.
#### Results:

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-dos"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -14,15 +14,15 @@ clap = "2.33.1"
log = "0.4.11"
rand = "0.7.0"
rayon = "1.5.0"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-download-utils"
version = "1.6.19"
version = "1.6.22"
description = "Solana Download Utils"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -15,8 +15,8 @@ console = "0.11.3"
indicatif = "0.15.0"
log = "0.4.11"
reqwest = { version = "0.11.2", default-features = false, features = ["blocking", "rustls-tls", "json"] }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
tar = "0.4.28"
[lib]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-faucet"
version = "1.6.19"
version = "1.6.22"
description = "Solana Faucet"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -16,12 +16,12 @@ clap = "2.33"
log = "0.4.11"
serde = "1.0.122"
serde_derive = "1.0.103"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-frozen-abi"
version = "1.6.19"
version = "1.6.22"
description = "Solana Frozen ABI"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -16,11 +16,11 @@ log = "0.4.11"
serde = "1.0.122"
serde_derive = "1.0.103"
sha2 = "0.9.2"
solana-frozen-abi-macro = { path = "macro", version = "=1.6.19" }
solana-frozen-abi-macro = { path = "macro", version = "=1.6.22" }
thiserror = "1.0"
[target.'cfg(not(target_arch = "bpf"))'.dependencies]
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.22" }
generic-array = { version = "0.14.3", default-features = false, features = ["serde", "more_lengths"]}
memmap2 = "0.1.0"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-frozen-abi-macro"
version = "1.6.19"
version = "1.6.22"
description = "Solana Frozen ABI Macro"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-genesis"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -16,18 +16,18 @@ chrono = "0.4"
serde = "1.0.122"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-vest-program = { path = "../programs/vest", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-vest-program = { path = "../programs/vest", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
tempfile = "3.1.0"
[[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-gossip"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -11,12 +11,12 @@ documentation = "https://docs.rs/solana-gossip"
[dependencies]
clap = "2.33.1"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-install"
description = "The solana cluster software installer"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -25,12 +25,12 @@ reqwest = { version = "0.11.2", default-features = false, features = ["blocking"
serde = { version = "1.0.122", features = ["derive"] }
serde_json = "1.0.62"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
semver = "0.9.0"
tar = "0.4.28"
tempfile = "3.1.0"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-keygen"
version = "1.6.19"
version = "1.6.22"
description = "Solana key generation utility"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -14,11 +14,11 @@ bs58 = "0.3.1"
clap = "2.33"
dirs-next = "2.0.0"
num_cpus = "1.13.0"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
tiny-bip39 = "0.7.0"
[[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-ledger-tool"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -23,23 +23,23 @@ regex = "1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-cli-output = { path = "../cli-output", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-cli-output = { path = "../cli-output", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
tempfile = "3.1.0"
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
assert_cmd = "1.0"
assert_cmd = "2.0"
[target."cfg(unix)".dependencies]
signal-hook = "0.1.15"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-ledger"
version = "1.6.19"
version = "1.6.22"
description = "Solana ledger"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -34,22 +34,22 @@ reed-solomon-erasure = { version = "4.0.2", features = ["simd-accel"] }
serde = "1.0.122"
serde_bytes = "0.11.4"
sha2 = "0.9.2"
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.19" }
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.19" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-perf = { path = "../perf", version = "=1.6.19" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
solana-storage-proto = { path = "../storage-proto", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.22" }
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.22" }
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
solana-perf = { path = "../perf", version = "=1.6.22" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
solana-storage-proto = { path = "../storage-proto", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
tempfile = "3.1.0"
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }
@@ -66,8 +66,8 @@ features = ["lz4"]
[dev-dependencies]
assert_matches = "1.3.0"
matches = "0.1.6"
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
[build-dependencies]
rustc_version = "0.2"

View File

@@ -22,7 +22,7 @@ use solana_sdk::{
};
use solana_storage_proto::convert::generated;
use std::{
collections::HashMap,
collections::{HashMap, HashSet},
ffi::{CStr, CString},
fs,
marker::PhantomData,
@@ -421,9 +421,9 @@ impl Rocks {
// this is only needed for LedgerCleanupService. so guard with PrimaryOnly (i.e. running solana-validator)
if matches!(access_type, AccessType::PrimaryOnly) {
for cf_name in cf_names {
// this special column family must be excluded from LedgerCleanupService's rocksdb
// these special column families must be excluded from LedgerCleanupService's rocksdb
// compactions
if cf_name == TransactionStatusIndex::NAME {
if excludes_from_compaction(cf_name) {
continue;
}
@@ -1319,9 +1319,7 @@ fn get_cf_options<C: 'static + Column + ColumnName>(
// TransactionStatusIndex must be excluded from LedgerCleanupService's rocksdb
// compactions....
if matches!(access_type, AccessType::PrimaryOnly)
&& C::NAME != columns::TransactionStatusIndex::NAME
{
if matches!(access_type, AccessType::PrimaryOnly) && !excludes_from_compaction(C::NAME) {
options.set_compaction_filter_factory(PurgedSlotFilterFactory::<C> {
oldest_slot: oldest_slot.clone(),
name: CString::new(format!("purged_slot_filter_factory({})", C::NAME)).unwrap(),
@@ -1361,6 +1359,18 @@ fn get_db_options(access_type: &AccessType) -> Options {
options
}
fn excludes_from_compaction(cf_name: &str) -> bool {
// list of Column Families must be excluded from compaction:
let no_compaction_cfs: HashSet<&'static str> = vec![
columns::TransactionStatusIndex::NAME,
columns::ProgramCosts::NAME,
]
.into_iter()
.collect();
no_compaction_cfs.get(cf_name).is_some()
}
#[cfg(test)]
pub mod tests {
use super::*;
@@ -1413,4 +1423,14 @@ pub mod tests {
CompactionDecision::Keep
);
}
#[test]
fn test_excludes_from_compaction() {
// currently there are two CFs are excluded from compaction:
assert!(excludes_from_compaction(
columns::TransactionStatusIndex::NAME
));
assert!(excludes_from_compaction(columns::ProgramCosts::NAME));
assert!(!excludes_from_compaction("something else"));
}
}

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-local-cluster"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -17,21 +17,21 @@ fs_extra = "1.2.0"
log = "0.4.11"
rand = "0.7.0"
rayon = "1.5.0"
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
solana-core = { path = "../core", version = "=1.6.19" }
solana-client = { path = "../client", version = "=1.6.19" }
solana-download-utils = { path = "../download-utils", version = "=1.6.19" }
solana-faucet = { path = "../faucet", version = "=1.6.19" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-vest-program = { path = "../programs/vest", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
solana-core = { path = "../core", version = "=1.6.22" }
solana-client = { path = "../client", version = "=1.6.22" }
solana-download-utils = { path = "../download-utils", version = "=1.6.22" }
solana-faucet = { path = "../faucet", version = "=1.6.22" }
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
solana-vest-program = { path = "../programs/vest", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
[dev-dependencies]
assert_matches = "1.3.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-log-analyzer"
description = "The solana cluster network analysis tool"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -14,9 +14,9 @@ byte-unit = "4.0.9"
clap = "2.33.1"
serde = "1.0.122"
serde_json = "1.0.56"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
[[bin]]
name = "solana-log-analyzer"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-logger"
version = "1.6.19"
version = "1.6.22"
description = "Solana Logger"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"

View File

@@ -1,7 +1,7 @@
[package]
name = "solana-measure"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
homepage = "https://solana.com/"
documentation = "https://docs.rs/solana-measure"
readme = "../README.md"
@@ -12,8 +12,8 @@ edition = "2018"
[dependencies]
log = "0.4.11"
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
[target."cfg(unix)".dependencies]
jemallocator = "0.3.2"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-merkle-root-bench"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -10,11 +10,11 @@ publish = false
[dependencies]
log = "0.4.11"
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
clap = "2.33.1"
[package.metadata.docs.rs]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-merkle-tree"
version = "1.6.19"
version = "1.6.22"
description = "Solana Merkle Tree"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-merkle-tree"
edition = "2018"
[dependencies]
solana-program = { path = "../sdk/program", version = "=1.6.19" }
solana-program = { path = "../sdk/program", version = "=1.6.22" }
fast-math = "0.1"
# This can go once the BPF toolchain target Rust 1.42.0+

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-metrics"
version = "1.6.19"
version = "1.6.22"
description = "Solana Metrics"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -15,7 +15,7 @@ gethostname = "0.2.1"
lazy_static = "1.4.0"
log = "0.4.11"
reqwest = { version = "0.11.2", default-features = false, features = ["blocking", "rustls-tls", "json"] }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
[dev-dependencies]
rand = "0.7.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-net-shaper"
description = "The solana cluster network shaping tool"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -13,8 +13,8 @@ publish = false
clap = "2.33.1"
serde = "1.0.122"
serde_json = "1.0.56"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
rand = "0.7.0"
[[bin]]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-net-utils"
version = "1.6.19"
version = "1.6.22"
description = "Solana Network Utilities"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -18,9 +18,9 @@ rand = "0.7.0"
serde = "1.0.122"
serde_derive = "1.0.103"
socket2 = "0.3.17"
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
tokio = { version = "1", features = ["full"] }
url = "2.1.1"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-notifier"
version = "1.6.19"
version = "1.6.22"
description = "Solana Notifier"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-perf"
version = "1.6.19"
version = "1.6.22"
description = "Solana Performance APIs"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -18,12 +18,12 @@ serde = "1.0.122"
dlopen_derive = "0.1.4"
lazy_static = "1.4.0"
log = "0.4.11"
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-metrics = { path = "../metrics", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-metrics = { path = "../metrics", version = "=1.6.22" }
curve25519-dalek = { version = "2" }
[lib]

View File

@@ -118,10 +118,8 @@ fn verify_packet(packet: &mut Packet) {
let pubkey_end = pubkey_start.saturating_add(size_of::<Pubkey>());
let sig_end = sig_start.saturating_add(size_of::<Signature>());
if pubkey_end >= packet.meta.size || sig_end >= packet.meta.size {
packet.meta.discard = true;
return;
}
// get_packet_offsets should ensure pubkey_end and sig_end do
// not overflow packet.meta.size
let signature = Signature::new(&packet.data[sig_start..sig_end]);
@@ -217,6 +215,10 @@ fn do_get_packet_offsets(
.filter(|v| *v <= packet.meta.size)
.ok_or(PacketError::InvalidPubkeyLen)?;
if pubkey_len < sig_len_untrusted {
return Err(PacketError::InvalidPubkeyLen);
}
let sig_start = current_offset
.checked_add(sig_size)
.ok_or(PacketError::InvalidLen)?;
@@ -597,6 +599,65 @@ mod tests {
assert_eq!(res, Err(PacketError::InvalidLen));
}
#[test]
fn test_pubkey_too_small() {
solana_logger::setup();
let mut tx = test_tx();
let sig = tx.signatures[0];
const NUM_SIG: usize = 18;
tx.signatures = vec![sig; NUM_SIG];
tx.message.account_keys = vec![];
tx.message.header.num_required_signatures = NUM_SIG as u8;
let mut packet = sigverify::make_packet_from_transaction(tx);
let res = sigverify::do_get_packet_offsets(&packet, 0);
assert_eq!(res, Err(PacketError::InvalidPubkeyLen));
verify_packet(&mut packet);
assert!(packet.meta.discard);
packet.meta.discard = false;
let mut batches = generate_packet_vec(&packet, 1, 1);
ed25519_verify(&mut batches);
assert!(batches[0].packets[0].meta.discard);
}
#[test]
fn test_pubkey_len() {
// See that the verify cannot walk off the end of the packet
// trying to index into the account_keys to access pubkey.
use solana_sdk::signer::{keypair::Keypair, Signer};
solana_logger::setup();
const NUM_SIG: usize = 17;
let keypair1 = Keypair::new();
let pubkey1 = keypair1.pubkey();
let mut message = Message::new(&[], Some(&pubkey1));
message.account_keys.push(pubkey1);
message.account_keys.push(pubkey1);
message.header.num_required_signatures = NUM_SIG as u8;
message.recent_blockhash = Hash(pubkey1.to_bytes());
let mut tx = Transaction::new_unsigned(message);
info!("message: {:?}", tx.message_data());
info!("tx: {:?}", tx);
let sig = keypair1.try_sign_message(&tx.message_data()).unwrap();
tx.signatures = vec![sig; NUM_SIG];
let mut packet = sigverify::make_packet_from_transaction(tx);
let res = sigverify::do_get_packet_offsets(&packet, 0);
assert_eq!(res, Err(PacketError::InvalidPubkeyLen));
verify_packet(&mut packet);
assert!(packet.meta.discard);
packet.meta.discard = false;
let mut batches = generate_packet_vec(&packet, 1, 1);
ed25519_verify(&mut batches);
assert!(batches[0].packets[0].meta.discard);
}
#[test]
fn test_large_sig_len() {
let tx = test_tx();
@@ -748,10 +809,8 @@ mod tests {
let mut batches = generate_packet_vec(&packet, n, 2);
let recycler = Recycler::new_without_limit("");
let recycler_out = Recycler::new_without_limit("");
// verify packets
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
ed25519_verify(&mut batches);
// check result
let should_discard = modify_data;
@@ -761,6 +820,12 @@ mod tests {
.all(|p| p.meta.discard == should_discard));
}
fn ed25519_verify(batches: &mut [Packets]) {
let recycler = Recycler::new_without_limit("");
let recycler_out = Recycler::new_without_limit("");
sigverify::ed25519_verify(batches, &recycler, &recycler_out);
}
#[test]
fn test_verify_tampered_sig_len() {
let mut tx = test_tx();
@@ -770,10 +835,8 @@ mod tests {
let mut batches = generate_packet_vec(&packet, 1, 1);
let recycler = Recycler::new_without_limit("");
let recycler_out = Recycler::new_without_limit("");
// verify packets
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
ed25519_verify(&mut batches);
assert!(batches
.iter()
.flat_map(|p| &p.packets)
@@ -810,10 +873,8 @@ mod tests {
batches[0].packets.push(packet);
let recycler = Recycler::new_without_limit("");
let recycler_out = Recycler::new_without_limit("");
// verify packets
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
ed25519_verify(&mut batches);
// check result
let ref_ans = 1u8;

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-poh-bench"
version = "1.6.19"
version = "1.6.22"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -13,13 +13,13 @@ clap = "2.33.1"
log = "0.4.11"
rand = "0.7.0"
rayon = "1.5.0"
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-ledger = { path = "../ledger", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
solana-measure = { path = "../measure", version = "=1.6.19" }
solana-version = { path = "../version", version = "=1.6.19" }
solana-perf = { path = "../perf", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-ledger = { path = "../ledger", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
solana-measure = { path = "../measure", version = "=1.6.22" }
solana-version = { path = "../version", version = "=1.6.22" }
solana-perf = { path = "../perf", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -5,7 +5,7 @@ edition = "2018"
license = "Apache-2.0"
name = "solana-program-test"
repository = "https://github.com/solana-labs/solana"
version = "1.6.19"
version = "1.6.22"
[dependencies]
async-trait = "0.1.42"
@@ -17,16 +17,16 @@ log = "0.4.11"
mio = "0.7.6"
serde = "1.0.112"
serde_derive = "1.0.103"
solana-banks-client = { path = "../banks-client", version = "=1.6.19" }
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
solana-logger = { path = "../logger", version = "=1.6.19" }
solana-runtime = { path = "../runtime", version = "=1.6.19" }
solana-sdk = { path = "../sdk", version = "=1.6.19" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
solana-banks-client = { path = "../banks-client", version = "=1.6.22" }
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
solana-logger = { path = "../logger", version = "=1.6.22" }
solana-runtime = { path = "../runtime", version = "=1.6.22" }
solana-sdk = { path = "../sdk", version = "=1.6.22" }
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
assert_matches = "1.3.0"
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }

414
programs/bpf/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
[package]
name = "solana-bpf-programs"
description = "Blockchain, Rebuilt for Scale"
version = "1.6.19"
version = "1.6.22"
documentation = "https://docs.rs/solana"
homepage = "https://solana.com/"
readme = "README.md"
@@ -25,15 +25,15 @@ elf = "0.0.10"
itertools = "0.10.0"
miow = "0.2.2"
net2 = "0.2.37"
solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.6.19" }
solana-cli-output = { path = "../../cli-output", version = "=1.6.19" }
solana-logger = { path = "../../logger", version = "=1.6.19" }
solana-measure = { path = "../../measure", version = "=1.6.19" }
solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.6.22" }
solana-cli-output = { path = "../../cli-output", version = "=1.6.22" }
solana-logger = { path = "../../logger", version = "=1.6.22" }
solana-measure = { path = "../../measure", version = "=1.6.22" }
solana_rbpf = "=0.2.9"
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-transaction-status = { path = "../../transaction-status", version = "=1.6.19" }
solana-account-decoder = { path = "../../account-decoder", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
solana-transaction-status = { path = "../../transaction-status", version = "=1.6.22" }
solana-account-decoder = { path = "../../account-decoder", version = "=1.6.22" }
[[bench]]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-128bit"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-128bit-dep"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit-dep"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-alloc"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-alloc"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-call-depth"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-call-depth"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-caller-access"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-caller-access"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-custom-heap"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-custom-heap"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[features]
default = ["custom-heap"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-dep-crate"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -11,7 +11,7 @@ edition = "2018"
[dependencies]
byteorder = { version = "1", default-features = false }
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-deprecated-loader"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-deprecated-loader"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-dup-accounts"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-dup-accounts"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-error-handling"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ edition = "2018"
[dependencies]
num-derive = "0.2"
num-traits = "0.2"
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
thiserror = "1.0"
[lib]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-external-spend"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-external-spend"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-finalize"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-finalize"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-instruction-introspection"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-instruction-introspection"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-invoke"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -11,7 +11,7 @@ edition = "2018"
[dependencies]
solana-bpf-rust-invoked = { path = "../invoked", default-features = false }
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-invoke-and-error"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-error"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-invoke-and-ok"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-ok"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-invoke-and-return"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-return"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-invoked"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoked"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[features]
default = ["program"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-iter"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-iter"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-many-args"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-many-args-dep"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args-dep"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-mem"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -13,11 +13,11 @@ edition = "2018"
no-entrypoint = []
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[dev-dependencies]
solana-program-test = { path = "../../../../program-test", version = "=1.6.19" }
solana-sdk = { path = "../../../../sdk", version = "=1.6.19" }
solana-program-test = { path = "../../../../program-test", version = "=1.6.22" }
solana-sdk = { path = "../../../../sdk", version = "=1.6.22" }
[lib]
crate-type = ["cdylib", "lib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-membuiltins"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-mem"
edition = "2018"
[dependencies]
solana-bpf-rust-mem = { path = "../mem", version = "=1.6.19", features = [ "no-entrypoint" ] }
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-bpf-rust-mem = { path = "../mem", version = "=1.6.22", features = [ "no-entrypoint" ] }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-noop"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-noop"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-panic"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-panic"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[features]
default = ["custom-panic"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-param-passing"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-param-passing-dep"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing-dep"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-rand"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ edition = "2018"
[dependencies]
getrandom = { version = "0.1.14", features = ["dummy"] }
rand = "0.7"
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-ro-modify"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-ro-modify"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-sanity"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sanity"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-sha"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sha"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-spoof1"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-spoof1-system"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1-system"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-sysvar"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sysvar"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
crate-type = ["cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-upgradeable"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgradeable"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
name = "solana_bpf_rust_upgradeable"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-rust-upgraded"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgraded"
edition = "2018"
[dependencies]
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
[lib]
name = "solana_bpf_rust_upgraded"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-bpf-loader-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana BPF loader"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -17,9 +17,9 @@ num-derive = "0.3"
num-traits = "0.2"
rand_core = "0.6.2"
sha3 = "0.9.1"
solana-measure = { path = "../../measure", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-measure = { path = "../../measure", version = "=1.6.22" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
solana_rbpf = "=0.2.9"
thiserror = "1.0"

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-budget-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana Budget program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -17,11 +17,11 @@ num-derive = "0.3"
num-traits = "0.2"
serde = "1.0.122"
serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
thiserror = "1.0"
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
[lib]
crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-config-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana Config program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -16,10 +16,10 @@ log = "0.4.11"
rand_core = "0.6.2"
serde = "1.0.122"
serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
[dev-dependencies]
solana-logger = { path = "../../logger", version = "=1.6.19" }
solana-logger = { path = "../../logger", version = "=1.6.22" }
[lib]
crate-type = ["lib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-exchange-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana Exchange program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -16,13 +16,13 @@ num-derive = { version = "0.3" }
num-traits = { version = "0.2" }
serde = "1.0.122"
serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "=1.6.19" }
solana-metrics = { path = "../../metrics", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-logger = { path = "../../logger", version = "=1.6.22" }
solana-metrics = { path = "../../metrics", version = "=1.6.22" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
thiserror = "1.0"
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
[lib]
crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-failure-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana failure program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -10,10 +10,10 @@ documentation = "https://docs.rs/solana-failure-program"
edition = "2018"
[dependencies]
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
[lib]
crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-noop-program"
version = "1.6.19"
version = "1.6.22"
description = "Solana Noop program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -11,8 +11,8 @@ edition = "2018"
[dependencies]
log = "0.4.11"
solana-logger = { path = "../../logger", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-logger = { path = "../../logger", version = "=1.6.22" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
[lib]
crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package]
name = "solana-ownable"
version = "1.6.19"
version = "1.6.22"
description = "ownable program"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
@@ -11,13 +11,13 @@ edition = "2018"
[dependencies]
bincode = "1.3.1"
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
num-derive = "0.3"
num-traits = "0.2"
thiserror = "1.0"
[dev-dependencies]
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
[lib]
crate-type = ["lib", "cdylib"]

View File

@@ -1,7 +1,7 @@
[package]
name = "solana-secp256k1-program"
description = "Solana Secp256k1 program"
version = "1.6.19"
version = "1.6.22"
homepage = "https://solana.com/"
documentation = "https://docs.rs/solana-secp256k1-program"
repository = "https://github.com/solana-labs/solana"
@@ -10,13 +10,13 @@ license = "Apache-2.0"
edition = "2018"
[dependencies]
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
libsecp256k1 = "0.5.0"
sha3 = "0.9.1"
digest = "0.9.0"
bincode = "1.3.1"
rand = "0.7.0"
solana-logger = { path = "../../logger", version = "=1.6.19" }
solana-logger = { path = "../../logger", version = "=1.6.22" }
[lib]
crate-type = ["lib"]

Some files were not shown because too many files have changed in this diff Show More