Compare commits

..

7 Commits

Author SHA1 Message Date
mergify[bot]
235158d2bc CLI: Expose sign-only reply parsing helper (#8107) (#8110)
automerge
2020-02-03 19:55:45 -08:00
Michael Vines
521238f7d7 Delete uptime command, report total credits in solana validators instead
(cherry picked from commit 4c0420b884)
2020-02-03 17:15:09 -07:00
sakridge
384f52a607 Fix consensus threshold when new root is created (#8093)
When a new root is created, the oldest slot is popped off
but when the logic checks for identical slots, it assumes
that any difference means a slot was popped off the front.
2020-02-03 16:54:48 -07:00
mergify[bot]
49f2d912ab Add split-stake command (#8092)
automerge
2020-02-03 11:04:21 -08:00
Michael Vines
8652fe30ce Update book release version 2020-02-03 11:36:19 -07:00
Michael Vines
899a14ba51 Disable windows update as windows build artifacts are turned off 2020-02-01 22:25:47 -07:00
Michael Vines
466c7dafb3 Bump version to v0.23.2 2020-02-01 21:46:34 -07:00
90 changed files with 1175 additions and 1046 deletions

658
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-archiver-lib" name = "solana-archiver-lib"
version = "0.23.1" version = "0.23.2"
description = "Solana Archiver Library" description = "Solana Archiver Library"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,22 +15,22 @@ ed25519-dalek = "=1.0.0-pre.1"
log = "0.4.8" log = "0.4.8"
rand = "0.6.5" rand = "0.6.5"
rand_chacha = "0.1.1" rand_chacha = "0.1.1"
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
thiserror = "1.0" thiserror = "1.0"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-chacha = { path = "../chacha", version = "0.23.1" } solana-chacha = { path = "../chacha", version = "0.23.2" }
solana-chacha-sys = { path = "../chacha-sys", version = "0.23.1" } solana-chacha-sys = { path = "../chacha-sys", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-archiver-utils = { path = "../archiver-utils", version = "0.23.1" } solana-archiver-utils = { path = "../archiver-utils", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-archiver-utils" name = "solana-archiver-utils"
version = "0.23.1" version = "0.23.2"
description = "Solana Archiver Utils" description = "Solana Archiver Utils"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,12 +12,12 @@ edition = "2018"
log = "0.4.8" log = "0.4.8"
rand = "0.6.5" rand = "0.6.5"
rand_chacha = "0.1.1" rand_chacha = "0.1.1"
solana-chacha = { path = "../chacha", version = "0.23.1" } solana-chacha = { path = "../chacha", version = "0.23.2" }
solana-chacha-sys = { path = "../chacha-sys", version = "0.23.1" } solana-chacha-sys = { path = "../chacha-sys", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-archiver" name = "solana-archiver"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -10,11 +10,11 @@ homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
console = "0.9.1" console = "0.9.1"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-archiver-lib = { path = "../archiver-lib", version = "0.23.1" } solana-archiver-lib = { path = "../archiver-lib", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-banking-bench" name = "solana-banking-bench"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -10,11 +10,11 @@ homepage = "https://solana.com/"
[dependencies] [dependencies]
log = "0.4.6" log = "0.4.6"
rayon = "1.2.0" rayon = "1.2.0"
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-measure = { path = "../measure", version = "0.23.1" } solana-measure = { path = "../measure", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
rand = "0.6.5" rand = "0.6.5"
crossbeam-channel = "0.3" crossbeam-channel = "0.3"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-exchange" name = "solana-bench-exchange"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -23,19 +23,19 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-genesis = { path = "../genesis", version = "0.23.1" } solana-genesis = { path = "../genesis", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
solana-exchange-program = { path = "../programs/exchange", version = "0.23.1" } solana-exchange-program = { path = "../programs/exchange", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
untrusted = "0.7.0" untrusted = "0.7.0"
ws = "0.9.1" ws = "0.9.1"
[dev-dependencies] [dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "0.23.1" } solana-local-cluster = { path = "../local-cluster", version = "0.23.2" }

View File

@@ -2,14 +2,14 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-streamer" name = "solana-bench-streamer"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-tps" name = "solana-bench-tps"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,24 +16,24 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-genesis = { path = "../genesis", version = "0.23.1" } solana-genesis = { path = "../genesis", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
solana-librapay = { path = "../programs/librapay", version = "0.23.1", optional = true } solana-librapay = { path = "../programs/librapay", version = "0.23.2", optional = true }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-measure = { path = "../measure", version = "0.23.1" } solana-measure = { path = "../measure", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-move-loader-program = { path = "../programs/move_loader", version = "0.23.1", optional = true } solana-move-loader-program = { path = "../programs/move_loader", version = "0.23.2", optional = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.3.2" serial_test = "0.3.2"
serial_test_derive = "0.3.1" serial_test_derive = "0.3.1"
solana-local-cluster = { path = "../local-cluster", version = "0.23.1" } solana-local-cluster = { path = "../local-cluster", version = "0.23.2" }
[features] [features]
move = ["solana-librapay", "solana-move-loader-program"] move = ["solana-librapay", "solana-move-loader-program"]

View File

@@ -827,7 +827,7 @@ The result field will be a JSON object with the following fields:
// Request // Request
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getVersion"}' http://localhost:8899 curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getVersion"}' http://localhost:8899
// Result // Result
{"jsonrpc":"2.0","result":{"solana-core": "0.23.1"},"id":1} {"jsonrpc":"2.0","result":{"solana-core": "0.23.2"},"id":1}
``` ```
### getVoteAccounts ### getVoteAccounts

View File

@@ -177,7 +177,7 @@ $ solana send-timestamp <PUBKEY> <PROCESS_ID> --date 2018-12-24T23:59:00
## Usage ## Usage
### solana-cli ### solana-cli
```text ```text
solana-cli 0.23.1 [channel=unknown commit=unknown] solana-cli 0.23.2 [channel=unknown commit=unknown]
Blockchain, Rebuilt for Scale Blockchain, Rebuilt for Scale
USAGE: USAGE:
@@ -241,7 +241,6 @@ SUBCOMMANDS:
stakes Show stake account information stakes Show stake account information
storage-account Show the contents of a storage account storage-account Show the contents of a storage account
transaction-count Get current transaction count transaction-count Get current transaction count
uptime Show the uptime of a validator, based on epoch voting history
validator-info Publish/get Validator info on Solana validator-info Publish/get Validator info on Solana
validators Show summary information about the current validators validators Show summary information about the current validators
vote-account Show the contents of a vote account vote-account Show the contents of a vote account
@@ -254,7 +253,7 @@ SUBCOMMANDS:
#### solana-account #### solana-account
```text ```text
solana-account solana-account
Show the contents of an account Show the contents of an account
USAGE: USAGE:
@@ -283,7 +282,7 @@ ARGS:
#### solana-address #### solana-address
```text ```text
solana-address solana-address
Get your public key Get your public key
USAGE: USAGE:
@@ -307,7 +306,7 @@ OPTIONS:
#### solana-airdrop #### solana-airdrop
```text ```text
solana-airdrop solana-airdrop
Request lamports Request lamports
USAGE: USAGE:
@@ -337,7 +336,7 @@ ARGS:
#### solana-authorize-nonce-account #### solana-authorize-nonce-account
```text ```text
solana-authorize-nonce-account solana-authorize-nonce-account
Assign account authority to a new entity Assign account authority to a new entity
USAGE: USAGE:
@@ -373,7 +372,7 @@ ARGS:
#### solana-balance #### solana-balance
```text ```text
solana-balance solana-balance
Get your balance Get your balance
USAGE: USAGE:
@@ -401,7 +400,7 @@ ARGS:
#### solana-block-production #### solana-block-production
```text ```text
solana-block-production solana-block-production
Show information about block production Show information about block production
USAGE: USAGE:
@@ -428,7 +427,7 @@ OPTIONS:
#### solana-block-time #### solana-block-time
```text ```text
solana-block-time solana-block-time
Get estimated production time of a block Get estimated production time of a block
USAGE: USAGE:
@@ -455,7 +454,7 @@ ARGS:
#### solana-cancel #### solana-cancel
```text ```text
solana-cancel solana-cancel
Cancel a transfer Cancel a transfer
USAGE: USAGE:
@@ -482,7 +481,7 @@ ARGS:
#### solana-catchup #### solana-catchup
```text ```text
solana-catchup solana-catchup
Wait for a validator to catch up to the cluster Wait for a validator to catch up to the cluster
USAGE: USAGE:
@@ -509,7 +508,7 @@ ARGS:
#### solana-claim-storage-reward #### solana-claim-storage-reward
```text ```text
solana-claim-storage-reward solana-claim-storage-reward
Redeem storage reward credits Redeem storage reward credits
USAGE: USAGE:
@@ -537,7 +536,7 @@ ARGS:
#### solana-cluster-version #### solana-cluster-version
```text ```text
solana-cluster-version solana-cluster-version
Get the version of the cluster entrypoint Get the version of the cluster entrypoint
USAGE: USAGE:
@@ -561,7 +560,7 @@ OPTIONS:
#### solana-config #### solana-config
```text ```text
solana-config solana-config
Solana command-line tool configuration settings Solana command-line tool configuration settings
USAGE: USAGE:
@@ -590,7 +589,7 @@ SUBCOMMANDS:
#### solana-confirm #### solana-confirm
```text ```text
solana-confirm solana-confirm
Confirm transaction by signature Confirm transaction by signature
USAGE: USAGE:
@@ -617,7 +616,7 @@ ARGS:
#### solana-create-address-with-seed #### solana-create-address-with-seed
```text ```text
solana-create-address-with-seed solana-create-address-with-seed
Generate a derived account address with a seed Generate a derived account address with a seed
USAGE: USAGE:
@@ -641,13 +640,13 @@ OPTIONS:
ARGS: ARGS:
<SEED_STRING> The seed. Must not take more than 32 bytes to encode as utf-8 <SEED_STRING> The seed. Must not take more than 32 bytes to encode as utf-8
<PROGRAM_ID> The program_id that the address will ultimately be used for, <PROGRAM_ID> The program_id that the address will ultimately be used for,
or one of STAKE, VOTE, and STORAGE keywords or one of STAKE, VOTE, and STORAGE keywords
``` ```
#### solana-create-archiver-storage-account #### solana-create-archiver-storage-account
```text ```text
solana-create-archiver-storage-account solana-create-archiver-storage-account
Create an archiver storage account Create an archiver storage account
USAGE: USAGE:
@@ -669,13 +668,13 @@ OPTIONS:
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
ARGS: ARGS:
<STORAGE ACCOUNT OWNER PUBKEY> <STORAGE ACCOUNT OWNER PUBKEY>
<STORAGE ACCOUNT> <STORAGE ACCOUNT>
``` ```
#### solana-create-nonce-account #### solana-create-nonce-account
```text ```text
solana-create-nonce-account solana-create-nonce-account
Create a nonce account Create a nonce account
USAGE: USAGE:
@@ -705,7 +704,7 @@ ARGS:
#### solana-create-stake-account #### solana-create-stake-account
```text ```text
solana-create-stake-account solana-create-stake-account
Create a stake account Create a stake account
USAGE: USAGE:
@@ -741,7 +740,7 @@ ARGS:
#### solana-create-validator-storage-account #### solana-create-validator-storage-account
```text ```text
solana-create-validator-storage-account solana-create-validator-storage-account
Create a validator storage account Create a validator storage account
USAGE: USAGE:
@@ -763,13 +762,13 @@ OPTIONS:
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
ARGS: ARGS:
<STORAGE ACCOUNT OWNER PUBKEY> <STORAGE ACCOUNT OWNER PUBKEY>
<STORAGE ACCOUNT> <STORAGE ACCOUNT>
``` ```
#### solana-create-vote-account #### solana-create-vote-account
```text ```text
solana-create-vote-account solana-create-vote-account
Create a vote account Create a vote account
USAGE: USAGE:
@@ -802,7 +801,7 @@ ARGS:
#### solana-deactivate-stake #### solana-deactivate-stake
```text ```text
solana-deactivate-stake solana-deactivate-stake
Deactivate the delegated stake from the stake account Deactivate the delegated stake from the stake account
USAGE: USAGE:
@@ -827,9 +826,9 @@ OPTIONS:
-u, --url <URL> JSON RPC URL for the solana cluster -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> --nonce <PUBKEY>
Provide the nonce account to use when creating a nonced Provide the nonce account to use when creating a nonced
transaction. Nonced transactions are useful when a transaction transaction. Nonced transactions are useful when a transaction
requires a lengthy signing process. Learn more about nonced requires a lengthy signing process. Learn more about nonced
transactions at https://docs.solana.com/offline-signing/durable-nonce transactions at https://docs.solana.com/offline-signing/durable-nonce
--nonce-authority <KEYPAIR or PUBKEY> --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction Provide the nonce authority keypair to use when signing a nonced transaction
@@ -843,7 +842,7 @@ ARGS:
#### solana-delegate-stake #### solana-delegate-stake
```text ```text
solana-delegate-stake solana-delegate-stake
Delegate stake to a vote account Delegate stake to a vote account
USAGE: USAGE:
@@ -868,9 +867,9 @@ OPTIONS:
-u, --url <URL> JSON RPC URL for the solana cluster -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> --nonce <PUBKEY>
Provide the nonce account to use when creating a nonced Provide the nonce account to use when creating a nonced
transaction. Nonced transactions are useful when a transaction transaction. Nonced transactions are useful when a transaction
requires a lengthy signing process. Learn more about nonced requires a lengthy signing process. Learn more about nonced
transactions at https://docs.solana.com/offline-signing/durable-nonce transactions at https://docs.solana.com/offline-signing/durable-nonce
--nonce-authority <KEYPAIR or PUBKEY> --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction Provide the nonce authority keypair to use when signing a nonced transaction
@@ -885,7 +884,7 @@ ARGS:
#### solana-deploy #### solana-deploy
```text ```text
solana-deploy solana-deploy
Deploy a program Deploy a program
USAGE: USAGE:
@@ -912,7 +911,7 @@ ARGS:
#### solana-epoch-info #### solana-epoch-info
```text ```text
solana-epoch-info solana-epoch-info
Get information about the current epoch Get information about the current epoch
USAGE: USAGE:
@@ -937,7 +936,7 @@ OPTIONS:
#### solana-fees #### solana-fees
```text ```text
solana-fees solana-fees
Display current cluster fees Display current cluster fees
USAGE: USAGE:
@@ -961,7 +960,7 @@ OPTIONS:
#### solana-genesis-hash #### solana-genesis-hash
```text ```text
solana-genesis-hash solana-genesis-hash
Get the genesis hash Get the genesis hash
USAGE: USAGE:
@@ -985,7 +984,7 @@ OPTIONS:
#### solana-gossip #### solana-gossip
```text ```text
solana-gossip solana-gossip
Show the current gossip network nodes Show the current gossip network nodes
USAGE: USAGE:
@@ -1009,7 +1008,7 @@ OPTIONS:
#### solana-help #### solana-help
```text ```text
solana-help solana-help
Prints this message or the help of the given subcommand(s) Prints this message or the help of the given subcommand(s)
USAGE: USAGE:
@@ -1021,7 +1020,7 @@ ARGS:
#### solana-new-nonce #### solana-new-nonce
```text ```text
solana-new-nonce solana-new-nonce
Generate a new nonce, rendering the existing nonce useless Generate a new nonce, rendering the existing nonce useless
USAGE: USAGE:
@@ -1053,7 +1052,7 @@ ARGS:
#### solana-nonce #### solana-nonce
```text ```text
solana-nonce solana-nonce
Get the current nonce value Get the current nonce value
USAGE: USAGE:
@@ -1080,7 +1079,7 @@ ARGS:
#### solana-nonce-account #### solana-nonce-account
```text ```text
solana-nonce-account solana-nonce-account
Show the contents of a nonce account Show the contents of a nonce account
USAGE: USAGE:
@@ -1108,14 +1107,14 @@ ARGS:
#### solana-pay #### solana-pay
```text ```text
solana-pay solana-pay
Send a payment Send a payment
USAGE: USAGE:
solana pay [FLAGS] [OPTIONS] <TO PUBKEY> <AMOUNT> [--] [UNIT] solana pay [FLAGS] [OPTIONS] <TO PUBKEY> <AMOUNT> [--] [UNIT]
FLAGS: FLAGS:
--cancelable --cancelable
-h, --help Prints help information -h, --help Prints help information
--sign-only Sign the transaction offline --sign-only Sign the transaction offline
--skip-seed-phrase-validation Skip validation of seed phrases. Use this if your phrase does not use the BIP39 --skip-seed-phrase-validation Skip validation of seed phrases. Use this if your phrase does not use the BIP39
@@ -1134,9 +1133,9 @@ OPTIONS:
-u, --url <URL> JSON RPC URL for the solana cluster -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> --nonce <PUBKEY>
Provide the nonce account to use when creating a nonced Provide the nonce account to use when creating a nonced
transaction. Nonced transactions are useful when a transaction transaction. Nonced transactions are useful when a transaction
requires a lengthy signing process. Learn more about nonced requires a lengthy signing process. Learn more about nonced
transactions at https://docs.solana.com/offline-signing/durable-nonce transactions at https://docs.solana.com/offline-signing/durable-nonce
--nonce-authority <KEYPAIR or PUBKEY> --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction Provide the nonce authority keypair to use when signing a nonced transaction
@@ -1154,7 +1153,7 @@ ARGS:
#### solana-ping #### solana-ping
```text ```text
solana-ping solana-ping
Submit transactions sequentially Submit transactions sequentially
USAGE: USAGE:
@@ -1183,7 +1182,7 @@ OPTIONS:
#### solana-send-signature #### solana-send-signature
```text ```text
solana-send-signature solana-send-signature
Send a signature to authorize a transfer Send a signature to authorize a transfer
USAGE: USAGE:
@@ -1211,7 +1210,7 @@ ARGS:
#### solana-send-timestamp #### solana-send-timestamp
```text ```text
solana-send-timestamp solana-send-timestamp
Send a timestamp to unlock a transfer Send a timestamp to unlock a transfer
USAGE: USAGE:
@@ -1240,7 +1239,7 @@ ARGS:
#### solana-show-stake-account #### solana-show-stake-account
```text ```text
solana-show-stake-account solana-show-stake-account
Show the contents of a stake account Show the contents of a stake account
USAGE: USAGE:
@@ -1268,7 +1267,7 @@ ARGS:
#### solana-slot #### solana-slot
```text ```text
solana-slot solana-slot
Get current slot Get current slot
USAGE: USAGE:
@@ -1293,7 +1292,7 @@ OPTIONS:
#### solana-stake-authorize-staker #### solana-stake-authorize-staker
```text ```text
solana-stake-authorize-staker solana-stake-authorize-staker
Authorize a new stake signing keypair for the given stake account Authorize a new stake signing keypair for the given stake account
USAGE: USAGE:
@@ -1318,9 +1317,9 @@ OPTIONS:
-u, --url <URL> JSON RPC URL for the solana cluster -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> --nonce <PUBKEY>
Provide the nonce account to use when creating a nonced Provide the nonce account to use when creating a nonced
transaction. Nonced transactions are useful when a transaction transaction. Nonced transactions are useful when a transaction
requires a lengthy signing process. Learn more about nonced requires a lengthy signing process. Learn more about nonced
transactions at https://docs.solana.com/offline-signing/durable-nonce transactions at https://docs.solana.com/offline-signing/durable-nonce
--nonce-authority <KEYPAIR or PUBKEY> --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction Provide the nonce authority keypair to use when signing a nonced transaction
@@ -1335,7 +1334,7 @@ ARGS:
#### solana-stake-authorize-withdrawer #### solana-stake-authorize-withdrawer
```text ```text
solana-stake-authorize-withdrawer solana-stake-authorize-withdrawer
Authorize a new withdraw signing keypair for the given stake account Authorize a new withdraw signing keypair for the given stake account
USAGE: USAGE:
@@ -1360,9 +1359,9 @@ OPTIONS:
-u, --url <URL> JSON RPC URL for the solana cluster -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> --nonce <PUBKEY>
Provide the nonce account to use when creating a nonced Provide the nonce account to use when creating a nonced
transaction. Nonced transactions are useful when a transaction transaction. Nonced transactions are useful when a transaction
requires a lengthy signing process. Learn more about nonced requires a lengthy signing process. Learn more about nonced
transactions at https://docs.solana.com/offline-signing/durable-nonce transactions at https://docs.solana.com/offline-signing/durable-nonce
--nonce-authority <KEYPAIR or PUBKEY> --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction Provide the nonce authority keypair to use when signing a nonced transaction
@@ -1377,7 +1376,7 @@ ARGS:
#### solana-stake-history #### solana-stake-history
```text ```text
solana-stake-history solana-stake-history
Show the stake history Show the stake history
USAGE: USAGE:
@@ -1402,7 +1401,7 @@ OPTIONS:
#### solana-stakes #### solana-stakes
```text ```text
solana-stakes solana-stakes
Show stake account information Show stake account information
USAGE: USAGE:
@@ -1430,7 +1429,7 @@ ARGS:
#### solana-storage-account #### solana-storage-account
```text ```text
solana-storage-account solana-storage-account
Show the contents of a storage account Show the contents of a storage account
USAGE: USAGE:
@@ -1457,7 +1456,7 @@ ARGS:
#### solana-transaction-count #### solana-transaction-count
```text ```text
solana-transaction-count solana-transaction-count
Get current transaction count Get current transaction count
USAGE: USAGE:
@@ -1480,38 +1479,9 @@ OPTIONS:
-k, --keypair <PATH> /path/to/id.json -k, --keypair <PATH> /path/to/id.json
``` ```
#### solana-uptime
```text
solana-uptime
Show the uptime of a validator, based on epoch voting history
USAGE:
solana uptime [FLAGS] [OPTIONS] <VOTE ACCOUNT PUBKEY>
FLAGS:
--aggregate Aggregate uptime data across span
-h, --help Prints help information
--skip-seed-phrase-validation Skip validation of seed phrases. Use this if your phrase does not use the BIP39
official English word list
-V, --version Prints version information
-v, --verbose Show extra information header
OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible
values: keypair]
-C, --config <PATH> Configuration file to use [default:
~/.config/solana/cli/config.yml]
-u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json
--span <NUM OF EPOCHS> Number of recent epochs to examine
ARGS:
<VOTE ACCOUNT PUBKEY> Vote account pubkey
```
#### solana-validator-info #### solana-validator-info
```text ```text
solana-validator-info solana-validator-info
Publish/get Validator info on Solana Publish/get Validator info on Solana
USAGE: USAGE:
@@ -1540,7 +1510,7 @@ SUBCOMMANDS:
#### solana-validators #### solana-validators
```text ```text
solana-validators solana-validators
Show summary information about the current validators Show summary information about the current validators
USAGE: USAGE:
@@ -1565,7 +1535,7 @@ OPTIONS:
#### solana-vote-account #### solana-vote-account
```text ```text
solana-vote-account solana-vote-account
Show the contents of a vote account Show the contents of a vote account
USAGE: USAGE:
@@ -1593,7 +1563,7 @@ ARGS:
#### solana-vote-authorize-voter #### solana-vote-authorize-voter
```text ```text
solana-vote-authorize-voter solana-vote-authorize-voter
Authorize a new vote signing keypair for the given vote account Authorize a new vote signing keypair for the given vote account
USAGE: USAGE:
@@ -1621,7 +1591,7 @@ ARGS:
#### solana-vote-authorize-withdrawer #### solana-vote-authorize-withdrawer
```text ```text
solana-vote-authorize-withdrawer solana-vote-authorize-withdrawer
Authorize a new withdraw signing keypair for the given vote account Authorize a new withdraw signing keypair for the given vote account
USAGE: USAGE:
@@ -1649,7 +1619,7 @@ ARGS:
#### solana-vote-update-validator #### solana-vote-update-validator
```text ```text
solana-vote-update-validator solana-vote-update-validator
Update the vote account's validator identity Update the vote account's validator identity
USAGE: USAGE:
@@ -1678,7 +1648,7 @@ ARGS:
#### solana-withdraw-from-nonce-account #### solana-withdraw-from-nonce-account
```text ```text
solana-withdraw-from-nonce-account solana-withdraw-from-nonce-account
Withdraw lamports from the nonce account Withdraw lamports from the nonce account
USAGE: USAGE:
@@ -1713,7 +1683,7 @@ ARGS:
#### solana-withdraw-stake #### solana-withdraw-stake
```text ```text
solana-withdraw-stake solana-withdraw-stake
Withdraw the unstaked lamports from the stake account Withdraw the unstaked lamports from the stake account
USAGE: USAGE:

View File

@@ -2,7 +2,7 @@
Follow this guide to setup Solana's key generation tool called `solana-keygen` Follow this guide to setup Solana's key generation tool called `solana-keygen`
{% hint style="warn" %} {% hint style="warn" %}
After installation, ensure your version is `0.21.1` or higher by running `solana-keygen -V` After installation, ensure your version is `0.23.1` or higher by running `solana-keygen -V`
{% endhint %} {% endhint %}
## Download ## Download

View File

@@ -1,14 +1,14 @@
# Installing the Validator Software # Installing the Validator Software
Install the Solana release Install the Solana release
[v0.21.0](https://github.com/solana-labs/solana/releases/tag/v0.21.0) on your [v0.23.1](https://github.com/solana-labs/solana/releases/tag/v0.23.1) on your
machine by running: machine by running:
```bash ```bash
curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v0.21.0/install/solana-install-init.sh | sh -s - 0.21.0 curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v0.23.1/install/solana-install-init.sh | sh -s - 0.23.1
``` ```
If you are connecting to a different testnet, you can replace `0.21.0` with the If you are connecting to a different testnet, you can replace `0.23.1` with the
release tag matching the software version of your desired testnet, or replace it release tag matching the software version of your desired testnet, or replace it
with the named channel `stable`, `beta`, or `edge`. with the named channel `stable`, `beta`, or `edge`.
@@ -16,11 +16,11 @@ The following output indicates a successful update:
```text ```text
looking for latest release looking for latest release
downloading v0.21.0 installer downloading v0.23.1 installer
Configuration: /home/solana/.config/solana/install/config.yml Configuration: /home/solana/.config/solana/install/config.yml
Active release directory: /home/solana/.local/share/solana/install/active_release Active release directory: /home/solana/.local/share/solana/install/active_release
* Release version: 0.21.0 * Release version: 0.23.1
* Release URL: https://github.com/solana-labs/solana/releases/download/v0.21.0/solana-release-x86_64-unknown-linux-gnu.tar.bz2 * Release URL: https://github.com/solana-labs/solana/releases/download/v0.23.1/solana-release-x86_64-unknown-linux-gnu.tar.bz2
Update successful Update successful
``` ```

View File

@@ -83,7 +83,6 @@ To monitor your validator during its warmup period:
* View your vote account:`solana vote-account ~/validator-vote-keypair.json` This displays the current state of all the votes the validator has submitted to the network. * View your vote account:`solana vote-account ~/validator-vote-keypair.json` This displays the current state of all the votes the validator has submitted to the network.
* View your stake account, the delegation preference and details of your stake:`solana stake-account ~/validator-stake-keypair.json` * View your stake account, the delegation preference and details of your stake:`solana stake-account ~/validator-stake-keypair.json`
* `solana uptime ~/validator-vote-keypair.json` will display the voting history \(aka, uptime\) of your validator over recent Epochs
* `solana validators` displays the current active stake of all validators, including yours * `solana validators` displays the current active stake of all validators, including yours
* `solana stake-history ` shows the history of stake warming up and cooling down over recent epochs * `solana stake-history ` shows the history of stake warming up and cooling down over recent epochs
* Look for log messages on your validator indicating your next leader slot: `[2019-09-27T20:16:00.319721164Z INFO solana_core::replay_stage] <VALIDATOR_IDENTITY_PUBKEY> voted and reset PoH at tick height ####. My next leader slot is ####` * Look for log messages on your validator indicating your next leader slot: `[2019-09-27T20:16:00.319721164Z INFO solana_core::replay_stage] <VALIDATOR_IDENTITY_PUBKEY> voted and reset PoH at tick height ####. My next leader slot is ####`

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha-cuda" name = "solana-chacha-cuda"
version = "0.23.1" version = "0.23.2"
description = "Solana Chacha Cuda APIs" description = "Solana Chacha Cuda APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,12 +10,12 @@ edition = "2018"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
solana-archiver-utils = { path = "../archiver-utils", version = "0.23.1" } solana-archiver-utils = { path = "../archiver-utils", version = "0.23.2" }
solana-chacha = { path = "../chacha", version = "0.23.1" } solana-chacha = { path = "../chacha", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
hex-literal = "0.2.1" hex-literal = "0.2.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha-sys" name = "solana-chacha-sys"
version = "0.23.1" version = "0.23.2"
description = "Solana chacha-sys" description = "Solana chacha-sys"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha" name = "solana-chacha"
version = "0.23.1" version = "0.23.2"
description = "Solana Chacha APIs" description = "Solana Chacha APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ edition = "2018"
log = "0.4.8" log = "0.4.8"
rand = "0.6.5" rand = "0.6.5"
rand_chacha = "0.1.1" rand_chacha = "0.1.1"
solana-chacha-sys = { path = "../chacha-sys", version = "0.23.1" } solana-chacha-sys = { path = "../chacha-sys", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
hex-literal = "0.2.1" hex-literal = "0.2.1"

View File

@@ -389,7 +389,7 @@ deploy() {
( (
echo "--- net.sh update" echo "--- net.sh update"
set -x set -x
time net/net.sh update -t "$CHANNEL_OR_TAG" --platform linux --platform osx --platform windows time net/net.sh update -t "$CHANNEL_OR_TAG" --platform linux --platform osx #--platform windows
) )
;; ;;
testnet-perf) testnet-perf)

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-clap-utils" name = "solana-clap-utils"
version = "0.23.1" version = "0.23.2"
description = "Solana utilities for the clap" description = "Solana utilities for the clap"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ edition = "2018"
clap = "2.33.0" clap = "2.33.0"
rpassword = "4.0" rpassword = "4.0"
semver = "0.9.0" semver = "0.9.0"
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"
url = "2.1.0" url = "2.1.0"
chrono = "0.4" chrono = "0.4"

View File

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

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-cli" name = "solana-cli"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -27,25 +27,25 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-cli-config = { path = "../cli-config", version = "0.23.1" } solana-cli-config = { path = "../cli-config", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-config-program = { path = "../programs/config", version = "0.23.1" } solana-config-program = { path = "../programs/config", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
solana-vote-signer = { path = "../vote-signer", version = "0.23.1" } solana-vote-signer = { path = "../vote-signer", version = "0.23.2" }
url = "2.1.1" url = "2.1.1"
[dev-dependencies] [dev-dependencies]
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -276,6 +276,18 @@ pub enum CliCommand {
nonce_account: Option<Pubkey>, nonce_account: Option<Pubkey>,
nonce_authority: Option<SigningAuthority>, nonce_authority: Option<SigningAuthority>,
}, },
SplitStake {
stake_account_pubkey: Pubkey,
stake_authority: Option<SigningAuthority>,
sign_only: bool,
signers: Option<Vec<(Pubkey, Signature)>>,
blockhash_query: BlockhashQuery,
nonce_account: Option<Pubkey>,
nonce_authority: Option<SigningAuthority>,
split_stake_account: KeypairEq,
seed: Option<String>,
lamports: u64,
},
ShowStakeHistory { ShowStakeHistory {
use_lamports_unit: bool, use_lamports_unit: bool,
}, },
@@ -331,11 +343,6 @@ pub enum CliCommand {
pubkey: Pubkey, pubkey: Pubkey,
use_lamports_unit: bool, use_lamports_unit: bool,
}, },
Uptime {
pubkey: Pubkey,
aggregate: bool,
span: Option<u64>,
},
VoteAuthorize { VoteAuthorize {
vote_account_pubkey: Pubkey, vote_account_pubkey: Pubkey,
new_authorized_pubkey: Pubkey, new_authorized_pubkey: Pubkey,
@@ -493,6 +500,7 @@ pub fn parse_command(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, Box<dyn
("delegate-stake", Some(matches)) => parse_stake_delegate_stake(matches), ("delegate-stake", Some(matches)) => parse_stake_delegate_stake(matches),
("withdraw-stake", Some(matches)) => parse_stake_withdraw_stake(matches), ("withdraw-stake", Some(matches)) => parse_stake_withdraw_stake(matches),
("deactivate-stake", Some(matches)) => parse_stake_deactivate_stake(matches), ("deactivate-stake", Some(matches)) => parse_stake_deactivate_stake(matches),
("split-stake", Some(matches)) => parse_split_stake(matches),
("stake-authorize-staker", Some(matches)) => { ("stake-authorize-staker", Some(matches)) => {
parse_stake_authorize(matches, StakeAuthorize::Staker) parse_stake_authorize(matches, StakeAuthorize::Staker)
} }
@@ -526,7 +534,6 @@ pub fn parse_command(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, Box<dyn
parse_vote_authorize(matches, VoteAuthorize::Withdrawer) parse_vote_authorize(matches, VoteAuthorize::Withdrawer)
} }
("vote-account", Some(matches)) => parse_vote_get_account_command(matches), ("vote-account", Some(matches)) => parse_vote_get_account_command(matches),
("uptime", Some(matches)) => parse_vote_uptime_command(matches),
// Wallet Commands // Wallet Commands
("address", Some(_matches)) => Ok(CliCommandInfo { ("address", Some(_matches)) => Ok(CliCommandInfo {
command: CliCommand::Address, command: CliCommand::Address,
@@ -1382,7 +1389,6 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
lockup, lockup,
*lamports, *lamports,
), ),
// Deactivate stake account
CliCommand::DeactivateStake { CliCommand::DeactivateStake {
stake_account_pubkey, stake_account_pubkey,
ref stake_authority, ref stake_authority,
@@ -1425,6 +1431,31 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
*nonce_account, *nonce_account,
nonce_authority.as_ref(), nonce_authority.as_ref(),
), ),
CliCommand::SplitStake {
stake_account_pubkey,
ref stake_authority,
sign_only,
ref signers,
blockhash_query,
nonce_account,
ref nonce_authority,
split_stake_account,
seed,
lamports,
} => process_split_stake(
&rpc_client,
config,
&stake_account_pubkey,
stake_authority.as_ref(),
*sign_only,
signers,
blockhash_query,
*nonce_account,
nonce_authority.as_ref(),
split_stake_account,
seed,
*lamports,
),
CliCommand::ShowStakeAccount { CliCommand::ShowStakeAccount {
pubkey: stake_account_pubkey, pubkey: stake_account_pubkey,
use_lamports_unit, use_lamports_unit,
@@ -1572,11 +1603,6 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
&new_identity_pubkey, &new_identity_pubkey,
authorized_voter, authorized_voter,
), ),
CliCommand::Uptime {
pubkey: vote_account_pubkey,
aggregate,
span,
} => process_uptime(&rpc_client, config, &vote_account_pubkey, *aggregate, *span),
// Wallet Commands // Wallet Commands
@@ -2775,6 +2801,23 @@ mod tests {
let signature = process_command(&config); let signature = process_command(&config);
assert_eq!(signature.unwrap(), SIGNATURE.to_string()); assert_eq!(signature.unwrap(), SIGNATURE.to_string());
let stake_pubkey = Pubkey::new_rand();
let split_stake_account = Keypair::new();
config.command = CliCommand::SplitStake {
stake_account_pubkey: stake_pubkey,
stake_authority: None,
sign_only: false,
signers: None,
blockhash_query: BlockhashQuery::default(),
nonce_account: None,
nonce_authority: None,
split_stake_account: split_stake_account.into(),
seed: None,
lamports: 1234,
};
let signature = process_command(&config);
assert_eq!(signature.unwrap(), SIGNATURE.to_string());
config.command = CliCommand::GetSlot { config.command = CliCommand::GetSlot {
commitment_config: CommitmentConfig::default(), commitment_config: CommitmentConfig::default(),
}; };

View File

@@ -14,7 +14,7 @@ use solana_sdk::{
account_utils::StateMut, account_utils::StateMut,
clock::{self, Slot}, clock::{self, Slot},
commitment_config::CommitmentConfig, commitment_config::CommitmentConfig,
epoch_schedule::{Epoch, EpochSchedule}, epoch_schedule::Epoch,
hash::Hash, hash::Hash,
pubkey::Pubkey, pubkey::Pubkey,
signature::{Keypair, KeypairUtil}, signature::{Keypair, KeypairUtil},
@@ -321,20 +321,6 @@ fn new_spinner_progress_bar() -> ProgressBar {
progress_bar progress_bar
} }
/// Aggregate epoch credit stats and return (total credits, total slots, total epochs)
pub fn aggregate_epoch_credits(
epoch_credits: &[(Epoch, u64, u64)],
epoch_schedule: &EpochSchedule,
) -> (u64, u64, u64) {
epoch_credits
.iter()
.fold((0, 0, 0), |acc, (epoch, credits, prev_credits)| {
let credits_earned = credits - prev_credits;
let slots_in_epoch = epoch_schedule.get_slots_in_epoch(*epoch);
(acc.0 + credits_earned, acc.1 + slots_in_epoch, acc.2 + 1)
})
}
pub fn process_catchup(rpc_client: &RpcClient, node_pubkey: &Pubkey) -> ProcessResult { pub fn process_catchup(rpc_client: &RpcClient, node_pubkey: &Pubkey) -> ProcessResult {
let cluster_nodes = rpc_client.get_cluster_nodes()?; let cluster_nodes = rpc_client.get_cluster_nodes()?;
@@ -900,7 +886,7 @@ pub fn process_show_stakes(
} }
pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool) -> ProcessResult { pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool) -> ProcessResult {
let epoch_schedule = rpc_client.get_epoch_schedule()?; let epoch_info = rpc_client.get_epoch_info()?;
let vote_accounts = rpc_client.get_vote_accounts()?; let vote_accounts = rpc_client.get_vote_accounts()?;
let total_active_stake = vote_accounts let total_active_stake = vote_accounts
.current .current
@@ -949,7 +935,7 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
"Commission", "Commission",
"Last Vote", "Last Vote",
"Root Block", "Root Block",
"Uptime", "Credits",
"Active Stake", "Active Stake",
)) ))
.bold() .bold()
@@ -957,7 +943,7 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
fn print_vote_account( fn print_vote_account(
vote_account: RpcVoteAccountInfo, vote_account: RpcVoteAccountInfo,
epoch_schedule: &EpochSchedule, current_epoch: Epoch,
total_active_stake: f64, total_active_stake: f64,
use_lamports_unit: bool, use_lamports_unit: bool,
delinquent: bool, delinquent: bool,
@@ -970,17 +956,6 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
} }
} }
fn uptime(epoch_credits: Vec<(Epoch, u64, u64)>, epoch_schedule: &EpochSchedule) -> String {
let (total_credits, total_slots, _) =
aggregate_epoch_credits(&epoch_credits, &epoch_schedule);
if total_slots > 0 {
let total_uptime = 100_f64 * total_credits as f64 / total_slots as f64;
format!("{:.2}%", total_uptime)
} else {
"-".into()
}
}
println!( println!(
"{} {:<44} {:<44} {:>9}% {:>8} {:>10} {:>7} {}", "{} {:<44} {:<44} {:>9}% {:>8} {:>10} {:>7} {}",
if delinquent { if delinquent {
@@ -993,7 +968,15 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
vote_account.commission, vote_account.commission,
non_zero_or_dash(vote_account.last_vote), non_zero_or_dash(vote_account.last_vote),
non_zero_or_dash(vote_account.root_slot), non_zero_or_dash(vote_account.root_slot),
uptime(vote_account.epoch_credits, epoch_schedule), vote_account
.epoch_credits
.iter()
.find_map(|(epoch, credits, _)| if *epoch == current_epoch {
Some(*credits)
} else {
None
})
.unwrap_or(0),
if vote_account.activated_stake > 0 { if vote_account.activated_stake > 0 {
format!( format!(
"{} ({:.2}%)", "{} ({:.2}%)",
@@ -1009,7 +992,7 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
for vote_account in vote_accounts.current.into_iter() { for vote_account in vote_accounts.current.into_iter() {
print_vote_account( print_vote_account(
vote_account, vote_account,
&epoch_schedule, epoch_info.epoch,
total_active_stake, total_active_stake,
use_lamports_unit, use_lamports_unit,
false, false,
@@ -1018,7 +1001,7 @@ pub fn process_show_validators(rpc_client: &RpcClient, use_lamports_unit: bool)
for vote_account in vote_accounts.delinquent.into_iter() { for vote_account in vote_accounts.delinquent.into_iter() {
print_vote_account( print_vote_account(
vote_account, vote_account,
&epoch_schedule, epoch_info.epoch,
total_active_stake, total_active_stake,
use_lamports_unit, use_lamports_unit,
true, true,

View File

@@ -1,11 +1,13 @@
use clap::{App, Arg, ArgMatches}; use clap::{App, Arg, ArgMatches};
use serde_json::Value;
use solana_clap_utils::{ use solana_clap_utils::{
input_parsers::value_of, input_parsers::value_of,
input_validators::{is_hash, is_pubkey_sig}, input_validators::{is_hash, is_pubkey_sig},
ArgConstant, ArgConstant,
}; };
use solana_client::rpc_client::RpcClient; use solana_client::rpc_client::RpcClient;
use solana_sdk::{fee_calculator::FeeCalculator, hash::Hash}; use solana_sdk::{fee_calculator::FeeCalculator, hash::Hash, pubkey::Pubkey, signature::Signature};
use std::str::FromStr;
pub const BLOCKHASH_ARG: ArgConstant<'static> = ArgConstant { pub const BLOCKHASH_ARG: ArgConstant<'static> = ArgConstant {
name: "blockhash", name: "blockhash",
@@ -112,6 +114,23 @@ impl OfflineArgs for App<'_, '_> {
} }
} }
pub fn parse_sign_only_reply_string(reply: &str) -> (Hash, Vec<(Pubkey, Signature)>) {
let object: Value = serde_json::from_str(&reply).unwrap();
let blockhash_str = object.get("blockhash").unwrap().as_str().unwrap();
let blockhash = blockhash_str.parse::<Hash>().unwrap();
let signer_strings = object.get("signers").unwrap().as_array().unwrap();
let signers = signer_strings
.iter()
.map(|signer_string| {
let mut signer = signer_string.as_str().unwrap().split('=');
let key = Pubkey::from_str(signer.next().unwrap()).unwrap();
let sig = Signature::from_str(signer.next().unwrap()).unwrap();
(key, sig)
})
.collect();
(blockhash, signers)
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;

View File

@@ -244,6 +244,55 @@ impl StakeSubCommands for App<'_, '_> {
.arg(nonce_arg()) .arg(nonce_arg())
.arg(nonce_authority_arg()) .arg(nonce_authority_arg())
) )
.subcommand(
SubCommand::with_name("split-stake")
.about("Split a stake account")
.arg(
Arg::with_name("stake_account_pubkey")
.index(1)
.value_name("STAKE ACCOUNT")
.takes_value(true)
.required(true)
.help("Stake account to be split")
)
.arg(
Arg::with_name("split_stake_account")
.index(2)
.value_name("SPLIT STAKE ACCOUNT")
.takes_value(true)
.required(true)
.validator(is_keypair_or_ask_keyword)
.help("Keypair of the new stake account to split funds into")
)
.arg(
Arg::with_name("amount")
.index(3)
.value_name("AMOUNT")
.takes_value(true)
.validator(is_amount)
.required(true)
.help("The amount to move into the new stake account (default unit SOL)")
)
.arg(
Arg::with_name("unit")
.index(4)
.value_name("UNIT")
.takes_value(true)
.possible_values(&["SOL", "lamports"])
.help("Specify unit to use for request")
)
.arg(
Arg::with_name("seed")
.long("seed")
.value_name("SEED STRING")
.takes_value(true)
.help("Seed for address generation; if specified, the resulting account will be at a derived address of the SPLIT STAKE ACCOUNT pubkey")
)
.arg(stake_authority_arg())
.offline_args()
.arg(nonce_arg())
.arg(nonce_authority_arg())
)
.subcommand( .subcommand(
SubCommand::with_name("withdraw-stake") SubCommand::with_name("withdraw-stake")
.about("Withdraw the unstaked lamports from the stake account") .about("Withdraw the unstaked lamports from the stake account")
@@ -410,6 +459,39 @@ pub fn parse_stake_authorize(
}) })
} }
pub fn parse_split_stake(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> {
let stake_account_pubkey = pubkey_of(matches, "stake_account_pubkey").unwrap();
let split_stake_account = keypair_of(matches, "split_stake_account").unwrap();
let lamports = required_lamports_from(matches, "amount", "unit")?;
let seed = matches.value_of("seed").map(|s| s.to_string());
let sign_only = matches.is_present(SIGN_ONLY_ARG.name);
let signers = pubkeys_sigs_of(&matches, SIGNER_ARG.name);
let blockhash_query = BlockhashQuery::new_from_matches(matches);
let require_keypair = signers.is_none();
let nonce_account = pubkey_of(&matches, NONCE_ARG.name);
let stake_authority =
SigningAuthority::new_from_matches(&matches, STAKE_AUTHORITY_ARG.name, signers.as_deref())?;
let nonce_authority =
SigningAuthority::new_from_matches(&matches, NONCE_AUTHORITY_ARG.name, signers.as_deref())?;
Ok(CliCommandInfo {
command: CliCommand::SplitStake {
stake_account_pubkey,
stake_authority,
sign_only,
signers,
blockhash_query,
nonce_account,
nonce_authority,
split_stake_account: split_stake_account.into(),
seed,
lamports,
},
require_keypair,
})
}
pub fn parse_stake_deactivate_stake(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> { pub fn parse_stake_deactivate_stake(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> {
let stake_account_pubkey = pubkey_of(matches, "stake_account_pubkey").unwrap(); let stake_account_pubkey = pubkey_of(matches, "stake_account_pubkey").unwrap();
let sign_only = matches.is_present(SIGN_ONLY_ARG.name); let sign_only = matches.is_present(SIGN_ONLY_ARG.name);
@@ -512,7 +594,7 @@ pub fn process_create_stake_account(
if lamports < minimum_balance { if lamports < minimum_balance {
return Err(CliError::BadParameter(format!( return Err(CliError::BadParameter(format!(
"need atleast {} lamports for stake account to be rent exempt, provided lamports: {}", "need at least {} lamports for stake account to be rent exempt, provided lamports: {}",
minimum_balance, lamports minimum_balance, lamports
)) ))
.into()); .into());
@@ -732,6 +814,148 @@ pub fn process_withdraw_stake(
log_instruction_custom_error::<StakeError>(result) log_instruction_custom_error::<StakeError>(result)
} }
#[allow(clippy::too_many_arguments)]
pub fn process_split_stake(
rpc_client: &RpcClient,
config: &CliConfig,
stake_account_pubkey: &Pubkey,
stake_authority: Option<&SigningAuthority>,
sign_only: bool,
signers: &Option<Vec<(Pubkey, Signature)>>,
blockhash_query: &BlockhashQuery,
nonce_account: Option<Pubkey>,
nonce_authority: Option<&SigningAuthority>,
split_stake_account: &Keypair,
split_stake_account_seed: &Option<String>,
lamports: u64,
) -> ProcessResult {
check_unique_pubkeys(
(&config.keypair.pubkey(), "cli keypair".to_string()),
(
&split_stake_account.pubkey(),
"split_stake_account".to_string(),
),
)?;
check_unique_pubkeys(
(&config.keypair.pubkey(), "cli keypair".to_string()),
(&stake_account_pubkey, "stake_account".to_string()),
)?;
check_unique_pubkeys(
(&stake_account_pubkey, "stake_account".to_string()),
(
&split_stake_account.pubkey(),
"split_stake_account".to_string(),
),
)?;
let stake_authority = stake_authority
.map(|a| a.keypair())
.unwrap_or(&config.keypair);
let split_stake_account_address = if let Some(seed) = split_stake_account_seed {
create_address_with_seed(
&split_stake_account.pubkey(),
&seed,
&solana_stake_program::id(),
)?
} else {
split_stake_account.pubkey()
};
if let Ok(stake_account) = rpc_client.get_account(&split_stake_account_address) {
let err_msg = if stake_account.owner == solana_stake_program::id() {
format!(
"Stake account {} already exists",
split_stake_account_address
)
} else {
format!(
"Account {} already exists and is not a stake account",
split_stake_account_address
)
};
return Err(CliError::BadParameter(err_msg).into());
}
let minimum_balance =
rpc_client.get_minimum_balance_for_rent_exemption(std::mem::size_of::<StakeState>())?;
if lamports < minimum_balance {
return Err(CliError::BadParameter(format!(
"need at least {} lamports for stake account to be rent exempt, provided lamports: {}",
minimum_balance, lamports
))
.into());
}
let (recent_blockhash, fee_calculator) =
blockhash_query.get_blockhash_fee_calculator(rpc_client)?;
let ixs = if let Some(seed) = split_stake_account_seed {
stake_instruction::split_with_seed(
&stake_account_pubkey,
&stake_authority.pubkey(),
lamports,
&split_stake_account_address,
&split_stake_account.pubkey(),
seed,
)
} else {
stake_instruction::split(
&stake_account_pubkey,
&stake_authority.pubkey(),
lamports,
&split_stake_account_address,
)
};
let (nonce_authority, nonce_authority_pubkey) = nonce_authority
.map(|a| (a.keypair(), a.pubkey()))
.unwrap_or((&config.keypair, config.keypair.pubkey()));
let mut tx = if let Some(nonce_account) = &nonce_account {
Transaction::new_signed_with_nonce(
ixs,
Some(&config.keypair.pubkey()),
&[
&config.keypair,
nonce_authority,
stake_authority,
split_stake_account,
],
nonce_account,
&nonce_authority.pubkey(),
recent_blockhash,
)
} else {
Transaction::new_signed_with_payer(
ixs,
Some(&config.keypair.pubkey()),
&[&config.keypair, stake_authority, split_stake_account],
recent_blockhash,
)
};
if let Some(signers) = signers {
replace_signatures(&mut tx, &signers)?;
}
if sign_only {
return_signers(&tx)
} else {
if let Some(nonce_account) = &nonce_account {
let nonce_account = rpc_client.get_account(nonce_account)?;
check_nonce_account(&nonce_account, &nonce_authority_pubkey, &recent_blockhash)?;
}
check_account_for_fee(
rpc_client,
&tx.message.account_keys[0],
&fee_calculator,
&tx.message,
)?;
let result = rpc_client.send_and_confirm_transaction(&mut tx, &[&config.keypair]);
log_instruction_custom_error::<StakeError>(result)
}
}
pub fn print_stake_state(stake_lamports: u64, stake_state: &StakeState, use_lamports_unit: bool) { pub fn print_stake_state(stake_lamports: u64, stake_state: &StakeState, use_lamports_unit: bool) {
fn show_authorized(authorized: &Authorized) { fn show_authorized(authorized: &Authorized) {
println!("authorized staker: {}", authorized.staker); println!("authorized staker: {}", authorized.staker);
@@ -1710,5 +1934,40 @@ mod tests {
require_keypair: false require_keypair: false
} }
); );
// Test SplitStake SubCommand
let (keypair_file, mut tmp_file) = make_tmp_file();
let stake_account_keypair = Keypair::new();
write_keypair(&stake_account_keypair, tmp_file.as_file_mut()).unwrap();
let (split_stake_account_keypair_file, mut tmp_file) = make_tmp_file();
let split_stake_account_keypair = Keypair::new();
write_keypair(&split_stake_account_keypair, tmp_file.as_file_mut()).unwrap();
let test_split_stake_account = test_commands.clone().get_matches_from(vec![
"test",
"split-stake",
&keypair_file,
&split_stake_account_keypair_file,
"50",
"lamports",
]);
assert_eq!(
parse_command(&test_split_stake_account).unwrap(),
CliCommandInfo {
command: CliCommand::SplitStake {
stake_account_pubkey: stake_account_keypair.pubkey(),
stake_authority: None,
sign_only: false,
signers: None,
blockhash_query: BlockhashQuery::default(),
nonce_account: None,
nonce_authority: None,
split_stake_account: split_stake_account_keypair.into(),
seed: None,
lamports: 50
},
require_keypair: true
}
);
} }
} }

View File

@@ -1,10 +1,6 @@
use crate::{ use crate::cli::{
cli::{ build_balance_message, check_account_for_fee, check_unique_pubkeys,
build_balance_message, check_account_for_fee, check_unique_pubkeys, log_instruction_custom_error, CliCommand, CliCommandInfo, CliConfig, CliError, ProcessResult,
log_instruction_custom_error, CliCommand, CliCommandInfo, CliConfig, CliError,
ProcessResult,
},
cluster_query::aggregate_epoch_credits,
}; };
use clap::{value_t_or_exit, App, Arg, ArgMatches, SubCommand}; use clap::{value_t_or_exit, App, Arg, ArgMatches, SubCommand};
use solana_clap_utils::{input_parsers::*, input_validators::*}; use solana_clap_utils::{input_parsers::*, input_validators::*};
@@ -176,31 +172,6 @@ impl VoteSubCommands for App<'_, '_> {
.help("Display balance in lamports instead of SOL"), .help("Display balance in lamports instead of SOL"),
), ),
) )
.subcommand(
SubCommand::with_name("uptime")
.about("Show the uptime of a validator, based on epoch voting history")
.arg(
Arg::with_name("vote_account_pubkey")
.index(1)
.value_name("VOTE ACCOUNT PUBKEY")
.takes_value(true)
.required(true)
.validator(is_pubkey_or_keypair)
.help("Vote account pubkey"),
)
.arg(
Arg::with_name("span")
.long("span")
.value_name("NUM OF EPOCHS")
.takes_value(true)
.help("Number of recent epochs to examine"),
)
.arg(
Arg::with_name("aggregate")
.long("aggregate")
.help("Aggregate uptime data across span"),
),
)
} }
} }
@@ -271,24 +242,6 @@ pub fn parse_vote_get_account_command(
}) })
} }
pub fn parse_vote_uptime_command(matches: &ArgMatches<'_>) -> Result<CliCommandInfo, CliError> {
let vote_account_pubkey = pubkey_of(matches, "vote_account_pubkey").unwrap();
let aggregate = matches.is_present("aggregate");
let span = if matches.is_present("span") {
Some(value_t_or_exit!(matches, "span", u64))
} else {
None
};
Ok(CliCommandInfo {
command: CliCommand::Uptime {
pubkey: vote_account_pubkey,
aggregate,
span,
},
require_keypair: false,
})
}
pub fn process_create_vote_account( pub fn process_create_vote_account(
rpc_client: &RpcClient, rpc_client: &RpcClient,
config: &CliConfig, config: &CliConfig,
@@ -517,60 +470,6 @@ pub fn process_show_vote_account(
Ok("".to_string()) Ok("".to_string())
} }
pub fn process_uptime(
rpc_client: &RpcClient,
_config: &CliConfig,
vote_account_pubkey: &Pubkey,
aggregate: bool,
span: Option<u64>,
) -> ProcessResult {
let (_vote_account, vote_state) = get_vote_account(rpc_client, vote_account_pubkey)?;
let epoch_schedule = rpc_client.get_epoch_schedule()?;
println!("validator identity: {}", vote_state.node_pubkey);
println!("authorized voter: {}", vote_state.authorized_voter);
if !vote_state.votes.is_empty() {
println!("uptime:");
let epoch_credits: Vec<(u64, u64, u64)> = if let Some(x) = span {
vote_state
.epoch_credits()
.iter()
.rev()
.take(x as usize)
.cloned()
.collect()
} else {
vote_state.epoch_credits().iter().rev().cloned().collect()
};
if aggregate {
let (total_credits, total_slots, epochs) =
aggregate_epoch_credits(&epoch_credits, &epoch_schedule);
if total_slots > 0 {
let total_uptime = 100_f64 * total_credits as f64 / total_slots as f64;
println!("{:.2}% over {} epochs", total_uptime, epochs);
} else {
println!("Insufficient voting history available");
}
} else {
for (epoch, credits, prev_credits) in epoch_credits {
let credits_earned = credits - prev_credits;
let slots_in_epoch = epoch_schedule.get_slots_in_epoch(epoch);
let uptime = credits_earned as f64 / slots_in_epoch as f64;
println!("- epoch: {} {:.2}% uptime", epoch, uptime * 100_f64,);
}
}
if let Some(x) = span {
if x > vote_state.epoch_credits().len() as u64 {
println!("(span longer than available epochs)");
}
}
}
Ok("".to_string())
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
@@ -741,27 +640,5 @@ mod tests {
require_keypair: true require_keypair: true
} }
); );
// Test Uptime Subcommand
let pubkey = Pubkey::new_rand();
let matches = test_commands.clone().get_matches_from(vec![
"test",
"uptime",
&pubkey.to_string(),
"--span",
"4",
"--aggregate",
]);
assert_eq!(
parse_command(&matches).unwrap(),
CliCommandInfo {
command: CliCommand::Uptime {
pubkey,
aggregate: true,
span: Some(4)
},
require_keypair: false
}
);
} }
} }

View File

@@ -2,20 +2,18 @@ use chrono::prelude::*;
use serde_json::Value; use serde_json::Value;
use solana_cli::{ use solana_cli::{
cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig, PayCommand}, cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig, PayCommand},
offline::BlockhashQuery, offline::{parse_sign_only_reply_string, BlockhashQuery},
}; };
use solana_client::rpc_client::RpcClient; use solana_client::rpc_client::RpcClient;
use solana_faucet::faucet::run_local_faucet; use solana_faucet::faucet::run_local_faucet;
use solana_sdk::{ use solana_sdk::{
account_utils::StateMut, account_utils::StateMut,
fee_calculator::FeeCalculator, fee_calculator::FeeCalculator,
hash::Hash,
nonce_state::NonceState, nonce_state::NonceState,
pubkey::Pubkey, pubkey::Pubkey,
signature::{read_keypair_file, write_keypair, Keypair, KeypairUtil, Signature}, signature::{read_keypair_file, write_keypair, Keypair, KeypairUtil},
}; };
use std::fs::remove_dir_all; use std::fs::remove_dir_all;
use std::str::FromStr;
use std::sync::mpsc::channel; use std::sync::mpsc::channel;
#[cfg(test)] #[cfg(test)]
@@ -305,24 +303,12 @@ fn test_offline_pay_tx() {
check_balance(50, &rpc_client, &config_online.keypair.pubkey()); check_balance(50, &rpc_client, &config_online.keypair.pubkey());
check_balance(0, &rpc_client, &bob_pubkey); check_balance(0, &rpc_client, &bob_pubkey);
let object: Value = serde_json::from_str(&sig_response).unwrap(); let (blockhash, signers) = parse_sign_only_reply_string(&sig_response);
let blockhash_str = object.get("blockhash").unwrap().as_str().unwrap();
let signer_strings = object.get("signers").unwrap().as_array().unwrap();
let signers: Vec<_> = signer_strings
.iter()
.map(|signer_string| {
let mut signer = signer_string.as_str().unwrap().split('=');
let key = Pubkey::from_str(signer.next().unwrap()).unwrap();
let sig = Signature::from_str(signer.next().unwrap()).unwrap();
(key, sig)
})
.collect();
config_online.command = CliCommand::Pay(PayCommand { config_online.command = CliCommand::Pay(PayCommand {
lamports: 10, lamports: 10,
to: bob_pubkey, to: bob_pubkey,
signers: Some(signers), signers: Some(signers),
blockhash_query: BlockhashQuery::FeeCalculator(blockhash_str.parse::<Hash>().unwrap()), blockhash_query: BlockhashQuery::FeeCalculator(blockhash),
..PayCommand::default() ..PayCommand::default()
}); });
process_command(&config_online).unwrap(); process_command(&config_online).unwrap();

View File

@@ -1,22 +1,19 @@
use serde_json::Value;
use solana_cli::{ use solana_cli::{
cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig}, cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig},
offline::BlockhashQuery, offline::{parse_sign_only_reply_string, BlockhashQuery},
}; };
use solana_client::rpc_client::RpcClient; use solana_client::rpc_client::RpcClient;
use solana_faucet::faucet::run_local_faucet; use solana_faucet::faucet::run_local_faucet;
use solana_sdk::{ use solana_sdk::{
account_utils::StateMut, account_utils::StateMut,
fee_calculator::FeeCalculator, fee_calculator::FeeCalculator,
hash::Hash,
nonce_state::NonceState, nonce_state::NonceState,
pubkey::Pubkey, pubkey::Pubkey,
signature::{read_keypair_file, write_keypair, Keypair, KeypairUtil, Signature}, signature::{read_keypair_file, write_keypair, Keypair, KeypairUtil},
system_instruction::create_address_with_seed, system_instruction::create_address_with_seed,
}; };
use solana_stake_program::stake_state::{Lockup, StakeAuthorize, StakeState}; use solana_stake_program::stake_state::{Lockup, StakeAuthorize, StakeState};
use std::fs::remove_dir_all; use std::fs::remove_dir_all;
use std::str::FromStr;
use std::sync::mpsc::channel; use std::sync::mpsc::channel;
#[cfg(test)] #[cfg(test)]
@@ -44,23 +41,6 @@ fn check_balance(expected_balance: u64, client: &RpcClient, pubkey: &Pubkey) {
}); });
} }
fn parse_sign_only_reply_string(reply: &str) -> (Hash, Vec<(Pubkey, Signature)>) {
let object: Value = serde_json::from_str(&reply).unwrap();
let blockhash_str = object.get("blockhash").unwrap().as_str().unwrap();
let blockhash = blockhash_str.parse::<Hash>().unwrap();
let signer_strings = object.get("signers").unwrap().as_array().unwrap();
let signers = signer_strings
.iter()
.map(|signer_string| {
let mut signer = signer_string.as_str().unwrap().split('=');
let key = Pubkey::from_str(signer.next().unwrap()).unwrap();
let sig = Signature::from_str(signer.next().unwrap()).unwrap();
(key, sig)
})
.collect();
(blockhash, signers)
}
#[test] #[test]
fn test_seed_stake_delegation_and_deactivation() { fn test_seed_stake_delegation_and_deactivation() {
solana_logger::setup(); solana_logger::setup();

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-client" name = "solana-client"
version = "0.23.1" version = "0.23.2"
description = "Solana Client" description = "Solana Client"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -19,11 +19,11 @@ reqwest = { version = "0.10.1", default-features = false, features = ["blocking"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
jsonrpc-core = "14.0.5" jsonrpc-core = "14.0.5"
jsonrpc-http-server = "14.0.5" jsonrpc-http-server = "14.0.5"
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-core" name = "solana-core"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"
@@ -40,26 +40,26 @@ rayon = "1.2.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
ed25519-dalek = "=1.0.0-pre.1" ed25519-dalek = "=1.0.0-pre.1"
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-merkle-tree = { path = "../merkle-tree", version = "0.23.1" } solana-merkle-tree = { path = "../merkle-tree", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-measure = { path = "../measure", version = "0.23.1" } solana-measure = { path = "../measure", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-chacha-cuda = { path = "../chacha-cuda", version = "0.23.1" } solana-chacha-cuda = { path = "../chacha-cuda", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
solana-vote-signer = { path = "../vote-signer", version = "0.23.1" } solana-vote-signer = { path = "../vote-signer", version = "0.23.2" }
solana-sys-tuner = { path = "../sys-tuner", version = "0.23.1" } solana-sys-tuner = { path = "../sys-tuner", version = "0.23.2" }
symlink = "0.1.0" symlink = "0.1.0"
sys-info = "0.5.8" sys-info = "0.5.8"
tempfile = "3.1.0" tempfile = "3.1.0"
@@ -69,7 +69,7 @@ tokio-codec = "0.1"
tokio-fs = "0.1" tokio-fs = "0.1"
tokio-io = "0.1" tokio-io = "0.1"
untrusted = "0.7.0" untrusted = "0.7.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.1" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.2" }
reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] } reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] }
[dev-dependencies] [dev-dependencies]

View File

@@ -327,21 +327,16 @@ impl Tower {
fork_stake.stake, fork_stake.stake,
total_staked total_staked
); );
for (new_lockout, original_lockout) in if vote.confirmation_count as usize > self.threshold_depth {
lockouts.votes.iter().zip(self.lockouts.votes.iter()) for old_vote in &self.lockouts.votes {
{ if old_vote.slot == vote.slot
if new_lockout.slot == original_lockout.slot { && old_vote.confirmation_count == vote.confirmation_count
if new_lockout.confirmation_count <= self.threshold_depth as u32 { {
break; return true;
} }
if new_lockout.confirmation_count != original_lockout.confirmation_count {
return lockout > self.threshold_size;
}
} else {
break;
} }
} }
true lockout > self.threshold_size
} else { } else {
false false
} }
@@ -556,6 +551,24 @@ mod test {
assert!(tower.check_vote_stake_threshold(0, &stakes, 2)); assert!(tower.check_vote_stake_threshold(0, &stakes, 2));
} }
#[test]
fn test_check_vote_threshold_no_skip_lockout_with_new_root() {
solana_logger::setup();
let mut tower = Tower::new_for_tests(4, 0.67);
let mut stakes = HashMap::new();
for i in 0..(MAX_LOCKOUT_HISTORY as u64 + 1) {
stakes.insert(
i,
StakeLockout {
stake: 1,
lockout: 8,
},
);
tower.record_vote(i, Hash::default());
}
assert!(!tower.check_vote_stake_threshold(MAX_LOCKOUT_HISTORY as u64 + 1, &stakes, 2));
}
#[test] #[test]
fn test_is_slot_confirmed_not_enough_stake_failure() { fn test_is_slot_confirmed_not_enough_stake_failure() {
let tower = Tower::new_for_tests(1, 0.67); let tower = Tower::new_for_tests(1, 0.67);

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-faucet" name = "solana-faucet"
version = "0.23.1" version = "0.23.2"
description = "Solana Faucet" description = "Solana Faucet"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -19,10 +19,10 @@ clap = "2.33"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
tokio = "0.1" tokio = "0.1"
tokio-codec = "0.1" tokio-codec = "0.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-genesis-programs" name = "solana-genesis-programs"
version = "0.23.1" version = "0.23.2"
description = "Solana genesis programs" description = "Solana genesis programs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,16 +10,16 @@ edition = "2018"
[dependencies] [dependencies]
log = { version = "0.4.8" } log = { version = "0.4.8" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.23.1" } solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.23.2" }
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
solana-config-program = { path = "../programs/config", version = "0.23.1" } solana-config-program = { path = "../programs/config", version = "0.23.2" }
solana-exchange-program = { path = "../programs/exchange", version = "0.23.1" } solana-exchange-program = { path = "../programs/exchange", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vest-program = { path = "../programs/vest", version = "0.23.1" } solana-vest-program = { path = "../programs/vest", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-genesis" name = "solana-genesis"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -17,13 +17,13 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-genesis-programs = { path = "../genesis-programs", version = "0.23.1" } solana-genesis-programs = { path = "../genesis-programs", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -3,19 +3,19 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-gossip" name = "solana-gossip"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-install" name = "solana-install"
description = "The solana cluster software installer" description = "The solana cluster software installer"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -26,11 +26,11 @@ reqwest = { version = "0.10.1", default-features = false, features = ["blocking"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-config-program = { path = "../programs/config", version = "0.23.1" } solana-config-program = { path = "../programs/config", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
tar = "0.4.26" tar = "0.4.26"
tempdir = "0.3.7" tempdir = "0.3.7"
url = "2.1.1" url = "2.1.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-keygen" name = "solana-keygen"
version = "0.23.1" version = "0.23.2"
description = "Solana key generation utility" description = "Solana key generation utility"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,9 +14,9 @@ clap = "2.33"
dirs = "2.0.2" dirs = "2.0.2"
num_cpus = "1.12.0" num_cpus = "1.12.0"
rpassword = "4.0" rpassword = "4.0"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-cli-config = { path = "../cli-config", version = "0.23.1" } solana-cli-config = { path = "../cli-config", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"
[[bin]] [[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-ledger-tool" name = "solana-ledger-tool"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,12 +16,12 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
tempfile = "3.1.0" tempfile = "3.1.0"
[dev-dependencies] [dev-dependencies]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-ledger" name = "solana-ledger"
version = "0.23.1" version = "0.23.2"
description = "Solana ledger" description = "Solana ledger"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -29,19 +29,19 @@ reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0
serde = "1.0.104" serde = "1.0.104"
serde_bytes = "0.11.3" serde_bytes = "0.11.3"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-genesis-programs = { path = "../genesis-programs", version = "0.23.1" } solana-genesis-programs = { path = "../genesis-programs", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-measure = { path = "../measure", version = "0.23.1" } solana-measure = { path = "../measure", version = "0.23.2" }
solana-merkle-tree = { path = "../merkle-tree", version = "0.23.1" } solana-merkle-tree = { path = "../merkle-tree", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
ed25519-dalek = "1.0.0-pre.1" ed25519-dalek = "1.0.0-pre.1"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.1" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
sys-info = "0.5.8" sys-info = "0.5.8"
symlink = "0.1.0" symlink = "0.1.0"
tar = "0.4.26" tar = "0.4.26"
@@ -59,7 +59,7 @@ features = ["lz4"]
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
matches = "0.1.6" matches = "0.1.6"
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-local-cluster" name = "solana-local-cluster"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -12,24 +12,24 @@ homepage = "https://solana.com/"
itertools = "0.8.1" itertools = "0.8.1"
log = "0.4.8" log = "0.4.8"
rand = "0.6.5" rand = "0.6.5"
solana-archiver-lib = { path = "../archiver-lib", version = "0.23.1" } solana-archiver-lib = { path = "../archiver-lib", version = "0.23.2" }
solana-config-program = { path = "../programs/config", version = "0.23.1" } solana-config-program = { path = "../programs/config", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
solana-exchange-program = { path = "../programs/exchange", version = "0.23.1" } solana-exchange-program = { path = "../programs/exchange", version = "0.23.2" }
solana-genesis-programs = { path = "../genesis-programs", version = "0.23.1" } solana-genesis-programs = { path = "../genesis-programs", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vest-program = { path = "../programs/vest", version = "0.23.1" } solana-vest-program = { path = "../programs/vest", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
symlink = "0.1.0" symlink = "0.1.0"
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.1" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-log-analyzer" name = "solana-log-analyzer"
description = "The solana cluster network analysis tool" description = "The solana cluster network analysis tool"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -17,8 +17,8 @@ semver = "0.9.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
[[bin]] [[bin]]
name = "solana-log-analyzer" name = "solana-log-analyzer"

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-merkle-tree" name = "solana-merkle-tree"
version = "0.23.1" version = "0.23.2"
description = "Solana Merkle Tree" description = "Solana Merkle Tree"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -9,7 +9,7 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-metrics" name = "solana-metrics"
version = "0.23.1" version = "0.23.2"
description = "Solana Metrics" description = "Solana Metrics"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,7 +13,7 @@ env_logger = "0.7.1"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.8" log = "0.4.8"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
sys-info = "0.5.8" sys-info = "0.5.8"
[dev-dependencies] [dev-dependencies]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-net-shaper" name = "solana-net-shaper"
description = "The solana cluster network shaping tool" description = "The solana cluster network shaping tool"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,8 +16,8 @@ semver = "0.9.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
rand = "0.6.5" rand = "0.6.5"
[[bin]] [[bin]]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-net-utils" name = "solana-net-utils"
version = "0.23.1" version = "0.23.2"
description = "Solana Network Utilities" description = "Solana Network Utilities"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,8 +18,8 @@ rand = "0.6.1"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
socket2 = "0.3.11" socket2 = "0.3.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
tokio = "0.1" tokio = "0.1"
tokio-codec = "0.1" tokio-codec = "0.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-perf" name = "solana-perf"
version = "0.23.1" version = "0.23.2"
description = "Solana Performance APIs" description = "Solana Performance APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,11 +18,11 @@ serde_derive = "1.0.103"
dlopen_derive = "0.1.4" dlopen_derive = "0.1.4"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.8" log = "0.4.8"
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.1" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.2" }
solana-budget-program = { path = "../programs/budget", version = "0.23.1" } solana-budget-program = { path = "../programs/budget", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
[lib] [lib]
name = "solana_perf" name = "solana_perf"

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-bpf-programs" name = "solana-bpf-programs"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "README.md" readme = "README.md"
@@ -22,10 +22,10 @@ walkdir = "2"
bincode = "1.1.4" bincode = "1.1.4"
byteorder = "1.3.2" byteorder = "1.3.2"
elf = "0.0.10" elf = "0.0.10"
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.23.1" } solana-bpf-loader-program = { path = "../bpf_loader", version = "0.23.2" }
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-runtime = { path = "../../runtime", version = "0.23.1" } solana-runtime = { path = "../../runtime", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
solana_rbpf = "=0.1.19" solana_rbpf = "=0.1.19"
[[bench]] [[bench]]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-128bit" name = "solana-bpf-rust-128bit"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.23.1" } solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.23.2" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-128bit-dep" name = "solana-bpf-rust-128bit-dep"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-alloc" name = "solana-bpf-rust-alloc"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-dep-crate" name = "solana-bpf-rust-dep-crate"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,10 +13,10 @@ edition = "2018"
[dependencies] [dependencies]
byteorder = { version = "1", default-features = false } byteorder = { version = "1", default-features = false }
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-dup-accounts" name = "solana-bpf-rust-dup-accounts"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-external-spend" name = "solana-bpf-rust-external-spend"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-iter" name = "solana-bpf-rust-iter"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-many-args" name = "solana-bpf-rust-many-args"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.23.1" } solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.23.2" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-many-args-dep" name = "solana-bpf-rust-many-args-dep"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-noop" name = "solana-bpf-rust-noop"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-panic" name = "solana-bpf-rust-panic"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-param-passing" name = "solana-bpf-rust-param-passing"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.23.1" } solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.23.2" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-param-passing-dep" name = "solana-bpf-rust-param-passing-dep"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF program written in Rust" description = "Solana BPF program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-sysval" name = "solana-bpf-rust-sysval"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "0.23.1", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "0.23.2", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.1" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.23.2" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-bpf-loader-program" name = "solana-bpf-loader-program"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF loader" description = "Solana BPF loader"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,8 +14,8 @@ byteorder = "1.3.2"
libc = "0.2.66" libc = "0.2.66"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
solana_rbpf = "=0.1.19" solana_rbpf = "=0.1.19"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-btc-spv-program" name = "solana-btc-spv-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Bitcoin spv parsing program" description = "Solana Bitcoin spv parsing program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,7 +16,7 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "0.23.1"} solana-sdk = { path = "../../sdk", version = "0.23.2"}
hex = "0.3.2" hex = "0.3.2"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "btc_spv_bin" name = "btc_spv_bin"
version = "0.23.1" version = "0.23.2"
description = "Solana Bitcoin spv parsing program" description = "Solana Bitcoin spv parsing program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-config-program" name = "solana-config-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Config program" description = "Solana Config program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,8 +14,8 @@ chrono = { version = "0.4.10", features = ["serde"] }
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-exchange-program" name = "solana-exchange-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Exchange program" description = "Solana Exchange program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,12 +13,12 @@ bincode = "1.2.1"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-metrics = { path = "../../metrics", version = "0.23.1" } solana-metrics = { path = "../../metrics", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.23.1" } solana-runtime = { path = "../../runtime", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-librapay" name = "solana-librapay"
version = "0.23.1" version = "0.23.2"
description = "Solana Libra Payment" description = "Solana Libra Payment"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,10 +11,10 @@ edition = "2018"
[dependencies] [dependencies]
bincode = "1.2.0" bincode = "1.2.0"
log = "0.4.8" log = "0.4.8"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-move-loader-program = { path = "../move_loader", version = "0.23.1" } solana-move-loader-program = { path = "../move_loader", version = "0.23.2" }
solana-runtime = { path = "../../runtime", version = "0.23.1" } solana-runtime = { path = "../../runtime", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
language_e2e_tests = { version = "0.0.1-sol4", package = "solana_libra_language_e2e_tests" } language_e2e_tests = { version = "0.0.1-sol4", package = "solana_libra_language_e2e_tests" }
types = { version = "0.0.1-sol4", package = "solana_libra_types" } types = { version = "0.0.1-sol4", package = "solana_libra_types" }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-move-loader-program" name = "solana-move-loader-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Move loader" description = "Solana Move loader"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,8 +18,8 @@ serde = "1.0.102"
serde_bytes = "0.11" serde_bytes = "0.11"
serde_derive = "1.0.102" serde_derive = "1.0.102"
serde_json = "1.0.41" serde_json = "1.0.41"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" } bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" }
canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" } canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" }

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-stake-program" name = "solana-stake-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Stake program" description = "Solana Stake program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,11 +16,11 @@ num-traits = "0.2"
rand = "0.6.5" rand = "0.6.5"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-metrics = { path = "../../metrics", version = "0.23.1" } solana-metrics = { path = "../../metrics", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
solana-vote-program = { path = "../vote", version = "0.23.1" } solana-vote-program = { path = "../vote", version = "0.23.2" }
solana-config-program = { path = "../config", version = "0.23.1" } solana-config-program = { path = "../config", version = "0.23.2" }
thiserror = "1.0" thiserror = "1.0"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-storage-program" name = "solana-storage-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Storage program" description = "Solana Storage program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,8 +16,8 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-vest-program" name = "solana-vest-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Vest program" description = "Solana Vest program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,12 +16,12 @@ num-derive = "0.2"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
solana-config-program = { path = "../config", version = "0.23.1" } solana-config-program = { path = "../config", version = "0.23.2" }
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.23.1" } solana-runtime = { path = "../../runtime", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-vote-program" name = "solana-vote-program"
version = "0.23.1" version = "0.23.2"
description = "Solana Vote program" description = "Solana Vote program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,9 +15,9 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.23.1" } solana-logger = { path = "../../logger", version = "0.23.2" }
solana-metrics = { path = "../../metrics", version = "0.23.1" } solana-metrics = { path = "../../metrics", version = "0.23.2" }
solana-sdk = { path = "../../sdk", version = "0.23.1" } solana-sdk = { path = "../../sdk", version = "0.23.2" }
thiserror = "1.0" thiserror = "1.0"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-rayon-threadlimit" name = "solana-rayon-threadlimit"
version = "0.23.1" version = "0.23.2"
description = "solana-rayon-threadlimit" description = "solana-rayon-threadlimit"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-runtime" name = "solana-runtime"
version = "0.23.1" version = "0.23.2"
description = "Solana runtime" description = "Solana runtime"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -23,17 +23,17 @@ rayon = "1.2.0"
serde = { version = "1.0.104", features = ["rc"] } serde = { version = "1.0.104", features = ["rc"] }
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-measure = { path = "../measure", version = "0.23.1" } solana-measure = { path = "../measure", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.23.1" } solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-stake-program = { path = "../programs/stake", version = "0.23.1" } solana-stake-program = { path = "../programs/stake", version = "0.23.2" }
solana-storage-program = { path = "../programs/storage", version = "0.23.1" } solana-storage-program = { path = "../programs/storage", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
sys-info = "0.5.8" sys-info = "0.5.8"
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.1" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.23.2" }
itertools = "0.8.2" itertools = "0.8.2"
[lib] [lib]
@@ -42,4 +42,4 @@ name = "solana_runtime"
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
solana-noop-program = { path = "../programs/noop", version = "0.23.1" } solana-noop-program = { path = "../programs/noop", version = "0.23.2" }

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-c" name = "solana-sdk-c"
version = "0.23.1" version = "0.23.2"
description = "Solana SDK C" description = "Solana SDK C"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,7 +18,7 @@ bs58 = "0.3.0"
libc = "0.2.66" libc = "0.2.66"
rand_chacha = "0.1.1" rand_chacha = "0.1.1"
rand_core = { version = ">=0.2, <0.4", default-features = false } rand_core = { version = ">=0.2, <0.4", default-features = false }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
ed25519-dalek = "1.0.0-pre.1" ed25519-dalek = "1.0.0-pre.1"
sha2 = "0.8.1" sha2 = "0.8.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk" name = "solana-sdk"
version = "0.23.1" version = "0.23.2"
description = "Solana SDK" description = "Solana SDK"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -48,9 +48,9 @@ serde_json = { version = "1.0.44", optional = true }
sha2 = "0.8.1" sha2 = "0.8.1"
thiserror = "1.0" thiserror = "1.0"
ed25519-dalek = { version = "=1.0.0-pre.1", optional = true } ed25519-dalek = { version = "=1.0.0-pre.1", optional = true }
solana-crate-features = { path = "../crate-features", version = "0.23.1", optional = true } solana-crate-features = { path = "../crate-features", version = "0.23.2", optional = true }
solana-logger = { path = "../logger", version = "0.23.1", optional = true } solana-logger = { path = "../logger", version = "0.23.2", optional = true }
solana-sdk-macro = { path = "macro", version = "0.23.1" } solana-sdk-macro = { path = "macro", version = "0.23.2" }
[dev-dependencies] [dev-dependencies]
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-bpf-test" name = "solana-sdk-bpf-test"
version = "0.23.1" version = "0.23.2"
description = "Solana BPF SDK test utilities" description = "Solana BPF SDK test utilities"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "0.23.1" version = "0.23.2"
description = "Solana SDK Macro" description = "Solana SDK Macro"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-sys-tuner" name = "solana-sys-tuner"
description = "The solana cluster system tuner daemon" description = "The solana cluster system tuner daemon"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,8 +14,8 @@ clap = "2.33.0"
log = "0.4.8" log = "0.4.8"
libc = "0.2.66" libc = "0.2.66"
semver = "0.9.0" semver = "0.9.0"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
[target."cfg(unix)".dependencies] [target."cfg(unix)".dependencies]
unix_socket2 = "0.5.4" unix_socket2 = "0.5.4"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-upload-perf" name = "solana-upload-perf"
version = "0.23.1" version = "0.23.2"
description = "Metrics Upload Utility" description = "Metrics Upload Utility"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ publish = false
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
[[bin]] [[bin]]
name = "solana-upload-perf" name = "solana-upload-perf"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-validator" name = "solana-validator"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -18,19 +18,19 @@ indicatif = "0.13.0"
rand = "0.6.5" rand = "0.6.5"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking"] }
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-core = { path = "../core", version = "0.23.1" } solana-core = { path = "../core", version = "0.23.2" }
solana-faucet = { path = "../faucet", version = "0.23.1" } solana-faucet = { path = "../faucet", version = "0.23.2" }
solana-ledger = { path = "../ledger", version = "0.23.1" } solana-ledger = { path = "../ledger", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-perf = { path = "../perf", version = "0.23.1" } solana-perf = { path = "../perf", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-net-utils = { path = "../net-utils", version = "0.23.1" } solana-net-utils = { path = "../net-utils", version = "0.23.2" }
solana-runtime = { path = "../runtime", version = "0.23.1" } solana-runtime = { path = "../runtime", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
solana-vote-program = { path = "../programs/vote", version = "0.23.1" } solana-vote-program = { path = "../programs/vote", version = "0.23.2" }
solana-vote-signer = { path = "../vote-signer", version = "0.23.1" } solana-vote-signer = { path = "../vote-signer", version = "0.23.2" }
tar = "0.4.26" tar = "0.4.26"
tempfile = "3.1.0" tempfile = "3.1.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-vote-signer" name = "solana-vote-signer"
description = "Solana Vote Signing Service" description = "Solana Vote Signing Service"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -17,9 +17,9 @@ jsonrpc-http-server = "14.0.5"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-watchtower" name = "solana-watchtower"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.23.1" version = "0.23.2"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -13,11 +13,11 @@ clap = "2.33.0"
log = "0.4.8" log = "0.4.8"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] }
serde_json = "1.0" serde_json = "1.0"
solana-clap-utils = { path = "../clap-utils", version = "0.23.1" } solana-clap-utils = { path = "../clap-utils", version = "0.23.2" }
solana-client = { path = "../client", version = "0.23.1" } solana-client = { path = "../client", version = "0.23.2" }
solana-logger = { path = "../logger", version = "0.23.1" } solana-logger = { path = "../logger", version = "0.23.2" }
solana-metrics = { path = "../metrics", version = "0.23.1" } solana-metrics = { path = "../metrics", version = "0.23.2" }
solana-sdk = { path = "../sdk", version = "0.23.1" } solana-sdk = { path = "../sdk", version = "0.23.2" }
[[bin]] [[bin]]
name = "solana-watchtower" name = "solana-watchtower"