Compare commits

...

3491 Commits

Author SHA1 Message Date
333685dcfe Remove lock files from programs/bpf/rust (#14150) 2020-12-16 02:14:16 -08:00
119815f2da Ignore RUSTSEC-2020-0077 until next 1.4 release 2020-12-11 20:44:34 -07:00
8c3a8a1e0f Override yanked arc-swap crate to 0.4.8 2020-12-11 20:44:34 -07:00
f20371d0a7 Override yanked miow crate to 0.2.2 2020-12-11 20:44:34 -07:00
2b7ef2cf18 Override yanked net2 0.2.37 2020-12-11 20:44:34 -07:00
717b36bddd Override yanked mio crate to 0.7.6 2020-12-11 20:44:34 -07:00
ec9f9bd5d8 Switch to memmap2 fork 2020-12-11 20:44:34 -07:00
a645b9481d Bump socket2 crate to 0.3.17 2020-12-11 20:44:34 -07:00
6812828ba8 adds the instance token to crds-labels for node-instance crds-values (bp #14037) (#14039)
* adds the instance token to crds-labels for node-instance crds-values (#14037)

If a node "a" receives instance-info from node "b1" it will override any
instance-info associated with "b1" pubkey in its crds table. This makes
it less likely that when "b1" receives crds values from "a" (either
through pull or push), it sees other instances of itself (because node
"a" discarded them when it received "b1" instance info).

In order for the crds table to contain all instance-info associated with
the same pubkey at the same time, we need to add the instance tokens to
the keys in the crds table (i.e. the CrdsValueLabel).

(cherry picked from commit 409fe3bca1)

# Conflicts:
#	core/src/cluster_info.rs
#	core/src/crds_value.rs

* removes backport merge conflicts

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-12-10 18:25:52 +00:00
fa70b0f2ff checks for duplicate validator instances using gossip (bp #14018) (#14027)
* checks for duplicate validator instances using gossip

(cherry picked from commit 8cd5eb9863)

# Conflicts:
#	core/src/cluster_info.rs
#	core/src/crds_value.rs
#	core/src/result.rs

* pushes node-instance along with version early in gossip

(cherry picked from commit 542198180a)

# Conflicts:
#	core/src/cluster_info.rs

* removes RwLock on ClusterInfo.instance

(cherry picked from commit 895d7d6a65)

# Conflicts:
#	core/src/cluster_info.rs

* std::process::exit to kill all threads

(cherry picked from commit 1d267eae6b)

* removes backport merge conflicts

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-12-09 20:26:14 +00:00
ffbe558a2a Increase snapshot file size limits (#14024) (#14025)
* Increase snapshot file size limits

* Fix test

* Reorder code a bit

(cherry picked from commit 14e241be35)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-12-09 18:59:52 +00:00
8d915aa5b0 v1.3: rpc getConfirmedBlock backports (#13993)
* Check SlotNotRooted if confirmed block not found in blockstore or bigtable (#13776)

* Separate blockstore checks for not (yet) rooted and cleaned up (#13814)

* Add logging in check_blockstore_max_root (#13887)
2020-12-07 18:11:44 +00:00
eb0f51e487 Don't show confusing message for blacklist expires (#13983) (#13985)
(cherry picked from commit 2f374df494)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-12-07 14:41:41 +00:00
b410c57f66 Report highest_confirmed_root and _slot in commitment metric (#13964) (#13967)
(cherry picked from commit ca35bb3ac8)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-12-05 02:22:30 +00:00
fe0297983f Translate data length and owner as writable (bp #13914) (#13917)
* Translate data length and owner as writable (#13914)

(cherry picked from commit 85bec37be4)

# Conflicts:
#	programs/bpf/Cargo.toml
#	programs/bpf/build.rs
#	programs/bpf_loader/src/syscalls.rs

* Resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-12-02 19:24:01 +00:00
f1265b544c Check that the program was granted access to program_id (bp #13890) (#13892)
* Check that the program was granted access to program_id (#13890)

(cherry picked from commit 733fcbaa6c)

# Conflicts:
#	programs/bpf/tests/programs.rs

* Resolve conflicts

* nudge

* nudge

Co-authored-by: Jack May <jack@solana.com>
2020-12-01 18:42:34 +00:00
3318772bfe Bump to rbpf v0.1.34 (bp #13874) (#13878)
* Bump to rbpf v0.1.34 (#13874)

(cherry picked from commit 7890957250)

# Conflicts:
#	Cargo.lock
#	cli/Cargo.toml
#	programs/bpf/Cargo.toml
#	programs/bpf_loader/Cargo.toml

* Resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-12-01 08:14:21 +00:00
141d6d1fc9 Strengthen EpochSlots sanitization (#13872)
(cherry picked from commit 90d557d916)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-11-30 23:52:29 +00:00
0cd6838c23 Bump version to v1.3.24 (#13851) 2020-11-29 18:11:35 +00:00
ab235b8160 Add extra checks to verify_and_update (bp #13848) (#13849)
* Add extra checks to verify_and_update (#13848)

* Add extra checks to verify_and_update

* nudge

(cherry picked from commit ce4304cc9a)

# Conflicts:
#	runtime/src/message_processor.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-11-29 11:27:30 +00:00
51e8872804 Fix avx check with newest nightly compiler (#13465) (#13809)
(cherry picked from commit c644b05c54)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-11-25 10:50:36 +00:00
5dbec42394 Bump version to 1.3.23 2020-11-25 03:02:13 -07:00
c48298128d Remove spl-token-cli from 1.3.22 build 2020-11-25 01:18:50 -07:00
db3f154b3f Fix nonces (#13800)
Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-24 23:54:02 -08:00
b0e5da40a9 Add stake calculation tests with inflation/slashing (#13605) (#13797)
* Add stake calculation tests with inflation/slashing

* Clean up the test

(cherry picked from commit 42421e77a9)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-25 04:59:20 +00:00
0c2433d796 Cap split stake at source stake when splitting entire balance (#13754) (#13765)
(cherry picked from commit f0f99ffc7e)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-23 18:23:58 +00:00
de03a5092d ledger-tool cap: output credits_observed (#13746) (#13747)
(cherry picked from commit 3bc7d85986)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-21 17:31:03 +00:00
fd39a09eae stake: Don't pay out rewards for epochs where inflation was not enabled (#13744)
(cherry picked from commit 13aa38d307)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-21 05:28:08 +00:00
0ad7b64961 sanitizes bloom filters to avoid division by zero (#13714) (#13717)
Pull requests received over the wire can cause a validator to panic
because of division by zero in bloom filters:
https://github.com/solana-labs/solana/blob/af08ba93e/runtime/src/bloom.rs#L86-L88

(cherry picked from commit a8c29505f0)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-11-20 00:53:23 +00:00
c9d6fde7cf Allow GNUSparse for genesis.bin (#13704) (#13706)
(cherry picked from commit 397cf726fc)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-19 21:47:13 +00:00
4462eabd8c Check for overflow in rent partition calculation (#13569) (#13695)
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 110acd20dc)

Co-authored-by: carllin <wumu727@gmail.com>
2020-11-19 13:28:16 +00:00
e675ef85ce RPC: Demote missing block error to warning (#13684)
It frightens the tourists

(cherry picked from commit f2a1a0ac5c)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-19 06:57:08 +00:00
1f693c5925 audit: Ignore RUSTSEC-2020-0071, potential SEGV in time 2020-11-18 22:30:28 -07:00
fc20597cbc Update Initialized split rent-exempt value (#13646) (#13652)
(cherry picked from commit 39932d7664)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-17 20:34:07 +00:00
0aab403cbc Remove overflow opportunities (#13649) (#13650)
(cherry picked from commit a7bed62af0)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-17 20:15:43 +00:00
b0523dc236 Fix assertion failure (#13626) (#13630)
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit afc1b59475)

Co-authored-by: carllin <wumu727@gmail.com>
2020-11-17 09:33:02 +00:00
02d36d0be0 Quiet notification logs when no subscriptions (#13629) (#13636)
(cherry picked from commit 3e4acba72f)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-17 08:22:12 +00:00
b1e8e8a966 Improve TestValidator instantiation (bp #13627) (#13634)
* Improve TestValidator instantiation (#13627)

* Add TestValidator::new_with_fees constructor, and warning for low bootstrap_validator_lamports

* Add logging to solana-tokens integration test to help catch low bootstrap_validator_lamports in the future

* Reasonable TestValidator mint_lamports

(cherry picked from commit ef99689592)

# Conflicts:
#	tokens/Cargo.toml
#	tokens/tests/commands.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-17 01:08:36 -07:00
e12cb457fb Reject faked stake/vote accounts in stake mgmt. (bp #13615) (#13620)
* Reject faked stake/vote accounts in stake mgmt. (#13615)

* Reject faked stake/vote accounts in stake mgmt.

* Use clearer name

(cherry picked from commit 2b3faa1947)

# Conflicts:
#	programs/stake/src/stake_instruction.rs

* Fix conflict

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-16 22:05:31 +00:00
29ac8f5164 ledger-tool cap: delegation owner and stake v2 flag (bp #13602) (#13606)
* ledger-tool cap: delegation owner and stake v2 flag (#13602)

* Output delegation owner as well

* Add --enable-stake-program-v2

* Small cleanup and add sanity assertion

* Fix typo...

(cherry picked from commit bcd303a447)

* Fix compilation error

* rustfmt

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-16 01:33:04 +00:00
c6818f8faf Disable the PubSub vote subscription by default (#13599)
The --rpc-pubsub-enable-vote-subscription flag may be used to enable it.
The current vote subscription is problematic because it emits a
notification for *every* vote, so hundreds a second in a real cluster.
Critically it's also missing information about *who* is voting,
rendering all those notifications practically useless.

Until these two issues can be resolved, the vote subscription is not
much more than a potential DoS vector.

(cherry picked from commit 5d72e52ad0)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-11-14 21:51:15 +00:00
965e6dfc9a Add counter metrics to rpc-subscriptions (#13596) (#13597)
(cherry picked from commit 88ae321d3f)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-14 20:53:38 +00:00
41eab22117 Send pubsub metrics to metrics server (#13584) (#13585)
(cherry picked from commit 34bf80ba9c)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-13 20:44:59 +00:00
ea2daf0cfa Bump version to 1.3.22 2020-11-13 18:03:30 +00:00
5a61827702 Fix overflow in entry tick verification (bp #13572) (#13580)
* Fix overflow in entry hash count verification

(cherry picked from commit d611337394)

* clippy

(cherry picked from commit 01a4889b53)

Co-authored-by: Justin Starry <justin@solana.com>
2020-11-13 16:33:03 +00:00
a997c723b5 Small cleaning update_epoch_stakes (#13576) (#13577)
(cherry picked from commit c97a7d1105)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-13 12:28:51 +00:00
8b026ba829 ip-echo-server: Don't use framed decoder, it can't be read-limited (#13570)
(cherry picked from commit 6dc735e996)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-13 09:16:06 +00:00
05f2b64a6a --gossip-host may now be specified with --entrypoint (#13566)
(cherry picked from commit 328f59ebef)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-11-13 07:32:16 +00:00
e341a0b0f2 fix bpf lddw check (#13554) (#13557)
(cherry picked from commit 30ef53cb13)

Co-authored-by: Jack May <jack@solana.com>
2020-11-12 22:25:33 +00:00
51a48ae507 Bound ip-echo-server reply read (bp #13543) (#13545)
* ip-echo-server: Name the header length magic number

(cherry picked from commit aab5f24518)

* ip-echo-server: Add helper to compute reply length

(cherry picked from commit 7481ba5618)

* ip-echo-server: Limit socket read to expected reply length

(cherry picked from commit d2cfeb31b9)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-12 07:03:28 +00:00
b34895db37 Fix slow/stuck unstaking due to toggling in epoch (bp #13501) (#13534)
* Fix slow/stuck unstaking due to toggling in epoch (#13501)

* Fix slow/stuck unstaking due to toggling in epoch

* nits

* nits

* Add stake_program_v2 feature status check to cli

Co-authored-by: Tyera Eulberg <tyera@solana.com>
(cherry picked from commit 89b474e192)

* Fix conflict

* PartialEq<Vec<T>> is not impl for &[T] on rust v1.45.1

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-12 01:20:52 +00:00
3e6398caec Validator: Periodically log what we're waiting for during --wait-for-supermajority (#13530)
(cherry picked from commit 38f15e41b5)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-11 21:18:00 +00:00
b9555116ec Increment version to v1.3.21 (#13528) 2020-11-11 19:30:46 +00:00
81a4769de7 Fix parsing CreateAccountWithSeed instructions (#13513) (#13516)
* Reduce required num_system_accounts and handle 2-account instructions properly

* Update CreateAccountWithSeed account docs to be correct

* Add CreateAccountWithSeed test

(cherry picked from commit 91f4e99b4c)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-11 01:01:38 +00:00
9ee741e021 watchtower: Fix all clear duration message (#13509)
(cherry picked from commit 2a96e722b4)

Co-authored-by: Justin Starry <justin@solana.com>
2020-11-10 19:01:13 +00:00
74c228a9d4 Bump SPL Token version fetched for localnet (bp #13490) (#13505)
* Bump token version fetched for localnet (#13490)

(cherry picked from commit 3282334741)

# Conflicts:
#	fetch-spl.sh

* Fix conflict, ie bump loader to be consistent with devnet/mainnet-beta

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-10 18:03:53 +00:00
320140fe8e Fix signature access (#13491) (#13502)
(cherry picked from commit 70c4626efe)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-11-10 18:03:10 +00:00
dfcd0c41ec Make testnet section less ambiguous (#13504) (#13507)
(cherry picked from commit 599dae8f09)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-10 17:12:52 +00:00
d217ea2afc Clean up Delegation::stake_activating_and_deactivating (#13471) (#13472)
(cherry picked from commit 5306eb93cc)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-09 09:52:34 +00:00
553209f64c Clean up Delegation::stake_and_activating (#13460) (#13468)
(cherry picked from commit 737d3e376d)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-08 09:31:14 +00:00
4fcf19e414 Output more inflation calc details in ledger-tool (bp #13345) (#13466)
* Output more inflation calc details in ledger-tool (#13345)

* Output more inflation calc details in ledger-tool

* Fix broken ci...

* Rename confusing variables

* Fix panic by wrapping PointValue with Opiton...

* Minor modifications

* Remove explict needless flush; Drop already does

* Yet another csv field adjustments

* Add data_size and rename epochs to earned_epochs

* Introduce null_tracer

* Unwrap Option in new_from_parent_with_tracer

* Don't shorten identifiers

* Allow irrefutable_let_patterns temporalily

* More null_tracer

* More field adjustments

(cherry picked from commit a81e7e7749)

# Conflicts:
#	runtime/src/bank.rs

* Fix conflict

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-08 09:03:09 +00:00
e57e632870 Add builtin mem tests (bp #13429) (#13436)
* Add builtin mem tests (#13429)


(cherry picked from commit 84b139cc94)

* resolve crate version

* port to v1.3 conventions

* nudge

Co-authored-by: Jack May <jack@solana.com>
2020-11-07 01:23:14 +00:00
20678cf5ef Fix stake split rent-exempt adjustment (#13357) (#13452)
* Add failing tests

* Fix stake split

* Calculate split rent-exempt-reserve and use

* Add comment in rent.rs

* Add tests for edge cases when splitting to larger accounts, and reject overflow splits

* Reframe InsufficientFunds checks in terms of lamports var

* Test hardening review comments

(cherry picked from commit 4c5f345798)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-11-06 21:55:08 +00:00
0a05bbca2f Fix stake redelegate (bp #13358) (#13449)
* stake: Add redelegation failing test

(cherry picked from commit 491ad59d2e)

* stake: Consider withdraws we redelegating

(cherry picked from commit fe1e08b9ad)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-06 20:27:06 +00:00
ab7dff16a2 Feature-gate stake program (bp #13394) (#13438)
* Feature-gate stake program (#13394)

* Add legacy stake-program handling

* Strip out duplicative legacy code

* Add feature for stake-program-fix

* Feature-deploy new stake program

* Expand comment

(cherry picked from commit 1b1d9f6b0c)

# Conflicts:
#	runtime/src/builtins.rs
#	runtime/src/feature_set.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-06 14:00:37 +00:00
5e16e80993 CI: Check monorepo for consistent crate versions (bp #13431) (#13432)
* increment-cargo-version.sh: Add check subcommand

(cherry picked from commit 5d4015358a)

* CI: Check monorepo for consistent crate versions

(cherry picked from commit 7a4e293b3b)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-11-06 02:27:51 +00:00
a388b5a356 docs: Clarify the commitment levels based on questions (#13387) (#13425)
* Clarify the commitment levels based on questions

Many people have asked about what commitment levels mean, and which to
choose.  This update includes some of the language at
`sdk/src/commitment_config.rs` and a recommendation for different use
cases.

Additionally, the preflight commitment documentation was out of date,
specifying that "max" was always used, and this is no longer the case.

* Update docs/src/developing/clients/jsonrpc-api.md

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Update docs/src/developing/clients/jsonrpc-api.md

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Update docs/src/developing/clients/jsonrpc-api.md

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Fix typo

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
(cherry picked from commit ede891a6c6)

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2020-11-05 19:38:59 +00:00
ef776c0a0e Allow feature builtins to overwrite existing builtins (bp #13403) (#13419)
* Allow feature builtins to overwrite existing builtins (#13403)

* Allow feature builtins to overwrite existing builtins

* Add feature_builtin ActivationType

* Correctly retain idempotent for replacing case

* Fix test

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
(cherry picked from commit bc62313c66)

# Conflicts:
#	ledger/src/builtins.rs
#	runtime/src/bank.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-05 17:53:03 +00:00
a899d75d2d Fix duplicate records of inner instructions (#13380) (#13412)
* Fix duplicate records of inner instructions

* fix tests

* fix clippy

* Remove bad_inner_instructions

(cherry picked from commit c24fbb6f8b)

Co-authored-by: Justin Starry <justin@solana.com>
2020-11-05 08:44:16 +00:00
27733bb4d7 Bump low end validator RAM requirement (#13406) 2020-11-05 15:24:26 +08:00
0b9c87b6ec Docs: Clarify validator disk requirements 2020-11-05 15:24:26 +08:00
df1e62f23f Update docs to latest processors (#11613) 2020-11-05 15:24:26 +08:00
f697a86d1e Comment Stakes::clone_with_epoch (#13388) (#13389)
(cherry picked from commit b0d1ae1d8b)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-04 13:49:48 +00:00
64c76c2f4b Revert "check sysvar id for AccountInfo (#13175) (#13351)"
This reverts commit 290d514051.
2020-11-02 12:14:33 -08:00
290d514051 check sysvar id for AccountInfo (#13175) (#13351)
(cherry picked from commit 322c667655)

# Conflicts:
#	sdk/program/src/sysvar/mod.rs

Co-authored-by: Jack May <jack@solana.com>
2020-11-02 18:18:07 +00:00
958c43f337 Small code cleanup and typo fixes (#13325) (#13340)
* Small code cleanup and typo fixes

* Clean up calculate_points_and_credits

(cherry picked from commit 0e4509c497)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-02 02:38:43 +00:00
4513128c75 check sysvar id for AccountInfo (#13175) 2020-11-01 06:58:02 +00:00
d01968ed21 cargo update -p futures-task / cargo update -p futures-util 2020-10-31 19:00:22 +00:00
f9ac24d1f2 Switch to dirs-next 2020-10-31 19:00:22 +00:00
fe5a09b50a Ignore stdweb 2020-10-31 19:00:22 +00:00
f59c70a836 Print the entry type as well when checking archive (#13312) (#13313)
(cherry picked from commit bc7133d752)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-30 17:46:02 +00:00
74bfb00959 Update AccountInfo comments (#13302)
(cherry picked from commit 72d41e5801)
2020-10-30 08:09:42 -07:00
4296bfc728 clarify comment (#13289) (#13291)
(cherry picked from commit b5c8b86e7c)

Co-authored-by: Jack May <jack@solana.com>
2020-10-29 22:28:09 +00:00
ccec111178 more portable install.sh (bp #13114) (#13219)
* more portable install.sh (#13114)

(cherry picked from commit 4e0d1b1d4a)

# Conflicts:
#	sdk/bpf/scripts/install.sh

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-29 21:10:14 +00:00
3a8c6f33a3 adds more parallel processing to gossip packets handling (#12988) (#13287)
(cherry picked from commit 3738611f5c)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 18:05:52 +00:00
06067dd823 implements ping-pong packets between nodes (bp #12794) (#13281)
* implements ping-pong packets between nodes (#12794)

https://hackerone.com/reports/991106

> It’s possible to use UDP gossip protocol to amplify DDoS attacks. An attacker
> can spoof IP address in UDP packet when sending PullRequest to the node.
> There's no any validation if provided source IP address is not spoofed and
> the node can send much larger PullResponse to victim's IP. As I checked,
> PullRequest is about 290 bytes, while PullResponse is about 10 kB. It means
> that amplification is about 34x. This way an attacker can easily perform DDoS
> attack both on Solana node and third-party server.
>
> To prevent it, need for example to implement ping-pong mechanism similar as
> in Ethereum: Before accepting requests from remote client needs to validate
> his IP. Local node sends Ping packet to the remote node and it needs to reply
> with Pong packet that contains hash of matching Ping packet. Content of Ping
> packet is unpredictable. If hash from Pong packet matches, local node can
> remember IP where Ping packet was sent as correct and allow further
> communication.
>
> More info:
> https://github.com/ethereum/devp2p/blob/master/discv4.md#endpoint-proof
> https://github.com/ethereum/devp2p/blob/master/discv4.md#wire-protocol

The commit adds a PingCache, which maintains records of remote nodes
which have returned a valid response to a ping message, and on-the-fly
ping messages pending a pong response from the remote node.

When handling pull-requests, those from addresses which have not passed
the ping-pong check are filtered out, and additionally ping packets are
added for addresses which need to be (re)verified.

(cherry picked from commit ae91270961)

# Conflicts:
#	Cargo.lock
#	core/src/cluster_info.rs

* resolves mergify merge conflicts

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 16:33:29 +00:00
9f58a0383c Disable eager rent collection for less noise (#13275) (#13279)
(cherry picked from commit 363c148dbe)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-29 15:38:56 +00:00
428cacff88 scans crds table in parallel for finding old labels (bp #13073) (#13277)
* scans crds table in parallel for finding old labels (#13073)

From runtime profiles, the majority time of ClusterInfo::handle_purge
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1605-L1626
is spent scanning crds table finding old labels:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/crds.rs#L175-L197

This can be done in parallel given that gossip thread-pool:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1637-L1641
is idle when handle_purge is invoked:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1681

(cherry picked from commit 37c8842bcb)

# Conflicts:
#	core/tests/crds_gossip.rs

* resolves mergify merge conflict

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 15:33:59 +00:00
6a4f89b193 excludes origin from prune set (#13204) (#13278)
On the receiving end, prune messages are ignored if the origin points to
the node itself:
https://github.com/solana-labs/solana/blob/631f029fe/core/src/crds_gossip_push.rs#L285-L295
So to avoid sending these over the wire, the requester can exclude
origin from the prune set.

(cherry picked from commit be80f6d5c5)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 15:22:47 +00:00
65ad72cd64 improves threads' utilization in processing gossip packets (#12962) (#13251)
ClusterInfo::process_packets handles incoming packets in a thread_pool:
https://github.com/solana-labs/solana/blob/87311cce7/core/src/cluster_info.rs#L2118-L2134

However, profiling runtime shows that threads are not well utilized and
a lot of the processing is done sequentially.

This commit redistributes the work done in parallel. Testing on a gce
cluster shows 20%+ improvement in processing gossip packets with much
smaller variations.

(cherry picked from commit 75d62ca095)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 13:59:12 +00:00
0ddf684376 marks pull request creation time only once per peer (#13113) (#13252)
mark_pull_request_creation time requires an exclusive lock on gossip:
https://github.com/solana-labs/solana/blob/16944e218/core/src/cluster_info.rs#L1547-L1548
Current code is redundantly marking each peer once for each request.
There are at most only 2 unique peers, whereas there are hundreds of
requests per each. So the lock is acquired hundreds of time longer than
necessary.

(cherry picked from commit 4bfda3e766)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 13:54:39 +00:00
1376c325b6 Improve final report of ledger-tool capitalization (#13232) (#13235)
(cherry picked from commit 4698ee5e4a)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-28 18:28:23 +00:00
e29a49f107 Use pico inflation for ledger-tool capitalization --enable-inflation (#13215) (#13221)
* Use pico inflation for ledger-tool capitalization --enable-inflation

* rust fmt

(cherry picked from commit 7d2962135d)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-28 20:54:56 +09:00
4e7c096177 Use zstd for create-snapshot (#13214) (#13217)
(cherry picked from commit 6d4c69b7c3)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-28 06:37:28 +00:00
b18fa8deac Fix log (#13207) (#13210)
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit f96ab5a818)

Co-authored-by: carllin <wumu727@gmail.com>
2020-10-28 03:11:21 +00:00
bba4f3006f Parse vote instructions (#13202) (#13208)
(cherry picked from commit c4962af9eb)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-28 01:53:13 +00:00
802a2cc985 passes through feature-set to gossip requests handling (#12878) (#13205)
* passes through feature-set to down to gossip requests handling
* takes the feature-set from root_bank instead of working_bank

(cherry picked from commit 48283161c3)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-27 23:46:12 +00:00
ad5ef9cc48 Account for forward delay in transaction simulation (#13199) (#13200)
(cherry picked from commit 631f029fe9)

Co-authored-by: Justin Starry <justin@solana.com>
2020-10-27 18:34:41 +00:00
cf1c7c8c00 macos portable rust-bpf (#13176) (#13186)
(cherry picked from commit fc83a666fc)

Co-authored-by: Jack May <jack@solana.com>
2020-10-27 04:45:41 +00:00
a28fb586b0 Add SSH key for buildkite-agent on achille (#13182)
(cherry picked from commit ff4b34202c)

# Conflicts:
#	net/scripts/solana-user-authorized_keys.sh

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-27 04:25:53 +00:00
5737ea448e CLI: Surface deploy transaction errors (#13169)
(cherry picked from commit a82971879f)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-26 22:26:02 +00:00
e54a537015 update call depth docs (#13155) (#13161)
(cherry picked from commit 35f77ccc73)

Co-authored-by: Jack May <jack@solana.com>
2020-10-26 19:45:02 +00:00
39eae50024 implements DataBudget using atomics (#12856) (#13157)
(cherry picked from commit 05cf15a382)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-26 18:27:45 +00:00
736e5c3ec7 Fix BigTable reward type encoding (bp #13142) (#13146)
* Fix reward type encoding

(cherry picked from commit 0a89bb4d3c)

* Don't reuse BPF target build artifacts

(cherry picked from commit 41a56e14fc)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-26 08:18:05 +00:00
f8e310d99d Hide noisy specialization warnings for frozen abi (#13141) (#13143)
(cherry picked from commit 5caf81dbf8)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-26 05:11:12 +00:00
fd7bcfdb4d add precompile verification to simulate_transaction (#13080) (#13125)
(cherry picked from commit 766406fd23)

Co-authored-by: Josh <josh.hundley@gmail.com>
2020-10-24 04:57:12 +00:00
e553c8bb45 Clean up opt conf verifier and vote state tracker (#13081) (#13123)
* Clean up opt conf verifier and vote state tracker

* Update test to follow new message and some knob

* Rename

(cherry picked from commit 0264147d42)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-24 02:39:33 +00:00
1c5f8f51ee Shorten magic install URL (#13121)
(cherry picked from commit b5170b993e)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-23 23:20:03 +00:00
5084871e27 Cli: deploy programs via TPU (#13090) (#13110)
* Deploy: send write transactions to leader tpu

* Less apparent stalling during confirmation

* Add EpochInfo mock

* Only get cluster nodes once

* Send deploy writes to next leader

(cherry picked from commit 16944e218f)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-23 17:14:37 +00:00
184a56aae7 shrink debug (#13089) (#13108)
(cherry picked from commit 7d2729f6bd)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-10-23 16:14:09 +00:00
7d66cba7f4 Remove spammy invalid rpc log (#13100) (#13101)
(cherry picked from commit c95f6c4b83)

Co-authored-by: Justin Starry <justin@solana.com>
2020-10-23 08:21:33 +00:00
8f615278d2 Add deploy err if program-account balance is too high (#13091) (#13097)
* Add deploy err if program-account balance is too high

* Review comments

* Add system-program check

* Rename and unhide flag

(cherry picked from commit 4669fa0f98)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-23 05:50:21 +00:00
884d68ddcf Add Pubkey::new_unique()/Hash::new_unique() 2020-10-23 03:19:38 +00:00
b095a52027 Add programming-faq to sidebar (#12586) (#13087)
* Add programming-faq to sidebar

* nudge

* fix path

(cherry picked from commit 22d16c69b7)

Co-authored-by: Jack May <jack@solana.com>
2020-10-22 12:34:22 +00:00
1f5861e107 Add programming faq (#12545) (#13086)
* Add programming faq

* feedback and new content

* nudge

(cherry picked from commit b51c0f3095)

Co-authored-by: Jack May <jack@solana.com>
2020-10-22 12:33:29 +00:00
b90b46fee1 Allow nodes to advertise a different rpc address over gossip (#13053) (#13077)
* Allow nodes to advertise a different rpc address over gossip

* Feedback

(cherry picked from commit 8b0242a5d8)

Co-authored-by: Justin Starry <justin@solana.com>
2020-10-22 04:44:41 +00:00
bff820d549 Remove unused pubkey::Pubkey imports 2020-10-21 20:27:57 -07:00
5ad0ccdfe1 cargo fmt 2020-10-21 20:27:57 -07:00
d8c7d06737 Run codemod --extensions rs Hash::new_rand solana_sdk:#️⃣:new_rand 2020-10-21 20:27:57 -07:00
422bb3c526 Run codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand 2020-10-21 20:27:57 -07:00
048a2b982c Add pubkey_new_rand(), mark Pubkey::new_rand() deprecated 2020-10-21 20:27:57 -07:00
76f0557462 Add hash_new_rand(), mark Hash::new_rand() as deprecated 2020-10-21 20:27:57 -07:00
6ebb933302 Bump version to 1.3.20 2020-10-22 00:08:28 +00:00
15a49d7508 RPC: Don't send base64 TXs to old clusters (#13062)
Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-21 21:07:08 +00:00
a86a781fd5 CLI: Print address ephemeral keypair seed phrase to stderr on deploy failure (bp #13046) (#13054)
* CLI: Print address ephemeral keypair seed phrase to stderr on deploy failure

(cherry picked from commit 2905ccc7ec)

# Conflicts:
#	cli/Cargo.toml
#	cli/src/cli.rs

* Fix conflicts

Co-authored-by: Trent Nelson <trent@solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-10-21 21:03:00 +00:00
57d8d0ab6e Add ledger-tool dead-slots and improve purge a lot (#13070) 2020-10-21 18:38:37 +00:00
63fe350900 Port various rent fixes to runtime feature (bp #12842) (#13067)
* Port various rent fixes to runtime feature (#12842)

* Port various rent fixes to runtime feature

* Fix CI

* Use more consistent naming...

(cherry picked from commit 608b81b412)

# Conflicts:
#	runtime/src/bank.rs

* Fix conflict

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-21 14:47:59 +00:00
b384ce9e03 Skip 'Stake by Feature Set' output when showing status of a single feature (#13051)
(cherry picked from commit ad65d4785e)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-21 07:01:20 +00:00
d81d4ad8a1 Improve vote-account "Recent Timestamp" output (#12970)
(cherry picked from commit 2cc3d7511a)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-21 05:09:58 +00:00
9ed1d2337b Parse stake and system instructions (bp #13035) (#13044)
* Parse stake and system instructions (#13035)

* Fix token account check

* Add helper to check num accounts

* Add parse_stake

* Add parse_system

* Fix AuthorizeNonce docs

* Remove jsonParsed unstable markers

* Clippy

(cherry picked from commit 46d0019955)

* Fix for older clippy

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-10-21 04:20:02 +00:00
14aaae3485 Support Debug Bank (#13017) (#13042)
(cherry picked from commit c0675968b1)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-21 02:50:12 +00:00
caac786a38 validator: Activate RPC before halting on slot (#13001)
(cherry picked from commit 3b3f7341fa)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-20 23:50:11 +00:00
218a76ed1b Force unset CARGO to use correct version of cargo (#13027) (#13033)
(cherry picked from commit 81d0c8ae7f)

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2020-10-20 22:52:06 +00:00
964f05afa8 Fix secp256k1 instruction indexing and add tests (#13026) (#13031)
(cherry picked from commit 83c53ae4b5)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-10-20 22:24:20 +00:00
a0e2f49263 Remove unsupported metrics tarball from release artifacts
(cherry picked from commit 62f20bc170)
2020-10-20 13:14:46 -07:00
25078d46ba filters out inactive nodes from push options (#12674) (#13022)
* filters out inactive nodes from push options

https://github.com/solana-labs/solana/pull/12620
patched the DDOS issue with nodes which go offline:
https://github.com/solana-labs/solana/issues/12409

However, offline nodes still see (much lesser) traffic spike, likely
because no origins are pruned from their bloom filter in active set:
https://github.com/solana-labs/solana/blob/aaf3790d8/core/src/crds_gossip_push.rs#L276-L286
and so multiple nodes push redundant duplicate messages to them
simultaneously:
https://github.com/solana-labs/solana/blob/aaf3790d8/core/src/crds_gossip_push.rs#L254-L255

This commit will filter out inactive peers from potential push targets
entirely. To mitigate eclipse attacks, staked nodes are retried
periodically.

* uses current timestamp in test/crds_gossip

(cherry picked from commit a5c6a78f6d)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-20 19:44:52 +00:00
840ea326db Remove errant print 2020-10-20 08:58:54 -06:00
b9fc31ec95 Parse bpf loader instructions (#12998) (#13004)
* Add parsing for BpfLoader2 instructions

* Skip info if null

* Return account address in info map

(cherry picked from commit 942e4273ba)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-20 06:21:47 +00:00
9481ee79a8 Ignore more paths in increment-cargo-version.sh (#12996)
(cherry picked from commit c1c69ecc34)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-19 23:57:11 +00:00
dddd0b76f1 removes invalid/outdated pending push messages early (#12555) (#12992)
In CrdsGossipPush::new_push_messages:
https://github.com/solana-labs/solana/blob/972619edb/core/src/crds_gossip_push.rs#L211-L228
we already have paid the cost of looking-up the label in crds table and
checking the hash value and wallclock only to find out that in some
cases the value is invalid or is outdated. So might as well remove the
value here rather than wait for the next call to
purge_old_pending_push_messages:
https://github.com/solana-labs/solana/blob/972619edb/core/src/crds_gossip_push.rs#L372

(cherry picked from commit b5faa11f73)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-19 22:02:18 +00:00
7674a5fea8 Bump version to v1.3.19 (#12986) 2020-10-19 19:13:28 +00:00
78be777b65 Revert "CLI: Put deploy ephemeral keypair behind a flag (#12941)" (#12981)
This reverts commit c2806aa2f9.
2020-10-19 17:31:33 +00:00
9b5c10a6aa Mention monitoring and updating for exchanges (#12953) (#12960)
* Mention monitoring and updating for exchanges

* Fix link syntax...

* Apply suggestions from code review

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>

* Apply suggestions from code review

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* More review comments and word-wrapping

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
(cherry picked from commit 87311cce7f)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-17 09:50:51 +00:00
8714c14549 keygen: add more mnemonic language support (#12944) (#12956)
(cherry picked from commit 4451042c76)

Co-authored-by: guanqun <guanqun.lu@gmail.com>
2020-10-17 04:01:22 +00:00
1982a7a8e3 Check payer balance for program account rent as needed (#12952) (#12954)
(cherry picked from commit b6bfed64cb)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-16 19:11:13 +00:00
c2806aa2f9 CLI: Put deploy ephemeral keypair behind a flag (#12941)
(cherry picked from commit 5a5b7f39c1)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-16 06:09:40 +00:00
e6521ef44c Report compute budget usage (#12931) (#12933)
(cherry picked from commit b510474dcb)

Co-authored-by: Jack May <jack@solana.com>
2020-10-16 00:19:18 +00:00
03ab8fac29 Update get-block method in get_confirmed_transaction (#12923) (#12929)
* Update get-block method in get_confirmed_transaction

* Remove superfluous into()

(cherry picked from commit 42943ab86d)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-15 21:33:38 +00:00
644304d171 Support arbitrary toolchains with cargo wrapper script (#12925)
(cherry picked from commit 99aecdaf65)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-15 20:15:29 +00:00
782ed192b6 program log pubkey as base58 (bp #12901) (#12910)
* program log pubkey as base58 (#12901)

(cherry picked from commit 3f9e6a600b)

# Conflicts:
#	programs/bpf/benches/bpf_loader.rs
#	programs/bpf/c/src/tuner/tuner.c
#	programs/bpf_loader/src/syscalls.rs
#	runtime/src/process_instruction.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-15 19:21:27 +00:00
0da2f73eb4 Release: Use pinned cargo version to install spl-token-cli (#12915)
(cherry picked from commit bb2f0df9e1)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-15 17:55:15 +00:00
a3fdfea674 RPC: Add metrics for TX encoding (#12879)
(cherry picked from commit c26512255d)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-15 15:41:13 +00:00
43121a56eb Surface 'Program account allocation failed' error details (#12902)
(cherry picked from commit eec3d25ab9)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-15 10:25:26 +00:00
2c0b4f3b4f Respect RefCell when calling invoke (#12858) (#12890)
* Respect RefCell when calling invoke

* nudge

(cherry picked from commit 969f7b015b)

Co-authored-by: Jack May <jack@solana.com>
2020-10-15 02:24:51 +00:00
db30316bb3 Release: Include SPL Token in release tarballs (#12888)
(cherry picked from commit f70762913c)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-15 01:32:29 +00:00
73e4d9d623 Don't report RewardType::Fee when none was awarded (#12876)
(cherry picked from commit 4b04ed86b6)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-14 17:36:17 +00:00
46b864dcb0 Expose program error constants (#12861) (#12870)
(cherry picked from commit d4e953277e)

Co-authored-by: Jack May <jack@solana.com>
2020-10-14 08:48:45 +00:00
4f2e60fea4 Add nop feature set for upcoming ported rent fixes (bp #12841) (#12846)
* Add nop feature set for upcoming ported rent fixes (#12841)

(cherry picked from commit 7de7efe96c)

# Conflicts:
#	runtime/src/feature_set.rs

* Update feature_set.rs

* Add missing comma...

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-14 04:47:07 +00:00
7ce9beacb6 Add log_messages to proto file (#12859) (#12862)
(cherry picked from commit 67ed44c007)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-14 01:37:42 +00:00
9dab79274b terminology update, nonce to bump seed (bp #12840) (#12850)
* terminology update, nonce to bump seed (#12840)

(cherry picked from commit 56211378d3)

# Conflicts:
#	sdk/src/pubkey.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-13 19:24:30 +00:00
df8b07ddbd solana vote-account/solana stake-account now works with RPC servers without --enable-rpc-transaction-history (bp #12826) (#12848)
* Implementation-defined RPC server errors are now accessible to client/ users

(cherry picked from commit 247228ee61)

* Cleanly handle RPC servers that don't have --enable-rpc-transaction-history enabled

(cherry picked from commit 14d793b22c)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-13 18:14:45 +00:00
762423c9a9 Add transaction log messages to |solana confirm -v| output (#12835)
(cherry picked from commit e9dbbdeb81)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-13 07:10:03 +00:00
689aa4d44f Check ELF file for errors before deploy (bp #12741) (#12800)
* Check ELF file for errors before deploy (#12741)

* Check ELF file for errors before deploy

* Update cli/src/cli.rs

Co-authored-by: Michael Vines <mvines@gmail.com>

* Fix formatting

* Bump solana_rbpf

Co-authored-by: Michael Vines <mvines@gmail.com>
(cherry picked from commit 6bbf6a79b7)

# Conflicts:
#	Cargo.lock
#	cli/Cargo.toml
#	cli/src/cli.rs

* rebase

Co-authored-by: Alexandre Esteves <2335822+alexfmpe@users.noreply.github.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-13 05:12:33 +00:00
cff1496e94 Add docs on vote account key rotation (bp #12815) (#12830)
* Add docs on vote account key rotation

(cherry picked from commit 253114ca20)

* Update docs/src/running-validator/vote-accounts.md

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
(cherry picked from commit d83027c0cd)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-13 04:21:16 +00:00
d1c51950f3 Bump version to v1.3.18 2020-10-13 03:57:13 +00:00
774a12e7b9 CI: Fix crate publication (#12824)
(cherry picked from commit c38021502e)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-12 23:19:31 +00:00
85e8926d81 fix native_loader behavior for invalid accounts (#12814) (#12818)
(cherry picked from commit c24da1ee16)

Co-authored-by: Jack May <jack@solana.com>
2020-10-12 22:09:55 +00:00
a2be9c647f Use latest stable channel release if there's no beta release (#12822)
(cherry picked from commit 65213a1782)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-12 22:03:05 +00:00
744006fe78 RpcClient: Encode TXs as base64 by default (#12816)
(cherry picked from commit efbe37ba20)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-12 21:56:13 +00:00
edf59cccd8 Fix fee mismatch on snapshot deserialize (#12697) (#12753)
Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit c879e7c1ad)

Co-authored-by: carllin <wumu727@gmail.com>
2020-10-12 11:34:13 +00:00
9c72bf871f Move no-0-rent rent dist. behavior under feature (#12804) (#12810)
(cherry picked from commit 2f5bb7e507)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-12 10:42:01 +00:00
033c87e3f1 simulate_transaction_with_config() now passes full config to server (#12802)
(cherry picked from commit b3c2752bb0)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-12 06:13:55 +00:00
d35d853e57 Cargo.lock 2020-10-12 04:21:26 +00:00
03317f6bf7 Switch to tempfile 2020-10-12 04:21:26 +00:00
4f0e928a0a Rework cargo audit ignores 2020-10-12 04:21:26 +00:00
8600d5188d Don't bother paying 0 rent (#12792)
(cherry picked from commit 1fc7c1ecee)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-10 18:12:18 +00:00
8cd7716ee3 Update docs to show support for Nano X (bp #12647) (#12654)
* Update docs to show support for Nano X (#12647)

(cherry picked from commit 0ef3cac1f8)

# Conflicts:
#	docs/src/wallet-guide/ledger-live.md

* Fix merge conflict

Co-authored-by: Dan Albert <dan@solana.com>
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-10-10 16:06:41 +00:00
b13385fba6 Update gossip entrypoints 2020-10-10 08:39:54 -07:00
9f82208c29 Store program logs in blockstore / bigtable (TransactionWithStatusMeta) (bp #12678) (#12734)
* Store program logs in blockstore / bigtable (TransactionWithStatusMeta) (#12678)

* introduce store program logs in blockstore / bigtable

* fix test, transaction logs created for successful transactions

* fix test for legacy bincode implementation around log_messages

* only api nodes should record logs

* truncate transaction logs to 100KB

* refactor log truncate for improved coverage

(cherry picked from commit 8f5431551e)

# Conflicts:
#	runtime/src/bank.rs

* Resolve merge conflicts in bank.rs

* rerun cargo fmt

Co-authored-by: Josh <josh.hundley@gmail.com>
2020-10-10 08:55:41 +00:00
596ede864b document program address collisions (bp #12774) (#12781)
* document program address collisions (#12774)

(cherry picked from commit 9ac8db3533)

# Conflicts:
#	sdk/src/pubkey.rs

* Update pubkey.rs

* Update pubkey.rs

Co-authored-by: Jack May <jack@solana.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-10 06:50:58 +00:00
e4bd382472 Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli (bp #12768) (#12789)
* Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli

(cherry picked from commit c5c8da1ac0)

# Conflicts:
#	Cargo.lock
#	runtime/src/bank.rs
#	transaction-status/Cargo.toml

* fix: surface full block rewards type

(cherry picked from commit 1b16790325)

* resolve conflicts

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-10 06:25:10 +00:00
a70aa28832 Bump version to 1.3.17 2020-10-10 03:22:14 +00:00
9a63cf51b5 Fix typo (#12780) (#12783)
(cherry picked from commit 5800217998)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-10 02:18:18 +00:00
b31ec0579c Local program allocator (#12679) (#12767)
(cherry picked from commit 630eb3b907)

Co-authored-by: Jack May <jack@solana.com>
2020-10-10 01:44:18 +00:00
ad31768dd9 Add adjustable stack size and call depth (bp #12728) (#12769)
* Add adjustable stack size and call depth (#12728)

(cherry picked from commit c3907be623)

# Conflicts:
#	programs/bpf/Cargo.lock
#	programs/bpf/Cargo.toml
#	programs/bpf/build.rs
#	programs/bpf_loader/Cargo.toml
#	programs/bpf_loader/src/lib.rs
#	runtime/src/feature_set.rs
#	runtime/src/process_instruction.rs

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-09 23:27:59 +00:00
079ea91d6f Add convenience script for working in stability branches (#12765) (#12772)
* Add convenience script for working in stability branches

* Update scripts/curgo.sh

Co-authored-by: Michael Vines <mvines@gmail.com>

* re{locate,name} to /cargo

Co-authored-by: Michael Vines <mvines@gmail.com>
(cherry picked from commit ed95071c27)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-09 22:29:47 +00:00
48d08f2010 Bump max invoke depth to 4 (bp #12742) (#12763)
* Bump max invoke depth to 4 (#12742)

(cherry picked from commit 2cd7cd3149)

# Conflicts:
#	programs/bpf/rust/invoked/src/processor.rs
#	runtime/src/feature_set.rs
#	runtime/src/message_processor.rs
#	runtime/src/process_instruction.rs

* fix conflicts

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-09 21:12:35 +00:00
b34ba0fc4e Remove skip-no-mangle entirely (bp #12696) (#12708)
* Remove skip-no-mangle entirely (#12696)

(cherry picked from commit 41ad3dd8f0)

# Conflicts:
#	account-decoder/Cargo.toml
#	core/Cargo.toml
#	transaction-status/Cargo.toml

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-09 20:44:50 +00:00
41b99b96c0 Ryos compat fixes 1.3 (#12762)
* Fix various ledger-tool error due to no builtins

* Add missing file...

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-09 11:49:15 -06:00
fea6e4d39d Only fetch snapshot if it's newer than local (#12663) (#12751)
* Only fetch snapshot if it's newer than local

* Prefer as_ref over clone

* More nits

* Don't wait forwever for newer snapshot

(cherry picked from commit 81489ccb76)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-09 07:23:06 +00:00
fced68c3f4 Add inflation_kill_switch feature (#12748)
(cherry picked from commit c8807d227a)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-09 05:39:17 +00:00
7f006d810c Add new internal accounts (#12740) (#12746)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
(cherry picked from commit 2c5f83c264)

Co-authored-by: Dan Albert <dan@solana.com>
2020-10-09 02:18:27 +00:00
cab1b102e6 Minor variable name cleanup (#12744)
(cherry picked from commit 3a04026599)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-09 02:03:03 +00:00
448887a469 Fixup wallet docs, manual cherrypick for backport (#12738)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-10-08 21:51:24 +00:00
bded162ed8 fix conflicts (#12733)
Co-authored-by: Jack May <jack@solana.com>
2020-10-08 20:40:59 +00:00
765dd1b775 Nit, short name (bp #12195) (#12732)
* Nit, short name (#12195)

(cherry picked from commit daba17a95c)

# Conflicts:
#	runtime/src/bank.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-08 20:03:15 +00:00
b74fbdf7eb Pipe FeatureSet though InvokeContext (bp #12536) (#12730)
* Pipe FeatureSet though InvokeContext (#12536)

* Pipe FeatureSet though InvokeContext

* gate program size cap

* nit

(cherry picked from commit 74fcb184b2)

# Conflicts:
#	runtime/src/bank.rs
#	runtime/src/feature_set.rs

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-10-08 18:18:51 +00:00
fb0f0adb16 Display vote/stake account epoch rewards 2020-10-08 08:34:40 -07:00
2a3c4d87ce Support multiple connected HW wallets configured with the same seed phrase (bp #12716) (#12719)
* remote-wallet: Select hardware wallets based on host device path

(cherry picked from commit 8e3353d9ef)

* remote-wallet: Append wallet "name" to entries in selector UI

(cherry picked from commit f1a2ad1b7d)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-08 05:46:24 +00:00
eaa6e04e83 Revert "Restore --expected-shred-version argument for mainnet-beta" (#12722)
This reverts commit 9410eab2af.

(cherry picked from commit dadc84fa8c)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-08 04:48:40 +00:00
925973ee60 RPC: Transaction deser can be quite slow (bp #12683) (#12702)
* RPC: Check encoded transaction size before decoding

(cherry picked from commit 7f67d36777)

* RPC: Support base64 encoded transactions

Defaults to base58

(cherry picked from commit e35889542b)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-07 05:50:23 +00:00
2c55319e41 Add env variable for rayon thread counts (#12693) (#12698)
(cherry picked from commit 37222683ee)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-10-07 01:26:18 +00:00
f22a5efde5 Faucet request limiter can overflow (bp #12691) (#12694)
* faucet: Add failing test case

(cherry picked from commit 5ae704d560)

* faucet: Use checked math in request limiter

(cherry picked from commit 87de82ac94)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-10-06 20:02:14 +00:00
add5c5b29f Add systemd and log rotation section to validator start docs (#12675) (#12676)
* Add systemd and log rotation section to validator start docs

* Update docs/src/running-validator/validator-start.md

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>

* Update docs/src/running-validator/validator-start.md

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
(cherry picked from commit fbb5e5c4e6)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-05 19:34:44 +00:00
1b53f8b33d Update channel_restriction.sh 2020-10-04 10:28:12 -06:00
34591d2f2f Show commit in --version and ledger-tool's log (#12636) (#12662)
* Show commit in `--version` and ledger-tool's log

* Another handy hidden env var

* Fix test

* Rename to semver!

* Fix syntax error...

(cherry picked from commit 026e7de819)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-03 16:45:27 +00:00
bc1b95d6d0 Bump version to v1.3.16 2020-10-03 04:24:03 +00:00
90d586a4f8 solana stakes now employs server-side filtering if only one vote account is provided (#12657)
(cherry picked from commit 9abaf6ec1d)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-03 02:00:49 +00:00
efcb5cd9f0 Fix zero-len slice translations (#12642) (#12656)
(cherry picked from commit d0aa8a6446)

Co-authored-by: Jack May <jack@solana.com>
2020-10-03 01:58:27 +00:00
ffa0ee69ca Weight push peers by how long we haven't pushed to them (#12620) (#12651)
(cherry picked from commit 71c469c72b)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-10-02 22:27:35 +00:00
a983430ddb Check CPI program is executable (#12644) (#12649)
(cherry picked from commit adeb06e550)

Co-authored-by: Jack May <jack@solana.com>
2020-10-02 22:27:29 +00:00
bd94250fca Improve solana deploy (#12621) (#12646)
* Check program account before attempting to create it

* Use last_valid_slot to timeout status checks

* Include transaction history in RpcClient::get_signature_statuses requests

* Improve solana-deploy send-transactions

* Clippy

* Improve mock deploy test

* Review comments

(cherry picked from commit 19f385db76)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-02 20:44:26 +00:00
db5251a524 solana catchup now retries if the initial RPC connection fails (#12645)
(cherry picked from commit 978b26a9c5)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-02 20:42:51 +00:00
efb665071c limits number of threads in core/tests/crds_gossip.rs (#12615) (#12641)
crds_gossip tests start large networks, which with large thread-pools
will exhaust system resources, causing failures in ci tests:
https://buildkite.com/solana-labs/solana/builds/31953

The commit limits size of thread-pools in the test.

(cherry picked from commit 2c669f65f1)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-02 20:01:49 +00:00
e69ee1ec64 Add GetConfirmedBlocksWithLimit RPC method
(cherry picked from commit 75b621160e)
2020-10-02 08:21:08 -07:00
307686eeba Add --no-port-check to validator (#12245) (#12638)
(cherry picked from commit aa70dbfc62)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-02 12:46:40 +00:00
de1e2f9c0c Add inflation subcommand (#12632)
(cherry picked from commit 42aeead6b4)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-02 07:14:02 +00:00
01f93003d3 Improve block command output (#12631)
(cherry picked from commit 14036ac580)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-02 07:03:29 +00:00
75219afc91 Document postBalance field (#12628)
(cherry picked from commit e03a64ae1b)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-02 05:38:11 +00:00
71526923a6 Expose validator cli arguments for pubsub buffer tuning (#12622)
(cherry picked from commit f41a73d76a)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-10-02 04:43:44 +00:00
29af9d1a36 Avoid overflow when computing rent distribution (bp #12112) (#12607)
* Avoid overflow when computing rent distribution (#12112)

* Avoid overflow when computing rent distribution

* Use assert_eq!....

* Fix tests

* Add test

* Use FeatureSet

* Add comments

* Address review comments

* Tweak a bit.

* Fix fmt

(cherry picked from commit e3773d919c)

# Conflicts:
#	runtime/src/bank.rs
#	runtime/src/feature_set.rs

* Fix conflict

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-10-02 01:37:47 +00:00
46311181dc Add nonced-tx check to RpcClient (#12600) (#12604)
(cherry picked from commit 8f10e407ee)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-01 07:51:16 +00:00
17de653ce0 Move nonce utils from runtime to sdk (bp #12577) (#12583)
* runtime: Move prepare_if_nonce_account into accounts

(cherry picked from commit caec631344)

* Move nonced tx helpers to SDK

(cherry picked from commit 65b868f4eb)

* Move remaining nonce utils from runtime to SDK

(cherry picked from commit 3c7b9c2938)

# Conflicts:
#	runtime/src/bank.rs

* Fix conflict

Co-authored-by: Trent Nelson <trent@solana.com>
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-01 06:25:25 +00:00
387ecdf70e Add ci env to travis config (#12608) (#12610)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
(cherry picked from commit a17907b9a2)

Co-authored-by: Dan Albert <dan@solana.com>
2020-10-01 06:03:57 +00:00
fbe5a89e74 retains hash value of outdated responses received from pull requests (#12513) (#12603)
pull_response_fail_inserts has been increasing:
https://cdn.discordapp.com/attachments/478692221441409024/759096187587657778/pull_response_fail_insert.png
but for outdated values which fail to insert:
https://github.com/solana-labs/solana/blob/a5c3fc14b3/core/src/crds_gossip_pull.rs#L332-L344
https://github.com/solana-labs/solana/blob/a5c3fc14b3/core/src/crds.rs#L104-L108
are not recorded anywhere, and so the next pull request may obtain the
same redundant payload again, unnecessary taking bandwidth.

This commit holds on to the hashes of failed-inserts for a while, similar
to purged_values:
https://github.com/solana-labs/solana/blob/a5c3fc14b3/core/src/crds_gossip_pull.rs#L380
and filter them out for the next pull request:
https://github.com/solana-labs/solana/blob/a5c3fc14b3/core/src/crds_gossip_pull.rs#L204

(cherry picked from commit 1866521df6)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-01 01:47:20 +00:00
afbdcf3068 Include post balance information for rewards (#12598) (#12602)
* Include post balance information for rewards

* Add post-balance to stored Reward struct

* Handle extended Reward in bigtable

Co-authored-by: Michael Vines <mvines@gmail.com>
(cherry picked from commit c31a34fbcb)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-10-01 01:05:37 +00:00
2d1b995006 Use protobufs to store confirmed blocks in BigTable (#12526) (#12597)
* Use protobufs to store confirmed blocks in BigTable

* Cleanup

* Reorganize proto

* Clean up use statements

* Split out function for unit testing

* s/utils/convert

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
(cherry picked from commit ce598c5c98)

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-30 19:37:02 +00:00
d9d3a95a72 Fix TransactionStatusMeta breakage in blockstore (#12587) (#12596)
* Add helper to facilitate deserializing legacy structs

* Use default_on_eof to fix blockstore vis-a-vis TransactionStatusMeta

* Add should-panic test and comments

(cherry picked from commit 865d01c38d)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-30 19:18:43 +00:00
ea990fd259 Update devnet genesis hash 2020-09-30 11:37:51 -07:00
4f30f9c8cf Modernize python scripts (#12595)
(cherry picked from commit fce3c70b72)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-30 18:24:49 +00:00
d13694d839 Tighten docs publishing flow (#12572) (#12594)
(cherry picked from commit ede19ef33b)

Co-authored-by: Dan Albert <dan@solana.com>
2020-09-30 18:23:49 +00:00
700c8c1ec1 epoch_rewards datapoint now includes the correct rewards epoch (previous epoch) (#12582)
(cherry picked from commit f57af4fec2)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-30 06:56:05 +00:00
33ace54b0f Fix banks RPC port (#12570) (#12574)
* Fix Banks RPC ports

* Add get_account_with_commitment

(cherry picked from commit d158d45051)

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-09-30 01:23:13 +00:00
5d2f450b89 Tune the sys-tuner documentation (#12576)
(cherry picked from commit 6156dc300d)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-30 01:18:24 +00:00
55b0e9e9c7 builds crds filters in parallel (bp #12360) (#12571)
* builds crds filters in parallel (#12360)

Based on run-time profiles, the majority time of new_pull_requests is
spent building bloom filters, in hashing and bit-vec ops.

This commit builds crds filters in parallel using rayon constructs. The
added benchmark shows ~5x speedup (4-core machine, 8 threads).

(cherry picked from commit 537bbde22e)

# Conflicts:
#	core/Cargo.toml

* resolves mergify merge conflict

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-30 01:08:16 +00:00
6d1bea7fb4 Include active stake in 'epoch_rewards' datapoint (#12573)
(cherry picked from commit 82848d6c73)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-30 01:08:04 +00:00
d19ed8816e Query BigTable for block time if does not exist in blockstore (#12560) (#12565)
(cherry picked from commit 96a7d4dbd8)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-29 23:26:03 +00:00
af7f48a2fd Track inserted repair shreds (#12455) (#12563)
(cherry picked from commit ce98088457)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-29 22:57:58 +00:00
0965389f41 Enable json output from solana feature status (#12554) (#12559) 2020-09-29 21:00:20 +00:00
24c60cf3db Bump version to v1.3.15 2020-09-29 20:57:08 +00:00
c8f4bfca90 Notify but don't abort on unexpected stake account balance 2020-09-29 11:39:11 -07:00
4a6b65ce53 Switch get_program_accounts to use base64 2020-09-29 18:21:19 +00:00
836ed842d6 Increase rpc pubsub max payload to unblock large account notifications (#12548) (#12551)
(cherry picked from commit 36d55c0667)

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-29 17:20:31 +00:00
966d0f72bb Move process_instruction defs to runtime (#12507) (#12549)
(cherry picked from commit 2ff983647f)

Co-authored-by: Jack May <jack@solana.com>
2020-09-29 15:52:38 +00:00
a07e90516b separates out ClusterInfo::{gossip,listen} thread-pools (#12535) (#12547)
https://github.com/solana-labs/solana/pull/12402
moved gossip-work threads:
https://github.com/solana-labs/solana/blob/afd9bfc45/core/src/cluster_info.rs#L2330-L2334
to ClusterInfo::new as a new field in the ClusterInfo struct:
https://github.com/solana-labs/solana/blob/35208c5ee/core/src/cluster_info.rs#L249
So that they can be shared between listen and gossip threads:
https://github.com/solana-labs/solana/blob/afd9bfc45/core/src/gossip_service.rs#L54-L67

However, in testing https://github.com/solana-labs/solana/pull/12360
it turned out this will cause breakage:
https://buildkite.com/solana-labs/solana/builds/31646
https://buildkite.com/solana-labs/solana/builds/31651
https://buildkite.com/solana-labs/solana/builds/31655
Whereas with separate thread pools all is good. It might be the case
that one thread is slowing down the other by exhausting the thread-pool
whereas with separate thread-pools we get fair scheduling guarantees
from the os.

This commit reverts https://github.com/solana-labs/solana/pull/12402
and instead adds separate thread-pools for listen and gossip threads:
https://github.com/solana-labs/solana/blob/afd9bfc45/core/src/gossip_service.rs#L54-L67

(cherry picked from commit 0d5258b6d3)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-29 11:27:47 +00:00
bd2e09d55a patches bug in Crds::find_old_labels with pubkey specific timeout (#12528) (#12546)
Current code only returns values which are expired based on the default
timeout. Example from the added unit test:
  - value inserted at time 0
  - pubkey specific timeout = 1
  - default timeout = 3
Then at now = 2, the value is expired, but the function fails to return
the value because it compares with the default timeout.

(cherry picked from commit 57ed4e4657)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-29 10:13:13 +00:00
655577f9fe feature subcommand: display active stake by feature id when feature activation is not available (#12543)
(cherry picked from commit 322dbd894f)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-29 06:17:31 +00:00
3781ad259b clap-utils: Allow nonce/offline args to be global (bp #12538) 2020-09-29 04:51:33 +00:00
5ad5f8b458 cli-output: Add a path to handling --verbose and --quiet display (bp #12531) 2020-09-29 04:44:59 +00:00
5b322a995f Rpc -> proper optimistic confirmation (#12514) (#12537)
* Add service to track the most recent optimistically confirmed bank

* Plumb service into ClusterInfoVoteListener and ReplayStage

* Clean up test

* Use OptimisticallyConfirmedBank in RPC

* Remove superfluous notifications from RpcSubscriptions

* Use crossbeam to avoid mpsc recv_timeout panic

* Review comments

* Remove superfluous last_checked_slots, but pass in OptimisticallyConfirmedBank for complete correctness

(cherry picked from commit 89621adca7)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-29 03:49:18 +00:00
63d9f32bb4 purges old pending push messages more efficiently (#12522) (#12533)
(cherry picked from commit c94fe9236f)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-29 01:34:58 +00:00
a550d82202 Enable commitment arg on solana deploy (#12532) (#12534)
(cherry picked from commit 35208c5ee7)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-28 23:32:50 +00:00
4cf69365b2 Port BPFLoader2 activation to FeatureSet (bp #12490) (#12530)
* Cargo.lock

(cherry picked from commit 6071d0d206)

# Conflicts:
#	Cargo.lock

* Port BPFLoader2 activation to FeatureSet and rework built-in program activation

(cherry picked from commit 31696a1d72)

# Conflicts:
#	core/Cargo.toml
#	genesis-programs/Cargo.toml
#	genesis/Cargo.toml
#	ledger/Cargo.toml
#	local-cluster/Cargo.toml
#	runtime/src/bank.rs

* Add Builtin AbiExample

(cherry picked from commit 833ad20b01)

* Rebase

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-28 23:12:05 +00:00
873b4ee830 Add a couple feature tests (#12529)
(cherry picked from commit 2956cc5aed)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-28 20:31:09 +00:00
672d9c9f62 Add feature to resolve spl-token v2 multisig bug (#12525)
(cherry picked from commit f9a74b51ef)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-28 18:14:20 +00:00
4bd29c1b32 Add pico-inflation feature
(cherry picked from commit aa5c008fa8)
2020-09-28 09:34:35 -07:00
72c082f55a Add precompile verification to preflight (#12486) (#12516)
(cherry picked from commit 6583c8cffe)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-28 06:37:52 +00:00
d712a908c2 Port fix_recent_blockhashes_sysvar_delay to FeatureSet (#12503)
(cherry picked from commit 5d6410c1cb)

# Conflicts:
#	runtime/src/feature_set.rs

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-26 20:26:58 +00:00
e3ca1a81b4 Add copy-on-write executor cache (bp #12502) (#12511)
* Add copy-on-write executor cache (#12502)

* Add copy-on-write executor cache

* Add remove_executor function to the bank

(cherry picked from commit 965f653471)

# Conflicts:
#	runtime/src/bank.rs

* rebase

Co-authored-by: Jack May <jack@solana.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-26 20:26:50 +00:00
16bce553e4 Nit: bpf test cleanup (#12401) (#12508)
(cherry picked from commit 7c4822efb1)

Co-authored-by: Jack May <jack@solana.com>
2020-09-26 17:53:27 +00:00
bc3aa53e02 Runtime feature activation framework (bp #12376) (#12497)
* Runtime feature activation framework

(cherry picked from commit 93259f0bae)

# Conflicts:
#	runtime/src/bank.rs

* Add feature set identifier to gossiped version information

(cherry picked from commit 35f5f9fc7b)

# Conflicts:
#	Cargo.lock
#	version/Cargo.toml

* Port instructions sysvar and secp256k1 program activation to FeatureSet

(cherry picked from commit c10da16d7b)

# Conflicts:
#	runtime/src/bank.rs
#	runtime/src/message_processor.rs

* Add feature management commands

(cherry picked from commit 93ed0ab2bb)

# Conflicts:
#	Cargo.lock
#	cli/Cargo.toml

* Make test_process_rest_api less fragile

(cherry picked from commit 7526bb96f3)

* Remove id field

(cherry picked from commit cc6ba1e131)

* FeatureSet test

(cherry picked from commit 92406cf9a0)

* cargo fmt

(cherry picked from commit 199940d683)

* cli review feedback

(cherry picked from commit 3a2b8c5e5b)

* Rename active() to is_active()

(cherry picked from commit e39fac9f01)

* Resolve merge conflicts

* Remove continues from compute_active_feature_set()

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-26 17:49:53 +00:00
6a698af235 Deerror 2020-09-25 22:19:09 -07:00
7ec38bd71c Improve 'Failed to create snapshot archive' warning message
(cherry picked from commit 5dcf348098)
2020-09-25 21:06:05 -07:00
8e3882287a Add epoch rewards metric datapoint (bp #12505) (#12509)
* Add epoch rewards metric datapoint

(cherry picked from commit e50386f928)

# Conflicts:
#	runtime/src/bank.rs

* Update bank.rs

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-26 04:02:23 +00:00
0c4074049b Cleanup names, fix line dependent test (#12477) (#12482)
(cherry picked from commit b8c4b88188)

Co-authored-by: Jack May <jack@solana.com>
2020-09-26 01:08:55 +00:00
250d2ba74a Pre-construct cpi instruction recorders before message processing (#12467) (#12504)
(cherry picked from commit 1c970bb39f)

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-26 00:40:32 +00:00
b96e0e3d27 Drain the entire compute budget (bp #12478) (#12492)
* Drain the entire compute budget (#12478)


(cherry picked from commit d00453f747)

* fix conflict

Co-authored-by: Jack May <jack@solana.com>
2020-09-25 23:22:19 +00:00
99b513d905 Bump rust-bpf to v0.2.4 (#12361) (#12501)
(cherry picked from commit 65049bd112)

Co-authored-by: Jack May <jack@solana.com>
2020-09-25 22:12:39 +00:00
e85c792f70 Add RPC notify and banking keys debug (bp #12396) (#12452)
* Add RPC notify and banking keys debug (#12396)

(cherry picked from commit 68e5a2ef56)

# Conflicts:
#	core/src/validator.rs

* Rebase

Co-authored-by: sakridge <sakridge@gmail.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-25 21:05:21 +00:00
b65a764593 Bump jsonrpc crates to 15.0.0 (bp #12491) 2020-09-25 19:49:10 +00:00
a514b0e77b Add ComputeBudget tuner (bp #12476) (#12483)
* Add ComputeBudget tuner (#12476)

(cherry picked from commit d326512121)

# Conflicts:
#	programs/bpf/Cargo.toml

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-09-25 19:13:07 +00:00
179dd6ee59 Ignore cargo audit RUSTSEC-2020-0008 (#12489)
(cherry picked from commit cd5c7f30d5)

Co-authored-by: Jack May <jack@solana.com>
2020-09-25 10:01:23 -07:00
21ba2bad24 Add Signers impl for Vec<Box<dyn Signer>> (#12470)
(cherry picked from commit 07dfa37cce)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-25 10:45:29 +00:00
64b6372f9c cli-output: Add CliTokenAccount type (bp #12466) (#12468)
* account-decoder: Add string format helpers to UiTokenAmount

(cherry picked from commit bb144bf758)

* cli-output: Add CliTokenAccount type

(cherry picked from commit d95bce2600)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-25 06:05:19 +00:00
495ea7cd2f introduce RpcPerfSample and modify getPerformanceSamples output (#12434) (#12464)
* introduce RpcPerfSample and modify getPerformanceSamples output

* camelCase test results

(cherry picked from commit 1d04c1db94)

Co-authored-by: Josh <josh.hundley@gmail.com>
2020-09-24 22:45:05 +00:00
bb12d65102 Remove legacy inflation activation code (#12460)
(cherry picked from commit c4aee8c0a0)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-24 20:38:41 +00:00
72365bb9d2 moves gossip-work thread pool cons to ClusterInfo::new (#12402) (#12458)
(cherry picked from commit 42f1ef8acb)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-24 20:01:03 +00:00
c44f6981b1 adds an atomic variant of the bloom filter (#12422) (#12459)
For crds_gossip_pull, we want to parallelize build_crds_filters, which
requires concurrent writes to bloom filters.

This commit implements a variant of the bloom filter which uses atomics
for its bits vector and so is thread-safe.

(cherry picked from commit bb183938d9)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-24 19:49:10 +00:00
0213016999 Use publish=false (#12447) (#12453)
(cherry picked from commit a5c3fc14b3)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-24 16:58:18 +00:00
4e9e05f311 shards crds values based on their hash prefix (bp #12187) (#12312)
* shards crds values based on their hash prefix (#12187)

filter_crds_values checks every crds filter against every hash value:
https://github.com/solana-labs/solana/blob/ee646aa7/core/src/crds_gossip_pull.rs#L432
which can be inefficient if the filter's bit-mask only matches small
portion of the entire crds table.

This commit shards crds values into separate tables based on shard_bits
first bits of their hash prefix. Given a (mask, mask_bits) filter,
filtering crds can be done by inspecting only relevant shards.

If CrdsFilter.mask_bits <= shard_bits, then precisely only the crds
values which match (mask, mask_bits) bit pattern are traversed.
If CrdsFilter.mask_bits > shard_bits, then approximately only
1/2^shard_bits of crds values are inspected.

Benchmarking on a gce cluster of 20 nodes, I see ~10% improvement in
generate_pull_responses metric, but with larger clusters, crds table and
2^mask_bits are both larger, so the impact should be more significant.

(cherry picked from commit 9b866d79fb)

* bumps indexmap to 1.6.0

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-24 16:10:53 +00:00
7212bb12ea Record and store invoked instructions in transaction meta (#12311) (#12449)
* Record invoked instructions and store in transaction meta

* Enable cpi recording if transaction sender is some

* Rename invoked to innerInstructions

(cherry picked from commit 6601ec8f26)

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-24 15:42:34 +00:00
9ff2378948 Remove transaction encoding from storage layer (bp #12404) (#12440)
* Remove transaction encoding from storage layer (#12404)

(cherry picked from commit 731a943239)

* Bump

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-24 10:11:27 +00:00
ec4938a9f3 Bump version to 1.3.14 (#12444) 2020-09-24 07:42:54 +00:00
41b45ca281 Allow publishing of secp256k1 program 2020-09-24 00:05:11 -06:00
838aaee144 CLI: Factor out offline helpers (bp #12382) 2020-09-24 04:41:30 +00:00
c0e44b624e Docs: Set realistic stake warm-up expectations for validators (#12436)
(cherry picked from commit 215bbe85d8)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-24 03:01:38 +00:00
41ca59ea0e Move dropping AppendVecs outside lock (#12408) (#12429)
* Move drop outside lock

Co-authored-by: Carl Lin <carl@solana.com>
(cherry picked from commit 55be8d4016)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-23 23:03:44 +00:00
a76e175fd0 RpcClient::get_multiple_accounts() now works (#12427)
(cherry picked from commit ff890c173c)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-23 21:56:23 +00:00
35a1ab981c v1.3: Backport block time updates (#12423)
* Submit a vote timestamp every vote (#10630)

* Submit a timestamp for every vote

* Submit at most one vote timestamp per second

* Submit a timestamp for every new vote

Co-authored-by: Tyera Eulberg <tyera@solana.com>

* Timestamp first vote (#11856)

* Cache block time in Blockstore (#11955)

* Add blockstore column to cache block times

* Add method to cache block time

* Add service to cache block time

* Update rpc getBlockTime to use new method, and refactor blockstore slightly

* Return block_time with confirmed block, if available

* Add measure and warning to cache-block-time

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-23 13:54:49 -06:00
0f3a555af5 Document getConfirmedSignaturesForAddress2 until param (#12424) (#12425)
(cherry picked from commit a713e3c92d)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-23 19:47:00 +00:00
5366a3c887 Fix solana-tokens check_payer_balances for distribute-stake (bp #12380) (#12403)
* Fix solana-tokens check_payer_balances for distribute-stake (#12380)

* Handle distribute-stakes properly

* Remove dry-run gating for balance checks

* Reword and simplify InsufficientFunds errors

* Split up test and add helpers

* Rename sol_for_fees -> unlocked_sol

* Refactor distribute_allocations to collect Messages

* Clippy

* Clean up dangling bids

(cherry picked from commit 6563726f22)

# Conflicts:
#	tokens/src/commands.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-23 05:27:01 +00:00
486b657fca validator: Add --require-tower stub arg 2020-09-23 05:01:12 +00:00
e545bdcb51 Bump spl-token (bp #12395) (#12400)
* Bump spl-token (#12395)

(cherry picked from commit e1a212fb79)

# Conflicts:
#	Cargo.lock
#	account-decoder/Cargo.toml
#	core/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-23 01:08:20 +00:00
65e4aac306 Add blockstore column to store performance sampling data (bp #12251) (#12393)
* Add blockstore column to store performance sampling data (#12251)

* Add blockstore column to store performance sampling data

* introduce timer and write performance metrics to blockstore

* introduce getRecentPerformanceSamples rpc

* only run on rpc nodes enabled with transaction history

* add unit tests for get_recent_performance_samples

* remove RpcResponse from rpc call

* refactor to use Instant::now and elapsed for timer

* switch to root bank and ensure not negative subraction

* Add PerfSamples to purge/compaction

* refactor to use Instant::now and elapsed for timer

* switch to root bank and ensure not negative subraction

* remove duplicate constants

Co-authored-by: Tyera Eulberg <tyera@solana.com>
(cherry picked from commit 65a6bfad09)

# Conflicts:
#	core/src/validator.rs
#	ledger/src/blockstore.rs

* merge cherry pick of 65a6bfad0

Co-authored-by: Josh <josh.hundley@gmail.com>
2020-09-22 22:00:51 +00:00
339e72d8d2 Simplify cli node version output, display semver only by default (#12386)
(cherry picked from commit 4fa443becf)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-22 08:07:28 +00:00
0f3208dece Cleanup and feature gate instruction processing (#12359) (#12384)
(cherry picked from commit 22d8b3c3f8)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-22 06:19:14 +00:00
a85a2839e4 Add way to look at tx instructions (#11943) (#12375)
Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-22 00:59:46 +00:00
4fc9f12d7b CLI: Drop unused runtime dep (#12374)
(cherry picked from commit 6767264aa1)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-21 20:38:44 +00:00
8af90c9c08 Add keccak-secp256k1 instruction (#11839) (#12368)
* Implement keccak-secp256k1 instruction

Verifies eth addreses with ecrecover function

* Move secp256k1 test

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-21 18:09:05 +00:00
7db0464d1b Bind to correct RPC addresses (#12358)
(cherry picked from commit 65b247a922)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-20 08:33:07 +00:00
bc774e3ea6 Bump version to v1.3.13 2020-09-20 05:40:32 +00:00
64af712723 Use validator_config for RPC address instead of cluster_info for port verification checks 2020-09-20 02:27:35 +00:00
ea2611f3a9 Document that testnet has a faucet 2020-09-19 17:41:13 -07:00
a26e1f62bb validator/ cleanup (bp #12340) (#12352)
* validator/ cleanup

(cherry picked from commit 1a03afccb1)

# Conflicts:
#	core/src/validator.rs

* Move TestValidator into its own module

(cherry picked from commit 208dd1de3a)

# Conflicts:
#	core/src/validator.rs
#	tokens/tests/commands.rs

* Rebase

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-19 22:45:09 +00:00
54b87b34c3 Add get_token_account methods (#12346) (#12349)
(cherry picked from commit 28f2c15597)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-19 03:53:51 +00:00
12327c8683 Improve error message when .config/solana/id.json is not found (#12345)
(cherry picked from commit 0ed7b0561e)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-19 00:44:16 +00:00
86554c4945 Docs: Add SPL Token exchange integration (bp #12303) 2020-09-19 00:37:25 +00:00
95ed3641c6 Add blocktime column to blockstore (#12336) 2020-09-18 21:42:45 +00:00
83c775cee8 Unbreak 'Listening for Deposits' section (#12338) (#12339)
(cherry picked from commit 06906413ef)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-18 21:19:15 +00:00
9fbbb7b044 SendTransactionServices now exit their thread on channel drop instead of by a flag (bp #12333) (#12335)
* Give the duplicate send_transaction_service a different thread name

(cherry picked from commit 75c3690ccd)

* SendTransactionServices now exit their thread on channel drop instead of by a flag

(cherry picked from commit c4913e3c9e)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-18 18:32:06 +00:00
7656034bd4 Fix blockstore processor squash (#12319) (#12323)
(cherry picked from commit 3533e11786)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-18 05:34:37 +00:00
3ede265ff9 Add Pack and COption to sdk (bp #12294) (#12322)
* Add Pack and COption to sdk (#12294)

* Add COption to sdk

* Add Pack to sdk

* Except program_option from nits check

* No Default::default

(cherry picked from commit 58542cf7f6)

# Conflicts:
#	ci/nits.sh

* Fix conflict

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-18 04:31:09 +00:00
a20e954a16 Restore --expected-shred-version argument for mainnet-beta (#12300)
(cherry picked from commit 9410eab2af)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-17 01:20:25 +00:00
1f69b125ce Remove client resends (#12290) (#12296)
* Remove resends from client send_tx methods

* Retry status queries until blockhash expires

(cherry picked from commit a79790dea6)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-17 01:01:40 +00:00
0196c83846 Fix panic in BanksServer (#12293) (#12295)
Fixes #12167

(cherry picked from commit 3ecb390b10)

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-09-17 00:36:30 +00:00
37175d0cdf Fix off-by-one max payload checks
(cherry picked from commit f6cda2579f)
2020-09-16 17:05:09 -07:00
a6e73acfa4 Rework snapshot download logic to be more forgiving when --expected-shred-version is not provided (#12289)
(cherry picked from commit 98cfe92745)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-16 21:37:57 +00:00
f00c504555 RPC: Limit request payload size to 50kB (#12287)
(cherry picked from commit 32dcce0ac1)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-16 21:26:31 +00:00
19eb73d645 docs: Fix 'Description will go into a meta tag in head' meta tag (bp #12277) (#12279)
* Fix 'Description will go into a meta tag in head' meta tag

(cherry picked from commit 5d682d2e05)

* Update index.js

(cherry picked from commit c231bb7154)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-16 16:56:26 +00:00
d35dc79ee7 RPC sendTransaction now returns transaction logs on simulation failure (bp #12267) (#12276)
* RPC sendTransaction now returns transaction logs on simulation failure

(cherry picked from commit 749208fa32)

* Remove stale comment

(cherry picked from commit c6eea94edc)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-16 16:45:09 +00:00
2316846c53 solana-tokens: Add capability to perform the same transfer to a batch of recipients (bp #12259) (#12266)
* solana-tokens: Add capability to perform the same transfer to a batch of recipients (#12259)

* Add transfer-amount argument, use simplified input-csv

* Add transfer-amount to readme

(cherry picked from commit a48cc073cf)

# Conflicts:
#	tokens/src/commands.rs
#	tokens/tests/commands.rs

* Fix build

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-16 06:21:40 +00:00
c77fe54629 CLI: Use Base58 encoding rather than deprecated Binary for TX decode (#12265)
(cherry picked from commit 83f93fed02)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-16 05:43:38 +00:00
953c40a9e3 Improve solana-tokens UX (#12253) (#12260)
* Fix computed banks port

* Readme incorrect

* Return error if csv cannot be read

* Move column headers over columns

* Add dry-run check for sender/fee-payer balances

* Use clap requires method for paired args

* Write transaction-log anytime outfile is specified

* Replace campaign-name with required db-path

* Remove bids

* Exclude new_stake_account_address from logs for non-stake distributions

* Fix readme

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-16 04:50:55 +00:00
c10f14d60b Add lockups via solana-tokens (bp #11782) (#12263)
* Add lockups via solana-tokens (#11782)

* Allow stake distributions to update lockups

* Reorg

* Add lockup test

* Fix clippy warning

(cherry picked from commit 5553732ae2)

# Conflicts:
#	tokens/Cargo.toml
#	tokens/src/commands.rs
#	tokens/src/main.rs

* Fix build

Co-authored-by: Greg Fitzgerald <greg@solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-16 03:33:39 +00:00
c3c3872f8d validator-info get/set no longer crash on invalid account data (#12258)
(cherry picked from commit 56282f0c01)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-16 01:17:45 +00:00
c539526f1e Add memory allocation support for C programs (#12254) (#12256)
(cherry picked from commit 5ab4109b7e)

Co-authored-by: Jack May <jack@solana.com>
2020-09-16 00:49:36 +00:00
8ea4c1c2c0 Friendlier error message for mapping failures (#12213) (#12255)
(cherry picked from commit 3d4b9bb00d)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-16 00:21:11 +00:00
557fee8183 Make noop a real noop (bp #12196) (#12247)
* Make noop a real noop (#12196)

* Make noop a real noop

* nudge

(cherry picked from commit 555252f435)

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-09-15 23:16:15 +00:00
1957e960ac Add BPF test program instruction monitoring (bp #11984) (#12248)
* Add BPF test program instruction monitoring (#11984)


(cherry picked from commit fab2d44abd)

* fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-09-15 23:16:01 +00:00
11ff80c64b Cache re-usable work performed by the loader (bp #12135) (#12216)
* Cache re-usable work performed by the loader (#12135)

(cherry picked from commit 3278d78f08)

# Conflicts:
#	programs/bpf/Cargo.toml
#	programs/bpf/tests/programs.rs
#	programs/bpf_loader/Cargo.toml

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-09-15 21:25:32 +00:00
7267257073 Bump version to v1.3.12 (#12249) 2020-09-15 20:15:03 +00:00
f107b9b423 Really skip private rpc port reachable checks (#12239) (#12241)
(cherry picked from commit b85e8497b5)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-15 17:43:23 +00:00
1354a0c1a3 Drop the recommendation that --expected-shred-version be set by validators (#12244)
`--expected-shred-version` is another knob for users to get wrong and is
documentation that can get stale due to cluster restarts.  Turns out
it's also generally not required anymore either because:
1. The cluster entrypoint can always be expected to be using the correct
   shred version, and that shred version will be adopted by the new node
   (earlier this was not the case when the `solana-gossip spy` node on
   mainnet-beta.solana.com:8001 ran with shred version 0)
2. On a cluster restart, `--expected-bank-hash` is a much stronger
   assertion that the validator is starting from the correct place (and
   didn't exist when `--expected-shred-version` was first recommended)

(cherry picked from commit 4ada4d43f2)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-15 17:41:36 +00:00
52ee9155b5 Bump version to v1.3.11 (#12238) 2020-09-15 10:25:22 +00:00
65a1884c7b Enable stricter check on rent-exempt accounts on testnet (#12224) (#12226)
(cherry picked from commit 241e6f1ecf)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-15 08:07:23 +00:00
c1a9c826f3 Enable retirement of rent collect in Bank::deposit() on testnet (#12223) (#12227)
(cherry picked from commit 629572831b)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-15 07:53:36 +00:00
d9d8ec480a Enable eager-rent-collect-across-gapped-epochs bugfix (#12219) (#12222)
(cherry picked from commit 7d48339b7c)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-15 06:14:35 +00:00
b5c7ad3a9b Add new validator options for running in more restrictive environments (bp #12191) (#12218)
* Add --restricted-repair-only-mode flag

(cherry picked from commit 63a67f415e)

* Add --gossip-validator argument

(cherry picked from commit daae638781)

* Documenet how to reduce validator port exposure

(cherry picked from commit c8f03c7f6d)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-15 04:26:23 +00:00
771ff65fb4 Faucet: Improve error handling (#12215)
(cherry picked from commit af2262cbba)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-15 01:31:02 +00:00
a5bf59b92a patches default impl for crds filter (#12199) (#12200)
In CrdsFilter.mask all bits after mask_bits are set to 1:
https://github.com/solana-labs/solana/blob/555252f4/core/src/crds_gossip_pull.rs#L65
However the default implementation, sets both mask and mask_bits to zero
which is inconsistent with CrdsFilter::compute_mask for a mask_bits of
zero.

This commit changes the default implementation by setting mask to
`!0u64` (i.e all bits set to one). As a result, for the default crds
filter, `test_mask` will always return true, whereas previously it was
always returning false.
https://github.com/solana-labs/solana/blob/555252f4/core/src/crds_gossip_pull.rs#L85

This is only used in tests and benchmarks, but causes some benchmarks to
be misleading by short circuiting in this line:
https://github.com/solana-labs/solana/blob/555252f4/core/src/crds_gossip_pull.rs#L429

(cherry picked from commit d6ec03f13c)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-13 14:10:42 +00:00
8dc019ae98 Gate pointer alignment enforcement (bp #12176) (#12188)
* Gate pointer alignment enforcement (#12176)

(cherry picked from commit ae7b15f062)

# Conflicts:
#	programs/bpf/tests/programs.rs

* Fix conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-09-12 00:06:39 +00:00
61dcab8c07 Update commitment options (#12173) (#12189)
(cherry picked from commit 3c69cd6d61)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-11 19:24:16 +00:00
640bf7015f Check bank capitalization (bp #11927) (#12184)
* Check bank capitalization (#11927)

* Check bank capitalization

* Simplify and unify capitalization calculation

* Improve and add tests

* Avoid overflow and inhibit automatic restart

* Fix test

* Tweak checked sum for cap. and add tests

* Fix broken build after merge conflicts..

* Rename to ClusterType

* Rename confusing method

* Clarify comment

* Verify cap. in rent and inflation tests

Co-authored-by: Stephen Akridge <sakridge@gmail.com>
(cherry picked from commit de4a613610)

# Conflicts:
#	Cargo.lock
#	accounts-bench/Cargo.toml

* Fix conflict 1/2

* Fix conflict 2/2

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-11 18:04:10 +00:00
db1f57162a Fix propagation on startup from snapshot (#12177) (#12182)
(cherry picked from commit 9c490e06b0)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-11 10:04:55 +00:00
bbddffa805 solana-validator --rpc-bind-address argument now works as expected (bp #12168) (#12174)
* `solana-validator --rpc-bind-address` argument now works as expected

(cherry picked from commit 6f325d4594)

* Update bootstrap-validator.sh

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-10 22:02:50 +00:00
61cf432477 Update commitment options (#12171) (#12172)
(cherry picked from commit 361e5322e4)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-10 13:55:48 -06:00
9396618c12 Calc size ahead of time to alloc once (#12154) (#12169)
(cherry picked from commit fd47d38e59)

Co-authored-by: Jack May <jack@solana.com>
2020-09-10 19:17:20 +00:00
398f12dcc5 Program subscriptions now properly check results len and token program id (#12139) (#12141)
(cherry picked from commit 4431080066)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-09 22:23:11 +00:00
796624adf9 uses rust intrinsics to convert hashes to u64 (#12097) (#12133)
(cherry picked from commit 28f2fa3fd5)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-09 16:33:15 +00:00
f6e266eff0 Activate new bpf loader on devnet (#12124)
(cherry picked from commit f54941fa15)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-09 05:48:18 +00:00
ed237af4d8 Prevent unbound memory growth by blockstore_processor (#12110) (#12122)
* Prevent unbound memory growth by blockstore_processor

* Promote log to info! considering infrequency

* Exclude the time of freeing from interval...

* Skip not-shrinkable slots even if forced

* Add comment

(cherry picked from commit c274e26eb8)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-09 04:09:27 +00:00
415c80c204 Bump version to v1.3.10 2020-09-09 01:29:39 +00:00
e45f1df5dd Reduce cap by rent's leftover as temporary measure (#12111) (#12118)
* Reduce cap by rent's leftover as temporary measure

* Reset testnet cap. on start and more logs

(cherry picked from commit 5b2442d54e)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-08 20:02:46 +00:00
d26a809f1f getMinimumBalanceForRentExemption now only responds to valid account lengths (#12116)
(cherry picked from commit 9e96180ce4)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-08 18:50:22 +00:00
d1fdc96969 Add support for deprecated loader (bp #11946) (#12114)
* Add support for deprecated loader (#11946)


(cherry picked from commit ae0fd3043a)

* fix version

Co-authored-by: Jack May <jack@solana.com>
2020-09-08 18:41:29 +00:00
a5cad340ed Forward transactions to the expected leader instead of your own TPU port (bp #12004) (#12108)
* Forward transactions to the expected leader instead of your own TPU port (#12004)

* Use PoHRecorder to send to the right leader

* cleanup

* fmt

* clippy

* Cleanup, fix bug

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit c67f8bd821)

# Conflicts:
#	banks-server/Cargo.toml

* Update Cargo.toml

Co-authored-by: anatoly yakovenko <anatoly@solana.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-08 16:51:33 +00:00
2341394e8b Rename to ClusterType and restore devnet compat. (manual bp) (#12069)
* Rename to ClusterType and restore devnet compat.

* De-duplicate parse code and add comments

* Adjust default Devnet genesis & reduce it in tests
2020-09-08 23:54:54 +09:00
180224114a Fix RPC transaction method configs serialization (#12100) (#12102)
(cherry picked from commit 9940870c89)

Co-authored-by: Justin Starry <justin@solana.com>
2020-09-08 06:12:26 +00:00
58312655b4 Fix signature subscription panic (#12077) (#12092) 2020-09-07 10:31:25 +00:00
f3f86f43ee Compress snapshot archive within the validator to reduce system dependencies, and default to zstd compression (bp #12085) (#12087)
* Compress snapshot archive within the validator to reduce system dependencies

(cherry picked from commit d3750b47d2)

* Default snapshot compression to zstd instead of bzip2 for quicker snapshot generation

(cherry picked from commit 9ade73841f)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-07 06:55:38 +00:00
aac38516da cli: add block and first-available-block commands (bp #12083) (#12084)
* Add first-available-block command

(cherry picked from commit 6677996369)

* Add block command

(cherry picked from commit 27752c4e4d)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-06 20:53:44 +00:00
cd139b8185 Fix bad predicate with malformed gossip votes (#12072) (#12078)
(cherry picked from commit eabc63cdcd)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-06 05:35:00 +00:00
6a74bc1297 validator: Add --enable-bigtable-ledger-upload flag (bp #12040) (#12057)
* Add --enable-bigtable-ledger-upload flag

(cherry picked from commit d8e2038dda)

* Relocate BigTable uploader to ledger/ crate

(cherry picked from commit 91a56caed2)

# Conflicts:
#	ledger/Cargo.toml

* Cargo.lock

(cherry picked from commit 2b8a521562)

* Add BigTableUploadService

(cherry picked from commit bc7731b969)

* Add BigTableUploadService

(cherry picked from commit bafdcf24f5)

* Add exit flag for bigtable upload operations

(cherry picked from commit d3611f74c8)

* Remove dead code

(cherry picked from commit cd3c134b58)

* Request correct access

(cherry picked from commit 4ba43c29ce)

* Add LARGEST_CONFIRMED_ROOT_UPLOAD_DELAY

(cherry picked from commit b64fb295a1)

* Resolve merge conflicts

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-05 17:09:32 +00:00
e9a2dd0bc1 Add --show-transactions flag to transaction-history command (#12071)
(cherry picked from commit 2332dd774f)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-05 16:52:38 +00:00
feed960ef3 Bigtable bug fixes (#12058) (#12060)
* Accommodate stricted get_bincode_cell in get_confirmed_signatures_for_address

* Sort signatures newest-oldest, even within slot

(cherry picked from commit 879c98efeb)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-05 03:31:35 +00:00
ae8acada8c Add unlock epochs for blake3 (#12054) (#12056)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit a13efc52b3)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-04 23:33:53 +00:00
357a341db5 Bump getMultipleAccounts input limit (#12050) (#12052)
(cherry picked from commit 954b017f85)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-04 18:58:45 +00:00
d0f715cb23 adds new CrdsFilterSet type for Vec<CrdsFilter> (#12029) (#12048)
(cherry picked from commit 114c211b66)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-04 14:10:12 +00:00
0fc0378347 fix solana-install syntax (#12043)
```
solana-install info
solana-install deploy
solana-install update
solana-install run
```

(cherry picked from commit 38f36a7a7a)

Co-authored-by: pk <4514654+pkrasam@users.noreply.github.com>
2020-09-04 05:40:47 +00:00
aa3bdd3730 Revert signature-notification format change (bp #12032) (#12038)
* Revert signature-notification format change (#12032)

* Use untagged RpcSignatureResult enum to avoid breaking downstream consumers of current signature subscriptions

* Clean up client duplication

* Clippy

(cherry picked from commit 39246f9dd7)

# Conflicts:
#	core/src/rpc_pubsub.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-04 01:34:49 +00:00
962aed0961 Mark a withdraw authority as non-circulating (#12033) (#12036)
(cherry picked from commit 2c091e4fca)

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-09-04 00:46:10 +00:00
bd76810623 Bump version to 1.3.9 (#12034) 2020-09-03 16:55:24 -07:00
58fe45f3e5 Don't query modern Ledger wallet app version with deprecated payload size (#12031)
(cherry picked from commit dff8242887)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-09-03 21:55:55 +00:00
01a9360dbe builds crds filters without looping over filters (#11998) (#12028)
(cherry picked from commit bc7adb97ed)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-09-03 21:44:00 +00:00
f44d9d770a Rpc: add getMultipleAccounts endpoint (bp #12005) (#12024)
* Rpc: add getMultipleAccounts endpoint (#12005)

* Add rpc endpoint to return the state of multiple accounts from the same bank

* Add docs

* Review comments: Dedupe account code, default to base64, add max const

* Add get_multiple_accounts to rpc-client

(cherry picked from commit b22de369b7)

* Use new_response for consistency

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-09-03 19:52:46 +00:00
79d9d28e7d Update token amounts in parsed instructions to retain full precision (#12020) (#12022)
(cherry picked from commit b940da4040)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-03 19:22:24 +00:00
d273d1acb2 Fix forwarding calculation (#12014) (#12019)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 3f39ab1e04)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-03 10:36:56 +00:00
991f188f23 Fix test (#12013) (#12017)
(cherry picked from commit 36a294aae0)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-03 17:16:59 +09:00
8f02fdcc11 Purge storage rewards from accounts db for testnet (#11996) (#12011)
* Purge storage rewards from accounts db for testnet

* Fix test failing only on stable

(cherry picked from commit fb71ee60aa)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-03 08:01:37 +00:00
3e78850331 Move forward token2 native mint testnet epoch (#12007) (#12010)
(cherry picked from commit 4b1cb51a3e)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-03 07:48:55 +00:00
f29a741582 Clarify comments and names in inflation code (#11977) (#12008)
(cherry picked from commit 89bca6110a)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-03 06:47:13 +00:00
3e6052faca Bigtable method to return a single row of data (#11999) (#12002)
(cherry picked from commit b041afe1be)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-02 21:01:58 +00:00
0b0710d522 Use conventional special self notation (#11990) (#11997)
(cherry picked from commit 46aac4819a)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-02 11:59:16 +00:00
2f3fced8a8 Switch account hashing to blake3 (#11969) (#11992)
* Switch account hashing to blake3

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit af08221aec)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-02 08:40:07 +00:00
a5832366a7 Detect and notify when deserializable shreds are available (bp #11816) (#11988)
* Detect and notify when deserializable shreds are available (#11816)

* Add logic to check for complete data ranges

* Add RPC signature notification

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 1c1a3f979d)

# Conflicts:
#	accounts-bench/Cargo.toml
#	core/src/rpc_pubsub.rs

* Fix conflicts

Co-authored-by: carllin <wumu727@gmail.com>
Co-authored-by: Carl <carl@solana.com>
2020-09-02 06:38:10 +00:00
f26ff6d6b2 Docs.rs version replacement (#11981) (#11982)
(cherry picked from commit b720921c83)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-09-01 13:52:57 -06:00
57f149e415 Ensure that the spl-token 2 native mint account is owned by the spl-token 2 program. (#11974)
Workaround for https://github.com/solana-labs/solana-program-library/issues/374 until spl-token 3 is shipped

(cherry picked from commit 7341e60043)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-01 18:16:22 +00:00
8ece3847f9 Add tests for the Debug and activation Vecs (#11926) (#11968)
* Add tests for the Debug and activation Vecs

* Rename a bit

(cherry picked from commit 11ac4eb21d)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-09-01 09:54:27 +00:00
0d23ad00b1 Update to rayon 1.4.0 (#11898) (#11902)
(cherry picked from commit c4253dc0f9)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-09-01 04:53:39 +00:00
d9684f99c3 Remove log (#11949) (#11961)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 7641b60a2b)

Co-authored-by: carllin <wumu727@gmail.com>
2020-09-01 01:05:20 +00:00
6ea9c249d7 Add missing backslash to solana-validator command (#11958)
(cherry picked from commit a19f696a42)

Co-authored-by: Richard Ayotte <rich.ayotte@gmail.com>
2020-08-31 23:43:22 +00:00
1e02069f86 Increase message_processor logging to error level (#11945) (#11948)
(cherry picked from commit 9b9d559312)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-31 21:26:35 +00:00
b179ed0b90 Remove encrypted secrets not required by the main public CI (bp #11942) (#11944)
* Remove unused GEOLOCATION_API_KEY

(cherry picked from commit f78594dfc1)

* Remove secrets not required by the main public CI

(cherry picked from commit 278f2fe078)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-31 18:59:52 +00:00
eb65ff750e Simplify get_programs(), specify a real Preview activation epoch for new BPFLoader (#11930)
(cherry picked from commit f385af25e5)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-31 17:21:07 +00:00
663dc9959f Bump version to v1.3.8 2020-08-31 10:18:42 -07:00
53ed6a2298 Fix use-deprecated-loader arg (#11921) (#11929)
(cherry picked from commit 6234909373)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-31 09:53:34 +00:00
47962f3e80 Use DNS for devnet/testnet entrypoints (#11922)
(cherry picked from commit e4d7e1fe3f)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-31 07:53:02 +00:00
d3a16e4e13 Bump RPC banks up 1 port to avoid web3.js wss port conflict
(cherry picked from commit f8bb93a0f4)
2020-08-30 23:56:19 -07:00
250f5a8196 Add new trusted validator for testnet 2020-08-30 22:51:42 -07:00
83a17acc17 Add methods to adjust rent burn percentage, and hashes per tick 2020-08-30 16:50:43 -07:00
ed34b930e5 modify-genesis now writes elsewhere and produces a full genesis.tar.bz2 2020-08-30 16:47:27 -07:00
95816f7db9 Add ability to fork a local cluster from the latest mainnet-beta snapshot 2020-08-30 16:47:18 -07:00
e652c27142 Add bank-hash subcommand (#11915)
(cherry picked from commit a07980536a)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-30 19:05:04 +00:00
0811cb2966 Fix get_parsed_token_accounts (#11907) (#11909)
(cherry picked from commit 60c7ac6f95)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-29 19:53:05 +00:00
311b419f8a Bump version to v1.3.7 2020-08-29 11:42:14 -07:00
acb992c3be Update to spl-token 2 2020-08-29 09:23:20 -07:00
61aca235a3 Bump spl-token version 2020-08-29 03:24:36 -06:00
bad0709ff1 Update to token pack/unpack changes (bp #11900) (#11903)
* Update to token pack/unpack changes (#11900)

(cherry picked from commit 2eff9a19c3)

# Conflicts:
#	account-decoder/Cargo.toml
#	core/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-29 05:46:07 +00:00
2a649e990d Update spl-token to v2.0 (bp #11884) (#11897)
* Update spl-token to v2.0 (#11884)

* Update account-decoder to spl-token v2.0

* Update transaction-status to spl-token v2.0

* Update rpc to spl-token v2.0

* Update getTokenSupply to pull from Mint directly

* Fixup to spl-token v2.0.1

(cherry picked from commit 76be36c9ce)

# Conflicts:
#	Cargo.lock
#	account-decoder/Cargo.toml
#	core/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-28 23:36:53 +00:00
1a25889f72 Take v0.19.3 of perf libs which improves sigverify perf 2x (#11894) (#11895)
(cherry picked from commit 9393dce1ff)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-28 20:37:26 +00:00
e15dca6961 Update devnet cluster docs since reboot 2020-08-28 10:36:11 -07:00
bb12f48014 Add SolFlare as stake-supporting wallet (#11891) (#11892)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
(cherry picked from commit 8ba3a33129)

Co-authored-by: Dan Albert <dan@solana.com>
2020-08-28 16:17:24 +00:00
c6416fca6e Bump version to 1.3.6 (#11890) 2020-08-28 16:58:59 +02:00
2f5d60bef7 Update epoch gating (#11880) 2020-08-27 21:17:45 -07:00
ef1a9df507 Small cleaning around consensus/bank_forks (#11873) (#11881)
(cherry picked from commit d8c529a9b8)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-28 01:06:21 +00:00
d2611f54a0 Make ledger-tool accounts print rent_epoch and slot (#11845) (#11870)
(cherry picked from commit 57174cdabe)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-27 04:49:24 +00:00
6117f8d64e Add SolFlare guide to docs (#11843) (#11868)
(cherry picked from commit 36e8441149)

Co-authored-by: Dan Albert <dan@solana.com>
2020-08-26 23:13:43 +00:00
67d9faaefc Bump compute budget (#11864) (#11867)
* Bump compute budget

* nudge

(cherry picked from commit ea179ad762)

Co-authored-by: Jack May <jack@solana.com>
2020-08-26 23:12:01 +00:00
aaa551ca7c Merge pull request #11857 from mvines/cache (#11863)
ci: cargo-target-cache is now channel specific
(cherry picked from commit 5c7080c1f4)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-26 19:50:06 +00:00
85df8cb4c5 Accounts hash calculation metrics (#11433) (#11860)
(cherry picked from commit 770d3d383c)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-26 19:31:52 +00:00
65f189d932 Rpc: Filter accounts with invalid mints from get_parsed_token_accounts (#11844) (#11859)
* Filter out accounts with invalid mints from get_parsed_token_accounts

* Explicit docs

(cherry picked from commit 1988ee9cd6)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-26 19:02:48 +00:00
99001f7f2e Bump MacOS nofile recommendation message (#11835)
(cherry picked from commit 8841c3398c)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-08-25 19:57:08 +00:00
39eeb0142e Add SystemInstruction::CreateAccount support to CPI (bp #11649) (#11831)
* Add SystemInstruction::CreateAccount support to CPI (#11649)

(cherry picked from commit e9b610b8df)

# Conflicts:
#	programs/bpf_loader/src/syscalls.rs
#	runtime/src/bank.rs
#	sdk/src/instruction.rs

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 19:52:27 +00:00
d5d1a344c3 Switch programs activation to whole-set based gating (bp #11750) (#11837)
* Switch programs activation to whole-set based gating (#11750)

* Implement Debug for MessageProcessor

* Switch from delta-based gating to whole-set gating

* Remove dbg!

* Fix clippy

* Clippy

* Add test

* add loader to stable operating mode at proper epoch

* refresh_programs_and_inflation after ancestor setup

* Callback via snapshot; avoid account re-add; Debug

* Fix test

* Fix test and fix the past history

* Make callback management stricter and cleaner

* Fix test

* Test overwrite and frozen for native programs

* Test epoch callback with genesis-programs

* Add assertions for parent bank

* Add tests and some minor cleaning

* Remove unsteady assertion...

* Fix test...

* Fix DOS

* Skip ensuring account by dual (whole/delta) gating

* Fix frozen abi implementation...

* Move compute budget constatnt init back into bank

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
(cherry picked from commit db4bbb3569)

# Conflicts:
#	genesis-programs/src/lib.rs

* Fix conflicts

Co-authored-by: Jack May <jack@solana.com>
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-25 19:00:41 +00:00
62e3c084d3 Update system tuning and docs (bp #11680) (#11830)
* Sync FD limit and max maps to 500k

(cherry picked from commit 11951eb009)

* Expand system tuning docs

(cherry picked from commit 5354df8c1c)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-08-25 17:13:27 +00:00
3027ceb53a Document how to validate account pubkey (#11821) (#11833)
(cherry picked from commit 2c5366f259)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-25 17:11:09 +00:00
4e604e1211 Add (hidden) --use-deprecated-loader flag to solana deploy (#11828)
(cherry picked from commit de736e00ad)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-25 16:56:29 +00:00
6749bfd1d2 Gate aligned program heap (bp #11808) (#11814)
* Gate aligned program heap (#11808)


(cherry picked from commit c2e5dae7ba)

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 15:57:15 +00:00
d05b39c4f6 Specify loader when bootstrapping bpf programs (#11571) (#11822)
(cherry picked from commit 0a94e7e7fa)

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 07:56:11 -07:00
c8e1fbd568 Update comment (#11826) (#11827)
(cherry picked from commit dbd079f54c)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-25 14:48:00 +00:00
ad36ddedf1 CPI support for bpf_loader_deprecated (bp #11695) (#11824)
* CPI support for bpf_loader_deprecated (#11695)

(cherry picked from commit 46830124f8)

# Conflicts:
#	programs/bpf_loader/src/syscalls.rs

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 11:02:06 +00:00
08bece7651 More efficient padding (#11656) (#11823)
(cherry picked from commit f1ba2387d3)

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 10:10:59 +00:00
f162c6d1d0 Align host addresses (bp #11384) (#11817)
* Align host addresses (#11384)

* Align host addresses

* support new program abi

* update epoch rollout

* Enforce aligned pointers in cross-program invocations

(cherry picked from commit 9290e561e1)

# Conflicts:
#	core/src/validator.rs
#	genesis-programs/src/lib.rs
#	programs/bpf_loader/src/deprecated.rs
#	programs/bpf_loader/src/lib.rs
#	sdk/src/entrypoint_native.rs
#	sdk/src/lib.rs

* resolve conflicts

* nudge

Co-authored-by: Jack May <jack@solana.com>
2020-08-25 07:23:20 +00:00
f3904b5765 sdk: Make PubKey::create_program_address available in program unit tests (bp #11745) (#11810)
* sdk: Make PubKey::create_program_address available in program unit tests (#11745)

* sdk: Make PubKey::create_program_address available in program unit tests

This finishes the work started in #11604 to have
`create_program_address` available when `target_arch` is not `bpf` and
`program` is enabled.  Otherwise, there is an undefined reference error
to `sol_create_program_address`, which is only defined in `bpf`.

A small test to simply call the function has been added in order to catch
the problem in the future.

The default dependency to `solana-sdk/default` doesn't cause a problem with
existing programs since `build.sh` always specifies
`--no-default-features`, and programs in `solana-program-library` all
use it too.

* Add `default-features = false` for inter-program dependencies

Fix the build error found during CI.  The `--no-default-features` flag
only applies to the top-level package, and not to dependencies.  A program that
depends on another program, i.e. `128bit` which depends on `128bit_dep`,
must specify `default-features = false` when including that package,
otherwise the `bpf` build will try to pull in default packages, which
includes `std`.

(cherry picked from commit 9a366281d3)

# Conflicts:
#	programs/bpf/rust/128bit/Cargo.toml
#	programs/bpf/rust/invoke/Cargo.toml
#	programs/bpf/rust/many_args/Cargo.toml
#	programs/bpf/rust/param_passing/Cargo.toml

* resolve conflicts

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
Co-authored-by: Jack May <jack@solana.com>
2020-08-24 20:41:54 +00:00
67bf7515a7 Aligned program heap (#11657) (#11812)
(cherry picked from commit f8606fca4f)

Co-authored-by: Jack May <jack@solana.com>
2020-08-24 20:12:58 +00:00
0dcbc6d4d1 The constraints on compute power a program can consume is limited only to its instruction count (bp #11717) (#11800)
* The constraints on compute power a program can consume is limited only to its instruction count (#11717)

(cherry picked from commit 8d362f682b)

# Conflicts:
#	programs/bpf/Cargo.toml
#	programs/bpf_loader/Cargo.toml
#	programs/bpf_loader/src/lib.rs
#	programs/bpf_loader/src/syscalls.rs
#	runtime/src/bank.rs
#	sdk/src/instruction.rs

* Resolve conflicts

* nudge

Co-authored-by: Jack May <jack@solana.com>
2020-08-24 17:27:40 +00:00
79a2ccabb4 Return an error from create_program_address syscall (bp #11658) (#11789)
* Return an error from create_program_address syscall (#11658)

(cherry picked from commit 750e5344f1)

# Conflicts:
#	programs/bpf_loader/src/syscalls.rs

* resolve conflicts

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-08-24 04:30:29 +00:00
f5e583ef0d solana-gossip spy can now be given an identity keypair (--identity argument) (#11797)
(cherry picked from commit a1e2357d12)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-23 01:14:42 +00:00
132550cd7a RPC: Allow the sendTransaction preflight commitment level to be configured (bp #11792) (#11794)
* Allow the sendTransaction preflight commitment level to be configured

(cherry picked from commit b660704faa)

* rebase

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-22 16:41:25 +00:00
08a789323f Fix typo 2020-08-22 09:22:41 -07:00
2d9781b101 Add option for repairing only from trusted validators (#11752) (#11773)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit c8d67aa8eb)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-21 20:40:37 -07:00
6540d3c63e Make BPF Loader static (bp #11516) (#11790)
* Make BPF Loader static (#11516)

(cherry picked from commit 7c736f71fe)

# Conflicts:
#	Cargo.lock
#	core/Cargo.toml
#	core/src/lib.rs
#	core/src/validator.rs
#	genesis-programs/src/lib.rs
#	programs/bpf_loader/src/deprecated.rs
#	programs/bpf_loader/src/lib.rs
#	sdk/src/entrypoint_native.rs
#	sdk/src/lib.rs

* resolve conflicts

Co-authored-by: Jack May <jack@solana.com>
2020-08-22 01:54:50 +00:00
a227b813d8 Feature check CPI up front (#11652) (#11787)
(cherry picked from commit 4196686acf)

Co-authored-by: Jack May <jack@solana.com>
2020-08-22 01:27:33 +00:00
2b4e0abb43 fix region checks (#11651) (#11785)
(cherry picked from commit 768b386f0a)

Co-authored-by: Jack May <jack@solana.com>
2020-08-22 01:14:13 +00:00
cdf6ff7907 Fix filter_crds_values output alignment with the inputs (#11734) (#11781)
(cherry picked from commit 418b483af6)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-08-21 20:56:26 +00:00
6775e01747 Add StakeInstruction::AuthorizeWithSeed (#11700) (#11779)
* Add StakeInstruction::AuthorizeWithSeed

* chore: add authorize-with-seed to web.js

* fix: add address_owner

* Add SystemInstruction::TransferWithSeed

* Update ABI hash

* chore: better variable names

* Add AuthorizeWithSeedArgs

* Reorder and rename arguments for clarity

(cherry picked from commit f02a78d8ff)

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-08-21 19:39:36 +00:00
4be9d5030d Squash supermajority root on blockstore replay at startup (#11727) (#11765)
(cherry picked from commit f7adb68599)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-21 08:20:09 +00:00
a9f914da8e Cleanup test utilities (#11766)
* Add voting utility

* Add blockstore utility

Co-authored-by: Carl <carl@solana.com>
2020-08-21 06:52:01 +00:00
096375584b Rpc: Return error if block does not exist (#11743) (#11749)
* Return error if block does not exist

* Update docs

(cherry picked from commit 747f8d5877)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-20 23:26:55 +00:00
d3ab1ec9cf Do not delete any ledger when --limit-ledger-size is not provided (#11741)
(cherry picked from commit ea88bbdc33)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-20 19:27:48 +00:00
e41d9c87c5 Bump spl-token to clean up magic number (bp #11726) (#11738)
* Bump spl-token to clean up magic number (#11726)

(cherry picked from commit 2fd2aceeb2)

# Conflicts:
#	account-decoder/Cargo.toml
#	core/Cargo.toml

* Fix conflicts and toml order

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-20 18:02:28 +00:00
e938925b95 Add BanksClient (#11721)
Cherry-picked from #10728, but without the changes to solana-tokens
2020-08-19 22:24:24 -06:00
6c03e6c4b5 Allow votes to timestamp subsequent slots with the same timestamp (#11715) (#11720)
(cherry picked from commit b1bc901a66)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-20 00:40:04 +00:00
abce60efdf Bump version to 1.3.5 2020-08-19 20:19:34 +00:00
b36510a565 Skip grace blocks if previous leader was on different fork (#11679) (#11709)
* Start leader blocks if previous leader was on different fork

* Fix test

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 5f8d34feb3)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-19 09:29:08 +00:00
a8220ae653 The end_slot argument to purge is now optional (#11707)
(cherry picked from commit d1500ae229)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-19 04:41:54 +00:00
2c642d4639 Filter push/pulls from spies (#11620) (#11703)
* Filter push/pulls from spies

* Don't pull from peers with shred version == 0, don't push to people with shred_version == 0

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 0f0a2ddafe)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-19 03:20:43 +00:00
04eb35e679 Remove old signatureSubscribe info (#11704) (#11706)
(cherry picked from commit 35828e8fe7)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-19 02:44:29 +00:00
8738241567 Get index (#11694) (#11697)
(cherry picked from commit 55ce2ebd53)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-18 18:54:17 +00:00
0ef9185c9e Fully enable cross program support in mainnet-beta
(cherry picked from commit 9e89a963d9)
2020-08-18 06:39:24 -07:00
e41004f185 rpc: rework binary encoding. BREAKING CHANGE (bp #11646) (#11674)
* Add base64 (binary64) encoding for getConfirmedTransaction/getConfirmedBlock

(cherry picked from commit b5f3ced860)

* decode-transaction now supports binary64

(cherry picked from commit 2ebc68a9e2)

# Conflicts:
#	cli/src/cli.rs

* Rework UiAccountData encode/decode such that it works from Rust

(cherry picked from commit 757e147b3b)

# Conflicts:
#	account-decoder/src/lib.rs
#	cli/src/cli.rs

* Rename Binary64 to Base64.  Establish Base58 encoding

(cherry picked from commit adc984a225)

# Conflicts:
#	account-decoder/src/lib.rs

* Remove "binary" encoding. Document "encoding" as required

(cherry picked from commit e5281157fa)

* resolve conflicts

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-18 02:53:10 +00:00
41cad9ccd5 Faucet: Add per-request cap (#11665) (#11669)
* Add per-request cap; also use clap-utils

* Clean up arg names and take cap inputs as SOL

(cherry picked from commit 71d5409b3b)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-18 01:00:11 +00:00
d9ae092637 Re-do rent collection check on rent-exempt account (bp #11349) (#11655)
* Re-do rent collection check on rent-exempt account (#11349)

* wip: re-do rent collection check on rent-exempt account

* Let's see how the ci goes

* Restore previous code

* Well, almost all new changes are revertable

* Update doc

* Add test and gating

* Fix tests

* Fix tests, especially avoid to change abi...

* Fix more tests...

* Fix snapshot restore

* Align to _new_ with better uninitialized detection

(cherry picked from commit 23fa84b322)

# Conflicts:
#	core/src/rpc_subscriptions.rs

* Fix conflicts

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-17 07:20:24 +00:00
9015e47cc5 Rpc: Add until parameter for getConfirmedSignaturesForAddress2 (#11644) (#11648)
* Refactor bigtable apis to accept start and end keys

* Make helper fn to deserialize cell data

* Refactor get_confirmed_signatures_for_address to use get_row_data range

* Add until param to get_confirmed_signatures_for_address

* Add until param to blockstore api

* Plumb until through client/cli

* Simplify client params

(cherry picked from commit 6c5b8f324a)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-15 17:59:35 +00:00
15b92e9c8d Bigtable: Use index to filter address-signatures correctly (#11622) (#11643)
* Use index to filter address-signatures correctly

* Pull additional keys to account for filtered records

* Clarify variable name

(cherry picked from commit 820af533a4)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-14 21:02:13 +00:00
c72bd900cd Bump version to 1.3.4 2020-08-14 18:29:46 +00:00
ecb75ccdcf short_vec::decode_len() returns wrong size for aliased values (bp #11624) (#11631)
* Add failing test for decoding ShortU16 alias values

(cherry picked from commit 338f66f9aa)

* Factor out ShortU16 deser vistor logic to helper

(cherry picked from commit 6222fbcc66)

* Reimplement decode_len() with ShortU16 vistor helper

(cherry picked from commit 30dbe257cf)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-08-14 15:33:00 +00:00
cf22e7a273 Restore CLI usage page (#11619) (#11621)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
(cherry picked from commit 6194a29875)

Co-authored-by: Dan Albert <dan@solana.com>
2020-08-13 22:17:47 +00:00
4f7bfbdbe9 RPC: getConfirmedSignaturesForAddress2 only returns confirmed signatures (#11615) (#11618)
* Add failing test case

* Limit to only rooted slots

(cherry picked from commit 99fb36fe45)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-13 18:19:54 +00:00
011e325359 Ensure highest_confirmed_root only grows (#11596) (#11608)
* Split out commitment-cache update for unit testing

* Add failing test

* Ensure highest_confirmed_root only grows

(cherry picked from commit 4da1e9833c)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-13 08:13:00 +00:00
ba05852475 generate_pull_response optimization (#11597) (#11606)
(cherry picked from commit f519fdecc2)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-13 06:53:45 +00:00
8ee656edde Return blockstore signatures-for-address despite bigtable error (#11594) (#11599)
(cherry picked from commit b1e452f876)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-13 01:12:16 +00:00
311d9a56c4 Add incoming pull response counter (#11591) (#11592)
(cherry picked from commit 54137e3446)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-12 22:17:50 +00:00
b9f46fd904 Fix assertion failure (#11572) (#11590)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 473b5249e3)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-12 20:19:54 +00:00
39f2d346b8 Fix typo: epoch => slot... (#11573) (#11580)
(cherry picked from commit 51e818ad64)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-12 09:27:01 +00:00
4a27bfa2fe Bump version to 1.3.3 2020-08-12 00:43:50 +00:00
69e53ec92a Gossip log (#11555) (#11562)
Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 1b238dd63e)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-11 22:55:18 +00:00
b8ac76066c Move cluster slots update to separate thread (#11523) (#11558)
* Add cluster_slots_service

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 7ef50a9352)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-11 21:24:34 +00:00
1a1d7744bd Add getTokenLargestAccounts to docs (#11560) (#11564)
(cherry picked from commit 697a0e2947)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-11 21:21:35 +00:00
61af485732 filter out old gossip pull requests (#11448) (#11553)
* init

* builds

* stats

* revert

* tests

* clippy

* add some jitter

* shorter jitter timer

* update

* fixup! update

* use saturating_sub

* fix filters

(cherry picked from commit 713851b68d)

Co-authored-by: anatoly yakovenko <anatoly@solana.com>
2020-08-11 19:42:32 +00:00
6a60d7bf8e Adapt RpcClient to recent token method changes (#11519) (#11548)
* Avoid skip_serializing_if since that breaks deserialization

* Adapt RpcClient to recent token method changes

(cherry picked from commit 17645ee20c)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-11 17:31:57 +00:00
53e917b54f Fix bad rent in Bank::deposit as if since epoch 0 (#10468) (#11539)
* Fix bad rent in Bank::deposit as if since epoch 0

* Remove redundant predicate

* Rename

* Start to add tests with some cleanup

* Forgot to add refactor code...

* Enchance test

* Really fix rent timing in deposit with robust test

* Simplify new behavior by disabling rent altogether

(cherry picked from commit 6c242f3fec)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-11 16:20:06 +00:00
4d49c99ac9 Fix simulateTransaction JSON-RPC docs (#11533) (#11535)
(cherry picked from commit f12fc66a69)

Co-authored-by: Justin Starry <justin@solana.com>
2020-08-11 10:26:20 +00:00
83597a5ce1 Fix solana CLI deploy (#11520) (#11530)
* Refresh blockhash for program writes and finalize transactions

* Refactor to use current api, eliminating an rpc call

* Review comment

(cherry picked from commit c0d6761f63)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-11 09:52:11 +00:00
1589a41178 Add config param to specify offset/length for single and program account info (bp #11515) (#11518)
* Add config param to specify offset/length for single and program account info (#11515)

* Add config param to specify dataSlice for account info and program accounts

* Use match instead of if

(cherry picked from commit 88ca04dbdb)

# Conflicts:
#	cli/src/cli.rs

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-11 00:03:18 +00:00
23a381b995 Fix parsing of spl-token Mint (#11512) (#11514)
* Add failing test

* Fix jsonParsed mint

(cherry picked from commit da210ddd51)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-10 21:51:20 +00:00
eb7ac42b2e Return account data size with parsed accounts (#11506) (#11511)
(cherry picked from commit 1925b0bd0b)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-10 20:09:13 +00:00
88cf5e79f5 Unified signature for create_program_address (#11460) (#11509)
(cherry picked from commit 140b2392f6)

Co-authored-by: Jack May <jack@solana.com>
2020-08-10 18:31:51 +00:00
520453e1f3 Blockstore address signatures: handle slots that cross primary indexes, and refactor get_confirmed_signatures_for_address2 (#11497) (#11508)
* Freeze address-signature index in the middle of slot to show failure case

* Secondary filter on signature

* Use AddressSignatures iterator instead of manually decrementing slots

* Remove unused method

* Add metrics

* Add transaction-status-index doccumentation

(cherry picked from commit de5fb3ba0e)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-10 17:43:00 +00:00
27815555a1 Fallback to base64 account encoding if json parse fails (#11483) (#11488)
* Fallback to base64 account encoding if json parse fails

* Remove default binary conversion

(cherry picked from commit ebc45bd73f)

Co-authored-by: Justin Starry <justin@solana.com>
2020-08-09 16:15:09 +00:00
3e483314b6 Decode native-program and sysvar accounts (bp #11463) (#11485)
* Decode native-program and sysvar accounts (#11463)

* Pass pubkey in to account-decoder for sysvars

* Decode sysvar accounts

* Decode config accounts; move validator-info lower

* Decode stake accounts

* Review comments

* Stringify any account lamports and epochs that can be set to u64::MAX

(cherry picked from commit a9f76862fb)

# Conflicts:
#	Cargo.lock
#	account-decoder/Cargo.toml

* Fix conflicts

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-09 09:18:17 +00:00
8a67504578 Add Binary64 option for account data (#11474) (#11481)
* Add Binary64 option for account data

* Decode into binary64

* Reword docs

(cherry picked from commit 068d23f298)

Co-authored-by: sakridge <sakridge@gmail.com>
2020-08-09 06:50:24 +00:00
a1b238280b Return delegated amount as UiTokenAmount (#11475) (#11477)
* Return delegated amount as UiTokenAmount

* Omit delegate and delegatedAmount when none

(cherry picked from commit 88d8d3d02a)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-09 00:01:01 +00:00
f9e07f575e Bump version to v1.3.2 2020-08-08 06:26:20 +00:00
c8bad57455 Bump version to v1.3.1 2020-08-07 19:21:41 -06:00
71654c0457 Fix cbindgen compatibility (#11455) (#11459)
(cherry picked from commit 5a7e99f283)

Co-authored-by: Jack May <jack@solana.com>
2020-08-07 23:44:49 +00:00
f9d6fb48a4 Send votes from banking stage to vote listener (#11434) (#11454)
*  Send votes from banking stage to vote listener

Co-authored-by: Carl <carl@solana.com>
(cherry picked from commit 7e25130529)

Co-authored-by: carllin <wumu727@gmail.com>
2020-08-07 19:45:40 +00:00
fa9aa0a1d7 Token Accounts: return ui_amount, decimals with decoded account (#11407) (#11453)
* Return ui_amount, decimals from token client methods

* Return ui_amount, decimals in RPC jsonParsed token accounts

* Fixup docs

* Return ui_amount, decimals in pubsub jsonParsed token accounts

* Remove unnecessary duplicate struct

* StringAmount rename

(cherry picked from commit b7c2681903)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-07 19:05:35 +00:00
9758ebfc99 Only run web3.js/explorer CI when targeting master branch (#11440)
(cherry picked from commit a3165c6a61)

Co-authored-by: Trent Nelson <trent@solana.com>
2020-08-07 06:24:42 +00:00
8be23a2bb2 Add address-based lower bound to get_confirmed_signatures_for_address2 loop (#11426) (#11432)
(cherry picked from commit 5530ee4c95)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-07 00:06:44 +00:00
4ff9a6910d Fix blockstore empty panic (#11423) (#11430)
* Add panicking test

* Add failing test: fresh transaction-status column shouldn't point at valid root 0

* Prevent transaction status match outside of primary-index bounds

* Initialize transaction-status and address-signature primer entries with Slot::MAX

* Revert "Add failing test: fresh transaction-status column shouldn't point at valid root 0"

This reverts commit cbad2a9fae.

* Revert "Initialize transaction-status and address-signature primer entries with Slot::MAX"

This reverts commit ffaeac0669.

(cherry picked from commit 1061b50665)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-08-06 23:39:01 +00:00
fd192e3641 Link fix (#11368) (#11425)
* fixes logo

* cleans up homepage on docs

* adds icon files and tightens margins

* cleans up sidenav, adds top nav items

* fixes a link

* removes icon files

Co-authored-by: Dan Albert <dan@solana.com>
(cherry picked from commit 14dcaaee6c)

Co-authored-by: Raj Gokal <rajivgokal@gmail.com>
2020-08-06 19:37:04 +00:00
a8de467ef8 Realloc not supported (#11418)
(cherry picked from commit bc4c5c5a97)

Co-authored-by: Jack May <jack@solana.com>
2020-08-06 16:24:14 +00:00
1a186beb5c Update lib.rs
(cherry picked from commit 5a63c9d535)
2020-08-06 07:58:05 -07:00
66a21ed65e Enable cross program support in mainnet-beta epoch 63
(cherry picked from commit c9b1d08218)
2020-08-06 07:58:05 -07:00
1a42a40492 RPC: Plug getConfirmedSignaturesForAddress2 into bigtable storage (bp #11395) (#11406)
* Plug getConfirmedSignaturesForAddress2 into bigtable storage

(cherry picked from commit 4222932e08)

* Upgrade help description

(cherry picked from commit 9abb7db5f8)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-06 07:14:46 +00:00
5841e4d665 Long-term ledger storage with BigTable (bp #11222) (#11392)
* ledger-storage-bigtable boilerplate

(cherry picked from commit 9d2293bb32)

* $ wget https://pki.goog/roots.pem -O pki-goog-roots.pem

(cherry picked from commit 1617a025ce)

* Add access_token module

(cherry picked from commit 59d266a111)

* Add root_ca_certificate

(cherry picked from commit faa016e4b7)

* Add build-proto

(cherry picked from commit c31e1f5bf0)

* UiTransactionEncoding is now copy

(cherry picked from commit 494968be66)

* Increase timeout

(cherry picked from commit 57dfebc5ba)

* Add build-proto/build.sh output

(cherry picked from commit 54dae6ba2c)

* Supress doctest errors

(cherry picked from commit 019c75797d)

* Add compression

(cherry picked from commit 243e05d59f)

* Add bigtable

(cherry picked from commit 6e0353965a)

* Add configuration info

(cherry picked from commit 98cca1e774)

* Add ledger-tool bigtable subcommands

(cherry picked from commit f9049d6ee4)

# Conflicts:
#	ledger-tool/Cargo.toml

* Make room for tokio 0.2

(cherry picked from commit b876fb84ba)

# Conflicts:
#	core/Cargo.toml

* Setup a tokio 0.2 runtime for RPC usage

(cherry picked from commit 0e02740565)

# Conflicts:
#	core/Cargo.toml

* Plumb Bigtable ledger storage into the RPC subsystem

(cherry picked from commit dfae9a9864)

# Conflicts:
#	core/Cargo.toml

* Add RPC transaction history design

(cherry picked from commit e56ea138c7)

* Simplify access token refreshing

(cherry picked from commit 1f7af14386)

* Report block status more frequently

(cherry picked from commit 22c46ebf96)

* after -> before

(cherry picked from commit 227ea934ff)

* Rebase

* Cargo.lock

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-06 04:06:44 +00:00
6542a04521 Mark token-specific rpcs as unstable (#11402)
(cherry picked from commit 7430896c79)

Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-06 04:00:18 +00:00
5c27009758 Force program address off the curve (#11323) (#11398)
(cherry picked from commit 03263c850a)

Co-authored-by: Jack May <jack@solana.com>
2020-08-06 01:00:42 +00:00
888f3522d8 Add getConfirmedSignaturesForAddress2 RPC method (bp #11259) (#11394)
* Add getConfirmedSignaturesForAddress2 RPC method

(cherry picked from commit 1b2276520b)

* Reimplement transaction-history command with getConfirmedSignaturesForAddress2

(cherry picked from commit 087fd32ce3)

* Rework get_confirmed_signatures_for_address2

(cherry picked from commit a11f137810)

* Rename startAfter to before

(cherry picked from commit 02c0981ecf)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-05 22:47:50 +00:00
df820ddb6d Omit web3.js examples when incrementing Cargo.toml versions 2020-08-05 12:04:15 -06:00
bbb8754b59 Remove update notice 2020-08-05 16:27:32 +00:00
5816ed5369 chore:(deps): bump @types/react-select in /explorer (#11383)
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 3.0.15 to 3.0.16.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-05 11:05:00 +00:00
31513fab14 chore:(deps): bump @testing-library/react in /explorer (#11382)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 10.4.7 to 10.4.8.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v10.4.7...v10.4.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-05 09:53:08 +00:00
d44e8ce914 chore:(deps): bump bootstrap from 4.5.0 to 4.5.1 in /explorer (#11381)
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.5.0...v4.5.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-05 09:49:38 +00:00
308186da79 Rework parsed account format (#11372)
* Rework parsed account format

* Serialize as type
2020-08-05 00:59:10 -06:00
9d4f9be1fe Update instruction encoding format (#11363)
* Rework parsed instruction format

* Rework parsed message accounts

* Review comments
2020-08-05 00:58:58 -06:00
86e3f96f16 Return token amounts as floats (#11370)
* Return token amounts as floats

* Floating-point equality

* Return float and raw token amounts

* Fix decimals and token rpcs for native-mint tokens

* Fixup docs and review comments
2020-08-05 06:48:09 +00:00
14339dec0a Harden RPC preflight test inputs 2020-08-05 06:06:57 +00:00
29b3265dc7 Sanitize transactions during RPC preflight test 2020-08-05 06:06:57 +00:00
3f73affb2e Add From for SanitizeError > TransactionError 2020-08-05 06:06:57 +00:00
e25846e1ad Add failing test for unsane tx in RPC preflight 2020-08-05 06:06:57 +00:00
d4df2ac673 Keep .DS_Store out of the tree 2020-08-04 16:34:45 -07:00
b5e03d6df2 get_token_accounts_by_owner now returns UiTokenAccounts 2020-08-04 22:45:00 +00:00
8c873e232f fixes logo (#11350)
* fixes logo

* cleans up homepage on docs

* adds icon files and tightens margins
2020-08-04 10:51:25 -07:00
d0144ce382 Fix token rpc-client methods (#11361)
* Convert None to error in parse_keyed_accounts

* Allow encoding configuration in getTokenAccounts methods
2020-08-04 11:11:30 -06:00
cad36e1b3c Switch explorer to dark mode by default (#11360) 2020-08-04 22:25:50 +08:00
ebe14415f6 Use more accurate epoch duration calculation in explorer (#11359) 2020-08-04 22:18:09 +08:00
247e361d23 Make explorer table views more mobile friendly (#11358) 2020-08-04 20:44:16 +08:00
5b4cb083f1 Add integration test for optimistic confirmation failure detection (#11353)
* Add optimistic conf failure test

* Add check for optimistic failure log

Co-authored-by: Carl <carl@solana.com>
2020-08-03 20:01:52 -07:00
1d40685b8e Remove support for 1.1.0 version snapshots 2020-08-04 01:01:50 +00:00
7db144c5da Remove legacy_system_instruction_processor0 2020-08-04 00:45:09 +00:00
3f6f1adb5b Make accounts explicit in unrecognized jsonParsed instructions (#11351) 2020-08-03 20:27:15 +00:00
eefcf484cb clippy 2020-08-03 18:35:15 +00:00
01262cda3f Bump stable rust to 1.45.1 2020-08-03 18:35:15 +00:00
f3e83c080a Add mainnet-beta upgrade-in-process banner 2020-08-03 07:09:34 -07:00
fc7ba7585d chore:(deps): bump @types/react from 16.9.43 to 16.9.44 in /explorer (#11346)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.43 to 16.9.44.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-03 08:23:50 +00:00
2393278849 chore:(deps): bump @testing-library/user-event in /explorer (#11345)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 12.0.17 to 12.1.0.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v12.0.17...v12.1.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-03 08:20:27 +00:00
1fe762cc79 Disable owned token request on mainnet explorer (#11343) 2020-08-03 12:51:47 +08:00
8bcc8edf47 Remove calls to unwrap() in respan! macro
Previously, `proc_macro2::Span::resolved_at` was gated behind
cfg(procmacro2_semver_exempt). This gate has been removed in the latest
version of proc-macro2, allowing us to avoid using `unwrap()` to use the
underling method on `proc_macro::Span`
2020-08-02 19:15:06 -07:00
0bc9bcc8b9 Fix bad rebase 2020-08-02 12:09:06 -06:00
f401ef7996 Linkify all explorer addresses (#11339) 2020-08-03 01:44:47 +08:00
d1b2e6cdf2 Add getTokenLargestAccounts endpoint (#11322) 2020-08-02 10:23:44 -06:00
27a8879574 Update update timeline 2020-08-02 08:57:52 -07:00
ffbd859c42 Update spl-token and spl-memo 2020-08-02 07:53:42 -07:00
433f262290 Fix explorer bugs (#11336)
* Fix race condition in explorer details fetching

* Fix SOL delta rendering bug
2020-08-02 22:29:40 +08:00
4052008c42 Display owned tokens on account details page (#11335) 2020-08-02 21:55:36 +08:00
b6ea9f1861 Clean up explorer data providers (#11334) 2020-08-02 20:18:28 +08:00
0d8f3139ae Add unified search bar to the explorer 2020-08-02 20:06:51 +08:00
d4eb49d252 Add navbar and remove tabbed page layout 2020-08-02 20:06:51 +08:00
eab48c99d7 Display SOL uniformly in explorer 2020-08-02 20:06:51 +08:00
97c0f7c364 Merge branch 'master' of github.com:solana-labs/solana 2020-08-01 08:33:45 -07:00
e2789b9373 cross-links SPL library 2020-08-01 08:33:26 -07:00
2300080f68 Improve explorer tx count animation (#11327) 2020-08-01 23:05:20 +08:00
54d36d2cfb Add cluster stats tab to explorer (#11325) 2020-08-01 22:05:58 +08:00
9bcfc51df1 Add token rpc endpoints to rpc-client (#11315) 2020-07-31 20:53:49 +00:00
d7e961dac4 Enable new fork choice on mainnet, 400_000 slots into epoch 61 (#11312)
Co-authored-by: Carl <carl@solana.com>
2020-07-31 20:37:58 +00:00
c421d7f1b8 Test that off-curve pubkeys fail signature verify 2020-07-31 14:21:03 -06:00
251f974b50 Allow inspection of signature verification failures 2020-07-31 14:21:03 -06:00
7889c7603d Explicit spl-token version 2020-07-31 13:59:09 -06:00
61d9d219f9 Withdraw authority no longer implies a custodian (#11302)
* Withdraw authority no longer implies a custodian

Before this change, if the withdraw authority and custodian had
the same public key, then a withdraw authority signature would
imply a custodian signature and lockup would be not be enforced.

After this change, the client's withdraw instruction must
explictly reference a custodian account in its optional sixth
account argument.

Likewise, the fee-payer no longer implies either a withdraw
authority or custodian.

* Fix test

The test was configuring the stake account with the fee-payer as
the withdraw authority, but then passing in a different key to
the withdraw instruction's withdraw authority parameter. It only
worked because the second transaction was signed by the fee-payer.
2020-07-31 13:37:53 -06:00
0f551d4f75 Decode token instructions (#11281)
* Token->SplToken

* Add spl_token instruction parsing

* Rebase on master

* Gracefully fail key len mismatches
2020-07-31 13:26:09 -06:00
1733f6c9e9 Update perf libs to 0.19.1 (#11301)
* fix for cuda sigverify check for small order pubkey
2020-07-31 09:19:43 -07:00
52575349dc Build programs with --no-default-features --features program to match solana-sdk 2020-07-31 08:57:42 -07:00
efcf9ff125 Adjust time window on mainnet-beta upgrade banner 2020-07-31 08:17:08 -07:00
5d3c39b6a9 chore: bump rpc-websockets from 5.2.3 to 5.2.4 in /web3.js (#11306)
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.2.3 to 5.2.4.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-31 08:52:03 +00:00
a2d40151ea chore:(deps): bump @types/jest from 26.0.7 to 26.0.8 in /explorer (#11305)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.7 to 26.0.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-31 08:19:47 +00:00
2930102064 chore:(deps): bump @solana/web3.js from 0.63.1 to 0.64.0 in /explorer (#11304)
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) from 0.63.1 to 0.64.0.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases)
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.63.1...v0.64.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-31 08:16:32 +00:00
5a69c66877 feat: add token methods (#11303) 2020-07-31 12:33:54 +08:00
a5b6fd3d9b Add Vote Account Management Doc (#11278)
* Add vote account management doc

* Add links to new doc

* Whitespace

* Fixup language

* Cleaner title

* Apply review feedback

* Apply further feedback

* Fix usage page header

Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-31 02:43:41 +00:00
c78e12a262 Avoid spl-sdk dependency, which inhibits crate publishing 2020-07-30 23:47:26 +00:00
1d2426ddbc Move simulate_transaction from rpc to bank (#11294) 2020-07-30 19:15:45 +00:00
d0f4b24481 fix: remove instanceof checks 2020-07-30 11:44:46 -07:00
31ea69f278 Add low-latency, RPC proposal (#11221)
* Add RiP Curl proposal

* Apply review feedback
2020-07-30 10:52:47 -06:00
a23e1129a9 Switch to optimistic conf for notifying gossip subscribers (#11289)
Co-authored-by: Carl <carl@solana.com>
2020-07-30 02:52:27 -07:00
bf18524368 Add hook for getting vote transactions on replay (#11264)
* Add hook for getting vote transactions on replay

Co-authored-by: Carl <carl@solana.com>
2020-07-29 23:17:40 -07:00
a888f2f516 Reject TXs sent via RPC with no signatures 2020-07-30 00:07:33 -06:00
9778fedd7a Add new RPC error for TXs with no signatures 2020-07-30 00:07:33 -06:00
a7079e4dde Dereplicode send_transaction and request_airdrop RPC handlers 2020-07-30 00:07:33 -06:00
b962b2ce2d Add failing test for TX sent via RPC with no signatures 2020-07-30 00:07:33 -06:00
e8c0ec53e6 Fix wallet links (#11284)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-30 05:06:04 +00:00
995a7ba8eb Update vote-signing.md 2020-07-29 20:40:44 -07:00
e0f74c6862 Update fork-generation.md 2020-07-29 20:40:44 -07:00
01e26012b3 Update wallet-guide.md 2020-07-29 20:40:44 -07:00
239080c131 Update stake-delegation-and-rewards.md 2020-07-29 20:40:44 -07:00
24831ea42d Update vote-signing.md 2020-07-29 20:40:44 -07:00
1ecc276fd1 Update turbine-block-propagation.md 2020-07-29 20:40:44 -07:00
d6a4ad18fe Update managing-forks.md 2020-07-29 20:40:44 -07:00
d93366fc52 Update fork-generation.md 2020-07-29 20:40:44 -07:00
8c611cf87e Update leader-rotation.md 2020-07-29 20:40:44 -07:00
6a5b7e5b98 Update synchronization.md 2020-07-29 20:40:44 -07:00
8054c3f3fa Fix typos 2020-07-29 20:40:44 -07:00
2dbed80e48 Disable cross-program invocations for OperatingMode::Stable (#11272) 2020-07-29 15:29:52 -07:00
cd043b5d70 Add top level link to Clusters page (#11276)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-29 21:27:25 +00:00
c410b082b7 .sh 2020-07-29 14:12:11 -07:00
3a1ca4efff Fetch and install SPL programs by default 2020-07-29 12:48:56 -07:00
8eb6cbf784 Add --bpf-program argument 2020-07-29 12:48:56 -07:00
16ecce353f Revert "Land program addresses on the curve (#11174)" (#11253)
This reverts commit f317c362a8.
2020-07-29 11:33:45 -07:00
9bc31f1e66 chore: bump rollup from 2.22.1 to 2.23.0 in /web3.js (#11269)
Bumps [rollup](https://github.com/rollup/rollup) from 2.22.1 to 2.23.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.22.1...v2.23.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-29 11:14:35 +00:00
071df12908 chore:(deps): bump @types/node from 14.0.26 to 14.0.27 in /explorer (#11268)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.26 to 14.0.27.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-29 11:00:50 +00:00
faaf729e5d chore:(deps): bump @testing-library/jest-dom in /explorer (#11267)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.11.1 to 5.11.2.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.11.1...v5.11.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-29 10:59:07 +00:00
df143d133b chore:(deps): bump @testing-library/user-event in /explorer (#11266)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 12.0.15 to 12.0.17.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v12.0.15...v12.0.17)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-29 10:58:23 +00:00
ebe367f722 Add utility function (#11262)
Co-authored-by: Carl <carl@solana.com>
2020-07-28 23:44:10 -07:00
b45ac5d4db Add SPL Token-specific rpc endpoints (#11231)
* Simplify account-decoder program ids + spl_token helper

* Spl program namespace version

* Add getTokenAccountBalance endpoint

* Remove token program id from getTokenAccountBalance request

* Add getTokenSupply endpoint

* Remove token program id from getTokenSupply request

* Add getTokenAccountsByOwner/Delegate endpoints

* Remove token program id from getTokenAccountsByOwner/Delegate requests

* Named parameter
2020-07-28 23:00:48 -06:00
e553a98d2f Rerere-enable RecentBlockhashes fix on testnet (epoch 76) 2020-07-29 02:43:10 +00:00
678f94903b Fill out missing RPC request received debug logging 2020-07-29 01:51:20 +00:00
3e4f49f9c9 Fix race condition between shrinking and cleaning (#11235)
* Fix race condition between shrinking and cleaning

* Minor formatting

* fix ci

* Update comments

* More update comment

* Adjust fn naming
2020-07-29 06:06:14 +09:00
b5065a4fde Add Google Analytics to all Explorer pages (#11249)
* add code in head

Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com>
2020-07-29 01:00:57 +08:00
b4f950c770 chore: bump @commitlint/config-conventional in /web3.js (#11240)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint) from 9.0.1 to 9.1.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v9.0.1...v9.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-28 10:01:10 +00:00
a7ea340f22 Track votes from gossip for optimistic confirmation (#11209)
* Add check in cluster_info_vote_listenere to see if optimstic conf was achieved
Add OptimisticConfirmationVerifier

* More fixes

* Fix merge conflicts

* Remove gossip notificatin

* Add dashboards

* Fix rebase

* Count switch votes as well toward optimistic conf

* rename

Co-authored-by: Carl <carl@solana.com>
2020-07-28 09:33:27 +00:00
d9d69eee81 chore: bump eslint-plugin-import from 2.21.2 to 2.22.0 in /web3.js (#11239)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.21.2 to 2.22.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.21.2...v2.22.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-28 09:00:46 +00:00
d397577e27 chore: bump eslint-plugin-prettier from 3.1.3 to 3.1.4 in /web3.js (#11238)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.1.3...v3.1.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-28 08:45:48 +00:00
610f4576bc chore: bump typescript from 3.9.5 to 3.9.7 in /web3.js (#11236)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.5 to 3.9.7.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.5...v3.9.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-28 08:30:49 +00:00
bafb2e6e84 Adjust explorer banner margins (#11233) 2020-07-28 13:20:25 +08:00
ed01591be6 Designate mainnet-beta epoch 61 as an upgrade epoch 2020-07-27 11:41:39 -07:00
de34839f19 chore: bump flow-bin from 0.127.0 to 0.130.0 in /web3.js
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.127.0 to 0.130.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-27 11:01:25 -07:00
f317c362a8 Land program addresses on the curve (#11174) 2020-07-27 10:45:59 -07:00
aa8d6083c4 Add mainnet beta upgrade announcement 2020-07-27 10:24:45 -07:00
cbf0b779d7 Add Docusaurus search (#11135)
* Add Docusaurus search

* Add Algolia configuration information

* Trailing whitespace :(

Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com>
2020-07-27 10:26:03 -06:00
30b7b3d963 chore:(deps): bump @types/node from 14.0.25 to 14.0.26 in /explorer (#11218)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.25 to 14.0.26.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-27 10:59:42 +00:00
bec28328cd chore:(deps): bump @testing-library/user-event in /explorer (#11217)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 12.0.13 to 12.0.15.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v12.0.13...v12.0.15)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-27 10:57:57 +00:00
7931579610 Remove accidental MB activation for RecentBlockhashes consistency fix 2020-07-26 17:34:52 +00:00
f796adc5ea Add announcement banner to explorer (#11210)
* Add announcement banner to explorer

* Remove ^M and trailing spaces

* Update Banner.tsx
2020-07-26 21:11:27 +08:00
234449c627 Fix markup for heading 2020-07-26 00:22:43 -07:00
b7d8e256a5 Fix test stalling (#11212)
Co-authored-by: Carl <carl@solana.com>
2020-07-25 21:30:08 -07:00
01ff6846f7 Windows binaries are now built with the MSVC instead of the GNU toolchain.
Update `solana-install-init` target info to match
2020-07-25 10:02:52 -07:00
6808a04abe Remove unmaintained btc programs 2020-07-25 06:04:07 +00:00
32fea0496e Add token account decoding (#11136)
* Add token decoding

* Bump versions
2020-07-24 17:45:21 -06:00
eac423f92c Add package-lock.json to docs (#11200)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-24 14:15:22 -06:00
c8f866e6c0 Restore stake delegation page to sidebar 2020-07-24 13:42:05 -06:00
1f8df36b7d Push back activation epochs
Effects:
- Re-enabling inflation
- Nonce FeeCalculator overwrite / RecentBlockhashes sysvar inconsistency fix
2020-07-24 12:54:31 -06:00
5118825fa4 chore:(deps): bump @types/node from 14.0.24 to 14.0.25 in /explorer (#11195)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.24 to 14.0.25.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-24 11:09:34 +00:00
63c024ddd1 chore:(deps): bump @testing-library/user-event in /explorer (#11194)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 12.0.12 to 12.0.13.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v12.0.12...v12.0.13)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-24 11:02:08 +00:00
a55f09f178 chore: bump flow-typed from 3.1.0 to 3.2.1 in /web3.js (#11198)
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 3.1.0 to 3.2.1.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/compare/v3.1.0...v3.2.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-24 10:58:24 +00:00
b3e0d09699 chore:(deps): bump @types/jest from 26.0.5 to 26.0.7 in /explorer (#11196)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.5 to 26.0.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-24 10:39:57 +00:00
c0dc21620b Test cleanup (#11192)
Co-authored-by: Carl <carl@solana.com>
2020-07-24 09:55:25 +00:00
6578ad7d08 Speed up local cluster partitioning tests (#11177)
* Fix long local cluster partition tests by skipping slot warmup

Co-authored-by: Carl <carl@solana.com>
2020-07-23 18:50:42 -07:00
125a36abbc Remove move more 2020-07-24 01:42:19 +00:00
7484202282 Return root when bank not found (#11188)
* Return root when bank not found

* Apply suggestions from code review

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-07-24 00:57:15 +00:00
8ccce1e543 Upgrade ed25519-dalek (#11183) 2020-07-23 17:23:51 -06:00
6f7e121b68 CLI: Add arg to adjust RPC timeout 2020-07-23 22:29:40 +00:00
bece8cfbc2 Add RpcClient constructor with timeout 2020-07-23 22:29:40 +00:00
8b1b392be9 Remove move_loader and librapay (#11184)
* Remove move_loader and librapay

* Remove Embedding Move from implemented proposals

* Remove Move variant from CI

* Remove move_loader ID
2020-07-23 15:08:59 -06:00
6de8da05e3 Skip entrypoint in programs (#11176) 2020-07-23 19:44:59 +00:00
c90de8978d Add encoding and filters parameters to rpc Subscriptions (#11065)
* Plumb account configs and enable encoding

* Enable filters for pubsub program accounts

* Update docs
2020-07-23 13:38:28 -06:00
ca6480a8ac Use OrderedIterator in collect_balances (#11166) 2020-07-23 13:35:10 -06:00
e75f0bdfd3 panic on native load failure (#11182) 2020-07-23 12:11:01 -07:00
b5a6a2f461 Initialize BlockCommitmentCache slot and root on node boot (#11178)
* Initialize commitment-cache slot and root on node boot

* Ignore long tests
2020-07-23 11:44:57 -06:00
b60ff70657 chore:(deps): bump @testing-library/user-event in /explorer (#11180)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 12.0.11 to 12.0.12.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v12.0.11...v12.0.12)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-23 08:07:05 +00:00
ae8426f8ae chore:(deps): bump @solana/web3.js from 0.63.0 to 0.63.1 in /explorer (#11179)
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) from 0.63.0 to 0.63.1.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases)
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.63.0...v0.63.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-23 08:06:41 +00:00
50c92e3a94 Add block-height subcommand 2020-07-22 13:26:05 -07:00
2adfe3f199 Add block height to epoch-info subcommand 2020-07-22 13:26:05 -07:00
4d05683abe chore: fix flaky connection test 2020-07-22 22:54:34 +08:00
e556f85178 Add test for making sure switch doesn't happen past failure threshold (#11138)
Fix switch threshold

Co-authored-by: Carl <carl@solana.com>
2020-07-21 23:04:24 -07:00
3fd16cea34 Re-enable inflation again for testnet 2020-07-21 21:44:16 -06:00
3b87780f21 fix: getEpochInfo RPC endpoint now includes the current block height 2020-07-21 17:24:07 -07:00
a5dd848702 getEpochInfo RPC endpoint now includes the current block height 2020-07-21 17:24:07 -07:00
231e2387db Program feature-flag entrypoint (#11144) 2020-07-21 14:36:28 -06:00
6c38369042 Use OrderedIterator in TransactionStatusService (#11149)
* Split out get-first-err for unit testing

* Add failing test

* Add missing ordering
2020-07-21 20:06:49 +00:00
9438789fef chore:(deps): bump @types/node from 14.0.23 to 14.0.24 in /explorer (#11146)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.23 to 14.0.24.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-21 09:30:19 +00:00
6935e88148 Freeze warped bank to show freeze logs (#11141) 2020-07-21 15:51:56 +09:00
7cc2a6801b fix rewards points (#10914)
* fix rewards points

* fixups

* * verify that we don't spend more in rewards than we've allocated for rewards
* purge f64s from calculations that could be done with integers

* test typical values

* simplify iteration over delegations some

* fixups

* Use try_from

* Add a comment for commission_split()

* Add assertion to detect inconsistent reward dist.

* Fix vote_balance_and_staked

* Don't overwrite accounts with stale copies

* Fix CI...

* Add tests for vote_balance_and_staked

* Add test for the determinism of update_rewards

* Revert "Don't overwrite accounts with stale copies"

This reverts commit 9886d085a6.

* Make stake_delegation_accounts to return hashmap

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-07-21 13:57:25 +09:00
b0d1c70718 RemoteWallet: Improve DerivationPathComponent FromStr readability 2020-07-21 03:09:01 +00:00
73f3d04798 Add replay votes to gossip vote tracking (#11119)
* Plumb replay vote channel for notifying vote listener of replay votes

* Keep gossip only notification for debugging gossip in the future

Co-authored-by: Carl <carl@solana.com>
2020-07-20 17:29:07 -07:00
23c2e55cbf Use BlockCommitmentCache for RPC slots, take 2 (#11137)
* Use BlockCommitmentCache for RPC slots (#11103)

* Add BankForks::highest_descendant(slot)

* Update debug messages

* Update core/src/rpc.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* cargo fmt

* Remove highest_descendant

* Fix test

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Fix crossed-in-flight compilation error

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-07-20 23:03:40 +00:00
0cb422fbbb Insubstantial grammar fix (#11133) 2020-07-20 23:32:45 +09:00
3db246f596 Add --warp-epoch and --force-inflation to ledger-tool cap. (#11107)
* Add --warp-epoch and --force-inflation to ledger-tool cap.

* Add more arguments

* Address review comments

* Fix message

* Fix various typos...
2020-07-20 19:09:38 +09:00
0781ab817f chore: bump rollup from 2.21.0 to 2.22.1 in /web3.js (#11131)
Bumps [rollup](https://github.com/rollup/rollup) from 2.21.0 to 2.22.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.21.0...v2.22.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 09:54:48 +00:00
0a7cbdf495 chore: bump @babel/runtime from 7.10.2 to 7.10.5 in /web3.js (#11129)
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.10.2 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-runtime)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 09:13:16 +00:00
a09013660f chore: bump @babel/plugin-proposal-function-bind in /web3.js (#11128)
Bumps [@babel/plugin-proposal-function-bind](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-function-bind) from 7.10.1 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-plugin-proposal-function-bind)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 08:58:30 +00:00
910f559c0c chore: bump rpc-websockets from 5.2.2 to 5.2.3 in /web3.js (#11100)
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 08:44:19 +00:00
8795f3e4c6 chore:(deps): bump @types/jest from 26.0.4 to 26.0.5 in /explorer (#11127)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.4 to 26.0.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 08:29:50 +00:00
8352bdd3c4 chore:(deps): bump @solana/web3.js from 0.62.0 to 0.63.0 in /explorer (#11126)
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) from 0.62.0 to 0.63.0.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases)
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.62.0...v0.63.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 08:28:59 +00:00
83cc92f3f7 Upgade to Rust 1.45.0 2020-07-19 20:11:02 -07:00
d19cd3a18a Revert "Use BlockCommitmentCache for RPC slots (#11103)" (#11122)
This reverts commit 815b0f31b4.
2020-07-18 16:39:12 -07:00
b9c29c3263 Update build.sh 2020-07-18 08:31:54 -06:00
d0e139ffff feat: add getLeaderSchedule api 2020-07-18 13:23:29 +08:00
74b4830ba6 fix: broken SlotInfo type def (#11120) 2020-07-18 05:22:58 +00:00
1ad0d210bc Remove tictactoe, add Break and Hello World to docs (#11117)
* Remove tictactoe, add Break to apps docs

* Add hello world

* fix whitespace

Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-18 00:09:10 +00:00
815b0f31b4 Use BlockCommitmentCache for RPC slots (#11103)
* Add BankForks::highest_descendant(slot)

* Update debug messages

* Update core/src/rpc.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* cargo fmt

* Remove highest_descendant

* Fix test

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-07-17 16:22:27 -06:00
a255b0fc86 Rename CacheSlotInfo to CommitmentSlots (#11111) 2020-07-17 17:54:49 +00:00
d0d4d9b3d1 Fix 404 broken links (#11113)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-17 17:48:07 +00:00
e5d8c4383f Add Bank support for "upgrade epochs" where all non-vote transactions will be rejected 2020-07-17 08:48:42 -07:00
fdff681bcc Simplify BlockCommitmentCache slot info (#11106)
* Refactor BlockCommitmentCache, store a CacheSlotInfo

* Comma
2020-07-17 09:24:51 -06:00
25728baeac chore:(deps): bump typescript from 3.9.6 to 3.9.7 in /explorer (#11108)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.6 to 3.9.7.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.6...v3.9.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:11:06 +00:00
b85538c532 Turn off gossip before downloading snapshot. (#11087) 2020-07-16 17:05:52 -07:00
862eb87184 Update validator_list.rs 2020-07-16 16:13:45 -06:00
7958dd88c2 Update non_circulating_supply.rs 2020-07-16 12:57:13 -06:00
836eeba8f3 chore: bump @commitlint/travis-cli from 9.0.1 to 9.1.1 in /web3.js (#11099)
Bumps [@commitlint/travis-cli](https://github.com/conventional-changelog/commitlint) from 9.0.1 to 9.1.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v9.0.1...v9.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 08:22:13 +00:00
59bee1ab64 chore: bump @babel/preset-env from 7.10.2 to 7.10.4 in /web3.js (#11098)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.2 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 08:19:55 +00:00
fc2c4b3e71 chore:(deps): bump @testing-library/jest-dom in /explorer (#11095)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.11.0 to 5.11.1.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.11.0...v5.11.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 08:14:50 +00:00
e9fda8178c chore:(deps): bump @testing-library/react in /explorer (#11097)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 10.4.6 to 10.4.7.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v10.4.6...v10.4.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 08:09:50 +00:00
6174cdb579 Always pass affected file check on tagged release (#11089)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-16 03:22:51 +00:00
a3f181ad84 Remove release documentation documentation (#11090)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-15 20:55:02 -06:00
d9b5cce279 Update CRATES_IO_TOKEN 2020-07-15 17:45:00 -07:00
1da9f9f05a Gate nonce-overwrite change (#11081) 2020-07-15 21:45:30 +00:00
fe71f9ad1a Change transparent .svg to opaque .png (#11084)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-15 21:35:18 +00:00
d8d87d5d02 chore: bump @babel/plugin-transform-runtime in /web3.js
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-15 13:48:14 -07:00
2e0fb37bfb Bump thiserror from 1.0.19 to 1.0.20
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.19...1.0.20)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-15 13:39:32 -07:00
6342e3e215 Refactor file and URL paths in docusaurus (#11080)
* Fix introduction link

* Restore staking guide pages

* Remove Edit this page link

* Fix broken wallet guide link

* Restore lost images

* Fixup URL paths to match gitbook style

* Refactor wallet guide READMEs and clean up URLs

* Remove lingering gitbook files

* Refactor all README files to keep consistent linking

* Updte homepage tile links

Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-15 20:11:51 +00:00
7fe870ba48 Make accounts file clean faster (#11071) 2020-07-15 09:37:40 -07:00
8548c3a7eb Bump humantime from 2.0.0 to 2.0.1
Bumps [humantime](https://github.com/tailhook/humantime) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/tailhook/humantime/releases)
- [Commits](https://github.com/tailhook/humantime/compare/v2.0.0...v2.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-15 08:27:33 -07:00
f94979c87c chore: bump @babel/core from 7.10.4 to 7.10.5 in /web3.js
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.5/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-15 08:08:23 -07:00
8bf3a0aa05 accounts_clean: Convert stack dependency calculation with iterative (#11067)
* accounts_clean: Convert stack dependency calculation with iterative

* optimize clean with by creating a reverse-lookup hashset of the affected
keys

* Add dependency bench

reduce bench

* Huge clean
2020-07-15 06:49:22 -07:00
d81c7250b0 Temporalily disable inflation to fix it later (#11072)
* Revert get_inflation()

* Temporalily disable inflation to fix it later

* Use match and proper type aliases
2020-07-15 18:36:09 +09:00
9a80e31bae Expose tss to the other blockstore_processor path (#11070) 2020-07-14 21:14:48 -06:00
21beade4b9 Drop support for v1.0 backports, add v1.3 support 2020-07-14 18:04:59 -07:00
20fa776728 Add TdS 6 validators to testnet auto-staker (#11068)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-14 23:45:18 +00:00
bed74d803f Add purge --no-compaction flag 2020-07-14 15:02:01 -07:00
95490ff56e Apply #![feature(proc_macro_hygiene)] when needed
This allows the rust-bpf-builder toolchain to build the sdk
2020-07-14 14:40:02 -07:00
e7387f60a7 Fix clippy lints 2020-07-14 14:40:02 -07:00
fed69e96a9 Split comment over multiple lines
Due to https://github.com/rust-lang/rustfmt/issues/4325, leaving this as
one line causes rustfmt to add extra indentation to the surrounding
code.
2020-07-14 14:40:02 -07:00
42f88484f4 Update lock files 2020-07-14 14:40:02 -07:00
b0cb2b0106 Replace FIXME with an issue link 2020-07-14 14:40:02 -07:00
05445c718e Fix hygiene issues in declare_program! and declare_loader!
The `declare_program!` and `declare_loader!` macros both expand to
new macro definitions (based on the `$name` argument). These 'inner'
macros make use of the special `$crate` metavariable to access items in
the crate where the 'inner' macros is defined.

However, this only works due to a bug in rustc. When a macro is
expanded, all `$crate` tokens in its output are 'marked' as being
resolved in the defining crate of that macro. An inner macro (including
the body of its arms) is 'just' another set of tokens that appears in
the body of the outer macro, so any `$crate` identifiers used there are
resolved relative to the 'outer' macro.

For example, consider the following code:

```rust
macro_rules! outer {
    () => {
        macro_rules! inner {
            () => {
                $crate::Foo
            }
        }
    }
}
```

The path `$crate::Foo` will be resolved relative to the crate that defines `outer`,
**not** the crate which defines `inner`.

However, rustc currently loses this extra resolution information
(referred to as 'hygiene' information) when a crate is serialized.
In the above example, this means that the macro `inner` (which gets
defined in whatever crate invokes `outer!`) will behave differently
depending on which crate it is invoked from:

When `inner` is invoked from the same crate in which it is defined,
the hygiene information will still be available,
which will cause `$crate::Foo` to be resolved in the crate which defines 'outer'.

When `inner` is invoked from a different crate, it will be loaded from
the metadata of the crate which defines 'inner'. Since the hygiene
information is currently lost, rust will 'forget' that `$crate::Foo` is
supposed to be resolved in the context of 'outer'. Instead, it will be
resolved relative to the crate which defines 'inner', which can cause
incorrect code to compile.

This bug will soon be fixed in rust (see https://github.com/rust-lang/rust/pull/72121),
which will break `declare_program!` and `declare_loader!`. Fortunately,
it's possible to obtain the desired behavior (`$crate` resolving in the
context of the 'inner' macro) by use of a procedural macro.

This commit adds a `respan!` proc-macro to the `sdk/macro` crate.
Using the newly-stabilized (on Nightly) `Span::resolved_at` method,
the `$crate` identifier can be made to be resolved in the context of the
proper crate.

Since `Span::resolved_at` is only stable on the latest nightly,
referencing it on an earlier version of Rust will cause a compilation error.
This requires the `rustversion` crate to be used, which allows conditionally
compiling code epending on the Rust compiler version in use. Since this method is already
stabilized in the latest nightly, there will never be a situation where
the hygiene bug is fixed (e.g. https://github.com/rust-lang/rust/pull/72121)
is merged but we are unable to call `Span::resolved_at`.
2020-07-14 14:40:02 -07:00
0b919f095d Add TRAVIS_COMMIT_RANGE logging 2020-07-14 12:10:21 -07:00
9abfd67cd9 chore: bump ws from 7.3.0 to 7.3.1 in /web3.js (#11058)
Bumps [ws](https://github.com/websockets/ws) from 7.3.0 to 7.3.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.3.0...7.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-14 11:51:40 -07:00
5e2d80a861 chore: bump @babel/preset-flow in /web3.js (#11061)
Bumps [@babel/preset-flow](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-flow) from 7.10.1 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-preset-flow)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-14 11:51:21 -07:00
ab8d7924f0 chore:(deps-dev): bump marked from 1.1.0 to 1.1.1 in /web3.js (#11060)
Bumps [marked](https://github.com/markedjs/marked) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v1.1.0...v1.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-14 11:50:18 -07:00
0708969e9e Update dependabot.yml 2020-07-14 11:49:25 -07:00
c626d515d2 No automerge for rust dependencies 2020-07-14 11:30:32 -07:00
05709822f9 Create dependabot.yml 2020-07-14 11:25:05 -07:00
0affb1c92b [auto-commit] Update all Cargo lock files 2020-07-14 11:13:22 -07:00
5055028231 Bump serde_json from 1.0.54 to 1.0.56
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.54 to 1.0.56.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.54...v1.0.56)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 11:13:22 -07:00
95145672c8 Bump byte-unit from 3.1.3 to 4.0.8
Bumps [byte-unit](https://github.com/magiclen/byte-unit) from 3.1.3 to 4.0.8.
- [Release notes](https://github.com/magiclen/byte-unit/releases)
- [Commits](https://github.com/magiclen/byte-unit/compare/v3.1.3...v4.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-14 11:13:14 -07:00
303a4df6ef Clean up docs publishing flow (#11043)
* Clean up publishing flow

* Update README

Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-14 07:56:14 -06:00
14ac233d01 CLI: Fix explicitly plumb vote_account through create-vote-account 2020-07-14 07:29:53 -06:00
2284699889 CLI: Fix explicitly plumb withdraw_authority through vote-update-validator 2020-07-14 07:29:53 -06:00
3392ecc310 CLI: Fix explicitly plumb withdraw_authority through vote-update-commission 2020-07-14 07:29:53 -06:00
e9cbdf711b Add TreeDiff trait to reuse tree functions (#11046)
Co-authored-by: Carl <carl@solana.com>
2020-07-14 07:38:48 +00:00
356b552439 Remove docs step from buildkite flow (#11035)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-14 02:44:16 +00:00
5741002a32 Mode gate RecentBlockhashes/BlockhashQueue sync 2020-07-14 00:36:31 +00:00
51283c931c Fix test advancing banks from incomplete slots 2020-07-14 00:36:31 +00:00
837ac77c02 Bump goldens 2020-07-14 00:36:31 +00:00
5357ff6d60 Synchronize BlockhashQueue and RecentBlockhashes sysvar update 2020-07-14 00:36:31 +00:00
9cc379af6c Factor locked portion of Bank::update_recent_blockhashes() out to helper 2020-07-14 00:36:31 +00:00
942c019d50 Add failing test 2020-07-14 00:36:31 +00:00
b37192b809 Bump @testing-library/react from 10.4.5 to 10.4.6 in /explorer (#11038)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 10.4.5 to 10.4.6.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v10.4.5...v10.4.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-14 00:11:30 +00:00
d3784cab4f Bump spl-memo to 1.0.2 2020-07-13 23:59:33 +00:00
3eea8f2fe6 Bump rust nightly to 2020-07-12 2020-07-13 23:59:33 +00:00
0d1420d868 Bump @types/node from 14.0.22 to 14.0.23 in /explorer (#11037)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.22 to 14.0.23.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-13 22:54:31 +00:00
2d93ca9ab3 [auto-commit] Update all Cargo lock files 2020-07-13 15:00:27 -07:00
cee9177ec7 Bump libc from 0.2.71 to 0.2.72
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.71 to 0.2.72.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.71...0.2.72)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 15:00:27 -07:00
1880621740 Add dropped vote metrics (#11009) 2020-07-13 09:11:07 -07:00
de379a8cd6 Ensure to digest non-empty snapshot_storages and add asserts (#11021)
* Add asserts to detect not-digestable example data

* Ensure to digest non-empty snapshot_storages
2020-07-13 15:58:34 +00:00
e95e7a96da Bump @types/react from 16.9.42 to 16.9.43 in /explorer (#11027)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.42 to 16.9.43.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-13 15:51:43 +00:00
ed5a2f2a90 Fold bank serialisation into serde snapshot (#10581)
* Move bank (de)serialisation logic from bank and snapshot_utils to serde_snapshot.
Add sanity assertions between genesis config and bank fields on deserialisation.
Atomically update atomic bool in quote_for_specialization_detection().
Use same genesis config when restoring snapshots in test cases.

* Tidy up namings and duplicate structs to version

* Apply struct renames to tests

* Update abi hashes

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-07-13 23:00:59 +09:00
5c86766fb2 Bump ctrlc from 3.1.4 to 3.1.5 (#11006)
Bumps [ctrlc](https://github.com/Detegr/rust-ctrlc) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases)
- [Commits](https://github.com/Detegr/rust-ctrlc/compare/3.1.4...3.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-12 20:59:29 -06:00
33f5c17e46 Bump generic-array from 0.14.1 to 0.14.3 (#11010)
* Bump generic-array from 0.14.1 to 0.14.3

Bumps [generic-array](https://github.com/fizyk20/generic-array) from 0.14.1 to 0.14.3.
- [Release notes](https://github.com/fizyk20/generic-array/releases)
- [Changelog](https://github.com/fizyk20/generic-array/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fizyk20/generic-array/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-07-12 20:59:05 -06:00
1437660686 Revert "Add UiTransactionEncoding::Raw"
This reverts commit a4a5438b6d.
2020-07-12 08:59:50 -07:00
edf2b1ee85 Check for deleting key, make sure list is empty again (#11007) 2020-07-11 20:38:34 -07:00
12d188da09 [auto-commit] Update all Cargo lock files 2020-07-10 22:53:21 -07:00
2e5cb71e54 chore(deps): bump base64 from 0.12.1 to 0.12.3
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.12.1 to 0.12.3.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.12.1...v0.12.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-10 22:53:21 -07:00
ffeac298a2 Move from gitbook to docusaurus, build docs in Travis CI (#10970)
* fix: ignore unknown fields in more RPC responses

* Remove mdbook infrastructure

* Delete gitattributes and other theme related items

Move all docs to /docs folder to support Docusaurus

* all docs need to be moved to /docs

* can be changed in the future

Add Docusaurus infrastructure

* initialize docusaurus repo

Remove trailing whitespace, add support for eslint

Change Docusaurus configuration to support `src`

* No need to rename the folder! Change a setting and we're all good to
go.

* Fixing rebase items

* Remove unneccessary markdown file, fix type

* Some fonts are hard to read. Others, not so much. Rubik, you've been
sidelined. Roboto, into the limelight!

* As much as we all love tutorials, I think we all can navigate around a
markdown file. Say goodbye, `mdx.md`.

* Setup deployment infrastructure

* Move docs job from buildkite to travic

* Fix travis config

* Add vercel token to travis config

* Only deploy docs after merge

* Docker rust env

* Revert "Docker rust env"

This reverts commit f84bc208e807aab1c0d97c7588bbfada1fedfa7c.

* Build CLI usage from docker

* Pacify shellcheck

* Run job on PR and new commits for publication

* Update README

* Fix svg image building

* shellcheck

Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com>
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-11 05:11:07 +00:00
4046f87134 Fix compilation failure on windows (#10983)
* Fix compilation failure on windows

* Test travis window build

* more tweak trigger travis build...

* Make more debug-friendly

* Fix shellcheck

* Revert .travis.yaml after testing on travis
2020-07-11 04:35:46 +00:00
f6f5842172 Explicit spl-memo version (#11003) 2020-07-11 03:41:53 +00:00
427d0ff0b5 fix: ignore unknown fields in more RPC responses 2020-07-11 03:39:49 +00:00
f0b22b1b23 spl memo linking windows (#11000)
* Update spl-memo to fix windows linking error

* Only programs need the stubs

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-07-10 18:39:52 -07:00
145906123a Simplify use of SendTransactionService (#10999)
* Send transaction upon recv

This will allow us to move the channel to the public interface

* Use a channel, not a method, to communicate

* Pipeline the services

* Ignore unused return values

* Fix clippy warning
2020-07-11 01:14:41 +00:00
19813b0ab2 fix: align web3 stake split instruction constuction with rust 2020-07-10 15:29:48 -06:00
a8b1d71ae6 fix: inconsistent tx message compilation accounting 2020-07-10 15:29:48 -06:00
40800e257c test: tweak test to suss out tx message serialization bug 2020-07-10 15:29:48 -06:00
3e3241125f fix: serializing an unsigned tx should throw 2020-07-10 15:29:48 -06:00
57576b07ef Fix warnings (#10992)
* Fix warnings

* disable warning
2020-07-10 20:02:55 +00:00
25ca99cdcf largest -> highest 2020-07-10 12:57:32 -07:00
f3a007b33d chore(deps): bump @types/react from 16.9.41 to 16.9.42 in /explorer (#10998)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.41 to 16.9.42.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-10 19:45:47 +00:00
a4a5438b6d Add UiTransactionEncoding::Raw 2020-07-10 12:18:41 -07:00
aef6bf272e getConfirmedBlocks now has an upper limit on slot range 2020-07-10 12:18:31 -07:00
631f051c68 Add jitter to cleanup to prevent all nodes cleaning at the same time (#10936) 2020-07-10 11:54:45 -07:00
1f5070e569 Add custom print for Bloom object (#10971) 2020-07-10 11:53:24 -07:00
87b497968f chore(deps): bump @types/node from 14.0.21 to 14.0.22 in /explorer (#10994)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.21 to 14.0.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-10 18:30:56 +00:00
e2c7f446a8 Disable specialization-warnings (#10981)
* Disable specialization-warnings

* nudge
2020-07-10 11:06:10 -07:00
491f5ae61a Add block time placeholder to getConfirmedBlock 2020-07-10 14:47:11 +00:00
ae6aaab4d8 chore(deps-dev): bump rollup from 2.18.0 to 2.21.0 in /web3.js (#10988)
Bumps [rollup](https://github.com/rollup/rollup) from 2.18.0 to 2.21.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.18.0...v2.21.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-10 14:04:59 +00:00
34f31f64f9 chore(deps): bump @types/node from 14.0.20 to 14.0.21 in /explorer (#10987)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.20 to 14.0.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-10 13:53:52 +00:00
7a14e359d7 Switch to using weighted repair in RepairService (#10735)
* Plumb votes into repair service

* Remove refactoring

* Fix tests

* Switch to using RepairWeight for generating repairs

* Revert "Weight repair slots based on vote stake (#10741)"

This reverts commit cabd0a09c3.

* Update logging

Co-authored-by: Carl <carl@solana.com>
2020-07-10 05:52:54 +00:00
f1c1152948 Fix skipped slot detection for eager rent collect (#10890) 2020-07-10 08:49:18 +09:00
da7a31b662 Add MB validators to SOM (#10977)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-09 23:43:48 +00:00
fec7a61f59 Fix Travis PR detection environment (#10974) 2020-07-09 14:30:47 -06:00
25228ca957 Fix nonce fee_calculator overwrite (#10973)
* Add failing test

* Pass fee_calculator to prepare_if_nonce_account; only overwrite in error case
2020-07-09 20:22:21 +00:00
16eeea4f82 Move SendTransactionService to solana_runtime (#10972) 2020-07-09 18:28:26 +00:00
4ef8f893c7 chore(deps-dev): bump @babel/plugin-transform-runtime in /web3.js (#10969)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.1 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-09 14:25:49 +00:00
17a8cc862b Remove core dependencies from SendTransactionService (#10965)
* Remove core dependencies from SendTransactionService

* Fix clippy warnings
2020-07-08 19:13:42 -06:00
ebadbce920 Drop bank from BlockCommitmentCache (#10959)
* Remove bank reference from BlockCommitmentCache

* Don't use a Bank to create BlockCommitmentCache

* Rename recent_slot to slot
2020-07-09 00:50:13 +00:00
841ecfd927 chore(deps): bump bincode from 1.2.1 to 1.3.1 (#10867)
* chore(deps): bump bincode from 1.2.1 to 1.3.1

Bumps [bincode](https://github.com/servo/bincode) from 1.2.1 to 1.3.1.
- [Release notes](https://github.com/servo/bincode/releases)
- [Commits](https://github.com/servo/bincode/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

* Switch from deprecated method

* Add options to maintain behavior with bincode::options()

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-07-09 00:08:05 +00:00
1a6bbd2867 Limited Deserialize isn't limiting anything (#10952)
* Add failing test

* Use deserialize_from to enable limit
2020-07-08 15:54:42 -06:00
9b380f8b2c chore(deps): bump @testing-library/react in /explorer (#10964)
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 10.4.4 to 10.4.5.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v10.4.4...v10.4.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 21:41:32 +00:00
99951adef4 chore(deps): bump @types/node from 14.0.19 to 14.0.20 in /explorer (#10963)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.19 to 14.0.20.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 20:58:57 +00:00
cce6b894e1 chore(deps): bump @types/jest from 26.0.3 to 26.0.4 in /explorer (#10942)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.3 to 26.0.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 17:45:53 +00:00
50e9fcf852 chore(deps): bump @testing-library/user-event in /explorer (#10941)
Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 7.2.1 to 12.0.11.
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v7.2.1...v12.0.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 17:45:46 +00:00
3da4a34ef0 chore(deps-dev): bump @babel/plugin-proposal-class-properties (#10943)
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-properties) from 7.10.1 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-plugin-proposal-class-properties)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 10:38:59 -07:00
2c16a3cd80 chore(deps): [security] bump npm from 6.14.5 to 6.14.6 in /web3.js (#10949)
Bumps [npm](https://github.com/npm/cli) from 6.14.5 to 6.14.6. **This update includes a security fix.**
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.14.5...v6.14.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 10:38:17 -07:00
0de5a72dc3 chore(deps): bump @types/node from 14.0.18 to 14.0.19 in /explorer (#10948)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.18 to 14.0.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-08 10:38:06 -07:00
3cdd54422d Skip tests on .merify.yml only PRs 2020-07-08 10:36:38 -07:00
356ab45e5a Gate automerge on Travis 2020-07-08 10:36:38 -07:00
6429042b6e Add --print-account-stats/--snapshot-archive-path arguments to ledger-tool (#10945)
Allows for seeing how the accounts are being stored
and specifying a different snapshot source directory.
2020-07-08 09:32:11 -07:00
c06505934f chore: fix test flakiness and add mock helper (#10956) 2020-07-08 12:46:16 +00:00
e50227745d update testnet docs (#10954) 2020-07-08 04:04:17 +00:00
930162a079 Drop dependency on BlockCommitmentCache bank (#10946)
* Drop dependency on BlockCommitmentCache bank

* cargo fmt
2020-07-07 20:13:30 -06:00
2fdbb97244 Rename largest_confirmed_root to highest_confirmed_root (#10947) 2020-07-07 23:59:46 +00:00
d492f4f15b Clean accounts path on validator startup (#10929) 2020-07-07 09:41:45 -07:00
cd503daecc chore(deps): bump react-dom from 16.13.0 to 16.13.1 in /explorer
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) from 16.13.0 to 16.13.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.13.1/packages/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 18:34:55 +08:00
2aa610e5c8 chore(deps-dev): bump semantic-release from 17.0.8 to 17.1.1 in /web3.js
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.8 to 17.1.1.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.8...v17.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 18:20:41 +08:00
e54246a9cf chore(deps): bump @testing-library/react in /explorer
Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 9.5.0 to 10.4.4.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v9.5.0...v10.4.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 18:20:11 +08:00
dd73e8eb62 chore(deps): bump @types/node from 14.0.14 to 14.0.18 in /explorer
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.14 to 14.0.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-07 18:16:35 +08:00
3f6042d8b3 Add RepairWeight to track votes seen in gossip for weighted repair (#10903)
* Add RepairWeight

Co-authored-by: Carl <carl@solana.com>
2020-07-06 22:49:40 -07:00
119949d4d8 Add a default commitment-level (#10935) 2020-07-07 03:05:55 +00:00
960f6f6f07 Decouple genesis fetch and snapshot fetch (#10931) 2020-07-06 16:09:12 -07:00
58a475b789 Add db recovery methods (#10838) 2020-07-06 12:43:45 -07:00
1269e348fb Add a way to re-hash the bank (#10765) 2020-07-06 12:42:41 -07:00
4de0713aa3 Rpc: Add getStakeActivation endpoint (#10902)
* Add getStakeActivation endpoint

* Add docs

* Update docs/src/apps/jsonrpc-api.md

Co-authored-by: Michael Vines <mvines@gmail.com>

* Rework return type

* Update docs

* Rebase

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-07-06 13:28:40 -06:00
39b3ac6a8d Introduce automatic ABI maintenance mechanism (2/2; rollout) (#8012)
* Introduce automatic ABI maintenance mechanism (2/2; rollout)

* Fix stable clippy

* Change to symlink

* Freeze abi of Tower

* fmt...

* Improve dev-experience!

* Update BankSlotDelta

$ diff -u /tmp/abi8/*7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj* /tmp/abi8/*9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w*
--- /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj      2020-06-18 18:01:22.831228087 +0900
+++ /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w      2020-07-03 15:59:58.430695244 +0900
@@ -140,7 +140,7 @@
                                                         field u8
                                                             primitive u8
                                                         field solana_sdk::instruction::InstructionError
-                                                            enum InstructionError (variants = 34)
+                                                            enum InstructionError (variants = 35)
                                                                 variant(0) GenericError (unit)
                                                                 variant(1) InvalidArgument (unit)
                                                                 variant(2) InvalidInstructionData (unit)
@@ -176,6 +176,7 @@
                                                                 variant(31) CallDepth (unit)
                                                                 variant(32) MissingAccount (unit)
                                                                 variant(33) ReentrancyNotAllowed (unit)
+                                                                variant(34) MaxSeedLengthExceeded (unit)
                                                     variant(9) CallChainTooDeep (unit)
                                                     variant(10) MissingSignatureForFee (unit)
                                                     variant(11) InvalidAccountIndex (unit)

* Fix some merge conflicts...
2020-07-06 20:22:23 +09:00
823126b372 Fix parsing (#10924)
Co-authored-by: Carl <carl@solana.com>
2020-07-06 02:39:42 -07:00
92697973d0 Document lockout_intervals and tiny niceties (#10925) 2020-07-06 08:59:17 +00:00
658de5b347 Skip and warn for hard-forks which are less than the start slot (#10918)
* Skip and warn for hard-forks which are less than the start slot

Option is used during a restart, but then after the restart is
complete, then the option is not needed if the starting slot
is past the hard-fork since the hard-fork should already be
in the snapshot it started from.

* Update ledger/src/blockstore_processor.rs

Co-authored-by: Michael Vines <mvines@gmail.com>

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-07-05 13:51:43 -07:00
28e15a63e5 Repair timing (#10913)
Co-authored-by: Carl <carl@solana.com>
2020-07-03 18:37:01 -07:00
f014c94369 Add breakdown of erasure blobs (#10912)
Co-authored-by: Carl <carl@solana.com>
2020-07-03 17:44:32 -07:00
2922494b4f Cleanup rpc (#10910)
* Remove unreachable error case

* Inline Ok

* Hoist Ok
2020-07-03 17:39:14 -06:00
c5a501e87f Steal dumoulin from colo for TdS 2020-07-03 20:30:44 +00:00
d8106ab552 Make test-checks.sh helpful and cargo-for-all-lock-files.sh useful (#10906) 2020-07-03 18:08:12 +09:00
8d951776ab Rpc: add filter to getProgramAccounts (#10888)
* Add RpcFilterType, and implement CompareBytes for getProgramAccounts

* Accept bytes in bs58

* Rename to memcmp

* Add Memcmp optional encoding field

* Add dataSize filter

* Update docs

* Clippy

* Simplify tests that don't need to test account contents; add multiple-filter tests
2020-07-03 07:46:29 +00:00
832d47317e Move clean accounts to background service (#10898) 2020-07-02 22:25:17 -07:00
f1699721ef Bench RaptorQ (#10886)
Co-authored-by: Carl <carl@solana.com>
2020-07-02 18:31:32 -07:00
f17ac70bb2 Add weighted traversal (#10877)
Co-authored-by: Carl <carl@solana.com>
2020-07-02 14:33:04 -07:00
bcf36cbf18 Add June intake validators to SOM (#10899)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-07-02 21:08:54 +00:00
ccc5ae221d chore(deps): bump @solana/web3.js from 0.61.4 to 0.62.0 in /explorer (#10893)
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) from 0.61.4 to 0.62.0.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases)
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.61.4...v0.62.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-02 09:00:20 -07:00
2f5f89f804 chore(deps-dev): bump jest from 26.0.1 to 26.1.0 in /web3.js (#10896)
Bumps [jest](https://github.com/facebook/jest) from 26.0.1 to 26.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v26.0.1...v26.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-02 09:00:00 -07:00
3884323cb6 Add target-node flag to bench-tps (#10876) 2020-07-01 21:10:12 -07:00
0d6ddf578d chore(deps): bump @types/node from 12.12.30 to 14.0.14 in /explorer
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.12.30 to 14.0.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 12:07:28 +08:00
d4836ad58b chore(deps): bump typescript from 3.9.5 to 3.9.6 in /explorer
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.5 to 3.9.6.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-02 12:05:04 +08:00
d53228e69d getInflationRate now only supports the current epoch 2020-07-02 02:11:31 +00:00
52526a9bc2 Prevent stub inclusion when building shared objects (#10875) 2020-07-01 13:15:30 -07:00
2669ccb864 Update struct prefixes to Ui (#10874)
* Update comments

* Use Ui prefix
2020-07-01 20:06:40 +00:00
6b45481bbb Instructions for validator logging (#10845)
* Instructions for disabling log throttling

* Remove syslog, add logrotate

* Update docs/src/running-validator/validator-start.md

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>

Co-authored-by: Carl <carl@solana.com>
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
2020-07-01 12:50:31 -07:00
cf17eaf5aa Add docs for restarting a cluster (#10857) 2020-07-01 10:52:09 -07:00
36f436c760 genesis subcommand now displays ticks per slot 2020-07-01 17:32:35 +00:00
1742824dd5 chore(deps-dev): bump @commitlint/travis-cli in /web3.js (#10772)
Bumps [@commitlint/travis-cli](https://github.com/conventional-changelog/commitlint) from 8.3.5 to 9.0.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.3.5...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:34:03 -07:00
a6c269297d chore(deps): bump @testing-library/jest-dom in /explorer (#10868)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.10.1 to 5.11.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.10.1...v5.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:33:50 -07:00
1500ad97b5 chore(deps): bump react from 16.13.0 to 16.13.1 in /explorer (#10869)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 16.13.0 to 16.13.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v16.13.1/packages/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:33:04 -07:00
4deec51703 chore(deps): bump rayon from 1.3.0 to 1.3.1 (#10605)
* chore(deps): bump rayon from 1.3.0 to 1.3.1

Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/rayon-rs/rayon/releases)
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md)
- [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.3.0...v1.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-07-01 08:09:28 -07:00
2f6f081af4 chore(deps-dev): bump @commitlint/config-conventional in /web3.js (#10774)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint) from 8.3.4 to 9.0.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.3.4...v9.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:09:10 -07:00
056efcded8 chore(deps): bump @types/react from 16.9.38 to 16.9.41 in /explorer (#10775)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.38 to 16.9.41.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:09:03 -07:00
08478ed14a chore(deps): bump @types/jest from 26.0.0 to 26.0.3 in /explorer (#10788)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 26.0.0 to 26.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:08:58 -07:00
8b69f6c863 chore(deps): bump hidapi from 1.2.2 to 1.2.3 (#10866)
Bumps [hidapi](https://github.com/ruabmbua/hidapi-rs) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/ruabmbua/hidapi-rs/releases)
- [Commits](https://github.com/ruabmbua/hidapi-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:08:47 -07:00
ba73f24a93 chore(deps-dev): bump @babel/core from 7.10.2 to 7.10.4 in /web3.js (#10852)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.2 to 7.10.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.4/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-07-01 08:07:45 -07:00
7a71580d53 Add heaviest subtree utility functions (#10863)
Co-authored-by: Carl <carl@solana.com>
2020-07-01 08:45:32 +00:00
ecf6fb2cd2 Rename new_banks_from_blockstore => new_banks_from_ledger (#10864) 2020-07-01 06:19:40 +00:00
d97850f1d9 Add account-decoder utilities (#10846)
* Fix comment and make less pub

* Add account-decoder crate and use to decode vote and system (nonce) accounts

* Update docs

* Rename RpcAccount struct

* s/Rpc/Display

* Call it jsonParsed and update docs

* Revert "s/Rpc/Display"

This reverts commit 6e7149f503.

* s/Rpc/Ui

* Add tests

* Ui more things

* Comments
2020-07-01 04:55:11 +00:00
b89e506cbb Consistently create temp dirs under ledger/farf (#10848) 2020-07-01 11:38:59 +09:00
5adf6f6bde Update expected shred version for testnet. (#10858) 2020-06-30 13:54:52 -07:00
3f287b3328 Change release docs to use CI when bumping the version (#10856) 2020-06-30 12:58:46 -07:00
1ffad2d051 More guard rails for restart with ledger procedure (#10853)
* Add expected_bank_hash required for supermajority
* Print snapshot hash in ledger-tool create-snapshot.
2020-06-30 12:43:48 -07:00
3a3b7a399a Fix netutils test (#10842) 2020-06-30 09:57:16 -06:00
cabedc0f36 Remove outdated todo comment (#10850) 2020-06-30 13:43:01 +00:00
2dfa48daf9 Add ability to parse logs in ledger-tool (#10840)
Co-authored-by: Carl <carl@solana.com>
2020-06-30 02:20:54 -07:00
4b93a7c1f6 Fix fork detection (#10839)
* Fix fork detection

Co-authored-by: Carl <carl@solana.com>
2020-06-29 18:49:57 -07:00
0579581f8c feat: getProgramAddress takes bytes rather than strings (#10837) 2020-06-29 17:05:05 -07:00
d9b389f510 Reduce logging lines (#10835) 2020-06-29 15:57:28 -07:00
583cec922b Remove ledger purge batching (#10830) 2020-06-29 14:44:35 -07:00
59aa299d05 Fix the docs build (#10834) 2020-06-29 21:28:15 +00:00
b28ec32e18 Update transaction encoding docs (#10833) 2020-06-29 14:10:25 -06:00
17a2128a8f More replay stage timing metrics (#10828) 2020-06-28 10:04:15 -07:00
ea30c157e0 Better slot printing (#10811) 2020-06-27 10:47:02 -07:00
fb8e2d8cdb Add debugging (#10822)
Co-authored-by: Carl <carl@solana.com>
2020-06-26 10:23:11 +00:00
7021e1c584 net.sh: Refactor node initialization wait (#10819)
* remote-node.sh: Factor out init wait to own script

* remote-node.sh: Allow nodes to initialize asynchronously

* testnet-automation: Plumb --async-node-init
2020-06-26 05:48:58 +00:00
50b3fa83a0 Move BankCommitmentCache to solana_runtime (#10816)
* Remove Blockstore member variable from BlockCommitmentCache

* Hoist is_confirmed_rooted() to its only caller

BlockCommitmentCache no longer depends on Blockstore

* Move BlockCommitmentCache to solana_runtime
2020-06-25 22:06:58 -06:00
7430978d1a Keep oldest snapshot so playing the ledger is possible from local data. (#10814) 2020-06-25 20:41:44 -07:00
0fde0d7379 Add ancestor iterator to lib.rs (#10813)
Co-authored-by: Carl <carl@solana.com>
2020-06-25 23:39:55 +00:00
62b873b054 Clean up rpc module (#10812)
* Clean up rpc module

* Simplify getting bank
2020-06-25 17:08:55 -06:00
aa544b2245 Add ledger copy command (#10756) 2020-06-25 11:56:36 -07:00
72b6349438 Add design proposal for ProgramInstruction procedural macro (#10763)
* Add design proposal for ProgramInstruction procedural macro

* Update examples and some verbiage

* More constant-like

* Generated helpers expect Pubkey by value
2020-06-25 12:52:52 -06:00
50f7ed80c8 Dont skip eager rent collect across gapped epochs (#10206)
* Dont skip eager rent collect across gapped epochs

* Adjust style and comment

* Adjust ascii chart and comment a bit

* Moar assert

* Relax the partition_count assert for completeness

* Tweak comment...

* tweak a bit

* Add gating logic

* Address reviews

* small formatting

* Clarify the code by replacing auto_generated...

* small formatting

* small formatting

* small formatting

* small formatting

* Narrow down conditional compilation scope
2020-06-25 23:11:33 +09:00
84954ad0a0 Fix leaf propagation in case of no votes in HeaviestForkChoice (#10803)
* Fix leaf propagation logic

Co-authored-by: Carl <carl@solana.com>
2020-06-25 04:08:18 -07:00
4164c69683 Tiny cleanups in preparation for persistent tower (#10805) 2020-06-25 18:24:16 +09:00
9f5bd5fe81 Expose SlotHistory::oldest() -> Slot (#10799) 2020-06-25 18:23:31 +09:00
b3e382ab3f Add non-circulating withdraw authority (#10798)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-06-25 04:17:49 +00:00
4dc9f378b8 Fix race in ci/run-sanity.sh (#10796) 2020-06-25 03:48:28 +00:00
7ade330b23 Rename Client methods to match proposed BanksClient (#10793) 2020-06-25 03:35:38 +00:00
ea708b0d84 Add blockstore insert metrics to dashboard (#10787) 2020-06-24 18:21:26 -07:00
48b846203e Use cargo tree to bump release branch lock files (#10790) 2020-06-25 00:47:04 +00:00
98621648cb Add poh-bench (#10707) 2020-06-24 15:51:52 -07:00
1c498369b5 Remove fee-payer guesswork from Message and Transaction (#10776)
* Make Message::new_with_payer the default constructor

* Remove Transaction::new_[un]signed_instructions

These guess the fee-payer instead of stating it explicitly
2020-06-24 14:52:38 -06:00
d5d5ad0071 Fixup stake doc wording (#10782)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-06-24 20:45:21 +00:00
4e04282564 Add correct erasure metrics to dashboard (#10781) 2020-06-24 13:16:56 -07:00
764c7b0403 Disable entire codepath (#10767)
Co-authored-by: Carl <carl@solana.com>
2020-06-24 12:09:55 -07:00
0b14ae5725 Add staking guide to docs (#10609) 2020-06-24 09:25:35 -06:00
8df16ac8a9 Fix explorer prettier error 2020-06-24 21:48:09 +08:00
f7a313597b Force https for explorer 2020-06-24 21:45:03 +08:00
74c44009a7 Fix explorer account history search 2020-06-24 21:01:39 +08:00
d989cc60f6 Fix explorer cluster status button styling on mobile 2020-06-24 16:49:51 +08:00
ad75f08c43 chore: run latest prettier 2020-06-24 16:14:08 +08:00
6171b55f50 chore(deps): bump prettier from 1.19.1 to 2.0.5 in /explorer
Bumps [prettier](https://github.com/prettier/prettier) from 1.19.1 to 2.0.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.19.1...2.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:14:08 +08:00
12339a72fa chore(deps): bump @solana/web3.js from 0.61.0 to 0.61.4 in /explorer
Bumps [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) from 0.61.0 to 0.61.4.
- [Release notes](https://github.com/solana-labs/solana-web3.js/releases)
- [Commits](https://github.com/solana-labs/solana-web3.js/compare/v0.61.0...v0.61.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:13:49 +08:00
1c469e38d3 chore(deps): bump @types/react-router-dom in /explorer
Bumps [@types/react-router-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-router-dom) from 5.1.3 to 5.1.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-router-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:13:14 +08:00
65eee0dfb8 chore(deps-dev): bump rollup from 2.17.0 to 2.18.0 in /web3.js
Bumps [rollup](https://github.com/rollup/rollup) from 2.17.0 to 2.18.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.17.0...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-24 16:03:36 +08:00
0e393a5684 Allow for hard fork at last root (#10762) 2020-06-23 21:49:11 -07:00
3aab13a167 Make curl verbose when uploading assets to github (#10757)
Debugging silent asset upload failures during release
2020-06-24 00:27:55 +00:00
c52f06a54a Fix plumtree link (#10755)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-06-23 23:35:35 +00:00
a1ef921b88 Rework backup and clear function (#10751) 2020-06-23 21:29:07 +00:00
77b8de193c Add utility functions for testing (#10749)
* Add ancestor iterator

* Add blockstore generation from trees

Co-authored-by: Carl <carl@solana.com>
2020-06-23 12:05:00 -07:00
db4a18ada4 Add PubkeyError for ProgramError (#10748) 2020-06-23 11:19:27 -07:00
685becad13 Further expand last_voted_slot terminology (#10747) 2020-06-23 21:52:45 +09:00
cabd0a09c3 Weight repair slots based on vote stake (#10741)
* Weight repair slots based on vote stake

* Add test
2020-06-22 20:27:45 -07:00
2ba8fc5243 Remove slots past wait-for-supermajority slot. (#10720) 2020-06-22 20:27:25 -07:00
0952b76f02 Add {Vote, Tower}::last_voted_slot() (#10734) 2020-06-23 11:59:54 +09:00
44f5452013 Remove unused StakeLockout::lockout (#10719)
* Remove unused StakeLockout::lockout

* Revert...

* Really revert to the original behavior...

* Use consistent naming after StakeLockout removal

* Furhter clean up

* Missed type aliases...

* More...

* Even more...
2020-06-23 10:30:09 +09:00
73586c1aad Use &[u8] for program address seeds rather then &str (#10744) 2020-06-22 16:51:43 -07:00
842cab2739 Remote Wallet: Stricter derivation path component parsing (#10725) 2020-06-22 17:10:11 +00:00
d42247c652 ledger-tool: Ignore SIGUSR1 (#10730)
Prevents warehouse archive calls getting KO'd by logrotate
2020-06-21 18:08:17 +00:00
a87f490b5e nit removal (#10721) 2020-06-21 16:12:21 +09:00
a33fef9af2 Add repair breakdown by slot and index (#10717)
* Slot full logging

* Repair stats logging

Co-authored-by: Carl <carl@solana.com>
2020-06-19 18:28:15 -07:00
cae22efd0e Fix typo (#10724) 2020-06-20 00:07:20 +00:00
fd2508b09e Add jsonParsed option for EncodedTransactions; add memo parser (#10711)
* Add jsonParsed option for EncodedTransactions; add memo parser

* Use kebab case for program names

* Add account-key parsing

* Add parse test
2020-06-19 16:15:13 -06:00
968792385b chore(deps): bump @types/react-dom from 16.9.5 to 16.9.8 in /explorer
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 16.9.5 to 16.9.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 15:28:05 +08:00
35f3f74aee chore(deps): bump node-sass from 4.13.1 to 4.14.1 in /explorer
Bumps [node-sass](https://github.com/sass/node-sass) from 4.13.1 to 4.14.1.
- [Release notes](https://github.com/sass/node-sass/releases)
- [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/node-sass/compare/v4.13.1...v4.14.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 15:27:30 +08:00
00e1235f8f chore(deps-dev): bump rollup from 2.15.0 to 2.17.0 in /web3.js
Bumps [rollup](https://github.com/rollup/rollup) from 2.15.0 to 2.17.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.15.0...v2.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 15:27:01 +08:00
f31f66a7c3 fix: avoid double spend in sendAndConfirmTransaction 2020-06-19 15:25:41 +08:00
d77818c18b Pull program stubs into SDK (#10704) 2020-06-18 23:23:28 -07:00
6d81eede93 Add CLI options and runtime support for selection of output snapshot version. (#10536) 2020-06-19 14:38:37 +09:00
b172b3369e Add new split poh/transaction verify times to dashboard (#10706) 2020-06-18 22:21:11 -07:00
0c72f62e96 Refactor gossip code from one huge function (#10701) 2020-06-18 22:20:52 -07:00
c0389ef82f Don't bother api.github.com on pull requests to avoid getting rate limited 2020-06-18 23:48:31 +00:00
2c029b844b Split out current and delinquent validators (#10702) 2020-06-18 16:19:32 -07:00
0a0f17b9d2 Reduce responder error prints (#10664) 2020-06-18 13:30:55 -07:00
b297d0b423 Permit users to assign labels to account addresses 2020-06-18 18:46:49 +00:00
a25ea8e774 Only force up-to-date lock files on edge 2020-06-18 18:23:31 +00:00
89e0584250 Do not run buildkite tests if gitbook config modified (#10692)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-06-18 16:25:47 +00:00
f4bffb4b21 chore(deps): bump @types/react from 16.9.36 to 16.9.38 in /explorer
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.36 to 16.9.38.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-18 16:07:39 +08:00
1662496359 chore(deps): bump @testing-library/jest-dom in /explorer
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 4.2.4 to 5.10.1.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v4.2.4...v5.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-18 16:07:26 +08:00
ed404dfc10 chore(deps): bump @types/jest from 24.9.1 to 26.0.0 in /explorer
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 24.9.1 to 26.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-18 16:07:05 +08:00
9c22a6007d Update testnet shred version (#10684)
Co-authored-by: Carl <carl@solana.com>
2020-06-18 00:55:06 -07:00
229ff05fe9 fix: improve send and confirm options ergonomics 2020-06-18 15:54:15 +08:00
dae8bc477b Update testnet shred version (#10681)
Co-authored-by: Carl <carl@solana.com>
2020-06-18 07:39:47 +00:00
7ad96e833b chore: fix flow config 2020-06-18 15:39:02 +08:00
df7e40f0bd chore: add set -e to web3 travis script to fail job on error 2020-06-18 15:39:02 +08:00
66e03822a8 chore: fix web3 CI build failure 2020-06-18 15:39:02 +08:00
6d810b9e3c Clean up solana-tokens (#10667)
* Use a trait object in solana-tokens' ThinClient

* Inline arg resolution

Not worth the code complexity

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-18 05:14:41 +00:00
b81998be69 chore(deps-dev): bump flow-bin from 0.126.1 to 0.127.0 in /web3.js (#10591)
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.126.1 to 0.127.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-18 13:13:38 +08:00
ed4c71fe2d Merge heaviest bank modules (#10672)
* Merge heaviest bank modules

* Merge heaviest fork choice modules

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-18 03:59:08 +00:00
0550b893b0 Fix typos (#10675)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 20:54:52 -07:00
5b9cd72d8f Remove strict from automerge, add rebase opt in 2020-06-17 20:52:39 -07:00
7afb5eee78 Fix typo (#10676)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-18 02:24:13 +00:00
26ebfedf46 Derive the working bank (#10670) 2020-06-17 20:16:57 -06:00
f37d2d5a58 Add docs to declare_id macro (#10671) 2020-06-17 19:57:23 -06:00
c151e783ca cli: Add version information to solana gossip and solana validators (#10652)
* Add validator version to `solana gossip`

* Add validator version to `solana validators`

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 23:04:13 +00:00
a5f82c995e ignore break (#10666) 2020-06-17 20:53:45 +00:00
7a741bb79a Move commitment to CliConfig to enable faster integration tests (#10627)
* Add commitment config to CliConfig

* Use config.commitment in cluster_query

* Use config.commitment in vote

* Add method with spinner + commitment

* Add send-transaction config to CliConfig

* Remove superfluous nonce check

* Add with_commitment helper fns

* Update src to use commitment

* Fix pay and transfer integration tests

* Fix nonce int tests

* Fix deploy int test

* Fix vote int test

* Fix stake int tests

* Nightly clippy

* Review comments
2020-06-17 12:18:48 -06:00
dac7dc2f10 Move types to more appropriate files (#10638) 2020-06-17 10:39:14 -07:00
39984cdcc3 Wait until bank is frozen before sending RPC notifications (#10654) 2020-06-18 00:44:51 +08:00
6ee222363e Move BankForks to solana_runtime (#10637)
* Move BankForks to solana_runtime

* Update imports
2020-06-17 15:27:03 +00:00
336339ac33 Still destake delinquents on poor block production (#10646)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 11:29:28 +00:00
50c93d4441 Cleanup error type mapping in serde_snapshot (#10580)
* Cleanup error type mapping in serde_snapshot

* Fail when account storage entry files cannot be moved from snapshot
2020-06-17 17:56:29 +09:00
540ac9eb6b Trigger all CI jobs for Dockerfile changes (#10651)
* Trigger docs job for possible mdbook updates, too

* Update comment

* Intentionally trigger ci docs job?

* Broaden more

* Revert "Intentionally trigger ci docs job?"

This reverts commit 801cf2bfdf.
2020-06-17 16:20:52 +09:00
0de6c444d6 Simd poh (#10604)
* Simd poh

* Fix poh verify bench
2020-06-16 23:03:26 -07:00
891aa8c13e Add RequestProcessor constructor to simplify testing (#10631)
* Add JsonRpcRequestProcessor constructor

* Avoid start_rpc_handler_with_tx monolith in rpc tests

* pub

* Pass an Arc, so that caller can poke the bank
2020-06-16 23:30:59 -06:00
5673343f49 Add address to non-circulating supply 2020-06-16 21:20:33 -07:00
36ca43e15b Fix links in TdS registration docs page (#10641)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 02:36:18 +00:00
4daa519c1b Plumb --warp-slot through net scripts (#10639)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 01:55:55 +00:00
bdbd677d57 Add crates.io to exclude... (#10640) 2020-06-17 09:10:30 +09:00
ae0d5ba201 Allow pre-existing stake accounts in multinode-demo/delegate-stake.sh 2020-06-16 15:45:25 -06:00
1eca9b19ab Entry verify cleanup and gossip counters (#10632)
* Add prune message counter

* Switch to us verification time to match other counters

* Add separate transaction/poh verify timing
2020-06-16 14:00:29 -07:00
1b7ef69bce chore(deps): bump react-router-dom from 5.1.2 to 5.2.0 in /explorer
Bumps [react-router-dom](https://github.com/ReactTraining/react-router) from 5.1.2 to 5.2.0.
- [Release notes](https://github.com/ReactTraining/react-router/releases)
- [Changelog](https://github.com/ReactTraining/react-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ReactTraining/react-router/compare/v5.1.2...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 13:16:21 -07:00
4f4105c7e3 chore(deps): bump typescript from 3.8.3 to 3.9.5 in /explorer
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.8.3 to 3.9.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.8.3...v3.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-16 13:16:13 -07:00
2bbd599dfa Resotre linkcheck with some excludes (#10634) 2020-06-17 04:04:36 +09:00
b9d6af4227 Disable linkcheck for now (#10633) 2020-06-17 03:34:13 +09:00
40ccade5cc Update to rust 1.44.0 (#10585)
* Update rust 1.44.0

* Update rust nightly 1.46.0

* Update docs

* Fix clippy errors

* Compile all source code with stable and nightly

* Add another note

* script tweaks

* Fix a test...

* Add another workaround

* Add hack

* Increase timeout...

* Revert "Add hack"

This reverts commit 5960f087203be8792ec0728a6755288c317a2788.

* Revert "Add another workaround"

This reverts commit e14300d01ffd1b8e86e676662177545549b45c13.

* Require nightly rustfmt and use older nightly a bit

* Improve document a bit

* Revert now not-existing clippy check...
2020-06-17 01:32:16 +09:00
2d2e23ab59 Bump baseline version 2020-06-16 08:45:35 -07:00
f8b88d717e Enable fork choice and switch votes, devnet => now, testnet => epoch 63 (#10615)
* Enable fork choice, devnet => now, testnet => epoch 63

* Set development to 0

* Enable switch vote slot

Co-authored-by: Carl <carl@solana.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-16 09:55:36 +00:00
b4f86cc67d Group showing various rust toolchain versions (#10618)
* Group showing various rust toolchain versions

* Fix
2020-06-16 13:40:53 +09:00
8bd62d78eb Fix race in remove_unrooted_slot (#10607)
* Fix race

* clippy fixes

* Rename and add comment

Co-authored-by: Carl <carl@solana.com>
2020-06-15 19:41:26 -07:00
f76bd9cd5a Follow dependabot change (#10616) 2020-06-16 11:31:46 +09:00
348bf78cd1 Plumb --wait-for-supermajority through scripts (#10611) 2020-06-16 01:52:44 +00:00
296ac10b3a |solana withdraw-from-vote-account| now supports ALL, and refuses to deallocate the vote account (#10602) 2020-06-15 21:36:47 +00:00
daa2e6363f Add generic is_parsable() input validator.
Allow input validators to accept &str, &String and String parameters.
2020-06-15 09:30:39 -07:00
184030d6e8 Minor RELEASE doc updates (#10601) 2020-06-15 16:09:04 +00:00
74c7dce4b5 Simplify automerge label removal condition 2020-06-15 09:01:45 -07:00
335f5f35f4 / 2020-06-15 08:51:46 -07:00
22ec51f4d4 Add mergify automerge configuration 2020-06-15 08:45:02 -07:00
2267547f69 chore(deps): bump react-scripts from 3.4.0 to 3.4.1 in /explorer
Bumps [react-scripts](https://github.com/facebook/create-react-app/tree/HEAD/packages/react-scripts) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/facebook/create-react-app/releases)
- [Changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/create-react-app/commits/react-scripts@3.4.1/packages/react-scripts)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 07:59:02 -07:00
c63a9d35bc chore(deps): bump bootstrap from 4.4.1 to 4.5.0 in /explorer
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v4.4.1...v4.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 07:58:47 -07:00
c6f20347e0 [auto-commit] Update all Cargo lock files 2020-06-15 07:58:16 -07:00
480f69cc5e Bump serde from 1.0.111 to 1.0.112
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.111 to 1.0.112.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.111...v1.0.112)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 07:58:16 -07:00
159a489fd8 Bump zstd from 0.5.2+zstd.1.4.5 to 0.5.3+zstd.1.4.5
Bumps [zstd](https://github.com/gyscos/zstd-rs) from 0.5.2+zstd.1.4.5 to 0.5.3+zstd.1.4.5.
- [Release notes](https://github.com/gyscos/zstd-rs/releases)
- [Commits](https://github.com/gyscos/zstd-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 23:59:12 -07:00
943ae9793d Bump indicatif from 0.14.0 to 0.15.0
Bumps [indicatif](https://github.com/mitsuhiko/indicatif) from 0.14.0 to 0.15.0.
- [Release notes](https://github.com/mitsuhiko/indicatif/releases)
- [Commits](https://github.com/mitsuhiko/indicatif/compare/0.14.0...0.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 23:58:57 -07:00
f6546d00c2 Export unconditionally 2020-06-14 23:31:10 -07:00
1440ba9a0e Export to real solana-web3.js repo 2020-06-14 23:27:33 -07:00
5361b29417 shellcheck 2020-06-14 23:24:22 -07:00
de9799962c fix: remove broken links from README 2020-06-14 23:24:22 -07:00
af60907b29 Trigger travis builds when .travis changes 2020-06-14 22:25:34 -07:00
273710eca4 Connect web3.js to CI 2020-06-14 22:11:38 -07:00
22ea4fb272 ci: break up .travis.yml 2020-06-14 22:08:55 -07:00
d7b9aca87b chore: remove trailing whitespace 2020-06-14 21:57:04 -07:00
23ab880286 chore(deps-dev): bump eslint-plugin-import from 2.21.1 to 2.21.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.21.1 to 2.21.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.21.1...v2.21.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
24a906bf51 chore(deps-dev): bump acorn from 7.2.0 to 7.3.1
Bumps [acorn](https://github.com/acornjs/acorn) from 7.2.0 to 7.3.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.2.0...7.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f563835d45 chore(deps): bump jayson from 3.3.1 to 3.3.3
Bumps [jayson](https://github.com/tedeh/jayson) from 3.3.1 to 3.3.3.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.3.1...v3.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ad0e71d357 feat: make Transaction.populate method public and tweak MessageArgs 2020-06-14 21:57:04 -07:00
22a63fe93c fix: fix blockhash cache reuse 2020-06-14 21:57:04 -07:00
24bb060292 feat: remove commitment option from requestAirdrop 2020-06-14 21:57:04 -07:00
a9a19e2363 chore(deps-dev): bump eslint-plugin-import from 2.20.2 to 2.21.1
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.2 to 2.21.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.2...v2.21.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
48cbaacee5 chore(deps-dev): bump rollup from 2.13.1 to 2.15.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.13.1 to 2.15.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.13.1...v2.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7bcdb6d693 chore(deps-dev): bump typescript from 3.9.3 to 3.9.5
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.3 to 3.9.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.3...v3.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1feff166cc chore(deps): bump rpc-websockets from 5.1.2 to 5.2.2
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.1.2 to 5.2.2.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/compare/v5.1.2...v5.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
71a3f0f677 chore(deps-dev): bump rollup from 2.12.0 to 2.13.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.12.0 to 2.13.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.12.0...v2.13.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
92d3f5887e chore(deps-dev): bump flow-bin from 0.126.0 to 0.126.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.126.0 to 0.126.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e622bb12b3 feat: add getFeeCalculatorForBlockhash method 2020-06-14 21:57:04 -07:00
e876081d52 chore: revert package.json change 2020-06-14 21:57:04 -07:00
8f03677801 feat: remove getInflation in favor of getInflationGovernor 2020-06-14 21:57:04 -07:00
8547ae43ce feat: add skipPreflight option 2020-06-14 21:57:04 -07:00
a6e07e44da chore: revert "bump eslint-plugin-jest from 22.19.0 to 23.13.2"
This reverts commit 0df7eb8a1b324eb38daa1818990b0557c7147337.
2020-06-14 21:57:04 -07:00
3a4d7ebe09 chore: revert "bump flow-bin from 0.125.1 to 0.126.0"
This reverts commit 35226a0e0e26673bbd38fbacff9257e72a0835f6.
2020-06-14 21:57:04 -07:00
e759e7c91d chore(deps-dev): bump eslint-plugin-jest from 22.19.0 to 23.13.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.19.0 to 23.13.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.19.0...v23.13.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b7668838c9 chore(deps-dev): bump flow-bin from 0.125.1 to 0.126.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.125.1 to 0.126.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c4c6db6442 chore(deps): bump rpc-websockets from 5.1.1 to 5.1.2
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/compare/v5.1.1...v5.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2c050eec39 chore(deps-dev): bump rollup from 2.11.2 to 2.12.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.11.2 to 2.12.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.11.2...v2.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c45e267973 chore(deps-dev): bump @babel/core from 7.10.1 to 7.10.2
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.1 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1670c4bee1 chore(deps-dev): bump @babel/preset-env from 7.10.1 to 7.10.2
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.1 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
595f1c8867 chore(deps): bump @babel/runtime from 7.10.1 to 7.10.2
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.10.1 to 7.10.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.2/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
723cc5b925 chore(deps-dev): bump @babel/core from 7.10.0 to 7.10.1
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.10.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
feaddea1d1 chore(deps): bump jayson from 3.3.0 to 3.3.1
Bumps [jayson](https://github.com/tedeh/jayson) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.3.0...v3.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0c996f80e8 chore(deps-dev): bump rollup from 2.11.0 to 2.11.2
Bumps [rollup](https://github.com/rollup/rollup) from 2.11.0 to 2.11.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.11.0...v2.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6b41331ecd chore(deps-dev): bump @babel/preset-env from 7.10.0 to 7.10.1
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0838cdb58b chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-properties) from 7.8.3 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-plugin-proposal-class-properties)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fc076a0603 chore(deps): bump @babel/runtime from 7.10.0 to 7.10.1
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.10.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1993b51e74 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.10.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5688949220 chore(deps-dev): bump @babel/preset-flow from 7.9.0 to 7.10.1
Bumps [@babel/preset-flow](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-flow) from 7.9.0 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-preset-flow)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fa2cbaf95f chore(deps-dev): bump @babel/plugin-proposal-function-bind
Bumps [@babel/plugin-proposal-function-bind](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-function-bind) from 7.8.3 to 7.10.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.1/packages/babel-plugin-proposal-function-bind)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8ab4c22a54 chore(deps-dev): bump rollup from 2.10.9 to 2.11.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.10.9 to 2.11.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.10.9...v2.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a29e088169 feat: add createProgramAddress 2020-06-14 21:57:04 -07:00
85c68bc953 chore(deps-dev): bump @babel/core from 7.9.6 to 7.10.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.9.6 to 7.10.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.6...v7.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8623d989cd chore(deps-dev): bump @babel/preset-env from 7.9.6 to 7.10.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.6 to 7.10.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.6...v7.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c289ce85a6 chore(deps): bump @babel/runtime from 7.9.6 to 7.10.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.9.6 to 7.10.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.10.0/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6e262b8eab chore(deps-dev): bump rollup-plugin-terser from 5.3.0 to 6.1.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.3.0 to 6.1.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.3.0...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c4797ae210 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.9.6 to 7.10.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.6...v7.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e2e4b47103 feat: add singleGossip commitment level 2020-06-14 21:57:04 -07:00
ed08c25d2d chore(deps-dev): bump semantic-release from 17.0.7 to 17.0.8
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.7 to 17.0.8.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.7...v17.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
13bc7a4d95 chore(deps-dev): bump rollup from 2.10.8 to 2.10.9
Bumps [rollup](https://github.com/rollup/rollup) from 2.10.8 to 2.10.9.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.10.8...v2.10.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
925c225885 feat: add support for getFirstAvailableBlock method 2020-06-14 21:57:04 -07:00
1b8fe71230 feat: add getLargestAccounts rpc api 2020-06-14 21:57:04 -07:00
9c677c7d3d feat: add support for getSupply RPC method 2020-06-14 21:57:04 -07:00
6d24110bcd chore(deps-dev): bump rollup from 2.10.5 to 2.10.8
Bumps [rollup](https://github.com/rollup/rollup) from 2.10.5 to 2.10.8.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.10.5...v2.10.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
79642c5d40 fix: update expected signature-status error 2020-06-14 21:57:04 -07:00
722adb66c2 feat: add commitment param to subscription apis 2020-06-14 21:57:04 -07:00
803910bf08 chore(deps-dev): bump acorn from 7.1.1 to 7.2.0
Bumps [acorn](https://github.com/acornjs/acorn) from 7.1.1 to 7.2.0.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.1.1...7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7f9a2e477f fix: fix getEpochInfo type definition 2020-06-14 21:57:04 -07:00
6558e05fd0 feat: add minimumLedgerSlot api 2020-06-14 21:57:04 -07:00
839e93480c feat: update transaction confirming apis 2020-06-14 21:57:04 -07:00
3b71ec1ff6 feat: add root and single commitment levels 2020-06-14 21:57:04 -07:00
1e1c9de367 fix: clean fixtures 2020-06-14 21:57:04 -07:00
f02e73cd5e fix: remove return value from load, unnecessary 2020-06-14 21:57:04 -07:00
6b0c4bf17f chore(deps): bump bn.js from 5.1.1 to 5.1.2
Bumps [bn.js](https://github.com/indutny/bn.js) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/indutny/bn.js/compare/v5.1.1...v5.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4ee1743b52 chore(deps-dev): bump flow-bin from 0.123.0 to 0.125.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.123.0 to 0.125.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a97a69bf30 chore(deps-dev): bump codecov from 3.6.5 to 3.7.0
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.0.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a38b6e7060 chore(deps-dev): bump typescript from 3.9.2 to 3.9.3
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.9.2 to 3.9.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.9.2...v3.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
88af310d07 chore(deps-dev): bump rollup from 2.7.6 to 2.10.5
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.6 to 2.10.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.7.6...v2.10.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fc5c33d921 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.30.0 to 2.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.34.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b3e093e4f5 chore(deps-dev): bump @typescript-eslint/parser from 2.30.0 to 2.34.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.30.0 to 2.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.34.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4b613a4574 feat: add getBlockTime method 2020-06-14 21:57:04 -07:00
e10a5c90ab chore: disable latest node in CI 2020-06-14 21:57:04 -07:00
5fbd07c2c0 chore(deps): bump ws from 7.2.5 to 7.3.0
Bumps [ws](https://github.com/websockets/ws) from 7.2.5 to 7.3.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.5...7.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8f2a0d1106 chore(deps-dev): bump typescript from 3.8.3 to 3.9.2
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.8.3 to 3.9.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.8.3...v3.9.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7a835af4b8 chore(deps-dev): bump marked from 0.8.2 to 1.1.0
Bumps [marked](https://github.com/markedjs/marked) from 0.8.2 to 1.1.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.8.2...v1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ec71ed9e57 chore: bump jest from 25.5.4 to 26.0.1 2020-06-14 21:57:04 -07:00
615252c2e9 chore: bump jest from 25.5.2 to 25.5.4 2020-06-14 21:57:04 -07:00
d3a2934e75 chore: fix flaky test and stop running broken examples in ci 2020-06-14 21:57:04 -07:00
5f0b182a3b fix: overly strict key length check when decoding stake instructions 2020-06-14 21:57:04 -07:00
2116e2b181 fix: key length check when decoding instructions 2020-06-14 21:57:04 -07:00
742c83f15b fix: add type defs for getEpochInfo 2020-06-14 21:57:04 -07:00
a112d9cedf fix: add type def for NonceAccount.fromAccountData 2020-06-14 21:57:04 -07:00
02a278b3b2 fix: add version to ContactInfo 2020-06-14 21:57:04 -07:00
c584fbdf39 feat: add support for more system instructions 2020-06-14 21:57:04 -07:00
09d1b7f39f fix: recent blockhash decoding for conf transactions 2020-06-14 21:57:04 -07:00
c5802bcbb6 feat: allow passing seed to createNonceAccount 2020-06-14 21:57:04 -07:00
5662808b4c fix: isAccountWritable takes a number 2020-06-14 21:57:04 -07:00
14a41bc47b feat: expose transaction message publicly 2020-06-14 21:57:04 -07:00
cd439bed0d chore(deps-dev): bump rollup from 2.7.5 to 2.7.6
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.5 to 2.7.6.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.7.5...v2.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
734ada927c chore(deps-dev): bump rollup from 2.7.3 to 2.7.5
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.3 to 2.7.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.7.3...v2.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e2011469c6 chore(deps): bump @babel/runtime from 7.9.2 to 7.9.6
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.9.2 to 7.9.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.9.6/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
19a8de94db chore(deps-dev): bump @babel/core from 7.9.0 to 7.9.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.9.0 to 7.9.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.0...v7.9.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cce10e95d2 chore(deps-dev): bump jest from 25.5.0 to 25.5.2
Bumps [jest](https://github.com/facebook/jest) from 25.5.0 to 25.5.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.5.0...v25.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
83ad39fc66 chore(deps-dev): bump @babel/preset-env from 7.9.5 to 7.9.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.5 to 7.9.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.5...v7.9.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a7d73e89ab chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.9.0 to 7.9.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.0...v7.9.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
be85d74142 chore(deps-dev): bump jest from 25.4.0 to 25.5.0
Bumps [jest](https://github.com/facebook/jest) from 25.4.0 to 25.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.4.0...v25.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
17bb897383 chore(deps-dev): bump rollup from 2.7.1 to 2.7.3
Bumps [rollup](https://github.com/rollup/rollup) from 2.7.1 to 2.7.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.7.1...v2.7.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1c5cec9eee chore(deps-dev): bump @typescript-eslint/parser from 2.29.0 to 2.30.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.30.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1ea8caf3fd chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.30.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9effa09334 chore(deps): bump ws from 7.2.3 to 7.2.5
Bumps [ws](https://github.com/websockets/ws) from 7.2.3 to 7.2.5.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.3...7.2.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7e642d5456 fix: rename signData to serializeMessage() 2020-06-14 21:57:04 -07:00
403448a91f test: add test for external Transaction signing 2020-06-14 21:57:04 -07:00
8142aa6c1d feat: allow external signatures on Transactions
Adds a helper for adding externally created signature/pubkey pairs
to `Transactions`
2020-06-14 21:57:04 -07:00
7d3781e19f feat: expose Transaction._getSignData() as Transaction.signData 2020-06-14 21:57:04 -07:00
1be298c49f chore(deps-dev): bump eslint-config-prettier from 6.10.1 to 6.11.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.10.1 to 6.11.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.10.1...v6.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
62251a8bc2 chore: split out meta type 2020-06-14 21:57:04 -07:00
ae53742e1a feat: add getConfirmedTransaction and getConfirmedSignaturesForAddress 2020-06-14 21:57:04 -07:00
7f182d22cd chore(deps): bump jayson from 3.2.1 to 3.3.0
Bumps [jayson](https://github.com/tedeh/jayson) from 3.2.1 to 3.3.0.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.2.1...v3.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
86546a0466 chore(deps-dev): bump semantic-release from 17.0.6 to 17.0.7
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.6 to 17.0.7.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.6...v17.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2a14eb0763 chore(deps-dev): bump prettier from 2.0.4 to 2.0.5
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/2.0.5/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.4...2.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ef95db2028 chore(deps-dev): bump rollup from 2.6.1 to 2.7.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.6.1 to 2.7.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.6.1...v2.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2b6cbb2ed8 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.29.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2ed23560fc chore(deps-dev): bump @typescript-eslint/parser from 2.28.0 to 2.29.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.28.0 to 2.29.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.29.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f0e3604652 chore(deps-dev): bump jest from 25.3.0 to 25.4.0
Bumps [jest](https://github.com/facebook/jest) from 25.3.0 to 25.4.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.3.0...v25.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a4e4dc57bb chore(deps-dev): bump semantic-release from 17.0.5 to 17.0.6
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.5 to 17.0.6.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.5...v17.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
74e653d885 chore(deps-dev): bump semantic-release from 17.0.4 to 17.0.5
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.4 to 17.0.5.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.4...v17.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
95e9181b31 chore(deps-dev): bump flow-bin from 0.122.0 to 0.123.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.122.0 to 0.123.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.122.0...v0.123.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
efe6b24e97 chore(deps): bump jayson from 3.2.0 to 3.2.1
Bumps [jayson](https://github.com/tedeh/jayson) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.2.0...v3.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e6fb146809 feat: specify program account when using bpf loader 2020-06-14 21:57:04 -07:00
56781f893e chore(deps): bump buffer from 5.5.0 to 5.6.0
Bumps [buffer](https://github.com/feross/buffer) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/feross/buffer/releases)
- [Commits](https://github.com/feross/buffer/compare/v5.5.0...v5.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3a1c582df5 fix: connection url can upgrade to a websocket if no port is supplied 2020-06-14 21:57:04 -07:00
3aee5149a0 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.27.0 to 2.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.28.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f35a8db5c0 chore(deps-dev): bump @typescript-eslint/parser from 2.27.0 to 2.28.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.27.0 to 2.28.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.28.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
85f8db13a8 chore(deps-dev): bump eslint-plugin-prettier from 3.1.2 to 3.1.3
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d252b82578 chore(deps-dev): bump rollup from 2.6.0 to 2.6.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3ef7f6da09 chore(deps-dev): bump rollup from 2.4.0 to 2.6.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.4.0 to 2.6.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.4.0...v2.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cd6b48a403 fix: adjust status retry algorithm 2020-06-14 21:57:04 -07:00
2c517c1f3c chore(deps-dev): bump rollup from 2.3.5 to 2.4.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.5 to 2.4.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.5...v2.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0d37832d3a chore(deps-dev): bump rollup from 2.3.4 to 2.3.5
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.4...v2.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
96e5099d33 fix: feedback 2020-06-14 21:57:04 -07:00
ca02d593aa fix: improve error messaging 2020-06-14 21:57:04 -07:00
4409a05564 fix: reset subscriptions on ws close 2020-06-14 21:57:04 -07:00
0f7789e373 chore(deps-dev): bump jest from 25.2.7 to 25.3.0
Bumps [jest](https://github.com/facebook/jest) from 25.2.7 to 25.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.7...v25.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
831ab58f32 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.27.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d081b55e40 fix: declare system program id in base58 2020-06-14 21:57:04 -07:00
65666b63cb chore(deps-dev): bump rollup from 2.3.3 to 2.3.4
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.3...v2.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
aa3f411354 chore(deps-dev): bump @babel/preset-env from 7.9.0 to 7.9.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.0 to 7.9.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.9.0...v7.9.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
224268ab37 chore(deps-dev): bump @typescript-eslint/parser from 2.26.0 to 2.27.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.27.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e3714a80a8 chore(deps-dev): bump prettier from 2.0.3 to 2.0.4
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.3...2.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3a2fe7fdbc feat: update getSignatureStatus methods 2020-06-14 21:57:04 -07:00
ae10f1ecab fix: properly export SYSTEM_INSTRUCTION_LAYOUTS 2020-06-14 21:57:04 -07:00
5e1a26ce2e fix: properly export NONCE_ACCOUNT_LENGTH 2020-06-14 21:57:04 -07:00
7989c10b7a feat: return null when account info not found 2020-06-14 21:57:04 -07:00
0fcb1f6f56 chore(deps-dev): bump prettier from 2.0.2 to 2.0.3
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.2...2.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4c85bccda7 fix: add NONCE_ACCOUNT_LENGTH to type defs 2020-06-14 21:57:04 -07:00
4242eee739 chore: fix lint 2020-06-14 21:57:04 -07:00
9b05e9d21e fix: add getNonce method to defs 2020-06-14 21:57:04 -07:00
01f9a2ee4c chore: add test for failed transaction 2020-06-14 21:57:04 -07:00
b0316f82b5 feat: add err field to status results 2020-06-14 21:57:04 -07:00
3120e681d6 chore(deps-dev): bump rollup from 2.3.2 to 2.3.3
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.2...v2.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c55c533202 chore(deps): bump rpc-websockets from 5.1.0 to 5.1.1
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits/v5.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0484484823 chore(deps): bump rpc-websockets from 5.0.16 to 5.1.0
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.0.16 to 5.1.0.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2067bfde72 chore(deps-dev): bump jest from 25.2.6 to 25.2.7
Bumps [jest](https://github.com/facebook/jest) from 25.2.6 to 25.2.7.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.6...v25.2.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
98e68825d0 chore(deps-dev): bump flow-bin from 0.121.0 to 0.122.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.121.0 to 0.122.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.121.0...v0.122.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
dd4fbdaed3 chore(deps-dev): bump jest from 25.2.4 to 25.2.6
Bumps [jest](https://github.com/facebook/jest) from 25.2.4 to 25.2.6.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.4...v25.2.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6f363e5221 feat: use new getSignatureStatuses endpoint and naming 2020-06-14 21:57:04 -07:00
057b2861d3 fix: getConfirmedBlock ix programId parsing 2020-06-14 21:57:04 -07:00
cfc902fc1e chore(deps-dev): bump rollup from 2.3.1 to 2.3.2
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.1...v2.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0fa84bb06c fix: getConfirmedBlock missing arg in defs 2020-06-14 21:57:04 -07:00
a948757b0e chore: increase test sleep to ensure confirmation 2020-06-14 21:57:04 -07:00
aeedd3867f feat: rename testnet util methods 2020-06-14 21:57:04 -07:00
352f296c09 chore(deps-dev): bump rollup from 2.3.0 to 2.3.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.3.0...v2.3.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cc77cbc0a0 chore(deps-dev): bump @typescript-eslint/parser from 2.25.0 to 2.26.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.25.0 to 2.26.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.26.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
921bb7bf97 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.25.0 to 2.26.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.26.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
732c8c6758 chore(deps-dev): bump rollup from 2.2.0 to 2.3.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.2.0...v2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
42fd611f6c chore(deps-dev): bump jest from 25.2.3 to 25.2.4
Bumps [jest](https://github.com/facebook/jest) from 25.2.3 to 25.2.4.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.3...v25.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ed2a0c7acb chore: improve EpochSchedule docs 2020-06-14 21:57:04 -07:00
7184fd79f6 chore: fix broken doc links 2020-06-14 21:57:04 -07:00
02f26b8db5 chore: fix new lint 2020-06-14 21:57:04 -07:00
399b0c6cf7 chore(deps-dev): bump eslint-plugin-import from 2.20.1 to 2.20.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.1 to 2.20.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.1...v2.20.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a2c6c991b8 feat: add root subscription api 2020-06-14 21:57:04 -07:00
3379e8cd46 chore: add finalized signature test 2020-06-14 21:57:04 -07:00
a571e3dc65 feat: update getSignatureStatus api 2020-06-14 21:57:04 -07:00
ce4820a85a chore(deps-dev): bump jest from 25.2.2 to 25.2.3
Bumps [jest](https://github.com/facebook/jest) from 25.2.2 to 25.2.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.2...v25.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
911e002fb3 chore(deps-dev): bump jest from 25.2.1 to 25.2.2
Bumps [jest](https://github.com/facebook/jest) from 25.2.1 to 25.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.1...v25.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
41b8c55721 chore(deps-dev): bump jest from 25.2.0 to 25.2.1
Bumps [jest](https://github.com/facebook/jest) from 25.2.0 to 25.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.2.0...v25.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
db7ed6394d chore(deps-dev): bump jest from 25.1.0 to 25.2.0
Bumps [jest](https://github.com/facebook/jest) from 25.1.0 to 25.2.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v25.1.0...v25.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ac4f155f30 chore(deps-dev): bump eslint-plugin-flowtype from 4.6.0 to 4.7.0
Bumps [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/gajus/eslint-plugin-flowtype/releases)
- [Commits](https://github.com/gajus/eslint-plugin-flowtype/compare/v4.6.0...v4.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
39d8df9c7d chore(deps-dev): bump rollup from 2.1.0 to 2.2.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.1.0...v2.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0bdadfbf3c chore(deps-dev): bump prettier from 2.0.1 to 2.0.2
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.1...2.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ce1e08fbc1 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.24.0 to 2.25.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.25.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
557ae5ea4c chore(deps-dev): bump @typescript-eslint/parser from 2.24.0 to 2.25.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.24.0 to 2.25.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.25.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b9ade46c41 chore: prettier fixes 2020-06-14 21:57:04 -07:00
be53ab5aa4 feat: add context to pubsub notification callbacks 2020-06-14 21:57:04 -07:00
1c31e527e2 feat: update getSignatureStatus 2020-06-14 21:57:04 -07:00
ac8660b2e9 chore(deps-dev): bump @babel/preset-env from 7.8.7 to 7.9.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.7 to 7.9.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7a58c92490 chore(deps-dev): bump flow-typed from 3.0.0 to 3.1.0
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c1597635b1 chore(deps-dev): bump marked from 0.8.1 to 0.8.2
Bumps [marked](https://github.com/markedjs/marked) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.8.1...v0.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
746e779cfe chore(deps-dev): bump eslint-config-prettier from 6.10.0 to 6.10.1
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.10.0 to 6.10.1.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.10.0...v6.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
63c67c36ac chore(deps-dev): bump prettier from 2.0.0 to 2.0.1
Bumps [prettier](https://github.com/prettier/prettier) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.0.0...2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9f4fc39b78 chore(deps-dev): bump prettier from 1.19.1 to 2.0.0
Bumps [prettier](https://github.com/prettier/prettier) from 1.19.1 to 2.0.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.19.1...2.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ec3f56b9bc chore(deps): bump @babel/runtime from 7.9.0 to 7.9.2
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.9.0 to 7.9.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.9.2/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5cbbe9943d chore(deps-dev): bump @babel/preset-flow from 7.8.3 to 7.9.0
Bumps [@babel/preset-flow](https://github.com/babel/babel) from 7.8.3 to 7.9.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.3...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f36d268c50 chore(deps-dev): bump @babel/core from 7.8.7 to 7.9.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.7 to 7.9.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.7...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e9b3482fbd chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.8.3 to 7.9.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.3...v7.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ae41f967c4 chore(deps): bump @babel/runtime from 7.8.7 to 7.9.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.7 to 7.9.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.9.0/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6797bcba76 chore(deps-dev): bump marked from 0.8.0 to 0.8.1
Bumps [marked](https://github.com/markedjs/marked) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.8.0...v0.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6abd65dfe2 chore: add flow type for jest 2020-06-14 21:57:04 -07:00
c87ae16aae chore(deps-dev): bump rollup from 2.0.6 to 2.1.0
Bumps [rollup](https://github.com/rollup/rollup) from 2.0.6 to 2.1.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.0.6...v2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cb64c56494 chore(deps-dev): bump flow-bin from 0.120.1 to 0.121.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.120.1 to 0.121.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.120.1...v0.121.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
96ac1cf173 fix: update bpf c example to latest sdk 2020-06-14 21:57:04 -07:00
3432d6e5ee chore(deps-dev): bump @typescript-eslint/parser from 2.22.0 to 2.24.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.22.0 to 2.24.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.24.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2b95ded880 chore: fix eslint errors 2020-06-14 21:57:04 -07:00
5cb24ecd49 chore(deps-dev): bump @typescript-eslint/parser from 2.22.0 to 2.23.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.23.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fc8e836c37 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.23.0 to 2.24.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.24.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
402c160ae9 feat: use crypto-hash instead of hasha 2020-06-14 21:57:04 -07:00
bd7e802e46 chore(deps): bump rpc-websockets from 5.0.14 to 5.0.16
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.0.14 to 5.0.16.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/compare/v5.0.14...v5.0.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f986607cf4 chore(deps-dev): bump rollup from 2.0.5 to 2.0.6
Bumps [rollup](https://github.com/rollup/rollup) from 2.0.5 to 2.0.6.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.0.5...v2.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fcb1f70281 chore(deps-dev): bump rollup from 2.0.4 to 2.0.5
Bumps [rollup](https://github.com/rollup/rollup) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.0.4...v2.0.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1522080eb5 chore(deps-dev): bump rollup from 2.0.3 to 2.0.4
Bumps [rollup](https://github.com/rollup/rollup) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.0.3...v2.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
65113d3669 fix: update devnet urls 2020-06-14 21:57:04 -07:00
18d4e40a79 chore(deps-dev): bump rollup from 1.15.2 to 2.0.3
Bumps [rollup](https://github.com/rollup/rollup) from 1.15.2 to 2.0.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.15.2...v2.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
904aa4b468 chore(deps-dev): bump rollup-plugin-terser from 5.2.0 to 5.3.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.2.0...v5.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ffb9c0d80a chore(deps): bump ws from 7.2.2 to 7.2.3
Bumps [ws](https://github.com/websockets/ws) from 7.2.2 to 7.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.2...7.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
efb6c6a0b0 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.23.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b2d30d6655 fix: update TS SystemInstruction API and add missing flow method 2020-06-14 21:57:04 -07:00
1578492259 chore(deps): bump ws from 7.2.1 to 7.2.2
Bumps [ws](https://github.com/websockets/ws) from 7.2.1 to 7.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.1...7.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
81ffeac38e chore(deps-dev): bump rollup-plugin-babel from 4.3.3 to 4.4.0
Bumps [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel) from 4.3.3 to 4.4.0.
- [Release notes](https://github.com/rollup/rollup-plugin-babel/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-babel/compare/v4.3.3...v4.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
bcbefb971e chore(deps): bump buffer from 5.4.3 to 5.5.0
Bumps [buffer](https://github.com/feross/buffer) from 5.4.3 to 5.5.0.
- [Release notes](https://github.com/feross/buffer/releases)
- [Commits](https://github.com/feross/buffer/compare/v5.4.3...v5.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4192d894ba chore(deps-dev): bump @babel/core from 7.8.6 to 7.8.7
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.6 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8de3e85fdc chore(deps-dev): bump cross-env from 7.0.1 to 7.0.2
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.1 to 7.0.2.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.1...v7.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
14fb2a505e chore(deps-dev): bump flow-bin from 0.119.1 to 0.120.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.119.1 to 0.120.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.119.1...v0.120.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7da4ff1f88 chore(deps): bump @babel/runtime from 7.8.4 to 7.8.7
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.4 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.7/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7eeaf10911 chore(deps-dev): bump @babel/preset-env from 7.8.6 to 7.8.7
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.6 to 7.8.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.6...v7.8.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
890e21c451 fix: update NonceAccount to upstream changes 2020-06-14 21:57:04 -07:00
3b55087a86 fix: install openssl libs for ubuntu 2020-06-14 21:57:04 -07:00
698269cfcf fix: use new syntax in gcb test 2020-06-14 21:57:04 -07:00
6ed2bad9d0 feat: add API for decoding system instructions 2020-06-14 21:57:04 -07:00
662ce22cdd fix: add method to type definitions 2020-06-14 21:57:04 -07:00
d9a271742f feat: add transaction signature verification 2020-06-14 21:57:04 -07:00
fd00571b0a chore(deps-dev): bump cross-env from 7.0.0 to 7.0.1
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.0...v7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
aba7e14f3a feat: add API for decoding stake instructions 2020-06-14 21:57:04 -07:00
01e65d2070 fix: add def checks and fix typescript def 2020-06-14 21:57:04 -07:00
eb1542696e chore(deps-dev): bump @typescript-eslint/parser from 2.21.0 to 2.22.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.22.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d8a242300d chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.22.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d61dd70710 chore: revert to edge testnet 2020-06-14 21:57:04 -07:00
d417c7499a fix: update feeCalculator layout 2020-06-14 21:57:04 -07:00
1712f12e29 chore(deps-dev): bump acorn from 7.1.0 to 7.1.1
Bumps [acorn](https://github.com/acornjs/acorn) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.1.0...7.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3b98a9b993 chore: use beta testnet to get through CI 2020-06-14 21:57:04 -07:00
825a43fecc fix: add test coverage and fixup getters 2020-06-14 21:57:04 -07:00
fdece1a8a9 chore: fix flow 2020-06-14 21:57:04 -07:00
0cdf532419 feat: expose instruction types and refactor 2020-06-14 21:57:04 -07:00
8b95f41c51 chore: fix flow linting 2020-06-14 21:57:04 -07:00
c09e826c15 chore(deps-dev): bump semantic-release from 17.0.3 to 17.0.4
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.3 to 17.0.4.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.3...v17.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8e93114566 chore(deps-dev): bump @babel/preset-env from 7.8.4 to 7.8.6
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.4 to 7.8.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f1cab25f9c chore(deps-dev): bump @babel/core from 7.8.4 to 7.8.6
Bumps [@babel/core](https://github.com/babel/babel) from 7.8.4 to 7.8.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.4...v7.8.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9e7a7a5653 chore(deps-dev): bump @typescript-eslint/parser from 2.20.0 to 2.21.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.20.0 to 2.21.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.21.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
51d98c26ae chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.20.0 to 2.21.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.21.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
30e9691d20 chore(deps-dev): bump babel-eslint from 10.0.3 to 10.1.0
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.3 to 10.1.0.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.3...v10.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e4ef66c2f7 chore(deps-dev): bump flow-bin from 0.118.0 to 0.119.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.118.0 to 0.119.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.118.0...v0.119.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
11db9497a7 fix: update rust example to latest solana sdk 2020-06-14 21:57:04 -07:00
e3516bbcfd fix: epochSchedule test and lint 2020-06-14 21:57:04 -07:00
7d69cad81b fix: rename testnet.solana.com to devnet.solana.com 2020-06-14 21:57:04 -07:00
395b48ceef chore(deps-dev): bump flow-typed from 2.6.2 to 3.0.0
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 2.6.2 to 3.0.0.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/compare/v2.6.2...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7d289aacc2 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.19.2 to 2.20.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.20.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a1ac01e5d6 chore(deps-dev): bump @typescript-eslint/parser from 2.19.2 to 2.20.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.19.2 to 2.20.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.20.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cfa1bf0270 chore(deps): bump hasha from 5.1.0 to 5.2.0
Bumps [hasha](https://github.com/sindresorhus/hasha) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/sindresorhus/hasha/releases)
- [Commits](https://github.com/sindresorhus/hasha/compare/v5.1.0...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
830c55d07b chore: fix up docs 2020-06-14 21:57:04 -07:00
8cf98ec4e2 chore: prettier fixes 2020-06-14 21:57:04 -07:00
ea1295300d fix: add system program nonce methods to def files 2020-06-14 21:57:04 -07:00
38213694bd fix: add tx nonce information types to definitions 2020-06-14 21:57:04 -07:00
6a7115b8bd fix: allow Uint8Array and Array<number> where Buffer is accepted 2020-06-14 21:57:04 -07:00
6ba2f1d524 chore: npm audit 2020-06-14 21:57:04 -07:00
282c16e5ab chore(deps-dev): bump semantic-release from 17.0.2 to 17.0.3
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v17.0.2...v17.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2457b383ff chore(deps-dev): bump jest from 24.9.0 to 25.1.0
Bumps [jest](https://github.com/facebook/jest) from 24.9.0 to 25.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.9.0...v25.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3b8473b19a chore(deps-dev): bump @babel/core from 7.6.4 to 7.8.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.4 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.4...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
19706012ae chore(deps): bump tweetnacl from 1.0.2 to 1.0.3
Bumps [tweetnacl](https://github.com/dchest/tweetnacl-js) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/dchest/tweetnacl-js/releases)
- [Changelog](https://github.com/dchest/tweetnacl-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dchest/tweetnacl-js/compare/v1.0.2...1.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
60045eae99 fix: rename ContactInfo id attribute to pubkey 2020-06-14 21:57:04 -07:00
b3aa9fda87 fix: add missing apis to flow and ts definitions 2020-06-14 21:57:04 -07:00
de4f20a569 fix: add rewards to getConfirmedBlock api 2020-06-14 21:57:04 -07:00
4998bc4595 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.19.1 to 2.19.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.2/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
da72fbda54 chore(deps-dev): bump @typescript-eslint/parser from 2.19.1 to 2.19.2
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.19.1 to 2.19.2.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.2/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d483f7e904 fix: race condition in rpc unsubscribe 2020-06-14 21:57:04 -07:00
ca34ad2525 chore(deps-dev): bump cross-env from 6.0.3 to 7.0.0
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v6.0.3...v7.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4be01331d6 chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.7.4 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.4...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
499419dd10 chore(deps-dev): bump babel-plugin-module-resolver from 3.2.0 to 4.0.0
Bumps [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) from 3.2.0 to 4.0.0.
- [Release notes](https://github.com/tleunen/babel-plugin-module-resolver/releases)
- [Changelog](https://github.com/tleunen/babel-plugin-module-resolver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tleunen/babel-plugin-module-resolver/compare/v3.2.0...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7073310e2b fix: add Buffer to loader elf data arg type 2020-06-14 21:57:04 -07:00
e8ca68043a fix: race condition in rpc websocket subscriptions 2020-06-14 21:57:04 -07:00
83cdb6c2e1 chore(deps-dev): bump @typescript-eslint/parser from 2.19.0 to 2.19.1
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.19.0 to 2.19.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.1/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
36b4cbb454 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.19.0 to 2.19.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.1/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
740b7a3b23 feat: add onSignature pub sub api 2020-06-14 21:57:04 -07:00
7ebf82b19d chore(deps-dev): bump @babel/preset-flow from 7.8.0 to 7.8.3
Bumps [@babel/preset-flow](https://github.com/babel/babel) from 7.8.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d9d9e94773 chore(deps-dev): bump eslint from 6.5.1 to 6.8.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.5.1 to 6.8.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.5.1...v6.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
974200f4eb chore(deps): bump @babel/runtime from 7.8.0 to 7.8.4
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.8.0 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.4/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ca391958a chore(deps-dev): bump rimraf from 3.0.1 to 3.0.2
Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v3.0.1...v3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6e9c8a47a2 chore(deps-dev): bump codecov from 3.6.4 to 3.6.5
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.4 to 3.6.5.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ed1729eea chore(deps): bump bn.js from 5.0.0 to 5.1.1
Bumps [bn.js](https://github.com/indutny/bn.js) from 5.0.0 to 5.1.1.
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/indutny/bn.js/compare/v5.0.0...v5.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ecad6ae4f4 chore(deps-dev): bump @commitlint/config-conventional
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint) from 8.2.0 to 8.3.4.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.2.0...v8.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
55e523bf97 chore(deps-dev): bump flow-typed from 2.6.1 to 2.6.2
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 2.6.1 to 2.6.2.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/compare/v2.6.1...v2.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1f71984453 chore(deps-dev): bump codecov from 3.6.1 to 3.6.4
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.1 to 3.6.4.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.1...v3.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fe1dc4eeaa chore(deps-dev): bump flow-bin from 0.116.0 to 0.118.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.116.0 to 0.118.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.116.0...v0.118.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4472d7eeb3 chore(deps-dev): bump @babel/preset-env from 7.8.0 to 7.8.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.8.0 to 7.8.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
63625eba80 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.7.6 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.7.6...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6c1168788d chore(deps-dev): bump elfy from 0.1.0 to 1.0.0
Bumps [elfy](https://github.com/indutny/elfy) from 0.1.0 to 1.0.0.
- [Release notes](https://github.com/indutny/elfy/releases)
- [Commits](https://github.com/indutny/elfy/compare/v0.1.0...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7e4a4367f3 chore(deps): bump tweetnacl from 1.0.1 to 1.0.2
Bumps [tweetnacl](https://github.com/dchest/tweetnacl-js) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/dchest/tweetnacl-js/releases)
- [Changelog](https://github.com/dchest/tweetnacl-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dchest/tweetnacl-js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b2259cfef7 chore(deps-dev): bump eslint-plugin-import from 2.20.0 to 2.20.1
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.20.0 to 2.20.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.20.0...v2.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3998b95578 chore(deps): bump rpc-websockets from 5.0.8 to 5.0.14
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 5.0.8 to 5.0.14.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4acd2d40b7 chore(deps-dev): bump marked from 0.7.0 to 0.8.0
Bumps [marked](https://github.com/markedjs/marked) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.7.0...v0.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a6c5057d34 chore(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 2.18.0 to 2.19.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
908bf6d0c4 chore(deps-dev): bump @typescript-eslint/parser from 2.18.0 to 2.19.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 2.18.0 to 2.19.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v2.19.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
448a759944 chore(deps-dev): bump fs-file-tree from 1.0.7 to 1.1.0
Bumps [fs-file-tree](https://github.com/IonicaBizau/fs-file-tree) from 1.0.7 to 1.1.0.
- [Release notes](https://github.com/IonicaBizau/fs-file-tree/releases)
- [Commits](https://github.com/IonicaBizau/fs-file-tree/compare/1.0.7...1.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3ae18edf9e chore(deps-dev): bump rimraf from 3.0.0 to 3.0.1
Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/master/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v3.0.0...v3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1b4653cb17 chore(deps-dev): bump eslint-config-prettier from 6.4.0 to 6.10.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.4.0 to 6.10.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.4.0...v6.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e03fa4b962 fix: add typescript type declaration to npm bundle 2020-06-14 21:57:04 -07:00
4017bd6bfa fix: broken rpc slot change subscription 2020-06-14 21:57:04 -07:00
f67d9411aa fix: correct getSignatureStatus comment 2020-06-14 21:57:04 -07:00
4ea4b01d50 chore(deps-dev): bump semantic-release from 15.13.31 to 17.0.2
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.31 to 17.0.2.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.31...v17.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5d3685f162 chore(deps-dev): bump rollup-plugin-commonjs from 10.0.2 to 10.1.0
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 10.0.2 to 10.1.0.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v10.0.2...v10.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
30446807b9 fix: update outdated module.flow.js 2020-06-14 21:57:04 -07:00
a4e7ce3133 fix: update example programs to use new sdk api 2020-06-14 21:57:04 -07:00
4a3a830789 chore: remove unused 2020-06-14 21:57:04 -07:00
ebda95bd11 chore: run lint 2020-06-14 21:57:04 -07:00
7181d3aeea fix: update stake program api 2020-06-14 21:57:04 -07:00
3482953757 fix: better handling if confirmed block not found on node 2020-06-14 21:57:04 -07:00
43e90a1967 fix: update rpc sendTransaction format to upstream 2020-06-14 21:57:04 -07:00
2ab5816bd8 fix: improve non-live code coverage 2020-06-14 21:57:04 -07:00
d26c4ce75c chore: update flow definitions 2020-06-14 21:57:04 -07:00
369afecfeb fix: update rpc methods to upstream changes 2020-06-14 21:57:04 -07:00
bf6c2ed6f5 chore(deps-dev): bump @commitlint/travis-cli from 8.2.0 to 8.3.5
Bumps [@commitlint/travis-cli](https://github.com/conventional-changelog/commitlint) from 8.2.0 to 8.3.5.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.2.0...v8.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8b35686190 chore(deps-dev): bump eslint-plugin-import from 2.18.2 to 2.20.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.2 to 2.20.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.2...v2.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2356426886 chore(deps-dev): bump rollup-plugin-terser from 5.1.2 to 5.2.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.1.2 to 5.2.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.1.2...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0bd452593c chore(deps-dev): bump flow-bin from 0.114.0 to 0.116.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.114.0 to 0.116.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.114.0...v0.116.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7961892858 chore(deps-dev): bump @babel/plugin-proposal-function-bind
Bumps [@babel/plugin-proposal-function-bind](https://github.com/babel/babel) from 7.8.0 to 7.8.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.8.0...v7.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1fa90149d3 chore(deps-dev): bump enzyme from 3.10.0 to 3.11.0
Bumps [enzyme](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/commits/enzyme@3.11.0/packages/enzyme)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
713df31ec4 chore(deps): bump superstruct from 0.7.0 to 0.8.3
Bumps [superstruct](https://github.com/ianstormtaylor/superstruct) from 0.7.0 to 0.8.3.
- [Release notes](https://github.com/ianstormtaylor/superstruct/releases)
- [Changelog](https://github.com/ianstormtaylor/superstruct/blob/master/Changelog.md)
- [Commits](https://github.com/ianstormtaylor/superstruct/compare/v0.7.0...v0.8.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cca9c5d922 fix: rename nonce instructions with VerbNoun scheme 2020-06-14 21:57:04 -07:00
fc007b02ae fix: update getConfirmedBlock json-rpc formatting 2020-06-14 21:57:04 -07:00
3265f3bfa0 chore(deps-dev): bump @babel/preset-env from 7.6.3 to 7.8.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.3 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.3...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cd21f156a2 chore(deps-dev): bump @babel/preset-flow from 7.0.0 to 7.8.0
Bumps [@babel/preset-flow](https://github.com/babel/babel) from 7.0.0 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.0.0...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c0f806c4ef chore(deps-dev): bump @babel/plugin-proposal-function-bind
Bumps [@babel/plugin-proposal-function-bind](https://github.com/babel/babel) from 7.2.0 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.0...v7.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fc53b38a5a chore(deps): bump @babel/runtime from 7.6.3 to 7.8.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.6.3 to 7.8.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.8.0/packages/babel-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f37d27660d fix: fund various test accounts above rent minimum to stabilize tests 2020-06-14 21:57:04 -07:00
17065c3692 fix: add missing function descriptions 2020-06-14 21:57:04 -07:00
4a547b0057 fix: remove legacy code 2020-06-14 21:57:04 -07:00
aea0e83a40 fix: repair key handling in _getSignData and add Nonce live test 2020-06-14 21:57:04 -07:00
bd0a9348f4 fix: add Nonce transaction construction option 2020-06-14 21:57:04 -07:00
600a295b11 fix: query Nonce account 2020-06-14 21:57:04 -07:00
c9cc44ae4f feat: add Nonce instructions to system program 2020-06-14 21:57:04 -07:00
05491f7fb7 fix: use testnetDefaultChannel when install bpf-sdk 2020-06-14 21:57:04 -07:00
09f004c047 fix: remove GetBlock from module flow 2020-06-14 21:57:04 -07:00
a51e0211d4 fix: add getMinimumBalanceForRentExemption and getBlock to flow 2020-06-14 21:57:04 -07:00
0b5bd167d4 fix: upstream authorize fixes 2020-06-14 21:57:04 -07:00
bed42ac26b fix: fixes needed for createAccountWithSeed and sol-lamport ratio 2020-06-14 21:57:04 -07:00
8541868587 fix: add split to stake test 2020-06-14 21:57:04 -07:00
3595892fab fix: add integration test and fix various exposed bugs 2020-06-14 21:57:04 -07:00
07c0670f65 fix: add stake unit tests 2020-06-14 21:57:04 -07:00
6ebd47fbac fix: add instruction handling to stake-program 2020-06-14 21:57:04 -07:00
532b28e96e feat: add stake program methods; refactor instruction type handling 2020-06-14 21:57:04 -07:00
fc77e55920 fix: add PublicKey createWithSeed method 2020-06-14 21:57:04 -07:00
e0e3094370 fix(system-program): add base pubkey to create_account_with_seed 2020-06-14 21:57:04 -07:00
0907750fea fix: update sol:lamports ratio 2020-06-14 21:57:04 -07:00
b2243802b5 fix: make sol-to-lamport const name more clear 2020-06-14 21:57:04 -07:00
eef794d9be fix: add balances fields to GetConfirmedBlockRpcResult 2020-06-14 21:57:04 -07:00
a71c351777 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.6.2 to 7.7.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.2...v7.7.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
da88d78942 chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.5.5 to 7.7.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6a1cd39857 chore(deps): bump jayson from 3.1.1 to 3.2.0
Bumps [jayson](https://github.com/tedeh/jayson) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.1.1...v3.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a0bfe85803 chore(deps-dev): bump eslint-plugin-prettier from 3.1.1 to 3.1.2
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ff7cde9a0 chore(deps): bump ws from 7.2.0 to 7.2.1
Bumps [ws](https://github.com/websockets/ws) from 7.2.0 to 7.2.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.0...7.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5e5f248348 chore(deps-dev): bump semantic-release from 15.13.27 to 15.13.31
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.27 to 15.13.31.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.27...v15.13.31)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a4a2dd5e72 chore(deps-dev): bump flow-bin from 0.109.0 to 0.114.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.109.0 to 0.114.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.109.0...v0.114.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2e0afd5a7e chore(deps): [security] bump npm from 6.12.0 to 6.13.4
Bumps [npm](https://github.com/npm/cli) from 6.12.0 to 6.13.4. **This update includes security fixes.**
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.12.0...v6.13.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b02a1fc2db chore(deps): bump rpc-websockets from 4.6.1 to 5.0.8
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.6.1 to 5.0.8.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a149cd8cbb chore(deps-dev): bump prettier from 1.18.2 to 1.19.1
Bumps [prettier](https://github.com/prettier/prettier) from 1.18.2 to 1.19.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.18.2...1.19.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
997d8c2a72 fix: export sendAndConfirmRecentTransaction 2020-06-14 21:57:04 -07:00
4428b1bf3d fix: remove unneeded backwards compatible epoch-credits value 2020-06-14 21:57:04 -07:00
b804455837 chore(deps): [security] bump https-proxy-agent from 2.2.1 to 2.2.4
Bumps [https-proxy-agent](https://github.com/TooTallNate/node-https-proxy-agent) from 2.2.1 to 2.2.4. **This update includes security fixes.**
- [Release notes](https://github.com/TooTallNate/node-https-proxy-agent/releases)
- [Commits](https://github.com/TooTallNate/node-https-proxy-agent/compare/2.2.1...2.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
00184eb65e chore(deps): bump ws from 7.1.2 to 7.2.0
Bumps [ws](https://github.com/websockets/ws) from 7.1.2 to 7.2.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.1.2...7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
696067228f fix: use parent packages channel 2020-06-14 21:57:04 -07:00
56cad06568 fix: account change test broken on beta testnet 2020-06-14 21:57:04 -07:00
7682f55347 fix: add epoch_credits value to getVoteAccounts RPC call 2020-06-14 21:57:04 -07:00
899df7881b fix: docs 2020-06-14 21:57:04 -07:00
11938e3a65 fix: support other localnet tags 2020-06-14 21:57:04 -07:00
0760853871 feat(system-program): add createAccountWithSeed 2020-06-14 21:57:04 -07:00
cc550dfb08 fix: properly fund BPF payer accounts 2020-06-14 21:57:04 -07:00
d5cd16bef4 fix: rent in connection tests, and remove invalid Loader.load 2020-06-14 21:57:04 -07:00
cf31ba8924 fix(doc): commission is 0-100 2020-06-14 21:57:04 -07:00
286891fa51 feat: slot change callback (provides real-time fork information) 2020-06-14 21:57:04 -07:00
ddce1d3c9f chore: make test less flaky 2020-06-14 21:57:04 -07:00
2d5ace244a fix: getConfirmedBlock result pattern fixup 2020-06-14 21:57:04 -07:00
a461d5f25f fix: update ConfirmedBlock handling to match solana upstream 2020-06-14 21:57:04 -07:00
77745a278d chore: add test for Transaction.fromRpcResult 2020-06-14 21:57:04 -07:00
3c08e5b9c4 feat: add getConfirmedBlock api 2020-06-14 21:57:04 -07:00
5212a98b83 feat: implement new response format for __WithCommitment() methods 2020-06-14 21:57:04 -07:00
890f6f4d9d fix: add getBlock Connection method 2020-06-14 21:57:04 -07:00
3382548a79 fix: use the jsonrpc framework reconnect interval 2020-06-14 21:57:04 -07:00
f3d9ab75e6 feat: add getVersion method 2020-06-14 21:57:04 -07:00
979a707c94 fix: example budget programs 2020-06-14 21:57:04 -07:00
086eb6f8b8 fix: add getBlocksSince Connection method 2020-06-14 21:57:04 -07:00
df886a7a40 make to account key as signer (#550)
fix: require to account sign
2020-06-14 21:57:04 -07:00
189807f5a5 feat: add commitment param to JSON RPC API requests (#549)
* feat: add commitment param to json rpc requests

* fix: tests and examples

* fix: docs

* fix: epoch info test

* fix: budget example

* fix: test timeout

* fix: remove MAX_COMMITMENT and RECENT_COMMITMENT types
2020-06-14 21:57:04 -07:00
d0c89f7fa3 fix: update accounts to readonly/writable 2020-06-14 21:57:04 -07:00
58550733fb fix: transfers require 'to' account to be readwrite (#543) 2020-06-14 21:57:04 -07:00
3f38e89886 feat: getEpochInfo rpc, yarn lint (#540) 2020-06-14 21:57:04 -07:00
29aabcb195 fix: wait for airdrop (#538) 2020-06-14 21:57:04 -07:00
67c9b50249 feat: get_epoch_schedule rpc (#536) 2020-06-14 21:57:04 -07:00
0d582c180f fix: update module.flow (#537) 2020-06-14 21:57:04 -07:00
81c2e8f9c1 fix: loader report minimum number of signatures required (#535) 2020-06-14 21:57:04 -07:00
227f161243 fix: test depends on program build success (#532) 2020-06-14 21:57:04 -07:00
c705ac01f5 fix: adapt tests to higher default transaction signature fee (#531) 2020-06-14 21:57:04 -07:00
dd7e305c35 chore(deps-dev): bump semantic-release from 15.13.24 to 15.13.27
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.24 to 15.13.27.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.24...v15.13.27)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
884a09d8f6 feat: add optional rootSlot parameter (#528) 2020-06-14 21:57:04 -07:00
b3c2d61495 chore(deps-dev): bump eslint-plugin-jest from 22.17.0 to 22.19.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.17.0 to 22.19.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.17.0...v22.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7191159377 fix: update node exit rpc to match solana changes 2020-06-14 21:57:04 -07:00
8949f321c5 chore(deps-dev): bump acorn from 7.0.0 to 7.1.0
Bumps [acorn](https://github.com/acornjs/acorn) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/7.0.0...7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
adbe83da18 chore(deps-dev): bump @babel/core from 7.6.3 to 7.6.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.6.3 to 7.6.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.3...v7.6.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d1611ef7b1 chore(deps-dev): bump codecov from 3.5.0 to 3.6.1
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.5.0 to 3.6.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/commits/v3.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8405e40ba7 chore(deps-dev): bump @commitlint/travis-cli from 8.1.0 to 8.2.0
Bumps [@commitlint/travis-cli](https://github.com/conventional-changelog/commitlint) from 8.1.0 to 8.2.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.1.0...v8.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2fd0f6c5e6 chore(deps-dev): bump @babel/core from 7.5.5 to 7.6.3
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.5 to 7.6.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a41f5b637f chore(deps-dev): bump @babel/preset-env from 7.6.2 to 7.6.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.6.2 to 7.6.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.2...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5ba7fd90cb chore(deps): bump @babel/runtime from 7.6.2 to 7.6.3
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.6.2 to 7.6.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.6.2...v7.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
489f023a33 chore(deps): bump @babel/runtime from 7.5.5 to 7.6.2
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.5.5 to 7.6.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
27f652ff41 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.5.5 to 7.6.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3be7a6d2c4 chore(deps-dev): bump rollup-plugin-terser from 5.1.1 to 5.1.2
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.1.1...v5.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
391da1990c chore(deps-dev): bump eslint-plugin-prettier from 3.1.0 to 3.1.1
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.1.0...v3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
90b306db25 chore(deps-dev): bump eslint-config-prettier from 6.3.0 to 6.4.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.3.0...v6.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
783483f188 chore(deps-dev): bump eslint from 6.3.0 to 6.5.1
Bumps [eslint](https://github.com/eslint/eslint) from 6.3.0 to 6.5.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.3.0...v6.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
18b0f7b305 chore(deps-dev): bump @commitlint/config-conventional
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint) from 8.1.0 to 8.2.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.1.0...v8.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1495367946 chore(deps): bump jayson from 3.0.2 to 3.1.1
Bumps [jayson](https://github.com/tedeh/jayson) from 3.0.2 to 3.1.1.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.0.2...v3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7038468edb fix: finalize tx need to have rent sysvar (#506) 2020-06-14 21:57:04 -07:00
5492ef7fa2 chore(deps-dev): bump @babel/preset-env from 7.5.5 to 7.6.2
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.5 to 7.6.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
30b5bff7ef chore(deps-dev): bump eslint-config-prettier from 6.2.0 to 6.3.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.2.0...v6.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
132ccc464a chore(deps): bump superstruct from 0.6.2 to 0.7.0
Bumps [superstruct](https://github.com/ianstormtaylor/superstruct) from 0.6.2 to 0.7.0.
- [Release notes](https://github.com/ianstormtaylor/superstruct/releases)
- [Changelog](https://github.com/ianstormtaylor/superstruct/blob/master/Changelog.md)
- [Commits](https://github.com/ianstormtaylor/superstruct/compare/v0.6.2...v0.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b4922e8aef fix: token program moved to its own repo (#502) 2020-06-14 21:57:04 -07:00
c31ca1fc1b fix: flow expose transactionInstruction (#499) 2020-06-14 21:57:04 -07:00
da49ff96a5 chore(deps-dev): bump cross-env from 5.2.1 to 6.0.3
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 5.2.1 to 6.0.3.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v5.2.1...v6.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
093a1373ef chore(deps-dev): bump eslint-plugin-jest from 22.16.0 to 22.17.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.16.0 to 22.17.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.16.0...v22.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
dd51e9713a chore(deps-dev): bump flow-bin from 0.106.3 to 0.109.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.106.3 to 0.109.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.106.3...v0.109.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0bfe62ebea fix: ignore fixtures (#498) 2020-06-14 21:57:04 -07:00
0f0a0a3b88 fix: build fixtures as part of test (#495) 2020-06-14 21:57:04 -07:00
d4a2384a5e fix: graceful fallback when minimum balance request fails (#497) 2020-06-14 21:57:04 -07:00
ef0bad0910 fix: udpate PublicKey flow def (#496) 2020-06-14 21:57:04 -07:00
b1594439fe fix: use new api in Loader 2020-06-14 21:57:04 -07:00
4ae90c2944 fix: add api for getMinimumBalanceForRentExemption 2020-06-14 21:57:04 -07:00
432345b4d4 fix: update BPF Rust example ELF 2020-06-14 21:57:04 -07:00
3b337c5f56 fix: getVoteAccounts live test 2020-06-14 21:57:04 -07:00
19f4cf10bb fix: update VoteAccount format 2020-06-14 21:57:04 -07:00
e0f51fbcaf doc: correct link to JSON RPC API 2020-06-14 21:57:04 -07:00
e031710ae0 fix: remove grant/grant_term from inflation (#489) 2020-06-14 21:57:04 -07:00
97c07c7b0a fix: renaming 2020-06-14 21:57:04 -07:00
daba1a7856 fix: add tx instruction->transfer data functionality 2020-06-14 21:57:04 -07:00
ee3acbf1ba fix: update examples (#485) 2020-06-14 21:57:04 -07:00
82aaa8af47 chore(deps-dev): bump eslint-config-prettier from 6.1.0 to 6.2.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.1.0...v6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9da01c6a7b chore(deps-dev): bump cross-env from 5.2.0 to 5.2.1
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v5.2.0...v5.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fddf2e54e9 fix: enable serialization of unsigned transactions 2020-06-14 21:57:04 -07:00
6d5b655413 chore(deps-dev): bump eslint from 6.2.2 to 6.3.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.2.2...v6.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
20845955ec chore(deps-dev): bump flow-bin from 0.106.2 to 0.106.3
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.106.2 to 0.106.3.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.106.2...v0.106.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cf000ef5fc chore(deps-dev): bump eslint-plugin-jest from 22.15.2 to 22.16.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.15.2 to 22.16.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.15.2...v22.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
eec8f6184c fix: reject base58 public keys that are too short (#474) 2020-06-14 21:57:04 -07:00
0379615c76 feat: getInflation() RPC (needs better documentation pending book terms) (#473)
* feat: getInflation() RPC (needs better documentation pending book terms)

* feat: add test
2020-06-14 21:57:04 -07:00
5b47eb2efc chore(deps): [security] bump mixin-deep from 1.3.1 to 1.3.2
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. **This update includes a security fix.**
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d2594cdef3 chore(deps-dev): bump flow-bin from 0.106.1 to 0.106.2
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.106.1 to 0.106.2.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.106.1...v0.106.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c42451e746 chore(deps-dev): bump eslint from 6.1.0 to 6.2.2
Bumps [eslint](https://github.com/eslint/eslint) from 6.1.0 to 6.2.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.1.0...v6.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
60aff8b314 chore(deps-dev): bump flow-bin from 0.106.0 to 0.106.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.106.0 to 0.106.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.106.0...v0.106.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0ce6a96d67 chore(deps-dev): bump babel-eslint from 10.0.2 to 10.0.3
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.2 to 10.0.3.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.2...v10.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1b70081399 fix: add Account.rent_epoch field and rebuild bpf test fixtures (#466)
* fix: add Account.rent_epoch field

* fix: rebuild bpf test fixtures
2020-06-14 21:57:04 -07:00
d4c3cf8966 chore(deps-dev): bump semantic-release from 15.13.21 to 15.13.24
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.21 to 15.13.24.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.21...v15.13.24)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
93a5fc83a1 chore(deps-dev): bump flow-bin from 0.105.2 to 0.106.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.105.2 to 0.106.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.105.2...v0.106.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a6cc5f5b07 chore(deps-dev): bump eslint-plugin-jest from 22.15.1 to 22.15.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.15.1 to 22.15.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.15.1...v22.15.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5a4394349a chore(deps-dev): bump acorn from 6.3.0 to 7.0.0
Bumps [acorn](https://github.com/acornjs/acorn) from 6.3.0 to 7.0.0.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.3.0...7.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6f72cedc03 chore(deps): bump superstruct from 0.6.1 to 0.6.2
Bumps [superstruct](https://github.com/ianstormtaylor/superstruct) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/ianstormtaylor/superstruct/releases)
- [Changelog](https://github.com/ianstormtaylor/superstruct/blob/master/Changelog.md)
- [Commits](https://github.com/ianstormtaylor/superstruct/compare/v0.6.1...v0.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
abda0d855d chore(deps-dev): bump eslint-config-prettier from 6.0.0 to 6.1.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v6.0.0...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a3bf378d0d fix: update from getEpochVoteAccounts to getVoteAccounts rpc 2020-06-14 21:57:04 -07:00
38ffe85737 chore(deps-dev): bump jest from 24.8.0 to 24.9.0
Bumps [jest](https://github.com/facebook/jest) from 24.8.0 to 24.9.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.8.0...v24.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
65a120018e chore(deps-dev): bump rimraf from 2.7.0 to 3.0.0
Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.7.0 to 3.0.0.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.7.0...v3.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b1331625b8 chore(deps-dev): bump rimraf from 2.6.3 to 2.7.0
Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.6.3 to 2.7.0.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.6.3...v2.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
fd0b4d813e chore(deps-dev): bump semantic-release from 15.13.19 to 15.13.21
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.19 to 15.13.21.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.19...v15.13.21)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5b328bb5f2 chore(deps-dev): bump flow-bin from 0.105.1 to 0.105.2
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.105.1 to 0.105.2.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.105.1...v0.105.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
163133bcad chore(deps-dev): bump eslint-plugin-jest from 22.15.0 to 22.15.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.15.0 to 22.15.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.15.0...v22.15.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8f674de71d chore(deps): bump ws from 7.1.1 to 7.1.2
Bumps [ws](https://github.com/websockets/ws) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.1.1...7.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
374c23d032 chore(deps-dev): bump acorn from 6.2.1 to 6.3.0
Bumps [acorn](https://github.com/acornjs/acorn) from 6.2.1 to 6.3.0.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.2.1...6.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8de9bad660 chore(deps-dev): bump flow-bin from 0.104.0 to 0.105.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.104.0 to 0.105.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.104.0...v0.105.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
35d138f967 chore(deps): bump rpc-websockets from 4.6.0 to 4.6.1
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/compare/v4.6.0...v4.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ac1dffa99 chore(deps-dev): bump eslint-plugin-jest from 22.7.2 to 22.15.0 2020-06-14 21:57:04 -07:00
07c2b60458 chore(deps): bump rpc-websockets from 4.5.1 to 4.6.0
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
494bd5864b chore(deps-dev): bump marked from 0.6.3 to 0.7.0
Bumps [marked](https://github.com/markedjs/marked) from 0.6.3 to 0.7.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.6.3...v0.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a8773f897c chore(deps-dev): bump rollup-plugin-commonjs from 10.0.1 to 10.0.2
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v10.0.1...v10.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2eeaf668fa fix: add missing getSlot API 2020-06-14 21:57:04 -07:00
60ac6fc5b7 fix: avoid empty --network argument 2020-06-14 21:57:04 -07:00
97bfa19dd4 chore(deps-dev): bump semantic-release from 15.13.18 to 15.13.19
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.18 to 15.13.19.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.18...v15.13.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f8ee8b6218 chore(deps-dev): bump flow-typed from 2.6.0 to 2.6.1
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/commits/v2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
eb2bb8b58f chore(deps-dev): bump flow-bin from 0.103.0 to 0.104.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.103.0 to 0.104.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.103.0...v0.104.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d9f40bb879 fix: support http endpoints (#433) 2020-06-14 21:57:04 -07:00
677c075ade fix: add transaction instruction ctor to flow def (#408) 2020-06-14 21:57:04 -07:00
65e2f85871 chore(deps-dev): bump flow-typed from 2.5.2 to 2.6.0
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 2.5.2 to 2.6.0.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
44a2ea6897 chore(deps-dev): bump eslint from 6.0.1 to 6.1.0
Bumps [eslint](https://github.com/eslint/eslint) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v6.0.1...v6.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5b79a854a5 chore(deps-dev): bump flow-bin from 0.102.0 to 0.103.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.102.0 to 0.103.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.102.0...v0.103.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d4bfc16857 chore(deps): bump rpc-websockets from 4.4.1 to 4.5.1
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.4.1 to 4.5.1.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
23fe614e81 chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.5.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a0e96660b7 chore(deps-dev): bump rollup-plugin-terser from 5.1.0 to 5.1.1
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.1.0...v5.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
05a0fa758a chore(deps): bump @babel/runtime from 7.5.1 to 7.5.5
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.5.1 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.1...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4dd8da8d8d fix: remove usage of api.*.testnet.solana.com 2020-06-14 21:57:04 -07:00
6c32bca04d fix: export VOTE_ACCOUNT_KEY (#422) 2020-06-14 21:57:04 -07:00
1bf94c7673 chore(deps-dev): bump acorn from 6.2.0 to 6.2.1
Bumps [acorn](https://github.com/acornjs/acorn) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.2.0...6.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5a966ea9ab chore(deps): bump bn.js from 4.11.8 to 5.0.0
Bumps [bn.js](https://github.com/indutny/bn.js) from 4.11.8 to 5.0.0.
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/indutny/bn.js/compare/v4.11.8...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
745f35f821 chore(deps): [security] bump lodash from 4.17.11 to 4.17.14
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c929516f52 feat: add vote account decoder (#418) 2020-06-14 21:57:04 -07:00
41346436f6 chore(deps-dev): bump @babel/preset-env from 7.5.0 to 7.5.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d725d3462c chore(deps-dev): bump eslint-plugin-import from 2.18.1 to 2.18.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.1 to 2.18.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.1...v2.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
25ad81fb05 chore(deps-dev): bump @commitlint/travis-cli from 8.0.0 to 8.1.0
Bumps [@commitlint/travis-cli](https://github.com/conventional-changelog/commitlint) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.0.0...v8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3698079ef1 chore(deps-dev): bump @commitlint/config-conventional
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/compare/v8.0.0...v8.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ed32da8a44 chore(deps-dev): bump @babel/core from 7.5.0 to 7.5.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.5.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7f045c63ea chore(deps): bump ws from 7.1.0 to 7.1.1
Bumps [ws](https://github.com/websockets/ws) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.1.0...7.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c297d259e9 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.5.0 to 7.5.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f6013626d5 chore(deps-dev): bump eslint-plugin-import from 2.18.0 to 2.18.1
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.18.0 to 2.18.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.18.0...v2.18.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c36e21349a chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.4.4 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
253e27014e fix: accommodate cluster fees in budget-two-approvers 2020-06-14 21:57:04 -07:00
9c880a8c99 chore(deps-dev): bump acorn from 6.1.1 to 6.2.0
Bumps [acorn](https://github.com/acornjs/acorn) from 6.1.1 to 6.2.0.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/6.1.1...6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
280e1726b3 chore(deps): [security] bump lodash.template from 4.4.0 to 4.5.0
Bumps [lodash.template](https://github.com/lodash/lodash) from 4.4.0 to 4.5.0. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.4.0...4.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
dd985f550c chore(deps): [security] bump lodash.merge from 4.6.1 to 4.6.2
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
548febabc2 chore(deps): bump ws from 7.0.1 to 7.1.0
Bumps [ws](https://github.com/websockets/ws) from 7.0.1 to 7.1.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.0.1...7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f46faee251 fix: update keybaseId to keybaseUsername 2020-06-14 21:57:04 -07:00
408e8e7500 fix: Update Rust-BPF example (#406) 2020-06-14 21:57:04 -07:00
2e3c5e7820 fix: end of life native loader (#404) 2020-06-14 21:57:04 -07:00
6f05930076 feat: validator info deserialization (#403) 2020-06-14 21:57:04 -07:00
2072f20997 chore(deps): bump @babel/runtime from 7.5.0 to 7.5.1
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.5.0 to 7.5.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.5.0...v7.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
55f997d568 chore(deps-dev): bump @babel/preset-env from 7.4.5 to 7.5.0
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6895f1146b chore(deps-dev): bump @babel/core from 7.4.5 to 7.5.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a630f2e903 chore(deps): bump @babel/runtime from 7.4.5 to 7.5.0
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.4.5 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.5...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
841b1c118c chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.4.4 to 7.5.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ef38ec8a98 chore(deps): bump rpc-websockets from 4.4.0 to 4.4.1
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3c2a32bebe chore(deps-dev): bump eslint-plugin-jest from 22.7.1 to 22.7.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.7.1 to 22.7.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.7.1...v22.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
118a5f0ece doc: commission is now a u8 (#390) 2020-06-14 21:57:04 -07:00
d5d64c337b chore(deps-dev): bump rollup-plugin-terser from 5.0.0 to 5.1.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4de4f496bf chore(deps-dev): bump marked from 0.6.2 to 0.6.3
Bumps [marked](https://github.com/markedjs/marked) from 0.6.2 to 0.6.3.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.6.2...v0.6.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b52525ff3d chore(deps-dev): bump rollup-plugin-node-resolve from 5.0.4 to 5.2.0
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 5.0.4 to 5.2.0.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v5.0.4...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0e7c8cd01f fix: expose getProgramAccounts RPC method 2020-06-14 21:57:04 -07:00
c14a44b8b4 doc: disambiguate sols vs. lamports in doco (#384)
* disambiguate sols vs. lamports in doco

* doc: disambiguate sols vs. lamports
2020-06-14 21:57:04 -07:00
eb56da4a94 fix: fix transaction live test for credit-only accounts (#385) 2020-06-14 21:57:04 -07:00
b22c39018f ci: then 2020-06-14 21:57:04 -07:00
59d7ee5db2 chore(deps-dev): bump rollup-plugin-babel from 4.3.2 to 4.3.3 (#368)
Bumps [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel) from 4.3.2 to 4.3.3.
- [Release notes](https://github.com/rollup/rollup-plugin-babel/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-babel/compare/v4.3.2...v4.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
329955f4e6 ci: commitlint only on pull requests 2020-06-14 21:57:04 -07:00
8a41292e08 Bump rollup-plugin-commonjs from 10.0.0 to 10.0.1
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 10.0.0 to 10.0.1.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v10.0.0...v10.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b4ac94f39c chore(deps-dev): bump semantic-release from 15.13.17 to 15.13.18
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.17 to 15.13.18.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.17...v15.13.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
684605fd5c fix: add burnPercent field to FeeCalculator (#381) 2020-06-14 21:57:04 -07:00
5d81280c97 chore: add ed 2020-06-14 21:57:04 -07:00
c6f828b06a chore: run pretty 2020-06-14 21:57:04 -07:00
b3319452e5 chore: update BPF SDK portions of README 2020-06-14 21:57:04 -07:00
9419613063 chore(deps-dev): bump flow-bin from 0.101.1 to 0.102.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.101.1 to 0.102.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.101.1...v0.102.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e00d0256a1 chore(deps-dev): bump eslint-config-prettier from 5.1.0 to 6.0.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 5.1.0 to 6.0.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v5.1.0...v6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
eb16023639 chore(deps-dev): bump semantic-release from 15.13.16 to 15.13.17
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.16 to 15.13.17.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.16...v15.13.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
57f3f7994b chore(deps-dev): bump eslint from 5.16.0 to 6.0.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.16.0 to 6.0.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.16.0...v6.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7bb158d3a0 ci: add commitlint 2020-06-14 21:57:04 -07:00
034f31d3bc Expose getTotalSupply RPC method (#370) 2020-06-14 21:57:04 -07:00
fd2ddef520 chore(deps-dev): bump eslint-plugin-import from 2.17.3 to 2.18.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.17.3 to 2.18.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.17.3...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e07200229a chore(deps-dev): bump eslint-config-prettier from 5.0.0 to 5.1.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
56611e1d2b chore(deps-dev): bump rollup-plugin-node-resolve from 5.0.0 to 5.0.4
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 5.0.0 to 5.0.4.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v5.0.0...v5.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6304814be3 chore: rollup dependency conflict (#366)
* bump rollup-plugin-node-resolve from 4.2.3 to 5.0.0

* Fix NPM warnings

* bump rollup-plugin-commonjs from 9.3.4 to 10.0.0
2020-06-14 21:57:04 -07:00
b1df5bf642 chore(deps-dev): bump flow-bin from 0.101.0 to 0.101.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.101.0 to 0.101.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.101.0...v0.101.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
77142fc18d chore(deps-dev): bump eslint-plugin-jest from 22.6.4 to 22.7.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.6.4 to 22.7.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.6.4...v22.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c7161781b4 ci: ignore dependabot branches 2020-06-14 21:57:04 -07:00
78483ac49c fix: drop solana-sdk-bpf-utils version 2020-06-14 21:57:04 -07:00
aa9f2f8730 fix: add {min,max}LamportsPerSignature fields 2020-06-14 21:57:04 -07:00
53dcf56559 chore: update noop to new Rust conventions (#365) 2020-06-14 21:57:04 -07:00
b4c80b1464 fix: inline testnet-default-channel.js 2020-06-14 21:57:04 -07:00
6b68e2d610 Revert "chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.3"
This reverts commit 07854e37ec9ab0928ec848b0b2b2e03f13fe8686.
2020-06-14 21:57:04 -07:00
e6d6018132 ci: ensure rollup upgrades actually build the right files 2020-06-14 21:57:04 -07:00
9e30c6f827 fix: add solana-bpf-sdk-install command to permit users to easily update their bpf-sdk 2020-06-14 21:57:04 -07:00
53f2c84fab chore(deps-dev): bump enzyme from 3.9.0 to 3.10.0
Bumps [enzyme](https://github.com/airbnb/enzyme/tree/HEAD/packages/enzyme) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/commits/enzyme@3.10.0/packages/enzyme)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9075827bc3 chore(deps): bump ws from 7.0.0 to 7.0.1
Bumps [ws](https://github.com/websockets/ws) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.0.0...7.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
62d9bebaa3 Update examples to new SDK (#358) 2020-06-14 21:57:04 -07:00
460e095a3c chore(deps): bump rpc-websockets from 4.3.5 to 4.4.0
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.3.5 to 4.4.0.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6c33a7f9ee chore(deps-dev): bump babel-eslint from 10.0.1 to 10.0.2
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.1...v10.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2fa0baba03 chore(deps-dev): bump prettier from 1.17.0 to 1.18.2
Bumps [prettier](https://github.com/prettier/prettier) from 1.17.0 to 1.18.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.17.0...1.18.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
acf738ee2a chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.3
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.2.3 to 5.0.3.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.2.3...v5.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
45425cae0b chore(deps-dev): bump eslint-config-prettier from 4.2.0 to 5.0.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 4.2.0 to 5.0.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v4.2.0...v5.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
522d212076 Revert "chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.2"
This reverts commit 4c57e72ef8774d1baf8625bf733281da4d8459ef.
2020-06-14 21:57:04 -07:00
e9ae7fe26c chore(deps-dev): bump semantic-release from 15.13.12 to 15.13.16
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.12 to 15.13.16.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.12...v15.13.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
63990980c4 package-lock.json 2020-06-14 21:57:04 -07:00
16dfeecdb9 fix: use packaged bpf-sdk/ by default 2020-06-14 21:57:04 -07:00
95fbffebd9 chore: update author 2020-06-14 21:57:04 -07:00
de73aedc94 chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.2
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.2.3 to 5.0.2.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.2.3...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
93e5075bca chore(deps-dev): bump rollup from 1.13.0 to 1.15.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.13.0 to 1.15.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.13.0...v1.15.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
839ed1d462 chore(deps-dev): bump flow-typed from 2.5.1 to 2.5.2
Bumps [flow-typed](https://github.com/flow-typed/flow-typed) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/flow-typed/flow-typed/releases)
- [Changelog](https://github.com/flow-typed/flow-typed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flow-typed/flow-typed/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
301e0ea7fe Revert "fix: switch to beta channel until edge bpf stablizes"
This reverts commit 50a73b93688376b1ad7e8556df8f196b56a549d2.
2020-06-14 21:57:04 -07:00
03603ea87b fix: remove tick_height 2020-06-14 21:57:04 -07:00
58edbf5607 fix: retain support for 0.15 GetClusterNodes 2020-06-14 21:57:04 -07:00
02c1d0416a chore(deps-dev): bump @babel/preset-env from 7.4.4 to 7.4.5
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.4.5)
2020-06-14 21:57:04 -07:00
d0b77a768f chore(deps-dev): bump flow-bin from 0.99.1 to 0.101.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.99.1 to 0.101.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.99.1...v0.101.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
10e3a26338 feat: expose feeCalculator 2020-06-14 21:57:04 -07:00
9fde1eb404 fix: switch to beta channel until edge bpf stablizes 2020-06-14 21:57:04 -07:00
a8d0b6f9f1 fix: add more lamports to payer accounts to account for higher fees 2020-06-14 21:57:04 -07:00
e23d2453d7 feat: add binding for getEpochVoteAccounts 2020-06-14 21:57:04 -07:00
45a42374f2 chore(deps-dev): bump flow-bin from 0.98.1 to 0.99.1 2020-06-14 21:57:04 -07:00
8045520261 chore(deps-dev): bump rollup-plugin-terser from 4.0.4 to 5.0.0
Bumps [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser) from 4.0.4 to 5.0.0.
- [Release notes](https://github.com/TrySound/rollup-plugin-terser/releases)
- [Commits](https://github.com/TrySound/rollup-plugin-terser/compare/v4.0.4...v5.0.0)
2020-06-14 21:57:04 -07:00
d6b14fe7e0 chore(deps-dev): bump rollup from 1.11.3 to 1.13.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.11.3 to 1.13.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.11.3...v1.13.0)
2020-06-14 21:57:04 -07:00
a9d44a830c chore(deps-dev): bump eslint-plugin-import from 2.17.2 to 2.17.3
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.17.2 to 2.17.3.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.17.2...v2.17.3)
2020-06-14 21:57:04 -07:00
6d91b6d603 chore(deps): bump @babel/runtime from 7.4.4 to 7.4.5
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.4.5)
2020-06-14 21:57:04 -07:00
ae8ea961a8 chore(deps-dev): bump eslint-plugin-jest from 22.5.1 to 22.6.4
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.5.1 to 22.6.4.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.5.1...v22.6.4)
2020-06-14 21:57:04 -07:00
32c3fdef30 chore(deps): bump node-fetch from 2.5.0 to 2.6.0
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/bitinn/node-fetch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.5.0...v2.6.0)
2020-06-14 21:57:04 -07:00
26eef0f057 fix: load programs in larger chunks 2020-06-14 21:57:04 -07:00
42494713b3 ci: show lib/ 2020-06-14 21:57:04 -07:00
ae6ddb9be0 Revert "chore(deps-dev): bump rollup from 1.11.3 to 1.12.4"
This reverts commit 23e38987433e4785b90e10d0bb4c4fab4163c4e2.
2020-06-14 21:57:04 -07:00
39b51246c7 Revert "chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.0"
This reverts commit bd3445069138284a301aa6a153694727caf73138.
2020-06-14 21:57:04 -07:00
95a3a78e57 ci: make examples non-blocking since they run against the public testnet 2020-06-14 21:57:04 -07:00
d000485f7c fix: increase PACKET_DATA_SIZE to match Solana v0.15.0 2020-06-14 21:57:04 -07:00
9f8fc5b260 test: ensure any system account can pay for a transaction 2020-06-14 21:57:04 -07:00
b05ec4cf69 chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.3 to 5.0.0
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.2.3 to 5.0.0.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.2.3...v5.0.0)
2020-06-14 21:57:04 -07:00
3f52cea5ea chore(deps-dev): bump rollup from 1.11.3 to 1.12.4
Bumps [rollup](https://github.com/rollup/rollup) from 1.11.3 to 1.12.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.11.3...v1.12.4)
2020-06-14 21:57:04 -07:00
4d4866cef9 chore(deps-dev): bump @babel/core from 7.4.4 to 7.4.5
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.4...v7.4.5)
2020-06-14 21:57:04 -07:00
24cbfa8d11 chore(deps-dev): bump semantic-release from 15.13.3 to 15.13.12
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.3 to 15.13.12.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.3...v15.13.12)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
61c0dfb6e7 chore(deps-dev): bump eslint-plugin-prettier from 3.0.1 to 3.1.0
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.0.1...v3.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
62af4c2e6b chore(deps-dev): bump codecov from 3.3.0 to 3.5.0
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.3.0 to 3.5.0.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
65c8d0867b chore(deps): [security] bump tar from 2.2.1 to 2.2.2
Bumps [tar](https://github.com/npm/node-tar) from 2.2.1 to 2.2.2. **This update includes security fixes.**
- [Release notes](https://github.com/npm/node-tar/releases)
- [Commits](https://github.com/npm/node-tar/compare/v2.2.1...v2.2.2)
2020-06-14 21:57:04 -07:00
6b43acf558 fix: Use xenial dist for newer lib symbols 2020-06-14 21:57:04 -07:00
87c1becbef fix: Squash budget bugs 2020-06-14 21:57:04 -07:00
c99d8dd15c fix: Add preliminary handling for credit-only account designation 2020-06-14 21:57:04 -07:00
78ad376bcd fix: Appease flow 2020-06-14 21:57:04 -07:00
41d14bec22 style: Prettify 2020-06-14 21:57:04 -07:00
34cb08bd84 fix: Update transaction format; include numCreditOnlySignedAccounts and numCreditOnlyUnsignedAccounts bytes, remove programIds 2020-06-14 21:57:04 -07:00
53958a8b1e fix: Repair getRecentBlockhash bug in non-legacy formats 2020-06-14 21:57:04 -07:00
f6494f6675 fix: Repair examples bug 2020-06-14 21:57:04 -07:00
4cf234618e fix: support v0.14 GetRecentBlockhash too 2020-06-14 21:57:04 -07:00
a1ce705d15 fix: adapt to GetRecentBlockhash RPC API signature change 2020-06-14 21:57:04 -07:00
2373d66e40 chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.4.0 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.0...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
be61b1682f chore(deps-dev): bump @babel/core from 7.4.3 to 7.4.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.3...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9778641120 chore(deps): bump ws from 6.2.1 to 7.0.0
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 7.0.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.2.1...7.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d142695500 chore(deps-dev): bump jest from 24.7.1 to 24.8.0
Bumps [jest](https://github.com/facebook/jest) from 24.7.1 to 24.8.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.7.1...v24.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ae76fa10cd chore(deps-dev): bump flow-bin from 0.97.0 to 0.98.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.97.0 to 0.98.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.97.0...v0.98.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ad0ed83893 chore(deps): bump node-fetch from 2.4.1 to 2.5.0
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/bitinn/node-fetch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.4.1...v2.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4c4f5a0fb9 Add BPF Rust noop example (#316) 2020-06-14 21:57:04 -07:00
f7a02e54df fix: correctly count duplicate signing keys 2020-06-14 21:57:04 -07:00
48f0bcc2bf fix: pay transaction fees from system accounts 2020-06-14 21:57:04 -07:00
7bde7e3767 chore(deps): bump jayson from 3.0.1 to 3.0.2
Bumps [jayson](https://github.com/tedeh/jayson) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v3.0.1...v3.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e276d2f17c chore(deps-dev): bump rollup from 1.11.2 to 1.11.3
Bumps [rollup](https://github.com/rollup/rollup) from 1.11.2 to 1.11.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.11.2...v1.11.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9db5f85156 chore(deps-dev): bump rollup from 1.11.1 to 1.11.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.11.1 to 1.11.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.11.1...v1.11.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2240e4de84 chore(deps-dev): bump rollup from 1.11.0 to 1.11.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.11.0...v1.11.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f2bde990ca chore(deps-dev): bump rollup from 1.10.1 to 1.11.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.10.1...v1.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
901cf9a4b1 chore(deps): bump node-fetch from 2.3.0 to 2.4.1
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.3.0 to 2.4.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/bitinn/node-fetch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.3.0...v2.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3f94c94dd5 chore(deps-dev): bump @babel/preset-env from 7.4.3 to 7.4.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.3...v7.4.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b8ea9b6099 chore(deps): bump @babel/runtime from 7.4.3 to 7.4.4
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ebfeb0b4ca chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f803b2ae1f fix: adapt to program id changes 2020-06-14 21:57:04 -07:00
42a2f54c9d chore(deps-dev): bump eslint-config-prettier from 4.1.0 to 4.2.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v4.1.0...v4.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8334b18d64 chore(deps-dev): bump eslint-plugin-jest from 22.5.0 to 22.5.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.5.0 to 22.5.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.5.0...v22.5.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
456f34e95b fix: add fullnodeExit() 2020-06-14 21:57:04 -07:00
2292b5910e doc: correct getClusterNodes() summary 2020-06-14 21:57:04 -07:00
1719b74102 chore(deps-dev): bump eslint-plugin-jest from 22.4.1 to 22.5.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.4.1 to 22.5.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.4.1...v22.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a90cbcee9e test: give more time 2020-06-14 21:57:04 -07:00
a2cd9180b5 feat: add getSlotLeader()/getClusterNodes() 2020-06-14 21:57:04 -07:00
5f2bcd5200 chore(deps-dev): bump @babel/preset-env from 7.4.2 to 7.4.3
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.2 to 7.4.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.2...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
16ff2533b4 chore(deps-dev): bump eslint-plugin-import from 2.16.0 to 2.17.2
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.16.0 to 2.17.2.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.16.0...v2.17.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
60771c442d chore(deps-dev): bump rollup from 1.10.0 to 1.10.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d27555c175 chore(deps-dev): bump prettier from 1.16.4 to 1.17.0
Bumps [prettier](https://github.com/prettier/prettier) from 1.16.4 to 1.17.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.16.4...1.17.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
15c36680cc Fix budget example tx confirmations 2020-06-14 21:57:04 -07:00
b6692c85e6 chore(deps-dev): bump flow-bin from 0.96.0 to 0.97.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.96.0 to 0.97.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.96.0...v0.97.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c1bbb9b291 s/move/transfer in system program to match solana 2020-06-14 21:57:04 -07:00
7f02185998 Update native-loader test to noop program rename 2020-06-14 21:57:04 -07:00
507fac06ee fix: Appease flow 2020-06-14 21:57:04 -07:00
663f9c76d8 fix: Update default channel to edge 2020-06-14 21:57:04 -07:00
7f72bbeba3 fix: Update signature status result type 2020-06-14 21:57:04 -07:00
f2b38bcc56 fix: Remove deprecated length field 2020-06-14 21:57:04 -07:00
efd0392706 BREAKING CHANGE: requires Solana version v0.13.0 or greater
feat: Update to current solana tx format
2020-06-14 21:57:04 -07:00
853ea88fd0 chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.2 to 4.2.3
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.2.2...v4.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e2dbbb9923 chore(deps-dev): bump rollup from 1.9.2 to 1.10.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.9.2 to 1.10.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.9.2...v1.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d7b18bcff5 chore(deps-dev): bump rollup-plugin-replace from 2.1.1 to 2.2.0
Bumps [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/rollup/rollup-plugin-replace/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-replace/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-replace/compare/v2.1.1...v2.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8e4ea2d92c chore(deps-dev): bump rollup from 1.9.0 to 1.9.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.9.0 to 1.9.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.9.0...v1.9.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4dd2ab7555 chore(deps-dev): bump rollup-plugin-node-resolve from 4.2.1 to 4.2.2
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.2.1...v4.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
603ea8e1ae chore(deps): bump @babel/runtime from 7.3.4 to 7.4.3
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.3.4 to 7.4.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
27359e2f29 chore(deps): bump jayson from 2.1.2 to 3.0.1
Bumps [jayson](https://github.com/tedeh/jayson) from 2.1.2 to 3.0.1.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v2.1.2...v3.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b5f37a042e chore(deps-dev): bump rollup-plugin-node-resolve from 4.1.0 to 4.2.1
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.1.0 to 4.2.1.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.1.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9461437202 chore(deps-dev): bump marked from 0.6.1 to 0.6.2
Bumps [marked](https://github.com/markedjs/marked) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.6.1...v0.6.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
592b4022a5 chore(deps-dev): bump rollup from 1.8.0 to 1.9.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.8.0...v1.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ae61f1782 chore(deps-dev): bump rollup-plugin-replace from 2.1.0 to 2.1.1
Bumps [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/rollup/rollup-plugin-replace/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-replace/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-replace/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e9c0e7cd9b chore(deps-dev): bump rollup-plugin-node-resolve from 4.0.1 to 4.1.0
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.0.1...v4.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1959be8c95 chore(deps-dev): bump rollup-plugin-commonjs from 9.3.3 to 9.3.4
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.3.3 to 9.3.4.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.3.3...v9.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
faefb2ebb4 chore(deps-dev): bump rollup-plugin-commonjs from 9.3.2 to 9.3.3
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.3.2 to 9.3.3.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.3.2...v9.3.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
065a3933c9 chore(deps-dev): bump rollup-plugin-commonjs from 9.3.0 to 9.3.2
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.3.0 to 9.3.2.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.3.0...v9.3.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
863192a23e chore(deps-dev): bump jest from 24.7.0 to 24.7.1
Bumps [jest](https://github.com/facebook/jest) from 24.7.0 to 24.7.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.7.0...v24.7.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0a8ce522f1 chore(deps-dev): bump codecov from 3.2.0 to 3.3.0
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/commits/v3.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a5279deb81 chore(deps-dev): bump rollup-plugin-commonjs from 9.2.3 to 9.3.0
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.2.3 to 9.3.0.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.2.3...v9.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1da20b913f chore(deps-dev): bump @babel/core from 7.4.0 to 7.4.3
Bumps [@babel/core](https://github.com/babel/babel) from 7.4.0 to 7.4.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.0...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7475fbe929 chore(deps-dev): bump flow-bin from 0.95.1 to 0.96.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.95.1 to 0.96.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.95.1...v0.96.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a8a08b38ba chore(deps-dev): bump jest from 24.6.0 to 24.7.0
Bumps [jest](https://github.com/facebook/jest) from 24.6.0 to 24.7.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.6.0...v24.7.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2f747c93ec chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.3.4 to 7.4.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
917c14e0a3 chore(deps-dev): bump rollup-plugin-commonjs from 9.2.2 to 9.2.3
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.2.2 to 9.2.3.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.2.2...v9.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
45292d7458 chore(deps-dev): bump rollup from 1.7.4 to 1.8.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.7.4 to 1.8.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.7.4...v1.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d27a0e4824 chore(deps-dev): bump jest from 24.5.0 to 24.6.0
Bumps [jest](https://github.com/facebook/jest) from 24.5.0 to 24.6.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.5.0...v24.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5992c2e12f chore(deps-dev): bump eslint from 5.15.3 to 5.16.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.15.3 to 5.16.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.15.3...v5.16.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a32831a288 chore(deps-dev): bump rollup-plugin-commonjs from 9.2.1 to 9.2.2
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.2.1 to 9.2.2.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/compare/v9.2.1...v9.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a852d72198 chore(deps-dev): bump rollup-plugin-json from 3.1.0 to 4.0.0
Bumps [rollup-plugin-json](https://github.com/rollup/rollup-plugin-json) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/rollup/rollup-plugin-json/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-json/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-json/compare/v3.1.0...v4.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
158546840e chore(deps-dev): bump rollup from 1.7.3 to 1.7.4
Bumps [rollup](https://github.com/rollup/rollup) from 1.7.3 to 1.7.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3e89c6f557 chore(deps): bump ws from 6.2.0 to 6.2.1
Bumps [ws](https://github.com/websockets/ws) from 6.2.0 to 6.2.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.2.0...6.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
bcb75c8568 chore(deps): bump superstruct from 0.6.0 to 0.6.1
Bumps [superstruct](https://github.com/ianstormtaylor/superstruct) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/ianstormtaylor/superstruct/releases)
- [Changelog](https://github.com/ianstormtaylor/superstruct/blob/master/Changelog.md)
- [Commits](https://github.com/ianstormtaylor/superstruct/compare/v0.6.0...v0.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
077d20a334 chore(deps-dev): bump rollup from 1.7.2 to 1.7.3
Bumps [rollup](https://github.com/rollup/rollup) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.7.2...v1.7.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6ff219e892 chore(deps-dev): bump rollup from 1.6.1 to 1.7.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.6.1 to 1.7.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d8cc48c4f8 chore(deps-dev): bump @babel/preset-env from 7.4.1 to 7.4.2
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.4.1 to 7.4.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.4.1...v7.4.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ad83ad866f chore(deps-dev): bump rollup from 1.6.0 to 1.6.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.6.0...v1.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d8075a5a3c chore(deps-dev): bump @babel/core from 7.3.4 to 7.4.0
Bumps [@babel/core](https://github.com/babel/babel) from 7.3.4 to 7.4.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c014a73278 chore(deps-dev): bump @babel/preset-env from 7.3.4 to 7.4.1
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.3.4 to 7.4.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b36726d65b chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.3.4 to 7.4.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.4...v7.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3439fd9621 chore: switch default channel to beta 2020-06-14 21:57:04 -07:00
33bc00d711 fix: adjust DEFAULT_TICKS_PER_SLOT 2020-06-14 21:57:04 -07:00
024a165947 test: use longer timeout for non-live testing to avoid timeouts 2020-06-14 21:57:04 -07:00
c78ca47547 chore: npm run pretty 2020-06-14 21:57:04 -07:00
5c6c3a8ea8 fix: consider ticks_per_slot while sleeping 2020-06-14 21:57:04 -07:00
a87012c5c2 chore(deps-dev): bump eslint-plugin-jest from 22.4.0 to 22.4.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.4.0 to 22.4.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.4.0...v22.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7bb22b784c chore(deps-dev): bump eslint from 5.15.2 to 5.15.3
Bumps [eslint](https://github.com/eslint/eslint) from 5.15.2 to 5.15.3.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.15.2...v5.15.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7b0baa180f chore(deps-dev): bump eslint from 5.15.1 to 5.15.2
Bumps [eslint](https://github.com/eslint/eslint) from 5.15.1 to 5.15.2.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.15.1...v5.15.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cf74fc8098 chore(deps-dev): bump eslint-plugin-jest from 22.3.2 to 22.4.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.3.2 to 22.4.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.3.2...v22.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
df4c83f5be chore(deps-dev): bump flow-bin from 0.95.0 to 0.95.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.95.0 to 0.95.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits/v0.95.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1a98c2fa83 chore(deps-dev): bump flow-bin from 0.94.0 to 0.95.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.94.0 to 0.95.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a4835edf3c fix(flow): Add ProgramAccountChangeCallback type 2020-06-14 21:57:04 -07:00
b5653f47eb chore(deps-dev): bump rollup from 1.5.0 to 1.6.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.5.0...v1.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7469eb5732 fix: remove stray console.log 2020-06-14 21:57:04 -07:00
759d7b9cc2 fix: adjust DEFAULT_TICKS_PER_SLOT to match main repo 2020-06-14 21:57:04 -07:00
6fe0e08a80 fix: rename userdata to data 2020-06-14 21:57:04 -07:00
5d40f359c2 chore(deps-dev): bump jest from 24.4.0 to 24.5.0
Bumps [jest](https://github.com/facebook/jest) from 24.4.0 to 24.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.4.0...v24.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ec287ae7e3 chore(deps-dev): bump eslint-plugin-jest from 22.3.1 to 22.3.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.3.1 to 22.3.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.3.1...v22.3.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
90165b0c9d chore(deps-dev): bump eslint-plugin-jest from 22.3.0 to 22.3.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.3.0 to 22.3.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.3.0...v22.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8ed00599b3 chore(deps-dev): bump jest from 24.3.1 to 24.4.0
Bumps [jest](https://github.com/facebook/jest) from 24.3.1 to 24.4.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v24.3.1...v24.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a7b3abdc62 fix: Update jest to accommodate Nodejs v11.11 2020-06-14 21:57:04 -07:00
f6afbe1a72 fix: Plumb program-based subscriptions 2020-06-14 21:57:04 -07:00
2ce935287a chore(deps-dev): bump rollup from 1.4.1 to 1.5.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.4.1...v1.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
64ff0ab157 chore(deps-dev): bump eslint from 5.14.1 to 5.15.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.14.1 to 5.15.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.14.1...v5.15.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3cb328f1eb fix: Revert s/tokens/lamports in comments in token program 2020-06-14 21:57:04 -07:00
84163af734 chore(deps-dev): bump flow-bin from 0.93.0 to 0.94.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.93.0 to 0.94.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.93.0...v0.94.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
021c34c0ac chore(deps): bump ws from 6.1.4 to 6.2.0
Bumps [ws](https://github.com/websockets/ws) from 6.1.4 to 6.2.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.1.4...6.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cd90a67184 fix: simplify RUST_LOG default 2020-06-14 21:57:04 -07:00
be8821e0d0 fix: rename tokens to lamports 2020-06-14 21:57:04 -07:00
09b6d2b764 chore(deps): bump @babel/runtime from 7.3.1 to 7.3.4
Bumps [@babel/runtime](https://github.com/babel/babel) from 7.3.1 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.1...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c15222250a chore(deps-dev): bump eslint-config-prettier from 4.0.0 to 4.1.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v4.0.0...v4.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7c76ec6e70 test: add more timeout 2020-06-14 21:57:04 -07:00
80ac6f2820 chore(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel) from 7.2.0 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.2.0...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
44284c8aa5 chore(deps-dev): bump rollup-plugin-node-resolve from 4.0.0 to 4.0.1
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v4.0.0...v4.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a372313b2b chore(deps-dev): bump marked from 0.6.0 to 0.6.1
Bumps [marked](https://github.com/markedjs/marked) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.6.0...v0.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6c44f854fa chore(deps-dev): bump rollup-plugin-commonjs from 9.2.0 to 9.2.1
Bumps [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs) from 9.2.0 to 9.2.1.
- [Release notes](https://github.com/rollup/rollup-plugin-commonjs/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-commonjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-commonjs/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e9b55c30cf chore(deps-dev): bump @babel/plugin-proposal-class-properties
Bumps [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) from 7.3.3 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.3...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ec6644dc24 chore(deps-dev): bump @babel/core from 7.3.3 to 7.3.4
Bumps [@babel/core](https://github.com/babel/babel) from 7.3.3 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.3...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8d285a6fb4 chore(deps-dev): bump @babel/preset-env from 7.3.1 to 7.3.4
Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.3.1 to 7.3.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/compare/v7.3.1...v7.3.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6298f4a869 chore(deps): [security] bump handlebars from 4.0.11 to 4.1.0
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.11 to 4.1.0. **This update includes security fixes.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.11...v4.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6c15ab83fc chore(deps): [security] bump extend from 3.0.1 to 3.0.2
Bumps [extend](https://github.com/justmoon/node-extend) from 3.0.1 to 3.0.2. **This update includes security fixes.**
- [Release notes](https://github.com/justmoon/node-extend/releases)
- [Changelog](https://github.com/justmoon/node-extend/blob/master/CHANGELOG.md)
- [Commits](https://github.com/justmoon/node-extend/compare/v3.0.1...v3.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5eb658c980 chore(deps-dev): bump rollup from 1.2.1 to 1.4.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.2.1 to 1.4.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.2.1...v1.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
cb68fb300f chore(deps): [security] bump lodash from 4.17.5 to 4.17.11
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.5 to 4.17.11. **This update includes security fixes.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Changelog](https://github.com/lodash/lodash/blob/master/CHANGELOG)
- [Commits](https://github.com/lodash/lodash/compare/4.17.5...4.17.11)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
51cfcc825a ci: install rustup 2020-06-14 21:57:04 -07:00
b9e3598a51 fix: adapt test to slower slot rate 2020-06-14 21:57:04 -07:00
5d350b4568 fix: adjust notification test to wait for the next block 2020-06-14 21:57:04 -07:00
f655c30159 fix: add timing constants to better set timeouts 2020-06-14 21:57:04 -07:00
243a4625f1 doc: rename network to cluster 2020-06-14 21:57:04 -07:00
adb4cb43ec chore: package-lock.json 2020-06-14 21:57:04 -07:00
294dd4f4e7 fix: Rename lastId to blockhash 2020-06-14 21:57:04 -07:00
c867f0d9fe chore(deps-dev): bump eslint from 5.14.0 to 5.14.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.14.0 to 5.14.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.14.0...v5.14.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
07f1f9a59c fix: upgrade to babel 7; dump uglify for terser; upgrade to jest 24 2020-06-14 21:57:04 -07:00
32835ba047 chore(deps): bump ws from 6.1.3 to 6.1.4
Bumps [ws](https://github.com/websockets/ws) from 6.1.3 to 6.1.4.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.1.3...6.1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b7165a7358 chore(deps): bump jayson from 2.1.1 to 2.1.2
Bumps [jayson](https://github.com/tedeh/jayson) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v2.1.1...v2.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
39cbb77f44 chore(deps-dev): bump babel-plugin-module-resolver from 3.1.3 to 3.2.0
Bumps [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) from 3.1.3 to 3.2.0.
- [Release notes](https://github.com/tleunen/babel-plugin-module-resolver/releases)
- [Changelog](https://github.com/tleunen/babel-plugin-module-resolver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tleunen/babel-plugin-module-resolver/compare/v3.1.3...v3.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e8126842f4 chore(deps-dev): bump enzyme from 3.8.0 to 3.9.0
Bumps [enzyme](https://github.com/airbnb/enzyme) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/compare/enzyme@3.8.0...enzyme@3.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f0fe1e3047 chore(deps-dev): bump rollup from 1.1.2 to 1.2.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.1.2 to 1.2.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.1.2...v1.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5cd4e4547c chore(deps-dev): bump codecov from 3.1.0 to 3.2.0
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5b9665098a fix: getConfirmationTime() was removed upstream 2020-06-14 21:57:04 -07:00
6b73d7d17c fix: unbreak channel default 2020-06-14 21:57:04 -07:00
5e6c97d0c8 fix: look harder for solana-web3.js install directory 2020-06-14 21:57:04 -07:00
1c80365812 fix: correctly locate package.json when installed globally 2020-06-14 21:57:04 -07:00
6bdfce04d1 refactor: improve arg parsing 2020-06-14 21:57:04 -07:00
18b87f4fb9 chore(deps-dev): bump flow-bin from 0.92.1 to 0.93.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.92.1 to 0.93.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.92.1...v0.93.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1d360fa9ee chore(deps-dev): bump eslint-plugin-jest from 22.2.2 to 22.3.0
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.2.2 to 22.3.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.2.2...v22.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a5bc1c0c80 chore(deps-dev): bump eslint from 5.13.0 to 5.14.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.13.0 to 5.14.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.13.0...v5.14.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6311cbf335 fix: retry harder to obtain a last_id 2020-06-14 21:57:04 -07:00
41865547ee fix: remove spawn 2020-06-14 21:57:04 -07:00
27c2a11635 chore: update package-lock.json 2020-06-14 21:57:04 -07:00
58a31254cf chore(deps-dev): bump flow-bin from 0.92.0 to 0.92.1
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.92.0 to 0.92.1.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.92.0...v0.92.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
bbbae41388 chore(deps-dev): bump prettier from 1.16.3 to 1.16.4
Bumps [prettier](https://github.com/prettier/prettier) from 1.16.3 to 1.16.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.16.3...1.16.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a91c5c1056 chore: update package-lock.json 2020-06-14 21:57:04 -07:00
564d09fdfe fix: remove unwanted u64 length from raw Transaction bytes, it's RPC API specific 2020-06-14 21:57:04 -07:00
5bb07e541d chore(deps-dev): bump eslint from 5.12.1 to 5.13.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.12.1 to 5.13.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.12.1...v5.13.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
27425b3910 chore(deps-dev): bump eslint-config-prettier from 3.6.0 to 4.0.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 3.6.0 to 4.0.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v3.6.0...v4.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
bd6d6f95d2 chore(deps-dev): bump flow-bin from 0.91.0 to 0.92.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.91.0 to 0.92.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.91.0...v0.92.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1349831d77 chore(deps-dev): bump eslint-plugin-import from 2.15.0 to 2.16.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.15.0...v2.16.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c4ae3af1d1 chore(deps-dev): bump prettier from 1.16.1 to 1.16.3
Bumps [prettier](https://github.com/prettier/prettier) from 1.16.1 to 1.16.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.16.1...1.16.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
4a8bad0c22 chore(deps-dev): bump eslint-plugin-jest from 22.1.3 to 22.2.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.1.3 to 22.2.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.1.3...v22.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
79bc47a631 fix: Add Transaction method to parse from wire fmt; update Transaction.serialize 2020-06-14 21:57:04 -07:00
ac6e503b35 fix: Add transaction encoding helper functions 2020-06-14 21:57:04 -07:00
02ca644cb1 chore(deps): bump tweetnacl from 1.0.0 to 1.0.1
Bumps [tweetnacl](https://github.com/dchest/tweetnacl-js) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/dchest/tweetnacl-js/releases)
- [Changelog](https://github.com/dchest/tweetnacl-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dchest/tweetnacl-js/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e903b0a954 chore(deps): [security] bump stringstream from 0.0.5 to 0.0.6
Bumps [stringstream](https://github.com/mhart/StringStream) from 0.0.5 to 0.0.6. **This update includes security fixes.**
- [Release notes](https://github.com/mhart/StringStream/releases)
- [Commits](https://github.com/mhart/StringStream/compare/v0.0.5...v0.0.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
91b88af25b chore(deps): [security] bump merge from 1.2.0 to 1.2.1
Bumps [merge](https://github.com/yeikos/js.merge) from 1.2.0 to 1.2.1. **This update includes security fixes.**
- [Release notes](https://github.com/yeikos/js.merge/releases)
- [Commits](https://github.com/yeikos/js.merge/compare/v1.2.0...v1.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
56d8847b50 chore(deps): [security] bump cryptiles from 3.1.2 to 3.1.4
Bumps [cryptiles](https://github.com/hapijs/cryptiles) from 3.1.2 to 3.1.4. **This update includes security fixes.**
- [Release notes](https://github.com/hapijs/cryptiles/releases)
- [Changelog](https://github.com/hapijs/cryptiles/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hapijs/cryptiles/compare/v3.1.2...v3.1.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
68200ec4a0 chore(deps): bump ws from 6.1.2 to 6.1.3
Bumps [ws](https://github.com/websockets/ws) from 6.1.2 to 6.1.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.1.2...6.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7d3f671c3d fix: update example to new sdk api (#146) 2020-06-14 21:57:04 -07:00
be82e50862 fix: Update sdk everytime (#145) 2020-06-14 21:57:04 -07:00
2b1bccfc24 chore(deps-dev): bump prettier from 1.16.0 to 1.16.1
Bumps [prettier](https://github.com/prettier/prettier) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.16.0...1.16.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2bfb2bfeb1 chore(deps-dev): bump eslint-plugin-import from 2.14.0 to 2.15.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.14.0...v2.15.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0cef96b799 chore(deps-dev): bump babel-plugin-module-resolver from 3.1.2 to 3.1.3
Bumps [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/tleunen/babel-plugin-module-resolver/releases)
- [Changelog](https://github.com/tleunen/babel-plugin-module-resolver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tleunen/babel-plugin-module-resolver/compare/v3.1.2...v3.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
f2b0bad4f1 chore(deps-dev): bump rollup from 1.1.1 to 1.1.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.1.1...v1.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8338204bec chore(deps-dev): bump prettier from 1.15.3 to 1.16.0
Bumps [prettier](https://github.com/prettier/prettier) from 1.15.3 to 1.16.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.15.3...1.16.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
c0dea1bd99 chore(deps-dev): bump rollup from 1.1.0 to 1.1.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5a1fad02b7 chore(deps-dev): bump eslint-config-prettier from 3.5.0 to 3.6.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v3.5.0...v3.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0d0bdc9b24 chore(deps-dev): bump eslint from 5.12.0 to 5.12.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.12.0...v5.12.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7077f678de chore(deps-dev): bump flow-bin from 0.90.0 to 0.91.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.90.0 to 0.91.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.90.0...v0.91.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
071c6aaa56 chore(deps-dev): bump rollup from 1.0.2 to 1.1.0
Bumps [rollup](https://github.com/rollup/rollup) from 1.0.2 to 1.1.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.0.2...v1.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a10d553850 fix: expose the localnet drone port 2020-06-14 21:57:04 -07:00
bc05966765 fix: resend transactions a couple times before giving up 2020-06-14 21:57:04 -07:00
ea9b03c393 package-lock.json 2020-06-14 21:57:04 -07:00
de7a102121 chore(deps-dev): bump eslint-config-prettier from 3.4.0 to 3.5.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v3.4.0...v3.5.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e9059d93e3 chore(deps-dev): bump babel-plugin-module-resolver from 3.1.1 to 3.1.2
Bumps [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/tleunen/babel-plugin-module-resolver/releases)
- [Changelog](https://github.com/tleunen/babel-plugin-module-resolver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tleunen/babel-plugin-module-resolver/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
0ba2affb23 chore(deps-dev): bump eslint-config-prettier from 3.3.0 to 3.4.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v3.3.0...v3.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
75078827ca chore(deps-dev): bump marked from 0.5.2 to 0.6.0
Bumps [marked](https://github.com/markedjs/marked) from 0.5.2 to 0.6.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.5.2...v0.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2db8cbcbca chore(deps-dev): bump flow-bin from 0.89.0 to 0.90.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.89.0 to 0.90.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.89.0...v0.90.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
62c8e824be chore(deps-dev): bump semantic-release from 15.13.2 to 15.13.3
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.2 to 15.13.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.2...v15.13.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
60a9ff1092 chore(deps-dev): bump eslint-plugin-jest from 22.1.2 to 22.1.3
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.1.2 to 22.1.3.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.1.2...v22.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1e7121c685 chore(deps-dev): bump rollup from 1.0.1 to 1.0.2
Bumps [rollup](https://github.com/rollup/rollup) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.0.1...v1.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e6ecb477d8 chore(deps): bump jayson from 2.1.0 to 2.1.1
Bumps [jayson](https://github.com/tedeh/jayson) from 2.1.0 to 2.1.1.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v2.1.0...v2.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ee542f0602 chore(deps-dev): bump eslint from 5.11.1 to 5.12.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.11.1 to 5.12.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.11.1...v5.12.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
09460e1795 chore(deps-dev): bump fs-file-tree from 1.0.6 to 1.0.7
Bumps [fs-file-tree](https://github.com/IonicaBizau/fs-file-tree) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/IonicaBizau/fs-file-tree/releases)
- [Commits](https://github.com/IonicaBizau/fs-file-tree/compare/1.0.6...1.0.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
5c1f12da01 chore(deps-dev): bump rollup from 1.0.0 to 1.0.1
Bumps [rollup](https://github.com/rollup/rollup) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
af5d940355 chore(deps-dev): bump rimraf from 2.6.2 to 2.6.3
Bumps [rimraf](https://github.com/isaacs/rimraf) from 2.6.2 to 2.6.3.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Commits](https://github.com/isaacs/rimraf/compare/v2.6.2...v2.6.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
bd858ecce6 chore(deps-dev): bump rollup from 0.68.2 to 1.0.0
Bumps [rollup](https://github.com/rollup/rollup) from 0.68.2 to 1.0.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v0.68.2...v1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
473600af55 chore(deps-dev): bump eslint-plugin-prettier from 3.0.0 to 3.0.1
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v3.0.0...v3.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
efe2cc0cc5 chore(deps-dev): bump semantic-release from 15.13.1 to 15.13.2
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.1 to 15.13.2.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.1...v15.13.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
3af5902eb4 chore(deps-dev): bump eslint from 5.11.0 to 5.11.1
Bumps [eslint](https://github.com/eslint/eslint) from 5.11.0 to 5.11.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.11.0...v5.11.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
b07f251b06 chore(deps-dev): bump rollup from 0.68.1 to 0.68.2
Bumps [rollup](https://github.com/rollup/rollup) from 0.68.1 to 0.68.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v0.68.1...v0.68.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
42944005b5 chore(deps-dev): bump eslint from 5.10.0 to 5.11.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.10.0 to 5.11.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.10.0...v5.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
88abaa3cc9 fix: rename getFinality to getConfirmationTime 2020-06-14 21:57:04 -07:00
62c1efc955 fix: add testnetChannelEndpoint() 2020-06-14 21:57:04 -07:00
b5d058e88f package-lock.json 2020-06-14 21:57:04 -07:00
a015df4fb0 feat: switch to beta solana release channel 2020-06-14 21:57:04 -07:00
3c8dcbb6c7 chore(deps-dev): bump rollup from 0.68.0 to 0.68.1
Bumps [rollup](https://github.com/rollup/rollup) from 0.68.0 to 0.68.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
37eb46e84d chore(deps-dev): bump semantic-release from 15.13.0 to 15.13.1
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.13.0 to 15.13.1.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.13.0...v15.13.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6e11ad9670 chore(deps-dev): bump rollup from 0.67.4 to 0.68.0
Bumps [rollup](https://github.com/rollup/rollup) from 0.67.4 to 0.68.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v0.67.4...v0.68.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a28e19227d chore(deps-dev): bump semantic-release from 15.12.5 to 15.13.0
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.12.5 to 15.13.0.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.12.5...v15.13.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
af836d6a6b chore(deps-dev): bump flow-bin from 0.88.0 to 0.89.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.88.0 to 0.89.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.88.0...v0.89.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
6e9a13cf1c chore(deps-dev): bump semantic-release from 15.12.4 to 15.12.5
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.12.4 to 15.12.5.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.12.4...v15.12.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
72beef6cd7 chore(deps-dev): bump prettier from 1.14.3 to 1.15.3
Bumps [prettier](https://github.com/prettier/prettier) from 1.14.3 to 1.15.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.14.3...1.15.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e250d4de3d chore(deps-dev): bump eslint from 5.9.0 to 5.10.0
Bumps [eslint](https://github.com/eslint/eslint) from 5.9.0 to 5.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v5.9.0...v5.10.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
d46fd83f41 fix: avoid misleading error message when solana-localnet container is not running 2020-06-14 21:57:04 -07:00
198dde4ac1 chore(deps-dev): bump rollup-plugin-node-resolve from 3.4.0 to 4.0.0
Bumps [rollup-plugin-node-resolve](https://github.com/rollup/rollup-plugin-node-resolve) from 3.4.0 to 4.0.0.
- [Release notes](https://github.com/rollup/rollup-plugin-node-resolve/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-node-resolve/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-node-resolve/compare/v3.4.0...v4.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
666f2c2a3f chore(deps-dev): bump rollup-plugin-json from 3.0.0 to 3.1.0
Bumps [rollup-plugin-json](https://github.com/rollup/rollup-plugin-json) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/rollup/rollup-plugin-json/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-json/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-json/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
e24d830cca chore(deps-dev): bump enzyme from 3.7.0 to 3.8.0
Bumps [enzyme](https://github.com/airbnb/enzyme) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/airbnb/enzyme/releases)
- [Changelog](https://github.com/airbnb/enzyme/blob/master/CHANGELOG.md)
- [Commits](https://github.com/airbnb/enzyme/compare/enzyme@3.7.0...enzyme@3.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
ea5db68640 fix: Add network parameter to localnet run 2020-06-14 21:57:04 -07:00
3999a14bee chore(deps-dev): bump eslint-config-prettier from 3.1.0 to 3.3.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 3.1.0 to 3.3.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v3.1.0...v3.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
102e5c4ae5 chore(deps-dev): bump codecov from 3.0.4 to 3.1.0
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.0.4 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.0.4...v3.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
35bcb6b413 chore(deps): bump node-fetch from 2.2.0 to 2.3.0
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/bitinn/node-fetch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.2.0...v2.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
a99540efb1 chore(deps-dev): bump rollup-plugin-babel from 3.0.3 to 3.0.7
Bumps [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel) from 3.0.3 to 3.0.7.
- [Release notes](https://github.com/rollup/rollup-plugin-babel/releases)
- [Changelog](https://github.com/rollup/rollup-plugin-babel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup-plugin-babel/compare/v3.0.3...v3.0.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
1dfc0e2531 chore(deps): bump ws from 6.1.0 to 6.1.2
Bumps [ws](https://github.com/websockets/ws) from 6.1.0 to 6.1.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/6.1.0...6.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
8dde48ac67 chore(deps-dev): bump flow-bin from 0.87.0 to 0.88.0
Bumps [flow-bin](https://github.com/flowtype/flow-bin) from 0.87.0 to 0.88.0.
- [Release notes](https://github.com/flowtype/flow-bin/releases)
- [Commits](https://github.com/flowtype/flow-bin/compare/v0.87.0...v0.88.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
60066f4a01 chore(deps): bump rpc-websockets from 4.3.3 to 4.3.5
Bumps [rpc-websockets](https://github.com/elpheria/rpc-websockets) from 4.3.3 to 4.3.5.
- [Release notes](https://github.com/elpheria/rpc-websockets/releases)
- [Commits](https://github.com/elpheria/rpc-websockets/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
849530a463 chore(deps): bump jayson from 2.0.6 to 2.1.0
Bumps [jayson](https://github.com/tedeh/jayson) from 2.0.6 to 2.1.0.
- [Release notes](https://github.com/tedeh/jayson/releases)
- [Commits](https://github.com/tedeh/jayson/compare/v2.0.6...v2.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
efe55e5fc4 chore(deps-dev): bump semantic-release from 15.9.16 to 15.12.4
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 15.9.16 to 15.12.4.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v15.9.16...v15.12.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
09f32f46db chore(deps-dev): bump marked from 0.5.1 to 0.5.2
Bumps [marked](https://github.com/markedjs/marked) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v0.5.1...v0.5.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
9cade8c1f8 chore(deps-dev): bump rollup-plugin-node-globals from 1.2.1 to 1.4.0
Bumps [rollup-plugin-node-globals](https://github.com/calvinmetcalf/rollup-plugin-node-globals) from 1.2.1 to 1.4.0.
- [Release notes](https://github.com/calvinmetcalf/rollup-plugin-node-globals/releases)
- [Commits](https://github.com/calvinmetcalf/rollup-plugin-node-globals/compare/v1.2.1...v1.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2e55dc71f7 chore(deps-dev): bump eslint-plugin-jest from 22.1.0 to 22.1.2
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 22.1.0 to 22.1.2.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v22.1.0...v22.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
2a06419a7a chore(deps-dev): bump rollup from 0.67.3 to 0.67.4
Bumps [rollup](https://github.com/rollup/rollup) from 0.67.3 to 0.67.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v0.67.3...v0.67.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-06-14 21:57:04 -07:00
7ef329cd17 refactor: add other testnet urls for easy manual selection 2020-06-14 21:57:04 -07:00
6ea01eb90c Fix JSON RPC API link 2020-06-14 21:57:04 -07:00
9780e4c5a7 code highlight style change 2020-06-14 21:57:04 -07:00
6b3eeb5504 fix: bpf programs are now shared objects 2020-06-14 21:57:04 -07:00
83d79afb96 minor css fix 2020-06-14 21:57:04 -07:00
f5138fda91 custom css theme 2020-06-14 21:57:04 -07:00
d02367d15b chore: package-lock.json 2020-06-14 21:57:04 -07:00
97f5ef0b7e fix: add esdoc css theme placeholder 2020-06-14 21:57:04 -07:00
2bab37a34d chore: rebuild noop.o to catch up to bpf-sdk changes 2020-06-14 21:57:04 -07:00
bfefb2403c chore: update eslint-plugin-jest 2020-06-14 21:57:04 -07:00
e17d00d4cd fix: include sourcemaps 2020-06-14 21:57:04 -07:00
cd4da00a68 fix: avoid packaging bpf-sdk binaries that the user downloads 2020-06-14 21:57:04 -07:00
5271f4e157 fix: remove cwd assumption 2020-06-14 21:57:04 -07:00
b67581700b fix: look for the default release channel harder 2020-06-14 21:57:04 -07:00
96133216e5 fix: derive default release channel from package.json 2020-06-14 21:57:04 -07:00
7437c3f694 ci: remove automerge label on CI failure 2020-06-14 21:57:04 -07:00
f1db055199 fix: flowtype catchup 2020-06-14 21:57:04 -07:00
2962eef2c7 fix: add sendAndConfirmRawTransaction() 2020-06-14 21:57:04 -07:00
9f0713d3a7 chore: update flow-bin 2020-06-14 21:57:04 -07:00
cd48ae367b ci: correct rule name 2020-06-14 21:57:04 -07:00
4acccb3976 fix: add flowtype for SignaturePubkeyPair 2020-06-14 21:57:04 -07:00
508678a441 ci: tweak .mergify.yml 2020-06-14 21:57:04 -07:00
ab00797516 ci: add automerge label 2020-06-14 21:57:04 -07:00
0576415b89 ci: add mergify.io 2020-06-14 21:57:04 -07:00
0026b44531 feat: add support for partial Transaction signing 2020-06-14 21:57:04 -07:00
ac4bfaad32 feat: add sendRawTransaction() 2020-06-14 21:57:04 -07:00
aee383eaec refactor: add constant for max Transaction size 2020-06-14 21:57:04 -07:00
f120ef21ee fix: adapt to SolKeyedAccount name change 2020-06-14 21:57:04 -07:00
e4d1497c9d fix: surface system_program info logs by default 2020-06-14 21:57:04 -07:00
b175a53f4b fix: default transaction fee is now 1 (was 0) 2020-06-14 21:57:04 -07:00
916a5eb3d2 fix: flatten symlinks in bpf-sdk/ as |npm pack| strips all symlinks 2020-06-14 21:57:04 -07:00
8e3785989e fix: update some devDependencies 2020-06-14 21:57:04 -07:00
f032e45bcd chore: delete stray swap file 2020-06-14 21:57:04 -07:00
fa7e2722d1 fix: support multiple Transaction signatures 2020-06-14 21:57:04 -07:00
5311ed7f68 fix: catch up to sol_deserialize() signature change 2020-06-14 21:57:04 -07:00
921ae797d8 fix: stabilize tests 2020-06-14 21:57:04 -07:00
44047a8d63 fix: adapt transaction wire format for multiple signatures 2020-06-14 21:57:04 -07:00
3ef167f8fa chore: package-lock.json 2020-06-14 21:57:04 -07:00
67ccac9418 fix: catch up to account field renaming 2020-06-14 21:57:04 -07:00
1f7b8f417d feat: switch to edge release channel 2020-06-14 21:57:04 -07:00
680d2d18ea refactor: use env to locate bash 2020-06-14 21:57:04 -07:00
5ce16c2cbb fix: return signature from transfer transactions 2020-06-14 21:57:04 -07:00
04962c5cec chore: remove elfy from rollup 2020-06-14 21:57:04 -07:00
64658c33ee docs: update examples 2020-06-14 21:57:04 -07:00
f20013a010 fix: update to 0.10.1 bpf sdk 2020-06-14 21:57:04 -07:00
71328e9420 fix: Pass full BPF ELF (#60) 2020-06-14 21:57:04 -07:00
ee25e0278c refactor: don't pretty twice during ok 2020-06-14 21:57:04 -07:00
1d6abb17cf refactor: employ prettier 2020-06-14 21:57:04 -07:00
9a043344d5 fix: sendAndConfirmTransaction now returns the transaction signature 2020-06-14 21:57:04 -07:00
c424b48cd2 fix(flow): add transaction instructions field 2020-06-14 21:57:04 -07:00
4c18dabd62 test: add retries to account change notification test 2020-06-14 21:57:04 -07:00
cbcb774c82 fix: use secure websocket when https JSON RPC endpoint is requested 2020-06-14 21:57:04 -07:00
452fd1b785 fix: correct default websocket port 2020-06-14 21:57:04 -07:00
8468d3ebd1 fix: limit concurrent Loads to improve stability 2020-06-14 21:57:04 -07:00
7b1130b5bf fix: import last id failure error message 2020-06-14 21:57:04 -07:00
f2f856356b fix: include rpc info logs by default 2020-06-14 21:57:04 -07:00
f15dd68604 fix: validate bpf example 2020-06-14 21:57:04 -07:00
6ff9d1a650 refactor: rename env var 2020-06-14 21:57:04 -07:00
b1e811473a fix: add clang install info 2020-06-14 21:57:04 -07:00
add7a00ace fix: update bpf sdk header 2020-06-14 21:57:04 -07:00
bb71529fe0 fix: permit RUST_LOG to be overridden 2020-06-14 21:57:04 -07:00
224f8b17e7 fix: include solana_bpf_loader in default logging 2020-06-14 21:57:04 -07:00
0fbf024c8c fix: improve retry logic on AccountInUse 2020-06-14 21:57:04 -07:00
33c59b73b4 fix: finalize/spawn in same transaction 2020-06-14 21:57:04 -07:00
4897ed0872 fix: add BpfLoader flow definition 2020-06-14 21:57:04 -07:00
99b18dbfef fix: ship src/ again 2020-06-14 21:57:04 -07:00
d328d23faa feat: add bpf-c-noop example 2020-06-14 21:57:04 -07:00
866e8d6892 chore: fetch bpf-sdk before publishing 2020-06-14 21:57:04 -07:00
0d0f2a729b chore: delete .npmignore, use package whitelist instead 2020-06-14 21:57:04 -07:00
79066b7d26 chore: add script to fetch bpf sdk 2020-06-14 21:57:04 -07:00
66fbd4338f chore: update package-lock.json 2020-06-14 21:57:04 -07:00
f3242c12a6 fix(flow): correct onAccountChange prototype 2020-06-14 21:57:04 -07:00
66e572f2a8 fix(flow): correct removeAccountChangeListener prototype 2020-06-14 21:57:04 -07:00
e7097340f2 feat: add account change notifications 2020-06-14 21:57:04 -07:00
9839c087d7 fix: update budget wire format 2020-06-14 21:57:04 -07:00
ec2a3690b2 fix: update program ids 2020-06-14 21:57:04 -07:00
ad43705124 fix: expose websocket 2020-06-14 21:57:04 -07:00
910ab671dc style: remove cicular imports 2020-06-14 21:57:04 -07:00
55b2b4f598 chore: upgrade flow 2020-06-14 21:57:04 -07:00
1d226a2e16 chore: package-lock.json 2020-06-14 21:57:04 -07:00
40c68f3fcb fix: retry better 2020-06-14 21:57:04 -07:00
ce6e840e03 fix: block until the JSON RPC API is available 2020-06-14 21:57:04 -07:00
f871b0410a fix: Remove fs dep, bpf_loader now takes ELF as bytes 2020-06-14 21:57:04 -07:00
224d929d4d docs: correct API params 2020-06-14 21:57:04 -07:00
17720766df chore: update package-lock.json 2020-06-14 21:57:04 -07:00
4a39d25127 fix: remove circular imports 2020-06-14 21:57:04 -07:00
99e6b44d03 fix: expose token program instructions 2020-06-14 21:57:04 -07:00
e1c2498f74 feat: Submit program load transactions in parallel (#39)
feat: Submit program load transactions in parallel
2020-06-14 21:57:04 -07:00
bb0730f86e fix(flow): add Transaction.add() 2020-06-14 21:57:04 -07:00
378e766178 test: timeout++ 2020-06-14 21:57:04 -07:00
f168cdfd70 fix: multiple transaction instructions are now supported 2020-06-14 21:57:04 -07:00
e50b705de3 fix: remove decimal string support from PublicKey ctor 2020-06-14 21:57:04 -07:00
02787df7b9 Add BpfLoader (#34)
feat: Add BpfLoader
2020-06-14 21:57:04 -07:00
b8d586c67e feat: add room in the API for Transactions with multiple Instructions 2020-06-14 21:57:04 -07:00
90c9df15ef fix: retry transactions on AccountInUse errors 2020-06-14 21:57:04 -07:00
96c685eb5d fix: PublicKey.toBuffer() now zero pads correctly 2020-06-14 21:57:04 -07:00
5a42cadefe fix: fail faster on transaction errors 2020-06-14 21:57:04 -07:00
0510dbae6c fix(flow): add sendAndConfirmTransaction 2020-06-14 21:57:04 -07:00
bc097ec04b test: add confirmation retries when testing live 2020-06-14 21:57:04 -07:00
70d22476cf fix: report elapsed duration on confirmation failure for better debug 2020-06-14 21:57:04 -07:00
779b5c38a2 test: add missing awaits 2020-06-14 21:57:04 -07:00
ad7c0bec64 fix: export sendAndConfirmTransaction 2020-06-14 21:57:04 -07:00
83d12f50df fix: add lastId caching 2020-06-14 21:57:04 -07:00
aaf86ff2ba test: bump jest timeout 2020-06-14 21:57:04 -07:00
9c8cc0bd24 fix: wait for the next lastId before sending a new transaction 2020-06-14 21:57:04 -07:00
d9b98918b6 Revert "test: disable flaky test until it can be debugged"
This reverts commit 75b52d0fa5bdeb3b49d91b7c227036b9acd0d451.
2020-06-14 21:57:04 -07:00
00890ef9e0 fix: add Token::setOwner 2020-06-14 21:57:04 -07:00
5cfe43b980 fix: use correct programId when creating a custom Token 2020-06-14 21:57:04 -07:00
9d63f28cdf fix(flow): correct newAccount prototype 2020-06-14 21:57:04 -07:00
c848d64e3c fix(flow): add revoke() 2020-06-14 21:57:04 -07:00
220589eb5d fix(flow): add missing optional programId arg 2020-06-14 21:57:04 -07:00
757cf3ec16 fix: catchup to upstream loader changes 2020-06-14 21:57:04 -07:00
00fd0fc435 feat: support user-supplied Token programs 2020-06-14 21:57:04 -07:00
a9fc62d891 feat: expose ERC20 token originalAmount field 2020-06-14 21:57:04 -07:00
b66ca1a84d chore: remove stray log 2020-06-14 21:57:04 -07:00
cace23bd0e test: disable flaky test until it can be debugged 2020-06-14 21:57:04 -07:00
011a2abd0c fix: catch up to recent upstream changes 2020-06-14 21:57:04 -07:00
972f68b16e fix: log bank better 2020-06-14 21:57:04 -07:00
96242110bf fix: add Token flowtype declarations 2020-06-14 21:57:04 -07:00
300da5b626 docs: up -> down 2020-06-14 21:57:04 -07:00
cc68af7bb6 fix: quiet uninteresting log messages 2020-06-14 21:57:04 -07:00
c931127748 fix: add flow definition for load() 2020-06-14 21:57:04 -07:00
e739ac1424 feat: add deploy command 2020-06-14 21:57:04 -07:00
3f2d1c4352 fix: logs are now followed though a localnet restart 2020-06-14 21:57:04 -07:00
1436eca398 feat: add unstable API for dynamic program loading 2020-06-14 21:57:04 -07:00
715556a611 test: add Layout.rustString() 2020-06-14 21:57:04 -07:00
a2d785398c fix: restart flow server explicitly to avoid false errors from a lingering server 2020-06-14 21:57:04 -07:00
3a5a67bd5e fix: update to post-v0.9 Transaction wire format 2020-06-14 21:57:04 -07:00
6543248b82 fix: follow log 2020-06-14 21:57:04 -07:00
1dade364cc test: bump jest timeout 2020-06-14 21:57:04 -07:00
d40712999c test: add delegate mismatch test case 2020-06-14 21:57:04 -07:00
ad2fa3ceaf feat: Add ERC20-like Token 2020-06-14 21:57:04 -07:00
ab2d6c9ede test: add .toString() test 2020-06-14 21:57:04 -07:00
17b73306fe refactor: use buffer-layout to clean up buffer encoding 2020-06-14 21:57:04 -07:00
a596e99b4a feat: Add sendAndConfirmTransaction 2020-06-14 21:57:04 -07:00
feab984cf1 docs: d 2020-06-14 21:57:04 -07:00
394d63891b fix(solana-localnet): |logs| now works correctly 2020-06-14 21:57:04 -07:00
f9cf7006df fix: avoid Buffer(), use Buffer.alloc() instead 2020-06-14 21:57:04 -07:00
d3d1bce4c2 feat: add solana-localnet program 2020-06-14 21:57:04 -07:00
6b1d1b41b5 docs: add semantic-release badge 2020-06-14 21:57:04 -07:00
48c3ea8106 docs: correct toBuffer comment 2020-06-14 21:57:04 -07:00
95efc7c3b0 fix: support creating a PublicKey from a base58 string 2020-06-14 21:57:04 -07:00
4b2305434e refactor: remove magic number 2020-06-14 21:57:04 -07:00
65efea67dc chore: ignore swap files 2020-06-14 21:57:04 -07:00
e090e7b600 fix: expose Buffer to bundlers 2020-06-14 21:57:04 -07:00
aa1d6ba4d4 fix: zero pad correctly 2020-06-14 21:57:04 -07:00
4f1112534d fix: remove duplicate PublicKey flow definition 2020-06-14 21:57:04 -07:00
a878cdccf3 style: add convenience script to run all examples 2020-06-14 21:57:04 -07:00
ca6965f8c2 feat: wrap public key in a class 2020-06-14 21:57:04 -07:00
2c3208090c docs: remove stale release process 2020-06-14 21:57:04 -07:00
70fb01ddd6 test: update test to match AccountInfo userdata refactor 2020-06-14 21:57:04 -07:00
a2955a2a2e docs: add more details 2020-06-14 21:57:04 -07:00
cbbb21650f Fix bold 2020-06-14 21:57:04 -07:00
935d520ec9 refactor: AccountInfo userdata is now never null 2020-06-14 21:57:04 -07:00
0cc621887b chore: add semantic-git-commit-cli config file 2020-06-14 21:57:04 -07:00
b025dd82dc chore: ignore module.flow.js, it's not expected to lint cleanly 2020-06-14 21:57:04 -07:00
c7100964a8 fix: add missing type exports 2020-06-14 21:57:04 -07:00
aceb29f50f Chore: remove npm provider 2020-06-14 21:57:04 -07:00
e3d4872b67 Docs: Add link 2020-06-14 21:57:04 -07:00
7423943801 chore: initial semantic-release configuration 2020-06-14 21:57:04 -07:00
721ce794e8 feat(flow): add initial flow library definition 2020-06-14 21:57:04 -07:00
fae9624eb0 0.0.7 2020-06-14 21:57:04 -07:00
d3a593de4a 0.0.7-3 2020-06-14 21:57:04 -07:00
87e86c1cc8 Rename TimeStamp to Timestamp 2020-06-14 21:57:04 -07:00
2824779699 Fix lint fix 2020-06-14 21:57:04 -07:00
a3aecba1d0 Improve rpc result validation 2020-06-14 21:57:04 -07:00
92af6e3341 Add getSignatureStatus() 2020-06-14 21:57:04 -07:00
8ccbe888d3 Add breadcrumbs to some other available endpoints 2020-06-14 21:57:04 -07:00
e3703cec29 Add BudgetProgram.payOnBoth 2020-06-14 21:57:04 -07:00
63382b7e6b Add basic system-program tests 2020-06-14 21:57:04 -07:00
ffbc23684c Improve budget-program tests 2020-06-14 21:57:04 -07:00
a15a2424f4 s/contract/program/g 2020-06-14 21:57:04 -07:00
85c1023861 Update babel-core and jest 2020-06-14 21:57:04 -07:00
27fbc8bb72 Add link to tic-tac-toe 2020-06-14 21:57:04 -07:00
f26f1ce64a Update dependencies 2020-06-14 21:57:04 -07:00
117cf7f287 0.0.7-2 2020-06-14 21:57:04 -07:00
41e9cd3e99 Ignore deploy/ 2020-06-14 21:57:04 -07:00
b0c109f586 Remove coveralls remnants 2020-06-14 21:57:04 -07:00
d350ea2764 0.0.7-1 2020-06-14 21:57:04 -07:00
6ad116fd60 s/prepublish/prepare/ 2020-06-14 21:57:04 -07:00
5ce82fe50b 0.0.7-0 2020-06-14 21:57:04 -07:00
4a484158f3 s/contract_id/program_id/g 2020-06-14 21:57:04 -07:00
4f2f41d25f s/contract_id/program_id 2020-06-14 21:57:04 -07:00
e249e4f5c7 Add npm downloads badge 2020-06-14 21:57:04 -07:00
b37706469b Add david-dm badges 2020-06-14 21:57:04 -07:00
38d2ea58a5 Clean up badges 2020-06-14 21:57:04 -07:00
18016444f8 API documentation updates 2020-06-14 21:57:04 -07:00
914c54e071 Docs 2020-06-14 21:57:04 -07:00
7148b0f7d8 Add getAccountInfo 2020-06-14 21:57:04 -07:00
da2496872b Catch up to latest Transaction ABI changes 2020-06-14 21:57:04 -07:00
d009e7e91b s/contract/program/ 2020-06-14 21:57:04 -07:00
864940f63b Add budget example 2020-06-14 21:57:04 -07:00
a96ab72e8e Add support for built-in contracts 2020-06-14 21:57:04 -07:00
7dad281f69 Create TransferTokensTransaction class 2020-06-14 21:57:04 -07:00
cc4019f56f Update to v0.0.6 2020-06-14 21:57:04 -07:00
8ed4be1995 0.0.6 2020-06-14 21:57:04 -07:00
851ca7acc9 Catch up to solana 0.8 Transaction wire format changes 2020-06-14 21:57:04 -07:00
fa5f3d81fd Update airdrop return type 2020-06-14 21:57:04 -07:00
ad5390bbae Switch testnet url 2020-06-14 21:57:04 -07:00
29148ef898 Add preliminary sendTokens() implementation 2020-06-14 21:57:04 -07:00
1c365dc31c Add decode() 2020-06-14 21:57:04 -07:00
552f2f137a Update README.md 2020-06-14 21:57:04 -07:00
db0447a628 Add test:live script 2020-06-14 21:57:04 -07:00
0aa5d2c71a Add a couple of negative tests 2020-06-14 21:57:04 -07:00
9da3188a2d eslint: Suppress 'JestMockFn' is not defined 2020-06-14 21:57:04 -07:00
92e602bd87 Mock Connection tests 2020-06-14 21:57:04 -07:00
573dd99b31 Doc tweak 2020-06-14 21:57:04 -07:00
9dddb84599 Shuffle badges 2020-06-14 21:57:04 -07:00
4184845997 De-. 2020-06-14 21:57:04 -07:00
7a618945f6 Add API documentation 2020-06-14 21:57:04 -07:00
7acaf84c12 Look for more lint 2020-06-14 21:57:04 -07:00
2ccabce064 Reduce rollup warnings 2020-06-14 21:57:04 -07:00
4ca59533a4 Link to example-webwallet 2020-06-14 21:57:04 -07:00
641e2f9f85 0.0.4 2020-06-14 21:57:04 -07:00
41a658c336 Add most of sendTokens() implementation 2020-06-14 21:57:04 -07:00
ac976a66f0 package-lock.json update 2020-06-14 21:57:04 -07:00
3ea2ffc89d Trim eslint plugins 2020-06-14 21:57:04 -07:00
f3dff59d35 Fix up external dependency bundling 2020-06-14 21:57:04 -07:00
4fef4356a4 Fill out dependencies 2020-06-14 21:57:04 -07:00
16ee48b1ad Throw if endpoind is not provided 2020-06-14 21:57:04 -07:00
45360abc87 Add get-balance html example 2020-06-14 21:57:04 -07:00
3fb92bd062 Get flow-typed out of postinstall 2020-06-14 21:57:04 -07:00
392672a5a7 Implement requestAirdrop 2020-06-14 21:57:04 -07:00
b33633fb9c Minor text update 2020-06-14 21:57:04 -07:00
c55d21626f Update README.md 2020-06-14 21:57:04 -07:00
81f3efb436 Flow index.js 2020-06-14 21:57:04 -07:00
a6154ea649 Refresh package-lock.json 2020-06-14 21:57:04 -07:00
4df189513e Add Connection class 2020-06-14 21:57:04 -07:00
79ab826678 Lint tests 2020-06-14 21:57:04 -07:00
96f8a8620d Activate flow 2020-06-14 21:57:04 -07:00
bbb8055243 Add external script link reference 2020-06-14 21:57:04 -07:00
015aff0a4c Remove coveralls 2020-06-14 21:57:04 -07:00
4f396e60fe Add codecov.io 2020-06-14 21:57:04 -07:00
36df1b1e5e Add local browser example 2020-06-14 21:57:04 -07:00
ad95cb5c32 0.0.3 2020-06-14 21:57:04 -07:00
efeb2f55c3 Run lint/flow/doc/examples in CI 2020-06-14 21:57:04 -07:00
5a21b2f9fb Fix package main 2020-06-14 21:57:04 -07:00
0dcd261c38 Trim npm package contents 2020-06-14 21:57:04 -07:00
ca3582ea5e 0.0.2 2020-06-14 21:57:04 -07:00
0575148594 Add more documentation 2020-06-14 21:57:04 -07:00
bf83497bbc Support cjs, esm and iife modules 2020-06-14 21:57:04 -07:00
5a0206bcfe Add Account class 2020-06-14 21:57:04 -07:00
0f1f52e3e4 Adjust eslint configuration 2020-06-14 21:57:04 -07:00
1f1fbd84ff Initial version 2020-06-14 21:57:04 -07:00
86e32a3f31 Add npm/github deployment 2020-06-14 21:57:04 -07:00
1ba4492054 Add npm badge 2020-06-14 21:57:04 -07:00
cf7f048f65 Add esdoc boilerplate 2020-06-14 21:57:04 -07:00
7e109f22c2 Project boilerplate from eunikitin/modern-package-boilerplate 2020-06-14 21:57:04 -07:00
a39df7ee5d Fix udp port check retry and check all udp ports (#10385)
* Don't start if udp port is really closed

* Fully check all udp ports

* Remove test code.......

* Add tests and adjust impl a bit

* Add comment

* Move comment a bit

* Move a bit

* clean ups
2020-06-15 07:36:08 +09:00
0d38257dbb Fix perf-libs version detection (#10571)
automerge
2020-06-14 12:35:06 -07:00
8ac6b7a83f Document removing the pre-release checkmark 2020-06-14 10:32:07 -07:00
edb81b5007 Add gitbook release documentation 2020-06-14 09:52:13 -07:00
a323fe9df6 Add more release docs (#10570) 2020-06-14 09:49:56 -07:00
f717010fa5 Update RELEASE.md (#10569) 2020-06-14 09:11:21 -07:00
1343d0eff7 Use git diff instead of git show for --check (#10566) 2020-06-14 21:24:10 +09:00
f5912f3633 Clean up test-sanity.sh a bit (#10565) 2020-06-14 21:16:19 +09:00
f1131dfbbb Check the whole range of commits in the topic branch (#10560)
* Check the whole range of commits in the topic branch

* Fix shellcheck

* Debug...

* Ensure to update to the latest of the base branch...
2020-06-14 18:15:46 +09:00
a0692c9b4c Further fix the ci (#10559) 2020-06-14 14:53:49 +09:00
d159bc71e7 Fix trailing whitespace (#10558) 2020-06-14 14:43:43 +09:00
ba83e4ca50 Fix fannout gossip bench (#10509)
* Gossip benchmark

* Rayon tweaking

* push pulls

* fanout to max nodes

* fixup! fanout to max nodes

* fixup! fixup! fanout to max nodes

* update

* multi vote test

* fixup prune

* fast propagation

* fixups

* compute up to 95%

* test for specific tx

* stats

* stats

* fixed tests

* rename

* track a lagging view of which nodes have the local node in their active set in the local received_cache

* test fixups

* dups are old now

* dont prune your own origin

* send vote to tpu

* tests

* fixed tests

* fixed test

* update

* ignore scale

* lint

* fixup

* fixup

* fixup

* cleanup

Co-authored-by: Stephen Akridge <sakridge@gmail.com>
2020-06-13 22:03:38 -07:00
07e8e8af38 Remove trailing whitespace (#10554)
automerge
2020-06-13 14:48:27 -07:00
48febf153b Change documentation introduction to indicate Foundation IP transfer (#10440) 2020-06-13 14:41:05 -07:00
9e0b90f331 commitlint now works in web3.js/ (#10552)
automerge
2020-06-13 14:13:47 -07:00
b6a9573748 Route all loader messages to log collector (#10528) 2020-06-13 13:20:08 -07:00
e5a2c75fab Bump serde_yaml from 0.8.12 to 0.8.13
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.12 to 0.8.13.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases)
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.12...0.8.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-13 09:48:15 -07:00
a13b72c59c Allow any branch 2020-06-12 22:29:25 -07:00
8f0e301aa2 Merge notifications 2020-06-12 22:21:28 -07:00
a3a8e8775c [Security] Bump websocket-extensions from 0.1.3 to 0.1.4 in /explorer
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.**
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-12 22:10:58 -07:00
f3965c3eb7 Add commitlint support 2020-06-12 22:10:44 -07:00
483fb86b06 Bump @types/react from 16.9.23 to 16.9.36 in /explorer
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.23 to 16.9.36.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-12 20:26:14 -07:00
4d31d799bf Bump @react-hook/debounce from 2.0.5 to 3.0.0 in /explorer
Bumps [@react-hook/debounce](https://github.com/jaredLunde/react-hook) from 2.0.5 to 3.0.0.
- [Release notes](https://github.com/jaredLunde/react-hook/releases)
- [Commits](https://github.com/jaredLunde/react-hook/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-12 20:26:03 -07:00
25d72fbed5 Export explorer/ into the real explorer repository 2020-06-12 19:32:35 -07:00
8dd5384d6d Split commitment module (#10541)
automerge
2020-06-12 17:16:10 -07:00
b7da3115dd Build release artifacts less frequently 2020-06-12 17:00:29 -07:00
69c0649988 Enable cron and api builds 2020-06-12 16:57:05 -07:00
3bb908a78b Prevent .travis changes from affecting buildkite builds 2020-06-12 16:49:55 -07:00
f54c049b43 Add FdGYQ... to non-circulation withdrawer authority list (#10542)
automerge
2020-06-12 16:45:20 -07:00
fd928f4178 Add empty workspace 2020-06-12 16:32:05 -07:00
94a5c47861 Add incinerator transaction to cache 2020-06-12 16:32:05 -07:00
96c02eb436 Cache token supply transactions 2020-06-12 16:32:05 -07:00
81292253b5 Remove duplicate information in create account w seed details section 2020-06-12 16:32:05 -07:00
d00da9e4b7 Update src/components/TransactionDetails.tsx
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-06-12 16:32:05 -07:00
183095feac Display recent blockhash if not a nonce transaction 2020-06-12 16:32:05 -07:00
d8f3081b11 Rename blockhash label to nonce to reduce ambiguity 2020-06-12 16:32:05 -07:00
8b95be0ee4 Remove clusterUrl url param 2020-06-12 16:32:05 -07:00
03f7d28aff Remove all but cluster url param when navigating 2020-06-12 16:32:05 -07:00
d5421266f5 Reorder TopAccountsCard.tsx 2020-06-12 16:32:05 -07:00
851c0863dc Default top-account filter to circulating 2020-06-12 16:32:05 -07:00
6c45729694 Move top accounts to supply page and add filter 2020-06-12 16:32:05 -07:00
16b0ee0a21 Improve background color contrast 2020-06-12 16:32:05 -07:00
9b602edc7a Fix pending transaction error due to missing timestamp 2020-06-12 16:32:05 -07:00
3f12bf6f52 Default top accounts to all accounts 2020-06-12 16:32:05 -07:00
a15ea32f16 Fix unnecessary reload on supply page 2020-06-12 16:32:05 -07:00
7e2eefad3e Add disclaimer stating oldest available slot (#136) 2020-06-12 16:32:05 -07:00
e962d40815 Fix bug causing eager fetching of rich list 2020-06-12 16:32:05 -07:00
94531f0879 Add result and details link to account history table 2020-06-12 16:32:05 -07:00
612ef1bc10 Fix format 2020-06-12 16:32:05 -07:00
05d2bf21d2 Explicitly move copy tooltip to the right 2020-06-12 16:32:05 -07:00
62e330213f Display timestamp unavailable 2020-06-12 16:32:05 -07:00
d842d161cf Add top accounts page 2020-06-12 16:32:05 -07:00
c5dcc3c378 Improve transaction details page copy 2020-06-12 16:32:05 -07:00
406f35edfa Add supply stats page 2020-06-12 16:32:05 -07:00
2312658492 Account history feed 2020-06-12 16:32:05 -07:00
27650572dd Display transaction timestamp in details view 2020-06-12 16:32:05 -07:00
5946817978 Show transaction history for deleted accounts 2020-06-12 16:32:05 -07:00
7d00398662 Update web3 to 0.49.4 2020-06-12 16:32:05 -07:00
d1c6a8f60b Update web3 to 0.43.9 2020-06-12 16:32:05 -07:00
23637d55b2 Make lockup time less ambiguous 2020-06-12 16:32:05 -07:00
5176a29955 Change copy for stake status 2020-06-12 16:32:05 -07:00
3e2538919f Spruce up stake account details page 2020-06-12 16:32:05 -07:00
1f883c88e5 Use solana fork of create-react-app buildpack 2020-06-12 16:32:05 -07:00
4d94de92c5 Use authority in copy, hide default lockup info 2020-06-12 16:32:05 -07:00
26e4767fdd Use wasm to decode stake account 2020-06-12 16:32:05 -07:00
29ec98d0a1 Add account details page 2020-06-12 16:32:05 -07:00
59288117b9 Remove source tracking for addresses and signatures 2020-06-12 16:32:05 -07:00
595f3ebe14 Bump web3 to v0.49.0 2020-06-12 16:32:05 -07:00
b33d7cd893 Add support for more system instructions 2020-06-12 16:32:05 -07:00
2d00502354 Add stake instruction support 2020-06-12 16:32:05 -07:00
47acdfebff Move system ix details cards 2020-06-12 16:32:05 -07:00
0df52938b2 Add key index to tx instructions 2020-06-12 16:32:05 -07:00
01b99a0570 Add support for more system instruction types 2020-06-12 16:32:05 -07:00
7eb792a0cc Show blockhash in transaction details 2020-06-12 16:32:05 -07:00
13af01dcc4 Refactor instruction details components 2020-06-12 16:32:05 -07:00
285ae1481f Center loading card 2020-06-12 16:32:05 -07:00
b68dc5cf85 Fix false negative not found response 2020-06-12 16:32:05 -07:00
e31b30c595 Fix bad system instruction type handling 2020-06-12 16:32:05 -07:00
6c8a5747f7 Renames 2020-06-12 16:32:05 -07:00
cfa0c20910 Support plural paths for tx details 2020-06-12 16:32:05 -07:00
f2a034f938 Fix infinite update loop 2020-06-12 16:32:05 -07:00
42225446c4 UX improvements 2020-06-12 16:32:05 -07:00
484a4db626 Add transaction details page 2020-06-12 16:32:05 -07:00
9f26cbbbeb Bump web3 to v0.47.1 2020-06-12 16:32:05 -07:00
6eff7f35c9 Refactor transaction provider 2020-06-12 16:32:05 -07:00
f3e677eaab Call getConfirmedTransaction instead of getConfirmedBlock for tx details 2020-06-12 16:32:05 -07:00
60b0eb2e57 Fix mergify condition 2020-06-12 16:32:05 -07:00
04677cb831 Use react-router Switch to control visible content 2020-06-12 16:32:05 -07:00
d629e67b32 Clean up app component 2020-06-12 16:32:05 -07:00
8e081c70f2 Add mergify config 2020-06-12 16:32:05 -07:00
1172d9cd41 Make more things copyable 2020-06-12 16:32:05 -07:00
bdbd037257 Bump @solana/web3.js 2020-06-12 16:32:05 -07:00
e5f69673d7 Show account tx history 2020-06-12 16:32:05 -07:00
73922609e4 Ensure only the copyable element itself is hover-able/click-able 2020-06-12 16:32:05 -07:00
459b4d06fe Rename signature to be more generic (and less wrong); Make copyable accept children 2020-06-12 16:32:05 -07:00
0cef795107 Make addresses copyable 2020-06-12 16:32:05 -07:00
9bf3ddf9c4 Run prettier 2020-06-12 16:32:05 -07:00
1c7b806575 Add popover for clipboard notification 2020-06-12 16:32:05 -07:00
1cc76058d2 Add basic copy-to-clipboard functionality 2020-06-12 16:32:05 -07:00
83b24e682b Remove duplicate .gitignore entries 2020-06-12 16:32:05 -07:00
2513468582 Enable Heroku review apps 2020-06-12 16:32:05 -07:00
8de34e1f42 Show details for all transaction instructions 2020-06-12 16:32:05 -07:00
1c1c628b19 Create test account when test url param is present 2020-06-12 16:32:05 -07:00
5cf323f9f5 Fix clusterUrl param detection 2020-06-12 16:32:05 -07:00
e47b178d29 Transaction modal fixes 2020-06-12 16:32:05 -07:00
0bda30e1f7 Update @solana/web3.js to v0.43.0 2020-06-12 16:32:05 -07:00
0f0b0a20eb Update @solana/web3.js to v0.42.2 2020-06-12 16:32:05 -07:00
8eabff3911 Add top nav and improve mobile experience 2020-06-12 16:32:05 -07:00
18282c04db Drop 2020-06-12 16:32:05 -07:00
b691f7a77b Update @solana/web3.js to v0.41.2 2020-06-12 16:32:05 -07:00
ed470564e6 Improve the UI of the transaction modal 2020-06-12 16:32:05 -07:00
bcb10b0536 Display owner names when known 2020-06-12 16:32:05 -07:00
35814e77cb Show zero balance for missing accounts 2020-06-12 16:32:05 -07:00
aec0d9cca0 Update solana/web3.js to v0.40.0 2020-06-12 16:32:05 -07:00
60981f2031 Make it easy to create test success and failed tx 2020-06-12 16:32:05 -07:00
152d7bc774 Check for /transactions route 2020-06-12 16:32:05 -07:00
b3e0f06e23 Fix displaying 0 confirmations 2020-06-12 16:32:05 -07:00
3a9ab69d52 Use 'recent' connection for status queries 2020-06-12 16:32:05 -07:00
611f2ae957 Add transaction details modal 2020-06-12 16:32:05 -07:00
ef7be97540 Use signature and address for state keys 2020-06-12 16:32:05 -07:00
69502cc68e Add confirmations to tx table 2020-06-12 16:32:05 -07:00
f55c53e5ca Update web3 to 0.39.1 2020-06-12 16:32:05 -07:00
2e20b9f43e Remove lamports switch, always display in SOL 2020-06-12 16:32:05 -07:00
5bdeeda569 Add account address lookup table 2020-06-12 16:32:05 -07:00
1d7dbe859a Rename network to cluster 2020-06-12 16:32:05 -07:00
c47c3acb10 Add cluster url param and rename tds to testnet 2020-06-12 16:32:05 -07:00
82cdd1babe Clean up unused files and fix broken UI elements (#27) 2020-06-12 16:32:05 -07:00
e59625a41d Improve flexibility of url parsing (#26) 2020-06-12 16:32:05 -07:00
1ad1ba73fa Raj (#23)
* adds styling changes for brand consistency

* reverts some prettier snafus

Co-authored-by: Raj Gokal <raj@solana.com>
2020-06-12 16:32:05 -07:00
52f5934c3d Add real slot info to transactions table (#16)
* Add real slot info to transactions table

* npm run format:fix
2020-06-12 16:32:05 -07:00
ea705f9147 Bump @solana/web3.js to v0.36.0 (#15) 2020-06-12 16:32:05 -07:00
60e01116b2 Tweak style of network modal options 2020-06-12 16:32:05 -07:00
76733e14d8 Update manifest to have Solana info (#13) 2020-06-12 16:32:05 -07:00
8090ee31ab Left align tx id column 2020-06-12 16:32:05 -07:00
237b3ae025 Add signature input to tx table (#9) 2020-06-12 16:32:05 -07:00
82543886fb UI Tweaks 2020-06-12 16:32:05 -07:00
45898415a1 Small tweaks 2020-06-12 16:32:05 -07:00
068b034a22 Use https links for clusters (#8) 2020-06-12 16:32:05 -07:00
03345e9005 Add network selector (#7) 2020-06-12 16:32:05 -07:00
875aeaa53f Update web3 and fix hasha warning (#6) 2020-06-12 16:32:05 -07:00
6006c30ace Add transaction card component and provider (#5) 2020-06-12 16:32:05 -07:00
de1df895a0 Cleanup network provider (#3) 2020-06-12 16:32:05 -07:00
d7b2612915 Fix travis build (#2) 2020-06-12 16:32:05 -07:00
95001aa8ee Add network status button and url param parsing 2020-06-12 16:32:05 -07:00
674ee37ee3 Switch from yarn to npm (#1) 2020-06-12 16:32:05 -07:00
5ff479590c Enable Travis 2020-06-12 16:32:05 -07:00
7ef953437f Enable prettier 2020-06-12 16:32:05 -07:00
6619edb12c Fix dashkit scss building 2020-06-12 16:32:05 -07:00
6aa797c05c Add placeholder main page 2020-06-12 16:32:05 -07:00
6a38889572 Import dashkit theme 2020-06-12 16:32:05 -07:00
d78d9898f3 First commit 2020-06-12 16:32:05 -07:00
ca0589e5a7 Adjust ^ placement 2020-06-12 16:22:31 -07:00
24eed881df Fix pull_request-only syntax 2020-06-12 16:16:56 -07:00
644e37c03e shellcheck 2020-06-12 16:06:32 -07:00
b54532b4c1 Add explorer/ carve out 2020-06-12 16:02:58 -07:00
c2fa1032d7 Remove branch condition 2020-06-12 15:46:05 -07:00
d6cd29b32a Restore lanaguage rust 2020-06-12 15:27:46 -07:00
6c59093a67 Prepare Travis CI for web3.js and explorer 2020-06-12 15:23:55 -07:00
2eb6f498a8 Remove redundant BankForks parameter (#10537) 2020-06-12 11:04:17 -06:00
dfe72d5242 Optimize stale slot shrinking for previously cleaned roots (#10099)
* Prioritize shrinking of previously cleaned roots

* measure time of stale slot shrinking

* Disable shrink for test

* shrink: budgeting, store count, force for snapshot

* Polish implementation and fix tests

* Fix ci..

* Clean up a bit

* Further polish implementation and fix/add tests

* Rebase fixes

* Remove unneeded Default for AccountStorageEntry

* Address review comments

* More cleanup

* More cleanup
2020-06-12 14:51:43 +09:00
4f761395d2 Adhere to naming conventions (#10530)
automerge
2020-06-11 19:10:34 -07:00
914f285914 Add Trust Wallet security info (#10516)
automerge
2020-06-11 17:59:41 -07:00
206b8118a1 Buildkite pipeline overhaul 2 (#10529) 2020-06-11 17:34:13 -07:00
fb8612be49 Update non-circulating pubkeys (#10524)
automerge
2020-06-11 16:30:25 -07:00
9077c4a776 Enable jsonrpc client (#10522) 2020-06-11 16:51:25 -06:00
b03a347803 Document InvokeContext trait (#10514) 2020-06-11 15:31:13 -07:00
526eefac97 Fix clippy (#10521)
Co-authored-by: Carl <carl@solana.com>
2020-06-11 15:26:00 -06:00
bca386c776 Put docs step in a container 2020-06-11 13:42:20 -07:00
d79759595a Remove unneeded doc check 2020-06-11 13:18:03 -07:00
e2d46375cd Rework buildkite pipeline construction to be more composable 2020-06-11 13:17:25 -07:00
8b3dc2d44b Force CI_REPO_SLUG 2020-06-11 13:13:54 -07:00
2e1d59ff85 Adopt heaviest subtree fork choice rule (#10441)
* Add HeaviestSubtreeForkChoice

* Make replay stage switch between two fork choice rules

Co-authored-by: Carl <carl@solana.com>
2020-06-11 12:16:04 -07:00
0510b6e336 Add merge-stake subcommmand 2020-06-10 23:19:31 -07:00
ee007e0d31 Add stage 5 TdS Validators to list (#10508)
automerge
2020-06-10 18:57:18 -07:00
769f456a22 Add RPC Send Transaction Service graphs 2020-06-10 18:14:06 -07:00
60bc64629c Add StakeInstruction::Merge (#10503)
automerge
2020-06-10 17:22:47 -07:00
4c140acb3b ClusterInfo cleanup (#10504)
automerge
2020-06-10 17:00:17 -07:00
9c2c64f8c8 More reliable way to detect expired transactions (#10482)
When the root slot is beyond the last valid slot, we can say
with certainty that the blockhash is expired. Unfortunately,
we still can't say the transaction didn't land. It may have
landed a long time ago and the validator has since purged
its transaction status.
2020-06-10 17:00:13 -06:00
1e3554b33d runtime: fix possible deadlock in bank (#10466) 2020-06-11 02:02:08 +09:00
6eb5ef6ac7 Add back missing pull_response success counter (#10491) 2020-06-10 09:17:57 -07:00
a15f60a291 Factor out testnet automation SW version resolution 2020-06-10 09:55:39 -06:00
c3bb4b7405 Add vote-update-commission subcommand 2020-06-10 08:30:55 -07:00
2bcbe44c79 Add VoteInstruction::UpdateCommission 2020-06-10 08:30:55 -07:00
0a638a8f17 runtime: fix possible deadlock in accounts_db (#10469) 2020-06-10 19:37:15 +09:00
75b8c2c4e3 Fix broken image link (#10496)
automerge
2020-06-10 02:45:17 -07:00
f19faa2e13 Don't ever unstake more than 20% of the cluster at a time 2020-06-09 22:04:22 -07:00
8a7f1c2058 Add --baseline-stake-amount and --bonus-stake-amount arguments 2020-06-09 22:04:22 -07:00
40ffc56f8d Update docs for eager rent collection (#10348)
* Update docs for eager rent collection

* Add rent doc and clarify account doc for app devs

* Clarify some and pass the grammarly

* Fix units notation

* Fix link

* Fix link really

* Fix link really really

* More grammarly

* Apply suggestions from code review

Thank you so much!

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Add explanation of 19.055441478439427

* Fix unit...

* Fix unit...

* Clarify rent duration reasoning

* Tweak a text for more clarification

* Tweak more..

* Apply suggestions from code review

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* Revert too detailed out-of-context explanations

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-06-10 13:00:47 +09:00
ecb6959720 Optimize process pull responses (#10460)
* Batch process pull responses

* Generate pull requests at 1/2 rate

* Do filtering work of process_pull_response in read lock

Only take write lock to insert if needed.
2020-06-09 17:08:13 -07:00
4131eee94d Expose last-valid-slot to BankClient and ThinClient users (#10478)
automerge
2020-06-09 17:07:32 -07:00
b250e8c614 [auto-commit] Update all Cargo lock files 2020-06-09 16:57:46 -07:00
a264a9dd0b Bump serde_json from 1.0.53 to 1.0.54
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.53 to 1.0.54.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.53...v1.0.54)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-09 16:57:46 -07:00
aaf6dd9ee0 Allow ci/publish_tarball.sh's output to be configured (#10480)
automerge
2020-06-09 15:40:41 -07:00
8e2745c2a2 Clean up delinquency slot distance computation 2020-06-09 11:27:30 -07:00
d59fd7d512 Add gossip/poh to dashboard (#10449) 2020-06-09 10:25:10 -07:00
b329e6d1a4 Add --warp-slot argument to |solana-ledger-tool create-snapshot| 2020-06-09 09:16:21 -07:00
ed351400b2 Add SendTransactionService 2020-06-09 07:46:40 -07:00
2da9b12d67 Remove client-side retry service 2020-06-09 07:46:40 -07:00
832d324a23 Revert "Gossip PullRequests tend to return a lot of duplicates. (#10326)" (#10455)
This reverts commit 31e20eff82.
2020-06-09 07:27:00 -07:00
4cfb7588d9 som: Add --quality-block-producer-percentage (#10462)
automerge
2020-06-08 22:15:59 -07:00
9d07a23c46 Run clippy before check to avoid being skipped (#10464)
* Run clippy before check to avoid being skipped

* Tweak output

* Apply a workaround
2020-06-09 12:25:39 +09:00
704d98ac28 Use cutting-edge (=nightly) clippy for all targets (#10463)
automerge
2020-06-08 18:58:47 -07:00
cffd8d9427 Add missing " 2020-06-08 17:44:05 -07:00
e23340d89e Clippy cleanup for all targets and nighly rust (also support 1.44.0) (#10445)
* address warnings from 'rustup run beta cargo clippy --workspace'

minor refactoring in:
- cli/src/cli.rs
- cli/src/offline/blockhash_query.rs
- logger/src/lib.rs
- runtime/src/accounts_db.rs

expect some performance improvement AccountsDB::clean_accounts()

* address warnings from 'rustup run beta cargo clippy --workspace --tests'

* address warnings from 'rustup run nightly cargo clippy --workspace --all-targets'

* rustfmt

* fix warning stragglers

* properly fix clippy warnings test_vote_subscribe()
replace ref-to-arc with ref parameters where arc not cloned

* Remove lock around JsonRpcRequestProcessor (#10417)

automerge

* make ancestors parameter optional to avoid forcing construction of empty hash maps

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-06-09 09:38:14 +09:00
fa3a6c5584 Add F3LudCbGqu4DMqjduLq5WE2g3USYcjmVK3WR8KeNBhWz (#10456)
automerge
2020-06-08 13:06:45 -07:00
136342eaae Bump new_system_program_activation_epoch by 2 2020-06-08 09:39:42 -07:00
97f9b63507 Improve BPF SDK dependency caching (#10434) 2020-06-08 09:20:12 -07:00
9f181f41fa Add Algo|Stake as a recommended trusted testnet validator (#10452)
automerge
2020-06-08 08:17:19 -07:00
af8c21c559 Remove lock around JsonRpcRequestProcessor (#10417)
automerge
2020-06-07 20:54:03 -07:00
0645a0c96d Gossip cleanup remove duplicate gossip metrics and name worker threads (#10435)
Refactor into functions
2020-06-06 15:05:45 -07:00
ebb612ab4e Enable and add tick rate to metrics (#10430) 2020-06-06 11:47:11 -07:00
7e2651ca51 RPC simulateTransaction endpoint now returns program log output (#10432) 2020-06-06 10:18:28 -07:00
718244fb8f Add Certus One as a trusted validator for testnet (#10433)
automerge
2020-06-05 16:44:58 -07:00
2725acebea Lower counter level (#10428) 2020-06-05 15:53:09 -07:00
2e37eccfc4 Bump jsonrpc-core-client from 14.1.0 to 14.2.0 (#10425)
Bumps [jsonrpc-core-client](https://github.com/paritytech/jsonrpc) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/v14.1.0...v14.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-06-05 15:51:01 -06:00
3d2230f1a9 Add pull request count metrics (#10421) 2020-06-05 09:36:31 -07:00
31e20eff82 Gossip PullRequests tend to return a lot of duplicates. (#10326)
* filter messages that are likely to be pushed from the response

* tests

* tests

* wait to start filtering responses, and push stats to influx

* wait to start filtering responses, and push stats to influx

* reduce the timers to match the publish self timeout

* fmt

* fmt
2020-06-05 08:01:45 -07:00
3cea73cf14 docs: Fix missing closing code block ``` (#10424)
automerge
2020-06-05 00:19:56 -07:00
db82d9e914 Enable more fine-grained control in partition tests (#10418)
Co-authored-by: Carl <carl@solana.com>
2020-06-04 23:32:53 -07:00
aa6832964c ledger_cleanup_service: compact at a slower rate than purging (#10414) 2020-06-04 21:06:06 -07:00
da34310eb4 Add arg to specify address-signer for solana deploy (#10416) 2020-06-04 20:14:12 -06:00
318835e3a0 Merge pull request #10410 from solana-labs/dependabot/cargo/jsonrpc-pubsub-14.2.0
Bump jsonrpc-pubsub from 14.1.0 to 14.2.0
2020-06-04 19:06:14 -07:00
754f25ae99 Avoid AccountInUse errors when simulating transactions (#10391)
automerge
2020-06-04 19:06:01 -07:00
68f95c791a Bump jsonrpc-ws-server from 14.1.0 to 14.2.0
Bumps [jsonrpc-ws-server](https://github.com/paritytech/jsonrpc) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/v14.1.0...v14.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-04 19:02:30 -07:00
8736247554 Bump jsonrpc-http-server from 14.1.0 to 14.2.0
Bumps [jsonrpc-http-server](https://github.com/paritytech/jsonrpc) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/v14.1.0...v14.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-04 19:00:28 -07:00
26e684f375 Deactivate legacy_system_instruction_processor at epoch 58/38 (preview/stable) (#10406)
automerge
2020-06-04 00:01:47 -07:00
61d91d2d55 Don't reuse executable accounts between instructions (#10403)
automerge
2020-06-03 21:16:15 -07:00
21d62493ff Add legacy_system_instruction_processor0 tests 2020-06-03 16:04:06 -07:00
9c631a01c1 Enable rolling upgrade of system_instruction_processor 2020-06-03 16:04:06 -07:00
1331c9a680 Add legacy_system_instruction_processor 2020-06-03 16:04:06 -07:00
a4cd96609c Add built-in programs to InvokeContext (#10383)
automerge
2020-06-03 12:48:19 -07:00
ea9b958dff Bump jsonrpc-derive from 14.1.0 to 14.2.1
Bumps [jsonrpc-derive](https://github.com/paritytech/jsonrpc) from 14.1.0 to 14.2.1.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-03 12:16:54 -07:00
6c46f5c5e5 Throw error if no release version (#10396) 2020-06-03 12:08:32 -06:00
f58b6b3431 Bump jsonrpc-core from 14.1.0 to 14.2.0
Bumps [jsonrpc-core](https://github.com/paritytech/jsonrpc) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-03 09:02:07 -07:00
e8d9521cf6 [auto-commit] Update all Cargo lock files 2020-06-03 09:01:36 -07:00
6cf30c38a4 Bump reqwest from 0.10.5 to 0.10.6
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.10.5 to 0.10.6.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-03 09:01:36 -07:00
2cf719ac2c Cache tvu peers for broadcast (#10373) 2020-06-03 08:24:05 -07:00
e63e7937cb Introduce automatic ABI maintenance mechanism (1/2; prepare) (#10335)
* Introduce automatic ABI maintenance mechanism

* Compile fix...

* Docs fix...

* Programs compilation fix...

* Simplify source credit

Co-authored-by: Michael Vines <mvines@gmail.com>

* Cargo.lock...

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-06-03 20:51:56 +09:00
b515cc3ae5 Don't share same snapshot dir for secondary access (#10384)
automerge
2020-06-03 02:45:48 -07:00
69d90b591f [auto-commit] Update all Cargo lock files 2020-06-02 23:29:14 -07:00
f901571026 Bump serde from 1.0.110 to 1.0.111
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.110 to 1.0.111.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.110...v1.0.111)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 23:29:14 -07:00
f66169f245 [auto-commit] Update all Cargo lock files 2020-06-02 23:28:57 -07:00
8498b75d6c Bump indexmap from 1.3.2 to 1.4.0
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.3.2 to 1.4.0.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Commits](https://github.com/bluss/indexmap/compare/1.3.2...1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 23:28:57 -07:00
a23085ddfd solana validators: Fix credits column formatting 2020-06-02 23:28:36 -07:00
caa7f7a0c9 Support opening an in-use rocksdb as secondary (#10209)
automerge
2020-06-02 21:32:44 -07:00
59c5dad020 Testnet automation: Fix slot query (#10378)
automerge
2020-06-02 21:08:59 -07:00
eee9a08376 Purge TransactionStatus and AddressSignatures exactly from ledger-tool (#10358)
* Add failing test

* Add execution path to purge primary-index columns exactly

* Fail gracefully if older TransactionStatus rocksdb keys are present

* Remove columns_empty check for special columns

* Move blockstore purge methods to submodule

* Remove unused column empty check
2020-06-02 19:49:31 -06:00
1303c4964b Surface more helpful error message than 'blockstore error' 2020-06-02 11:11:06 -07:00
0f2cfec52e Add 4N8t... 2020-06-02 07:47:19 -07:00
6498cb4214 Remove some unused RpcClient and ThinClient methods 2020-06-02 07:44:30 -07:00
df216b0e98 Remove RpcClient::resign_transaction() 2020-06-02 07:44:30 -07:00
4cb7dc7128 [auto-commit] Update all Cargo lock files 2020-06-01 20:53:17 -07:00
89c2175bc9 Bump curve25519-dalek from 2.0.0 to 2.1.0
Bumps [curve25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/dalek-cryptography/curve25519-dalek/releases)
- [Changelog](https://github.com/dalek-cryptography/curve25519-dalek/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dalek-cryptography/curve25519-dalek/compare/2.0.0...2.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 20:53:17 -07:00
8c3ad859a9 Add docs for the builtin programs (#10359)
* Add docs for the builtin programs

* Cleanup
2020-06-01 21:06:53 -06:00
ebf8a65526 Add test_rpc_send_transaction_preflight 2020-06-01 17:51:04 -07:00
bd1f9d320f Skip RPC preflight to align with the other Client implementations 2020-06-01 17:51:04 -07:00
202512d46b Adapt solana deploy 2020-06-01 17:51:04 -07:00
f1733ab125 Add send_transaction_with_config 2020-06-01 17:51:04 -07:00
9158479dc4 Add node health check to transaction preflight 2020-06-01 17:51:04 -07:00
9dbf3d5430 Factor out RpcHealth module 2020-06-01 17:51:04 -07:00
189aa7962e Add preflight checks to sendTransaction RPC method 2020-06-01 17:51:04 -07:00
27e2e3665a net.sh: Add 'upgrade' subcommand to upload a new release to the BSV
NOTE! (start|stop)node don't support operating on the BSV yet, so a
manual restart is required to get it running the new release
2020-06-01 16:37:17 -06:00
1144190d8d net.sh: Factor out logic that uploads bins to BSV 2020-06-01 16:37:17 -06:00
79e6bd044f Add F7FgS6rr... 2020-06-01 14:18:48 -07:00
3a7b036eac Add helpful PATH command to copy from 2020-06-01 14:02:50 -07:00
6ff52f7fde Exchange doc reformat pt2 (#10355) 2020-06-01 14:03:12 -06:00
c5ca6f6c83 Add H4Dgb3KyCuYWKT8yKtp8qbY49cvaqZcisa2GDnroFsv6 2020-06-01 12:54:39 -07:00
b538a22529 Exchange doc reformat (#10353) 2020-06-01 11:10:43 -06:00
e619839236 Restore archiver design document (#10352) 2020-06-01 10:42:45 -06:00
ef37b82ffa More cluster stats and add epoch stakes cache in retransmit stage (#10345)
* More cluster info metrics for push request/response counts

* Cache staked peers for the epoch
2020-06-01 08:37:54 -07:00
08ad7d1ed6 Reduce stable jobs (#10344) 2020-05-31 21:29:32 -07:00
5d248fe5f8 Permit paying oneself (#10337)
* Allow paying to oneself

* cargo fmt

* Permit pay-to-self in CLI

No test here because we're just removing an [untested] special case.

Fixes #10339
2020-05-30 20:12:48 -06:00
6013b4b2a7 Add clap-utils to workspace (#10340)
Without it, Rust Analyzer reports an error in the IDE
2020-05-30 11:26:26 -06:00
b787254bd6 Bump console from 0.10.3 to 0.11.3 (#10314)
Bumps [console](https://github.com/mitsuhiko/console) from 0.10.3 to 0.11.3.
- [Release notes](https://github.com/mitsuhiko/console/releases)
- [Commits](https://github.com/mitsuhiko/console/commits/v0.11.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-30 07:47:41 -06:00
d9366776b2 Add operating mode gating (#10332)
Co-authored-by: Carl <carl@solana.com>
2020-05-30 00:03:19 -07:00
19d11800bf Remove WithSigner (#10325)
automerge
2020-05-29 23:17:44 -07:00
55a64712b9 Cleanup program docs (#10283) 2020-05-29 20:29:24 -06:00
de5b21e444 Don't attempt to resolve mainnet-beta in the test suite (#10328)
automerge
2020-05-29 17:35:07 -07:00
eb45aaa6c3 Added --health-check-slot-distance (#10324) 2020-05-29 15:31:52 -07:00
778078e1dc Distinguish switch/non-switching votes in ReplayStage (#10218)
* Add SwitchForkDecision, change vote instruction based on decision

* Factor out SelectVoteAndResetForkResult

Co-authored-by: Carl <carl@solana.com>
2020-05-29 14:40:36 -07:00
284e83e619 gce.sh: Make help text example command non-executable (#10319)
automerge
2020-05-29 11:52:25 -07:00
b563b49ed5 Improve Rpc inflation tooling (#10309)
automerge
2020-05-29 11:50:25 -07:00
75924bd232 Update whitelist.rs (#10317)
automerge
2020-05-29 10:51:33 -07:00
bc37dfc4c1 log leader (#10316)
automerge
2020-05-29 04:35:20 -07:00
8db34474d3 Cover tests for clippy (#10310)
automerge
2020-05-29 02:00:56 -07:00
fb4d8e1f62 cleanup clippy tests (#10172)
automerge
2020-05-29 00:26:06 -07:00
a71833c17b Bump regex from 1.3.8 to 1.3.9 (#10308)
* Bump regex from 1.3.8 to 1.3.9

Bumps [regex](https://github.com/rust-lang/regex) from 1.3.8 to 1.3.9.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.3.8...1.3.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-28 21:48:39 -07:00
c68d426fa2 Update Cargo.lock 2020-05-28 15:32:42 -07:00
9eefb2c929 Bump version to 1.3.0 2020-05-28 15:01:13 -07:00
0a373149dd verify_reachable_ports: Handle errors without expect() (#10298)
automerge
2020-05-28 14:16:53 -07:00
e68621b8bb Fix repair dos (#10299)
Co-authored-by: Carl <carl@solana.com>
2020-05-28 14:16:24 -07:00
0442c45d5b Feign RPC health while in a --wait-for-supermajority holding pattern (#10295) 2020-05-28 12:22:19 -07:00
3f508b37fd Skip gossip requests with different shred version and split lock (#10240) 2020-05-28 11:38:13 -07:00
9227874ada Bump regex from 1.3.7 to 1.3.8 (#10293)
* Bump regex from 1.3.7 to 1.3.8

Bumps [regex](https://github.com/rust-lang/regex) from 1.3.7 to 1.3.8.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/regex-1.3.7...1.3.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-28 10:02:23 -07:00
e8bf94c2d2 CLI: Don't display inactive stake lockups 2020-05-28 09:45:20 -06:00
f60b101920 Verify TPU and serve repair ports are reachable (#10291) 2020-05-28 08:41:06 -07:00
34796d2c81 Include GenesisConfig inflation in Display (#10282)
automerge
2020-05-27 22:35:19 -07:00
075dc078da Use correct --url (#10284)
automerge
2020-05-27 21:02:58 -07:00
5ac2ae1178 Purge next slots to avoid a blockstore_processor panic on restart (#10281) 2020-05-27 19:55:40 -07:00
2cd1e4e12a Adjust mainnet-beta shred version 2020-05-27 17:11:49 -07:00
c600cfc655 Cleanup programming model doc (#10274) 2020-05-27 16:18:11 -06:00
f9ee97d6f5 CLI: Improve stake (de)activation display 2020-05-27 14:21:09 -06:00
34507e8a5b Stalebot: Exempt 'blocked' label (#10268)
automerge
2020-05-27 11:20:45 -07:00
e3b444834f Add more logging while unpacking snapshots (#10266) 2020-05-27 10:41:05 -07:00
7d42d529af Add exchange integration docs (#10054)
* Add exchange integration doc

* Round 1 review comments

* Add rent stub doc

* Pretty-print some things

* Rework blockhash info, move offline signing

* Add something to test section

* Update blockhash/last-valid-slot info
2020-05-27 09:47:03 -07:00
7abdfc23f9 succceed is not a word 2020-05-26 23:17:50 -07:00
2ee0c48980 Program address nits (#10261)
automerge
2020-05-26 19:32:19 -07:00
3f0995d3b4 Add commitment parameter to getFeeCalculatorForBlockhash (#10255)
* Accept commitment parameter on getFeeCalculatorForBlockhash

* Update docs

* Add get_fee_calculator_for_blockhash_with_commitment to rpc client
2020-05-26 17:23:58 -06:00
22a98bd27a Wait for one slot to be produced (#10257)
automerge
2020-05-26 16:20:28 -07:00
b6083ca107 Cli: expose last-valid-slot in solana fees (#10254)
automerge
2020-05-26 14:08:07 -07:00
1cd1988207 Update testnet-automation.sh (#10250)
automerge
2020-05-26 13:02:24 -07:00
4e431bc818 Add mechanism to get blockhash's last valid slot (#10239)
automerge
2020-05-26 12:06:21 -07:00
1bfc4c1489 Bump libc from 0.2.70 to 0.2.71 (#10249)
* Bump libc from 0.2.70 to 0.2.71

Bumps [libc](https://github.com/rust-lang/libc) from 0.2.70 to 0.2.71.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.70...0.2.71)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <anatoly+githubjenkins@solana.io>
2020-05-26 11:04:15 -07:00
d888e1c50a Bump byte-unit from 3.1.2 to 3.1.3 (#10248)
Bumps [byte-unit](https://github.com/magiclen/byte-unit) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/magiclen/byte-unit/releases)
- [Commits](https://github.com/magiclen/byte-unit/compare/v3.1.2...v3.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-26 11:04:06 -07:00
03abd3ddd7 Prevent privilege escalation (#10232)
automerge
2020-05-26 01:02:31 -07:00
5d96fcec63 Remove storage rpc docs (#10238) 2020-05-25 23:38:12 -06:00
bf8daf8e74 Update cross-program and program address proposals (#10234) 2020-05-25 22:25:16 -07:00
569e3cb46a Use thiserror's display for TransactionError (#10233)
automerge
2020-05-25 16:13:09 -07:00
7ebd8ee531 Cluster info metrics (#10215) 2020-05-25 15:03:34 -07:00
c1738b01a0 Bump byte-unit from 3.1.1 to 3.1.2 (#10229)
Bumps [byte-unit](https://github.com/magiclen/byte-unit) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/magiclen/byte-unit/releases)
- [Commits](https://github.com/magiclen/byte-unit/compare/v3.1.1...v3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-25 10:25:44 -07:00
27e3ee8799 Re-enable move in docker-solana (#10214) 2020-05-24 23:51:37 -07:00
156387aba4 LedgerCleanupService no longer causes an OOM and actually purges (#10199)
* cleanup_ledger() now services new_root_receiver while purging
* purge_slots() now fully deletes before compacting
* Add ledger pruning grafana graph
2020-05-24 21:41:54 -07:00
8a8384e674 Bump sha2 from 0.8.1 to 0.8.2 (#10205)
* Bump sha2 from 0.8.1 to 0.8.2

Bumps [sha2](https://github.com/RustCrypto/hashes) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/RustCrypto/hashes/releases)
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.8.1...sha2-v0.8.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-24 19:44:04 -07:00
58ae9ab34f Bump zstd from 0.5.1+zstd.1.4.4 to 0.5.2+zstd.1.4.5 (#10207)
Bumps [zstd](https://github.com/gyscos/zstd-rs) from 0.5.1+zstd.1.4.4 to 0.5.2+zstd.1.4.5.
- [Release notes](https://github.com/gyscos/zstd-rs/releases)
- [Commits](https://github.com/gyscos/zstd-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-24 19:39:38 -07:00
3dfef813bf Bump hidapi from 1.2.1 to 1.2.2 (#10210)
Bumps [hidapi](https://github.com/ruabmbua/hidapi-rs) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/ruabmbua/hidapi-rs/releases)
- [Commits](https://github.com/ruabmbua/hidapi-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-24 19:39:06 -07:00
3aae98c8be Add switching vote instruction (#10197)
* Add switching vote

* Make sure vote size stays under gossip limit

Co-authored-by: Carl <carl@solana.com>
2020-05-24 15:38:35 -07:00
8d32441b96 Fix ledger-tool create-snapshot and add sanity test (#10212)
automerge
2020-05-24 08:27:36 -07:00
26acd6aafa Sort notifications for easier scanning on Discord (#10208)
automerge
2020-05-24 00:20:57 -07:00
7373163bed Update whitelist.rs (#10203) 2020-05-23 17:46:59 -06:00
a21409e97e Update whitelist.rs (#10202)
automerge
2020-05-23 10:51:15 -07:00
9fae5aacc2 grammar (#10200)
automerge
2020-05-23 08:13:20 -07:00
42aaacf520 Factor out LockedPubkeyReferences (#10198)
Co-authored-by: Carl <carl@solana.com>
2020-05-22 23:23:17 -07:00
36a36d1c83 No longer allow create-account to add funds to an existing account (#10192)
automerge
2020-05-22 16:39:01 -07:00
2d3a906d55 Bump tar from 0.4.27 to 0.4.28 (#10185)
Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.27 to 0.4.28.
- [Release notes](https://github.com/alexcrichton/tar-rs/releases)
- [Commits](https://github.com/alexcrichton/tar-rs/compare/0.4.27...0.4.28)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-22 15:55:40 -07:00
48c0845359 Update another non-circulating account 2020-05-22 15:11:33 -07:00
10b1895357 Optimize banking processing of AccountInUse (#10154)
* Optimize banking processing of AccountInUse and thread count

* Add more options to banking-bench
2020-05-22 15:01:01 -07:00
f1e932c90a Trigger notifications on supermajority votes confirmation (#10137)
automerge
2020-05-22 14:53:47 -07:00
269db1710e Retry a couple times before declaring a UDP port unreachable (#10181) 2020-05-22 14:33:01 -07:00
e2b5cd6d47 Add another non-circulating account (#10186)
automerge
2020-05-22 13:06:03 -07:00
2928c5d103 Add SingleGossip commitment level to use for subscriptions (#10147)
automerge
2020-05-22 12:55:17 -07:00
2324eb9ff9 Make slot history a billion times faster (#10175) 2020-05-22 11:15:16 -07:00
b7a32f01c0 Multi-version snapshot support (#9980)
* Multi-version snapshot support

* rustfmt

* Remove CLI options and runtime support for selection output snapshot version.
Address some clippy complaints.

* Muzzle clippy type complexity warning.

Despite clippy's suggestion, it is not currently possible to create type aliases
for traits and so everything within the 'Box<...>' cannot be type aliased.

This then leaves creating full blown traits, and either implementing
said traits by closure (somehow) or moving the closures into new structs
implementing said traits which seems a bit of a palaver.

Alternatively it is possible to define and use the type alias 'type ResultBox<T> = Result<Box<T>>'
which does seems rather pointless and not a great reduction in complexity but is enough to keep clippy happy.

In the end I simply went with squelching the clippy warning.

* Remove now unused Serialize/Deserialize trait implementations for AccountStorageEntry and AppendVec

* refactor versioned de/serialisers

* rename serde_utils to serde_snapshot

* move call to accounts_db.generate_index() back down to context_accountsdb_from_stream()

* update version 1.1.1 to 1.2.0
remove nested use of serialize_bytes

* cleanups

* Add back measurement of account storage entry serialization.
Remove construction of Vec and HashMap temporaries during serialization.

* consolidate serialisation test cases into serde_snapshot.
clean up leakage of implementation details in serde_snapshot.

* move short term / legacy snapshot code into child module

* add serialize_iter_as_tuple

* preliminary integration of following commit

commit 6d58b73c47294bfb93465d5a83cd2175660b6e6d
Author: Ryo Onodera <ryoqun@gmail.com>
Date:   Wed May 20 14:02:02 2020 +0900

    Confine snapshot 1.1 relic to versioned codepath

* refactored serde_snapshot, rustfmt
legacy accounts_db format now "owns" both leading u64s, legacy bank_rc format has none

* reduce type complexity (clippy)
2020-05-23 02:54:24 +09:00
967320a091 Update whitelist.rs (#10183)
automerge
2020-05-22 10:10:26 -07:00
4779858dd4 Clean up RPCClient retry handling: only retry on 429, after a little sleep (#10182) 2020-05-22 08:53:53 -07:00
c7cdbc98e5 Bump thiserror from 1.0.18 to 1.0.19 (#10180)
* Bump thiserror from 1.0.18 to 1.0.19

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.18 to 1.0.19.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.18...1.0.19)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-21 23:36:04 -07:00
c78fd2b36d document optimistic confirmation and slashing roadmap (#10164)
* docs

* book nits

* Update docs/src/proposals/optimistic-confirmation-and-slashing.md

Co-authored-by: Michael Vines <mvines@gmail.com>

* Update optimistic-confirmation-and-slashing.md

* Update optimistic-confirmation-and-slashing.md

* Update optimistic-confirmation-and-slashing.md

* Update optimistic-confirmation-and-slashing.md

* Update optimistic-confirmation-and-slashing.md

* fixups

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-05-21 18:15:09 -07:00
12a3b1ba6a Fixup deserialize_bs58_transaction, and make a few error types more targeted (#10171)
automerge
2020-05-21 17:30:02 -07:00
18be7a7966 REST API now returns supply in SOL rather than lamports (#10170)
automerge
2020-05-21 15:50:06 -07:00
56c7e4a66c ping now reuses the same blockhash for a minute (#10165) 2020-05-21 14:11:47 -07:00
486168b796 Revert "Add AVX2 runtime checks (#10033)" (#10167)
This reverts commit cf8eb7700b.
2020-05-21 13:13:52 -07:00
074c41556f Add hQB.. to the testnet whitelist 2020-05-21 12:22:38 -07:00
10d60288e8 Update default subscription commitment level from recent to single (#10161)
* Update default subscription commitment level from recent to single

* Update jsonrpc docs

* Fix failing tests
2020-05-22 00:33:24 +08:00
77d42654dc Update .gitignore 2020-05-20 23:59:41 -07:00
07243dc87f Add stake-o-matic.sh 2020-05-20 22:30:09 -07:00
429802a138 Avoid sending duplicate stake delegation transactions for the same epoch (#10158)
automerge
2020-05-20 21:26:47 -07:00
8da2e1b2f7 Bump tar from 0.4.26 to 0.4.27 (#10150)
Bumps [tar](https://github.com/alexcrichton/tar-rs) from 0.4.26 to 0.4.27.
- [Release notes](https://github.com/alexcrichton/tar-rs/releases)
- [Commits](https://github.com/alexcrichton/tar-rs/compare/0.4.26...0.4.27)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-20 20:04:22 -07:00
324cfd40f0 Add v0 REST APIs for circulating and total supply (#10102) 2020-05-20 20:04:07 -07:00
64cec764b9 Allow RpcClient users to inject custom "senders" (#10157)
automerge
2020-05-20 18:40:45 -07:00
ce17de7d25 Add option to wait for a specific epoch length to bench-tps (#10083) 2020-05-20 16:42:46 -07:00
417f0e41fa Add stake-o-matic (#10044)
automerge
2020-05-20 16:15:03 -07:00
d6d032dd49 Fetch rpc-url from the gossip entrypoint (#10152)
automerge
2020-05-20 14:52:41 -07:00
357a00d2bc transaction-history now searches over the entire history by default (#10145)
automerge
2020-05-20 14:15:31 -07:00
276815bd33 Fixup subscription docs (#10146) 2020-05-20 13:19:03 -06:00
4a72c2b054 Support cross-program invocation to native programs (#10136) 2020-05-20 09:24:57 -07:00
9d89fb5c35 Fix another unstable test after eager rent (#10120) 2020-05-20 09:57:33 -06:00
ad7b113944 Ignore test_tvu_exit (#10134)
automerge
2020-05-19 23:40:27 -07:00
f33688361c multinode-demo/faucet.sh is no longer required (#10129) 2020-05-19 20:07:30 -07:00
36627fb8b3 move builtin programs out of bank (#10132)
automerge
2020-05-19 19:45:30 -07:00
f27d001b7a Remove obsolete testnet management scripts (#10130)
automerge
2020-05-19 18:26:27 -07:00
d9919b99d2 Remove folds (#10128)
automerge
2020-05-19 18:13:41 -07:00
439fd30840 Fix erasure (#10095)
* Fix bad FEC blocks

* Add test

Co-authored-by: Carl <carl@solana.com>
2020-05-19 16:13:12 -07:00
e66b5d09db Rename getCirculatingSuppy to getSupply in JSON API doc (#10121)
automerge
2020-05-19 15:37:26 -07:00
d5d06e6be0 Add CommitmentConfig::single() support to the cli (#10114)
automerge
2020-05-19 13:45:21 -07:00
97f2bcff69 master: Add nonce to shreds repairs, add shred data size to header (#10109)
* Add nonce to shreds/repairs

* Add data shred size to header

Co-authored-by: Carl <carl@solana.com>
2020-05-19 12:38:18 -07:00
427c78d891 Add SimulateTransaction RPC endpoint (#10106)
automerge
2020-05-19 12:08:19 -07:00
5e43304eca Bump byte-unit from 3.0.3 to 3.1.1 (#10098)
Bumps [byte-unit](https://github.com/magiclen/byte-unit) from 3.0.3 to 3.1.1.
- [Release notes](https://github.com/magiclen/byte-unit/releases)
- [Commits](https://github.com/magiclen/byte-unit/compare/v3.0.3...v3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-19 09:03:30 -06:00
d34b9ba306 Bump thiserror from 1.0.17 to 1.0.18 (#10079)
* Bump thiserror from 1.0.17 to 1.0.18

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.17 to 1.0.18.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.17...1.0.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <anatoly+githubjenkins@solana.io>
2020-05-19 09:02:45 -06:00
fac854eb9d Remove sdk-c (#10107) 2020-05-18 21:04:47 -06:00
431a228402 fix clock bankhash mismatch (#10078)
automerge
2020-05-18 19:48:06 -07:00
300b33a20e Add unique_signers() to SDK (#10105)
automerge
2020-05-18 18:31:45 -07:00
759c0e0b03 Update accounts whitelist (#10100) 2020-05-18 14:17:56 -06:00
bbc549f592 Rename program_id to owner in system instructions (#10069) 2020-05-18 12:55:41 -07:00
bac4aec16f Trigger RPC notifications after block commitment cache update (#10077)
* Fixup commitment-aggregation metric

* Trigger notifications after commitment-cache update

* Fixup fn name

* Add single-confirmation commitment level

* Rename to highest_confirmed_slot

* Pass commitment-cache info directly to notifications

* Use match

* Update commitment docs

* Update out of date pubsub docs
2020-05-18 12:49:01 -06:00
4ca352a344 Use serde provided serialization for atomics (#10096)
automerge
2020-05-18 08:30:27 -07:00
bfcfbab818 Add Vote PubSub endpoint for live gossip votes. (#10045)
* Add Vote PubSub endpoint for live gossip votes.

* Updated tests for Vote RPC and Vote Listener

* Add JSON RPC documentation for Vote RPC.

* Base58 encode hash in Vote RPC response.
2020-05-17 15:01:08 -06:00
9222bc2b35 Add 30s option to metrics. (#10081)
10s too short, 1m too long, 30s just right.
2020-05-16 10:46:17 -07:00
f562ed4cc8 Distinguish between shred type in shred fetch stage duplicate filter (#10068)
* Shred type check

* Test
2020-05-15 13:23:56 -07:00
c4a096d8d4 Wait 15 seconds for gossip rpc url (#10053) 2020-05-15 13:23:40 -07:00
5e89bd8868 Panic if no fee-payer found via Message::new() (#10050)
automerge
2020-05-15 12:23:09 -07:00
7080fb9b37 Abort if the open fd limit cannot be increased (#10064)
automerge
2020-05-15 12:14:21 -07:00
a32f34f131 Add docs section to upgrade Solana App on Ledger Live (#10070)
automerge
2020-05-15 11:26:40 -07:00
f342a50a76 Don't discard transaction record when blockhash not found (#10058)
* Don't discard transaction records

Not enough certainty, because only half the blockhashes
are returned via the RPC call. Even if all 300, there's
still the possiblity other validators are behind, and
a superamajority will vote on on a block that includes
the transaction.

* fmt
2020-05-15 11:43:30 -06:00
58ef02f02b 9951 clippy errors in the test suite (#10030)
automerge
2020-05-15 09:35:43 -07:00
1da1667920 Forge a confirmed root before halting for RPC inspection (#10061) 2020-05-15 09:02:48 -07:00
b762319fc5 Correct comment stating lockup gates stake authorize ixs (#10063)
* Correct old comment stating lockup gates stake authorize ixs

* Delete dead stake code
2020-05-15 22:02:20 +08:00
6a6c5f196a Bump libc from 0.2.69 to 0.2.70 (#10006)
* Bump libc from 0.2.69 to 0.2.70

Bumps [libc](https://github.com/rust-lang/libc) from 0.2.69 to 0.2.70.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.69...0.2.70)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-15 06:18:43 -06:00
22cddcb1a6 Bump thiserror from 1.0.16 to 1.0.17 (#10020)
* Bump thiserror from 1.0.16 to 1.0.17

Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.16 to 1.0.17.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.16...1.0.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-15 06:17:42 -06:00
63813fe69f Add Ledger error codes (#10056)
automerge
2020-05-14 21:52:11 -07:00
adcd2f14a5 Minor fixes to solana-tokens (#10057)
automerge
2020-05-14 21:23:35 -07:00
eb1acaf927 Remove archiver and storage program (#9992)
automerge
2020-05-14 18:22:47 -07:00
9ef9969d29 Remove notifier module duplication (#10051) 2020-05-14 17:32:08 -07:00
40b7c11262 Base58 (#10052) 2020-05-14 17:23:29 -06:00
d195dce5d1 Clean up Ledger instructions (#10047)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-05-14 14:03:16 -06:00
816bf6ebdd Bump fnv from 1.0.6 to 1.0.7 (#10046)
* Bump fnv from 1.0.6 to 1.0.7

Bumps [fnv](https://github.com/servo/rust-fnv) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/servo/rust-fnv/releases)
- [Commits](https://github.com/servo/rust-fnv/compare/v1.0.6...v1.0.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-14 12:29:11 -07:00
ed53a70b5c Cli: transfer ALL; check spend+fee in client (#10012)
* lamports->SOL in user-facing error msg

* Check for sufficient balance for spend and fee

* Add ALL option to solana transfer

* Rework TransferAmount to check for sign_only in parse

* Refactor TransferAmount & fee-check handling to be more general

* Add addl checks mechanism

* Move checks out of cli.rs

* Rename to SpendAmount to be more general & move

* Impl ALL/spend helpers for create-nonce-account

* Impl spend helpers for create-vote-account

* Impl ALL/spend helpers for create-stake-account

* Impl spend helpers for ping

* Impl ALL/spend helpers for pay

* Impl spend helpers for validator-info

* Remove unused fns

* Remove retry_get_balance

* Add a couple unit tests

* Rework send_util fn signatures
2020-05-14 12:24:14 -06:00
4e4a21f9b7 solana-gossip spy can now specify a shred version (#10040) 2020-05-13 19:37:40 -07:00
c5460e7fee Remove inline from all BPF C functions (#10038) 2020-05-13 17:23:39 -07:00
cf8eb7700b Add AVX2 runtime checks (#10033)
automerge
2020-05-13 12:19:22 -07:00
13bc3f8094 Fix unstable test after eager rent collection (#10031)
automerge
2020-05-13 10:35:58 -07:00
9575afc8fa Refactor blockstore recovery code (#10008) 2020-05-13 10:09:38 -07:00
1e80044e93 fix docs makefile (#10016) 2020-05-13 09:08:25 -07:00
e09f517094 Add solana-tokens (#10011)
* Initial commit

* Execute transfers

* Refactor for testing

* Cleanup readme

* Rewrite

* Cleanup

* Cleanup

* Cleanup client

* Use a Null Client to move prints closer to where messages are sent

* Upgrade Solana

* Move core functionality into its own module

* Handle transaction errors

* Merge allocations

* Fixes

* Cleanup readme

* Fix markdown

* Add example input

* Add integration test - currently fails

* Add integration test

* Add metrics

* Use RpcClient in dry-run, just don't send messages

* More metrics

* Fix dry run with no keys

* Only require one approval if fee-payer is the sender keypair

* Fix bugs

* Don't create the transaction log if nothing to put into it;
  otherwise the next innvocation won't add the header

* Apply previous transactions to allocations with matching recipients

* Bail out of any account already has a balance

* Polish

* Add new 'balances' command

* 9 decimal places

* Add missing file

* Better dry-run; keypair options now optional

* Change field name from 'bid' to 'accepted'

Also, tolerate precision change from 2 decimal places to 4

* Write to transaction log immediately

* Rename allocations_csv to bids_csv

So that we can bypass bids_csv with an allocations CSV file

* Upgrade Solana

* Remove faucet from integration test

* Cleaner integration test

Won't work until this lands and is released:

https://github.com/solana-labs/solana/pull/9717

* Update README

* Add TravicCI script to build and test (#1)

* Add distribute-stake command (#2)

* Distribute -> DistributeTokens (#3)

* Cache cargo deps (#4)

* Add docs (#5)

* Switch to latest Solana 1.1 release (#7)

* distribute -> distribute-tokens (#9)

* Switch from CSV to a pickledb database (#8)

* Switch from CSV to a pickledb database

* Allow PickleDb errors to bubble up

* Dedup

* Hoist db

* Add finalized field to TransactionInfo

* Don't allow RPC client to resign transactions

* Remove dead code

* Use transport::Result

* Record unconfirmed transaction

* Fix: separate stake account per allocation

* Catch transport errors

* Panic if we attempt to replay a transaction that hasn't been finalized

* Attempt to fix CI

PickleDb isn't calling flush() or close() after writing to files.
No issue on MacOS, but looks racy in CI.

* Revert "Attempt to fix CI"

This reverts commit 1632394f636c54402b3578120e8817dd1660e19b.

* Poll for signature before returning

* Add --sol-for-fees option for stake distributions

* Add --allocations-csv option (#14)

* Add allocations-csv option

* Add tests or GTFO

* Apply review feedback

* apply feedback

* Add read_allocations function

* Update arg_parser.rs

* Fix balances command (#17)

* Fix balances command

* Fix readme

* Add --force to transfer to non-empty accounts (#18)

* Add --no-wait (#16)

* Add ThinClient methods to implement --no-wait

* Plumb --no-wait through

No tests yet

* Check transaction status on startup

* Easier to test

* Wait until transaction is finalized before checking if it failed with an error

It's possible that a minority fork thinks it failed.

* Add unit tests

* Remove dead code and rustfmt

* Don't flush database to file if doing a dry-run

* Continue when transactions not yet finalized (#20)

If those transactions are dropped, the next run will execute them.

* Return the number of confirmations (#21)

* Add read_allocations() unit-test (#22)

Delete the copy-pasted top-level test.

Fixes #19

* Add a CSV printer (#23)

* Remove all the copypasta (#24)

* Move resolve_distribute_stake_args into its own function

* Add stake args to token args

* Unify option names

* Move Command::DistributeStake into DistributeTokens

* Remove process_distribute_stake

* Only unique signers

* Use sender keypair to fund new fee-payer accounts

* Unify distribute_tokens and distribute_stake

* Rename print-database command to transaction-log (#25)

* Send all transactions as quickly as possible, then wait (#26)

* Send all transactions as quickly as possible, then wait

* Exit when finalized or blockhashes have expired

* Don't need blockhash in the CSV output

* Better types

CSV library was choking on Pubkey as a type. PickleDb doesn't have that problem.

* Resend if blockhash has not expired

* Attempt to fix CI

* Move log to stderr

* Add constructor, tuck away client (#30)

* Add constructor, tuck away client

* Fix unwrap() caught by CI

* Fix optional option flagged as required

* Bunch of cleanup (#31)

* Remove untested --no-wait feature

* Make --transactions-db an option, not an arg

So that in the future, we can make it optional

* Remove more untested features

Too many false positives in that santity check.  Use --dry-run
instead.

* Add dry-run mode to ThinClient

* Cleaner dry-run

* Make key parameters required

Just don't use them in --dry-run

* Add option to write the transaction log

--dry-run doesn't write to the database. Use this option if you
want a copy of the transaction log before the final run.

* Revert --transaction-log addition

Implement #27 first

* Fix CI

* Update readme

* Fix CI in copypasta

* Sort transaction log by finalized date (#33)

* Make --transaction-db option implicit (#34)

* Move db functionality into its own module (#35)

* Move db functionality into its own module

* Rename tokens module to commands

* Version bump

* Upgrade Solana

* Add solana-tokens to build

* Remove Cargo.lock

* Remove vscode file

* Remove TravisCI build script

* Install solana-tokens

Co-authored-by: Dan Albert <dan@solana.com>
2020-05-13 08:36:30 -06:00
1eb40c3fe0 Introduce eager rent collection (#9527)
* Switch AccountsIndex.account_maps from HashMap to BTreeMap

* Introduce eager rent collection

* Start to add tests

* Avoid too short eager rent collection cycles

* Add more tests

* Add more tests...

* Refacotr!!!!!!

* Refactoring follow up

* More tiny cleanups

* Don't rewrite 0-lamport accounts to be deterministic

* Refactor a bit

* Do hard fork, restore tests, and perf. mitigation

* Fix build...

* Refactor and add switch over for testnet (TdS)

* Use to_be_bytes

* cleanup

* More tiny cleanup

* Rebase cleanup

* Set Bank::genesis_hash when resuming from snapshot

* Reorder fns and clean ups

* Better naming and commenting

* Yet more naming clarifications

* Make prefix width strictly uniform for 2-base partition_count

* Fix typo...

* Revert cluster-dependent gate

* kick ci?

* kick ci?

* kick ci?
2020-05-13 16:22:14 +09:00
ee7f15eff1 Rpc: optionally filter getLargestAccounts by circulating/nonCirculating (#10007)
* Add circ/non-circ filter to getLargestAccounts

* Plumb largest accounts into client and cli

* Bump timeout toward CI flakiness

* Update docs
2020-05-12 21:05:05 -06:00
a9b82cf95b Enable disk metrics (#10009) 2020-05-12 15:24:39 -07:00
5cc252d471 Remove hash field from account (#9915) 2020-05-12 23:39:46 +08:00
a75086287c Use CommitmentConfig::root() when checking accounts, CommitmentConfig::max() may not be available yet (#9999)
automerge
2020-05-12 00:24:04 -07:00
a5fb3fc220 Update testnet shred version (#10000)
automerge
2020-05-11 23:30:00 -07:00
28d1f7c5e7 Fix crash when CI_COMMIT=HEAD (#9994)
automerge
2020-05-11 22:49:29 -07:00
59de1b3b62 Compute Switch Threshold (#9218)
* Add switching threshold check

Co-authored-by: Carl <carl@solana.com>
2020-05-11 22:20:11 -07:00
84b6120983 getClusterNodes RPC API now includes the node software version (#9990) 2020-05-11 21:30:01 -07:00
3b9dc50541 Fix up a couple cli commands that fail when a node is in the --wait-for-supermajority state (#9985)
automerge
2020-05-11 16:07:40 -07:00
2521f75c18 Advertise node software version in gossip (#9981)
* Advertise node version in gossip

* Remove solana_clap_utils::version! macro
2020-05-11 15:02:01 -07:00
965204b8e0 Check slot cleaned up for RPC blockstore/slot queries (#9982)
automerge
2020-05-11 14:47:40 -07:00
6660e93c39 Bump clap from 2.33.0 to 2.33.1 (#9978)
* Bump clap from 2.33.0 to 2.33.1

Bumps [clap](https://github.com/clap-rs/clap) from 2.33.0 to 2.33.1.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/v2.33.1/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v2.33.0...v2.33.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-11 14:32:50 -07:00
4fd7526852 Bump signal-hook from 0.1.14 to 0.1.15 (#9979)
Bumps [signal-hook](https://github.com/vorner/signal-hook) from 0.1.14 to 0.1.15.
- [Release notes](https://github.com/vorner/signal-hook/releases)
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vorner/signal-hook/compare/v0.1.14...v0.1.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-11 14:32:26 -07:00
903a8a3196 Add retransmit packets_by_slot metrics (#9975) 2020-05-11 13:49:10 -07:00
7e364d01c2 Bump solana-rbpf to v0.1.28 (#9976) 2020-05-11 13:34:56 -07:00
bfe179e911 nudge 2020-05-11 09:06:05 -07:00
af84dff9ef nudge 2020-05-11 09:06:05 -07:00
97e17f9b32 Programs can only sign their accounts 2020-05-11 09:06:05 -07:00
b4b4d6b00d Write non-error output to stdout (#9960)
automerge
2020-05-11 08:39:10 -07:00
1f9d0fc284 Bump dialoguer from 0.5.1 to 0.6.2 (#9970)
Bumps [dialoguer](https://github.com/mitsuhiko/dialoguer) from 0.5.1 to 0.6.2.
- [Release notes](https://github.com/mitsuhiko/dialoguer/releases)
- [Changelog](https://github.com/mitsuhiko/dialoguer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/dialoguer/compare/0.5.1...v0.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-11 08:21:16 -07:00
1a47b1cd86 Retransmit and shred fetch metrics (#9965)
* Retransmit stats

* Shred fetch stats
2020-05-10 21:37:05 -07:00
9c0b80ea1b Bump serde_yaml from 0.8.11 to 0.8.12 (#9966)
automerge
2020-05-10 18:11:23 -07:00
288c9751c1 Bump serde from 1.0.106 to 1.0.110 (#9964)
* Bump serde from 1.0.106 to 1.0.110

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.106 to 1.0.110.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.106...v1.0.110)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-10 16:24:25 -07:00
ad3c8fb812 More logging around failure (#9967)
automerge
2020-05-10 16:01:20 -07:00
19722fceb3 Fixup supply_with_commitment 2020-05-10 11:50:15 -07:00
0541431ea8 Bump serde_json from 1.0.52 to 1.0.53 (#9957)
* Bump serde_json from 1.0.52 to 1.0.53

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.52 to 1.0.53.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.52...v1.0.53)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-10 11:46:29 -07:00
dd78184f8f Cli: Add solana supply command; hide total-supply (#9956)
* Add cli supply command; hide total-supply

* Use print-accounts arg instead of verbose
2020-05-10 12:05:14 -06:00
af6a8f5fac Remove RpcClient code duplication (#9952) 2020-05-10 08:51:53 -07:00
405e39fb9f Reduce stability testcase throughput to 40k TPS (#9959)
automerge
2020-05-10 08:34:47 -07:00
3ee702a922 Rpc: Add getCirculatingSupply endpoint, redux (#9953)
* Add Bank.clock() helper

* Add non-circulating calculations

* Plumb getSupply rpc endpoint

* Add docs for getSupply, and remove getTotalSupply from docs

* Add pubkeys! procedural macro

* Use procedural macro in non_circulating_supply
2020-05-09 12:05:29 -06:00
cb50877bbf send_and_confirm_transaction() no longer needs a keypair (#9950) 2020-05-09 09:06:32 -07:00
84885d79d5 Pull in hardened BPF virtual machine (#9931) 2020-05-08 12:37:04 -07:00
57a9996921 Clean up --output help (#9941)
automerge
2020-05-08 12:27:56 -07:00
00e45ec935 Maintain sysvar balances for consistent market cap. (#9936)
* Maintain sysvar balances for consistent market cap.

* Unindent
2020-05-09 02:42:32 +09:00
f98bfda6f9 Security changes (#9923)
* Move test-only functions to test modules

* Remove sigverify disable

* Remove chacha CTR code
2020-05-08 10:00:23 -07:00
01ab1d1369 Add metrics for logging time taken in replaystage steps (#9933)
automerge
2020-05-08 03:46:29 -07:00
e970c58330 Properly handle ancestor/descendant maps (#9932)
* Account for descendants < root not existing in BankForks, purge ancestors/descendants map for consistency with BankForks and progress map


Co-authored-by: Carl <carl@solana.com>
2020-05-07 23:39:57 -07:00
c970bbea4f Bump serde_bytes from 0.11.3 to 0.11.4 (#9914)
Bumps [serde_bytes](https://github.com/serde-rs/bytes) from 0.11.3 to 0.11.4.
- [Release notes](https://github.com/serde-rs/bytes/releases)
- [Commits](https://github.com/serde-rs/bytes/compare/0.11.3...0.11.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-07 23:26:37 -07:00
f12c6c1ed1 BSD compat for 9493de4 (#9922)
automerge
2020-05-07 16:38:33 -07:00
2ac50177a6 Include account.owner into account hash (#9917)
automerge
2020-05-07 13:01:11 -07:00
3757754c89 Bump signal-hook from 0.1.13 to 0.1.14 (#9913)
Bumps [signal-hook](https://github.com/vorner/signal-hook) from 0.1.13 to 0.1.14.
- [Release notes](https://github.com/vorner/signal-hook/releases)
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vorner/signal-hook/compare/v0.1.13...v0.1.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-05-07 08:33:58 -07:00
754c65c066 Refactor RPC subscriptions account handling (#9888)
* Switch subscriptions to use commitment instead of confirmations

* Add bank method to return account and last-modified slot

* Add last_modified_slot to subscription data and use to filter account subscriptions

* Update tests to non-zero last_notified_slot

* Add accounts subscriptions to test; fails at higher tx load

* Pass BankForks to RpcSubscriptions

* Use BankForks on add_account_subscription to properly initialize last_notified_slot

* Bundle subscriptions

* Check for non-equality

* Use commitment to initialize last_notified_slot; revert context.slot chage
2020-05-07 00:23:06 -06:00
f6e26f6c8c Add using OutputFormat enum to --sign-only transactions (#9650)
* Add using OutputFormat enum to --sign-only commands

* Renaming

* Code formating

* Appease clippy

* Add returning json string to pay command for tests

* Code refactoring

* Appease clippy

* Rebase and dedupe signature prints

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-05-06 22:21:48 -06:00
d08d9322d2 Limit performance testcases to 40k TPS client (#9906) 2020-05-06 21:36:13 -06:00
65a52a4145 Cli: Update OutputFormat method to return a String to restore consistency (#9904)
* Update OutputFormat method to return a String to restore consistency

* Remove process_show_account special case
2020-05-06 20:27:15 -06:00
d5c889d6b0 Re-enable gpu sigverify (#9870)
Add sigverify fuzz and scalar test
2020-05-06 15:44:55 -07:00
445e6668c2 Fix (#9896)
Co-authored-by: Carl <carl@solana.com>
2020-05-06 11:44:49 -07:00
766062b2cc Correct method name 2020-05-06 11:27:55 -07:00
068666b0e3 Bump cbindgen from 0.14.1 to 0.14.2 (#9900)
automerge
2020-05-06 09:07:57 -07:00
09ae61651a Eliminate BankForksInfo (#9887) 2020-05-06 08:24:59 -07:00
e951f8d0ed Bump libloading from 0.6.1 to 0.6.2 (#9895)
* Bump libloading from 0.6.1 to 0.6.2

Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/nagisa/rust_libloading/releases)
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.6.1...0.6.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-06 08:19:39 -07:00
e078ba1dde Display transaction fee in SOL (#9892)
automerge
2020-05-05 22:10:41 -07:00
16ddd001f6 Gossip no longer pushes/pulls from nodes with a different shred version (#9868) 2020-05-05 20:15:19 -07:00
72312ad615 Avoid holding the entire rooted path while loading bank forks (#9885) 2020-05-05 19:45:41 -07:00
3442f36f8a Repair alternate versions of dead slots (#9805)
Co-authored-by: Carl <carl@solana.com>
2020-05-05 14:07:21 -07:00
b2672fd623 Cli: add cluster-date subcommand, and make block-time slot optional (#9878)
* Add CliBlockTime struct

* Add cli cluster-date subcommand

* Make slot param optional; also jsonify

* Make prints prettier
2020-05-05 09:42:03 -06:00
16af67d5e1 Focus bench on squash and fix log errors (#9759)
* Focus bench on squash

Squash performance does not depend on adding a small number accounts. It mainly depends on total number of accounts that need to be hashed during freeze operation. New bank means a clone of accounts db, so we don't get previous errors in log.

* Fix fmt and add slot counter
2020-05-05 08:33:41 -07:00
627bc7e3a9 Rpc: Filter blockstore data by cluster-confirmed root (#9873)
automerge
2020-05-04 18:39:27 -07:00
f5b0d13f08 Rpc: add getLargestAccounts endpoint (#9869)
automerge
2020-05-04 16:46:10 -07:00
3aedb81d48 Avoid panic caused by converting non-positive / non-normal floating points values to duration (#9867) 2020-05-04 13:08:27 -07:00
f8ad3aca25 Speed up setting lockups (#9849)
* De-dup sending messages

* Add --no-wait option for setting lockups

* Don't set lockups that are already set

* Extend adjacent lockups
2020-05-04 13:05:04 -06:00
a8394317c7 Wait for at least one confirmation when uploading program data (#9850)
automerge
2020-05-02 20:11:50 -07:00
ffbbdd46e8 Add clap.rs default for --commitment (#9859) 2020-05-02 13:06:35 -07:00
f37f83fd12 Fuzzer test and fixes (#9853) 2020-05-02 08:07:52 -07:00
de04563f18 Watchtower can now emit a notifiation on all non-vote transactions (#9845) 2020-05-01 17:48:22 -07:00
894549f002 Put empty accounts in the accounts list on load (#9840)
Indexing into accounts array does not match account_keys otherwise.
Also enforce program accounts not at index 0
Enforce at least 1 Read-write signing fee-payer account.
2020-05-01 17:23:33 -07:00
fc46a0d441 Reenable move lock files (#9844)
automerge
2020-05-01 17:12:51 -07:00
6eb50450ec Reenable move (#9841)
automerge
2020-05-01 12:51:29 -07:00
79a6b4b596 Add delay to keep RPC traffic down on error 2020-05-01 10:32:46 -07:00
db8011f4f3 Enable multiple lockup fields to be set at once (#9831)
automerge
2020-04-30 22:17:23 -07:00
8dfe0affd4 Add incinerator sysvar (#9815) 2020-04-30 22:04:08 -07:00
450f1d2867 Add set-lockup to solana-stake-accounts (#9827)
* Add a command to set lockups or authorize a new custodian on derived stake accounts

* Thanks clippy
2020-04-30 17:56:37 -06:00
7678af6300 Cleanup BPF helper symbols (#9804) 2020-04-30 11:29:11 -07:00
217931479b Bump Ledger Beta app version (#9822)
automerge
2020-04-30 11:15:09 -07:00
e5bad7594f Clarify Ledger security implications (#9820)
* Clarify Ledger security implications

* Remove trailing whitespace
2020-04-30 12:14:51 -06:00
de9d8cd849 Rename BPF helper to syscall (#9819)
automerge
2020-04-30 01:43:11 -07:00
6deaf649ef Add commitment Root variant, and add fleshed out --commitment arg to Cli (#9806)
automerge
2020-04-29 21:55:33 -07:00
a91236012d Pass around --max-genesis-archive-unpacked-size (#9161)
automerge
2020-04-29 18:53:34 -07:00
a0514eb2ae thiserror, docs, remove general Failure case (#9741)
automerge
2020-04-29 18:12:51 -07:00
230df0ec0c Upgrade to Rust 1.43.0 (#9754) 2020-04-29 18:02:05 -07:00
2f08b12753 Rpc Client: Prevent error out on get_num_blocks_since_signature_confirmation (#9792)
automerge
2020-04-29 13:12:38 -07:00
efb4988d10 Rpc: remove unwraps (#9793)
automerge
2020-04-29 12:06:09 -07:00
6ed29b3653 Don't divide by zero 2020-04-29 11:04:52 -07:00
1018807db9 Bump Rust-BPF version to be interoperable with latest Rust (#9783)
automerge
2020-04-28 23:47:59 -07:00
0954ea19e8 catchup now estimates the time remaining (#9782)
automerge
2020-04-28 22:32:12 -07:00
b26c07b788 Fix BPF tool caching (#9781)
automerge
2020-04-28 21:06:04 -07:00
eb24f3df84 Update dalek version 2020-04-28 21:02:47 -06:00
3d40ca86b0 Disable Move/Libra components 2020-04-28 21:02:47 -06:00
d836dfff14 Fix bpf unit test linkage (#9780)
automerge
2020-04-28 19:41:08 -07:00
a4fe11fad2 Remove old logging enabler artifacts (#9777)
automerge
2020-04-28 15:56:51 -07:00
9d91cca73c Remove commented code 2020-04-28 15:47:41 -06:00
0a16d09e1f typo (#9776)
automerge
2020-04-28 14:40:10 -07:00
068f12fd6f Add Cross-program invocations (#9582) 2020-04-28 14:33:56 -07:00
063f616a19 Don't --use-move 2020-04-28 12:47:31 -07:00
87827b2330 Reorder steps by relative priority for when there aren't enough agents 2020-04-28 12:44:55 -07:00
f5aaf7ff28 Disable move more 2020-04-28 12:39:36 -07:00
6e42989309 Report duration of last alarm in the All Clear message (#9766)
automerge
2020-04-28 10:48:16 -07:00
d67ad70443 Revert "Bump console from 0.10.1 to 0.11.2 (#9763)"
This reverts commit 2de999fb61.
2020-04-28 10:43:18 -07:00
655e3bc418 Rpc: Use cluster largest_confirmed_root as commitment max (#9750)
automerge
2020-04-28 10:20:43 -07:00
659e87703b Bump generic-array from 0.13.2 to 0.14.1 (#9446)
* Bump generic-array from 0.13.2 to 0.14.1

Bumps [generic-array](https://github.com/fizyk20/generic-array) from 0.13.2 to 0.14.1.
- [Release notes](https://github.com/fizyk20/generic-array/releases)
- [Changelog](https://github.com/fizyk20/generic-array/blob/master/CHANGELOG.md)
- [Commits](https://github.com/fizyk20/generic-array/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

* Optional generic-array

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Jack May <jack@solana.com>
2020-04-28 09:43:48 -07:00
2de999fb61 Bump console from 0.10.1 to 0.11.2 (#9763)
Bumps [console](https://github.com/mitsuhiko/console) from 0.10.1 to 0.11.2.
- [Release notes](https://github.com/mitsuhiko/console/releases)
- [Commits](https://github.com/mitsuhiko/console/compare/0.10.1...0.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-28 09:36:07 -07:00
a12428a5b8 Use Blockstore lowest_slot to start root iterator (#9738) 2020-04-28 10:22:10 -06:00
3d8fc8a4a8 Enable cargo audit for all Cargo.lock (#9751)
* Enable cargo audit for all Cargo.lock

* Update http from 0.1.19 to 0.1.21

* Update bumpalo from 3.2.0 to 3.2.1
2020-04-28 17:43:47 +09:00
ef7196cec2 Relax update preciseness (#9758)
automerge
2020-04-28 01:40:25 -07:00
a61904b2dc Set HOME correctly (#9757)
automerge
2020-04-28 01:18:52 -07:00
aac580686f fix test compilation from add_static_program change (#9755) 2020-04-27 23:37:08 -07:00
efad193180 Make default programs static (#9717) 2020-04-27 21:05:12 -07:00
193dbb1794 sanitize lowest slots (#9747) 2020-04-27 20:22:30 -07:00
c11abf88b7 Clean up use to keep rust 1.43.0 from complaining (#9740) 2020-04-27 16:54:11 -07:00
2f705b5b55 Docs: Fix linkcheck errors (#9743)
automerge
2020-04-27 14:51:53 -07:00
839ff51b9a Fix build 2020-04-27 12:26:23 -07:00
8ef097bf6f Input values are not sanitized after they are deserialized, making it far too easy for Leo to earn SOL (#9706)
* sanitize gossip protocol messages
* sanitize transactions
* crds protocol sanitize
2020-04-27 11:06:00 -07:00
c372a39dd3 Bump dialoguer from 0.5.0 to 0.5.1 (#9725)
Bumps [dialoguer](https://github.com/mitsuhiko/dialoguer) from 0.5.0 to 0.5.1.
- [Release notes](https://github.com/mitsuhiko/dialoguer/releases)
- [Commits](https://github.com/mitsuhiko/dialoguer/compare/0.5.0...0.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-27 09:57:13 -07:00
c5a7df9221 Bump console from 0.10.0 to 0.10.1 (#9726)
Bumps [console](https://github.com/mitsuhiko/console) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/mitsuhiko/console/releases)
- [Commits](https://github.com/mitsuhiko/console/compare/0.10.0...0.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-27 09:16:24 -06:00
f71a23a72a Fix broken doc link to anatomy of transaction (#9728)
automerge
2020-04-27 00:58:27 -07:00
41eba7d1c7 Strictly match against package names (#9727)
automerge
2020-04-26 20:56:00 -07:00
9918539229 Introduce type alias Ancestors (#9699)
* Introduce type alias AncestorList

* Rename AncestorList => Ancestors
2020-04-27 11:07:03 +09:00
e907c0e650 Filter program ids to store (#9721)
automerge
2020-04-26 00:11:37 -07:00
d3e3f51330 Ignore log tests due to concurrency conflicts (#9719) 2020-04-25 22:38:59 -07:00
c9d6c39c31 Fix up test 2020-04-25 09:33:44 -07:00
05acd4b29f Cargo check all targets (#9718)
automerge
2020-04-25 05:14:37 -07:00
a7f33b5014 Cache banks in BankForks until optional largest_confirmed_root (#9678)
automerge
2020-04-24 15:49:57 -07:00
d7f37a703e Bump jsonrpc-derive from 14.0.5 to 14.1.0 (#9702)
Bumps [jsonrpc-derive](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.1.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-derive-v14.0.5...v14.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-24 15:24:18 -07:00
c92f95e0b8 Bump jsonrpc-ws-server from 14.0.6 to 14.1.0 (#9701)
Bumps [jsonrpc-ws-server](https://github.com/paritytech/jsonrpc) from 14.0.6 to 14.1.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/ipc-14.0.6...v14.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-24 15:24:07 -07:00
fa20963b93 Revert shred fs (#9712)
* Revert "Untar is called for shred archives that do not exist. (#9565)"

This reverts commit 729cb5eec6.

* Revert "Dont insert shred payload into rocksdb (#9366)"

This reverts commit 5ed39de8c5.
2020-04-24 15:04:23 -07:00
50f1ec0374 Add support for log rotation, sending SIGUSR1 will cause the log file to be re-opened (#9713) 2020-04-24 14:26:53 -07:00
76b1c2baf0 One less alloc per transaction (#9705)
* One less alloc per transaction

* Fix benches

* Fix compiler warnings in bench build

* Fix move build

* Fix bench
2020-04-24 13:03:46 -06:00
767a0f9384 Fix comment in serve_repair (#9703)
automerge
2020-04-24 10:00:23 -07:00
d44e0b7cd8 Support ad-hoc genesis args in run.sh (#9697)
automerge
2020-04-23 22:48:53 -07:00
3670d3fd7a Add missing slash 2020-04-23 21:37:25 -07:00
cb2efd530f Update testnet expected shred version 2020-04-23 20:36:52 -07:00
79829c98db Fix vote listener passing bad transactions (#9694) 2020-04-23 17:04:09 -07:00
d2cef8ed9b Bump num_cpus from 1.12.0 to 1.13.0 (#9682)
* Bump num_cpus from 1.12.0 to 1.13.0

Bumps [num_cpus](https://github.com/seanmonstar/num_cpus) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases)
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.12.0...v1.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* [auto-commit] Update all Cargo lock files

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-04-23 13:08:06 -07:00
17a8b0f783 Bump jsonrpc-core-client from 14.0.5 to 14.1.0 (#9683)
Bumps [jsonrpc-core-client](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.1.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-core-client-v14.0.5...v14.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-23 13:07:50 -07:00
3acfe42622 Exit cleanly on panic! so the process don't limp along in a half-dead state (#9690) 2020-04-23 12:05:13 -07:00
d1cbccd9ba solana-dos can now DoS gossip nodes (#9652)
automerge
2020-04-23 11:46:12 -07:00
504160b11f Update to rocksdb 0.14 and set max wal size (#9668) 2020-04-23 08:38:09 -07:00
b21fd27360 Sync all Cargo.locks with num_cpus:1.12.0 (#9685)
automerge
2020-04-23 05:13:46 -07:00
8df79a3559 Remove stray 'v' (#9679) 2020-04-22 23:26:37 -07:00
ecb343c23b reduce errors (#9669)
Co-authored-by: Anatoly Yakovenko <anatoly@solana.com>
2020-04-22 19:46:06 -07:00
7e48e5859d Delete dead code (#9670)
automerge
2020-04-22 18:17:23 -07:00
57a25de910 Remove validator-info publish from net scripts (#9673)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-04-22 18:04:22 -06:00
24354ccd6a Clean up wallet URL paths (#9667)
automerge
2020-04-22 16:48:21 -07:00
71f7a7243b Add custodian option to withdraw-stake command (#9662)
automerge
2020-04-22 15:00:18 -07:00
17e7667da4 Serialize test (#9655) 2020-04-22 14:53:06 -07:00
5d2f488004 Add getLowestNonpurgedBlock rpc; use blockstore api in getConfirmedBlocks (#9656)
automerge
2020-04-22 13:33:06 -07:00
ab4bdd59db Extend snapshot interval in multinode demo (#9657)
automerge
2020-04-22 12:25:15 -07:00
d5abff82e0 Add largest_confirmed_root to BlockCommitmentCache (#9640)
* Add largest_confirmed_root to BlockCommitmentCache

* clippy

* Add blockstore to BlockCommitmentCache to check root

* Add rooted_stake helper fn and test

* Nodes that are behind should correctly id confirmed roots

* Simplify rooted_stake collector
2020-04-22 12:22:09 -06:00
611d2fa75d Add single region TPS report testcases (#9609)
automerge
2020-04-22 11:05:05 -07:00
89b30b4853 Ignore test_helper_sol_log due to solana_logger concurency issue (#9654) 2020-04-22 10:03:41 -07:00
9b71573965 Align ci/publish-docs and ci/test-checks doc builds (#9653)
* Align ci/publish-docs and ci/test-checks doc builds

* Fix links
2020-04-22 09:51:01 -07:00
77c3a1f372 Don't attempt to rebase or move empty accounts (#9651)
automerge
2020-04-22 09:45:44 -07:00
08e73e5366 Bump jsonrpc-http-server from 14.0.6 to 14.1.0 (#9628)
automerge
2020-04-22 09:21:05 -07:00
2e8349196e Custom epochslots debug (#9647) 2020-04-22 08:55:08 -07:00
2a935ec15f Bump jsonrpc-pubsub from 14.0.6 to 14.1.0 (#9649)
Bumps [jsonrpc-pubsub](https://github.com/paritytech/jsonrpc) from 14.0.6 to 14.1.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/ipc-14.0.6...v14.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-22 07:49:35 -07:00
7bf1720a76 Handle no hit correctly... (#9648)
automerge
2020-04-22 01:23:33 -07:00
ba58589656 Relax setting withdraw authority during lockup (#9644)
automerge
2020-04-21 21:05:49 -07:00
5b8d963ee2 Clean up TdS/validator docs (#9638) 2020-04-21 16:59:09 -07:00
45ff1f2379 dos: Tidy up clap argument handling, and adapt to newer solana-dos arguments (#9633)
* Tidy up clap argument handling

* Adapt to newer solana-dos arguments
2020-04-21 16:58:30 -07:00
0d24e758b2 Add docs for installing the beta Ledger app (#9641) 2020-04-21 17:36:37 -06:00
cbc7b3b0b7 Cleanup CLI help message (#9632)
automerge
2020-04-21 16:09:34 -07:00
111a86f3ec Added no superminority and isolated node test cases (#9306)
Co-authored-by: Carl <carl@solana.com>
2020-04-21 15:35:48 -07:00
bab3502260 Push down cluster_info lock (#9594)
* Push down cluster_info lock

* Rework budget decrement

Co-authored-by: Carl <carl@solana.com>
2020-04-21 12:54:45 -07:00
ad186b8652 Flag test_tvu_exit as serial to hopefully reduce CI flakiness (#9509) 2020-04-21 12:54:16 -07:00
3023691487 RPC: Allow single slot address history queries (#9630) 2020-04-22 01:08:06 +08:00
92afe9020f Document potential null responses in RPC API docs (#9629) 2020-04-22 01:07:57 +08:00
7d6cdf83dc [auto-commit] Update all Cargo lock files 2020-04-21 08:07:00 -07:00
64e5684d45 Bump bs58 from 0.3.0 to 0.3.1
Bumps [bs58](https://github.com/mycorrhiza/bs58-rs) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/mycorrhiza/bs58-rs/releases)
- [Commits](https://github.com/mycorrhiza/bs58-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-21 08:07:00 -07:00
4d97d3bdb1 Cleanup move (#9622)
automerge
2020-04-20 23:37:54 -07:00
18cba86f77 Wait for supermajority of cluster to have rooted a transaction to consider it finalized (#9618)
* Add rooted stake to BlockCommitment

* Use rooted stake to include cluster check
2020-04-20 23:25:49 -06:00
914b022663 cli: Add transaction-history (#9614)
automerge
2020-04-20 22:01:09 -07:00
6e908a1be8 Nit: More informative error message (#9616) 2020-04-20 21:35:22 -07:00
5402434218 Explicitly specificy old version for cargo update (#9621) 2020-04-21 12:44:04 +09:00
6793c10860 Update Cargo.lock files (#9619) 2020-04-21 10:49:06 +09:00
c856d8bdbd Backpropagate Cargo.lock updates to all lock files (#9180)
* Experiment to backpropagate Cargo.lock updates to all lock files

* Move most of dependabot-specific code to its own file

* Various cleanups

* Fine tune..

* Clean up shells and stop obscure API...
2020-04-21 10:07:29 +09:00
a6ad660e5e Merge stake::withdraw instructions (#9617) 2020-04-20 18:16:50 -06:00
b1a0abc7a6 Bump libloading to v0.6.1 (#9615)
automerge
2020-04-20 16:46:06 -07:00
3fbe7f0bb3 Fixup scripts to set up a new CI node (#9348)
* Clean up node setup scripts for new CI boxes

* Move files under ci directory

* Set CUDA env var to setup cuda drivers

* Fixup and add README

* shellcheck

* Apply review feedback, rename dir and setup files

Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-04-20 17:43:13 -06:00
41fec5bd5b Handle outdated and current ledger-solana-apps (#9605)
* Add version check, handling for outdated+current ledger-solana-apps

* Add derivation-path prefix
2020-04-20 14:57:37 -06:00
44cced3ffc Add decode-transaction 2020-04-20 12:14:30 -07:00
498d025bd3 Update solana-user-authorized_keys.sh 2020-04-20 09:52:33 -06:00
8a69ea971f test 2020-04-20 08:44:39 -07:00
b1ca74ed30 Bump regex from 1.3.6 to 1.3.7
Bumps [regex](https://github.com/rust-lang/regex) from 1.3.6 to 1.3.7.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.3.6...regex-1.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-20 08:02:22 -07:00
6d941c82fd Update solana-user-authorized_keys.sh 2020-04-20 07:55:16 -06:00
77fb4230d6 Calculate distance between u64 without overflow (#9592)
* fix overflow

* fixed num_live_peers overflow
2020-04-19 23:05:26 -07:00
a5419fe79e Error for invalid shred. (#9588) 2020-04-19 21:15:09 -07:00
1607891b29 log proper slot (#9576)
Co-authored-by: Carl <carl@solana.com>
2020-04-19 14:24:45 -07:00
75b25e33f6 Adjust dashboard time range 2020-04-19 09:24:42 -07:00
d08517db8c Nit picks (#9580) 2020-04-18 22:39:08 -07:00
65a9658b13 Budget for gossip traffic (#9550) 2020-04-18 22:11:17 -07:00
3205361163 Fix local-cluster test - archiver should wait for itself + 1 validator (#9577) 2020-04-18 20:00:02 -07:00
58887c591b Add and update tests (#9566) 2020-04-18 17:04:13 -07:00
657fbfbefa Proposal for deterministic program generated Pubkey's that can be used only by programs to create signatures in process_instruction. (#8155)
* program keys

* cleanup

* update

* missing SUMMARY

* review comments

* fixed @jackmay comment

* update to take a user base address

* rename
2020-04-18 16:51:20 -07:00
36bf7ad694 Update link 2020-04-18 15:11:55 -07:00
679e7863cb Tame wallet manager better (#9567)
automerge
2020-04-18 11:54:21 -07:00
a7aa7e172b validator: Consider the activated stake of this node to be online again (#9573)
automerge
2020-04-18 10:16:19 -07:00
729cb5eec6 Untar is called for shred archives that do not exist. (#9565)
automerge
2020-04-18 08:34:55 -07:00
addbdcb660 Remove wait_for_majority 2020-04-18 08:23:00 -07:00
f142451a33 Reduce metrics log output 2020-04-17 23:38:14 -07:00
124287a0ea Add ramp-tps 2020-04-17 22:29:35 -07:00
9da366c193 Remove old stuff 2020-04-17 20:38:29 -07:00
cb0a1a94a7 Bump jsonrpc-core from 14.0.5 to 14.1.0
Bumps [jsonrpc-core](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.1.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-17 20:06:15 -07:00
dbaebe101c Clean up metrics dashboard 2020-04-17 18:08:59 -07:00
8509dcb8a0 Report offline/wrong-shred nodes while waiting for a super majority in gossip 2020-04-17 13:32:19 -07:00
7b5cdf6adf Reduce ReceiveUpdates log spam 2020-04-17 13:32:19 -07:00
7207a91aa5 confirm --verbose now displays failed transactions 2020-04-17 13:17:38 -07:00
55ed52a71d Increase the number of JSON RPC service threads (#9551)
automerge
2020-04-17 12:37:33 -07:00
cd4927053e Format code 2020-04-17 11:39:03 -07:00
982e6c4916 Add after_help to watchtower --help command 2020-04-17 11:39:03 -07:00
b58338b066 Make rpc_subscriptions.rs tests serial (#9556)
automerge
2020-04-17 10:48:39 -07:00
a9c38fb0df Consider config in check_for_usb (#9555) 2020-04-17 11:37:13 -06:00
9bba27a3aa Update outdated lock files... (#9554) 2020-04-17 23:57:25 +09:00
e655cba5bd Make rpc tests serial (#9537) 2020-04-16 22:02:55 -07:00
bcfd379f32 Simplify EpochSlots update (#9545)
Co-authored-by: Carl <carl@solana.com>
2020-04-16 19:32:19 -07:00
47ae57610a Only build x86_64-unknown-linux-gnu on docs.rs 2020-04-16 19:06:17 -07:00
5ed39de8c5 Dont insert shred payload into rocksdb (#9366)
automerge
2020-04-16 18:20:55 -07:00
66abe45ea1 Decouple accounts hash calculation from snapshot hash (#9507) 2020-04-16 15:12:20 -07:00
425b4fe6dd Don't upload tarballs to buildkite to speed up build 2020-04-16 13:54:36 -07:00
93669ab1fc Write wallet key to explicit file 2020-04-16 13:34:19 -07:00
16b2d41dd6 Improve error message on solana-keygen new filesystem permission errors 2020-04-16 10:28:49 -07:00
30b3862770 Don't unwrap on session new 2020-04-16 08:25:45 -07:00
7e7cbec8a1 Passing -v/--verbose to solana confirm now displays the full transaction 2020-04-16 08:19:30 -07:00
4ac15e68cf Default to RUST_BACKTRACE=1 for more informative validator logs 2020-04-15 22:37:22 -07:00
a7ed33b552 Pacify shellcheck 2020-04-15 17:46:19 -07:00
9cc7265b05 Always run shellcheck 2020-04-15 17:46:19 -07:00
d567799d43 Use $rust_stable 2020-04-15 17:15:14 -07:00
530c542002 Rpc: Speed up getBlockTime (#9510)
* Add get-block-time metrics

* Add datapoints to blockstore rpc apis

* Tune timestamp_slot_range

* Refactor get_timestamp_slots

* Cargo.lock
2020-04-15 18:09:14 -06:00
7aa4d401f7 Fix broadcast metrics (#9461)
* Rework broadcast metrics to support multiple threads

* Update dashboards

Co-authored-by: Carl <carl@solana.com>
2020-04-15 15:22:16 -07:00
a8b8c2f438 Move slow compaction test to integration (#9506) 2020-04-15 11:54:03 -07:00
241a05fc52 Add native loader entry points (#9486) 2020-04-15 09:41:29 -07:00
40737e9efa Add health check URI 2020-04-15 09:06:24 -07:00
217828a849 Reduce accounts_db prints (#9469) 2020-04-15 09:05:54 -07:00
69f1e487b3 Reduce cluster-info metrics. (#9465) 2020-04-14 21:21:58 -07:00
2b2b2cac1f limit test jobs to 16 to prevent OOM (#9500) 2020-04-14 16:40:13 -07:00
ee72714c08 Fix race in multi_bind_in_range (#9493) 2020-04-14 13:34:41 -07:00
83a96c557d Ensure --dynamic-port-range is wide enough 2020-04-14 12:21:05 -07:00
892e425d87 Improve sys-tuner error message 2020-04-14 12:21:05 -07:00
5298e3872c Cli: enable json output (#9478)
automerge
2020-04-14 12:10:25 -07:00
c77ed82caa Use same max_age regardless of leader/not-leader (#9423)
automerge
2020-04-14 00:34:41 -07:00
2d0224b64e Switch reed-solomon-erasure from vendored to upstream (#9483) 2020-04-14 14:33:21 +09:00
68b099c277 Print signature as part of progress spinner (#9484)
automerge
2020-04-13 22:04:20 -07:00
283f3ff620 Fail coverage faster in CI 2020-04-13 21:10:09 -07:00
9a95257c40 Optimistic Confirmation Proposal (#9157)
* Add summary of one block conf

Co-authored-by: Carl <carl@solana.com>
2020-04-13 19:50:05 -07:00
bcfadd6085 Assume json_rpc_url can be upgrade to a websocket if no port is supplied 2020-04-13 19:42:13 -07:00
d4ea1ec6ad Unfold coverage test failures 2020-04-13 18:07:06 -07:00
a0f0e199b7 Bump libc from 0.2.68 to 0.2.69
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.68 to 0.2.69.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.68...0.2.69)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 17:30:02 -07:00
5a0c2a0c1d Rename UpdateNode to UpdateValidatorIdentity 2020-04-13 17:25:39 -07:00
ce027da236 Reorder CI jobs to allow for more concurrent PRs 2020-04-13 12:57:10 -07:00
37b048effb Improve address in use error message for RPC pubsub 2020-04-13 12:13:37 -07:00
92a5a51632 Update buildkite-tests.yml 2020-04-13 10:58:29 -07:00
230f014b9e Bump thiserror from 1.0.14 to 1.0.15
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.14 to 1.0.15.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.14...1.0.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 09:13:04 -07:00
3f33f4d3a9 Sort the output of solana validators by active stake (#9459)
automerge
2020-04-12 17:39:02 -07:00
47fc0a5cfa Bump parking_lot from 0.10.0 to 0.10.2
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.10.0 to 0.10.2.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Amanieu/parking_lot/compare/0.10.0...0.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-12 12:42:38 -07:00
c86b0d8a85 Remove "Credits Observed:" field from solana stake-account output 2020-04-12 12:42:18 -07:00
8cda974552 Fix flaky new_archiver_external_ip_test (#9457)
automerge
2020-04-12 11:49:34 -07:00
3f1399cb0d accounts subcommand now prints account balances in SOL instead of lamports 2020-04-12 10:09:59 -07:00
99655206c8 Calculate account refs fix (#9447) 2020-04-11 12:52:10 -07:00
3037eb8d4f Remove slot field, add test (#9444)
Co-authored-by: Carl <carl@solana.com>
2020-04-10 23:52:37 -07:00
31ebdbc77f Don't subject authorizing a new stake authority to lockup (#9434) 2020-04-10 17:21:24 -06:00
6e1ce5ab6c Safer cargo command (#9437) 2020-04-10 15:44:24 -07:00
aa8dfac313 Simplify vote simulation (#9435)
Co-authored-by: Carl <carl@solana.com>
2020-04-10 15:16:12 -07:00
c6da2ab0de Fix automation stake parser (#9403)
Co-authored-by: publish-docs.sh <maintainers@solana.com>
2020-04-10 15:42:38 -06:00
f0291dc5d3 Bump users from 0.9.1 to 0.10.0 (#9343)
automerge
2020-04-10 12:47:21 -07:00
994f8c325a Bump cbindgen from 0.14.0 to 0.14.1
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.14.0 to 0.14.1.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.14.0...v0.14.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-10 11:54:12 -07:00
ae5a6419d4 ReceiveUpdates spams the log, adjust the threshold higher (#9429) 2020-04-10 10:21:46 -07:00
85feca305b Avoid port conflict in new_with_external_ip_test_gossip 2020-04-09 20:27:54 -07:00
7b71a331c6 clippy 2020-04-09 20:27:54 -07:00
032127b591 Search for ports sequentially instead of at random for more predictable port selection 2020-04-09 20:27:54 -07:00
91159ea8e3 Rpc: Add getConfirmedSignaturesForAddress (#9407)
automerge
2020-04-09 20:21:31 -07:00
d5a9ee97f2 Add --allow-dead-slots argument to slot/print/json commands (#9408)
automerge
2020-04-09 20:10:51 -07:00
900933bbcc Reduce rpc test code (#9413)
automerge
2020-04-09 18:05:56 -07:00
aeddd8c95a Use consistent vote account filename (#9414)
automerge
2020-04-09 17:53:56 -07:00
be77bdef12 Allow lower shred count (#9410) 2020-04-09 16:36:44 -07:00
f3afe5c99c Remove dead code (#9404)
automerge
2020-04-09 13:09:59 -07:00
aab9d9229c Cargo.lock 2020-04-09 12:28:59 -07:00
a714b8052d Update README.md 2020-04-09 11:06:09 -07:00
e873c93be3 Update README.md 2020-04-09 10:58:42 -07:00
cb5c337540 Update README.md 2020-04-09 10:56:17 -07:00
4d14372d5e Update README.md 2020-04-09 10:56:01 -07:00
4b8d1abb5d Update README.md 2020-04-09 10:55:00 -07:00
d63ada489a Update README.md 2020-04-09 10:51:16 -07:00
d4e284b7c5 Remove Trust Wallet Beta install instructions (#9396)
automerge
2020-04-09 08:48:07 -07:00
21cb56d808 Fix partition setup (#9386)
automerge
2020-04-09 01:57:18 -07:00
e1aa247548 Rpc: Add getConfirmedTransaction (#9381)
* Add blockstore method to return a complete transaction by signature

* Plumb getConfirmedTransaction rpc

* Add doc
2020-04-09 00:57:30 -06:00
638108e9d5 Add --no-wait arg to transfer (#9388)
automerge
2020-04-08 22:46:19 -07:00
f655b3f0fd Fix lowest_cleanup_slot check in Blockstore (#9382)
automerge
2020-04-08 18:47:16 -07:00
6a2be8b0ca Moar vm.max_map_count 2020-04-08 18:14:27 -07:00
ad0482be73 Revert "Add native loader entry points (#9275)" Breaks genesis_config abi (#9377)
This reverts commit ed86d8d1fc.
2020-04-08 14:36:18 -07:00
4522e85ac4 Add Metrics/Dashboards tracking block production (#9342)
* Add metric tracking blocks/dropped blocks

Co-authored-by: Carl <carl@solana.com>
2020-04-08 14:35:24 -07:00
36e73cada4 Add blockstore address-to-signature index (#9367)
automerge
2020-04-08 12:50:39 -07:00
8e5ac1338f Update baseline version 2020-04-08 12:14:18 -07:00
cb6cf189b4 Improve ledger-tool/accounts for easier debuging (#9370)
automerge
2020-04-08 10:25:46 -07:00
8ed05c27f2 Improve ledger-tool help (#9365) 2020-04-07 19:21:31 -07:00
9883ca8549 Add 1 SOL grace, to allow for a complaint system account to fund a reasonable number of transactions. (#9359)
automerge
2020-04-07 13:43:43 -07:00
dc91698b3a Cache solana-perf.tgz to speed up CI (#9360)
automerge
2020-04-07 13:13:45 -07:00
b4e00275b2 Cache downloads to speed up CI 2020-04-06 22:53:19 -07:00
03978ac5a5 Add support for monitoring system account balances (#9345)
automerge
2020-04-06 21:41:53 -07:00
33a68ec9c3 Fix docs (#9349)
automerge
2020-04-06 20:17:20 -07:00
c78b658a92 Clean up paper/file system wallet docs (#9340)
* Add filesystem wallet page

* Move validator paper wallet instructions to validator page

* Remove paper wallet staking section

* Add steps for multiple fs and paper wallets

* Add keypair convention page and better multi-wallet example
2020-04-06 19:32:02 -06:00
6b988155e1 RpcClient: include signature check in send_transaction, bump send retries in get_num_blocks_since_signature_confirmation (#9341)
* Bump rpc send retries

* Add signature check to send_transaction and update mocks to test
2020-04-06 19:27:37 -06:00
4677cdb4c2 Optimize broadcast cluster_info critical section (#9327) 2020-04-06 17:36:22 -07:00
96c23110ae Make TestValidator mint_lamports configurable (#9337)
automerge
2020-04-06 16:20:55 -07:00
a4e2ee99d3 Add Rust client proposal (#9246)
* Add Rust client proposal

* Apply review feedback
2020-04-06 16:38:03 -06:00
9a9fa5594d Add instructions for multiple trust wallet addresses (#9335)
automerge
2020-04-06 15:00:06 -07:00
1c73f3e100 Default to mainnet-beta (#9326) 2020-04-06 15:47:37 -06:00
75234e28e5 Update choose cluster docs (#9328)
automerge
2020-04-06 12:16:32 -07:00
b20edaca26 Allow v1.0 backports from v1.1 2020-04-06 11:26:39 -07:00
62cb2cd13c Bump serde_json from 1.0.49 to 1.0.51
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.49 to 1.0.51.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.49...v1.0.51)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 08:40:55 -07:00
bfea3572ea Fix solana-dos arguments 2020-04-06 08:28:45 -07:00
acf64f8476 Update getSignatureStatuses to return historical statuses (#9314)
automerge
2020-04-06 03:04:54 -07:00
b28ec430e4 Introduce background stale AppendVec shrink mechanism (#9219)
* Introduce background AppendVec shrink mechanism

* Support ledger tool

* Clean up

* save

* save

* Fix CI

* More clean up

* Add tests

* Clean up yet more

* Use account.hash...

* Fix typo....

* Add comment

* Rename accounts_cleanup_service
2020-04-06 17:30:23 +09:00
7b68628e6c Remove write lock (#9311)
* Remove write lock

Co-authored-by: Carl <carl@solana.com>
2020-04-05 15:18:45 -07:00
b584174d67 Deprecate confirmTransaction, getSignatureStatus, and getSignatureConfirmation (#9298)
* Deprecate `confirmTransaction`, `getSignatureStatus`, etc

* Rename get_signature_statuses to get_signature_statuses_with_commitment

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-04-05 14:31:24 +08:00
49e2cc6593 Rework TransactionStatus index in blockstore (#9281)
automerge
2020-04-04 20:24:06 -07:00
36ab7e0600 Remove h 2020-04-04 16:18:25 -07:00
ad0997e15f RPC: add err field to TransactionStatus, alongside the now deprecated status field (#9296)
automerge
2020-04-04 16:13:26 -07:00
8cdf406dd3 Bump serde from 1.0.105 to 1.0.106
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.105 to 1.0.106.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.105...v1.0.106)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-04 15:13:52 -07:00
2d618722e6 Bump cbindgen from 0.13.2 to 0.14.0
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.13.2 to 0.14.0.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.13.2...v0.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-04 15:13:43 -07:00
c0afbae940 Reduce bench-tps funding printing (#9290) 2020-04-04 08:21:28 -07:00
ed86d8d1fc Add native loader entry points (#9275) 2020-04-03 17:40:59 -07:00
c1441a2a8f Advance if no blocks are available in the given range 2020-04-03 14:59:04 -07:00
b557b3170e Add log before opening database 2020-04-03 14:55:06 -07:00
9493de4443 Add snapshot compression option (#9276) 2020-04-03 13:13:49 -07:00
175ffd9054 Update set-solana-release-tag.sh 2020-04-03 11:21:34 -06:00
66c78cb819 Apply suggestions from code review 2020-04-03 09:58:40 -07:00
962e41f9ca vote-authorize-voter no longer fails if the current authorized voter is not the fee payer 2020-04-03 09:58:40 -07:00
fd5f8a8046 Fix sed command for mac and linux (#9286) 2020-04-03 10:42:33 -06:00
d61191db40 fix bench warnings (#9277) 2020-04-02 21:56:38 -07:00
0139236464 ReplayStage fixes (#9271) (#9279)
automerge
2020-04-02 21:05:33 -07:00
c5b2db72a2 Add option to monitor catchup at max commitment 2020-04-02 19:05:33 -07:00
303a1207c1 Add --follow option to catchup command to allow for easy ongoing monitoring between two nodes 2020-04-02 19:05:33 -07:00
1078c86100 Streamer test is linux only, remove warnings on not-linux (#9274)
automerge
2020-04-02 18:02:49 -07:00
c67e9fabc4 Nit: ProgramError cleanup (#9273)
automerge
2020-04-02 17:46:51 -07:00
ad98f14fc1 Minor doc fixup 2020-04-02 15:59:49 -06:00
ec4745d174 Tame overeager wallet manager (#9262)
* Add helper fn to check for usb cli args

* Use helper fn to prevent wallet_manager connecting unnecessarily

* Review improvements
2020-04-02 15:47:17 -06:00
0e53939e00 Add windows instructions to CLI install docs (#9270) 2020-04-02 15:36:02 -06:00
8d1cd3ae5c Set checks timeout back to 20 minutes 2020-04-02 13:10:26 -06:00
18fe0f0c44 Add instructions for Trust Wallet Beta for Android (#9261)
automerge
2020-04-02 11:26:22 -07:00
3b89708653 Add ledger live screenshots and reduce duplicate instructions (#9258)
automerge
2020-04-02 10:17:40 -07:00
23bf7b8d63 Add epoch subcommand (#9249)
automerge
2020-04-01 20:42:28 -07:00
a8817fb973 Add some information about what an address can be for CLI commands (#9233) 2020-04-01 19:45:37 -07:00
8b14eb9020 Place AccountsHashes in same enum ordinal position as the v1.0 version (#9251)
automerge
2020-04-01 18:47:50 -07:00
25ee36bbba Undo breaking rpc removal of getSignatureConfirmation (#9245) 2020-04-01 17:56:18 -06:00
19693a85cd Do not trigger tests if only docs were modified (#9240) 2020-04-01 14:18:29 -06:00
c7ba1994ac Undo getSignatureStatus breaking change, add getSignatureStatuses (#9228)
automerge
2020-04-01 11:30:58 -07:00
9aab0b9388 More custom error rename (#9227)
automerge
2020-04-01 11:13:31 -07:00
492b7d5ef9 Add fee-payer option to docs (#9230)
automerge
2020-04-01 10:38:55 -07:00
352de7929b Add a support page for wallet docs (#9229)
automerge
2020-04-01 10:37:52 -07:00
9f5d3f0ee5 Bump socket2 from 0.3.11 to 0.3.12 (#9222)
Bumps [socket2](https://github.com/alexcrichton/socket2-rs) from 0.3.11 to 0.3.12.
- [Release notes](https://github.com/alexcrichton/socket2-rs/releases)
- [Commits](https://github.com/alexcrichton/socket2-rs/compare/0.3.11...0.3.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-04-01 09:33:22 -07:00
691a3c6087 Add single testcase to run entire TPS report (#9143) 2020-04-01 10:29:18 -06:00
268e04cb4a Rename CustomError to Custom (#9207) 2020-04-01 09:01:11 -07:00
7605f1f540 Fix repair dos (#9056) 2020-04-01 06:48:35 -07:00
b543aee24e Tune udp buffers and vmmap immediately (#9194) 2020-03-31 22:53:36 -07:00
a74a64084d Fix error with account hash list getting too big for gossip (#9197)
Nodes will stop publishing hashes on gossip and also
slow memory leak.
2020-03-31 21:39:48 -07:00
743b8cddf9 Clean up solana-stake-accounts (#9211)
* Resolve pubkey/keypair args in a separate module

* Rename CommandConfig to Args
2020-03-31 21:47:43 -06:00
74774dd44f Add program_error conversions (#9203) 2020-03-31 19:56:09 -07:00
a8d4b1c90a Nit: fmt (#9204)
automerge
2020-03-31 19:19:59 -07:00
3a6cdf02e5 Fix solana-stake-accounts rebase/move (#9199)
automerge
2020-03-31 19:07:00 -07:00
56667e17c9 Fix panic (#9195)
automerge
2020-03-31 18:33:46 -07:00
1e6b789bfa Improve BPF Loader reporting (#9202)
automerge
2020-03-31 18:18:44 -07:00
a61ddb6f61 max_ledger_slots -> max_ledger_shreds (#9198)
automerge
2020-03-31 17:21:19 -07:00
62e12e3af5 Remove unecessary exception and add a new one (#9200) 2020-03-31 15:58:30 -07:00
93be7370d9 Nit: print program error as hex (#9171) 2020-03-31 10:08:07 -07:00
130c0b484d Enforce an executable's rent exemption in the runtime (#9134) 2020-03-31 10:07:38 -07:00
974848310c Add more Ledger wallet documentation (#9182)
* Add a note for getting past the 'pending Ledger review' screen

* Add a note about zsh question marks
2020-03-31 10:56:06 -06:00
49494be653 Fix links (#9184)
automerge
2020-03-31 09:46:50 -07:00
0e2722c638 solana-validator now supports multiple --authorized-voter arguments (#9174)
* Use Epoch type

* Vote account's authorized voter is now supported without a validator restart
2020-03-31 08:23:42 -07:00
66946a4680 Check ClusterSlots for confirmation of block propagation (#9115) 2020-03-30 19:57:11 -07:00
24d887a38a Bump assert_cmd from 1.0.0 to 1.0.1 (#9172)
Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-30 20:42:07 -06:00
73e99cc513 Ledger cleanup fixes (#9131)
* Fix purging happening every slot when cleanup service is not started at slot 0
* Purge by shred count instead of slots since slots can have variable
number of shreds
2020-03-30 19:02:12 -07:00
e6db701c17 Install solana-stake-accounts (#9169)
automerge
2020-03-30 17:45:10 -07:00
50fa577af8 Use cluster confirmations in rpc and pubsub (#9138)
* Add runtime methods to simply get status and slot

* Add helper function to get slot confirmation_count from BlockCommitmentCache

* Return cluster confirmations in getSignatureStatus

* Remove use of invalid get_signature_confirmation_status

* Remove unused methods

* Update pubsub to use cluster confirmations

* Fix test_check_signature_subscribe failure

* Refactor confirmations to read commitment cache only once

* Review comments

* Use bank, root from BlockCommitmentCache

* Update docs

* Add metric for block-commitment aggregations

Co-authored-by: Justin Starry <justin@solana.com>
2020-03-30 17:53:25 -06:00
8636ef5e24 Add solana-stake-accounts CLI tool (#9164)
automerge
2020-03-30 15:04:46 -07:00
62040cef56 Store BlockCommitmentCache slot and root metadata (#9154)
automerge
2020-03-30 10:29:30 -07:00
8731b6279f Bump thiserror from 1.0.13 to 1.0.14 (#9151)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.13 to 1.0.14.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.13...1.0.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-29 15:33:11 -07:00
ae66c0e497 Add repair message support to dos tool (#9090) 2020-03-29 14:44:25 -07:00
c67703e7a3 Make repair metrics less chatty (#9094) 2020-03-29 14:43:58 -07:00
b1771b92ec Calculate ref counts earlier to prevent bad clean (#9147) 2020-03-29 14:42:34 -07:00
5f31444300 catchup now retries when the desired node is not yet online (#9148) 2020-03-29 09:40:53 -07:00
729cc4e04f Sanitize zero lamport accounts in append vecs (#9083) 2020-03-29 15:45:45 +09:00
2ed3e2160d Bump serde_json from 1.0.48 to 1.0.49 (#9139)
* Bump serde_json from 1.0.48 to 1.0.49

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.48 to 1.0.49.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.48...v1.0.49)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update serde_json in programs

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Justin Starry <justin@solana.com>
2020-03-28 12:19:40 -07:00
8bbf6e3f54 Fix race in RPC subscriptions test (#9142) 2020-03-29 01:58:51 +08:00
d7fa40087c Bump version to 1.2.0 2020-03-28 09:44:13 -07:00
3ae6e0b8ab Add solana-stake-monitor program (#9081) 2020-03-27 22:55:55 -07:00
4b7da6e60d Bump rBPF version to v0.1.25: Fix Windows build (#9136)
automerge
2020-03-27 19:07:58 -07:00
2863f8ec65 Use 1gb as genesis limit to fix bench-tps ledger from not starting (#9133)
automerge
2020-03-27 16:50:19 -07:00
e2491c6322 Prevent add/subtract from executable account (#9132) 2020-03-27 16:43:25 -07:00
4a8b1d9b2c RpcClient now returns Signatures instead of Strings (#9129) 2020-03-27 15:46:00 -07:00
74aed5cb58 Fix offline stake ops test script (#9130) 2020-03-27 12:20:32 -06:00
b130c298df Remove chatty 'setting snapshot root:' info log (#9122) 2020-03-27 10:24:59 -07:00
e5a6f8c2de fix links (#9125)
automerge
2020-03-27 10:21:34 -07:00
87e5f8acbf Add mdbook-linkcheck to docker (#9123)
automerge
2020-03-27 10:18:01 -07:00
c1a3b6ecc2 Add RPC subscription api for rooted slots (#9118)
automerge
2020-03-27 09:33:40 -07:00
c242d66130 Document transaction field in getConfirmedBlock responses (#9121)
automerge
2020-03-27 09:08:18 -07:00
864d212c64 solana account now displays the account's rent epoch (#9114) 2020-03-27 08:58:21 -07:00
a9564d207b Bump assert_cmd from 0.12.1 to 1.0.0 (#9104)
Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 0.12.1 to 1.0.0.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v0.12.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-27 09:57:01 -06:00
b82a9c832b Fix links in docs (#9119) 2020-03-27 09:36:55 -06:00
5d9298543f Exclude all executable accounts from rent collection (#9116)
* Whitelist executable accounts for rent exemption

* nudge
2020-03-27 23:28:18 +08:00
4e9ae61044 Add "transaction confirmations" term to docs (#9087)
* Add transaction confirmations term to docs

* feedback
2020-03-27 21:08:36 +08:00
d47262d233 Reduce transmit frequency (#9113)
Co-authored-by: Carl <carl@solana.com>
2020-03-26 23:33:28 -07:00
8fdcf9f968 Make colo.sh support Bash 5 (#9112) 2020-03-27 15:01:42 +09:00
c82d37f6c3 Fix broken gitbook links (#9107) 2020-03-26 21:10:09 -06:00
5a8658283a Add check for propagation of leader block before generating further blocks (#8758)
Co-authored-by: Carl <carl@solana.com>
2020-03-26 19:57:27 -07:00
4b97e58cba Consolidate signature-status rpcs (#9069)
* getSignatureStatus: return confirmations for non-rooted transactions

* Remove getNumConfirmations.. rpc

* Remove getSignatureConfirmation

* Review comments

* More review comments
2020-03-26 19:21:01 -06:00
48031651a0 Add docs for app wallets (#9098) 2020-03-26 19:09:39 -06:00
f3d556e3f9 Refactor VoteTracker (#9084)
* Refactor VoteTracker

Co-authored-by: Carl <carl@solana.com>
2020-03-26 17:55:17 -07:00
8d4cecdb77 Account data may not change once the executable bit is set (#9099)
automerge
2020-03-26 17:10:11 -07:00
39a622f66e Revert setting the default toolchain (#9093)
automerge
2020-03-26 14:21:22 -07:00
dae28b9cfe Bump rBPF to v0.1.24, update rBPF/BPF Loader error handling (#9089) 2020-03-26 14:00:26 -07:00
b7b4aa5d4d move rpc types from client to client-types crate (#9039)
* Separate client types into own crate, so ledger does not need it

Removes about 50 crates of dependency from ledger

* Drop Rpc name from transaction-status types
2020-03-26 13:29:30 -07:00
ed036b978d Accumulate blockstore metrics and submit every 2s (#9075) 2020-03-26 12:51:41 -07:00
284920433f Restructure wallet docs to prep for app wallet content (#9088)
automerge
2020-03-26 12:42:05 -07:00
30bed18b77 Install xargo using CI dictated cargo version if available (#9068) 2020-03-26 11:47:41 -07:00
6678dd10a5 Remove command-line install instructions of Solana's Ledger wallet app (#9085) 2020-03-26 10:37:48 -06:00
296d740f83 Remove contractions in intro doc (#9086) 2020-03-26 09:54:47 -06:00
b8fda9d730 Log how much data the ledger holds before processing it (#9079) 2020-03-25 21:41:50 -07:00
2623c71ed3 Use type aliases/resulting var names consistently (#9060) 2020-03-26 13:08:56 +09:00
e4472db33f Unflake rpc subscriptions test by reducing sub count (#9078)
automerge
2020-03-25 20:43:38 -07:00
076fef5e57 Update Cluster Slots to support multiple threads (#9071)
Co-authored-by: Carl <carl@solana.com>
2020-03-25 18:09:19 -07:00
40eba48109 Bump assert_cmd from 0.12.0 to 0.12.1 (#9074)
Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 0.12.0 to 0.12.1.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 17:38:13 -07:00
095c79e863 Bump regex from 1.3.5 to 1.3.6 (#9055)
Bumps [regex](https://github.com/rust-lang/regex) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.3.5...1.3.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-25 17:24:14 -07:00
959c1ea857 Cargo update bumpalo (#9067)
* Cargo update bumpalo

* Remove ignore warning
2020-03-25 18:11:08 -06:00
ef3af104ae Return appropriate error for invalid program account (#9047)
automerge
2020-03-25 13:23:05 -07:00
9dc69d9843 Store and compute node/stake state in EpochStakes struct (#8958)
* Store and compute needed bank state in EpochStakes struct
2020-03-25 12:19:15 -07:00
45348b2c83 Remove accounts unwrap (#9062)
automerge
2020-03-25 10:21:30 -07:00
c558db2a48 Fix xargo to version 0.3.19 to avoid unstable feature (#9065)
automerge
2020-03-25 08:43:36 -07:00
f987c18a7e Strictly validate the contents of snapshot/genesis (#8959)
automerge
2020-03-25 02:46:41 -07:00
5d3f43c10b Ignore RUSTSEC-2020-0006 for the moment (#9057)
automerge
2020-03-24 20:10:20 -07:00
216b01b224 Improve coverage.sh usability when used locally (#9054)
automerge
2020-03-24 13:47:16 -07:00
35dd52e9ba Remove SLP from grafana 2020-03-24 12:23:30 -07:00
b0c83921be Move streamer test to integration test (#9050)
Failing in the coverage build.
2020-03-24 11:39:36 -07:00
e744b15ad2 Bump thiserror from 1.0.12 to 1.0.13 (#9017)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.12 to 1.0.13.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.12...1.0.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-24 10:51:24 -07:00
1fd695d337 Use all cores (#8908) 2020-03-24 10:33:53 -07:00
8f38bc7dc0 Refactor how pubsub subscriptions are added (#9042) 2020-03-25 00:53:32 +08:00
7d6ea6c17e ledger-tool can now decode stake instructions (#9045)
automerge
2020-03-24 05:23:29 -07:00
56dc958116 Add get_confirmed_block_with_encoding() (#9046)
automerge
2020-03-24 05:05:38 -07:00
19dfb87b1f Fix timeout for subscriptions test (#9043)
automerge
2020-03-24 01:57:28 -07:00
a5287f56fc Remove , 2020-03-23 22:12:16 -07:00
eed8087d87 Respect confirmations param for signature subscription notifications (#9019)
automerge
2020-03-23 17:00:34 -07:00
4115d73b9a Remove Ledger-specific analysis of hardware wallets (#9028)
automerge
2020-03-23 14:05:38 -07:00
064b95c16a Fix link in gitbook (#9027)
automerge
2020-03-23 14:05:27 -07:00
70c167182a ledger tool now outputs transaction status information if available (#9024)
automerge
2020-03-23 12:49:21 -07:00
fee002382e Program address generator (#8995) 2020-03-23 12:38:56 -07:00
d75a470ffa Ledger processing speed tracking (#9005) 2020-03-23 12:19:11 -07:00
c530fbd22b Remove thread-priority crate which is not cross-platform (#9023) 2020-03-23 12:18:52 -07:00
1b8f9e75dd Update getSignatureStatus: support multiple signatures, include slot in each response item (#9022)
* Rename enable-rpc-get-confirmed-block

* Rename RpcTransactionStatus -> RpcTransactionStatusMeta

* Return simplified RpcTransactionStatus; Add support for multiple transactions

* Update docs

* typo
2020-03-23 11:25:39 -06:00
1a5b01676d Remove equal sign separators from CLI options (#9021)
automerge
2020-03-23 09:27:43 -07:00
4b397d15b3 Accounts cleanup service and perf improvements (#8799)
* Use atomic for ref count instead of taking rwlock

* Accounts cleanup service

* Review comments
2020-03-23 08:50:23 -07:00
4d2b83d01f Add option to disable rocks compaction (#9011) 2020-03-23 08:42:32 -07:00
87096f13d2 Update outdated solana-genesis cli help text (#9020)
automerge
2020-03-23 08:16:31 -07:00
a0ffcc61ae Add slot info to Bank::get_signature_confirmation_status (#9018) 2020-03-23 21:55:15 +08:00
4b4819cd07 Add slot context to rpc pubsub notifications (#9001)
automerge
2020-03-23 05:34:42 -07:00
ca791a0378 Ensure --identity is provided when --vote-account is provided (#9014)
automerge
2020-03-22 22:21:00 -07:00
b08f8d3103 Add stake-account to docs (#9010) 2020-03-22 12:20:24 -06:00
88ba8439fc Add frozen account support (#8989)
automerge
2020-03-22 11:10:04 -07:00
4dd0367136 Rwlock storage opt (#9006)
* Remove unecessary account paths rwlock

* Remove path rwlock in accounts_db and optimize storage critical section
2020-03-22 10:04:03 -07:00
ff2c183ac1 Add set-dead-slot command (#9008) 2020-03-21 21:43:33 -07:00
aa24181a53 Remove blockstream unix socket support. RPC or bust (#9004)
automerge
2020-03-21 20:17:11 -07:00
1f83c56e05 Add staking docs (#8988)
automerge
2020-03-21 19:50:09 -07:00
2592894958 CLI: Support setting both stake authorities at once (#8976)
automerge
2020-03-21 18:56:17 -07:00
85027caf42 Bump thiserror from 1.0.11 to 1.0.12 (#9000)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.11...1.0.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-21 14:52:25 -06:00
3ea556bc24 Drop storage lock (#8997) 2020-03-21 13:37:52 -07:00
ca4a22d4ba Distinguish account addresses from public keys (#8998) 2020-03-21 13:30:01 -06:00
18c1f0dfe9 Remove stub core/src/genesis_utils.rs (#8999) 2020-03-21 10:54:40 -07:00
734afee5e0 Bump cbindgen from 0.13.1 to 0.13.2 (#8996)
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.13.1 to 0.13.2.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.13.1...v0.13.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-20 21:51:28 -06:00
271e17547a Nit thiserror for pubkey (#8994)
automerge
2020-03-20 18:07:37 -07:00
e28368ff1b Move address creation with seed into pubkey (#8991) 2020-03-20 15:20:48 -07:00
1aab959d4e Revert "Move Install Solana doc into the Command-line Guide (#8982)" (#8992)
This reverts commit 5fa36bbab3.
2020-03-20 15:52:20 -06:00
bca769111f Dos all the things (#8914)
* Dos all the things

* Use solana-dos for gossip dos test
2020-03-20 12:55:38 -07:00
909321928c Shred fetch comment and debug message tweak (#8980)
automerge
2020-03-20 11:00:48 -07:00
8b0a7f6838 Update value names in docs (#8983)
automerge
2020-03-20 09:22:02 -07:00
5fa36bbab3 Move Install Solana doc into the Command-line Guide (#8982)
automerge
2020-03-20 09:19:18 -07:00
d65a7a3c30 Fix versioning script on MacOS (#8981)
automerge
2020-03-20 09:16:48 -07:00
453f5ce8f2 Shred filter (#8975)
Thread bank_forks into shred fetch
2020-03-20 07:49:48 -07:00
dc1db33ec9 Add Capabilities to Signal BroadcastStage to Retransmit (#8899) 2020-03-19 23:35:01 -07:00
c68e80c93b Improve CLI usage messages (#8972)
* Improve CLI usage messages

* stragglers

* Apply review feedback

Co-authored-by: Trent Nelson <trent@solana.com>
2020-03-19 21:43:11 -06:00
6b9a0935c1 Some Cli polish (#8966)
automerge
2020-03-19 12:03:36 -07:00
b84468ecd3 Cli: polish transaction progress bar (#8963)
automerge
2020-03-19 11:10:35 -07:00
ff4ba54553 CLI: Fix create-nonce-account with seed (#8929)
* CLI: Fix `create-nonce-account --seed ...`

* CLI: Add test another for `create-nonce-account --seed...`

Explicitly demonstrates a partner workflow with the following
requirements:
1) Nonce account address derived from an offline nonce
authority address
2) Fully online account creation
3) Account creation in a single signing session

* alphabetize
2020-03-19 10:36:53 -06:00
f78a90bce2 Vote InitializeAccount and UpdateNode instructions now need a signature from the validator identity (#8947)
automerge
2020-03-19 01:58:52 -07:00
24d871b529 Bump serde from 1.0.104 to 1.0.105 (#8954)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.104 to 1.0.105.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.104...v1.0.105)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 22:35:30 -07:00
e547f38589 Docs: Fix error during CLI usage build (#8956)
automerge
2020-03-18 22:24:42 -07:00
6fb16f9879 Bump flate2 from 1.0.13 to 1.0.14 (#8901)
Bumps [flate2](https://github.com/alexcrichton/flate2-rs) from 1.0.13 to 1.0.14.
- [Release notes](https://github.com/alexcrichton/flate2-rs/releases)
- [Commits](https://github.com/alexcrichton/flate2-rs/compare/1.0.13...1.0.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 21:37:41 -07:00
2dc50cff5b Bump bv from 0.11.0 to 0.11.1 (#8952)
automerge
2020-03-18 21:37:21 -07:00
98228c392e CLI: Add multi-session signing support (#8927)
* SDK: Add `NullSigner` implementation

* SDK: Split `Transaction::verify()` to gain access to results

* CLI: Minor refactor of --sign_only result parsing

* CLI: Enable paritial signing

Signers specified by pubkey, but without a matching --signer arg
supplied fall back to a `NullSigner` when --sign-only is in effect.
This allows their pubkey to be used for TX construction as usual,
but leaves their `sign_message()` a NOP. As such, with --sign-only
in effect, signing and verification must be done separately, with
the latter's per-signature results considered

* CLI: Surface/report missing/bad signers to user

* CLI: Suppress --sign-only JSON output

* nits

* Docs for multi-session offline signing
2020-03-18 20:49:38 -07:00
aeb7278b00 Delete broken link (#8950)
automerge
2020-03-18 17:49:21 -07:00
42d7609d54 Fix links for gitbook (#8948)
automerge
2020-03-18 16:45:15 -07:00
a70008cc5c Increase vmap count in sys-tuner (#8940) 2020-03-18 16:24:39 -07:00
306a5c849e Use into_iter() 2020-03-18 16:11:57 -07:00
bb92184085 Refactor distribute_rent_to_validators() for clarity 2020-03-18 16:11:57 -07:00
90c9462dd4 Automated test framework can run scripts on launched clusters. Add offline stake operations test case and script. (#8510)
automerge
2020-03-18 14:57:19 -07:00
21b287ef0b Add docs on wallets and generating keys (#8905)
* Add docs on wallets and generating keys

* Directory wallet -> FS wallet

* New section

* Add instructions for receiving tokens

* Add missing file

* Reorg

* Polish

* Polish

* Prefer solana-keygen

* Polish

* on -> in

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* wallets -> wallet

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* compare -> contrast

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* de-hyphenate

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* Update docs/src/cli/choose-a-wallet.md

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* typo

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* Update docs/src/cli/generate-keys.md

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* proof -> prove

Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>

* Apply review feedback

* Apply more review feedback

* More review feedback

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-03-18 15:21:48 -06:00
b0c524765e Update gce-5-node-3-partition.yml 2020-03-18 14:07:09 -07:00
6d0318cbe6 Remove product string from device keypair URL (#8942)
* Remove product string from device url

* Update docs
2020-03-18 13:36:48 -06:00
8f5ee6832f Bump libc from 0.2.67 to 0.2.68 (#8915)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.67 to 0.2.68.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.67...0.2.68)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 13:27:08 -06:00
38fe766fa7 Bump crossbeam-channel from 0.3.9 to 0.4.2 (#8930)
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.3.9 to 0.4.2.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/v0.4.2/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.3.9...v0.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-18 13:26:42 -06:00
74866882f2 Document account/signer requirements for vote instructions 2020-03-18 11:11:48 -07:00
c638e83bf5 Add --no-untrusted-rpc to docs (#8935)
automerge
2020-03-18 09:40:51 -07:00
de6ef68571 Add BPF virtual address translate helpers (#8919) 2020-03-18 08:39:55 -07:00
c51049a59b Add counter for accounts hash verification. (#8928) 2020-03-18 08:39:09 -07:00
9cedeb0a8d Pull streamer out into its own module. (#8917)
automerge
2020-03-17 23:30:23 -07:00
e37a4823f1 Remove appveyor config, Travis CI for windows now seems to work 2020-03-17 23:14:24 -07:00
bf60345b7a Remove all snapshots not matching the desired hash 2020-03-17 22:58:01 -07:00
cb29b8dd2a Travis CI builds windows-gnu instead of windows-msvc 2020-03-17 22:37:57 -07:00
3a501ad69e Remove all snapshot not matching the desired hash 2020-03-17 22:18:25 -07:00
e6e43d236f Remove unused default update manifest pubkeys 2020-03-17 21:46:39 -07:00
142601d4b6 solana-install-init: --pubkey is no longer required on platforms without a default update manifest 2020-03-17 21:46:39 -07:00
f192e4f08f Nit: Align Rust and C names (#8918) 2020-03-17 19:37:16 -07:00
f020370ae7 Add docs for --trusted-validator options (#8911)
and --halt-on-trusted-validator-hash-mismatch
2020-03-17 18:57:33 -07:00
24935af867 Extend local-cluster CI timeout (#8921)
automerge
2020-03-17 18:23:22 -07:00
6a213bc8f5 Build less for windows 2020-03-17 17:03:56 -07:00
f0414711b7 Cli: add spinner progress bar when waiting for transaction confirmation (#8916)
* Add _with_spinner method

* Use _with_spinner method in cli
2020-03-17 17:58:02 -06:00
d087ed5bf6 Remove copypasta (#8912) 2020-03-17 15:59:09 -07:00
d14dea4660 Restore solana-install for non-windows 2020-03-17 13:47:53 -07:00
29abfebb68 Limit windows to end-user command-line tools 2020-03-17 13:11:00 -07:00
668dfc40c7 Align C and Rust handling of AccountInfos (#8906) 2020-03-17 12:34:14 -07:00
61514e3b0e Allow program accounts to be passed as program and parameter (#8907) 2020-03-17 12:06:15 -07:00
46fcab14dd Try enabling windows build again, maybe it's more stable now 2020-03-17 11:14:08 -07:00
2435c3ce0c Add accounts-bench, a benchmark to test the accounts store speed (#8866) 2020-03-17 11:02:07 -07:00
55907b2167 code layout changes only for ci tests 2020-03-17 10:18:04 -07:00
a03eff51af code layout changes only 2020-03-17 10:18:04 -07:00
10175618d2 solana-keygen grind: do not ignore case (as default) 2020-03-17 10:18:04 -07:00
4ff033852d Increase buffer on low SOL fault to over a week (#8903)
automerge
2020-03-17 09:18:13 -07:00
2237f47b90 Sort device paths for select (#8896) 2020-03-16 18:23:21 -06:00
bfca226964 Hoist USB URL docs (#8894) 2020-03-16 17:07:39 -06:00
6077458ad8 Cli: enable flexible flexible signer paths for pubkey args (#8892)
automerge
2020-03-16 15:17:13 -07:00
7079559c2d Fix windows build by removing sys-info (#8860)
Doesn't build for windows.
2020-03-16 12:53:13 -07:00
0641244378 Add genesis token counter test to system test (#8824)
automerge
2020-03-16 12:09:18 -07:00
563da2bb18 Cleanup CLI types (#8888) 2020-03-16 12:27:09 -06:00
dc347dd3d7 Add Accounts hash consistency halting (#8772)
* Accounts hash consistency halting

* Add option to inject account hash faults for testing.

Enable option in local cluster test to see that node halts.
2020-03-16 08:37:31 -07:00
eab4fe50a3 Use types for CLI value names (#8878)
* Use types for CLI value names

* keygen too

* More cleanup

* nonce keypair -> pubkey
2020-03-16 09:24:59 -06:00
ead6dc553a If let 2020-03-16 07:57:07 -07:00
009c124fac Remove generic 2020-03-16 07:57:07 -07:00
7029c88305 use matches macro 2020-03-16 07:57:07 -07:00
9411fc00b8 Lower error level 2020-03-16 07:57:07 -07:00
5a93a4c466 Fix faucet command in run.sh (#8883)
automerge
2020-03-16 04:44:54 -07:00
9afc5da2e1 Fix vote polling (#8829)
Co-authored-by: Carl <carl@solana.com>
2020-03-15 20:31:05 -07:00
49706172f3 Quietly re-introduce legacy --voting-keypair/--identity-keypair args for v1.0.6 compatibility 2020-03-15 20:00:58 -07:00
b2a0cdaa38 Rename leader to validator, drop _keypair/-keypair suffix (#8876)
automerge
2020-03-15 13:19:55 -07:00
5481d1a039 Validators now run a full gossip node while looking for a snapshot 2020-03-15 09:31:55 -07:00
dd5e320aa1 TdS registration
Updated some outdated information re TdS registration.
2020-03-15 18:45:29 +11:00
3c2aff2b5b Cli: Add resolve-signer subcommand (#8859)
* Expose remote-wallet device pretty path

* Add resolve-signer helpers

* Add cli resolve-signer subcommand

* Print pretty-path in waiting msg
2020-03-14 20:48:41 -07:00
c3c4c9326b Refactor system tests dir structure (#8865)
automerge
2020-03-14 18:37:37 -07:00
ae70f4ea92 Apply s/faucet-keypair/faucet renaming to net scripts (#8867) 2020-03-14 16:49:28 -07:00
29fb79382c Rework validator vote account defaults to half voting fees 2020-03-13 20:13:33 -07:00
5c2cf04e10 Enable any signer in various cli subcommands (#8844)
automerge
2020-03-13 16:06:33 -07:00
9e0a26628b Drop :8899 port from http://devnet.solana.com references 2020-03-13 16:00:54 -07:00
ce88602ced Surface the missing pubkey 2020-03-13 15:57:41 -07:00
53b8d0d528 Remove holding Poh lock (#8838)
automerge
2020-03-13 15:15:13 -07:00
96a61cc4e4 Cli: add subcommand to withdraw from vote account (#8550)
* feat: cli command for vote account withdraw

* Rework names

* Update to flexible signer, and make consistent with other cli apis

* Add integration test

* Clean up default help msg

Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-03-13 14:30:04 -06:00
b7b36bb0a4 Upgrade to Rust 1.42 (#8836)
* Upgrade to Rust 1.42

* deref

* parens

Co-authored-by: Trent Nelson <trent@solana.com>
2020-03-13 14:15:22 -06:00
52b254071c Bump regex from 1.3.4 to 1.3.5 (#8830)
Bumps [regex](https://github.com/rust-lang/regex) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.3.4...1.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-13 07:43:07 -06:00
fbf2dd1672 CLI: Error message cleanup (#8804)
automerge
2020-03-12 23:20:49 -07:00
4bbf09f582 Enable conservative out-of-bound snapshot cleaning (#8811)
* Enable conservative out-of-bound snapshot cleaning

* Add tests
2020-03-13 14:44:00 +09:00
952cd38b7b Avoid early clean and bad snapshot by ref-counting (#8724)
* Avoid early clean and bad snapshot by ref-counting

* Add measure

* Clean ups

* clean ups
2020-03-13 14:14:37 +09:00
9a79be5ca0 Use cluster information about slots to prioritize repair (#8820)
automerge
2020-03-12 17:34:46 -07:00
2182521a8b Move history out of intro (#8825)
automerge
2020-03-12 16:36:05 -07:00
fe65c2ae02 Add all of docs/src 2020-03-12 14:45:54 -07:00
554d36c74b Update source markdown in CI 2020-03-12 14:34:28 -07:00
29ef0916db Update keys (#8821)
automerge
2020-03-12 13:22:12 -07:00
f93c8290f4 Bump sys-info from 0.5.9 to 0.5.10 (#8810)
Bumps [sys-info](https://github.com/FillZpp/sys-info-rs) from 0.5.9 to 0.5.10.
- [Release notes](https://github.com/FillZpp/sys-info-rs/releases)
- [Changelog](https://github.com/FillZpp/sys-info-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FillZpp/sys-info-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-12 13:42:31 -06:00
a69293df24 Bump base64 from 0.11.0 to 0.12.0 (#8809)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.11.0 to 0.12.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.11.0...v0.12.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-12 11:32:56 -06:00
48ac038f7a Bump serial_test from 0.3.2 to 0.4.0 (#8808)
Bumps [serial_test](https://github.com/palfrey/serial_test) from 0.3.2 to 0.4.0.
- [Release notes](https://github.com/palfrey/serial_test/releases)
- [Commits](https://github.com/palfrey/serial_test/compare/v0.3.2...v0.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-12 11:14:37 -06:00
5a7d2560c9 Don't tell users to install unreleased software versions 2020-03-12 10:01:25 -07:00
d91027f771 Fix malformed doc link (#8817)
automerge
2020-03-12 09:25:15 -07:00
deaf3cb416 Instruction member function (#8801) 2020-03-12 09:08:39 -07:00
f95e1ea40f Update keys (#8814)
automerge
2020-03-12 08:30:24 -07:00
f64ab49307 Cluster has no way to know which slots are available (#8732)
automerge
2020-03-11 21:31:50 -07:00
fe1c99c0cf Update keys (#8800)
automerge
2020-03-11 17:18:14 -07:00
bdb7b73b8a Add longer running performance tests and new partition testcase (#8773)
* Add 1 hour perf stability tests to colo and GCE

* Add GCE full loss partition testcase to automation
2020-03-11 16:42:52 -07:00
293fff90d3 Restrict which nodes can run stable and coverage
Band-aid fix until https://github.com/solana-labs/solana/issues/8798 is resolved
2020-03-11 14:46:17 -07:00
6eb4973780 Don't use move semantics if not needed (#8793) 2020-03-11 14:37:23 -07:00
5f5824d78d Rework cluster metrics dashboard to support the modern clusters 2020-03-11 14:14:56 -07:00
0ef9d79056 Collapse verbose buildkite logging (#8794)
automerge
2020-03-11 11:54:49 -07:00
215650f6e7 Bump console from 0.9.2 to 0.10.0 (#8786)
Bumps [console](https://github.com/mitsuhiko/console) from 0.9.2 to 0.10.0.
- [Release notes](https://github.com/mitsuhiko/console/releases)
- [Commits](https://github.com/mitsuhiko/console/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-11 12:30:15 -06:00
a0d0d4c0e9 Update keys (#8791) 2020-03-11 12:29:50 -06:00
0422af2aae CLI: Plumb nonce-stored fees (#8750)
automerge
2020-03-11 11:14:15 -07:00
cef8e42938 Notify when validator balance goes below 1 SOL 2020-03-11 10:30:51 -07:00
0eeeec38fa Bump winreg from 0.6.2 to 0.7.0 (#8788)
automerge
2020-03-11 08:59:26 -07:00
75a84ecdae Bump reqwest from 0.10.1 to 0.10.4 (#8787)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.10.1 to 0.10.4.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.10.1...v0.10.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-11 09:02:40 -06:00
87c507fdbe Refactor system test automation (#8780) 2020-03-10 23:38:50 -07:00
3783ae823d Update keys (#8783)
automerge
2020-03-10 19:08:02 -07:00
f3ed00e28e Add checkmark (#8781)
automerge
2020-03-10 17:28:50 -07:00
307d023b2e Bump hidapi from 1.2.0 to 1.2.1 (#8770)
Bumps [hidapi](https://github.com/ruabmbua/hidapi-rs) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/ruabmbua/hidapi-rs/releases)
- [Commits](https://github.com/ruabmbua/hidapi-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-10 18:07:14 -06:00
775ce3a03f Permit fee-payer/split-stake accounts to be the same when using --seed 2020-03-10 16:12:02 -07:00
f655372b08 Revert to a computed websocket_url value when json_rpc_url is changed 2020-03-10 15:55:13 -07:00
2c4079f4c8 Print approved msg after Ledger interaction (#8771)
automerge
2020-03-10 14:08:51 -07:00
ac1f90f1a9 clippy 2020-03-10 12:31:00 -07:00
4bb55b1622 Add --monitor-active-stake flag 2020-03-10 12:31:00 -07:00
23c5bb17c7 Refactor 2020-03-10 12:31:00 -07:00
a0ed3261c9 Automated tests should use dedicated colo nodes (#8766)
automerge
2020-03-10 12:25:16 -07:00
261732f140 CLI Nonce account access dereplicode (#8743)
* Spruce up CliNonceError

* Add nonce account access helpers

* Use helpers throughout
2020-03-10 13:00:15 -06:00
595c96b262 Plumb pre-emptibility and associated overrides into colo allocation and automated testing (#8754)
automerge
2020-03-10 11:25:44 -07:00
496999beba Configure the cluster right after installing it (#8761) 2020-03-10 10:23:58 -06:00
bb50881346 Fix Gitbook's markdown rendering (#8759)
automerge
2020-03-10 08:05:30 -07:00
948902eae0 Better titles (#8752)
automerge
2020-03-10 07:43:38 -07:00
e41ff2df66 Bump chrono from 0.4.10 to 0.4.11 (#8755)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.10 to 0.4.11.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/master/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.10...v0.4.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-10 08:43:18 -06:00
f88b79d42b Bump itertools from 0.8.2 to 0.9.0 (#8756)
Bumps [itertools](https://github.com/bluss/rust-itertools) from 0.8.2 to 0.9.0.
- [Release notes](https://github.com/bluss/rust-itertools/releases)
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bluss/rust-itertools/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-10 08:42:11 -06:00
1a0dd53450 Bump rayon from 1.2.0 to 1.3.0 (#8757)
Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/rayon-rs/rayon/releases)
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md)
- [Commits](https://github.com/rayon-rs/rayon/compare/v1.2.0...rayon-core-v1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-10 08:40:02 -06:00
9872430bd2 Add VoteTracker for tracking cluster's votes in gossip (#8327)
Track votes by slot in cluster_vote_listener
2020-03-09 22:03:09 -07:00
ae8badb141 Support monitoring multiple validators 2020-03-09 20:40:23 -07:00
36fa3a1a0a Wait for 80% of the active stake instead of 75% 2020-03-09 20:31:09 -07:00
df8a69d15f Less links to docs (#8748)
automerge
2020-03-09 19:55:17 -07:00
fad08a19cc Bump serde_json from 1.0.46 to 1.0.48 (#8260)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.46 to 1.0.48.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.46...v1.0.48)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-09 20:20:19 -06:00
6527d05d77 Docs: Fix missing CLI usage.md (#8745)
automerge
2020-03-09 19:11:58 -07:00
d303e6b94e Override GCE self-destruct timer in automation (#8728) 2020-03-09 18:02:07 -07:00
5fa397ceed Remove --derivation-path option (#8741)
automerge
2020-03-09 17:49:01 -07:00
c0fd017906 Move intro out of README (#8735)
automerge
2020-03-09 16:39:57 -07:00
74e7da214a watchtower now uses cli-config/ 2020-03-09 15:43:14 -07:00
756ba07b16 Move cli-config default out of cli/ into cli-config/ 2020-03-09 15:43:14 -07:00
5c236fd06c Rename 'url' to 'json_rpc_url' 2020-03-09 15:43:14 -07:00
f671be814e Move bench-tps instructions (#8734)
automerge
2020-03-09 15:26:03 -07:00
e277437bd2 Limit waiting-message to single- or last-chunk apdus (#8730) 2020-03-09 15:22:50 -06:00
beead7e54d Bump hidapi from 1.1.1 to 1.2.0 (#8588)
automerge
2020-03-09 11:53:47 -07:00
ea010be5cb Wait for stake distribution before starting clients (#8692) 2020-03-09 10:57:51 -07:00
97b6c41d42 Fix typos in error messages (#8726)
automerge
2020-03-09 10:12:42 -07:00
6d0f3762b2 Bump hex from 0.4.1 to 0.4.2 (#8725)
Bumps [hex](https://github.com/KokaKiwi/rust-hex) from 0.4.1 to 0.4.2.
- [Release notes](https://github.com/KokaKiwi/rust-hex/releases)
- [Commits](https://github.com/KokaKiwi/rust-hex/compare/v0.4.1...v0.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-09 09:23:54 -06:00
132a2a73af Add total-supply command (#8722)
automerge
2020-03-09 01:28:44 -07:00
eab80d0aea Cli: Fix create-with-seed (#8706)
* Add failing test

* Fix create-address-with-seed regression

* Add apis to enable generating a pubkey from all various signers

* Enable other signers as --from in create-with-seed
2020-03-09 00:02:24 -06:00
88b1383eed Permit --no-untrusted-rpc without any --trusted-validators 2020-03-08 22:34:04 -07:00
ff74452ef3 Bump libc from 0.2.66 to 0.2.67 (#8680)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.66 to 0.2.67.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.66...0.2.67)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-08 21:38:58 -07:00
bf8e9b3d71 Better error message for cli (#8702) 2020-03-08 19:19:34 -07:00
de34187db0 Add purge function to ledger-tool (#8719) 2020-03-08 12:40:56 -07:00
acb23e8ef0 Groom ledger-tool bounds output (#8710) 2020-03-07 09:05:15 -07:00
f992ee3140 Remove unnecessary snapshot hash verification (#8711) 2020-03-07 09:04:52 -07:00
97986a5241 Move download code to download-utils crate (#8704) 2020-03-07 07:08:01 -08:00
a7d1346d51 Remove ask-seed-phrase arg from validator, archiver (#8697)
* Remove ask-seed-phrase from validator

* Update paper-wallet docs

* Remove ask-seed-phrase from archiver

* Remove unused structs, methods
2020-03-06 22:22:23 -07:00
983ec5debc Docs version bump (#8709)
automerge
2020-03-06 21:06:41 -08:00
cb28ac3aed Fix Ledger docs (#8705)
automerge
2020-03-06 20:05:34 -08:00
a817a7c889 Call usage when getting incorrect arguments (#8703)
automerge
2020-03-06 19:08:20 -08:00
a5f2444ad2 Remove copypasta (#8700)
automerge
2020-03-06 18:18:01 -08:00
cea8067219 Disable setLogFilter RPC API by default (#8693)
automerge
2020-03-06 16:03:10 -08:00
4db074a5aa RPC: Add getFeeCalculatorForBlockhash method call (#8687)
Returns the `FeeCalculator` associated with the given blockhash, or
`null` if said blockhash has expired
2020-03-06 17:01:31 -07:00
3eb00ef60f Add ability to start clients separately from validators (#8690)
automerge
2020-03-06 15:32:27 -08:00
ca8bf8f964 Ledger: return specific error if ledger-app-solana is not running (#8684)
* Specific error if ledger-app-solana is not running

* Return helpful error

* Include signer name in multiple-device prompt
2020-03-06 16:03:23 -07:00
39b3ce9bd3 Add shred version support to net/ (#8689)
* Add shred version support to net/

* Update remote-node.sh
2020-03-06 15:49:04 -07:00
4caa313aef Remove releases from readme (#8685)
automerge
2020-03-06 14:03:10 -08:00
a78a339407 Properly escape current version (#8686) 2020-03-06 14:36:01 -07:00
0919b13c87 Split staker infos (#8682) 2020-03-06 13:49:23 -07:00
f2b0e2f418 Add slot rate check to automation framework (#8676) 2020-03-05 23:58:31 -08:00
cb6848aa80 Publish initial snapshot hash in gossip on validator startup (#8679)
automerge
2020-03-05 22:52:31 -08:00
542691c4e4 Docs: Use correct flag in keypair verification instructions (#8677)
automerge
2020-03-05 16:32:17 -08:00
8ad6a8767f Simplify runtime account handling (#8674) 2020-03-05 16:17:31 -08:00
2242b1b4a5 Bump byteorder from 1.3.2 to 1.3.4 (#8159)
Bumps [byteorder](https://github.com/BurntSushi/byteorder) from 1.3.2 to 1.3.4.
- [Release notes](https://github.com/BurntSushi/byteorder/releases)
- [Changelog](https://github.com/BurntSushi/byteorder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BurntSushi/byteorder/compare/1.3.2...1.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-05 17:07:18 -07:00
8df4d8b905 Update to rbpf v0.1.23 - Use trait objects to convey helper context (#8648) 2020-03-05 14:14:21 -08:00
7fad53b112 Use iterated account (#8673)
automerge
2020-03-05 13:10:20 -08:00
9d667db634 SDK: Allow RecentBlockhashes to hold the entire BlockhashQueue (#8632)
automerge
2020-03-05 11:03:21 -08:00
f47a789b15 Add find_incomplete_slots (#8654)
* Add find_incomplete_slots

* Add live slots iterator
2020-03-05 10:58:00 -08:00
5e3ce30d02 Pass the correct program_id to programs (#8630) 2020-03-05 10:57:35 -08:00
97c5fb8141 Allow passing of program_ids to programs (#8639) 2020-03-05 10:57:12 -08:00
0e3a8fa6d9 Add retransmit_stage diagram (#8645) 2020-03-05 10:12:02 -08:00
5eae76c66e Remove solana-archiver from release artifacts 2020-03-05 11:01:53 -07:00
849f79e4ed Delete Archiver installation docs (#8665) 2020-03-05 11:00:00 -07:00
ff7cf839d8 Choose a cluster before checking balances (#8666)
automerge
2020-03-05 09:37:16 -08:00
f3cbd243cc Fix docs build (#8663)
automerge
2020-03-05 09:33:46 -08:00
f146c92e88 Always and fully normalize stored 0-lamport accts. (#8657) 2020-03-05 09:14:40 -07:00
fb2620b3a5 Set ignore_conflicts, the new mergify behaviour is worse 2020-03-05 08:44:20 -07:00
fd00e5cb35 Store FeeCalculator with blockhash in nonce accounts (#8650)
* Copy current state version to v0

* Add `FeeCalculator` to nonce state

* fixup compile

* Dump v0 handling...

Since we new account data is all zeros, new `Current` versioned accounts
look like v0. We could hack around this with some data size checks, but
the `account_utils::*State` traits are applied to `Account`, not the
state data, so we're kind SOL...

* Create more representative test `RecentBlockhashes`

* Improve CLI nonce account display

Co-Authored-By: Michael Vines <mvines@gmail.com>

* Fix that last bank test...

* clippy/fmt

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-03-05 07:40:26 -07:00
44fde2d964 genesis: Add support for multiple bootstrap validators (#8656)
automerge
2020-03-04 23:42:01 -08:00
448b957a13 Add --bind-address and --rpc-bind-address validator arguments (#8628) 2020-03-04 22:46:43 -07:00
01607b9860 Add NextSlotsIterator (#8652)
automerge
2020-03-04 20:46:58 -08:00
23d8c7ff0e Generate a snapshot at synchronized points (#8532)
Co-authored-by: anatoly yakovenko <anatoly@solana.com>
2020-03-04 19:23:40 -08:00
b321da00b4 Nit: Use accessor function (#8647)
automerge
2020-03-04 18:26:58 -08:00
dec3da8f9d Add orphan iterator (#8636) 2020-03-04 18:10:30 -08:00
80aae18794 Nit: Update native loader to iterate accounts (#8640)
automerge
2020-03-04 17:10:22 -08:00
1f2aaf3f98 Generate CLI usage (#8637)
* Generate CLI usage

* Apply review feedback
2020-03-04 17:44:30 -07:00
2534a028c0 Move docs to imperative mood (#8643)
* Move docs to imperative tone

* Apply review feedback
2020-03-04 17:42:22 -07:00
fc409d9262 Consistency nits and spelling (#8642)
automerge
2020-03-04 16:26:32 -08:00
b70d195473 Connect partition flag to validators (#8622) 2020-03-04 16:18:45 -08:00
7eedff2714 Install Solana before using it (#8638)
automerge
2020-03-04 15:21:42 -08:00
6d9185d121 Update TVU drawing (#8611) 2020-03-04 15:16:35 -08:00
f89c22b5ee solana catchup now detects when you try to catchup to yourself (#8635)
automerge
2020-03-04 14:44:21 -08:00
f23dc11a86 compute_bank_stats needs to return newly computed ForkStats (#8608)
* Fix broken confirmation, add test
2020-03-04 11:49:56 -08:00
09a0325534 catchup now supports an optional RPC URL argument for validators with private RPC (#8629)
automerge
2020-03-04 11:44:13 -08:00
408d5da50f Add test for program_ids passed in metas (#8618) 2020-03-04 11:13:33 -08:00
561808cf90 SDK: Store FeeCalculator in recent_blockhashes sysvar (#8609)
* SDK: Store FeeCalculators in recent_blockhashes sysvar

* nits
2020-03-04 12:01:32 -07:00
25df95be6f Expose executable and rent_epoch in AccountInfo (#8619) 2020-03-04 10:52:09 -08:00
b85d7c1f70 Fix account tests (#8615) 2020-03-04 10:40:41 -08:00
642720a2fe nit: describe the root program id (#8621) 2020-03-04 08:55:01 -08:00
1cc7131bb7 Consolidate Nonce state under one struct (#8624)
automerge
2020-03-04 08:51:48 -08:00
8f60f1093a Fix sendTransaction doc (#8625)
automerge
2020-03-04 08:23:29 -08:00
d3b458dd9b Keep GenesisConfig binary compatible with v0.23 (#8617)
automerge
2020-03-04 00:04:44 -08:00
a08e2cc434 nit: clean up MessageHeader output 2020-03-04 00:16:19 -07:00
b83a0434a4 Prepare for multiple nonce account state versions (#8612)
automerge
2020-03-03 21:19:09 -08:00
b68b74ac32 Check transaction signatures in entry verify (#8596) 2020-03-03 20:49:51 -08:00
b084c1d437 Remove accounts hack and correctly restore accounts store counts (#8569)
* Remove accounts hack and correctly restore append-vec counts

* Add test
2020-03-03 20:48:55 -08:00
63ed892502 Remove flaky merkle timing test (#8602) 2020-03-03 19:26:38 -08:00
1cb6101c6a SDK: Add versioning to nonce state (#8607) 2020-03-03 19:39:09 -07:00
be0cc0273f SDK: Re-org nonce state module to facilitate versioning (#8603)
automerge
2020-03-03 17:00:39 -08:00
abf33b3b3b Add commitment flag to vote-account and validators commands (#8597) 2020-03-03 17:53:30 -07:00
d9b0490f72 Update rust-bpf to include matching cargo (#8598) 2020-03-03 14:14:31 -08:00
caa70d2bca Remove v0.23 as a backport target 2020-03-03 15:10:06 -07:00
4f05f08f5d Use fs::rename which is much faster than move_items (#8579) 2020-03-03 10:03:17 -08:00
0c76b89e55 Fix c/p error. We want a rent sysvar account here (#8559) 2020-03-03 09:49:02 -07:00
08ab4b93ea Add Ledger wallet installation instructions (#8581)
automerge
2020-03-03 08:12:29 -08:00
f0028b6972 Remove trailing white space 2020-03-03 18:27:07 +09:00
HM
b6553357f9 watchtower: flag to suppress duplicate notifications (#8549)
* watchtower: send error message as notification

* watchtower: send all clear notification when ok again

* watchtower: add twilio sms notifications

* watchtower: flag to suppress duplicate notifications

* remove trailing space character

* changes as per suggestion on PR

* all changes together

* cargo fmt
2020-03-02 23:37:57 -07:00
d86103383a Do periodic inbound cleaning for rooted slots (#8436)
* Do periodic inbound compaction for rooted slots

* Add comment

* nits

* Consider not_compacted_roots in cleanup_dead_slot

* Renames in AccountsIndex

* Rename to reflect expansion of removed accounts

* Fix a comment

* rename

* Parallelize clean over AccountsIndex

* Some niceties

* Reduce locks and real chunked parallelism

* Measure each step for sampling opportunities

* Just noticed par iter is maybe lazy

* Replace storage scan with optimized index scan

* Various clean-ups

* Clear uncleared_roots even if no updates
2020-03-03 14:57:25 +09:00
1265afebbb SDK: Return a full RecentBlockhashes for tests (#8580)
automerge
2020-03-02 18:44:29 -08:00
306783c661 Don't advertise the snapshot that the node was loaded from
snapshot_packager_service will remove this snapshot hash from gossip
when it starts
2020-03-02 18:58:53 -07:00
8ec8204a30 Run pubsub test poller in tokio runtime (#8494) 2020-03-03 09:44:39 +08:00
8cf3ef895d Prevent trailing space in CLI usage docs generation (#8578)
automerge
2020-03-02 16:37:38 -08:00
e4498adb1f Make block-time more human-readable (#8575) 2020-03-02 14:58:15 -08:00
42c5c59800 Only gossip packaged snapshots 2020-03-02 14:17:17 -07:00
8ef8c9094a Add ReplayStage changes for checking switch threshold (#8504)
* Refactor for supporting switch threshold check
2020-03-02 12:43:43 -08:00
8dc4724340 Allow stake lockup fields to be updated independently (#8568)
* Make Lockup fields optional for SetLockup instruction

* Use LockupArgs in cli

* Include lockup timestamp in stake-account print
2020-03-02 12:28:43 -08:00
13551885c2 --wait-for-supermajority now requires a SLOT 2020-03-02 12:59:35 -07:00
d677e83ed4 Add ---no-untrusted-rpc flag 2020-03-02 11:49:38 -07:00
5d9130a3c4 Hack to skip cleanup_dead_slots upon snapshot load 2020-03-02 10:24:12 -07:00
1ca4913328 Avoid is_x86_feature_detected when not building for x86 2020-03-01 18:10:43 -07:00
b7614abb9e Docs: Update CLI offline cmds (#8548)
* Docs: Update CLI usage

* Docs: Add script to generate offline command links

* Docs: Update list of commands supporting offline signing

* Docs: Omit deprecated `pay` command from offline command list
2020-03-01 17:20:37 -07:00
862a4a243f Demote gossip responder error log messages to info! 2020-03-01 10:43:20 -07:00
db291234ed feat: implement websocket_url as a get/set-able global parameter w/ value computation 2020-03-01 01:07:45 -07:00
2a5605db24 Reduce max snapshot hashes to stay under MTU 2020-02-29 09:21:52 -07:00
b4362cc18b Log RPC node root slot 2020-02-29 09:21:52 -07:00
6a5a6387e2 Fix skipping own leader slots (#8533)
automerge
2020-02-29 00:05:35 -08:00
0f31adeafb GET for /snapshot.tar.bz2 now redirects to the latest snapshot 2020-02-28 23:23:59 -07:00
ae817722d8 Include validator version in log 2020-02-28 23:23:59 -07:00
90bedd7e06 Split signature throughput tracking out of FeeCalculator (#8447)
* SDK: Split new `FeeRateGovernor` out of `FeeCalculator`

Leaving `FeeCalculator` to *only* calculate transaction fees

* Replace `FeeCalculator` with `FeeRateGovernor` as appropriate

* Expose recent `FeeRateGovernor` to clients

* Move `burn()` back into `FeeCalculator`

Appease BPF tests

* Revert "Move `burn()` back into `FeeCalculator`"

This reverts commit f3035624307196722b62ff8b74c12cfcc13b1941.

* Adjust BPF `Fee` sysvar test to reflect removal of `burn()` from `FeeCalculator`

* Make `FeeRateGovernor`'s `lamports_per_signature` private

* rebase artifacts

* fmt

* Drop 'Recent'

* Drop _with_commitment variant

* Use a more portable integer for `target_signatures_per_slot`

* Add docs for `getReeRateCalculator` JSON RPC method

* Don't return `lamports_per_signature` in `getFeeRateGovernor` JSONRPC reply
2020-02-28 13:27:01 -07:00
7d27be2a73 Upgrade to Rust 1.41.1 2020-02-28 10:10:42 -07:00
74da2de3b7 Ensure the validator's identity pubkey is not provided as a --trusted-validator (#8525)
automerge
2020-02-27 20:26:53 -08:00
35db70a56c Use legit solana message in verify (#8513) 2020-02-27 19:23:28 -07:00
7dac8e2dde Reorder InstructionError to remain compatible with v0.23 2020-02-27 18:05:12 -07:00
82c6992d6f Import Tour de SOL docs (#8516)
* Import Tour de SOL docs

* Fix checks

* Fix docs/build.sh
2020-02-28 09:03:14 +08:00
4831c7b9af Remove granularity from genesis (#8514) 2020-02-27 17:45:10 -07:00
113db8d656 Improve net/README.md a bit (#8503) 2020-02-28 08:00:54 +09:00
de6679ea95 Improve install messaging (#8477) 2020-02-27 14:07:36 -08:00
0b66ae5c53 Ledger messaging cleanup (#8506) 2020-02-27 12:23:13 -07:00
61a20febb9 Set withdrawer keys (#8499) 2020-02-27 07:32:35 -07:00
29f81577e9 Fix cluster economics figures and spelling in docs (#8502) 2020-02-27 18:15:17 +08:00
3acf956f6f Fix test_concurrent_snapshot_packaging 2020-02-26 23:32:53 -07:00
87b13bef8e Remove bank_slot_from_archive 2020-02-26 23:32:53 -07:00
0d4cb252c4 Adapt local-cluster/ 2020-02-26 23:32:53 -07:00
fcabc6f799 Rename snapshot.tar.bz2 to snapshot-<slot>-<hash>.tar.bz2 2020-02-26 23:32:53 -07:00
848c43a9ab Peg snapshot version to 1.0.0 2020-02-26 22:44:39 -07:00
5f766cd20b Remove loop (#8493) 2020-02-26 19:59:28 -08:00
8c07ba635e Cargo.lock 2020-02-26 20:47:43 -07:00
bb07aecfec Cargo.lock 2020-02-26 20:47:43 -07:00
27c5ec0149 Use the same reqwest features across the repo 2020-02-26 20:47:43 -07:00
4f01db0482 fix reqwest json issue 2020-02-26 20:47:43 -07:00
f2f8a7a90e Reference the v1.0.0 installer 2020-02-26 19:20:42 -07:00
e743414908 Choose more appropriate options for pubsub websocket server (#8354)
* Choose more sensible options for pubsub websocket server

* Increase max payload size for pubsub service
2020-02-27 08:54:53 +08:00
f6f0f94e17 Add flag to confirm key on device (#8478) 2020-02-26 15:24:44 -07:00
d47a47924a Update voting simulation (#8460) 2020-02-26 14:09:07 -08:00
7a2bf7e7eb Limit leader schedule search space (#8468)
* Limit leader schedule search space

* Fix and add test

* Rename
2020-02-26 13:35:50 -08:00
d5a7867087 Validate the genesis config downloaded over RPC before accepting it 2020-02-26 14:21:37 -07:00
fbf78b83c4 Add retry mechanism when downloading genesis and snapshots 2020-02-26 14:21:37 -07:00
2c63cf3cbd Add curie pubkey to authorized keys (#8473)
automerge
2020-02-26 10:27:37 -08:00
3b648e71e6 Ledger hardware wallet docs (#8472)
* Update protocol documentation

* Correct app-version command const

* Rough initial Ledger docs

* Add more docs

* Cleanup

* Add remote-wallet to docs TOC

Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-02-26 11:04:28 -07:00
021d0a46f8 Move docs from book/ to docs/ (#8469)
automerge
2020-02-26 07:11:38 -08:00
8839dbfe5b Use runtime executor to send pubsub notifications (#8353)
automerge
2020-02-25 20:23:54 -08:00
407d058611 live-slots now displays the rate the root slot is advancing 2020-02-25 20:59:05 -07:00
c6a7f499ce Allow withdrawer to change the authorized stake key (#8456) 2020-02-25 19:03:26 -07:00
d821fd29d6 Add versioning (#8348)
automerge
2020-02-25 17:12:01 -08:00
6b99ab3a57 Ledger key path rework (#8453)
automerge
2020-02-25 16:41:21 -08:00
004f1d5aed Combine replay stage memory reporting (#8455)
automerge
2020-02-25 16:04:27 -08:00
1caeea8bc2 Refactor new bank paths into common function (#8454) 2020-02-25 15:49:59 -08:00
6ce4a1a18d Update README.md 2020-02-25 14:41:14 -08:00
0b48c8eb35 Promote dangerous cond. from just warning to panic (#8439) 2020-02-26 05:09:57 +09:00
fef913085e 🐌🐌 Publish crates for even longer longer 2020-02-25 09:23:04 -07:00
2059af822d Remove unnecessary new_banks_from_blockstore() argument (#8433)
automerge
2020-02-24 23:27:19 -08:00
0fe74e95fe Add --no-check-vote-account argument (#8430)
automerge
2020-02-24 22:54:51 -08:00
b7755123c1 Make solana root key accessible on Ledger (#8421)
* Use 44/501 key as ledger id

* Add error codes
2020-02-24 22:38:06 -07:00
39282be486 Determine vote_state ahead of time (#8303)
automerge
2020-02-24 19:27:04 -08:00
b18e4057bb Fix SDK deps 2020-02-24 17:25:48 -07:00
12a9b5f35e CLI: collect and deduplicate signers (#8398)
* Rename (keypair util is not a thing)

* Add method to generate_unique_signers

* Cli: refactor signer handling and remote-wallet init

* Fixup unit tests

* Fixup intergation tests

* Update keypair path print statement

* Remove &None

* Use deterministic key in test

* Retain storage-account as index

* Make signer index-handling less brittle

* Cache pubkey on RemoteKeypair::new

* Make signer_of consistent + return pubkey

* Remove &matches double references

* Nonce authorities need special handling
2020-02-24 17:03:30 -07:00
89baa94002 Drop print- prefix from slot/accounts command 2020-02-24 14:46:12 -07:00
1ef3478709 Add genesis subcommand 2020-02-24 14:46:12 -07:00
73063544bd Move shred_version module to sdk/ 2020-02-24 14:46:12 -07:00
90240bf11d r 2020-02-24 14:45:32 -07:00
5c5a06198c Refactor 2020-02-24 14:45:32 -07:00
394933e53c Fix up trusted validator snapshot selection 2020-02-24 14:45:32 -07:00
b106d3ba60 Fix local cluster test, check for accounts hash (#8411) 2020-02-24 10:23:47 -08:00
947a339714 Add snapshot hash of full accounts state (#8295)
* Add snapshot hash of full accounts state

* Use normal hashing for the accounts delta state

* Add merkle
2020-02-22 13:46:40 -08:00
edb18349c9 Improve merkle-tree nodes capacity computing (#8273)
* Improve merkle-tree nodes capacity computing

* Add test cases for math compute of merkle-tree nodes capacity
2020-02-22 11:12:37 -07:00
9dcb965959 Reinstate create-stale-account w/ seed test (#8401)
automerge
2020-02-22 08:54:29 -08:00
72ae82fe47 Bump crossbeam-channel from 0.3.9 to 0.4.2 (#8400)
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.3.9 to 0.4.2.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/v0.4.2/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.3.9...v0.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-22 09:53:38 -07:00
2d9d2f1e99 Update cargo versions from 1.0 to 1.1 (#8397) 2020-02-21 23:09:45 -08:00
dc02f2ea8b Add support for large transactions with Ledger Wallet (#8394) 2020-02-21 23:24:56 -07:00
b7386f9d84 Add --trusted-validator support for snapshot hash validation (#8390) 2020-02-21 18:42:24 -08:00
223f9707ca \ 2020-02-21 18:09:36 -07:00
ea5b00364f Add --enable-warmup-epochs flag 2020-02-21 16:59:43 -07:00
fb98df76b7 4x DEFAULT_MAX_LEDGER_SLOTS to give nodes 3 hours of slots to repair from (#8388)
automerge
2020-02-21 15:04:02 -08:00
4ddbf8d509 CLI: dynamic signing reboot (#8384)
* Add keypair_util_from_path helper

* Cli: impl config.keypair as a trait object

* SDK: Add Debug and PartialEq for dyn Signer

* ClapUtils: Arg parsing from pubkey+signers to Presigner

* Impl Signers for &dyn Signer collections

* CLI: Add helper for getting signers from args

* CLI: Replace SigningAuthority with Signer trait-objs

* CLI: Drop disused signers command field

* CLI: Drop redundant tests

* Add clap validator that handles all current signer types

* clap_utils: Factor Presigner resolution to helper

* SDK: `From` for boxing Signer implementors to trait objects

* SDK: Derive `Clone` for `Presigner`

* Remove panic

* Cli: dedup signers in transfer for remote-wallet ergonomics

* Update docs vis-a-vis ASK changes

* Cli: update transaction types to use new dynamic-signer methods

* CLI: Fix tests No. 1

what to do about write_keypair outstanding

* Work around `CliConfig`'s signer not necessarily being a `Keypair`

* CLI: Fix tests No. 2

* Remove unused arg

* Remove unused methods

* Move offline arg constants upstream

* Make cli signing fallible

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
2020-02-21 14:55:53 -07:00
aa80f69171 Promote some datapoints to info to fix dashboard (#8381)
automerge
2020-02-21 13:41:49 -08:00
0ace22d03f Optimize account verification (#8385) 2020-02-21 13:28:35 -08:00
0e6aca5a7e Reorganize message processor in prep for cross-program-invocation (#8338) 2020-02-21 11:30:00 -08:00
3f04226864 Update unlocks (#8363) 2020-02-21 11:23:03 -07:00
d308eed136 Bump ctrlc from 3.1.3 to 3.1.4
Bumps [ctrlc](https://github.com/Detegr/rust-ctrlc) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases)
- [Commits](https://github.com/Detegr/rust-ctrlc/commits/3.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-21 09:00:14 -07:00
ed1149c8e0 Update supported backport labels 2020-02-21 00:47:44 -07:00
48f58a88bc Bump version to 1.0.0 2020-02-20 23:52:19 -07:00
d238371b0c Correct missing entry handling to avoid bad warns (#8339)
* Correct missing entry handling to avoid bad warns

* Pass storage entries to AccountStorageSerialize

* Fix CI.....

* Add tests and reorder condition for cheapest first

* Remove unneeded reference
2020-02-21 15:27:55 +09:00
0b7e8d0162 Add handling for fallible signers (#8367)
automerge
2020-02-20 19:04:53 -08:00
18fd52367e If the node was loaded from a snapshot, advertise it in gossip (#8364)
automerge
2020-02-20 18:53:26 -08:00
2d665da3e1 Flip Stable and Preview enum values 2020-02-20 18:27:33 -07:00
5ef06a9d36 Add non-bz2 snapshot for faster creation for dev. (#8350)
* Add non-bz2 snapshot for faster creation for dev.

* Fix tests..

* Revert and always just use snapshot.tar.bz2
2020-02-21 10:19:45 +09:00
f4622d67e9 Submit all metrics in one HTTP POST rather than a HTTP POST per level 2020-02-20 18:12:30 -07:00
b65c9ea544 Bump serial_test_derive from 0.3.2 to 0.4.0 (#8311)
Bumps [serial_test_derive](https://github.com/palfrey/serial_test) from 0.3.2 to 0.4.0.
- [Release notes](https://github.com/palfrey/serial_test/releases)
- [Commits](https://github.com/palfrey/serial_test/compare/v0.3.2...v0.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-20 17:06:00 -07:00
cc7c6c960e Search for the validator with the highest snapshot 2020-02-20 17:04:48 -07:00
01697a9f5c Remove unnecessary arc and mutex for rpc notifications (#8351) 2020-02-21 08:03:46 +08:00
ab361a8073 Rename KeypairUtil to Signer (#8360)
automerge
2020-02-20 13:28:55 -08:00
ec5c02cb7f Book: Add instructions for verifying a paper wallet keypair (#8357) 2020-02-20 14:19:35 -07:00
e8124324ff Support transaction signing by heterogenous lists of keypairs (#8342)
automerge
2020-02-20 12:13:23 -08:00
1720fe6a46 Snapshot hash gossip changes (#8358) 2020-02-20 11:46:13 -08:00
e50bc0d34b Do not compress small incomplete slot list (#8355)
automerge
2020-02-20 09:48:39 -08:00
45774dc4aa Fix comment 2020-02-20 10:32:36 -07:00
ea8d9d1aea Bitwise compress incomplete epoch slots (#8341) 2020-02-19 20:24:09 -08:00
221866f74e Process Gossip in parallel and add an upper limit (#8328) 2020-02-19 21:31:55 -06:00
3e96d59359 Use correct static IP address 2020-02-19 18:15:18 -07:00
8c19b6268c Add Preview operating mode, rename SoftLaunch operating mode to Stable (#8331)
automerge
2020-02-19 16:48:58 -08:00
8ae26867c5 More testnet->devnet 2020-02-19 16:15:38 -07:00
19baaea0da Remove validators from genesis (#8330)
automerge
2020-02-19 14:40:07 -08:00
e3cebcf82d rename testnet.solana.com to devnet.solana.com 2020-02-19 15:33:14 -07:00
ccad5d5aaf change warnings to infos (#8322) 2020-02-19 14:25:49 -08:00
d0bcde001e New Repair Design (#8256)
* New Repair Design
2020-02-19 01:02:09 -08:00
83a8e82626 Remove dead code 2020-02-18 21:08:43 -07:00
7305a1f407 Reformatting 2020-02-18 21:08:43 -07:00
3975c7f8c9 Add --fee-burn-percentage 2020-02-18 17:43:08 -07:00
ac1d075d73 Drop packet if destination is unspecified (0.0.0.0/0) (#8321) 2020-02-18 16:14:20 -08:00
73a278dc64 Factor out creating genesis with vote accounts into a utility function (#8315)
automerge
2020-02-18 02:39:47 -08:00
a042ee609a Update README.md 2020-02-17 22:19:55 -07:00
0d5c1239c6 Update epoch slots to include all missing slots (#8276)
* Update epoch slots to include all missing slots

* new test for compress/decompress

* address review comments

* limit cache based on size, instead of comparing roots
2020-02-17 12:39:30 -08:00
027ec71aa9 Remove AccountInfo's (De)Serialize (#8313)
automerge
2020-02-17 03:07:36 -08:00
ef718c651e Remove needless uses (#8312)
automerge
2020-02-17 02:43:14 -08:00
fc2a0d53d9 CLI: Add optional airdrop recipient (#8291)
* CLI: Add optional airdrop recipient

* Update book usage page
2020-02-16 11:41:00 -07:00
bb47844ae6 Bump thiserror from 1.0.10 to 1.0.11 (#8288)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.10 to 1.0.11.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.10...1.0.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-15 17:59:13 -07:00
b997d3eb4e Cli: Remove units from various subcommands (#8301)
* Cli: Remove unit arg from various subcommands

* Update book usage page

* Update scripts and docs
2020-02-15 12:53:52 -07:00
9bcca268a3 Add simple gossip DoS test 2020-02-14 22:40:35 -07:00
8a2d4e2f72 Add storage rewards pools in development mode only 2020-02-14 21:12:38 -07:00
335675c51c install: support vX.Y.Z in addition to X.Y.Z (#8297)
automerge
2020-02-14 19:35:40 -08:00
1bf2285fa2 ledger-tool: Add print-accounts command 2020-02-14 19:59:48 -07:00
71f77a8e0a Remove Exchange program's use of GenericError (#8290)
automerge
2020-02-14 14:52:13 -08:00
644a7f9a44 Remove Move Loader's use of GenericError (#8289)
automerge
2020-02-14 14:49:21 -08:00
965361ff69 Remove failure's use of GenericError (#8287)
automerge
2020-02-14 14:07:53 -08:00
4593d333c7 Remove BPF Loader's use of GenericError (#8284) 2020-02-14 13:59:03 -08:00
940519ea5a Remove Native Loader's use of GenericError (#8285) 2020-02-14 13:58:48 -08:00
a0bcbf70d5 Cleanup new_result_with_negative_lamports (#8286) 2020-02-14 13:58:33 -08:00
17fb8258e5 Datapoints overwhelm the metrics queue and blow up ram usage. (#8272)
automerge
2020-02-14 11:11:55 -08:00
c350543b46 Make generate_remote_keypair more generic for potential other remote-wallets (#8274) 2020-02-14 09:38:35 -07:00
5b4ecb01ca Presigner KeypairUtil implementer (#8269)
automerge
2020-02-13 16:53:09 -08:00
28b115497f Update setup-dc-node-1.sh 2020-02-13 14:30:41 -07:00
0604029661 Bump parking_lot from 0.7.1 to 0.10.0 (#8262)
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.7.1 to 0.10.0.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Amanieu/parking_lot/compare/0.7.1...0.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-13 14:24:37 -07:00
2374cf09e2 Enable remote-wallet signing in solana-keygen (#8267)
* Add fallible methods to KeypairUtil

* Add RemoteKeypair struct and impl KeypairUtil

* Implement RemoteKeypair in keygen; also add parse_keypair_path for cleanup
2020-02-13 14:08:34 -07:00
ab475e4849 get_confirmed_block: expect() less 2020-02-13 10:56:34 -07:00
1c97b31eaf Retain signature subscriptions that haven't been notified (#8261) 2020-02-14 01:00:50 +08:00
bd257050e3 Retry to curl to codecov.io unfortunately (#8263)
automerge
2020-02-13 06:23:10 -08:00
2d362ed337 Remove references to old unused testnets (#8258)
automerge
2020-02-12 22:23:35 -08:00
cb7117beac CLI: Offline-ify remaining stake ops (#8257)
automerge
2020-02-12 22:00:28 -08:00
b358ff66e1 Plumb --enable-rpc-get-confirmed-block flag 2020-02-12 17:08:27 -07:00
6309c97697 Add CliCommand::StakeSetLockup (#8248)
automerge
2020-02-12 15:36:29 -08:00
58727463e1 Remove needless last_root for better reclaims (#8148)
* Restore last_root to fix unintended storage delete

* Remove last_root thing altogether

* Remove unneeded test...
2020-02-13 08:19:53 +09:00
741d148a0d Simplify remote wallet (#8249)
automerge
2020-02-12 14:38:51 -08:00
127553ce4b Wrap ed25519_dalek::Keypair (#8247) 2020-02-12 14:15:12 -07:00
ecb055a252 Expel ContactInfo::new() (#8245)
automerge
2020-02-12 12:58:51 -08:00
dfa6fbaa0c Bump cbindgen from 0.13.0 to 0.13.1 (#8233)
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.13.0...v0.13.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 12:25:39 -07:00
cf11d4c7dc Nodes with a tvu and storage port are no longer double counted (#8237)
automerge
2020-02-12 11:16:07 -08:00
d0a4686990 Avoid assigning the serve repair port to the storage port 2020-02-12 12:00:11 -07:00
2542d5dd42 Bump baseline version to 0.23.4, improve error reporting 2020-02-12 11:59:12 -07:00
1e0f2b2446 Quash 'repair listener error: Err(RecvTimeoutError(Timeout))' log spam 2020-02-12 10:35:03 -07:00
a8028fbb93 Fix accounts_db store counts in purging accounts logic (#8218)
* Show insufficient purge_zero_lamport_account logic

* Add another pass to detect non-deleted values and increment the count

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-02-12 08:51:03 -08:00
ed87229cec CLI: Don't hide errors when fees are disabled (#8204)
automerge
2020-02-11 21:48:04 -08:00
c4fd81fc1c The getConfirmedBlock RPC API is now disabled by default
The --enable-rpc-get-confirmed-block flag allows validators to opt-in to
the higher disk usage and IOPS.
2020-02-11 22:24:08 -07:00
ad43babe3d ABI sanity test for running edge,beta,stable validators together 2020-02-11 21:21:31 -07:00
36c0cb052b set_read_timeout() can fail, don't expect() it not to 2020-02-11 18:57:14 -07:00
ed58bcda4c solana-install init edge when "edge" is not currently installed now works 2020-02-11 18:57:14 -07:00
268bb1b59b Fix RPC pub sub unsubscribe (#8208)
automerge
2020-02-11 17:09:40 -08:00
059764586a Rename from account userdata to data (#8224) 2020-02-11 16:30:22 -08:00
72b11081a4 Report validator rewards in getConfirmedBlock JSON RPC 2020-02-11 17:25:45 -07:00
0bbee9456f Add method to sign raw data, enabling easier device app testing (#8221)
* Add method to sign raw data, enabling easier device app testing

* Rename ugly derivation method, params
2020-02-11 17:15:38 -07:00
fcac910989 Bump jsonrpc-pubsub from 14.0.5 to 14.0.6 (#8162)
Bumps [jsonrpc-pubsub](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.0.6.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-pubsub-v14.0.5...ipc-14.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-11 15:44:21 -07:00
2e9ba149f2 Update LVM and rBPF versions (#8215) 2020-02-11 12:52:13 -08:00
d3712dd26d Factor repair from gossip (#8044) 2020-02-11 13:11:48 -07:00
60877f9ba4 Revert "Check for AVX512 at runtime to avoid invalid opcode trap (#8166)"
This reverts commit ef5fb6fa46.
2020-02-11 12:56:02 -07:00
4f2c76150f Clippy 2020-02-11 12:56:02 -07:00
137577fb86 Upgrade to rust 1.41.0 2020-02-11 12:56:02 -07:00
bf623219d2 nudge (#8214) 2020-02-11 10:50:57 -08:00
25d1f841ee Fixup sign_transaction; pass derivation_path by reference (#8194)
* Fixup sign_transaction; pass derivation_path by reference

* Pass total message length as BE u16

* Remove live integration tests (to ledger-app-solana)
2020-02-11 11:45:00 -07:00
517fe73734 Non-conflicting account duplicate marker value (#8206) 2020-02-11 10:03:28 -08:00
890919d140 Reliably track proc macro & build.rs code coverage (#8210) 2020-02-12 01:02:40 +09:00
33ea1e0edd Channel installs no longer re-download the same release. 2020-02-11 08:22:41 -07:00
7614af2a45 Verify frozen bank from snapshot by hashing (#8184) 2020-02-11 16:46:33 +09:00
1528959327 CLI: Add fee-payer parame to stake-split subcommand (#8201)
automerge
2020-02-10 23:23:54 -08:00
46b6cedff4 Fix nightly clippy warnings (#8199)
automerge
2020-02-10 22:48:50 -08:00
8d8f28c1d0 CLI: transfer fix checks pubkeys (#8198)
automerge
2020-02-10 22:34:14 -08:00
df782b93ae Add is_writable to AccountInfo (#8196) 2020-02-10 21:33:29 -08:00
124f77cdb1 Bump jsonrpc-ws-server from 14.0.5 to 14.0.6 (#8160)
Bumps [jsonrpc-ws-server](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.0.6.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-ws-server-v14.0.5...ipc-14.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 19:07:52 -07:00
fc15f74c3c CLI: Harden offline signing and tests (#8052)
* CLI: Don't sanity-check stake account when offline

* Add test helper returning vote pubkey with validator

* Delegate to the BSL. No need to force

* Be sure our offline ops are truly offline

* Specify our authorities correctly

* checks
2020-02-10 18:59:05 -07:00
1d06aa3b31 Remove repairman as its spamming cluster with unwanted repairs (#8193)
* Remove repairman as its spamming cluster with unwanted repairs

* remove obsolete test
2020-02-10 17:00:00 -08:00
0b263f8714 Fix larger than necessary allocations in streamer (#8187) 2020-02-10 11:49:07 -08:00
84b3e12e1f Minor logging improvements 2020-02-10 10:42:42 -07:00
669282ae69 Bump jsonrpc-http-server from 14.0.5 to 14.0.6 (#8161)
Bumps [jsonrpc-http-server](https://github.com/paritytech/jsonrpc) from 14.0.5 to 14.0.6.
- [Release notes](https://github.com/paritytech/jsonrpc/releases)
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-http-server-v14.0.5...ipc-14.0.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-10 10:30:32 -07:00
485806c488 Just define BnakSlotDelta type alias (#8186)
automerge
2020-02-10 03:11:37 -08:00
1412ee1ca6 add step "apt-get update", add package "libudev-dev" (#8180)
automerge
2020-02-08 14:45:07 -08:00
ef5fb6fa46 Check for AVX512 at runtime to avoid invalid opcode trap (#8166)
automerge
2020-02-07 15:01:45 -08:00
99432833d2 Remove reed-solomon-erasure from core/ 2020-02-07 15:37:57 -07:00
fa00803fbf Filter old CrdsValues received via Pull Responses in Gossip (#8150)
* Add CrdsValue timeout checks on Pull Responses

* Allow older values to enter Crds as long as a ContactInfo exists

* Allow staked contact infos to be inserted into crds if they haven't expired

* Try and handle oveflows

* Fix test

* Some comments

* Fix compile

* fix test deadlock

* Add a test for processing timed out values received via pull response
2020-02-07 12:38:24 -08:00
04ef977509 Remove unwanted println 2020-02-07 12:59:00 -07:00
87c6508305 CLI: Implement transfer command (#8108)
* CLI: Add transfer subcommand

* Add tests

* checks
2020-02-07 12:16:35 -07:00
ed0c1d3b52 Ledger hardware wallet integration (#8068)
* Initial remote wallet module

* Add clap derivation tooling

* Add remote-wallet path apis

* Implement remote-wallet in solana-keygen

* Implement remote-wallet in cli for read-only pubkey usage

* Linux: Use udev backend; add udev rules tool

* Ignore Ledger live test

* Cli api adjustments
2020-02-07 11:26:56 -07:00
8b5598fabd Surface shred version more in tools (#8163)
automerge
2020-02-07 08:57:54 -08:00
5b070ad014 CLI: Support offline fee payers (#8009)
* CLI: Support offline fee-payer

* Add some knobs to test genesis/validator helpers

* Add tests
2020-02-07 09:14:26 -07:00
6246405afd Bump memmap from 0.6.2 to 0.7.0 (#8157)
Bumps [memmap](https://github.com/danburkert/memmap-rs) from 0.6.2 to 0.7.0.
- [Release notes](https://github.com/danburkert/memmap-rs/releases)
- [Commits](https://github.com/danburkert/memmap-rs/compare/0.6.2...0.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-07 06:51:31 -07:00
27c8ba6afc De-replicode Tower constructors (#8153)
automerge
2020-02-06 18:24:10 -08:00
b832a03315 Add libudev-dev to docker image to build remote-wallet (#8149)
automerge
2020-02-06 13:45:05 -08:00
09686290bc Grant custodian access to all locked up accounts (#8139) 2020-02-06 14:31:27 -07:00
4aaa7b30ca Update README.md 2020-02-06 13:19:30 -07:00
fe590da3b6 Revert "Factor repair from gossip (#8044)" (#8143)
This reverts commit e61257695f.
2020-02-06 11:44:20 -08:00
a7fa92b372 feat: implementation of live-slots command (#8129) 2020-02-06 14:16:30 -05:00
a25e57c397 Ignore flaky test_exchange_local_cluster (#8146)
automerge
2020-02-06 10:44:17 -08:00
eed676113e Bump indexmap from 1.3.1 to 1.3.2 (#8144)
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Commits](https://github.com/bluss/indexmap/compare/1.3.1...1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-06 11:16:49 -07:00
b57f24f1bc Bump tokio-codec from 0.1.1 to 0.1.2 (#8126)
Bumps [tokio-codec](https://github.com/tokio-rs/tokio) from 0.1.1 to 0.1.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-codec-0.1.1...0.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-06 11:16:29 -07:00
0e084358b4 Fix slot_hashes documentation 2020-02-06 10:06:16 -07:00
f016c9a669 Maintenance : simplify a few patterns, remove unneeded dependencies (#8137)
* Simplify a few pattern matches

* Removing unneeded dependencies, upgrading internal version #s

 net-shaper: Removing log, semver, serde_derive
 bench-tps: Removing serde, serde_derive
 banking-bench: Removing solana
 ledger-tool: Removing bincode, serde, serde_derive
 librapay: Removing solana, language_e2e_tests
 log-analyzer: Removing log, semver, serde_derive
 exchange: Removing solana
 core: Removing crc, memmap, symlink, untrusted
 perf: Removing serde_derive
 genesis: Removing hex, serde_derive
 sdk-c: Removing sha2
 sys-tuner: Removing semver
 bench-exchange: Removing bincode, bs58, env_logger, serde, serde_derive, untrusted, ws
 btc_spv_bin: Removing serde_json
 btc_spv: Removing chrono
 bpf_loader: Removing serde
 ledger: Removing dlopen, dlopen_derive, serde_derive
 move_loader: Removing byteorder, libc, language_e2e_tests
 ownable: Removing serde, serde_derive
 client: Removing rand
 archiver-utils: Removing rand_chacha
 validator: Removing serde_json, tempfile
 param_passing_dep: Removing solana
 failure: Removing log
 vest: Removing log
 vote-signer: Removing bs58, serde
 local-cluster: Removing symlink
 keygen: Removing rpassword
 install: Removing bs58, log
 upload-perf: Removing log
 runtime: Removing serde_json
 stake: Removing rand

* Add modified Cargo.lock

* fixup! Simplify a few pattern matches

* fixup! Simplify a few pattern matches
2020-02-06 10:02:38 -07:00
59ba1df910 Bump tokio-fs from 0.1.6 to 0.1.7 (#8124)
Bumps [tokio-fs](https://github.com/tokio-rs/tokio) from 0.1.6 to 0.1.7.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Changelog](https://github.com/tokio-rs/tokio/blob/tokio-0.1.7/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-fs-0.1.6...tokio-0.1.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-05 16:27:32 -07:00
71a2c90f21 Bump tokio-io from 0.1.12 to 0.1.13 (#8125)
Bumps [tokio-io](https://github.com/tokio-rs/tokio) from 0.1.12 to 0.1.13.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Changelog](https://github.com/tokio-rs/tokio/blob/tokio-0.1.13/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-io-0.1.12...tokio-0.1.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-05 14:02:33 -07:00
8436457e75 Rename program_utils.rs (#8127) 2020-02-05 12:48:30 -08:00
3ac0192d40 Better surface bank hash verification failures 2020-02-05 11:39:47 -07:00
3db159f616 CLI cosmetic: make config get and verbose prints consistent (#8119)
* CLI cosmetic: make config get and verbose prints consistent

* Make print format consistent across cli
2020-02-05 11:14:44 -07:00
e21f5c784e Add next_account_info() (#8120) 2020-02-04 17:04:26 -08:00
65c24db83c Bump serde_json from 1.0.44 to 1.0.46 (#8087)
* Bump serde_json from 1.0.44 to 1.0.46

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.44 to 1.0.46.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.44...v1.0.46)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Update Move's serde_json to v1.0.46

Co-authored-by: Jack May <jack@solana.com>
2020-02-04 16:59:23 -08:00
ed5101b031 Generate max coding shreds when necessary (#8099)
* Generate max coding shreds when necessary

* test
2020-02-04 15:45:01 -08:00
1420628b28 Bump nix from 0.16.1 to 0.17.0 (#8112)
Bumps [nix](https://github.com/nix-rust/nix) from 0.16.1 to 0.17.0.
- [Release notes](https://github.com/nix-rust/nix/releases)
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/commits/v0.17.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 15:59:34 -07:00
15ab966ed1 Move native program entrypoint out of instruction_processor_utils (#8122) 2020-02-04 14:54:49 -08:00
b5a735878a Sysvar account_into return program error rather than option (#8121) 2020-02-04 14:54:41 -08:00
b6d09f1901 Add BPF program entrypoint return type (#8111) 2020-02-04 12:25:42 -08:00
78f6ddc5b7 Fix spelling of verification in accounts_db (#8117)
automerge
2020-02-04 11:45:47 -08:00
4e595e8e3c Facilitate printing program errors from BPF programs (#8109) 2020-02-04 09:03:45 -08:00
79249360f7 CLI: Expose sign-only reply parsing helper (#8107)
automerge
2020-02-03 18:22:36 -08:00
336d5136bf Print more program error info to user when using CLI (#8098) 2020-02-03 17:14:53 -08:00
0c8cee8c4a Refactor select_fork() to avoid clones and for clarity (#8081)
* Refactor select_fork() to avoid clones and for clarity

* Add test that fork weights are increasing
2020-02-03 16:48:24 -08:00
4c0420b884 Delete uptime command, report total credits in solana validators instead 2020-02-03 16:55:33 -07:00
0d7e093415 Broaden pattern in nits.sh to be less fragile (#8090)
* Broaden pattern in nits.sh to be less fragile

* Even more general matching
2020-02-04 08:53:01 +09:00
c835749563 Bump sys-info from 0.5.8 to 0.5.9 (#8089)
Bumps [sys-info](https://github.com/FillZpp/sys-info-rs) from 0.5.8 to 0.5.9.
- [Release notes](https://github.com/FillZpp/sys-info-rs/releases)
- [Changelog](https://github.com/FillZpp/sys-info-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FillZpp/sys-info-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-03 14:49:39 -07:00
0172d2a065 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 13:44:34 -08:00
927f272f0e Update book release version 2020-02-03 11:35:51 -07:00
5e2891ae5d e 2020-02-03 11:34:00 -07:00
4f85481a2b Add split-stake command 2020-02-03 11:14:08 -07:00
d314e0395a Disable windows update as windows build artifacts are turned off 2020-02-01 22:25:24 -07:00
69a6d07371 Reduce rpc client pre-flight requests by setting max-age header (#8082)
automerge
2020-02-01 04:10:26 -08:00
fab8ef379f Use solana-cli config keypair in solana-keygen (#8074)
* Use solana-cli config keypair in solana-keygen

* s/infile/keypair for consistency across modules and more generality across access methods

* Move config into separate crate
2020-01-31 19:27:37 -07:00
408ef8b2cb Cleanup staking doc (#8064) 2020-01-31 19:24:51 -07:00
a2a2f1c2d2 Add new colo test cases using reduced node count (#8078)
automerge
2020-01-31 18:02:48 -08:00
dc2888c9a3 CLI: De-replicode SigningAuthority instatiation (#8076)
automerge
2020-01-31 16:30:37 -08:00
9739be9ecf CLI: Fix stake-account auth withdrawer output (#8071)
automerge
2020-01-31 14:25:05 -08:00
e61257695f Factor repair from gossip (#8044) 2020-01-31 14:23:50 -08:00
b9988b62e4 Filter repairman peers based on shred_version (#8069) 2020-01-31 14:00:19 -08:00
d6b3961530 s/mint/faucet 2020-01-31 12:14:53 -07:00
6d0be323ad Update key (#8062)
automerge
2020-01-31 11:11:22 -08:00
09256adbc3 Surface important error details 2020-01-31 12:09:41 -07:00
8e3a7da596 Rewrite new() in terms of new_with_timeout() 2020-01-31 12:09:41 -07:00
7d96510d17 Fix stake-account subcommand name 2020-01-31 12:09:41 -07:00
0fd795a676 Remove program error footgun and cleaner developer experience (#8042) 2020-01-31 10:58:07 -08:00
eff876881b Remove asteroids and pacman from QA/dev testnet availability (#8050)
automerge
2020-01-31 10:26:25 -08:00
9adf0d4ee0 Don't exit early if add. validators not found during gce.sh config 2020-01-31 08:34:10 -07:00
3bc9789e8d Remove support for 0.22.3 snapshots 2020-01-30 23:34:15 -07:00
fd207b6907 Fix stale gossip entrypoint (#8053) 2020-01-30 21:51:11 -08:00
2226c1b75c Add Rust BPF RefCell borrow helpers (#8047) 2020-01-30 20:40:27 -08:00
a0964bb2c2 Make tds slots-per-epoch configurable 2020-01-30 21:37:16 -07:00
b5383b8b54 Dial testnet down to a single node 2020-01-30 21:30:08 -07:00
39f86050a6 Bump cbindgen from 0.12.2 to 0.13.0
Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.12.2 to 0.13.0.
- [Release notes](https://github.com/eqrion/cbindgen/releases)
- [Changelog](https://github.com/eqrion/cbindgen/blob/master/CHANGES)
- [Commits](https://github.com/eqrion/cbindgen/compare/v0.12.2...v0.13.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-30 20:58:10 -07:00
a03d441e6f Add rpc port sanity checks, fix tests 2020-01-30 20:57:58 -07:00
3900d09f6f Employ rpc_port defaults 2020-01-30 20:57:58 -07:00
e218f4e56e Clean up Validator::new() 2020-01-30 20:57:58 -07:00
81ba18eea6 Add --private-rpc flag 2020-01-30 20:57:58 -07:00
1671ece9df Book: Prod the user to verify their new paper wallet (#8048) 2020-01-30 17:20:04 -07:00
775fa0c968 Minor --expected-shred fix, clean up shred-related gossip log messages (#8041)
automerge
2020-01-30 13:22:05 -08:00
dd276138c2 Add support for idiomatic error handling to BPF instruction processors (#7968) 2020-01-30 09:47:22 -08:00
0c55b37976 Add different shred test to test_tvu_peers_and_stakes 2020-01-30 10:30:32 -07:00
966d077431 CLI: Disallow blockhash/fee-calc lookups when offline (#7981)
* CLI: Add BlockhashSpec to tighten control over --blockhash

* Use BlockhashSpec

* Add a matches-free constructor

* More descriptive naming
2020-01-30 09:21:32 -07:00
400412d76c Ignore slow archiver tests (#8032)
automerge
2020-01-30 08:17:36 -08:00
c7e77a2238 Bump indicatif from 0.13.0 to 0.14.0
Bumps [indicatif](https://github.com/mitsuhiko/indicatif) from 0.13.0 to 0.14.0.
- [Release notes](https://github.com/mitsuhiko/indicatif/releases)
- [Commits](https://github.com/mitsuhiko/indicatif/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-30 08:58:00 -07:00
64c42e28dc Add shred version filters to Crds Accessors (#8027)
* Add shred version filters to Crds Accessors

* Adopt entrypoint shred_version if one isn't provided
2020-01-30 00:15:37 -08:00
c2baf7b07d Bump thiserror from 1.0.9 to 1.0.10
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.9 to 1.0.10.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.9...1.0.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 23:23:24 -07:00
a52a9afa3c Bump console from 0.9.1 to 0.9.2
Bumps [console](https://github.com/mitsuhiko/console) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/mitsuhiko/console/releases)
- [Commits](https://github.com/mitsuhiko/console/compare/0.9.1...0.9.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 23:22:44 -07:00
669502ede7 Don't depend on user modifiable data to parse paramter buffer (#8022) 2020-01-29 21:49:42 -08:00
b19f730527 Seperate RefCells lamports and data (#8021) 2020-01-29 21:15:04 -08:00
d5ff5f4739 Update solana_rbpf v0.1.20 (#8023) 2020-01-29 21:14:49 -08:00
1c82f84595 Add leader-schedule subcommand 2020-01-29 20:08:42 -07:00
bea9cd9684 Add --expected-shred-version option 2020-01-29 20:08:42 -07:00
1bc9a9c23b Wait for supermajority by default, add --no-wait-for-supermajority flag to override 2020-01-29 20:08:42 -07:00
c4faccc77f getClusterNodes now excludes validators with a different shred version 2020-01-29 20:08:42 -07:00
e6803daf10 Remove support for stake redelegation (#7995)
* Remove support for stake redelegation

* fixup
2020-01-29 17:59:14 -08:00
effe6e3ff3 Log solana-validator args on startup to aid debugging 2020-01-29 08:27:52 -07:00
0d6c233747 Add set_lockup to stake (#7997) 2020-01-28 20:59:53 -08:00
015e696077 Solana keygen grind improvements (#8008)
automerge
2020-01-28 20:19:19 -08:00
7faab2072c Cleanup BPF use syntax (#8001) 2020-01-28 17:03:37 -08:00
83718a3b3e Cleanup runtime use syntax (#8002) 2020-01-28 17:03:20 -08:00
4a074133f7 CLI: Fix tests. sign_only requires a blockhash (#8005)
This is enforced by argument parsing and will be better enforced wholly
with #7981
2020-01-28 18:02:20 -07:00
12eff5a2f9 Cleanup SDK use syntax (#8004) 2020-01-28 16:11:22 -08:00
4197cce8c9 Tower tests (#7974)
* Add testing framework for voting
2020-01-28 16:02:28 -08:00
fed3817ed3 Update and fix transaction error documentation (#7998) 2020-01-28 15:59:50 -08:00
4ffd7693d6 Add lock to make sure slot-based locktree calls are safe (#7993) 2020-01-28 13:45:41 -08:00
1596c961d9 Rust BPF program cleanup (#7990) 2020-01-27 18:27:44 -08:00
fd7d5cbe0d Fix compute_shred_version() (#7989)
automerge
2020-01-27 17:05:31 -08:00
7058287273 Consensus fix, don't consider threshold check if.. (#7948)
* Consensus fix, don't consider threshold check if

lockouts are not increased

* Change partition tests to wait for epoch with > lockout slots

* Use atomic bool to signal partition
2020-01-27 16:49:25 -08:00
912aafcefd Reduce epoch duration from 2 weeks to 2 days 2020-01-27 10:34:55 -07:00
2f34f433b3 Specify where VM images are coming from across GCE projects (#7985)
automerge
2020-01-27 08:17:21 -08:00
1ff4dd9a9a Remove show- prefix 2020-01-26 21:00:57 -07:00
fdcaad96c7 Remove stray key 2020-01-26 14:35:33 -07:00
14a72b0fc0 CLI: --sign-only and --signer require --blockhash (#7982) 2020-01-26 10:06:21 -07:00
c13ab9f14e CLI: Consolidate offline arg declarations (#7979)
automerge
2020-01-26 00:27:24 -08:00
cff1bc6e71 s/dervied/derived/ 2020-01-25 23:22:28 -07:00
bb6c4efe9b CLI: Deterministic dummy keypair generation for SigningAuthority::Offline (#7971)
* CLI: Deterministic dummy keypair generation for SigningAuthority::Offline

* Add test
2020-01-25 22:14:07 -07:00
c324e71768 Bump cargo toml versions to 0.24.0 (#7976) 2020-01-25 11:04:27 -06:00
2113 changed files with 256774 additions and 67077 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@ -1,42 +0,0 @@
version: '{build}'
branches:
only:
- master
- /^v[0-9.]+\.[0-9.]+/
cache:
- '%USERPROFILE%\.cargo'
- '%APPVEYOR_BUILD_FOLDER%\target'
clone_folder: d:\projects\solana
build_script:
- bash ci/publish-tarball.sh
notifications:
- provider: Slack
incoming_webhook:
secure: GJsBey+F5apAtUm86MHVJ68Uqa6WN1SImcuIc4TsTZrDhA8K1QWUNw9FFQPybUWDyOcS5dly3kubnUqlGt9ux6Ad2efsfRIQYWv0tOVXKeY=
channel: ci-status
on_build_success: false
on_build_failure: true
on_build_status_changed: true
deploy:
- provider: S3
access_key_id:
secure: fTbJl6JpFebR40J7cOWZ2mXBa3kIvEiXgzxAj6L3N7A=
secret_access_key:
secure: vItsBXb2rEFLvkWtVn/Rcxu5a5+2EwC+b7GsA0waJy9hXh6XuBAD0lnHd9re3g/4
bucket: release.solana.com
region: us-west-1
set_public: true
- provider: GitHub
auth_token:
secure: 81fEmPZ0cV1wLtNuUrcmtgxKF6ROQF1+/ft5m+fHX21z6PoeCbaNo8cTyLioWBj7
draft: false
prerelease: false
on:
appveyor_repo_tag: true

View File

@ -1,15 +1,6 @@
{
"_public_key": "ae29f4f7ad2fc92de70d470e411c8426d5d48db8817c9e3dae574b122192335f",
"environment": {
"CODECOV_TOKEN": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:JnxhrIxh09AvqdJgrVSYmb7PxSrh19aE:07WzVExCHEd1lJ1m8QizRRthGri+WBNeZRKjjEvsy5eo4gv3HD7zVEm42tVTGkqITKkBNQ==]",
"CRATES_IO_TOKEN": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:d0jJqC32/axwzq/N7kMRmpxKhnRrhtpt:zvcPHwkOzGnjhNkAQSejwdy1Jkr9wR1qXFFCnfIjyt/XQYubzB1tLkoly/qdmeb5]",
"GEOLOCATION_API_KEY": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:R4gfB6Ey4i50HyfLt4UZDLBqg3qHEUye:UfZCOgt8XI6Y2g+ivCRVoS1fjFycFs7/GSevvCqh1B50mG0+hzpEyzXQLuKG5OeI]",
"GITHUB_TOKEN": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:Vq2dkGTOzfEpRht0BAGHFp/hDogMvXJe:tFXHg1epVt2mq9hkuc5sRHe+KAnVREi/p8S+IZu67XRyzdiA/nGak1k860FXYuuzuaE0QWekaEc=]",
"INFLUX_DATABASE": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:5KI9WBkXx3R/W4m256mU5MJOE7N8aAT9:Cb8QFELZ9I60t5zhJ9h55Kcs]",
"INFLUX_PASSWORD": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:hQRMpLCrav+OYkNphkeM4hagdVoZv5Iw:AUO76rr6+gF1OLJA8ZLSG8wHKXgYCPNk6gRCV8rBhZBJ4KwDaxpvOhMl7bxxXG6jol7v4aRa/Lk=]",
"INFLUX_USERNAME": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:R7BNmQjfeqoGDAFTJu9bYTGHol2NgnYN:Q2tOT/EBcFvhFk+DKLKmVU7tLCpVC3Ui]",
"SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_unknown_linux_gnu": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:Egc2dMrHDU0NcZ71LwGv/V66shUhwYUE:04VoIb8CKy7KYhQ5W4cEW9SDKZltxWBL5Hob106lMBbUOD/yUvKYcG3Ep8JfTMwO3K8zowW5HpU/IdGoilX0XWLiJJ6t+p05WWK0TA16nOEtwrEG+UK8wm3sN+xCO20i4jDhpNpgg3FYFHT5rKTHW8+zaBTNUX/SFxkN67Lm+92IM28CXYE43SU1WV6H99hGFFVpTK5JVM3JuYU1ex/dHRE+xCzTr4MYUB/F+nGoNFW8HUDV/y0e1jxT9to3x0SmnytEEuk+5RUzFuEt9cKNFeNml3fOCi4qL+sfj/Y5pjH9xDiUxsvH/8NL35jbLP244aFHgWcp]",
"SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_apple_darwin": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:NeOxSoWCvXB9AL4H6OK26l/7bmsKd/oz:Ijfoxtvk2CHlN1ZXHup3Gg/914kbbAkEGWJfvozA8UIe+aUzUObMyTrKkVOeNAH8Q8YH9tNzk7RRnrTcpnzeCCBLlWcVEeruMxHox3mPRzmSeDLxtbzCl9VePlRO3T7jg90K5hW+ZAkd5J/WJNzpAcmr93ts/of3MbvGHSujId/efCTzJEcP6JInnBb8Vrj7TlgKbzUlnqpq1+NjYPSXN3maKa9pKeo2JWxZlGBMoy6QWUUY5GbYEylw9smwh1LJcHZjlaZNMuOl4gNKtaSr38IXQkAXaRUJDPAmPras00YObKzXU8RkTrP4EoP/jx5LPR7f]",
"SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_pc_windows_msvc": "EJ[1:yGpTmjdbyjW2kjgIHkFoJv7Ue7EbUvUbqHyw6anGgWg=:7t+56twjW+jR7fpFNNeRFLPd7E4lbmyN:JuviDpkQrfVcNUGRGsa2e/UhvH6tTYyk1s4cHHE5xZH1NByL7Kpqx36VG/+o1AUGEeSQdsBnKgzYdMoFYbO8o50DoRPc86QIEVXCupD6J9avxLFtQgOWgJp+/mCdUVXlqXiFs/vQgS/L4psrcKdF6WHd77BeUr6ll8DjH+9m5FC9Rcai2pXno6VbPpunHQ0oUdYzhFR64+LiRacBaefQ9igZ+nSEWDLqbaZSyfm9viWkijoVFTq8gAgdXXEh7g0QdxVE5T6bPristJhT6jWBhWunPUCDNFFErWIsbRGctepl4pbCWqh2hNTw9btSgVfeY6uGCOsdy9E=]"
"CODECOV_TOKEN": "EJ[1:Z7OneT3RdJJ0DipCHQ7rC84snQ+FPbgHwZADQiz54wk=:3K68mE38LJ2RB98VWmjuNLFBNn1XTGR4:cR4r05/TOZQKmEZp1v4CSgUJtC6QJiOaL85QjXW0qZ061fMnsBA8AtAPMDoDq4WCGOZM1A==]"
}
}

View File

@ -3,16 +3,19 @@
#
# Save target/ for the next CI build on this machine
#
(
if [[ -z $CARGO_TARGET_CACHE ]]; then
echo "+++ CARGO_TARGET_CACHE not defined" # pre-command should have defined it
else
(
set -x
d=$HOME/cargo-target-cache/"$BUILDKITE_LABEL"
mkdir -p "$d"
mkdir -p "$CARGO_TARGET_CACHE"
set -x
rsync -a --delete --link-dest="$PWD" target "$d"
du -hs "$d"
read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$d")
echo "--- ${cacheSizeInGB}GB: $d"
)
rsync -a --delete --link-dest="$PWD" target "$CARGO_TARGET_CACHE"
du -hs "$CARGO_TARGET_CACHE"
read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$CARGO_TARGET_CACHE")
echo "--- ${cacheSizeInGB}GB: $CARGO_TARGET_CACHE"
)
fi
#
# Add job_stats data point

View File

@ -11,23 +11,29 @@ export PS4="++"
#
# Restore target/ from the previous CI build on this machine
#
eval "$(ci/channel-info.sh)"
export CARGO_TARGET_CACHE=$HOME/cargo-target-cache/"$CHANNEL"-"$BUILDKITE_LABEL"
(
set -x
d=$HOME/cargo-target-cache/"$BUILDKITE_LABEL"
MAX_CACHE_SIZE=18 # gigabytes
if [[ -d $d ]]; then
du -hs "$d"
read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$d")
echo "--- ${cacheSizeInGB}GB: $d"
if [[ -d $CARGO_TARGET_CACHE ]]; then
du -hs "$CARGO_TARGET_CACHE"
read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$CARGO_TARGET_CACHE")
echo "--- ${cacheSizeInGB}GB: $CARGO_TARGET_CACHE"
if [[ $cacheSizeInGB -gt $MAX_CACHE_SIZE ]]; then
echo "--- $d is too large, removing it"
rm -rf "$d"
echo "--- $CARGO_TARGET_CACHE is too large, removing it"
rm -rf "$CARGO_TARGET_CACHE"
fi
else
echo "--- $d not present"
echo "--- $CARGO_TARGET_CACHE not present"
fi
mkdir -p "$d"/target
rsync -a --delete --link-dest="$d" "$d"/target .
mkdir -p "$CARGO_TARGET_CACHE"/target
rsync -a --delete --link-dest="$CARGO_TARGET_CACHE" "$CARGO_TARGET_CACHE"/target .
# Don't reuse BPF target build artifacts due to incremental build issues with
# `std:
# "found possibly newer version of crate `std` which `xyz` depends on
rm -rf target/bpfel-unknown-unknown
)

View File

@ -9,23 +9,10 @@
set -e
cd "$(dirname "$0")"/..
source ci/_
if [[ -n $BUILDKITE_TAG ]]; then
buildkite-agent annotate --style info --context release-tag \
"https://github.com/solana-labs/solana/releases/$BUILDKITE_TAG"
buildkite-agent pipeline upload ci/buildkite-release.yml
else
if [[ $BUILDKITE_BRANCH =~ ^pull ]]; then
# Add helpful link back to the corresponding Github Pull Request
buildkite-agent annotate --style info --context pr-backlink \
"Github Pull Request: https://github.com/solana-labs/solana/$BUILDKITE_BRANCH"
fi
_ ci/buildkite-pipeline.sh pipeline.yml
echo +++ pipeline
cat pipeline.yml
if [[ $BUILDKITE_MESSAGE =~ GitBook: ]]; then
buildkite-agent annotate --style info --context gitbook-ci-skip \
"GitBook commit detected, CI skipped"
exit
fi
buildkite-agent pipeline upload ci/buildkite.yml
fi
_ buildkite-agent pipeline upload pipeline.yml

View File

@ -1,5 +0,0 @@
root: ./book/src
structure:
readme: introduction.md
summary: SUMMARY.md

41
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,41 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: daily
time: "01:00"
timezone: America/Los_Angeles
#labels:
# - "automerge"
open-pull-requests-limit: 3
- package-ecosystem: npm
directory: "/web3.js"
schedule:
interval: daily
time: "01:00"
timezone: America/Los_Angeles
labels:
- "automerge"
commit-message:
prefix: "chore:"
open-pull-requests-limit: 3
- package-ecosystem: npm
directory: "/explorer"
schedule:
interval: daily
time: "01:00"
timezone: America/Los_Angeles
labels:
- "automerge"
commit-message:
prefix: "chore:"
include: "scope"
open-pull-requests-limit: 3

1
.github/stale.yml vendored
View File

@ -9,6 +9,7 @@ daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- security
- blocked
# Label to use when marking a pull request as stale
staleLabel: stale

13
.gitignore vendored
View File

@ -1,6 +1,7 @@
/book/html/
/book/src/tests.ok
/book/src/.gitbook/assets/*.svg
/docs/html/
/docs/src/tests.ok
/docs/src/cli/usage.md
/docs/src/.gitbook/assets/*.svg
/farf/
/solana-release/
/solana-release.tar.bz2
@ -22,3 +23,9 @@ log-*/
/.idea/
/solana.iml
/.vscode/
# fetch-spl.sh artifacts
/spl-genesis-args.sh
/spl_*.so
.DS_Store

View File

@ -1,9 +1,40 @@
# Validate your changes with:
#
# $ curl -F 'data=@.mergify.yml' https://gh.mergify.io/validate
# $ curl -F 'data=@.mergify.yml' https://gh.mergify.io/validate/
#
# https://doc.mergify.io/
pull_request_rules:
- name: automatic merge (squash) on CI success
conditions:
- status-success=buildkite/solana
- status-success=Travis CI - Pull Request
- status-success=ci-gate
- label=automerge
- author≠@dont-squash-my-commits
actions:
merge:
method: squash
# Join the dont-squash-my-commits group if you won't like your commits squashed
- name: automatic merge (rebase) on CI success
conditions:
- status-success=buildkite/solana
- status-success=Travis CI - Pull Request
- status-success=ci-gate
- label=automerge
- author=@dont-squash-my-commits
actions:
merge:
method: rebase
- name: remove automerge label on CI failure
conditions:
- label=automerge
- "#status-failure!=0"
actions:
label:
remove:
- automerge
comment:
message: automerge label removed due to a CI failure
- name: remove outdated reviews
conditions:
- base=master
@ -19,27 +50,27 @@ pull_request_rules:
label:
add:
- automerge
- name: v0.22 backport
- name: v1.1 backport
conditions:
- base=master
- label=v0.22
- label=v1.1
actions:
backport:
ignore_conflicts: true
branches:
- v0.22
- name: v0.23 backport
- v1.1
- name: v1.2 backport
conditions:
- base=master
- label=v0.23
- label=v1.2
actions:
backport:
ignore_conflicts: true
branches:
- v0.23
- name: v0.24 backport
- v1.2
- name: v1.3 backport
conditions:
- base=master
- label=v0.24
- label=v1.3
actions:
backport:
ignore_conflicts: true
branches:
- v0.24
- v1.3

View File

@ -1,28 +1,43 @@
os:
- osx
language: rust
rust:
- stable
install:
- source ci/rust-version.sh
script:
- source ci/env.sh
- ci/publish-tarball.sh
branches:
only:
- master
- /^v\d+\.\d+/
notifications:
email: false
slack:
on_success: change
if: NOT type = pull_request
secure: F4IjOE05MyaMOdPRL+r8qhs7jBvv4yDM3RmFKE1zNXnfUOqV4X38oQM1EI+YVsgpMQLj/pxnEB7wcTE4Bf86N6moLssEULCpvAuMVoXj4QbWdomLX+01WbFa6fLVeNQIg45NHrz2XzVBhoKOrMNnl+QI5mbR2AlS5oqsudHsXDnyLzZtd4Y5SDMdYG1zVWM01+oNNjgNfjcCGmOE/K0CnOMl6GPi3X9C34tJ19P2XT7MTDsz1/IfEF7fro2Q8DHEYL9dchJMoisXSkem5z7IDQkGzXsWdWT4NnndUvmd1MlTCE9qgoXDqRf95Qh8sB1Dz08HtvgfaosP2XjtNTfDI9BBYS15Ibw9y7PchAJE1luteNjF35EOy6OgmCLw/YpnweqfuNViBZz+yOPWXVC0kxnPIXKZ1wyH9ibeH6E4hr7a8o9SV/6SiWIlbYF+IR9jPXyTCLP/cc3sYljPWxDnhWFwFdRVIi3PbVAhVu7uWtVUO17Oc9gtGPgs/GrhOMkJfwQPXaudRJDpVZowxTX4x9kefNotlMAMRgq+Drbmgt4eEBiCNp0ITWgh17BiE1U09WS3myuduhoct85+FoVeaUkp1sxzHVtGsNQH0hcz7WcpZyOM+AwistJA/qzeEDQao5zi1eKWPbO2xAhi2rV1bDH6bPf/4lDBwLRqSiwvlWU=
deploy:
os: linux
dist: bionic
language: minimal
jobs:
include:
- name: "Export Github Repositories"
if: type IN (push, cron) AND branch = master
language: python
git:
depth: false
script:
- .travis/export-github-repo.sh web3.js/ solana-web3.js
- .travis/export-github-repo.sh explorer/ explorer
- &release-artifacts
if: type IN (api, cron) OR tag IS present
name: "macOS release artifacts"
os: osx
language: rust
rust:
- stable
install:
- source ci/rust-version.sh
script:
- source ci/env.sh
- ci/publish-tarball.sh
deploy:
- provider: s3
access_key_id: $AWS_ACCESS_KEY_ID
secret_access_key: $AWS_SECRET_ACCESS_KEY
@ -34,9 +49,86 @@ deploy:
on:
all_branches: true
- provider: releases
api_key: $GITHUB_TOKEN
token: $GITHUB_TOKEN
skip_cleanup: true
file_glob: true
file: travis-release-upload/*
on:
tags: true
- <<: *release-artifacts
name: "Windows release artifacts"
os: windows
# Linux release artifacts are still built by ci/buildkite-secondary.yml
#- <<: *release-artifacts
# name: "Linux release artifacts"
# os: linux
# before_install:
# - sudo apt-get install libssl-dev libudev-dev
# explorer pull request
- name: "explorer"
if: type = pull_request AND branch = master
language: node_js
node_js:
- "node"
cache:
directories:
- ~/.npm
before_install:
- .travis/affects.sh explorer/ .travis || travis_terminate 0
- cd explorer
script:
- npm run build
- npm run format
# web3.js pull request
- name: "web3.js"
if: type = pull_request AND branch = master
language: node_js
node_js:
- "lts/*"
services:
- docker
cache:
directories:
- ~/.npm
before_install:
- .travis/affects.sh web3.js/ .travis || travis_terminate 0
- cd web3.js/
- source .travis/before_install.sh
script:
- ../.travis/commitlint.sh
- source .travis/script.sh
# docs pull request
- name: "docs"
if: type IN (push, pull_request) OR tag IS present
language: node_js
node_js:
- "node"
services:
- docker
cache:
directories:
- ~/.npm
before_install:
- source ci/env.sh
- .travis/channel_restriction.sh edge beta || travis_terminate 0
- .travis/affects.sh docs/ .travis || travis_terminate 0
- cd docs/
- source .travis/before_install.sh
script:
- source .travis/script.sh

25
.travis/affects.sh Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
#
# Check if files in the commit range match one or more prefixes
#
# Always run the job if we are on a tagged release
if [[ -n "$TRAVIS_TAG" ]]; then
exit 0
fi
(
set -x
git diff --name-only "$TRAVIS_COMMIT_RANGE"
)
for file in $(git diff --name-only "$TRAVIS_COMMIT_RANGE"); do
for prefix in "$@"; do
if [[ $file =~ ^"$prefix" ]]; then
exit 0
fi
done
done
echo "No modifications to $*"
exit 1

19
.travis/channel_restriction.sh Executable file
View File

@ -0,0 +1,19 @@
#!/usr/bin/env bash
#
# Only proceed if we are on one of the channels passed in, or a tag build
#
set -ex
[[ -n $CI_TAG ]] && exit 0
eval "$(ci/channel-info.sh)"
for acceptable_channel in "$@"; do
if [[ "$CHANNEL" == "$acceptable_channel" ]]; then
exit 0
fi
done
echo "Not running from one of the following channels: $*"
exit 1

32
.travis/commitlint.sh Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
#
# Runs commitlint in the provided subdirectory
#
set -e
basedir=$1
if [[ -z "$basedir" ]]; then
basedir=.
fi
if [[ ! -d "$basedir" ]]; then
echo "Error: not a directory: $basedir"
exit 1
fi
if [[ ! -f "$basedir"/commitlint.config.js ]]; then
echo "Error: No commitlint configuration found"
exit 1
fi
if [[ -z $TRAVIS_COMMIT_RANGE ]]; then
echo "Error: TRAVIS_COMMIT_RANGE not defined"
exit 1
fi
cd "$basedir"
echo "Checking commits in TRAVIS_COMMIT_RANGE: $TRAVIS_COMMIT_RANGE"
while IFS= read -r line; do
echo "$line" | npx commitlint
done < <(git log "$TRAVIS_COMMIT_RANGE" --format=%s -- .)

34
.travis/export-github-repo.sh Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env bash
#
# Exports a subdirectory into another github repository
#
set -e
if [[ -z $GITHUB_TOKEN ]]; then
echo GITHUB_TOKEN not defined
exit 1
fi
cd "$(dirname "$0")/.."
pip3 install git-filter-repo
declare subdir=$1
declare repo_name=$2
[[ -n "$subdir" ]] || {
echo "Error: subdir not specified"
exit 1
}
[[ -n "$repo_name" ]] || {
echo "Error: repo_name not specified"
exit 1
}
echo "Exporting $subdir"
set -x
rm -rf .github_export/"$repo_name"
git clone https://"$GITHUB_TOKEN"@github.com/solana-labs/"$repo_name" .github_export/"$repo_name"
git filter-repo --subdirectory-filter "$subdir" --target .github_export/"$repo_name"
git -C .github_export/"$repo_name" push https://"$GITHUB_TOKEN"@github.com/solana-labs/"$repo_name"

View File

@ -224,21 +224,20 @@ Inventing new terms is allowed, but should only be done when the term is widely
used and understood. Avoid introducing new 3-letter terms, which can be
confused with 3-letter acronyms.
[Terms currently in use](book/src/terminology.md)
[Terms currently in use](docs/src/terminology.md)
## Design Proposals
Solana's architecture is described by a book generated from markdown files in
the `book/src/` directory, maintained by an *editor* (currently @garious). To
add a design proposal, you'll need to at least propose a change the content
under the [Accepted Design
Proposals](https://docs.solana.com/book/v/master/proposals) chapter. Here's
the full process:
Solana's architecture is described by docs generated from markdown files in
the `docs/src/` directory, maintained by an *editor* (currently @garious). To
add a design proposal, you'll need to include it in the
[Accepted Design Proposals](https://docs.solana.com/proposals)
section of the Solana docs. Here's the full process:
1. Propose a design by creating a PR that adds a markdown document to the
directory `book/src/` and references it from the [table of
contents](book/src/SUMMARY.md). Add any relevant *maintainers* to the PR
`docs/src/proposals` directory and references it from the [table of
contents](docs/src/SUMMARY.md). Add any relevant *maintainers* to the PR
review.
2. The PR being merged indicates your proposed change was accepted and that the
maintainers support your plan of attack.

8092
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -3,17 +3,22 @@ members = [
"bench-exchange",
"bench-streamer",
"bench-tps",
"accounts-bench",
"banking-bench",
"chacha",
"chacha-cuda",
"chacha-sys",
"banks-client",
"banks-interface",
"banks-server",
"clap-utils",
"cli-config",
"cli-output",
"client",
"core",
"dos",
"download-utils",
"faucet",
"perf",
"validator",
"genesis",
"genesis-programs",
"gossip",
"install",
"keygen",
@ -23,32 +28,39 @@ members = [
"logger",
"log-analyzer",
"merkle-tree",
"stake-o-matic",
"storage-bigtable",
"streamer",
"measure",
"metrics",
"net-shaper",
"notifier",
"poh-bench",
"programs/secp256k1",
"programs/bpf_loader",
"programs/budget",
"programs/btc_spv",
"programs/btc_spv_bin",
"programs/config",
"programs/exchange",
"programs/failure",
"programs/noop",
"programs/ownable",
"programs/stake",
"programs/storage",
"programs/vest",
"programs/vote",
"archiver",
"archiver-lib",
"archiver-utils",
"remote-wallet",
"ramp-tps",
"runtime",
"sdk",
"sdk-c",
"scripts",
"stake-accounts",
"stake-monitor",
"sys-tuner",
"tokens",
"transaction-status",
"account-decoder",
"upload-perf",
"net-utils",
"version",
"vote-signer",
"cli",
"rayon-threadlimit",
@ -57,6 +69,4 @@ members = [
exclude = [
"programs/bpf",
"programs/move_loader",
"programs/librapay",
]

View File

@ -1,4 +1,4 @@
Copyright 2018 Solana Labs, Inc.
Copyright 2020 Solana Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

188
README.md
View File

@ -1,76 +1,17 @@
<p align="center">
<a href="https://solana.com">
<img alt="Solana" src="https://i.imgur.com/OMnvVEz.png" width="250" />
</a>
</p>
[![Solana crate](https://img.shields.io/crates/v/solana-core.svg)](https://crates.io/crates/solana-core)
[![Solana documentation](https://docs.rs/solana-core/badge.svg)](https://docs.rs/solana-core)
[![Build status](https://badge.buildkite.com/8cc350de251d61483db98bdfc895b9ea0ac8ffa4a32ee850ed.svg?branch=master)](https://buildkite.com/solana-labs/solana/builds?branch=master)
[![codecov](https://codecov.io/gh/solana-labs/solana/branch/master/graph/badge.svg)](https://codecov.io/gh/solana-labs/solana)
Blockchain Rebuilt for Scale
===
# Building
Solana&trade; is a new blockchain architecture built from the ground up for scale. The architecture supports
up to 710 thousand transactions per second on a gigabit network.
Disclaimer
===
All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the author's best effort. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore nothing in this project constitutes a solicitation for investment.
Introduction
===
It's possible for a centralized database to process 710,000 transactions per second on a standard gigabit network if the transactions are, on average, no more than 176 bytes. A centralized database can also replicate itself and maintain high availability without significantly compromising that transaction rate using the distributed system technique known as Optimistic Concurrency Control [\[H.T.Kung, J.T.Robinson (1981)\]](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.65.4735). At Solana, we're demonstrating that these same theoretical limits apply just as well to blockchain on an adversarial network. The key ingredient? Finding a way to share time when nodes can't trust one-another. Once nodes can trust time, suddenly ~40 years of distributed systems research becomes applicable to blockchain!
> Perhaps the most striking difference between algorithms obtained by our method and ones based upon timeout is that using timeout produces a traditional distributed algorithm in which the processes operate asynchronously, while our method produces a globally synchronous one in which every process does the same thing at (approximately) the same time. Our method seems to contradict the whole purpose of distributed processing, which is to permit different processes to operate independently and perform different functions. However, if a distributed system is really a single system, then the processes must be synchronized in some way. Conceptually, the easiest way to synchronize processes is to get them all to do the same thing at the same time. Therefore, our method is used to implement a kernel that performs the necessary synchronization--for example, making sure that two different processes do not try to modify a file at the same time. Processes might spend only a small fraction of their time executing the synchronizing kernel; the rest of the time, they can operate independently--e.g., accessing different files. This is an approach we have advocated even when fault-tolerance is not required. The method's basic simplicity makes it easier to understand the precise properties of a system, which is crucial if one is to know just how fault-tolerant the system is. [\[L.Lamport (1984)\]](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.71.1078)
Furthermore, and much to our surprise, it can be implemented using a mechanism that has existed in Bitcoin since day one. The Bitcoin feature is called nLocktime and it can be used to postdate transactions using block height instead of a timestamp. As a Bitcoin client, you'd use block height instead of a timestamp if you don't trust the network. Block height turns out to be an instance of what's being called a Verifiable Delay Function in cryptography circles. It's a cryptographically secure way to say time has passed. In Solana, we use a far more granular verifiable delay function, a SHA 256 hash chain, to checkpoint the ledger and coordinate consensus. With it, we implement Optimistic Concurrency Control and are now well en route towards that theoretical limit of 710,000 transactions per second.
Architecture
===
Before you jump into the code, review the online book [Solana: Blockchain Rebuilt for Scale](https://docs.solana.com/book/).
(The _latest_ development version of the online book is also [available here](https://docs.solana.com/book/v/master/).)
Release Binaries
===
Official release binaries are available at [Github Releases](https://github.com/solana-labs/solana/releases).
Additionally we provide pre-release binaries for the latest code on the edge and
beta channels. Note that these pre-release binaries may be less stable than an
official release.
### Edge channel
#### Linux (x86_64-unknown-linux-gnu)
* [solana.tar.bz2](http://release.solana.com/edge/solana-release-x86_64-unknown-linux-gnu.tar.bz2)
* [solana-install-init](http://release.solana.com/edge/solana-install-init-x86_64-unknown-linux-gnu) as a stand-alone executable
#### mac OS (x86_64-apple-darwin)
* [solana.tar.bz2](http://release.solana.com/edge/solana-release-x86_64-apple-darwin.tar.bz2)
* [solana-install-init](http://release.solana.com/edge/solana-install-init-x86_64-apple-darwin) as a stand-alone executable
#### Windows (x86_64-pc-windows-msvc)
* [solana.tar.bz2](http://release.solana.com/edge/solana-release-x86_64-pc-windows-msvc.tar.bz2)
* [solana-install-init.exe](http://release.solana.com/edge/solana-install-init-x86_64-pc-windows-msvc.exe) as a stand-alone executable
#### All platforms
* [solana-metrics.tar.bz2](http://release.solana.com.s3.amazonaws.com/edge/solana-metrics.tar.bz2)
### Beta channel
#### Linux (x86_64-unknown-linux-gnu)
* [solana.tar.bz2](http://release.solana.com/beta/solana-release-x86_64-unknown-linux-gnu.tar.bz2)
* [solana-install-init](http://release.solana.com/beta/solana-install-init-x86_64-unknown-linux-gnu) as a stand-alone executable
#### mac OS (x86_64-apple-darwin)
* [solana.tar.bz2](http://release.solana.com/beta/solana-release-x86_64-apple-darwin.tar.bz2)
* [solana-install-init](http://release.solana.com/beta/solana-install-init-x86_64-apple-darwin) as a stand-alone executable
#### Windows (x86_64-pc-windows-msvc)
* [solana.tar.bz2](http://release.solana.com/beta/solana-release-x86_64-pc-windows-msvc.tar.bz2)
* [solana-install-init.exe](http://release.solana.com/beta/solana-install-init-x86_64-pc-windows-msvc.exe) as a stand-alone executable
#### All platforms
* [solana-metrics.tar.bz2](http://release.solana.com.s3.amazonaws.com/beta/solana-metrics.tar.bz2)
Developing
===
Building
---
Install rustc, cargo and rustfmt:
## **1. Install rustc, cargo and rustfmt.**
```bash
$ curl https://sh.rustup.rs -sSf | sh
@ -87,118 +28,44 @@ $ rustup update
On Linux systems you may need to install libssl-dev, pkg-config, zlib1g-dev, etc. On Ubuntu:
```bash
$ sudo apt-get install libssl-dev pkg-config zlib1g-dev llvm clang
$ sudo apt-get update
$ sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang
```
Download the source code:
## **2. Download the source code.**
```bash
$ git clone https://github.com/solana-labs/solana.git
$ cd solana
```
Build
## **3. Build.**
```bash
$ cargo build
```
Then to run a minimal local cluster
## **4. Run a minimal local cluster.**
```bash
$ ./run.sh
```
Testing
---
# Testing
Run the test suite:
**Run the test suite:**
```bash
$ cargo test
```
Local Testnet
---
### Starting a local testnet
Start your own testnet locally, instructions are in the [online docs](https://docs.solana.com/bench-tps).
Start your own testnet locally, instructions are in the book [Solana: Blockchain Rebuild for Scale: Getting Started](https://docs.solana.com/book/getting-started).
### Accessing the remote development cluster
* `devnet` - stable public cluster for development accessible via
devnet.solana.com. Runs 24/7. Learn more about the [public clusters](https://docs.solana.com/clusters)
Remote Testnets
---
We maintain several testnets:
* `testnet` - public stable testnet accessible via testnet.solana.com. Runs 24/7
* `testnet-beta` - public beta channel testnet accessible via beta.testnet.solana.com. Runs 24/7
* `testnet-edge` - public edge channel testnet accessible via edge.testnet.solana.com. Runs 24/7
## Deploy process
They are deployed with the `ci/testnet-manager.sh` script through a list of [scheduled
buildkite jobs](https://buildkite.com/solana-labs/testnet-management/settings/schedules).
Each testnet can be manually manipulated from buildkite as well.
## How do I reset the testnet?
Manually trigger the [testnet-management](https://buildkite.com/solana-labs/testnet-management) pipeline
and when prompted select the desired testnet
## How can I scale the tx generation rate?
Increase the TX rate by increasing the number of cores on the client machine which is running
`bench-tps` or run multiple clients. Decrease by lowering cores or using the rayon env
variable `RAYON_NUM_THREADS=<xx>`
## How can I test a change on the testnet?
Currently, a merged PR is the only way to test a change on the testnet. But you
can run your own testnet using the scripts in the `net/` directory.
## Adjusting the number of clients or validators on the testnet
Edit `ci/testnet-manager.sh`
## Metrics Server Maintenance
Sometimes the dashboard becomes unresponsive. This happens due to glitch in the metrics server.
The current solution is to reset the metrics server. Use the following steps.
1. The server is hosted in a GCP VM instance. Check if the VM instance is down by trying to SSH
into it from the GCP console. The name of the VM is ```metrics-solana-com```.
2. If the VM is inaccessible, reset it from the GCP console.
3. Once VM is up (or, was already up), the metrics services can be restarted from build automation.
1. Navigate to https://buildkite.com/solana-labs/metrics-dot-solana-dot-com in your web browser
2. Click on ```New Build```
3. This will show a pop up dialog. Click on ```options``` drop down.
4. Type in ```FORCE_START=true``` in ```Environment Variables``` text box.
5. Click ```Create Build```
6. This will restart the metrics services, and the dashboards should be accessible afterwards.
## Debugging Testnet
Testnet may exhibit different symptoms of failures. Primary statistics to check are
1. Rise in Confirmation Time
2. Nodes are not voting
3. Panics, and OOM notifications
Check the following if there are any signs of failure.
1. Did testnet deployment fail?
1. View buildkite logs for the last deployment: https://buildkite.com/solana-labs/testnet-management
2. Use the relevant branch
3. If the deployment failed, look at the build logs. The build artifacts for each remote node is uploaded.
It's a good first step to triage from these logs.
2. You may have to log into remote node if the deployment succeeded, but something failed during runtime.
1. Get the private key for the testnet deployment from ```metrics-solana-com``` GCP instance.
2. SSH into ```metrics-solana-com``` using GCP console and do the following.
```bash
sudo bash
cd ~buildkite-agent/.ssh
ls
```
3. Copy the relevant private key to your local machine
4. Find the public IP address of the AWS instance for the remote node using AWS console
5. ```ssh -i <private key file> ubuntu@<ip address of remote node>```
6. The logs are in ```~solana\solana``` folder
Benchmarking
---
# Benchmarking
First install the nightly build of rustc. `cargo bench` requires use of the
unstable features only available in the nightly build.
@ -213,13 +80,11 @@ Run the benchmarks:
$ cargo +nightly bench
```
Release Process
---
# Release Process
The release process for this project is described [here](RELEASE.md).
Code coverage
---
# Code coverage
To generate code coverage statistics:
@ -228,7 +93,6 @@ $ scripts/coverage.sh
$ open target/cov/lcov-local/index.html
```
Why coverage? While most see coverage as a code quality metric, we see it primarily as a developer
productivity metric. When a developer makes a change to the codebase, presumably it's a *solution* to
some problem. Our unit-test suite is how we encode the set of *problems* the codebase solves. Running
@ -240,3 +104,7 @@ problem is solved by this code?" On the other hand, if a test does fail and you
better way to solve the same problem, a Pull Request with your solution would most certainly be
welcome! Likewise, if rewriting a test can better communicate what code it's protecting, please
send us that patch!
# Disclaimer
All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the author's best effort. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore nothing in this project constitutes a solicitation for investment.

View File

@ -76,21 +76,20 @@ There are three release channels that map to branches as follows:
git push -u origin <branchname>
```
### Update master branch with the next version
Alternatively use the Github UI.
### Update master branch to the next release minor version
1. After the new branch has been created and pushed, update the Cargo.toml files on **master** to the next semantic version (e.g. 0.9.0 -> 0.10.0) with:
```
scripts/increment-cargo-version.sh minor
```
1. Rebuild to get an updated version of `Cargo.lock`:
```
cargo build
$ scripts/increment-cargo-version.sh minor
$ ./scripts/cargo-for-all-lock-files.sh update
```
1. Push all the changed Cargo.toml and Cargo.lock files to the `master` branch with something like:
```
git co -b version_update
git ls-files -m | xargs git add
git commit -m 'Update Cargo.toml versions from X.Y to X.Y+1'
git commit -m 'Bump version to X.Y+1.0'
git push -u origin version_update
```
1. Confirm that your freshly cut release branch is shown as `BETA_CHANNEL` and the previous release branch as `STABLE_CHANNEL`:
@ -102,84 +101,51 @@ There are three release channels that map to branches as follows:
### Create the Release Tag on GitHub
1. Go to [GitHub's Releases UI](https://github.com/solana-labs/solana/releases) for tagging a release.
1. Go to [GitHub Releases](https://github.com/solana-labs/solana/releases) for tagging a release.
1. Click "Draft new release". The release tag must exactly match the `version`
field in `/Cargo.toml` prefixed by `v`.
1. If the Cargo.toml verion field is **0.12.3**, then the release tag must be **v0.12.3**
1. If the Cargo.toml version field is **0.12.3**, then the release tag must be **v0.12.3**
1. Make sure the Target Branch field matches the branch you want to make a release on.
1. If you want to release v0.12.0, the target branch must be v0.12
1. If this is the first release on the branch (e.g. v0.13.**0**), paste in [this
template](https://raw.githubusercontent.com/solana-labs/solana/master/.github/RELEASE_TEMPLATE.md). Engineering Lead can provide summary contents for release notes if needed.
1. Click "Save Draft", then confirm the release notes look good and the tag name and branch are correct. Go back into edit the release and click "Publish release" when ready.
template](https://raw.githubusercontent.com/solana-labs/solana/master/.github/RELEASE_TEMPLATE.md). Engineering Lead can provide summary contents for release notes if needed. If this is a patch release, review all the commits since the previous release on this branch and add details as needed.
1. Click "Save Draft", then confirm the release notes look good and the tag name and branch are correct.
1. Ensure the release is marked **"This is a pre-release"**. This flag will then need to be be removed once the the Linux binary artifacts appear later.
1. Go back into edit the release and click "Publish release" when ready.
### Update release branch with the next patch version
1. After the new release has been tagged, update the Cargo.toml files on **release branch** to the next semantic version (e.g. 0.9.0 -> 0.9.1) with:
```
scripts/increment-cargo-version.sh patch
```
1. Rebuild to get an updated version of `Cargo.lock`:
```
cargo build
$ scripts/increment-cargo-version.sh patch
$ ./scripts/cargo-for-all-lock-files.sh tree
```
1. Push all the changed Cargo.toml and Cargo.lock files to the **release branch** with something like:
```
git co -b version_update
git ls-files -m | xargs git add
git commit -m 'Update Cargo.toml versions from X.Y.Z to X.Y.Z+1'
git push -u origin version_update
git co -b version_update origin/vX.Y
git add -u
git commit -m 'Bump version to X.Y.Z+1'
git push -u <user-remote> version_update
```
1. Open a PR against origin/vX.Y and then merge the PR after passing CI.
### Prepare for the next release
1. Go to [GitHub Releases](https://github.com/solana-labs/solana/releases) and create a new draft release for `X.Y.Z+1` with empty release nodes. This allows people to incrementally add new release notes until it's time for the next release
1. Go to the [Github Milestones](https://github.com/solana-labs/solana/milestones). Create a new milestone for the `X.Y.Z+1`, move over
unresolved issues still in the `X.Y.Z` milestone, then close the `X.Y.Z` milestone.
### Verify release automation success
1. Go to [Solana Releases](https://github.com/solana-labs/solana/releases) and click on the latest release that you just published. Verify that all of the build artifacts are present. This can take up to 90 minutes after creating the tag.
1. The `solana-secondary` Buildkite pipeline handles creating the binary tarballs and updated crates. Look for a job under the tag name of the release: https://buildkite.com/solana-labs/solana-secondary
1. [Crates.io](https://crates.io/crates/solana) should have an updated Solana version.
Go to [Solana Releases](https://github.com/solana-labs/solana/releases) and click on the latest release that you just published.
Verify that all of the build artifacts are present, then the uncheck **"This is a pre-release"** for the release.
### Update documentation
TODO: Documentation update procedure is WIP as we move to gitbook
Build artifacts can take up to 60 minutes after creating the tag before
appearing. To check for progress:
* The `solana-secondary` Buildkite pipeline handles creating the Linux release artifacts and updated crates. Look for a job under the tag name of the release: https://buildkite.com/solana-labs/solana-secondary.
* The macOS and Windows release artifacts are produced by Travis CI: https://travis-ci.com/github/solana-labs/solana/branches
Document the new recommended version by updating `book/src/running-archiver.md` and `book/src/validator-testnet.md` on the release (beta) branch to point at the `solana-install` for the upcoming release version.
[Crates.io](https://crates.io/crates/solana) should have an updated Solana version. This can take 2-3 hours, and sometimes fails in the `solana-secondary` job.
If this happens and the error is non-fatal, click "Retry" on the "publish crate" job
### Update software on testnet.solana.com
The testnet running on testnet.solana.com is set to use a fixed release tag
which is set in the Buildkite testnet-management pipeline.
This tag needs to be updated and the testnet restarted after a new release
tag is created.
#### Update testnet schedules
Go to https://buildkite.com/solana-labs and click through: Pipelines ->
testnet-management -> Pipeline Settings -> Schedules
Or just click here:
https://buildkite.com/solana-labs/testnet-management/settings/schedules
There are two scheduled jobs for testnet: a daily restart and an hourly sanity-or-restart. \
https://buildkite.com/solana-labs/testnet-management/settings/schedules/0efd7856-7143-4713-8817-47e6bdb05387
https://buildkite.com/solana-labs/testnet-management/settings/schedules/2a926646-d972-42b5-aeb9-bb6759592a53
On each schedule:
1. Set TESTNET_TAG environment variable to the desired release tag.
1. Example, TESTNET_TAG=v0.13.2
1. Set the Build Branch to the branch that TESTNET_TAG is from.
1. Example: v0.13
#### Restart the testnet
Trigger a TESTNET_OP=create-and-start to refresh the cluster with the new version
1. Go to https://buildkite.com/solana-labs/testnet-management
2. Click "New Build" and use the following settings, then click "Create Build"
1. Commit: HEAD
1. Branch: [channel branch as set in the schedules]
1. Environment Variables:
```
TESTNET=testnet
TESTNET_TAG=[same value as used in TESTNET_TAG in the schedules]
TESTNET_OP=create-and-start
```
### Alert the community
Notify Discord users on #validator-support that a new release for
testnet.solana.com is available
### Update software on devnet.solana.com/testnet.solama.com/mainnet-beta.solana.com
See the documentation at https://github.com/solana-labs/cluster-ops/

View File

@ -0,0 +1,29 @@
[package]
name = "solana-account-decoder"
version = "1.3.24"
description = "Solana account decoder"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
homepage = "https://solana.com/"
license = "Apache-2.0"
edition = "2018"
[dependencies]
base64 = "0.12.3"
bincode = "1.3.1"
bs58 = "0.3.1"
bv = "0.11.1"
Inflector = "0.11.4"
lazy_static = "1.4.0"
serde = "1.0.112"
serde_derive = "1.0.103"
serde_json = "1.0.56"
solana-config-program = { path = "../programs/config", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-stake-program = { path = "../programs/stake", version = "1.3.24" }
solana-vote-program = { path = "../programs/vote", version = "1.3.24" }
spl-token-v2-0 = { package = "spl-token", version = "=2.0.6", features = ["skip-no-mangle"] }
thiserror = "1.0"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

182
account-decoder/src/lib.rs Normal file
View File

@ -0,0 +1,182 @@
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate serde_derive;
pub mod parse_account_data;
pub mod parse_config;
pub mod parse_nonce;
pub mod parse_stake;
pub mod parse_sysvar;
pub mod parse_token;
pub mod parse_vote;
pub mod validator_info;
use crate::parse_account_data::{parse_account_data, AccountAdditionalData, ParsedAccount};
use solana_sdk::{account::Account, clock::Epoch, fee_calculator::FeeCalculator, pubkey::Pubkey};
use std::str::FromStr;
pub type StringAmount = String;
/// A duplicate representation of an Account for pretty JSON serialization
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "camelCase")]
pub struct UiAccount {
pub lamports: u64,
pub data: UiAccountData,
pub owner: String,
pub executable: bool,
pub rent_epoch: Epoch,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", untagged)]
pub enum UiAccountData {
LegacyBinary(String), // Legacy. Retained for RPC backwards compatibility
Json(ParsedAccount),
Binary(String, UiAccountEncoding),
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum UiAccountEncoding {
Binary, // Legacy. Retained for RPC backwards compatibility
Base58,
Base64,
JsonParsed,
}
impl UiAccount {
pub fn encode(
pubkey: &Pubkey,
account: Account,
encoding: UiAccountEncoding,
additional_data: Option<AccountAdditionalData>,
data_slice_config: Option<UiDataSliceConfig>,
) -> Self {
let data = match encoding {
UiAccountEncoding::Binary => UiAccountData::LegacyBinary(
bs58::encode(slice_data(&account.data, data_slice_config)).into_string(),
),
UiAccountEncoding::Base58 => UiAccountData::Binary(
bs58::encode(slice_data(&account.data, data_slice_config)).into_string(),
encoding,
),
UiAccountEncoding::Base64 => UiAccountData::Binary(
base64::encode(slice_data(&account.data, data_slice_config)),
encoding,
),
UiAccountEncoding::JsonParsed => {
if let Ok(parsed_data) =
parse_account_data(pubkey, &account.owner, &account.data, additional_data)
{
UiAccountData::Json(parsed_data)
} else {
UiAccountData::Binary(base64::encode(&account.data), UiAccountEncoding::Base64)
}
}
};
UiAccount {
lamports: account.lamports,
data,
owner: account.owner.to_string(),
executable: account.executable,
rent_epoch: account.rent_epoch,
}
}
pub fn decode(&self) -> Option<Account> {
let data = match &self.data {
UiAccountData::Json(_) => None,
UiAccountData::LegacyBinary(blob) => bs58::decode(blob).into_vec().ok(),
UiAccountData::Binary(blob, encoding) => match encoding {
UiAccountEncoding::Base58 => bs58::decode(blob).into_vec().ok(),
UiAccountEncoding::Base64 => base64::decode(blob).ok(),
UiAccountEncoding::Binary | UiAccountEncoding::JsonParsed => None,
},
}?;
Some(Account {
lamports: self.lamports,
data,
owner: Pubkey::from_str(&self.owner).ok()?,
executable: self.executable,
rent_epoch: self.rent_epoch,
})
}
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiFeeCalculator {
pub lamports_per_signature: StringAmount,
}
impl From<FeeCalculator> for UiFeeCalculator {
fn from(fee_calculator: FeeCalculator) -> Self {
Self {
lamports_per_signature: fee_calculator.lamports_per_signature.to_string(),
}
}
}
impl Default for UiFeeCalculator {
fn default() -> Self {
Self {
lamports_per_signature: "0".to_string(),
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UiDataSliceConfig {
pub offset: usize,
pub length: usize,
}
fn slice_data(data: &[u8], data_slice_config: Option<UiDataSliceConfig>) -> &[u8] {
if let Some(UiDataSliceConfig { offset, length }) = data_slice_config {
if offset >= data.len() {
&[]
} else if length > data.len() - offset {
&data[offset..]
} else {
&data[offset..offset + length]
}
} else {
data
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_slice_data() {
let data = vec![1, 2, 3, 4, 5];
let slice_config = Some(UiDataSliceConfig {
offset: 0,
length: 5,
});
assert_eq!(slice_data(&data, slice_config), &data[..]);
let slice_config = Some(UiDataSliceConfig {
offset: 0,
length: 10,
});
assert_eq!(slice_data(&data, slice_config), &data[..]);
let slice_config = Some(UiDataSliceConfig {
offset: 1,
length: 2,
});
assert_eq!(slice_data(&data, slice_config), &data[1..3]);
let slice_config = Some(UiDataSliceConfig {
offset: 10,
length: 2,
});
assert_eq!(slice_data(&data, slice_config), &[] as &[u8]);
}
}

View File

@ -0,0 +1,145 @@
use crate::{
parse_config::parse_config,
parse_nonce::parse_nonce,
parse_stake::parse_stake,
parse_sysvar::parse_sysvar,
parse_token::{parse_token, spl_token_id_v2_0},
parse_vote::parse_vote,
};
use inflector::Inflector;
use serde_json::Value;
use solana_sdk::{instruction::InstructionError, pubkey::Pubkey, system_program, sysvar};
use std::collections::HashMap;
use thiserror::Error;
lazy_static! {
static ref CONFIG_PROGRAM_ID: Pubkey = solana_config_program::id();
static ref STAKE_PROGRAM_ID: Pubkey = solana_stake_program::id();
static ref SYSTEM_PROGRAM_ID: Pubkey = system_program::id();
static ref SYSVAR_PROGRAM_ID: Pubkey = sysvar::id();
static ref TOKEN_PROGRAM_ID: Pubkey = spl_token_id_v2_0();
static ref VOTE_PROGRAM_ID: Pubkey = solana_vote_program::id();
pub static ref PARSABLE_PROGRAM_IDS: HashMap<Pubkey, ParsableAccount> = {
let mut m = HashMap::new();
m.insert(*CONFIG_PROGRAM_ID, ParsableAccount::Config);
m.insert(*SYSTEM_PROGRAM_ID, ParsableAccount::Nonce);
m.insert(*TOKEN_PROGRAM_ID, ParsableAccount::SplToken);
m.insert(*STAKE_PROGRAM_ID, ParsableAccount::Stake);
m.insert(*SYSVAR_PROGRAM_ID, ParsableAccount::Sysvar);
m.insert(*VOTE_PROGRAM_ID, ParsableAccount::Vote);
m
};
}
#[derive(Error, Debug)]
pub enum ParseAccountError {
#[error("{0:?} account not parsable")]
AccountNotParsable(ParsableAccount),
#[error("Program not parsable")]
ProgramNotParsable,
#[error("Additional data required to parse: {0}")]
AdditionalDataMissing(String),
#[error("Instruction error")]
InstructionError(#[from] InstructionError),
#[error("Serde json error")]
SerdeJsonError(#[from] serde_json::error::Error),
}
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct ParsedAccount {
pub program: String,
pub parsed: Value,
pub space: u64,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub enum ParsableAccount {
Config,
Nonce,
SplToken,
Stake,
Sysvar,
Vote,
}
#[derive(Default)]
pub struct AccountAdditionalData {
pub spl_token_decimals: Option<u8>,
}
pub fn parse_account_data(
pubkey: &Pubkey,
program_id: &Pubkey,
data: &[u8],
additional_data: Option<AccountAdditionalData>,
) -> Result<ParsedAccount, ParseAccountError> {
let program_name = PARSABLE_PROGRAM_IDS
.get(program_id)
.ok_or_else(|| ParseAccountError::ProgramNotParsable)?;
let additional_data = additional_data.unwrap_or_default();
let parsed_json = match program_name {
ParsableAccount::Config => serde_json::to_value(parse_config(data, pubkey)?)?,
ParsableAccount::Nonce => serde_json::to_value(parse_nonce(data)?)?,
ParsableAccount::SplToken => {
serde_json::to_value(parse_token(data, additional_data.spl_token_decimals)?)?
}
ParsableAccount::Stake => serde_json::to_value(parse_stake(data)?)?,
ParsableAccount::Sysvar => serde_json::to_value(parse_sysvar(data, pubkey)?)?,
ParsableAccount::Vote => serde_json::to_value(parse_vote(data)?)?,
};
Ok(ParsedAccount {
program: format!("{:?}", program_name).to_kebab_case(),
parsed: parsed_json,
space: data.len() as u64,
})
}
#[cfg(test)]
mod test {
use super::*;
use solana_sdk::nonce::{
state::{Data, Versions},
State,
};
use solana_vote_program::vote_state::{VoteState, VoteStateVersions};
#[test]
fn test_parse_account_data() {
let account_pubkey = solana_sdk::pubkey::new_rand();
let other_program = solana_sdk::pubkey::new_rand();
let data = vec![0; 4];
assert!(parse_account_data(&account_pubkey, &other_program, &data, None).is_err());
let vote_state = VoteState::default();
let mut vote_account_data: Vec<u8> = vec![0; VoteState::size_of()];
let versioned = VoteStateVersions::Current(Box::new(vote_state));
VoteState::serialize(&versioned, &mut vote_account_data).unwrap();
let parsed = parse_account_data(
&account_pubkey,
&solana_vote_program::id(),
&vote_account_data,
None,
)
.unwrap();
assert_eq!(parsed.program, "vote".to_string());
assert_eq!(parsed.space, VoteState::size_of() as u64);
let nonce_data = Versions::new_current(State::Initialized(Data::default()));
let nonce_account_data = bincode::serialize(&nonce_data).unwrap();
let parsed = parse_account_data(
&account_pubkey,
&system_program::id(),
&nonce_account_data,
None,
)
.unwrap();
assert_eq!(parsed.program, "nonce".to_string());
assert_eq!(parsed.space, State::size() as u64);
}
}

View File

@ -0,0 +1,146 @@
use crate::{
parse_account_data::{ParsableAccount, ParseAccountError},
validator_info,
};
use bincode::deserialize;
use serde_json::Value;
use solana_config_program::{get_config_data, ConfigKeys};
use solana_sdk::pubkey::Pubkey;
use solana_stake_program::config::Config as StakeConfig;
pub fn parse_config(data: &[u8], pubkey: &Pubkey) -> Result<ConfigAccountType, ParseAccountError> {
let parsed_account = if pubkey == &solana_stake_program::config::id() {
get_config_data(data)
.ok()
.and_then(|data| deserialize::<StakeConfig>(data).ok())
.map(|config| ConfigAccountType::StakeConfig(config.into()))
} else {
deserialize::<ConfigKeys>(data).ok().and_then(|key_list| {
if !key_list.keys.is_empty() && key_list.keys[0].0 == validator_info::id() {
parse_config_data::<String>(data, key_list.keys).and_then(|validator_info| {
Some(ConfigAccountType::ValidatorInfo(UiConfig {
keys: validator_info.keys,
config_data: serde_json::from_str(&validator_info.config_data).ok()?,
}))
})
} else {
None
}
})
};
parsed_account.ok_or(ParseAccountError::AccountNotParsable(
ParsableAccount::Config,
))
}
fn parse_config_data<T>(data: &[u8], keys: Vec<(Pubkey, bool)>) -> Option<UiConfig<T>>
where
T: serde::de::DeserializeOwned,
{
let config_data: T = deserialize(&get_config_data(data).ok()?).ok()?;
let keys = keys
.iter()
.map(|key| UiConfigKey {
pubkey: key.0.to_string(),
signer: key.1,
})
.collect();
Some(UiConfig { keys, config_data })
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum ConfigAccountType {
StakeConfig(UiStakeConfig),
ValidatorInfo(UiConfig<Value>),
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiConfigKey {
pub pubkey: String,
pub signer: bool,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiStakeConfig {
pub warmup_cooldown_rate: f64,
pub slash_penalty: u8,
}
impl From<StakeConfig> for UiStakeConfig {
fn from(config: StakeConfig) -> Self {
Self {
warmup_cooldown_rate: config.warmup_cooldown_rate,
slash_penalty: config.slash_penalty,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiConfig<T> {
pub keys: Vec<UiConfigKey>,
pub config_data: T,
}
#[cfg(test)]
mod test {
use super::*;
use crate::validator_info::ValidatorInfo;
use serde_json::json;
use solana_config_program::create_config_account;
#[test]
fn test_parse_config() {
let stake_config = StakeConfig {
warmup_cooldown_rate: 0.25,
slash_penalty: 50,
};
let stake_config_account = create_config_account(vec![], &stake_config, 10);
assert_eq!(
parse_config(
&stake_config_account.data,
&solana_stake_program::config::id()
)
.unwrap(),
ConfigAccountType::StakeConfig(UiStakeConfig {
warmup_cooldown_rate: 0.25,
slash_penalty: 50,
}),
);
let validator_info = ValidatorInfo {
info: serde_json::to_string(&json!({
"name": "Solana",
}))
.unwrap(),
};
let info_pubkey = solana_sdk::pubkey::new_rand();
let validator_info_config_account = create_config_account(
vec![(validator_info::id(), false), (info_pubkey, true)],
&validator_info,
10,
);
assert_eq!(
parse_config(&validator_info_config_account.data, &info_pubkey).unwrap(),
ConfigAccountType::ValidatorInfo(UiConfig {
keys: vec![
UiConfigKey {
pubkey: validator_info::id().to_string(),
signer: false,
},
UiConfigKey {
pubkey: info_pubkey.to_string(),
signer: true,
}
],
config_data: serde_json::from_str(r#"{"name":"Solana"}"#).unwrap(),
}),
);
let bad_data = vec![0; 4];
assert!(parse_config(&bad_data, &info_pubkey).is_err());
}
}

View File

@ -0,0 +1,67 @@
use crate::{parse_account_data::ParseAccountError, UiFeeCalculator};
use solana_sdk::{
instruction::InstructionError,
nonce::{state::Versions, State},
};
pub fn parse_nonce(data: &[u8]) -> Result<UiNonceState, ParseAccountError> {
let nonce_state: Versions = bincode::deserialize(data)
.map_err(|_| ParseAccountError::from(InstructionError::InvalidAccountData))?;
let nonce_state = nonce_state.convert_to_current();
match nonce_state {
State::Uninitialized => Ok(UiNonceState::Uninitialized),
State::Initialized(data) => Ok(UiNonceState::Initialized(UiNonceData {
authority: data.authority.to_string(),
blockhash: data.blockhash.to_string(),
fee_calculator: data.fee_calculator.into(),
})),
}
}
/// A duplicate representation of NonceState for pretty JSON serialization
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum UiNonceState {
Uninitialized,
Initialized(UiNonceData),
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiNonceData {
pub authority: String,
pub blockhash: String,
pub fee_calculator: UiFeeCalculator,
}
#[cfg(test)]
mod test {
use super::*;
use solana_sdk::{
hash::Hash,
nonce::{
state::{Data, Versions},
State,
},
pubkey::Pubkey,
};
#[test]
fn test_parse_nonce() {
let nonce_data = Versions::new_current(State::Initialized(Data::default()));
let nonce_account_data = bincode::serialize(&nonce_data).unwrap();
assert_eq!(
parse_nonce(&nonce_account_data).unwrap(),
UiNonceState::Initialized(UiNonceData {
authority: Pubkey::default().to_string(),
blockhash: Hash::default().to_string(),
fee_calculator: UiFeeCalculator {
lamports_per_signature: 0.to_string(),
},
}),
);
let bad_data = vec![0; 4];
assert!(parse_nonce(&bad_data).is_err());
}
}

View File

@ -0,0 +1,234 @@
use crate::{
parse_account_data::{ParsableAccount, ParseAccountError},
StringAmount,
};
use bincode::deserialize;
use solana_sdk::clock::{Epoch, UnixTimestamp};
use solana_stake_program::stake_state::{Authorized, Delegation, Lockup, Meta, Stake, StakeState};
pub fn parse_stake(data: &[u8]) -> Result<StakeAccountType, ParseAccountError> {
let stake_state: StakeState = deserialize(data)
.map_err(|_| ParseAccountError::AccountNotParsable(ParsableAccount::Stake))?;
let parsed_account = match stake_state {
StakeState::Uninitialized => StakeAccountType::Uninitialized,
StakeState::Initialized(meta) => StakeAccountType::Initialized(UiStakeAccount {
meta: meta.into(),
stake: None,
}),
StakeState::Stake(meta, stake) => StakeAccountType::Delegated(UiStakeAccount {
meta: meta.into(),
stake: Some(stake.into()),
}),
StakeState::RewardsPool => StakeAccountType::RewardsPool,
};
Ok(parsed_account)
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum StakeAccountType {
Uninitialized,
Initialized(UiStakeAccount),
Delegated(UiStakeAccount),
RewardsPool,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiStakeAccount {
pub meta: UiMeta,
pub stake: Option<UiStake>,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiMeta {
pub rent_exempt_reserve: StringAmount,
pub authorized: UiAuthorized,
pub lockup: UiLockup,
}
impl From<Meta> for UiMeta {
fn from(meta: Meta) -> Self {
Self {
rent_exempt_reserve: meta.rent_exempt_reserve.to_string(),
authorized: meta.authorized.into(),
lockup: meta.lockup.into(),
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiLockup {
pub unix_timestamp: UnixTimestamp,
pub epoch: Epoch,
pub custodian: String,
}
impl From<Lockup> for UiLockup {
fn from(lockup: Lockup) -> Self {
Self {
unix_timestamp: lockup.unix_timestamp,
epoch: lockup.epoch,
custodian: lockup.custodian.to_string(),
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiAuthorized {
pub staker: String,
pub withdrawer: String,
}
impl From<Authorized> for UiAuthorized {
fn from(authorized: Authorized) -> Self {
Self {
staker: authorized.staker.to_string(),
withdrawer: authorized.withdrawer.to_string(),
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiStake {
pub delegation: UiDelegation,
pub credits_observed: u64,
}
impl From<Stake> for UiStake {
fn from(stake: Stake) -> Self {
Self {
delegation: stake.delegation.into(),
credits_observed: stake.credits_observed,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiDelegation {
pub voter: String,
pub stake: StringAmount,
pub activation_epoch: StringAmount,
pub deactivation_epoch: StringAmount,
pub warmup_cooldown_rate: f64,
}
impl From<Delegation> for UiDelegation {
fn from(delegation: Delegation) -> Self {
Self {
voter: delegation.voter_pubkey.to_string(),
stake: delegation.stake.to_string(),
activation_epoch: delegation.activation_epoch.to_string(),
deactivation_epoch: delegation.deactivation_epoch.to_string(),
warmup_cooldown_rate: delegation.warmup_cooldown_rate,
}
}
}
#[cfg(test)]
mod test {
use super::*;
use bincode::serialize;
#[test]
fn test_parse_stake() {
let stake_state = StakeState::Uninitialized;
let stake_data = serialize(&stake_state).unwrap();
assert_eq!(
parse_stake(&stake_data).unwrap(),
StakeAccountType::Uninitialized
);
let pubkey = solana_sdk::pubkey::new_rand();
let custodian = solana_sdk::pubkey::new_rand();
let authorized = Authorized::auto(&pubkey);
let lockup = Lockup {
unix_timestamp: 0,
epoch: 1,
custodian,
};
let meta = Meta {
rent_exempt_reserve: 42,
authorized,
lockup,
};
let stake_state = StakeState::Initialized(meta);
let stake_data = serialize(&stake_state).unwrap();
assert_eq!(
parse_stake(&stake_data).unwrap(),
StakeAccountType::Initialized(UiStakeAccount {
meta: UiMeta {
rent_exempt_reserve: 42.to_string(),
authorized: UiAuthorized {
staker: pubkey.to_string(),
withdrawer: pubkey.to_string(),
},
lockup: UiLockup {
unix_timestamp: 0,
epoch: 1,
custodian: custodian.to_string(),
}
},
stake: None,
})
);
let voter_pubkey = solana_sdk::pubkey::new_rand();
let stake = Stake {
delegation: Delegation {
voter_pubkey,
stake: 20,
activation_epoch: 2,
deactivation_epoch: std::u64::MAX,
warmup_cooldown_rate: 0.25,
},
credits_observed: 10,
};
let stake_state = StakeState::Stake(meta, stake);
let stake_data = serialize(&stake_state).unwrap();
assert_eq!(
parse_stake(&stake_data).unwrap(),
StakeAccountType::Delegated(UiStakeAccount {
meta: UiMeta {
rent_exempt_reserve: 42.to_string(),
authorized: UiAuthorized {
staker: pubkey.to_string(),
withdrawer: pubkey.to_string(),
},
lockup: UiLockup {
unix_timestamp: 0,
epoch: 1,
custodian: custodian.to_string(),
}
},
stake: Some(UiStake {
delegation: UiDelegation {
voter: voter_pubkey.to_string(),
stake: 20.to_string(),
activation_epoch: 2.to_string(),
deactivation_epoch: std::u64::MAX.to_string(),
warmup_cooldown_rate: 0.25,
},
credits_observed: 10,
})
})
);
let stake_state = StakeState::RewardsPool;
let stake_data = serialize(&stake_state).unwrap();
assert_eq!(
parse_stake(&stake_data).unwrap(),
StakeAccountType::RewardsPool
);
let bad_data = vec![1, 2, 3, 4];
assert!(parse_stake(&bad_data).is_err());
}
}

View File

@ -0,0 +1,328 @@
use crate::{
parse_account_data::{ParsableAccount, ParseAccountError},
StringAmount, UiFeeCalculator,
};
use bincode::deserialize;
use bv::BitVec;
use solana_sdk::{
clock::{Clock, Epoch, Slot, UnixTimestamp},
epoch_schedule::EpochSchedule,
pubkey::Pubkey,
rent::Rent,
slot_hashes::SlotHashes,
slot_history::{self, SlotHistory},
stake_history::{StakeHistory, StakeHistoryEntry},
sysvar::{self, fees::Fees, recent_blockhashes::RecentBlockhashes, rewards::Rewards},
};
pub fn parse_sysvar(data: &[u8], pubkey: &Pubkey) -> Result<SysvarAccountType, ParseAccountError> {
let parsed_account = {
if pubkey == &sysvar::clock::id() {
deserialize::<Clock>(data)
.ok()
.map(|clock| SysvarAccountType::Clock(clock.into()))
} else if pubkey == &sysvar::epoch_schedule::id() {
deserialize(data).ok().map(SysvarAccountType::EpochSchedule)
} else if pubkey == &sysvar::fees::id() {
deserialize::<Fees>(data)
.ok()
.map(|fees| SysvarAccountType::Fees(fees.into()))
} else if pubkey == &sysvar::recent_blockhashes::id() {
deserialize::<RecentBlockhashes>(data)
.ok()
.map(|recent_blockhashes| {
let recent_blockhashes = recent_blockhashes
.iter()
.map(|entry| UiRecentBlockhashesEntry {
blockhash: entry.blockhash.to_string(),
fee_calculator: entry.fee_calculator.clone().into(),
})
.collect();
SysvarAccountType::RecentBlockhashes(recent_blockhashes)
})
} else if pubkey == &sysvar::rent::id() {
deserialize::<Rent>(data)
.ok()
.map(|rent| SysvarAccountType::Rent(rent.into()))
} else if pubkey == &sysvar::rewards::id() {
deserialize::<Rewards>(data)
.ok()
.map(|rewards| SysvarAccountType::Rewards(rewards.into()))
} else if pubkey == &sysvar::slot_hashes::id() {
deserialize::<SlotHashes>(data).ok().map(|slot_hashes| {
let slot_hashes = slot_hashes
.iter()
.map(|slot_hash| UiSlotHashEntry {
slot: slot_hash.0,
hash: slot_hash.1.to_string(),
})
.collect();
SysvarAccountType::SlotHashes(slot_hashes)
})
} else if pubkey == &sysvar::slot_history::id() {
deserialize::<SlotHistory>(data).ok().map(|slot_history| {
SysvarAccountType::SlotHistory(UiSlotHistory {
next_slot: slot_history.next_slot,
bits: format!("{:?}", SlotHistoryBits(slot_history.bits)),
})
})
} else if pubkey == &sysvar::stake_history::id() {
deserialize::<StakeHistory>(data).ok().map(|stake_history| {
let stake_history = stake_history
.iter()
.map(|entry| UiStakeHistoryEntry {
epoch: entry.0,
stake_history: entry.1.clone(),
})
.collect();
SysvarAccountType::StakeHistory(stake_history)
})
} else {
None
}
};
parsed_account.ok_or(ParseAccountError::AccountNotParsable(
ParsableAccount::Sysvar,
))
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum SysvarAccountType {
Clock(UiClock),
EpochSchedule(EpochSchedule),
Fees(UiFees),
RecentBlockhashes(Vec<UiRecentBlockhashesEntry>),
Rent(UiRent),
Rewards(UiRewards),
SlotHashes(Vec<UiSlotHashEntry>),
SlotHistory(UiSlotHistory),
StakeHistory(Vec<UiStakeHistoryEntry>),
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct UiClock {
pub slot: Slot,
pub epoch: Epoch,
pub leader_schedule_epoch: Epoch,
pub unix_timestamp: UnixTimestamp,
}
impl From<Clock> for UiClock {
fn from(clock: Clock) -> Self {
Self {
slot: clock.slot,
epoch: clock.epoch,
leader_schedule_epoch: clock.leader_schedule_epoch,
unix_timestamp: clock.unix_timestamp,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct UiFees {
pub fee_calculator: UiFeeCalculator,
}
impl From<Fees> for UiFees {
fn from(fees: Fees) -> Self {
Self {
fee_calculator: fees.fee_calculator.into(),
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct UiRent {
pub lamports_per_byte_year: StringAmount,
pub exemption_threshold: f64,
pub burn_percent: u8,
}
impl From<Rent> for UiRent {
fn from(rent: Rent) -> Self {
Self {
lamports_per_byte_year: rent.lamports_per_byte_year.to_string(),
exemption_threshold: rent.exemption_threshold,
burn_percent: rent.burn_percent,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct UiRewards {
pub validator_point_value: f64,
}
impl From<Rewards> for UiRewards {
fn from(rewards: Rewards) -> Self {
Self {
validator_point_value: rewards.validator_point_value,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiRecentBlockhashesEntry {
pub blockhash: String,
pub fee_calculator: UiFeeCalculator,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiSlotHashEntry {
pub slot: Slot,
pub hash: String,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiSlotHistory {
pub next_slot: Slot,
pub bits: String,
}
struct SlotHistoryBits(BitVec<u64>);
impl std::fmt::Debug for SlotHistoryBits {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
for i in 0..slot_history::MAX_ENTRIES {
if self.0.get(i) {
write!(f, "1")?;
} else {
write!(f, "0")?;
}
}
Ok(())
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiStakeHistoryEntry {
pub epoch: Epoch,
pub stake_history: StakeHistoryEntry,
}
#[cfg(test)]
mod test {
use super::*;
use solana_sdk::{
fee_calculator::FeeCalculator,
hash::Hash,
sysvar::{recent_blockhashes::IterItem, Sysvar},
};
use std::iter::FromIterator;
#[test]
fn test_parse_sysvars() {
let clock_sysvar = Clock::default().create_account(1);
assert_eq!(
parse_sysvar(&clock_sysvar.data, &sysvar::clock::id()).unwrap(),
SysvarAccountType::Clock(UiClock::default()),
);
let epoch_schedule = EpochSchedule {
slots_per_epoch: 12,
leader_schedule_slot_offset: 0,
warmup: false,
first_normal_epoch: 1,
first_normal_slot: 12,
};
let epoch_schedule_sysvar = epoch_schedule.create_account(1);
assert_eq!(
parse_sysvar(&epoch_schedule_sysvar.data, &sysvar::epoch_schedule::id()).unwrap(),
SysvarAccountType::EpochSchedule(epoch_schedule),
);
let fees_sysvar = Fees::default().create_account(1);
assert_eq!(
parse_sysvar(&fees_sysvar.data, &sysvar::fees::id()).unwrap(),
SysvarAccountType::Fees(UiFees::default()),
);
let hash = Hash::new(&[1; 32]);
let fee_calculator = FeeCalculator {
lamports_per_signature: 10,
};
let recent_blockhashes =
RecentBlockhashes::from_iter(vec![IterItem(0, &hash, &fee_calculator)].into_iter());
let recent_blockhashes_sysvar = recent_blockhashes.create_account(1);
assert_eq!(
parse_sysvar(
&recent_blockhashes_sysvar.data,
&sysvar::recent_blockhashes::id()
)
.unwrap(),
SysvarAccountType::RecentBlockhashes(vec![UiRecentBlockhashesEntry {
blockhash: hash.to_string(),
fee_calculator: fee_calculator.into(),
}]),
);
let rent = Rent {
lamports_per_byte_year: 10,
exemption_threshold: 2.0,
burn_percent: 5,
};
let rent_sysvar = rent.create_account(1);
assert_eq!(
parse_sysvar(&rent_sysvar.data, &sysvar::rent::id()).unwrap(),
SysvarAccountType::Rent(rent.into()),
);
let rewards_sysvar = Rewards::default().create_account(1);
assert_eq!(
parse_sysvar(&rewards_sysvar.data, &sysvar::rewards::id()).unwrap(),
SysvarAccountType::Rewards(UiRewards::default()),
);
let mut slot_hashes = SlotHashes::default();
slot_hashes.add(1, hash);
let slot_hashes_sysvar = slot_hashes.create_account(1);
assert_eq!(
parse_sysvar(&slot_hashes_sysvar.data, &sysvar::slot_hashes::id()).unwrap(),
SysvarAccountType::SlotHashes(vec![UiSlotHashEntry {
slot: 1,
hash: hash.to_string(),
}]),
);
let mut slot_history = SlotHistory::default();
slot_history.add(42);
let slot_history_sysvar = slot_history.create_account(1);
assert_eq!(
parse_sysvar(&slot_history_sysvar.data, &sysvar::slot_history::id()).unwrap(),
SysvarAccountType::SlotHistory(UiSlotHistory {
next_slot: slot_history.next_slot,
bits: format!("{:?}", SlotHistoryBits(slot_history.bits)),
}),
);
let mut stake_history = StakeHistory::default();
let stake_history_entry = StakeHistoryEntry {
effective: 10,
activating: 2,
deactivating: 3,
};
stake_history.add(1, stake_history_entry.clone());
let stake_history_sysvar = stake_history.create_account(1);
assert_eq!(
parse_sysvar(&stake_history_sysvar.data, &sysvar::stake_history::id()).unwrap(),
SysvarAccountType::StakeHistory(vec![UiStakeHistoryEntry {
epoch: 1,
stake_history: stake_history_entry,
}]),
);
let bad_pubkey = solana_sdk::pubkey::new_rand();
assert!(parse_sysvar(&stake_history_sysvar.data, &bad_pubkey).is_err());
let bad_data = vec![0; 4];
assert!(parse_sysvar(&bad_data, &sysvar::stake_history::id()).is_err());
}
}

View File

@ -0,0 +1,340 @@
use crate::{
parse_account_data::{ParsableAccount, ParseAccountError},
StringAmount,
};
use solana_sdk::pubkey::Pubkey;
use spl_token_v2_0::{
solana_sdk::{program_option::COption, program_pack::Pack, pubkey::Pubkey as SplTokenPubkey},
state::{Account, AccountState, Mint, Multisig},
};
use std::str::FromStr;
// A helper function to convert spl_token_v2_0::id() as spl_sdk::pubkey::Pubkey to
// solana_sdk::pubkey::Pubkey
pub fn spl_token_id_v2_0() -> Pubkey {
Pubkey::from_str(&spl_token_v2_0::id().to_string()).unwrap()
}
// A helper function to convert spl_token_v2_0::native_mint::id() as spl_sdk::pubkey::Pubkey to
// solana_sdk::pubkey::Pubkey
pub fn spl_token_v2_0_native_mint() -> Pubkey {
Pubkey::from_str(&spl_token_v2_0::native_mint::id().to_string()).unwrap()
}
pub fn parse_token(
data: &[u8],
mint_decimals: Option<u8>,
) -> Result<TokenAccountType, ParseAccountError> {
if data.len() == Account::get_packed_len() {
let account = Account::unpack(data)
.map_err(|_| ParseAccountError::AccountNotParsable(ParsableAccount::SplToken))?;
let decimals = mint_decimals.ok_or_else(|| {
ParseAccountError::AdditionalDataMissing(
"no mint_decimals provided to parse spl-token account".to_string(),
)
})?;
Ok(TokenAccountType::Account(UiTokenAccount {
mint: account.mint.to_string(),
owner: account.owner.to_string(),
token_amount: token_amount_to_ui_amount(account.amount, decimals),
delegate: match account.delegate {
COption::Some(pubkey) => Some(pubkey.to_string()),
COption::None => None,
},
state: account.state.into(),
is_native: account.is_native(),
rent_exempt_reserve: match account.is_native {
COption::Some(reserve) => Some(token_amount_to_ui_amount(reserve, decimals)),
COption::None => None,
},
delegated_amount: if account.delegate.is_none() {
None
} else {
Some(token_amount_to_ui_amount(
account.delegated_amount,
decimals,
))
},
close_authority: match account.close_authority {
COption::Some(pubkey) => Some(pubkey.to_string()),
COption::None => None,
},
}))
} else if data.len() == Mint::get_packed_len() {
let mint = Mint::unpack(data)
.map_err(|_| ParseAccountError::AccountNotParsable(ParsableAccount::SplToken))?;
Ok(TokenAccountType::Mint(UiMint {
mint_authority: match mint.mint_authority {
COption::Some(pubkey) => Some(pubkey.to_string()),
COption::None => None,
},
supply: mint.supply.to_string(),
decimals: mint.decimals,
is_initialized: mint.is_initialized,
freeze_authority: match mint.freeze_authority {
COption::Some(pubkey) => Some(pubkey.to_string()),
COption::None => None,
},
}))
} else if data.len() == Multisig::get_packed_len() {
let multisig = Multisig::unpack(data)
.map_err(|_| ParseAccountError::AccountNotParsable(ParsableAccount::SplToken))?;
Ok(TokenAccountType::Multisig(UiMultisig {
num_required_signers: multisig.m,
num_valid_signers: multisig.n,
is_initialized: multisig.is_initialized,
signers: multisig
.signers
.iter()
.filter_map(|pubkey| {
if pubkey != &SplTokenPubkey::default() {
Some(pubkey.to_string())
} else {
None
}
})
.collect(),
}))
} else {
Err(ParseAccountError::AccountNotParsable(
ParsableAccount::SplToken,
))
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum TokenAccountType {
Account(UiTokenAccount),
Mint(UiMint),
Multisig(UiMultisig),
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiTokenAccount {
pub mint: String,
pub owner: String,
pub token_amount: UiTokenAmount,
#[serde(skip_serializing_if = "Option::is_none")]
pub delegate: Option<String>,
pub state: UiAccountState,
pub is_native: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub rent_exempt_reserve: Option<UiTokenAmount>,
#[serde(skip_serializing_if = "Option::is_none")]
pub delegated_amount: Option<UiTokenAmount>,
#[serde(skip_serializing_if = "Option::is_none")]
pub close_authority: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum UiAccountState {
Uninitialized,
Initialized,
Frozen,
}
impl From<AccountState> for UiAccountState {
fn from(state: AccountState) -> Self {
match state {
AccountState::Uninitialized => UiAccountState::Uninitialized,
AccountState::Initialized => UiAccountState::Initialized,
AccountState::Frozen => UiAccountState::Frozen,
}
}
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiTokenAmount {
pub ui_amount: f64,
pub decimals: u8,
pub amount: StringAmount,
}
impl UiTokenAmount {
pub fn real_number_string(&self) -> String {
let decimals = self.decimals as usize;
if decimals > 0 {
let amount = u64::from_str(&self.amount).unwrap_or(0);
// Left-pad zeros to decimals + 1, so we at least have an integer zero
let mut s = format!("{:01$}", amount, decimals + 1);
// Add the decimal point (Sorry, "," locales!)
s.insert(s.len() - decimals, '.');
s
} else {
self.amount.clone()
}
}
pub fn real_number_string_trimmed(&self) -> String {
let s = self.real_number_string();
let zeros_trimmed = s.trim_end_matches('0');
let decimal_trimmed = zeros_trimmed.trim_end_matches('.');
decimal_trimmed.to_string()
}
}
pub fn token_amount_to_ui_amount(amount: u64, decimals: u8) -> UiTokenAmount {
// Use `amount_to_ui_amount()` once spl_token is bumped to a version that supports it: https://github.com/solana-labs/solana-program-library/pull/211
let amount_decimals = amount as f64 / 10_usize.pow(decimals as u32) as f64;
UiTokenAmount {
ui_amount: amount_decimals,
decimals,
amount: amount.to_string(),
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiMint {
pub mint_authority: Option<String>,
pub supply: StringAmount,
pub decimals: u8,
pub is_initialized: bool,
pub freeze_authority: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiMultisig {
pub num_required_signers: u8,
pub num_valid_signers: u8,
pub is_initialized: bool,
pub signers: Vec<String>,
}
pub fn get_token_account_mint(data: &[u8]) -> Option<Pubkey> {
if data.len() == Account::get_packed_len() {
Some(Pubkey::new(&data[0..32]))
} else {
None
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_parse_token() {
let mint_pubkey = SplTokenPubkey::new(&[2; 32]);
let owner_pubkey = SplTokenPubkey::new(&[3; 32]);
let mut account_data = vec![0; Account::get_packed_len()];
let mut account = Account::unpack_unchecked(&account_data).unwrap();
account.mint = mint_pubkey;
account.owner = owner_pubkey;
account.amount = 42;
account.state = AccountState::Initialized;
account.is_native = COption::None;
account.close_authority = COption::Some(owner_pubkey);
Account::pack(account, &mut account_data).unwrap();
assert!(parse_token(&account_data, None).is_err());
assert_eq!(
parse_token(&account_data, Some(2)).unwrap(),
TokenAccountType::Account(UiTokenAccount {
mint: mint_pubkey.to_string(),
owner: owner_pubkey.to_string(),
token_amount: UiTokenAmount {
ui_amount: 0.42,
decimals: 2,
amount: "42".to_string()
},
delegate: None,
state: UiAccountState::Initialized,
is_native: false,
rent_exempt_reserve: None,
delegated_amount: None,
close_authority: Some(owner_pubkey.to_string()),
}),
);
let mut mint_data = vec![0; Mint::get_packed_len()];
let mut mint = Mint::unpack_unchecked(&mint_data).unwrap();
mint.mint_authority = COption::Some(owner_pubkey);
mint.supply = 42;
mint.decimals = 3;
mint.is_initialized = true;
mint.freeze_authority = COption::Some(owner_pubkey);
Mint::pack(mint, &mut mint_data).unwrap();
assert_eq!(
parse_token(&mint_data, None).unwrap(),
TokenAccountType::Mint(UiMint {
mint_authority: Some(owner_pubkey.to_string()),
supply: 42.to_string(),
decimals: 3,
is_initialized: true,
freeze_authority: Some(owner_pubkey.to_string()),
}),
);
let signer1 = SplTokenPubkey::new(&[1; 32]);
let signer2 = SplTokenPubkey::new(&[2; 32]);
let signer3 = SplTokenPubkey::new(&[3; 32]);
let mut multisig_data = vec![0; Multisig::get_packed_len()];
let mut signers = [SplTokenPubkey::default(); 11];
signers[0] = signer1;
signers[1] = signer2;
signers[2] = signer3;
let mut multisig = Multisig::unpack_unchecked(&multisig_data).unwrap();
multisig.m = 2;
multisig.n = 3;
multisig.is_initialized = true;
multisig.signers = signers;
Multisig::pack(multisig, &mut multisig_data).unwrap();
assert_eq!(
parse_token(&multisig_data, None).unwrap(),
TokenAccountType::Multisig(UiMultisig {
num_required_signers: 2,
num_valid_signers: 3,
is_initialized: true,
signers: vec![
signer1.to_string(),
signer2.to_string(),
signer3.to_string()
],
}),
);
let bad_data = vec![0; 4];
assert!(parse_token(&bad_data, None).is_err());
}
#[test]
fn test_get_token_account_mint() {
let mint_pubkey = SplTokenPubkey::new(&[2; 32]);
let mut account_data = vec![0; Account::get_packed_len()];
let mut account = Account::unpack_unchecked(&account_data).unwrap();
account.mint = mint_pubkey;
Account::pack(account, &mut account_data).unwrap();
let expected_mint_pubkey = Pubkey::new(&[2; 32]);
assert_eq!(
get_token_account_mint(&account_data),
Some(expected_mint_pubkey)
);
}
#[test]
fn test_ui_token_amount_real_string() {
let token_amount = token_amount_to_ui_amount(1, 0);
assert_eq!(&token_amount.real_number_string(), "1");
assert_eq!(&token_amount.real_number_string_trimmed(), "1");
let token_amount = token_amount_to_ui_amount(1, 9);
assert_eq!(&token_amount.real_number_string(), "0.000000001");
assert_eq!(&token_amount.real_number_string_trimmed(), "0.000000001");
let token_amount = token_amount_to_ui_amount(1_000_000_000, 9);
assert_eq!(&token_amount.real_number_string(), "1.000000000");
assert_eq!(&token_amount.real_number_string_trimmed(), "1");
let token_amount = token_amount_to_ui_amount(1_234_567_890, 3);
assert_eq!(&token_amount.real_number_string(), "1234567.890");
assert_eq!(&token_amount.real_number_string_trimmed(), "1234567.89");
}
}

View File

@ -0,0 +1,144 @@
use crate::{parse_account_data::ParseAccountError, StringAmount};
use solana_sdk::{
clock::{Epoch, Slot},
pubkey::Pubkey,
};
use solana_vote_program::vote_state::{BlockTimestamp, Lockout, VoteState};
pub fn parse_vote(data: &[u8]) -> Result<VoteAccountType, ParseAccountError> {
let mut vote_state = VoteState::deserialize(data).map_err(ParseAccountError::from)?;
let epoch_credits = vote_state
.epoch_credits()
.iter()
.map(|(epoch, credits, previous_credits)| UiEpochCredits {
epoch: *epoch,
credits: credits.to_string(),
previous_credits: previous_credits.to_string(),
})
.collect();
let votes = vote_state
.votes
.iter()
.map(|lockout| UiLockout {
slot: lockout.slot,
confirmation_count: lockout.confirmation_count,
})
.collect();
let authorized_voters = vote_state
.authorized_voters()
.iter()
.map(|(epoch, authorized_voter)| UiAuthorizedVoters {
epoch: *epoch,
authorized_voter: authorized_voter.to_string(),
})
.collect();
let prior_voters = vote_state
.prior_voters()
.buf()
.iter()
.filter(|(pubkey, _, _)| pubkey != &Pubkey::default())
.map(
|(authorized_pubkey, epoch_of_last_authorized_switch, target_epoch)| UiPriorVoters {
authorized_pubkey: authorized_pubkey.to_string(),
epoch_of_last_authorized_switch: *epoch_of_last_authorized_switch,
target_epoch: *target_epoch,
},
)
.collect();
Ok(VoteAccountType::Vote(UiVoteState {
node_pubkey: vote_state.node_pubkey.to_string(),
authorized_withdrawer: vote_state.authorized_withdrawer.to_string(),
commission: vote_state.commission,
votes,
root_slot: vote_state.root_slot,
authorized_voters,
prior_voters,
epoch_credits,
last_timestamp: vote_state.last_timestamp,
}))
}
/// A wrapper enum for consistency across programs
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase", tag = "type", content = "info")]
pub enum VoteAccountType {
Vote(UiVoteState),
}
/// A duplicate representation of VoteState for pretty JSON serialization
#[derive(Debug, Serialize, Deserialize, Default, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UiVoteState {
node_pubkey: String,
authorized_withdrawer: String,
commission: u8,
votes: Vec<UiLockout>,
root_slot: Option<Slot>,
authorized_voters: Vec<UiAuthorizedVoters>,
prior_voters: Vec<UiPriorVoters>,
epoch_credits: Vec<UiEpochCredits>,
last_timestamp: BlockTimestamp,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
struct UiLockout {
slot: Slot,
confirmation_count: u32,
}
impl From<&Lockout> for UiLockout {
fn from(lockout: &Lockout) -> Self {
Self {
slot: lockout.slot,
confirmation_count: lockout.confirmation_count,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
struct UiAuthorizedVoters {
epoch: Epoch,
authorized_voter: String,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
struct UiPriorVoters {
authorized_pubkey: String,
epoch_of_last_authorized_switch: Epoch,
target_epoch: Epoch,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
struct UiEpochCredits {
epoch: Epoch,
credits: StringAmount,
previous_credits: StringAmount,
}
#[cfg(test)]
mod test {
use super::*;
use solana_vote_program::vote_state::VoteStateVersions;
#[test]
fn test_parse_vote() {
let vote_state = VoteState::default();
let mut vote_account_data: Vec<u8> = vec![0; VoteState::size_of()];
let versioned = VoteStateVersions::Current(Box::new(vote_state));
VoteState::serialize(&versioned, &mut vote_account_data).unwrap();
let mut expected_vote_state = UiVoteState::default();
expected_vote_state.node_pubkey = Pubkey::default().to_string();
expected_vote_state.authorized_withdrawer = Pubkey::default().to_string();
assert_eq!(
parse_vote(&vote_account_data).unwrap(),
VoteAccountType::Vote(expected_vote_state)
);
let bad_data = vec![0; 4];
assert!(parse_vote(&bad_data).is_err());
}
}

View File

@ -0,0 +1,18 @@
use solana_config_program::ConfigState;
pub const MAX_SHORT_FIELD_LENGTH: usize = 70;
pub const MAX_LONG_FIELD_LENGTH: usize = 300;
pub const MAX_VALIDATOR_INFO: u64 = 576;
solana_sdk::declare_id!("Va1idator1nfo111111111111111111111111111111");
#[derive(Debug, Deserialize, PartialEq, Serialize, Default)]
pub struct ValidatorInfo {
pub info: String,
}
impl ConfigState for ValidatorInfo {
fn max_space() -> u64 {
MAX_VALIDATOR_INFO
}
}

24
accounts-bench/Cargo.toml Normal file
View File

@ -0,0 +1,24 @@
[package]
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-accounts-bench"
version = "1.3.24"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
publish = false
[dependencies]
log = "0.4.6"
rayon = "1.4.0"
solana-logger = { path = "../logger", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-measure = { path = "../measure", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-version = { path = "../version", version = "1.3.24" }
rand = "0.7.0"
clap = "2.33.1"
crossbeam-channel = "0.4"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

107
accounts-bench/src/main.rs Normal file
View File

@ -0,0 +1,107 @@
use clap::{crate_description, crate_name, value_t, App, Arg};
use rayon::prelude::*;
use solana_measure::measure::Measure;
use solana_runtime::{
accounts::{create_test_accounts, update_accounts, Accounts},
accounts_index::Ancestors,
};
use solana_sdk::{genesis_config::ClusterType, pubkey::Pubkey};
use std::env;
use std::fs;
use std::path::PathBuf;
fn main() {
solana_logger::setup();
let matches = App::new(crate_name!())
.about(crate_description!())
.version(solana_version::version!())
.arg(
Arg::with_name("num_slots")
.long("num_slots")
.takes_value(true)
.value_name("SLOTS")
.help("Number of slots to store to."),
)
.arg(
Arg::with_name("num_accounts")
.long("num_accounts")
.takes_value(true)
.value_name("NUM_ACCOUNTS")
.help("Total number of accounts"),
)
.arg(
Arg::with_name("iterations")
.long("iterations")
.takes_value(true)
.value_name("ITERATIONS")
.help("Number of bench iterations"),
)
.arg(
Arg::with_name("clean")
.long("clean")
.takes_value(false)
.help("Run clean"),
)
.get_matches();
let num_slots = value_t!(matches, "num_slots", usize).unwrap_or(4);
let num_accounts = value_t!(matches, "num_accounts", usize).unwrap_or(10_000);
let iterations = value_t!(matches, "iterations", usize).unwrap_or(20);
let clean = matches.is_present("clean");
println!("clean: {:?}", clean);
let path = PathBuf::from(env::var("FARF_DIR").unwrap_or_else(|_| "farf".to_owned()))
.join("accounts-bench");
if fs::remove_dir_all(path.clone()).is_err() {
println!("Warning: Couldn't remove {:?}", path);
}
let accounts = Accounts::new(vec![path], &ClusterType::Testnet);
println!("Creating {} accounts", num_accounts);
let mut create_time = Measure::start("create accounts");
let pubkeys: Vec<_> = (0..num_slots)
.into_par_iter()
.map(|slot| {
let mut pubkeys: Vec<Pubkey> = vec![];
create_test_accounts(
&accounts,
&mut pubkeys,
num_accounts / num_slots,
slot as u64,
);
pubkeys
})
.collect();
let pubkeys: Vec<_> = pubkeys.into_iter().flatten().collect();
create_time.stop();
println!(
"created {} accounts in {} slots {}",
(num_accounts / num_slots) * num_slots,
num_slots,
create_time
);
let mut ancestors: Ancestors = vec![(0, 0)].into_iter().collect();
for i in 1..num_slots {
ancestors.insert(i as u64, i - 1);
accounts.add_root(i as u64);
}
for x in 0..iterations {
if clean {
let mut time = Measure::start("clean");
accounts.accounts_db.clean_accounts();
time.stop();
println!("{}", time);
for slot in 0..num_slots {
update_accounts(&accounts, &pubkeys, ((x + 1) * num_slots + slot) as u64);
accounts.add_root((x * num_slots + slot) as u64);
}
} else {
let mut pubkeys: Vec<Pubkey> = vec![];
let mut time = Measure::start("hash");
let hash = accounts.accounts_db.update_accounts_hash(0, &ancestors).0;
time.stop();
println!("hash: {} {}", hash, time);
create_test_accounts(&accounts, &mut pubkeys, 1, 0);
}
}
}

View File

@ -1,39 +0,0 @@
[package]
name = "solana-archiver-lib"
version = "0.23.0"
description = "Solana Archiver Library"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.2.1"
crossbeam-channel = "0.3"
ed25519-dalek = "=1.0.0-pre.1"
log = "0.4.8"
rand = "0.6.5"
rand_chacha = "0.1.1"
solana-client = { path = "../client", version = "0.23.0" }
solana-storage-program = { path = "../programs/storage", version = "0.23.0" }
thiserror = "1.0"
serde = "1.0.104"
serde_json = "1.0.44"
serde_derive = "1.0.103"
solana-net-utils = { path = "../net-utils", version = "0.23.0" }
solana-chacha = { path = "../chacha", version = "0.23.0" }
solana-chacha-sys = { path = "../chacha-sys", version = "0.23.0" }
solana-ledger = { path = "../ledger", version = "0.23.0" }
solana-logger = { path = "../logger", version = "0.23.0" }
solana-perf = { path = "../perf", version = "0.23.0" }
solana-sdk = { path = "../sdk", version = "0.23.0" }
solana-core = { path = "../core", version = "0.23.0" }
solana-archiver-utils = { path = "../archiver-utils", version = "0.23.0" }
solana-metrics = { path = "../metrics", version = "0.23.0" }
[dev-dependencies]
hex = "0.4.0"
[lib]
name = "solana_archiver_lib"

View File

@ -1,950 +0,0 @@
use crate::result::ArchiverError;
use crossbeam_channel::unbounded;
use ed25519_dalek;
use rand::{thread_rng, Rng, SeedableRng};
use rand_chacha::ChaChaRng;
use solana_archiver_utils::sample_file;
use solana_chacha::chacha::{chacha_cbc_encrypt_ledger, CHACHA_BLOCK_SIZE};
use solana_client::{
rpc_client::RpcClient, rpc_request::RpcRequest, rpc_response::RpcStorageTurn,
thin_client::ThinClient,
};
use solana_core::{
cluster_info::{ClusterInfo, Node, VALIDATOR_PORT_RANGE},
contact_info::ContactInfo,
gossip_service::GossipService,
packet::{limited_deserialize, PACKET_DATA_SIZE},
repair_service,
repair_service::{RepairService, RepairSlotRange, RepairStrategy},
shred_fetch_stage::ShredFetchStage,
sigverify_stage::{DisabledSigVerifier, SigVerifyStage},
storage_stage::NUM_STORAGE_SAMPLES,
streamer::{receiver, responder, PacketReceiver},
window_service::WindowService,
};
use solana_ledger::{
blockstore::Blockstore, leader_schedule_cache::LeaderScheduleCache, shred::Shred,
};
use solana_net_utils::bind_in_range;
use solana_perf::packet::Packets;
use solana_perf::recycler::Recycler;
use solana_sdk::packet::Packet;
use solana_sdk::{
account_utils::StateMut,
client::{AsyncClient, SyncClient},
clock::{get_complete_segment_from_slot, get_segment_from_slot, Slot},
commitment_config::CommitmentConfig,
hash::Hash,
message::Message,
signature::{Keypair, KeypairUtil, Signature},
timing::timestamp,
transaction::Transaction,
transport::TransportError,
};
use solana_storage_program::{
storage_contract::StorageContract,
storage_instruction::{self, StorageAccountType},
};
use std::{
io::{self, ErrorKind},
net::{SocketAddr, UdpSocket},
path::{Path, PathBuf},
result,
sync::atomic::{AtomicBool, Ordering},
sync::mpsc::{channel, Receiver, Sender},
sync::{Arc, RwLock},
thread::{sleep, spawn, JoinHandle},
time::Duration,
};
type Result<T> = std::result::Result<T, ArchiverError>;
static ENCRYPTED_FILENAME: &str = "ledger.enc";
#[derive(Serialize, Deserialize)]
pub enum ArchiverRequest {
GetSlotHeight(SocketAddr),
}
pub struct Archiver {
thread_handles: Vec<JoinHandle<()>>,
exit: Arc<AtomicBool>,
}
// Shared Archiver Meta struct used internally
#[derive(Default)]
struct ArchiverMeta {
slot: Slot,
slots_per_segment: u64,
ledger_path: PathBuf,
signature: Signature,
ledger_data_file_encrypted: PathBuf,
sampling_offsets: Vec<u64>,
blockhash: Hash,
sha_state: Hash,
num_chacha_blocks: usize,
client_commitment: CommitmentConfig,
}
fn get_slot_from_signature(
signature: &ed25519_dalek::Signature,
storage_turn: u64,
slots_per_segment: u64,
) -> u64 {
let signature_vec = signature.to_bytes();
let mut segment_index = u64::from(signature_vec[0])
| (u64::from(signature_vec[1]) << 8)
| (u64::from(signature_vec[1]) << 16)
| (u64::from(signature_vec[2]) << 24);
let max_segment_index =
get_complete_segment_from_slot(storage_turn, slots_per_segment).unwrap();
segment_index %= max_segment_index as u64;
segment_index * slots_per_segment
}
fn create_request_processor(
socket: UdpSocket,
exit: &Arc<AtomicBool>,
slot_receiver: Receiver<u64>,
) -> Vec<JoinHandle<()>> {
let mut thread_handles = vec![];
let (s_reader, r_reader) = channel();
let (s_responder, r_responder) = channel();
let storage_socket = Arc::new(socket);
let recycler = Recycler::default();
let t_receiver = receiver(storage_socket.clone(), exit, s_reader, recycler, "archiver");
thread_handles.push(t_receiver);
let t_responder = responder("archiver-responder", storage_socket, r_responder);
thread_handles.push(t_responder);
let exit = exit.clone();
let t_processor = spawn(move || {
let slot = poll_for_slot(slot_receiver, &exit);
loop {
if exit.load(Ordering::Relaxed) {
break;
}
let packets = r_reader.recv_timeout(Duration::from_secs(1));
if let Ok(packets) = packets {
for packet in &packets.packets {
let req: result::Result<ArchiverRequest, Box<bincode::ErrorKind>> =
limited_deserialize(&packet.data[..packet.meta.size]);
match req {
Ok(ArchiverRequest::GetSlotHeight(from)) => {
let packet = Packet::from_data(&from, slot);
let _ = s_responder.send(Packets::new(vec![packet]));
}
Err(e) => {
info!("invalid request: {:?}", e);
}
}
}
}
}
});
thread_handles.push(t_processor);
thread_handles
}
fn poll_for_slot(receiver: Receiver<u64>, exit: &Arc<AtomicBool>) -> u64 {
loop {
let slot = receiver.recv_timeout(Duration::from_secs(1));
if let Ok(slot) = slot {
return slot;
}
if exit.load(Ordering::Relaxed) {
return 0;
}
}
}
impl Archiver {
/// Returns a Result that contains an archiver on success
///
/// # Arguments
/// * `ledger_path` - path to where the ledger will be stored.
/// Causes panic if none
/// * `node` - The archiver node
/// * `cluster_entrypoint` - ContactInfo representing an entry into the network
/// * `keypair` - Keypair for this archiver
#[allow(clippy::new_ret_no_self)]
pub fn new(
ledger_path: &Path,
node: Node,
cluster_entrypoint: ContactInfo,
keypair: Arc<Keypair>,
storage_keypair: Arc<Keypair>,
client_commitment: CommitmentConfig,
) -> Result<Self> {
let exit = Arc::new(AtomicBool::new(false));
info!("Archiver: id: {}", keypair.pubkey());
info!("Creating cluster info....");
let mut cluster_info = ClusterInfo::new(node.info.clone(), keypair.clone());
cluster_info.set_entrypoint(cluster_entrypoint.clone());
let cluster_info = Arc::new(RwLock::new(cluster_info));
// Note for now, this ledger will not contain any of the existing entries
// in the ledger located at ledger_path, and will only append on newly received
// entries after being passed to window_service
let blockstore = Arc::new(
Blockstore::open(ledger_path).expect("Expected to be able to open database ledger"),
);
let gossip_service = GossipService::new(
&cluster_info,
Some(blockstore.clone()),
None,
node.sockets.gossip,
&exit,
);
info!("Connecting to the cluster via {:?}", cluster_entrypoint);
let (nodes, _) =
match solana_core::gossip_service::discover_cluster(&cluster_entrypoint.gossip, 1) {
Ok(nodes_and_archivers) => nodes_and_archivers,
Err(e) => {
//shutdown services before exiting
exit.store(true, Ordering::Relaxed);
gossip_service.join()?;
return Err(e.into());
}
};
let client = solana_core::gossip_service::get_client(&nodes);
info!("Setting up mining account...");
if let Err(e) = Self::setup_mining_account(
&client,
&keypair,
&storage_keypair,
client_commitment.clone(),
) {
//shutdown services before exiting
exit.store(true, Ordering::Relaxed);
gossip_service.join()?;
return Err(e);
};
let repair_socket = Arc::new(node.sockets.repair);
let shred_sockets: Vec<Arc<UdpSocket>> =
node.sockets.tvu.into_iter().map(Arc::new).collect();
let shred_forward_sockets: Vec<Arc<UdpSocket>> = node
.sockets
.tvu_forwards
.into_iter()
.map(Arc::new)
.collect();
let (shred_fetch_sender, shred_fetch_receiver) = channel();
let fetch_stage = ShredFetchStage::new(
shred_sockets,
shred_forward_sockets,
repair_socket.clone(),
&shred_fetch_sender,
&exit,
);
let (slot_sender, slot_receiver) = channel();
let request_processor =
create_request_processor(node.sockets.storage.unwrap(), &exit, slot_receiver);
let t_archiver = {
let exit = exit.clone();
let node_info = node.info.clone();
let mut meta = ArchiverMeta {
ledger_path: ledger_path.to_path_buf(),
client_commitment,
..ArchiverMeta::default()
};
spawn(move || {
// setup archiver
let window_service = match Self::setup(
&mut meta,
cluster_info.clone(),
&blockstore,
&exit,
&node_info,
&storage_keypair,
repair_socket,
shred_fetch_receiver,
slot_sender,
) {
Ok(window_service) => window_service,
Err(e) => {
//shutdown services before exiting
error!("setup failed {:?}; archiver thread exiting...", e);
exit.store(true, Ordering::Relaxed);
request_processor
.into_iter()
.for_each(|t| t.join().unwrap());
fetch_stage.join().unwrap();
gossip_service.join().unwrap();
return;
}
};
info!("setup complete");
// run archiver
Self::run(
&mut meta,
&blockstore,
cluster_info,
&keypair,
&storage_keypair,
&exit,
);
// wait until exit
request_processor
.into_iter()
.for_each(|t| t.join().unwrap());
fetch_stage.join().unwrap();
gossip_service.join().unwrap();
window_service.join().unwrap()
})
};
Ok(Self {
thread_handles: vec![t_archiver],
exit,
})
}
fn run(
meta: &mut ArchiverMeta,
blockstore: &Arc<Blockstore>,
cluster_info: Arc<RwLock<ClusterInfo>>,
archiver_keypair: &Arc<Keypair>,
storage_keypair: &Arc<Keypair>,
exit: &Arc<AtomicBool>,
) {
// encrypt segment
Self::encrypt_ledger(meta, blockstore).expect("ledger encrypt not successful");
let enc_file_path = meta.ledger_data_file_encrypted.clone();
// do replicate
loop {
if exit.load(Ordering::Relaxed) {
break;
}
// TODO check if more segments are available - based on space constraints
Self::create_sampling_offsets(meta);
let sampling_offsets = &meta.sampling_offsets;
meta.sha_state =
match Self::sample_file_to_create_mining_hash(&enc_file_path, sampling_offsets) {
Ok(hash) => hash,
Err(err) => {
warn!("Error sampling file, exiting: {:?}", err);
break;
}
};
Self::submit_mining_proof(meta, &cluster_info, archiver_keypair, storage_keypair);
// TODO make this a lot more frequent by picking a "new" blockhash instead of picking a storage blockhash
// prep the next proof
let (storage_blockhash, _) = match Self::poll_for_blockhash_and_slot(
&cluster_info,
meta.slots_per_segment,
&meta.blockhash,
exit,
) {
Ok(blockhash_and_slot) => blockhash_and_slot,
Err(e) => {
warn!(
"Error couldn't get a newer blockhash than {:?}. {:?}",
meta.blockhash, e
);
break;
}
};
meta.blockhash = storage_blockhash;
Self::redeem_rewards(
&cluster_info,
archiver_keypair,
storage_keypair,
meta.client_commitment.clone(),
);
}
exit.store(true, Ordering::Relaxed);
}
fn redeem_rewards(
cluster_info: &Arc<RwLock<ClusterInfo>>,
archiver_keypair: &Arc<Keypair>,
storage_keypair: &Arc<Keypair>,
client_commitment: CommitmentConfig,
) {
let nodes = cluster_info.read().unwrap().tvu_peers();
let client = solana_core::gossip_service::get_client(&nodes);
if let Ok(Some(account)) =
client.get_account_with_commitment(&storage_keypair.pubkey(), client_commitment.clone())
{
if let Ok(StorageContract::ArchiverStorage { validations, .. }) = account.state() {
if !validations.is_empty() {
let ix = storage_instruction::claim_reward(
&archiver_keypair.pubkey(),
&storage_keypair.pubkey(),
);
let message =
Message::new_with_payer(vec![ix], Some(&archiver_keypair.pubkey()));
if let Err(e) = client.send_message(&[&archiver_keypair], message) {
error!("unable to redeem reward, tx failed: {:?}", e);
} else {
info!(
"collected mining rewards: Account balance {:?}",
client.get_balance_with_commitment(
&archiver_keypair.pubkey(),
client_commitment
)
);
}
}
}
} else {
info!("Redeem mining reward: No account data found");
}
}
// Find a segment to replicate and download it.
fn setup(
meta: &mut ArchiverMeta,
cluster_info: Arc<RwLock<ClusterInfo>>,
blockstore: &Arc<Blockstore>,
exit: &Arc<AtomicBool>,
node_info: &ContactInfo,
storage_keypair: &Arc<Keypair>,
repair_socket: Arc<UdpSocket>,
shred_fetch_receiver: PacketReceiver,
slot_sender: Sender<u64>,
) -> Result<WindowService> {
let slots_per_segment =
match Self::get_segment_config(&cluster_info, meta.client_commitment.clone()) {
Ok(slots_per_segment) => slots_per_segment,
Err(e) => {
error!("unable to get segment size configuration, exiting...");
//shutdown services before exiting
exit.store(true, Ordering::Relaxed);
return Err(e);
}
};
let (segment_blockhash, segment_slot) = match Self::poll_for_segment(
&cluster_info,
slots_per_segment,
&Hash::default(),
exit,
) {
Ok(blockhash_and_slot) => blockhash_and_slot,
Err(e) => {
//shutdown services before exiting
exit.store(true, Ordering::Relaxed);
return Err(e);
}
};
let signature = storage_keypair.sign(segment_blockhash.as_ref());
let slot = get_slot_from_signature(&signature, segment_slot, slots_per_segment);
info!("replicating slot: {}", slot);
slot_sender.send(slot)?;
meta.slot = slot;
meta.slots_per_segment = slots_per_segment;
meta.signature = Signature::new(&signature.to_bytes());
meta.blockhash = segment_blockhash;
let mut repair_slot_range = RepairSlotRange::default();
repair_slot_range.end = slot + slots_per_segment;
repair_slot_range.start = slot;
let (retransmit_sender, _) = channel();
let (verified_sender, verified_receiver) = unbounded();
let _sigverify_stage = SigVerifyStage::new(
shred_fetch_receiver,
verified_sender,
DisabledSigVerifier::default(),
);
let window_service = WindowService::new(
blockstore.clone(),
cluster_info.clone(),
verified_receiver,
retransmit_sender,
repair_socket,
&exit,
RepairStrategy::RepairRange(repair_slot_range),
&Arc::new(LeaderScheduleCache::default()),
|_, _, _, _| true,
);
info!("waiting for ledger download");
Self::wait_for_segment_download(
slot,
slots_per_segment,
&blockstore,
&exit,
&node_info,
cluster_info,
);
Ok(window_service)
}
fn wait_for_segment_download(
start_slot: Slot,
slots_per_segment: u64,
blockstore: &Arc<Blockstore>,
exit: &Arc<AtomicBool>,
node_info: &ContactInfo,
cluster_info: Arc<RwLock<ClusterInfo>>,
) {
info!(
"window created, waiting for ledger download starting at slot {:?}",
start_slot
);
let mut current_slot = start_slot;
'outer: loop {
while blockstore.is_full(current_slot) {
current_slot += 1;
info!("current slot: {}", current_slot);
if current_slot >= start_slot + slots_per_segment {
break 'outer;
}
}
if exit.load(Ordering::Relaxed) {
break;
}
sleep(Duration::from_secs(1));
}
info!("Done receiving entries from window_service");
// Remove archiver from the data plane
let mut contact_info = node_info.clone();
contact_info.tvu = "0.0.0.0:0".parse().unwrap();
contact_info.wallclock = timestamp();
{
let mut cluster_info_w = cluster_info.write().unwrap();
cluster_info_w.insert_self(contact_info);
}
}
fn encrypt_ledger(meta: &mut ArchiverMeta, blockstore: &Arc<Blockstore>) -> Result<()> {
meta.ledger_data_file_encrypted = meta.ledger_path.join(ENCRYPTED_FILENAME);
{
let mut ivec = [0u8; 64];
ivec.copy_from_slice(&meta.signature.as_ref());
let num_encrypted_bytes = chacha_cbc_encrypt_ledger(
blockstore,
meta.slot,
meta.slots_per_segment,
&meta.ledger_data_file_encrypted,
&mut ivec,
)?;
meta.num_chacha_blocks = num_encrypted_bytes / CHACHA_BLOCK_SIZE;
}
info!(
"Done encrypting the ledger: {:?}",
meta.ledger_data_file_encrypted
);
Ok(())
}
fn create_sampling_offsets(meta: &mut ArchiverMeta) {
meta.sampling_offsets.clear();
let mut rng_seed = [0u8; 32];
rng_seed.copy_from_slice(&meta.blockhash.as_ref());
let mut rng = ChaChaRng::from_seed(rng_seed);
for _ in 0..NUM_STORAGE_SAMPLES {
meta.sampling_offsets
.push(rng.gen_range(0, meta.num_chacha_blocks) as u64);
}
}
fn sample_file_to_create_mining_hash(
enc_file_path: &Path,
sampling_offsets: &[u64],
) -> Result<Hash> {
let sha_state = sample_file(enc_file_path, sampling_offsets)?;
info!("sampled sha_state: {}", sha_state);
Ok(sha_state)
}
fn setup_mining_account(
client: &ThinClient,
keypair: &Keypair,
storage_keypair: &Keypair,
client_commitment: CommitmentConfig,
) -> Result<()> {
// make sure archiver has some balance
info!("checking archiver keypair...");
if client.poll_balance_with_timeout_and_commitment(
&keypair.pubkey(),
&Duration::from_millis(100),
&Duration::from_secs(5),
client_commitment.clone(),
)? == 0
{
return Err(ArchiverError::EmptyStorageAccountBalance);
}
info!("checking storage account keypair...");
// check if the storage account exists
let balance = client
.poll_get_balance_with_commitment(&storage_keypair.pubkey(), client_commitment.clone());
if balance.is_err() || balance.unwrap() == 0 {
let blockhash =
match client.get_recent_blockhash_with_commitment(client_commitment.clone()) {
Ok((blockhash, _)) => blockhash,
Err(e) => {
return Err(ArchiverError::TransportError(e));
}
};
let ix = storage_instruction::create_storage_account(
&keypair.pubkey(),
&keypair.pubkey(),
&storage_keypair.pubkey(),
1,
StorageAccountType::Archiver,
);
let tx = Transaction::new_signed_instructions(&[keypair], ix, blockhash);
let signature = client.async_send_transaction(tx)?;
client
.poll_for_signature_with_commitment(&signature, client_commitment)
.map_err(|err| match err {
TransportError::IoError(e) => e,
TransportError::TransactionError(_) => io::Error::new(
ErrorKind::Other,
"setup_mining_account: signature not found",
),
})?;
}
Ok(())
}
fn submit_mining_proof(
meta: &ArchiverMeta,
cluster_info: &Arc<RwLock<ClusterInfo>>,
archiver_keypair: &Arc<Keypair>,
storage_keypair: &Arc<Keypair>,
) {
// No point if we've got no storage account...
let nodes = cluster_info.read().unwrap().tvu_peers();
let client = solana_core::gossip_service::get_client(&nodes);
let storage_balance = client.poll_get_balance_with_commitment(
&storage_keypair.pubkey(),
meta.client_commitment.clone(),
);
if storage_balance.is_err() || storage_balance.unwrap() == 0 {
error!("Unable to submit mining proof, no storage account");
return;
}
// ...or no lamports for fees
let balance = client.poll_get_balance_with_commitment(
&archiver_keypair.pubkey(),
meta.client_commitment.clone(),
);
if balance.is_err() || balance.unwrap() == 0 {
error!("Unable to submit mining proof, insufficient Archiver Account balance");
return;
}
let blockhash =
match client.get_recent_blockhash_with_commitment(meta.client_commitment.clone()) {
Ok((blockhash, _)) => blockhash,
Err(_) => {
error!("unable to get recent blockhash, can't submit proof");
return;
}
};
let instruction = storage_instruction::mining_proof(
&storage_keypair.pubkey(),
meta.sha_state,
get_segment_from_slot(meta.slot, meta.slots_per_segment),
Signature::new(&meta.signature.as_ref()),
meta.blockhash,
);
let message = Message::new_with_payer(vec![instruction], Some(&archiver_keypair.pubkey()));
let mut transaction = Transaction::new(
&[archiver_keypair.as_ref(), storage_keypair.as_ref()],
message,
blockhash,
);
if let Err(err) = client.send_and_confirm_transaction(
&[&archiver_keypair, &storage_keypair],
&mut transaction,
10,
0,
) {
error!("Error: {:?}; while sending mining proof", err);
}
}
pub fn close(self) {
self.exit.store(true, Ordering::Relaxed);
self.join()
}
pub fn join(self) {
for handle in self.thread_handles {
handle.join().unwrap();
}
}
fn get_segment_config(
cluster_info: &Arc<RwLock<ClusterInfo>>,
client_commitment: CommitmentConfig,
) -> Result<u64> {
let rpc_peers = {
let cluster_info = cluster_info.read().unwrap();
cluster_info.rpc_peers()
};
debug!("rpc peers: {:?}", rpc_peers);
if !rpc_peers.is_empty() {
let rpc_client = {
let node_index = thread_rng().gen_range(0, rpc_peers.len());
RpcClient::new_socket(rpc_peers[node_index].rpc)
};
Ok(rpc_client
.send(
&RpcRequest::GetSlotsPerSegment,
serde_json::json!([client_commitment]),
0,
)
.map_err(|err| {
warn!("Error while making rpc request {:?}", err);
ArchiverError::ClientError(err)
})?
.as_u64()
.unwrap())
} else {
Err(ArchiverError::NoRpcPeers)
}
}
/// Waits until the first segment is ready, and returns the current segment
fn poll_for_segment(
cluster_info: &Arc<RwLock<ClusterInfo>>,
slots_per_segment: u64,
previous_blockhash: &Hash,
exit: &Arc<AtomicBool>,
) -> Result<(Hash, u64)> {
loop {
let (blockhash, turn_slot) = Self::poll_for_blockhash_and_slot(
cluster_info,
slots_per_segment,
previous_blockhash,
exit,
)?;
if get_complete_segment_from_slot(turn_slot, slots_per_segment).is_some() {
return Ok((blockhash, turn_slot));
}
}
}
/// Poll for a different blockhash and associated max_slot than `previous_blockhash`
fn poll_for_blockhash_and_slot(
cluster_info: &Arc<RwLock<ClusterInfo>>,
slots_per_segment: u64,
previous_blockhash: &Hash,
exit: &Arc<AtomicBool>,
) -> Result<(Hash, u64)> {
info!("waiting for the next turn...");
loop {
let rpc_peers = {
let cluster_info = cluster_info.read().unwrap();
cluster_info.rpc_peers()
};
debug!("rpc peers: {:?}", rpc_peers);
if !rpc_peers.is_empty() {
let rpc_client = {
let node_index = thread_rng().gen_range(0, rpc_peers.len());
RpcClient::new_socket(rpc_peers[node_index].rpc)
};
let response = rpc_client
.send(
&RpcRequest::GetStorageTurn,
serde_json::value::Value::Null,
0,
)
.map_err(|err| {
warn!("Error while making rpc request {:?}", err);
ArchiverError::ClientError(err)
})?;
let RpcStorageTurn {
blockhash: storage_blockhash,
slot: turn_slot,
} = serde_json::from_value::<RpcStorageTurn>(response)
.map_err(ArchiverError::JsonError)?;
let turn_blockhash = storage_blockhash.parse().map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!(
"Blockhash parse failure: {:?} on {:?}",
err, storage_blockhash
),
)
})?;
if turn_blockhash != *previous_blockhash {
info!("turn slot: {}", turn_slot);
if get_segment_from_slot(turn_slot, slots_per_segment) != 0 {
return Ok((turn_blockhash, turn_slot));
}
}
}
if exit.load(Ordering::Relaxed) {
return Err(ArchiverError::IO(io::Error::new(
ErrorKind::Other,
"exit signalled...",
)));
}
sleep(Duration::from_secs(5));
}
}
/// Ask an archiver to populate a given blockstore with its segment.
/// Return the slot at the start of the archiver's segment
///
/// It is recommended to use a temporary blockstore for this since the download will not verify
/// shreds received and might impact the chaining of shreds across slots
pub fn download_from_archiver(
cluster_info: &Arc<RwLock<ClusterInfo>>,
archiver_info: &ContactInfo,
blockstore: &Arc<Blockstore>,
slots_per_segment: u64,
) -> Result<u64> {
// Create a client which downloads from the archiver and see that it
// can respond with shreds.
let start_slot = Self::get_archiver_segment_slot(archiver_info.storage_addr);
info!("Archiver download: start at {}", start_slot);
let exit = Arc::new(AtomicBool::new(false));
let (s_reader, r_reader) = channel();
let repair_socket = Arc::new(bind_in_range(VALIDATOR_PORT_RANGE).unwrap().1);
let t_receiver = receiver(
repair_socket.clone(),
&exit,
s_reader,
Recycler::default(),
"archiver_reeciver",
);
let id = cluster_info.read().unwrap().id();
info!(
"Sending repair requests from: {} to: {}",
cluster_info.read().unwrap().my_data().id,
archiver_info.gossip
);
let repair_slot_range = RepairSlotRange {
start: start_slot,
end: start_slot + slots_per_segment,
};
// try for upto 180 seconds //TODO needs tuning if segments are huge
for _ in 0..120 {
// Strategy used by archivers
let repairs = RepairService::generate_repairs_in_range(
blockstore,
repair_service::MAX_REPAIR_LENGTH,
&repair_slot_range,
);
//iter over the repairs and send them
if let Ok(repairs) = repairs {
let reqs: Vec<_> = repairs
.into_iter()
.filter_map(|repair_request| {
cluster_info
.read()
.unwrap()
.map_repair_request(&repair_request)
.map(|result| ((archiver_info.gossip, result), repair_request))
.ok()
})
.collect();
for ((to, req), repair_request) in reqs {
if let Ok(local_addr) = repair_socket.local_addr() {
datapoint_info!(
"archiver_download",
("repair_request", format!("{:?}", repair_request), String),
("to", to.to_string(), String),
("from", local_addr.to_string(), String),
("id", id.to_string(), String)
);
}
repair_socket
.send_to(&req, archiver_info.gossip)
.unwrap_or_else(|e| {
error!("{} repair req send_to({}) error {:?}", id, to, e);
0
});
}
}
let res = r_reader.recv_timeout(Duration::new(1, 0));
if let Ok(mut packets) = res {
while let Ok(mut more) = r_reader.try_recv() {
packets.packets.append_pinned(&mut more.packets);
}
let shreds: Vec<Shred> = packets
.packets
.into_iter()
.filter_map(|p| Shred::new_from_serialized_shred(p.data.to_vec()).ok())
.collect();
blockstore.insert_shreds(shreds, None, false)?;
}
// check if all the slots in the segment are complete
if Self::segment_complete(start_slot, slots_per_segment, blockstore) {
break;
}
sleep(Duration::from_millis(500));
}
exit.store(true, Ordering::Relaxed);
t_receiver.join().unwrap();
// check if all the slots in the segment are complete
if !Self::segment_complete(start_slot, slots_per_segment, blockstore) {
return Err(ArchiverError::SegmentDownloadError);
}
Ok(start_slot)
}
fn segment_complete(
start_slot: Slot,
slots_per_segment: u64,
blockstore: &Arc<Blockstore>,
) -> bool {
for slot in start_slot..(start_slot + slots_per_segment) {
if !blockstore.is_full(slot) {
return false;
}
}
true
}
fn get_archiver_segment_slot(to: SocketAddr) -> u64 {
let (_port, socket) = bind_in_range(VALIDATOR_PORT_RANGE).unwrap();
socket
.set_read_timeout(Some(Duration::from_secs(5)))
.unwrap();
let req = ArchiverRequest::GetSlotHeight(socket.local_addr().unwrap());
let serialized_req = bincode::serialize(&req).unwrap();
for _ in 0..10 {
socket.send_to(&serialized_req, to).unwrap();
let mut buf = [0; 1024];
if let Ok((size, _addr)) = socket.recv_from(&mut buf) {
// Ignore bad packet and try again
if let Ok(slot) = bincode::config()
.limit(PACKET_DATA_SIZE as u64)
.deserialize(&buf[..size])
{
return slot;
}
}
sleep(Duration::from_millis(500));
}
panic!("Couldn't get segment slot from archiver!");
}
}

View File

@ -1,48 +0,0 @@
use serde_json;
use solana_client::client_error;
use solana_ledger::blockstore;
use solana_sdk::transport;
use std::any::Any;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum ArchiverError {
#[error("IO error")]
IO(#[from] std::io::Error),
#[error("blockstore error")]
BlockstoreError(#[from] blockstore::BlockstoreError),
#[error("crossbeam error")]
CrossbeamSendError(#[from] crossbeam_channel::SendError<u64>),
#[error("send error")]
SendError(#[from] std::sync::mpsc::SendError<u64>),
#[error("join error")]
JoinError(Box<dyn Any + Send + 'static>),
#[error("transport error")]
TransportError(#[from] transport::TransportError),
#[error("client error")]
ClientError(#[from] client_error::ClientError),
#[error("Json parsing error")]
JsonError(#[from] serde_json::error::Error),
#[error("Storage account has no balance")]
EmptyStorageAccountBalance,
#[error("No RPC peers..")]
NoRpcPeers,
#[error("Couldn't download full segment")]
SegmentDownloadError,
}
impl std::convert::From<Box<dyn Any + Send + 'static>> for ArchiverError {
fn from(e: Box<dyn Any + Send + 'static>) -> ArchiverError {
ArchiverError::JoinError(e)
}
}

View File

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

View File

@ -1,120 +0,0 @@
#[macro_use]
extern crate log;
use solana_sdk::hash::{Hash, Hasher};
use std::fs::File;
use std::io::{self, BufReader, ErrorKind, Read, Seek, SeekFrom};
use std::mem::size_of;
use std::path::Path;
pub fn sample_file(in_path: &Path, sample_offsets: &[u64]) -> io::Result<Hash> {
let in_file = File::open(in_path)?;
let metadata = in_file.metadata()?;
let mut buffer_file = BufReader::new(in_file);
let mut hasher = Hasher::default();
let sample_size = size_of::<Hash>();
let sample_size64 = sample_size as u64;
let mut buf = vec![0; sample_size];
let file_len = metadata.len();
if file_len < sample_size64 {
return Err(io::Error::new(ErrorKind::Other, "file too short!"));
}
for offset in sample_offsets {
if *offset > (file_len - sample_size64) / sample_size64 {
return Err(io::Error::new(ErrorKind::Other, "offset too large"));
}
buffer_file.seek(SeekFrom::Start(*offset * sample_size64))?;
trace!("sampling @ {} ", *offset);
match buffer_file.read(&mut buf) {
Ok(size) => {
assert_eq!(size, buf.len());
hasher.hash(&buf);
}
Err(e) => {
warn!("Error sampling file");
return Err(e);
}
}
}
Ok(hasher.result())
}
#[cfg(test)]
mod tests {
use super::*;
use rand::{thread_rng, Rng};
use std::fs::{create_dir_all, remove_file};
use std::io::Write;
use std::path::PathBuf;
extern crate hex;
fn tmp_file_path(name: &str) -> PathBuf {
use std::env;
let out_dir = env::var("FARF_DIR").unwrap_or_else(|_| "farf".to_string());
let mut rand_bits = [0u8; 32];
thread_rng().fill(&mut rand_bits[..]);
let mut path = PathBuf::new();
path.push(out_dir);
path.push("tmp");
create_dir_all(&path).unwrap();
path.push(format!("{}-{:?}", name, hex::encode(rand_bits)));
println!("path: {:?}", path);
path
}
#[test]
fn test_sample_file() {
solana_logger::setup();
let in_path = tmp_file_path("test_sample_file_input.txt");
let num_strings = 4096;
let string = "12foobar";
{
let mut in_file = File::create(&in_path).unwrap();
for _ in 0..num_strings {
in_file.write(string.as_bytes()).unwrap();
}
}
let num_samples = (string.len() * num_strings / size_of::<Hash>()) as u64;
let samples: Vec<_> = (0..num_samples).collect();
let res = sample_file(&in_path, samples.as_slice());
let ref_hash: Hash = Hash::new(&[
173, 251, 182, 165, 10, 54, 33, 150, 133, 226, 106, 150, 99, 192, 179, 1, 230, 144,
151, 126, 18, 191, 54, 67, 249, 140, 230, 160, 56, 30, 170, 52,
]);
let res = res.unwrap();
assert_eq!(res, ref_hash);
// Sample just past the end
assert!(sample_file(&in_path, &[num_samples]).is_err());
remove_file(&in_path).unwrap();
}
#[test]
fn test_sample_file_invalid_offset() {
let in_path = tmp_file_path("test_sample_file_invalid_offset_input.txt");
{
let mut in_file = File::create(&in_path).unwrap();
for _ in 0..4096 {
in_file.write("123456foobar".as_bytes()).unwrap();
}
}
let samples = [0, 200000];
let res = sample_file(&in_path, &samples);
assert!(res.is_err());
remove_file(in_path).unwrap();
}
#[test]
fn test_sample_file_missing_file() {
let in_path = tmp_file_path("test_sample_file_that_doesnt_exist.txt");
let samples = [0, 5];
let res = sample_file(&in_path, &samples);
assert!(res.is_err());
}
}

View File

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

View File

@ -1,147 +0,0 @@
use clap::{crate_description, crate_name, App, Arg};
use console::style;
use solana_archiver_lib::archiver::Archiver;
use solana_clap_utils::{
input_validators::is_keypair,
keypair::{
self, keypair_input, KeypairWithSource, ASK_SEED_PHRASE_ARG,
SKIP_SEED_PHRASE_VALIDATION_ARG,
},
};
use solana_core::{
cluster_info::{Node, VALIDATOR_PORT_RANGE},
contact_info::ContactInfo,
};
use solana_sdk::{commitment_config::CommitmentConfig, signature::KeypairUtil};
use std::{net::SocketAddr, path::PathBuf, process::exit, sync::Arc};
fn main() {
solana_logger::setup();
let matches = App::new(crate_name!())
.about(crate_description!())
.version(solana_clap_utils::version!())
.arg(
Arg::with_name("identity_keypair")
.short("i")
.long("identity-keypair")
.value_name("PATH")
.takes_value(true)
.validator(is_keypair)
.help("File containing an identity (keypair)"),
)
.arg(
Arg::with_name("entrypoint")
.short("n")
.long("entrypoint")
.value_name("HOST:PORT")
.takes_value(true)
.required(true)
.validator(solana_net_utils::is_host_port)
.help("Rendezvous with the cluster at this entry point"),
)
.arg(
Arg::with_name("ledger")
.short("l")
.long("ledger")
.value_name("DIR")
.takes_value(true)
.required(true)
.help("use DIR as persistent ledger location"),
)
.arg(
Arg::with_name("storage_keypair")
.short("s")
.long("storage-keypair")
.value_name("PATH")
.takes_value(true)
.validator(is_keypair)
.help("File containing the storage account keypair"),
)
.arg(
Arg::with_name(ASK_SEED_PHRASE_ARG.name)
.long(ASK_SEED_PHRASE_ARG.long)
.value_name("KEYPAIR NAME")
.multiple(true)
.takes_value(true)
.possible_values(&["identity-keypair", "storage-keypair"])
.help(ASK_SEED_PHRASE_ARG.help),
)
.arg(
Arg::with_name(SKIP_SEED_PHRASE_VALIDATION_ARG.name)
.long(SKIP_SEED_PHRASE_VALIDATION_ARG.long)
.requires(ASK_SEED_PHRASE_ARG.name)
.help(SKIP_SEED_PHRASE_VALIDATION_ARG.help),
)
.get_matches();
let ledger_path = PathBuf::from(matches.value_of("ledger").unwrap());
let identity_keypair = keypair_input(&matches, "identity_keypair")
.unwrap_or_else(|err| {
eprintln!("Identity keypair input failed: {}", err);
exit(1);
})
.keypair;
let KeypairWithSource {
keypair: storage_keypair,
source: storage_keypair_source,
} = keypair_input(&matches, "storage_keypair").unwrap_or_else(|err| {
eprintln!("Storage keypair input failed: {}", err);
exit(1);
});
if storage_keypair_source == keypair::Source::Generated {
clap::Error::with_description(
"The `storage-keypair` argument was not found",
clap::ErrorKind::ArgumentNotFound,
)
.exit();
}
let entrypoint_addr = matches
.value_of("entrypoint")
.map(|entrypoint| {
solana_net_utils::parse_host_port(entrypoint)
.expect("failed to parse entrypoint address")
})
.unwrap();
let gossip_addr = {
let ip = solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap();
let mut addr = SocketAddr::new(ip, 0);
addr.set_ip(solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap());
addr
};
let node = Node::new_archiver_with_external_ip(
&identity_keypair.pubkey(),
&gossip_addr,
VALIDATOR_PORT_RANGE,
);
println!(
"{} version {} (branch={}, commit={})",
style(crate_name!()).bold(),
solana_clap_utils::version!(),
option_env!("CI_BRANCH").unwrap_or("unknown"),
option_env!("CI_COMMIT").unwrap_or("unknown")
);
solana_metrics::set_host_id(identity_keypair.pubkey().to_string());
println!(
"replicating the data with identity_keypair={:?} gossip_addr={:?}",
identity_keypair.pubkey(),
gossip_addr
);
let entrypoint_info = ContactInfo::new_gossip_entry_point(&entrypoint_addr);
let archiver = Archiver::new(
&ledger_path,
node,
entrypoint_info,
Arc::new(identity_keypair),
Arc::new(storage_keypair),
CommitmentConfig::recent(),
)
.unwrap();
archiver.join();
}

View File

@ -1,20 +1,29 @@
[package]
authors = ["Solana Maintainers <maintainers@solana.com>"]
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-banking-bench"
version = "0.23.0"
version = "1.3.24"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
publish = false
[dependencies]
clap = "2.33.1"
crossbeam-channel = "0.4"
log = "0.4.6"
rayon = "1.2.0"
solana-core = { path = "../core", version = "0.23.0" }
solana-ledger = { path = "../ledger", version = "0.23.0" }
solana-logger = { path = "../logger", version = "0.23.0" }
solana-runtime = { path = "../runtime", version = "0.23.0" }
solana-measure = { path = "../measure", version = "0.23.0" }
solana-sdk = { path = "../sdk", version = "0.23.0" }
rand = "0.6.5"
crossbeam-channel = "0.3"
rand = "0.7.0"
rayon = "1.4.0"
solana-core = { path = "../core", version = "1.3.24" }
solana-clap-utils = { path = "../clap-utils", version = "1.3.24" }
solana-streamer = { path = "../streamer", version = "1.3.24" }
solana-perf = { path = "../perf", version = "1.3.24" }
solana-ledger = { path = "../ledger", version = "1.3.24" }
solana-logger = { path = "../logger", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-measure = { path = "../measure", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-version = { path = "../version", version = "1.3.24" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@ -1,30 +1,36 @@
use clap::{crate_description, crate_name, value_t, App, Arg};
use crossbeam_channel::unbounded;
use log::*;
use rand::{thread_rng, Rng};
use rayon::prelude::*;
use solana_core::banking_stage::{create_test_recorder, BankingStage};
use solana_core::cluster_info::ClusterInfo;
use solana_core::cluster_info::Node;
use solana_core::genesis_utils::{create_genesis_config, GenesisConfigInfo};
use solana_core::packet::to_packets_chunked;
use solana_core::poh_recorder::PohRecorder;
use solana_core::poh_recorder::WorkingBankEntry;
use solana_ledger::bank_forks::BankForks;
use solana_ledger::{blockstore::Blockstore, get_tmp_ledger_path};
use solana_core::{
banking_stage::{create_test_recorder, BankingStage},
cluster_info::ClusterInfo,
cluster_info::Node,
poh_recorder::PohRecorder,
poh_recorder::WorkingBankEntry,
};
use solana_ledger::{
blockstore::Blockstore,
genesis_utils::{create_genesis_config, GenesisConfigInfo},
get_tmp_ledger_path,
};
use solana_measure::measure::Measure;
use solana_runtime::bank::Bank;
use solana_sdk::hash::Hash;
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::Keypair;
use solana_sdk::signature::Signature;
use solana_sdk::system_transaction;
use solana_sdk::timing::{duration_as_us, timestamp};
use solana_sdk::transaction::Transaction;
use std::sync::atomic::Ordering;
use std::sync::mpsc::Receiver;
use std::sync::{Arc, Mutex, RwLock};
use std::thread::sleep;
use std::time::{Duration, Instant};
use solana_perf::packet::to_packets_chunked;
use solana_runtime::{bank::Bank, bank_forks::BankForks};
use solana_sdk::{
hash::Hash,
signature::Keypair,
signature::Signature,
system_transaction,
timing::{duration_as_us, timestamp},
transaction::Transaction,
};
use std::{
sync::{atomic::Ordering, mpsc::Receiver, Arc, Mutex},
thread::sleep,
time::{Duration, Instant},
};
fn check_txs(
receiver: &Arc<Receiver<WorkingBankEntry>>,
@ -57,16 +63,23 @@ fn check_txs(
no_bank
}
fn make_accounts_txs(txes: usize, mint_keypair: &Keypair, hash: Hash) -> Vec<Transaction> {
let to_pubkey = Pubkey::new_rand();
let dummy = system_transaction::transfer(mint_keypair, &to_pubkey, 1, hash);
(0..txes)
fn make_accounts_txs(
total_num_transactions: usize,
hash: Hash,
same_payer: bool,
) -> Vec<Transaction> {
let to_pubkey = solana_sdk::pubkey::new_rand();
let payer_key = Keypair::new();
let dummy = system_transaction::transfer(&payer_key, &to_pubkey, 1, hash);
(0..total_num_transactions)
.into_par_iter()
.map(|_| {
let mut new = dummy.clone();
let sig: Vec<u8> = (0..64).map(|_| thread_rng().gen()).collect();
new.message.account_keys[0] = Pubkey::new_rand();
new.message.account_keys[1] = Pubkey::new_rand();
if !same_payer {
new.message.account_keys[0] = solana_sdk::pubkey::new_rand();
}
new.message.account_keys[1] = solana_sdk::pubkey::new_rand();
new.signatures = vec![Signature::new(&sig[0..64])];
new
})
@ -89,13 +102,61 @@ fn bytes_as_usize(bytes: &[u8]) -> usize {
bytes[0] as usize | (bytes[1] as usize) << 8
}
#[allow(clippy::cognitive_complexity)]
fn main() {
solana_logger::setup();
let num_threads = BankingStage::num_threads() as usize;
let matches = App::new(crate_name!())
.about(crate_description!())
.version(solana_version::version!())
.arg(
Arg::with_name("num_chunks")
.long("num-chunks")
.takes_value(true)
.value_name("SIZE")
.help("Number of transaction chunks."),
)
.arg(
Arg::with_name("packets_per_chunk")
.long("packets-per-chunk")
.takes_value(true)
.value_name("SIZE")
.help("Packets per chunk"),
)
.arg(
Arg::with_name("skip_sanity")
.long("skip-sanity")
.takes_value(false)
.help("Skip transaction sanity execution"),
)
.arg(
Arg::with_name("same_payer")
.long("same-payer")
.takes_value(false)
.help("Use the same payer for transfers"),
)
.arg(
Arg::with_name("iterations")
.long("iterations")
.takes_value(true)
.help("Number of iterations"),
)
.arg(
Arg::with_name("num_threads")
.long("num-threads")
.takes_value(true)
.help("Number of iterations"),
)
.get_matches();
let num_threads =
value_t!(matches, "num_threads", usize).unwrap_or(BankingStage::num_threads() as usize);
// a multiple of packet chunk duplicates to avoid races
const CHUNKS: usize = 8 * 2;
const PACKETS_PER_BATCH: usize = 192;
let txes = PACKETS_PER_BATCH * num_threads * CHUNKS;
let num_chunks = value_t!(matches, "num_chunks", usize).unwrap_or(16);
let packets_per_chunk = value_t!(matches, "packets_per_chunk", usize).unwrap_or(192);
let iterations = value_t!(matches, "iterations", usize).unwrap_or(1000);
let total_num_transactions = num_chunks * num_threads * packets_per_chunk;
let mint_total = 1_000_000_000_000;
let GenesisConfigInfo {
genesis_config,
@ -105,38 +166,49 @@ fn main() {
let (verified_sender, verified_receiver) = unbounded();
let (vote_sender, vote_receiver) = unbounded();
let (replay_vote_sender, _replay_vote_receiver) = unbounded();
let bank0 = Bank::new(&genesis_config);
let mut bank_forks = BankForks::new(0, bank0);
let mut bank_forks = BankForks::new(bank0);
let mut bank = bank_forks.working_bank();
info!("threads: {} txs: {}", num_threads, txes);
info!("threads: {} txs: {}", num_threads, total_num_transactions);
let mut transactions = make_accounts_txs(txes, &mint_keypair, genesis_config.hash());
let same_payer = matches.is_present("same_payer");
let mut transactions =
make_accounts_txs(total_num_transactions, genesis_config.hash(), same_payer);
// fund all the accounts
transactions.iter().for_each(|tx| {
let fund = system_transaction::transfer(
let mut fund = system_transaction::transfer(
&mint_keypair,
&tx.message.account_keys[0],
mint_total / txes as u64,
mint_total / total_num_transactions as u64,
genesis_config.hash(),
);
// Ignore any pesky duplicate signature errors in the case we are using single-payer
let sig: Vec<u8> = (0..64).map(|_| thread_rng().gen()).collect();
fund.signatures = vec![Signature::new(&sig[0..64])];
let x = bank.process_transaction(&fund);
x.unwrap();
});
let skip_sanity = matches.is_present("skip_sanity");
if !skip_sanity {
//sanity check, make sure all the transactions can execute sequentially
transactions.iter().for_each(|tx| {
let res = bank.process_transaction(&tx);
assert!(res.is_ok(), "sanity test transactions");
assert!(res.is_ok(), "sanity test transactions error: {:?}", res);
});
bank.clear_signatures();
//sanity check, make sure all the transactions can execute in parallel
let res = bank.process_transactions(&transactions);
for r in res {
assert!(r.is_ok(), "sanity parallel execution");
assert!(r.is_ok(), "sanity parallel execution error: {:?}", r);
}
bank.clear_signatures();
let mut verified: Vec<_> = to_packets_chunked(&transactions.clone(), PACKETS_PER_BATCH);
}
let mut verified: Vec<_> = to_packets_chunked(&transactions, packets_per_chunk);
let ledger_path = get_tmp_ledger_path!();
{
let blockstore = Arc::new(
@ -145,17 +217,18 @@ fn main() {
let (exit, poh_recorder, poh_service, signal_receiver) =
create_test_recorder(&bank, &blockstore, None);
let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info);
let cluster_info = Arc::new(RwLock::new(cluster_info));
let cluster_info = Arc::new(cluster_info);
let banking_stage = BankingStage::new(
&cluster_info,
&poh_recorder,
verified_receiver,
vote_receiver,
None,
replay_vote_sender,
);
poh_recorder.lock().unwrap().set_bank(&bank);
let chunk_len = verified.len() / CHUNKS;
let chunk_len = verified.len() / num_chunks;
let mut start = 0;
// This is so that the signal_receiver does not go out of scope after the closure.
@ -164,17 +237,17 @@ fn main() {
let signal_receiver = Arc::new(signal_receiver);
let mut total_us = 0;
let mut tx_total_us = 0;
let base_tx_count = bank.transaction_count();
let mut txs_processed = 0;
let mut root = 1;
let collector = Pubkey::new_rand();
const ITERS: usize = 1_000;
let collector = solana_sdk::pubkey::new_rand();
let config = Config {
packets_per_batch: PACKETS_PER_BATCH,
packets_per_batch: packets_per_chunk,
chunk_len,
num_threads,
};
let mut total_sent = 0;
for _ in 0..ITERS {
for _ in 0..iterations {
let now = Instant::now();
let mut sent = 0;
@ -215,7 +288,11 @@ fn main() {
sleep(Duration::from_millis(5));
}
}
if check_txs(&signal_receiver, txes / CHUNKS, &poh_recorder) {
if check_txs(
&signal_receiver,
total_num_transactions / num_chunks,
&poh_recorder,
) {
debug!(
"resetting bank {} tx count: {} txs_proc: {}",
bank.slot(),
@ -246,7 +323,7 @@ fn main() {
poh_recorder.lock().unwrap().set_bank(&bank);
assert!(poh_recorder.lock().unwrap().bank().is_some());
if bank.slot() > 32 {
bank_forks.set_root(root, &None);
bank_forks.set_root(root, &None, None);
root += 1;
}
debug!(
@ -267,7 +344,7 @@ fn main() {
debug!(
"time: {} us checked: {} sent: {}",
duration_as_us(&now.elapsed()),
txes / CHUNKS,
total_num_transactions / num_chunks,
sent,
);
total_sent += sent;
@ -278,20 +355,26 @@ fn main() {
let sig: Vec<u8> = (0..64).map(|_| thread_rng().gen()).collect();
tx.signatures[0] = Signature::new(&sig[0..64]);
}
verified = to_packets_chunked(&transactions.clone(), PACKETS_PER_BATCH);
verified = to_packets_chunked(&transactions.clone(), packets_per_chunk);
}
start += chunk_len;
start %= verified.len();
}
let txs_processed = bank_forks.working_bank().transaction_count();
debug!("processed: {} base: {}", txs_processed, base_tx_count);
eprintln!(
"{{'name': 'banking_bench_total', 'median': '{}'}}",
"{{'name': 'banking_bench_total', 'median': '{:.2}'}}",
(1000.0 * 1000.0 * total_sent as f64) / (total_us as f64),
);
eprintln!(
"{{'name': 'banking_bench_tx_total', 'median': '{}'}}",
"{{'name': 'banking_bench_tx_total', 'median': '{:.2}'}}",
(1000.0 * 1000.0 * total_sent as f64) / (tx_total_us as f64),
);
eprintln!(
"{{'name': 'banking_bench_success_tx_total', 'median': '{:.2}'}}",
(1000.0 * 1000.0 * (txs_processed - base_tx_count) as f64) / (total_us as f64),
);
drop(verified_sender);
drop(vote_sender);

31
banks-client/Cargo.toml Normal file
View File

@ -0,0 +1,31 @@
[package]
name = "solana-banks-client"
version = "1.3.24"
description = "Solana banks client"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
async-trait = "0.1.36"
bincode = "1.3.1"
futures = "0.3"
mio = "0.7.6"
solana-banks-interface = { path = "../banks-interface", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
tarpc = { version = "0.21.0", features = ["full"] }
tokio = "0.2"
tokio-serde = { version = "0.6", features = ["bincode"] }
[dev-dependencies]
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-banks-server = { path = "../banks-server", version = "1.3.24" }
[lib]
crate-type = ["lib"]
name = "solana_banks_client"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

296
banks-client/src/lib.rs Normal file
View File

@ -0,0 +1,296 @@
//! A client for the ledger state, from the perspective of an arbitrary validator.
//!
//! Use start_tcp_client() to create a client and then import BanksClientExt to
//! access its methods. Additional "*_with_context" methods are also available,
//! but they are undocumented, may change over time, and are generally more
//! cumbersome to use.
use async_trait::async_trait;
use futures::future::join_all;
pub use solana_banks_interface::{BanksClient, TransactionStatus};
use solana_banks_interface::{BanksRequest, BanksResponse};
use solana_sdk::{
account::Account, clock::Slot, commitment_config::CommitmentLevel,
fee_calculator::FeeCalculator, hash::Hash, pubkey::Pubkey, signature::Signature,
transaction::Transaction, transport,
};
use std::io::{self, Error, ErrorKind};
use tarpc::{
client, context,
rpc::{transport::channel::UnboundedChannel, ClientMessage, Response},
serde_transport::tcp,
};
use tokio::{net::ToSocketAddrs, time::Duration};
use tokio_serde::formats::Bincode;
#[async_trait]
pub trait BanksClientExt {
/// Send a transaction and return immediately. The server will resend the
/// transaction until either it is accepted by the cluster or the transaction's
/// blockhash expires.
async fn send_transaction(&mut self, transaction: Transaction) -> io::Result<()>;
/// Return a recent, rooted blockhash from the server. The cluster will only accept
/// transactions with a blockhash that has not yet expired. Use the `get_fees`
/// method to get both a blockhash and the blockhash's last valid slot.
async fn get_recent_blockhash(&mut self) -> io::Result<Hash>;
/// Return the fee parameters associated with a recent, rooted blockhash. The cluster
/// will use the transaction's blockhash to look up these same fee parameters and
/// use them to calculate the transaction fee.
async fn get_fees(&mut self) -> io::Result<(FeeCalculator, Hash, Slot)>;
/// Send a transaction and return after the transaction has been rejected or
/// reached the given level of commitment.
async fn process_transaction_with_commitment(
&mut self,
transaction: Transaction,
commitment: CommitmentLevel,
) -> transport::Result<()>;
/// Send a transaction and return after the transaction has been finalized or rejected.
async fn process_transaction(&mut self, transaction: Transaction) -> transport::Result<()>;
/// Return the status of a transaction with a signature matching the transaction's first
/// signature. Return None if the transaction is not found, which may be because the
/// blockhash was expired or the fee-paying account had insufficient funds to pay the
/// transaction fee. Note that servers rarely store the full transaction history. This
/// method may return None if the transaction status has been discarded.
async fn get_transaction_status(
&mut self,
signature: Signature,
) -> io::Result<Option<TransactionStatus>>;
/// Same as get_transaction_status, but for multiple transactions.
async fn get_transaction_statuses(
&mut self,
signatures: Vec<Signature>,
) -> io::Result<Vec<Option<TransactionStatus>>>;
/// Return the most recent rooted slot height. All transactions at or below this height
/// are said to be finalized. The cluster will not fork to a higher slot height.
async fn get_root_slot(&mut self) -> io::Result<Slot>;
/// Return the account at the given address at the slot corresponding to the given
/// commitment level. If the account is not found, None is returned.
async fn get_account_with_commitment(
&mut self,
address: Pubkey,
commitment: CommitmentLevel,
) -> io::Result<Option<Account>>;
/// Return the account at the given address at the time of the most recent root slot.
/// If the account is not found, None is returned.
async fn get_account(&mut self, address: Pubkey) -> io::Result<Option<Account>>;
/// Return the balance in lamports of an account at the given address at the slot
/// corresponding to the given commitment level.
async fn get_balance_with_commitment(
&mut self,
address: Pubkey,
commitment: CommitmentLevel,
) -> io::Result<u64>;
/// Return the balance in lamports of an account at the given address at the time
/// of the most recent root slot.
async fn get_balance(&mut self, address: Pubkey) -> io::Result<u64>;
}
#[async_trait]
impl BanksClientExt for BanksClient {
async fn send_transaction(&mut self, transaction: Transaction) -> io::Result<()> {
self.send_transaction_with_context(context::current(), transaction)
.await
}
async fn get_fees(&mut self) -> io::Result<(FeeCalculator, Hash, Slot)> {
self.get_fees_with_commitment_and_context(context::current(), CommitmentLevel::Root)
.await
}
async fn get_recent_blockhash(&mut self) -> io::Result<Hash> {
Ok(self.get_fees().await?.1)
}
async fn process_transaction_with_commitment(
&mut self,
transaction: Transaction,
commitment: CommitmentLevel,
) -> transport::Result<()> {
let mut ctx = context::current();
ctx.deadline += Duration::from_secs(50);
let result = self
.process_transaction_with_commitment_and_context(ctx, transaction, commitment)
.await?;
match result {
None => Err(Error::new(ErrorKind::TimedOut, "invalid blockhash or fee-payer").into()),
Some(transaction_result) => Ok(transaction_result?),
}
}
async fn process_transaction(&mut self, transaction: Transaction) -> transport::Result<()> {
self.process_transaction_with_commitment(transaction, CommitmentLevel::default())
.await
}
async fn get_root_slot(&mut self) -> io::Result<Slot> {
self.get_slot_with_context(context::current(), CommitmentLevel::Root)
.await
}
async fn get_account_with_commitment(
&mut self,
address: Pubkey,
commitment: CommitmentLevel,
) -> io::Result<Option<Account>> {
self.get_account_with_commitment_and_context(context::current(), address, commitment)
.await
}
async fn get_account(&mut self, address: Pubkey) -> io::Result<Option<Account>> {
self.get_account_with_commitment(address, CommitmentLevel::default())
.await
}
async fn get_balance_with_commitment(
&mut self,
address: Pubkey,
commitment: CommitmentLevel,
) -> io::Result<u64> {
let account = self
.get_account_with_commitment_and_context(context::current(), address, commitment)
.await?;
Ok(account.map(|x| x.lamports).unwrap_or(0))
}
async fn get_balance(&mut self, address: Pubkey) -> io::Result<u64> {
self.get_balance_with_commitment(address, CommitmentLevel::default())
.await
}
async fn get_transaction_status(
&mut self,
signature: Signature,
) -> io::Result<Option<TransactionStatus>> {
self.get_transaction_status_with_context(context::current(), signature)
.await
}
async fn get_transaction_statuses(
&mut self,
signatures: Vec<Signature>,
) -> io::Result<Vec<Option<TransactionStatus>>> {
// tarpc futures oddly hold a mutable reference back to the client so clone the client upfront
let mut clients_and_signatures: Vec<_> = signatures
.into_iter()
.map(|signature| (self.clone(), signature))
.collect();
let futs = clients_and_signatures
.iter_mut()
.map(|(client, signature)| client.get_transaction_status(*signature));
let statuses = join_all(futs).await;
// Convert Vec<Result<_, _>> to Result<Vec<_>>
statuses.into_iter().collect()
}
}
pub async fn start_client(
transport: UnboundedChannel<Response<BanksResponse>, ClientMessage<BanksRequest>>,
) -> io::Result<BanksClient> {
BanksClient::new(client::Config::default(), transport).spawn()
}
pub async fn start_tcp_client<T: ToSocketAddrs>(addr: T) -> io::Result<BanksClient> {
let transport = tcp::connect(addr, Bincode::default()).await?;
BanksClient::new(client::Config::default(), transport).spawn()
}
#[cfg(test)]
mod tests {
use super::*;
use solana_banks_server::banks_server::start_local_server;
use solana_runtime::{bank::Bank, bank_forks::BankForks, genesis_utils::create_genesis_config};
use solana_sdk::{message::Message, signature::Signer, system_instruction};
use std::sync::{Arc, RwLock};
use tarpc::transport;
use tokio::{runtime::Runtime, time::delay_for};
#[test]
fn test_banks_client_new() {
let (client_transport, _server_transport) = transport::channel::unbounded();
BanksClient::new(client::Config::default(), client_transport);
}
#[test]
fn test_banks_server_transfer_via_server() -> io::Result<()> {
// This test shows the preferred way to interact with BanksServer.
// It creates a runtime explicitly (no globals via tokio macros) and calls
// `runtime.block_on()` just once, to run all the async code.
let genesis = create_genesis_config(10);
let bank_forks = Arc::new(RwLock::new(BankForks::new(Bank::new(
&genesis.genesis_config,
))));
let bob_pubkey = solana_sdk::pubkey::new_rand();
let mint_pubkey = genesis.mint_keypair.pubkey();
let instruction = system_instruction::transfer(&mint_pubkey, &bob_pubkey, 1);
let message = Message::new(&[instruction], Some(&mint_pubkey));
Runtime::new()?.block_on(async {
let client_transport = start_local_server(&bank_forks).await;
let mut banks_client =
BanksClient::new(client::Config::default(), client_transport).spawn()?;
let recent_blockhash = banks_client.get_recent_blockhash().await?;
let transaction = Transaction::new(&[&genesis.mint_keypair], message, recent_blockhash);
banks_client.process_transaction(transaction).await.unwrap();
assert_eq!(banks_client.get_balance(bob_pubkey).await?, 1);
Ok(())
})
}
#[test]
fn test_banks_server_transfer_via_client() -> io::Result<()> {
// The caller may not want to hold the connection open until the transaction
// is processed (or blockhash expires). In this test, we verify the
// server-side functionality is available to the client.
let genesis = create_genesis_config(10);
let bank_forks = Arc::new(RwLock::new(BankForks::new(Bank::new(
&genesis.genesis_config,
))));
let mint_pubkey = &genesis.mint_keypair.pubkey();
let bob_pubkey = solana_sdk::pubkey::new_rand();
let instruction = system_instruction::transfer(&mint_pubkey, &bob_pubkey, 1);
let message = Message::new(&[instruction], Some(&mint_pubkey));
Runtime::new()?.block_on(async {
let client_transport = start_local_server(&bank_forks).await;
let mut banks_client =
BanksClient::new(client::Config::default(), client_transport).spawn()?;
let (_, recent_blockhash, last_valid_slot) = banks_client.get_fees().await?;
let transaction = Transaction::new(&[&genesis.mint_keypair], message, recent_blockhash);
let signature = transaction.signatures[0];
banks_client.send_transaction(transaction).await?;
let mut status = banks_client.get_transaction_status(signature).await?;
while status.is_none() {
let root_slot = banks_client.get_root_slot().await?;
if root_slot > last_valid_slot {
break;
}
delay_for(Duration::from_millis(100)).await;
status = banks_client.get_transaction_status(signature).await?;
}
assert!(status.unwrap().err.is_none());
assert_eq!(banks_client.get_balance(bob_pubkey).await?, 1);
Ok(())
})
}
}

View File

@ -0,0 +1,22 @@
[package]
name = "solana-banks-interface"
version = "1.3.24"
description = "Solana banks RPC interface"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
mio = "0.7.6"
serde = { version = "1.0.112", features = ["derive"] }
solana-sdk = { path = "../sdk", version = "1.3.24" }
tarpc = { version = "0.21.0", features = ["full"] }
[lib]
crate-type = ["lib"]
name = "solana_banks_interface"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@ -0,0 +1,49 @@
use serde::{Deserialize, Serialize};
use solana_sdk::{
account::Account,
clock::Slot,
commitment_config::CommitmentLevel,
fee_calculator::FeeCalculator,
hash::Hash,
pubkey::Pubkey,
signature::Signature,
transaction::{self, Transaction, TransactionError},
};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct TransactionStatus {
pub slot: Slot,
pub confirmations: Option<usize>, // None = rooted
pub err: Option<TransactionError>,
}
#[tarpc::service]
pub trait Banks {
async fn send_transaction_with_context(transaction: Transaction);
async fn get_fees_with_commitment_and_context(
commitment: CommitmentLevel,
) -> (FeeCalculator, Hash, Slot);
async fn get_transaction_status_with_context(signature: Signature)
-> Option<TransactionStatus>;
async fn get_slot_with_context(commitment: CommitmentLevel) -> Slot;
async fn process_transaction_with_commitment_and_context(
transaction: Transaction,
commitment: CommitmentLevel,
) -> Option<transaction::Result<()>>;
async fn get_account_with_commitment_and_context(
address: Pubkey,
commitment: CommitmentLevel,
) -> Option<Account>;
}
#[cfg(test)]
mod tests {
use super::*;
use tarpc::{client, transport};
#[test]
fn test_banks_client_new() {
let (client_transport, _server_transport) = transport::channel::unbounded();
BanksClient::new(client::Config::default(), client_transport);
}
}

29
banks-server/Cargo.toml Normal file
View File

@ -0,0 +1,29 @@
[package]
name = "solana-banks-server"
version = "1.3.24"
description = "Solana banks server"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
edition = "2018"
[dependencies]
bincode = "1.3.1"
futures = "0.3"
log = "0.4.8"
mio = "0.7.6"
solana-banks-interface = { path = "../banks-interface", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-metrics = { path = "../metrics", version = "1.3.24" }
tarpc = { version = "0.21.0", features = ["full"] }
tokio = "0.2"
tokio-serde = { version = "0.6", features = ["bincode"] }
[lib]
crate-type = ["lib"]
name = "solana_banks_server"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@ -0,0 +1,270 @@
use crate::send_transaction_service::{SendTransactionService, TransactionInfo};
use bincode::{deserialize, serialize};
use futures::{
future,
prelude::stream::{self, StreamExt},
};
use solana_banks_interface::{Banks, BanksRequest, BanksResponse, TransactionStatus};
use solana_runtime::{
bank::Bank,
bank_forks::BankForks,
commitment::{BlockCommitmentCache, CommitmentSlots},
};
use solana_sdk::{
account::Account,
clock::Slot,
commitment_config::CommitmentLevel,
fee_calculator::FeeCalculator,
hash::Hash,
pubkey::Pubkey,
signature::Signature,
transaction::{self, Transaction},
};
use std::{
collections::HashMap,
io,
net::{Ipv4Addr, SocketAddr},
sync::{
mpsc::{channel, Receiver, Sender},
Arc, RwLock,
},
thread::Builder,
time::Duration,
};
use tarpc::{
context::Context,
rpc::{transport::channel::UnboundedChannel, ClientMessage, Response},
serde_transport::tcp,
server::{self, Channel, Handler},
transport,
};
use tokio::time::delay_for;
use tokio_serde::formats::Bincode;
#[derive(Clone)]
struct BanksServer {
bank_forks: Arc<RwLock<BankForks>>,
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
transaction_sender: Sender<TransactionInfo>,
}
impl BanksServer {
/// Return a BanksServer that forwards transactions to the
/// given sender. If unit-testing, those transactions can go to
/// a bank in the given BankForks. Otherwise, the receiver should
/// forward them to a validator in the leader schedule.
fn new(
bank_forks: Arc<RwLock<BankForks>>,
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
transaction_sender: Sender<TransactionInfo>,
) -> Self {
Self {
bank_forks,
block_commitment_cache,
transaction_sender,
}
}
fn run(bank: &Bank, transaction_receiver: Receiver<TransactionInfo>) {
while let Ok(info) = transaction_receiver.recv() {
let mut transaction_infos = vec![info];
while let Ok(info) = transaction_receiver.try_recv() {
transaction_infos.push(info);
}
let transactions: Vec<_> = transaction_infos
.into_iter()
.map(|info| deserialize(&info.wire_transaction).unwrap())
.collect();
let _ = bank.process_transactions(&transactions);
}
}
/// Useful for unit-testing
fn new_loopback(bank_forks: Arc<RwLock<BankForks>>) -> Self {
let (transaction_sender, transaction_receiver) = channel();
let bank = bank_forks.read().unwrap().working_bank();
let slot = bank.slot();
let block_commitment_cache = Arc::new(RwLock::new(BlockCommitmentCache::new(
HashMap::default(),
0,
CommitmentSlots {
slot,
root: 0,
highest_confirmed_slot: 0,
highest_confirmed_root: 0,
},
)));
Builder::new()
.name("solana-bank-forks-client".to_string())
.spawn(move || Self::run(&bank, transaction_receiver))
.unwrap();
Self::new(bank_forks, block_commitment_cache, transaction_sender)
}
fn slot(&self, commitment: CommitmentLevel) -> Slot {
self.block_commitment_cache
.read()
.unwrap()
.slot_with_commitment(commitment)
}
fn bank(&self, commitment: CommitmentLevel) -> Arc<Bank> {
self.bank_forks.read().unwrap()[self.slot(commitment)].clone()
}
async fn poll_signature_status(
self,
signature: Signature,
last_valid_slot: Slot,
commitment: CommitmentLevel,
) -> Option<transaction::Result<()>> {
let mut status = self.bank(commitment).get_signature_status(&signature);
while status.is_none() {
delay_for(Duration::from_millis(200)).await;
let bank = self.bank(commitment);
if bank.slot() > last_valid_slot {
break;
}
status = bank.get_signature_status(&signature);
}
status
}
}
#[tarpc::server]
impl Banks for BanksServer {
async fn send_transaction_with_context(self, _: Context, transaction: Transaction) {
let blockhash = &transaction.message.recent_blockhash;
let last_valid_slot = self
.bank_forks
.read()
.unwrap()
.root_bank()
.get_blockhash_last_valid_slot(&blockhash)
.unwrap();
let signature = transaction.signatures.get(0).cloned().unwrap_or_default();
let info =
TransactionInfo::new(signature, serialize(&transaction).unwrap(), last_valid_slot);
self.transaction_sender.send(info).unwrap();
}
async fn get_fees_with_commitment_and_context(
self,
_: Context,
commitment: CommitmentLevel,
) -> (FeeCalculator, Hash, Slot) {
let bank = self.bank(commitment);
let (blockhash, fee_calculator) = bank.last_blockhash_with_fee_calculator();
let last_valid_slot = bank.get_blockhash_last_valid_slot(&blockhash).unwrap();
(fee_calculator, blockhash, last_valid_slot)
}
async fn get_transaction_status_with_context(
self,
_: Context,
signature: Signature,
) -> Option<TransactionStatus> {
let bank = self.bank(CommitmentLevel::Recent);
let (slot, status) = bank.get_signature_status_slot(&signature)?;
let r_block_commitment_cache = self.block_commitment_cache.read().unwrap();
let confirmations = if r_block_commitment_cache.root() >= slot {
None
} else {
r_block_commitment_cache
.get_confirmation_count(slot)
.or(Some(0))
};
Some(TransactionStatus {
slot,
confirmations,
err: status.err(),
})
}
async fn get_slot_with_context(self, _: Context, commitment: CommitmentLevel) -> Slot {
self.slot(commitment)
}
async fn process_transaction_with_commitment_and_context(
self,
_: Context,
transaction: Transaction,
commitment: CommitmentLevel,
) -> Option<transaction::Result<()>> {
let blockhash = &transaction.message.recent_blockhash;
let last_valid_slot = self
.bank_forks
.read()
.unwrap()
.root_bank()
.get_blockhash_last_valid_slot(&blockhash)
.unwrap();
let signature = transaction.signatures.get(0).cloned().unwrap_or_default();
let info =
TransactionInfo::new(signature, serialize(&transaction).unwrap(), last_valid_slot);
self.transaction_sender.send(info).unwrap();
self.poll_signature_status(signature, last_valid_slot, commitment)
.await
}
async fn get_account_with_commitment_and_context(
self,
_: Context,
address: Pubkey,
commitment: CommitmentLevel,
) -> Option<Account> {
let bank = self.bank(commitment);
bank.get_account(&address)
}
}
pub async fn start_local_server(
bank_forks: &Arc<RwLock<BankForks>>,
) -> UnboundedChannel<Response<BanksResponse>, ClientMessage<BanksRequest>> {
let banks_server = BanksServer::new_loopback(bank_forks.clone());
let (client_transport, server_transport) = transport::channel::unbounded();
let server = server::new(server::Config::default())
.incoming(stream::once(future::ready(server_transport)))
.respond_with(banks_server.serve());
tokio::spawn(server);
client_transport
}
pub async fn start_tcp_server(
listen_addr: SocketAddr,
tpu_addr: SocketAddr,
bank_forks: Arc<RwLock<BankForks>>,
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
) -> io::Result<()> {
// Note: These settings are copied straight from the tarpc example.
let server = tcp::listen(listen_addr, Bincode::default)
.await?
// Ignore accept errors.
.filter_map(|r| future::ready(r.ok()))
.map(server::BaseChannel::with_defaults)
// Limit channels to 1 per IP.
.max_channels_per_key(1, |t| {
t.as_ref()
.peer_addr()
.map(|x| x.ip())
.unwrap_or_else(|_| Ipv4Addr::new(0, 0, 0, 0).into())
})
// serve is generated by the service attribute. It takes as input any type implementing
// the generated Banks trait.
.map(move |chan| {
let (sender, receiver) = channel();
SendTransactionService::new(tpu_addr, &bank_forks, receiver);
let server =
BanksServer::new(bank_forks.clone(), block_commitment_cache.clone(), sender);
chan.respond_with(server.serve()).execute()
})
// Max 10 channels.
.buffer_unordered(10)
.for_each(|_| async {});
server.await;
Ok(())
}

6
banks-server/src/lib.rs Normal file
View File

@ -0,0 +1,6 @@
pub mod banks_server;
pub mod rpc_banks_service;
pub mod send_transaction_service;
#[macro_use]
extern crate solana_metrics;

View File

@ -0,0 +1,116 @@
//! The `rpc_banks_service` module implements the Solana Banks RPC API.
use crate::banks_server::start_tcp_server;
use futures::{future::FutureExt, pin_mut, prelude::stream::StreamExt, select};
use solana_runtime::{bank_forks::BankForks, commitment::BlockCommitmentCache};
use std::{
net::SocketAddr,
sync::{
atomic::{AtomicBool, Ordering},
Arc, RwLock,
},
thread::{self, Builder, JoinHandle},
};
use tokio::{
runtime::Runtime,
time::{self, Duration},
};
pub struct RpcBanksService {
thread_hdl: JoinHandle<()>,
}
/// Run the TCP service until `exit` is set to true
async fn start_abortable_tcp_server(
listen_addr: SocketAddr,
tpu_addr: SocketAddr,
bank_forks: Arc<RwLock<BankForks>>,
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
exit: Arc<AtomicBool>,
) {
let server = start_tcp_server(
listen_addr,
tpu_addr,
bank_forks.clone(),
block_commitment_cache.clone(),
)
.fuse();
let interval = time::interval(Duration::from_millis(100)).fuse();
pin_mut!(server, interval);
loop {
select! {
_ = server => {},
_ = interval.select_next_some() => {
if exit.load(Ordering::Relaxed) {
break;
}
}
}
}
}
impl RpcBanksService {
fn run(
listen_addr: SocketAddr,
tpu_addr: SocketAddr,
bank_forks: Arc<RwLock<BankForks>>,
block_commitment_cache: Arc<RwLock<BlockCommitmentCache>>,
exit: Arc<AtomicBool>,
) {
let server = start_abortable_tcp_server(
listen_addr,
tpu_addr,
bank_forks,
block_commitment_cache,
exit,
);
Runtime::new().unwrap().block_on(server);
}
pub fn new(
listen_addr: SocketAddr,
tpu_addr: SocketAddr,
bank_forks: &Arc<RwLock<BankForks>>,
block_commitment_cache: &Arc<RwLock<BlockCommitmentCache>>,
exit: &Arc<AtomicBool>,
) -> Self {
let bank_forks = bank_forks.clone();
let block_commitment_cache = block_commitment_cache.clone();
let exit = exit.clone();
let thread_hdl = Builder::new()
.name("solana-rpc-banks".to_string())
.spawn(move || {
Self::run(
listen_addr,
tpu_addr,
bank_forks,
block_commitment_cache,
exit,
)
})
.unwrap();
Self { thread_hdl }
}
pub fn join(self) -> thread::Result<()> {
self.thread_hdl.join()
}
}
#[cfg(test)]
mod tests {
use super::*;
use solana_runtime::bank::Bank;
#[test]
fn test_rpc_banks_server_exit() {
let bank_forks = Arc::new(RwLock::new(BankForks::new(Bank::default())));
let block_commitment_cache = Arc::new(RwLock::new(BlockCommitmentCache::default()));
let exit = Arc::new(AtomicBool::new(false));
let addr = "127.0.0.1:0".parse().unwrap();
let service = RpcBanksService::new(addr, addr, &bank_forks, &block_commitment_cache, &exit);
exit.store(true, Ordering::Relaxed);
service.join().unwrap();
}
}

View File

@ -0,0 +1,343 @@
// TODO: Merge this implementation with the one at `core/src/send_transaction_service.rs`
use log::*;
use solana_metrics::{datapoint_warn, inc_new_counter_info};
use solana_runtime::{bank::Bank, bank_forks::BankForks};
use solana_sdk::{clock::Slot, signature::Signature};
use std::{
collections::HashMap,
net::{SocketAddr, UdpSocket},
sync::{
mpsc::{Receiver, RecvTimeoutError},
Arc, RwLock,
},
thread::{self, Builder, JoinHandle},
time::{Duration, Instant},
};
/// Maximum size of the transaction queue
const MAX_TRANSACTION_QUEUE_SIZE: usize = 10_000; // This seems like a lot but maybe it needs to be bigger one day
pub struct SendTransactionService {
thread: JoinHandle<()>,
}
pub struct TransactionInfo {
pub signature: Signature,
pub wire_transaction: Vec<u8>,
pub last_valid_slot: Slot,
}
impl TransactionInfo {
pub fn new(signature: Signature, wire_transaction: Vec<u8>, last_valid_slot: Slot) -> Self {
Self {
signature,
wire_transaction,
last_valid_slot,
}
}
}
#[derive(Default, Debug, PartialEq)]
struct ProcessTransactionsResult {
rooted: u64,
expired: u64,
retried: u64,
failed: u64,
retained: u64,
}
impl SendTransactionService {
pub fn new(
tpu_address: SocketAddr,
bank_forks: &Arc<RwLock<BankForks>>,
receiver: Receiver<TransactionInfo>,
) -> Self {
let thread = Self::retry_thread(receiver, bank_forks.clone(), tpu_address);
Self { thread }
}
fn retry_thread(
receiver: Receiver<TransactionInfo>,
bank_forks: Arc<RwLock<BankForks>>,
tpu_address: SocketAddr,
) -> JoinHandle<()> {
let mut last_status_check = Instant::now();
let mut transactions = HashMap::new();
let send_socket = UdpSocket::bind("0.0.0.0:0").unwrap();
Builder::new()
.name("send-tx-svc".to_string())
.spawn(move || loop {
match receiver.recv_timeout(Duration::from_secs(1)) {
Err(RecvTimeoutError::Disconnected) => break,
Err(RecvTimeoutError::Timeout) => {}
Ok(transaction_info) => {
Self::send_transaction(
&send_socket,
&tpu_address,
&transaction_info.wire_transaction,
);
if transactions.len() < MAX_TRANSACTION_QUEUE_SIZE {
transactions.insert(transaction_info.signature, transaction_info);
} else {
datapoint_warn!("send_transaction_service-queue-overflow");
}
}
}
if Instant::now().duration_since(last_status_check).as_secs() >= 5 {
if !transactions.is_empty() {
datapoint_info!(
"send_transaction_service-queue-size",
("len", transactions.len(), i64)
);
let bank_forks = bank_forks.read().unwrap();
let root_bank = bank_forks.root_bank();
let working_bank = bank_forks.working_bank();
let _result = Self::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
}
last_status_check = Instant::now();
}
})
.unwrap()
}
fn process_transactions(
working_bank: &Arc<Bank>,
root_bank: &Arc<Bank>,
send_socket: &UdpSocket,
tpu_address: &SocketAddr,
transactions: &mut HashMap<Signature, TransactionInfo>,
) -> ProcessTransactionsResult {
let mut result = ProcessTransactionsResult::default();
transactions.retain(|signature, transaction_info| {
if root_bank.has_signature(signature) {
info!("Transaction is rooted: {}", signature);
result.rooted += 1;
inc_new_counter_info!("send_transaction_service-rooted", 1);
false
} else if transaction_info.last_valid_slot < root_bank.slot() {
info!("Dropping expired transaction: {}", signature);
result.expired += 1;
inc_new_counter_info!("send_transaction_service-expired", 1);
false
} else {
match working_bank.get_signature_status_slot(signature) {
None => {
// Transaction is unknown to the working bank, it might have been
// dropped or landed in another fork. Re-send it
info!("Retrying transaction: {}", signature);
result.retried += 1;
inc_new_counter_info!("send_transaction_service-retry", 1);
Self::send_transaction(
&send_socket,
&tpu_address,
&transaction_info.wire_transaction,
);
true
}
Some((_slot, status)) => {
if status.is_err() {
info!("Dropping failed transaction: {}", signature);
result.failed += 1;
inc_new_counter_info!("send_transaction_service-failed", 1);
false
} else {
result.retained += 1;
true
}
}
}
}
});
result
}
fn send_transaction(
send_socket: &UdpSocket,
tpu_address: &SocketAddr,
wire_transaction: &[u8],
) {
if let Err(err) = send_socket.send_to(wire_transaction, tpu_address) {
warn!("Failed to send transaction to {}: {:?}", tpu_address, err);
}
}
pub fn join(self) -> thread::Result<()> {
self.thread.join()
}
}
#[cfg(test)]
mod test {
use super::*;
use solana_sdk::{
genesis_config::create_genesis_config, pubkey::Pubkey, signature::Signer,
system_transaction,
};
use std::sync::mpsc::channel;
#[test]
fn service_exit() {
let tpu_address = "127.0.0.1:0".parse().unwrap();
let bank = Bank::default();
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
let (sender, receiver) = channel();
let send_tranaction_service =
SendTransactionService::new(tpu_address, &bank_forks, receiver);
drop(sender);
send_tranaction_service.join().unwrap();
}
#[test]
fn process_transactions() {
let (genesis_config, mint_keypair) = create_genesis_config(4);
let bank = Bank::new(&genesis_config);
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
let send_socket = UdpSocket::bind("0.0.0.0:0").unwrap();
let tpu_address = "127.0.0.1:0".parse().unwrap();
let root_bank = Arc::new(Bank::new_from_parent(
&bank_forks.read().unwrap().working_bank(),
&Pubkey::default(),
1,
));
let rooted_signature = root_bank
.transfer(1, &mint_keypair, &mint_keypair.pubkey())
.unwrap();
let working_bank = Arc::new(Bank::new_from_parent(&root_bank, &Pubkey::default(), 2));
let non_rooted_signature = working_bank
.transfer(2, &mint_keypair, &mint_keypair.pubkey())
.unwrap();
let failed_signature = {
let blockhash = working_bank.last_blockhash();
let transaction =
system_transaction::transfer(&mint_keypair, &Pubkey::default(), 1, blockhash);
let signature = transaction.signatures[0];
working_bank.process_transaction(&transaction).unwrap_err();
signature
};
let mut transactions = HashMap::new();
info!("Expired transactions are dropped..");
transactions.insert(
Signature::default(),
TransactionInfo::new(Signature::default(), vec![], root_bank.slot() - 1),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
assert!(transactions.is_empty());
assert_eq!(
result,
ProcessTransactionsResult {
expired: 1,
..ProcessTransactionsResult::default()
}
);
info!("Rooted transactions are dropped...");
transactions.insert(
rooted_signature,
TransactionInfo::new(rooted_signature, vec![], working_bank.slot()),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
assert!(transactions.is_empty());
assert_eq!(
result,
ProcessTransactionsResult {
rooted: 1,
..ProcessTransactionsResult::default()
}
);
info!("Failed transactions are dropped...");
transactions.insert(
failed_signature,
TransactionInfo::new(failed_signature, vec![], working_bank.slot()),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
assert!(transactions.is_empty());
assert_eq!(
result,
ProcessTransactionsResult {
failed: 1,
..ProcessTransactionsResult::default()
}
);
info!("Non-rooted transactions are kept...");
transactions.insert(
non_rooted_signature,
TransactionInfo::new(non_rooted_signature, vec![], working_bank.slot()),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
assert_eq!(transactions.len(), 1);
assert_eq!(
result,
ProcessTransactionsResult {
retained: 1,
..ProcessTransactionsResult::default()
}
);
transactions.clear();
info!("Unknown transactions are retried...");
transactions.insert(
Signature::default(),
TransactionInfo::new(Signature::default(), vec![], working_bank.slot()),
);
let result = SendTransactionService::process_transactions(
&working_bank,
&root_bank,
&send_socket,
&tpu_address,
&mut transactions,
);
assert_eq!(transactions.len(), 1);
assert_eq!(
result,
ProcessTransactionsResult {
retried: 1,
..ProcessTransactionsResult::default()
}
);
}
}

View File

@ -1,41 +1,38 @@
[package]
authors = ["Solana Maintainers <maintainers@solana.com>"]
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-bench-exchange"
version = "0.23.0"
version = "1.3.24"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
publish = false
[dependencies]
bincode = "1.2.1"
bs58 = "0.3.0"
clap = "2.32.0"
env_logger = "0.7.1"
itertools = "0.8.2"
clap = "2.33.1"
itertools = "0.9.0"
log = "0.4.8"
num-derive = "0.3"
num-traits = "0.2"
rand = "0.6.5"
rayon = "1.2.0"
serde = "1.0.104"
serde_derive = "1.0.103"
serde_json = "1.0.44"
serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.0" }
solana-core = { path = "../core", version = "0.23.0" }
solana-genesis = { path = "../genesis", version = "0.23.0" }
solana-client = { path = "../client", version = "0.23.0" }
solana-faucet = { path = "../faucet", version = "0.23.0" }
solana-exchange-program = { path = "../programs/exchange", version = "0.23.0" }
solana-logger = { path = "../logger", version = "0.23.0" }
solana-metrics = { path = "../metrics", version = "0.23.0" }
solana-net-utils = { path = "../net-utils", version = "0.23.0" }
solana-runtime = { path = "../runtime", version = "0.23.0" }
solana-sdk = { path = "../sdk", version = "0.23.0" }
untrusted = "0.7.0"
ws = "0.9.1"
rand = "0.7.0"
rayon = "1.4.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "1.3.24" }
solana-core = { path = "../core", version = "1.3.24" }
solana-genesis = { path = "../genesis", version = "1.3.24" }
solana-client = { path = "../client", version = "1.3.24" }
solana-faucet = { path = "../faucet", version = "1.3.24" }
solana-exchange-program = { path = "../programs/exchange", version = "1.3.24" }
solana-logger = { path = "../logger", version = "1.3.24" }
solana-metrics = { path = "../metrics", version = "1.3.24" }
solana-net-utils = { path = "../net-utils", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-version = { path = "../version", version = "1.3.24" }
[dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "0.23.0" }
solana-local-cluster = { path = "../local-cluster", version = "1.3.24" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@ -14,8 +14,9 @@ use solana_metrics::datapoint_info;
use solana_sdk::{
client::{Client, SyncClient},
commitment_config::CommitmentConfig,
message::Message,
pubkey::Pubkey,
signature::{Keypair, KeypairUtil},
signature::{Keypair, Signer},
timing::{duration_as_ms, duration_as_s},
transaction::Transaction,
{system_instruction, system_program},
@ -178,19 +179,13 @@ where
info!("Generating {:?} account keys", total_keys);
let mut account_keypairs = generate_keypairs(total_keys);
let src_keypairs: Vec<_> = account_keypairs
.drain(0..accounts_in_groups)
.map(|keypair| keypair)
.collect();
let src_keypairs: Vec<_> = account_keypairs.drain(0..accounts_in_groups).collect();
let src_pubkeys: Vec<Pubkey> = src_keypairs
.iter()
.map(|keypair| keypair.pubkey())
.collect();
let profit_keypairs: Vec<_> = account_keypairs
.drain(0..accounts_in_groups)
.map(|keypair| keypair)
.collect();
let profit_keypairs: Vec<_> = account_keypairs.drain(0..accounts_in_groups).collect();
let profit_pubkeys: Vec<Pubkey> = profit_keypairs
.iter()
.map(|keypair| keypair.pubkey())
@ -449,7 +444,7 @@ fn swapper<T>(
}
account_group = (account_group + 1) % account_groups as usize;
let (blockhash, _fee_calculator) = client
let (blockhash, _fee_calculator, _last_valid_slot) = client
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
.expect("Failed to get blockhash");
let to_swap_txs: Vec<_> = to_swap
@ -457,16 +452,14 @@ fn swapper<T>(
.map(|(signer, swap, profit)| {
let s: &Keypair = &signer;
let owner = &signer.pubkey();
Transaction::new_signed_instructions(
&[s],
vec![exchange_instruction::swap_request(
let instruction = exchange_instruction::swap_request(
owner,
&swap.0.pubkey,
&swap.1.pubkey,
&profit,
)],
blockhash,
)
);
let message = Message::new(&[instruction], Some(&s.pubkey()));
Transaction::new(&[s], message, blockhash)
})
.collect();
@ -577,7 +570,7 @@ fn trader<T>(
}
account_group = (account_group + 1) % account_groups as usize;
let (blockhash, _fee_calculator) = client
let (blockhash, _fee_calculator, _last_valid_slot) = client
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
.expect("Failed to get blockhash");
@ -588,9 +581,7 @@ fn trader<T>(
let owner_pubkey = &owner.pubkey();
let trade_pubkey = &trade.pubkey();
let space = mem::size_of::<ExchangeState>() as u64;
Transaction::new_signed_instructions(
&[owner.as_ref(), trade],
vec![
let instructions = [
system_instruction::create_account(
owner_pubkey,
trade_pubkey,
@ -607,9 +598,9 @@ fn trader<T>(
price,
src,
),
],
blockhash,
)
];
let message = Message::new(&instructions, Some(&owner_pubkey));
Transaction::new(&[owner.as_ref(), trade], message, blockhash)
})
.collect();
@ -701,7 +692,7 @@ fn verify_funding_transfer<T: SyncClient + ?Sized>(
false
}
pub fn fund_keys(client: &dyn Client, source: &Keypair, dests: &[Arc<Keypair>], lamports: u64) {
pub fn fund_keys<T: Client>(client: &T, source: &Keypair, dests: &[Arc<Keypair>], lamports: u64) {
let total = lamports * (dests.len() as u64 + 1);
let mut funded: Vec<(&Keypair, u64)> = vec![(source, total)];
let mut notfunded: Vec<&Arc<Keypair>> = dests.iter().collect();
@ -747,22 +738,19 @@ pub fn fund_keys(client: &dyn Client, source: &Keypair, dests: &[Arc<Keypair>],
let mut to_fund_txs: Vec<_> = chunk
.par_iter()
.map(|(k, m)| {
(
k.clone(),
Transaction::new_unsigned_instructions(system_instruction::transfer_many(
&k.pubkey(),
&m,
)),
)
let instructions = system_instruction::transfer_many(&k.pubkey(), &m);
let message = Message::new(&instructions, Some(&k.pubkey()));
(k.clone(), Transaction::new_unsigned(message))
})
.collect();
let mut retries = 0;
let amount = chunk[0].1[0].1;
while !to_fund_txs.is_empty() {
let receivers = to_fund_txs
let receivers: usize = to_fund_txs
.iter()
.fold(0, |len, (_, tx)| len + tx.message().instructions.len());
.map(|(_, tx)| tx.message().instructions.len())
.sum();
debug!(
" {} to {} in {} txs",
@ -775,7 +763,7 @@ pub fn fund_keys(client: &dyn Client, source: &Keypair, dests: &[Arc<Keypair>],
to_fund_txs.len(),
);
let (blockhash, _fee_calculator) = client
let (blockhash, _fee_calculator, _last_valid_slot) = client
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
.expect("blockhash");
to_fund_txs.par_iter_mut().for_each(|(k, tx)| {
@ -824,7 +812,11 @@ pub fn fund_keys(client: &dyn Client, source: &Keypair, dests: &[Arc<Keypair>],
}
}
pub fn create_token_accounts(client: &dyn Client, signers: &[Arc<Keypair>], accounts: &[Keypair]) {
pub fn create_token_accounts<T: Client>(
client: &T,
signers: &[Arc<Keypair>],
accounts: &[Keypair],
) {
let mut notfunded: Vec<(&Arc<Keypair>, &Keypair)> = signers.iter().zip(accounts).collect();
while !notfunded.is_empty() {
@ -843,16 +835,18 @@ pub fn create_token_accounts(client: &dyn Client, signers: &[Arc<Keypair>], acco
);
let request_ix =
exchange_instruction::account_request(owner_pubkey, &new_keypair.pubkey());
let message = Message::new(&[create_ix, request_ix], Some(&owner_pubkey));
(
(from_keypair, new_keypair),
Transaction::new_unsigned_instructions(vec![create_ix, request_ix]),
Transaction::new_unsigned(message),
)
})
.collect();
let accounts = to_create_txs
let accounts: usize = to_create_txs
.iter()
.fold(0, |len, (_, tx)| len + tx.message().instructions.len() / 2);
.map(|(_, tx)| tx.message().instructions.len() / 2)
.sum();
debug!(
" Creating {} accounts in {} txs",
@ -862,7 +856,7 @@ pub fn create_token_accounts(client: &dyn Client, signers: &[Arc<Keypair>], acco
let mut retries = 0;
while !to_create_txs.is_empty() {
let (blockhash, _fee_calculator) = client
let (blockhash, _fee_calculator, _last_valid_slot) = client
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
.expect("Failed to get blockhash");
to_create_txs
@ -968,7 +962,12 @@ fn generate_keypairs(num: u64) -> Vec<Keypair> {
rnd.gen_n_keypairs(num)
}
pub fn airdrop_lamports(client: &dyn Client, faucet_addr: &SocketAddr, id: &Keypair, amount: u64) {
pub fn airdrop_lamports<T: Client>(
client: &T,
faucet_addr: &SocketAddr,
id: &Keypair,
amount: u64,
) {
let balance = client.get_balance_with_commitment(&id.pubkey(), CommitmentConfig::recent());
let balance = balance.unwrap_or(0);
if balance >= amount {
@ -986,7 +985,7 @@ pub fn airdrop_lamports(client: &dyn Client, faucet_addr: &SocketAddr, id: &Keyp
let mut tries = 0;
loop {
let (blockhash, _fee_calculator) = client
let (blockhash, _fee_calculator, _last_valid_slot) = client
.get_recent_blockhash_with_commitment(CommitmentConfig::recent())
.expect("Failed to get blockhash");
match request_airdrop_transaction(&faucet_addr, &id.pubkey(), amount_to_drop, blockhash) {

View File

@ -1,7 +1,7 @@
use clap::{crate_description, crate_name, value_t, App, Arg, ArgMatches};
use solana_core::gen_keys::GenKeys;
use solana_faucet::faucet::FAUCET_PORT;
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
use solana_sdk::signature::{read_keypair_file, Keypair};
use std::net::SocketAddr;
use std::process::exit;
use std::time::Duration;

View File

@ -5,13 +5,13 @@ pub mod order_book;
use crate::bench::{airdrop_lamports, create_client_accounts_file, do_bench_exchange, Config};
use log::*;
use solana_core::gossip_service::{discover_cluster, get_multi_client};
use solana_sdk::signature::KeypairUtil;
use solana_sdk::signature::Signer;
fn main() {
solana_logger::setup();
solana_metrics::set_panic_hook("bench-exchange");
let matches = cli::build_args(solana_clap_utils::version!()).get_matches();
let matches = cli::build_args(solana_version::version!()).get_matches();
let cli_config = cli::extract_args(&matches);
let cli::Config {
@ -54,8 +54,7 @@ fn main() {
);
} else {
info!("Connecting to the cluster");
let (nodes, _archivers) =
discover_cluster(&entrypoint_addr, num_nodes).unwrap_or_else(|_| {
let nodes = discover_cluster(&entrypoint_addr, num_nodes).unwrap_or_else(|_| {
panic!("Failed to discover nodes");
});

View File

@ -10,12 +10,13 @@ use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
use solana_runtime::bank::Bank;
use solana_runtime::bank_client::BankClient;
use solana_sdk::genesis_config::create_genesis_config;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::signature::{Keypair, Signer};
use std::process::exit;
use std::sync::mpsc::channel;
use std::time::Duration;
#[test]
#[ignore]
fn test_exchange_local_cluster() {
solana_logger::setup();
@ -58,7 +59,7 @@ fn test_exchange_local_cluster() {
let faucet_addr = addr_receiver.recv_timeout(Duration::from_secs(2)).unwrap();
info!("Connecting to the cluster");
let (nodes, _) =
let nodes =
discover_cluster(&cluster.entry_point_info.gossip, NUM_NODES).unwrap_or_else(|err| {
error!("Failed to discover {} nodes: {:?}", NUM_NODES, err);
exit(1);
@ -85,7 +86,7 @@ fn test_exchange_bank_client() {
solana_logger::setup();
let (genesis_config, identity) = create_genesis_config(100_000_000_000_000);
let mut bank = Bank::new(&genesis_config);
bank.add_instruction_processor(id(), process_instruction);
bank.add_builtin_program("exchange_program", id(), process_instruction);
let clients = vec![BankClient::new(bank)];
let mut config = Config::default();

View File

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

View File

@ -1,6 +1,6 @@
use clap::{crate_description, crate_name, App, Arg};
use solana_core::packet::{Packet, Packets, PacketsRecycler, PACKET_DATA_SIZE};
use solana_core::streamer::{receiver, PacketReceiver};
use solana_streamer::packet::{Packet, Packets, PacketsRecycler, PACKET_DATA_SIZE};
use solana_streamer::streamer::{receiver, PacketReceiver};
use std::cmp::max;
use std::net::{IpAddr, Ipv4Addr, SocketAddr, UdpSocket};
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
@ -27,7 +27,7 @@ fn producer(addr: &SocketAddr, exit: Arc<AtomicBool>) -> JoinHandle<()> {
let mut num = 0;
for p in &msgs.packets {
let a = p.meta.addr();
assert!(p.meta.size < PACKET_DATA_SIZE);
assert!(p.meta.size <= PACKET_DATA_SIZE);
send.send_to(&p.data[..p.meta.size], &a).unwrap();
num += 1;
}
@ -52,7 +52,7 @@ fn main() -> Result<()> {
let matches = App::new(crate_name!())
.about(crate_description!())
.version(solana_clap_utils::version!())
.version(solana_version::version!())
.arg(
Arg::with_name("num-recv-sockets")
.long("num-recv-sockets")
@ -67,7 +67,8 @@ fn main() -> Result<()> {
}
let mut port = 0;
let mut addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 0);
let ip_addr = IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0));
let mut addr = SocketAddr::new(ip_addr, 0);
let exit = Arc::new(AtomicBool::new(false));
@ -75,7 +76,7 @@ fn main() -> Result<()> {
let mut read_threads = Vec::new();
let recycler = PacketsRecycler::default();
for _ in 0..num_sockets {
let read = solana_net_utils::bind_to(port, false).unwrap();
let read = solana_net_utils::bind_to(ip_addr, port, false).unwrap();
read.set_read_timeout(Some(Duration::new(1, 0))).unwrap();
addr = read.local_addr().unwrap();

View File

@ -1,39 +1,37 @@
[package]
authors = ["Solana Maintainers <maintainers@solana.com>"]
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
edition = "2018"
name = "solana-bench-tps"
version = "0.23.0"
version = "1.3.24"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
publish = false
[dependencies]
bincode = "1.2.1"
clap = "2.33.0"
bincode = "1.3.1"
clap = "2.33.1"
log = "0.4.8"
rayon = "1.2.0"
serde = "1.0.104"
serde_derive = "1.0.103"
serde_json = "1.0.44"
serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.23.0" }
solana-core = { path = "../core", version = "0.23.0" }
solana-genesis = { path = "../genesis", version = "0.23.0" }
solana-client = { path = "../client", version = "0.23.0" }
solana-faucet = { path = "../faucet", version = "0.23.0" }
solana-librapay = { path = "../programs/librapay", version = "0.23.0", optional = true }
solana-logger = { path = "../logger", version = "0.23.0" }
solana-metrics = { path = "../metrics", version = "0.23.0" }
solana-measure = { path = "../measure", version = "0.23.0" }
solana-net-utils = { path = "../net-utils", version = "0.23.0" }
solana-runtime = { path = "../runtime", version = "0.23.0" }
solana-sdk = { path = "../sdk", version = "0.23.0" }
solana-move-loader-program = { path = "../programs/move_loader", version = "0.23.0", optional = true }
rayon = "1.4.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "1.3.24" }
solana-core = { path = "../core", version = "1.3.24" }
solana-genesis = { path = "../genesis", version = "1.3.24" }
solana-client = { path = "../client", version = "1.3.24" }
solana-faucet = { path = "../faucet", version = "1.3.24" }
solana-logger = { path = "../logger", version = "1.3.24" }
solana-metrics = { path = "../metrics", version = "1.3.24" }
solana-measure = { path = "../measure", version = "1.3.24" }
solana-net-utils = { path = "../net-utils", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-version = { path = "../version", version = "1.3.24" }
[dev-dependencies]
serial_test = "0.3.2"
serial_test_derive = "0.3.1"
solana-local-cluster = { path = "../local-cluster", version = "0.23.0" }
serial_test = "0.4.0"
serial_test_derive = "0.4.0"
solana-local-cluster = { path = "../local-cluster", version = "1.3.24" }
[features]
move = ["solana-librapay", "solana-move-loader-program"]
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

View File

@ -4,18 +4,17 @@ use rayon::prelude::*;
use solana_client::perf_utils::{sample_txs, SampleStats};
use solana_core::gen_keys::GenKeys;
use solana_faucet::faucet::request_airdrop_transaction;
#[cfg(feature = "move")]
use solana_librapay::{create_genesis, upload_mint_script, upload_payment_script};
use solana_measure::measure::Measure;
use solana_metrics::{self, datapoint_debug};
use solana_metrics::{self, datapoint_info};
use solana_sdk::{
client::Client,
clock::{DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT, MAX_PROCESSING_AGE},
commitment_config::CommitmentConfig,
fee_calculator::FeeCalculator,
hash::Hash,
message::Message,
pubkey::Pubkey,
signature::{Keypair, KeypairUtil},
signature::{Keypair, Signer},
system_instruction, system_transaction,
timing::{duration_as_ms, duration_as_s, duration_as_us, timestamp},
transaction::Transaction,
@ -26,9 +25,9 @@ use std::{
process::exit,
sync::{
atomic::{AtomicBool, AtomicIsize, AtomicUsize, Ordering},
Arc, RwLock,
Arc, Mutex, RwLock,
},
thread::{sleep, Builder},
thread::{sleep, Builder, JoinHandle},
time::{Duration, Instant},
};
@ -36,9 +35,6 @@ use std::{
const MAX_TX_QUEUE_AGE: u64 =
MAX_PROCESSING_AGE as u64 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND;
#[cfg(feature = "move")]
use solana_librapay::librapay_transaction;
pub const MAX_SPENDS_PER_TX: u64 = 4;
#[derive(Debug)]
@ -50,12 +46,12 @@ pub type Result<T> = std::result::Result<T, BenchTpsError>;
pub type SharedTransactions = Arc<RwLock<VecDeque<Vec<(Transaction, u64)>>>>;
type LibraKeys = (Keypair, Pubkey, Pubkey, Vec<Keypair>);
fn get_recent_blockhash<T: Client>(client: &T) -> (Hash, FeeCalculator) {
loop {
match client.get_recent_blockhash_with_commitment(CommitmentConfig::recent()) {
Ok((blockhash, fee_calculator)) => return (blockhash, fee_calculator),
Ok((blockhash, fee_calculator, _last_valid_slot)) => {
return (blockhash, fee_calculator)
}
Err(err) => {
info!("Couldn't get recent blockhash: {:?}", err);
sleep(Duration::from_secs(1));
@ -64,52 +60,41 @@ fn get_recent_blockhash<T: Client>(client: &T) -> (Hash, FeeCalculator) {
}
}
pub fn do_bench_tps<T>(
client: Arc<T>,
config: Config,
gen_keypairs: Vec<Keypair>,
libra_args: Option<LibraKeys>,
) -> u64
fn wait_for_target_slots_per_epoch<T>(target_slots_per_epoch: u64, client: &Arc<T>)
where
T: 'static + Client + Send + Sync,
{
let Config {
id,
threads,
thread_batch_sleep_ms,
duration,
tx_count,
sustained,
..
} = config;
let mut source_keypair_chunks: Vec<Vec<&Keypair>> = Vec::new();
let mut dest_keypair_chunks: Vec<VecDeque<&Keypair>> = Vec::new();
assert!(gen_keypairs.len() >= 2 * tx_count);
for chunk in gen_keypairs.chunks_exact(2 * tx_count) {
source_keypair_chunks.push(chunk[..tx_count].iter().collect());
dest_keypair_chunks.push(chunk[tx_count..].iter().collect());
if target_slots_per_epoch != 0 {
info!(
"Waiting until epochs are {} slots long..",
target_slots_per_epoch
);
loop {
if let Ok(epoch_info) = client.get_epoch_info() {
if epoch_info.slots_in_epoch >= target_slots_per_epoch {
info!("Done epoch_info: {:?}", epoch_info);
break;
}
let first_tx_count = loop {
match client.get_transaction_count() {
Ok(count) => break count,
Err(err) => {
info!("Couldn't get transaction count: {:?}", err);
sleep(Duration::from_secs(1));
info!(
"Waiting for epoch: {} now: {}",
target_slots_per_epoch, epoch_info.slots_in_epoch
);
}
sleep(Duration::from_secs(3));
}
}
};
info!("Initial transaction count {}", first_tx_count);
}
let exit_signal = Arc::new(AtomicBool::new(false));
// Setup a thread per validator to sample every period
// collect the max transaction rate and total tx count seen
let maxes = Arc::new(RwLock::new(Vec::new()));
let sample_period = 1; // in seconds
fn create_sampler_thread<T>(
client: &Arc<T>,
exit_signal: &Arc<AtomicBool>,
sample_period: u64,
maxes: &Arc<RwLock<Vec<(String, SampleStats)>>>,
) -> JoinHandle<()>
where
T: 'static + Client + Send + Sync,
{
info!("Sampling TPS every {} second...", sample_period);
let sample_thread = {
let exit_signal = exit_signal.clone();
let maxes = maxes.clone();
let client = client.clone();
@ -119,50 +104,18 @@ where
sample_txs(&exit_signal, &maxes, sample_period, &client);
})
.unwrap()
};
let shared_txs: SharedTransactions = Arc::new(RwLock::new(VecDeque::new()));
let recent_blockhash = Arc::new(RwLock::new(get_recent_blockhash(client.as_ref()).0));
let shared_tx_active_thread_count = Arc::new(AtomicIsize::new(0));
let total_tx_sent_count = Arc::new(AtomicUsize::new(0));
let blockhash_thread = {
let exit_signal = exit_signal.clone();
let recent_blockhash = recent_blockhash.clone();
let client = client.clone();
let id = id.pubkey();
Builder::new()
.name("solana-blockhash-poller".to_string())
.spawn(move || {
poll_blockhash(&exit_signal, &recent_blockhash, &client, &id);
})
.unwrap()
};
let s_threads: Vec<_> = (0..threads)
.map(|_| {
let exit_signal = exit_signal.clone();
let shared_txs = shared_txs.clone();
let shared_tx_active_thread_count = shared_tx_active_thread_count.clone();
let total_tx_sent_count = total_tx_sent_count.clone();
let client = client.clone();
Builder::new()
.name("solana-client-sender".to_string())
.spawn(move || {
do_tx_transfers(
&exit_signal,
&shared_txs,
&shared_tx_active_thread_count,
&total_tx_sent_count,
thread_batch_sleep_ms,
&client,
);
})
.unwrap()
})
.collect();
}
fn generate_chunked_transfers(
recent_blockhash: Arc<RwLock<Hash>>,
shared_txs: &SharedTransactions,
shared_tx_active_thread_count: Arc<AtomicIsize>,
source_keypair_chunks: Vec<Vec<&Keypair>>,
dest_keypair_chunks: &mut Vec<VecDeque<&Keypair>>,
threads: usize,
duration: Duration,
sustained: bool,
) {
// generate and send transactions for the specified duration
let start = Instant::now();
let keypair_chunks = source_keypair_chunks.len();
@ -170,13 +123,12 @@ where
let mut chunk_index = 0;
while start.elapsed() < duration {
generate_txs(
&shared_txs,
shared_txs,
&recent_blockhash,
&source_keypair_chunks[chunk_index],
&dest_keypair_chunks[chunk_index],
threads,
reclaim_lamports_back_to_source_account,
&libra_args,
);
// In sustained mode, overlap the transfers with generation. This has higher average
@ -206,6 +158,129 @@ where
reclaim_lamports_back_to_source_account = !reclaim_lamports_back_to_source_account;
}
}
}
fn create_sender_threads<T>(
client: &Arc<T>,
shared_txs: &SharedTransactions,
thread_batch_sleep_ms: usize,
total_tx_sent_count: &Arc<AtomicUsize>,
threads: usize,
exit_signal: &Arc<AtomicBool>,
shared_tx_active_thread_count: &Arc<AtomicIsize>,
) -> Vec<JoinHandle<()>>
where
T: 'static + Client + Send + Sync,
{
(0..threads)
.map(|_| {
let exit_signal = exit_signal.clone();
let shared_txs = shared_txs.clone();
let shared_tx_active_thread_count = shared_tx_active_thread_count.clone();
let total_tx_sent_count = total_tx_sent_count.clone();
let client = client.clone();
Builder::new()
.name("solana-client-sender".to_string())
.spawn(move || {
do_tx_transfers(
&exit_signal,
&shared_txs,
&shared_tx_active_thread_count,
&total_tx_sent_count,
thread_batch_sleep_ms,
&client,
);
})
.unwrap()
})
.collect()
}
pub fn do_bench_tps<T>(client: Arc<T>, config: Config, gen_keypairs: Vec<Keypair>) -> u64
where
T: 'static + Client + Send + Sync,
{
let Config {
id,
threads,
thread_batch_sleep_ms,
duration,
tx_count,
sustained,
target_slots_per_epoch,
..
} = config;
let mut source_keypair_chunks: Vec<Vec<&Keypair>> = Vec::new();
let mut dest_keypair_chunks: Vec<VecDeque<&Keypair>> = Vec::new();
assert!(gen_keypairs.len() >= 2 * tx_count);
for chunk in gen_keypairs.chunks_exact(2 * tx_count) {
source_keypair_chunks.push(chunk[..tx_count].iter().collect());
dest_keypair_chunks.push(chunk[tx_count..].iter().collect());
}
let first_tx_count = loop {
match client.get_transaction_count() {
Ok(count) => break count,
Err(err) => {
info!("Couldn't get transaction count: {:?}", err);
sleep(Duration::from_secs(1));
}
}
};
info!("Initial transaction count {}", first_tx_count);
let exit_signal = Arc::new(AtomicBool::new(false));
// Setup a thread per validator to sample every period
// collect the max transaction rate and total tx count seen
let maxes = Arc::new(RwLock::new(Vec::new()));
let sample_period = 1; // in seconds
let sample_thread = create_sampler_thread(&client, &exit_signal, sample_period, &maxes);
let shared_txs: SharedTransactions = Arc::new(RwLock::new(VecDeque::new()));
let recent_blockhash = Arc::new(RwLock::new(get_recent_blockhash(client.as_ref()).0));
let shared_tx_active_thread_count = Arc::new(AtomicIsize::new(0));
let total_tx_sent_count = Arc::new(AtomicUsize::new(0));
let blockhash_thread = {
let exit_signal = exit_signal.clone();
let recent_blockhash = recent_blockhash.clone();
let client = client.clone();
let id = id.pubkey();
Builder::new()
.name("solana-blockhash-poller".to_string())
.spawn(move || {
poll_blockhash(&exit_signal, &recent_blockhash, &client, &id);
})
.unwrap()
};
let s_threads = create_sender_threads(
&client,
&shared_txs,
thread_batch_sleep_ms,
&total_tx_sent_count,
threads,
&exit_signal,
&shared_tx_active_thread_count,
);
wait_for_target_slots_per_epoch(target_slots_per_epoch, &client);
let start = Instant::now();
generate_chunked_transfers(
recent_blockhash,
&shared_txs,
shared_tx_active_thread_count,
source_keypair_chunks,
&mut dest_keypair_chunks,
threads,
duration,
sustained,
);
// Stop the sampling threads so it will collect the stats
exit_signal.store(true, Ordering::Relaxed);
@ -244,58 +319,12 @@ where
fn metrics_submit_lamport_balance(lamport_balance: u64) {
info!("Token balance: {}", lamport_balance);
datapoint_debug!(
datapoint_info!(
"bench-tps-lamport_balance",
("balance", lamport_balance, i64)
);
}
#[cfg(feature = "move")]
fn generate_move_txs(
source: &[&Keypair],
dest: &VecDeque<&Keypair>,
reclaim: bool,
move_keypairs: &[Keypair],
libra_pay_program_id: &Pubkey,
libra_mint_id: &Pubkey,
blockhash: &Hash,
) -> Vec<(Transaction, u64)> {
let count = move_keypairs.len() / 2;
let source_move = &move_keypairs[..count];
let dest_move = &move_keypairs[count..];
let pairs: Vec<_> = if !reclaim {
source_move
.iter()
.zip(dest_move.iter())
.zip(source.iter())
.collect()
} else {
dest_move
.iter()
.zip(source_move.iter())
.zip(dest.iter())
.collect()
};
pairs
.par_iter()
.map(|((from, to), payer)| {
(
librapay_transaction::transfer(
libra_pay_program_id,
libra_mint_id,
&payer,
&from,
&to.pubkey(),
1,
*blockhash,
),
timestamp(),
)
})
.collect()
}
fn generate_system_txs(
source: &[&Keypair],
dest: &VecDeque<&Keypair>,
@ -326,7 +355,6 @@ fn generate_txs(
dest: &VecDeque<&Keypair>,
threads: usize,
reclaim: bool,
libra_args: &Option<LibraKeys>,
) {
let blockhash = *blockhash.read().unwrap();
let tx_count = source.len();
@ -336,33 +364,7 @@ fn generate_txs(
);
let signing_start = Instant::now();
let transactions = if let Some((
_libra_genesis_keypair,
_libra_pay_program_id,
_libra_mint_program_id,
_libra_keys,
)) = libra_args
{
#[cfg(not(feature = "move"))]
{
return;
}
#[cfg(feature = "move")]
{
generate_move_txs(
source,
dest,
reclaim,
&_libra_keys,
_libra_pay_program_id,
&_libra_genesis_keypair.pubkey(),
&blockhash,
)
}
} else {
generate_system_txs(source, dest, reclaim, &blockhash)
};
let transactions = generate_system_txs(source, dest, reclaim, &blockhash);
let duration = signing_start.elapsed();
let ns = duration.as_secs() * 1_000_000_000 + u64::from(duration.subsec_nanos());
@ -375,7 +377,7 @@ fn generate_txs(
duration_as_ms(&duration),
blockhash,
);
datapoint_debug!(
datapoint_info!(
"bench-tps-generate_txs",
("duration", duration_as_us(&duration), i64)
);
@ -481,7 +483,7 @@ fn do_tx_transfers<T: Client>(
duration_as_ms(&transfer_start.elapsed()),
tx_len as f32 / duration_as_s(&transfer_start.elapsed()),
);
datapoint_debug!(
datapoint_info!(
"bench-tps-do_tx_transfers",
("duration", duration_as_us(&transfer_start.elapsed()), i64),
("count", tx_len, i64)
@ -563,11 +565,9 @@ impl<'a> FundingTransactions<'a> for Vec<(&'a Keypair, Transaction)> {
let to_fund_txs: Vec<(&Keypair, Transaction)> = to_fund
.par_iter()
.map(|(k, t)| {
let tx = Transaction::new_unsigned_instructions(system_instruction::transfer_many(
&k.pubkey(),
&t,
));
(*k, tx)
let instructions = system_instruction::transfer_many(&k.pubkey(), &t);
let message = Message::new(&instructions, Some(&k.pubkey()));
(*k, Transaction::new_unsigned(message))
})
.collect();
make_txs.stop();
@ -603,7 +603,9 @@ impl<'a> FundingTransactions<'a> for Vec<(&'a Keypair, Transaction)> {
let too_many_failures = Arc::new(AtomicBool::new(false));
let loops = if starting_txs < 1000 { 3 } else { 1 };
// Only loop multiple times for small (quick) transaction batches
let time = Arc::new(Mutex::new(Instant::now()));
for _ in 0..loops {
let time = time.clone();
let failed_verify = Arc::new(AtomicUsize::new(0));
let client = client.clone();
let verified_txs = &verified_txs;
@ -634,11 +636,15 @@ impl<'a> FundingTransactions<'a> for Vec<(&'a Keypair, Transaction)> {
remaining_count, verified_txs, failed_verify
);
}
if remaining_count % 100 == 0 {
if remaining_count > 0 {
let mut time_l = time.lock().unwrap();
if time_l.elapsed().as_secs() > 2 {
info!(
"Verifying transfers... {} remaining, {} verified, {} failures",
remaining_count, verified_txs, failed_verify
);
*time_l = Instant::now();
}
}
verified
@ -860,181 +866,13 @@ pub fn generate_keypairs(seed_keypair: &Keypair, count: u64) -> (Vec<Keypair>, u
(rnd.gen_n_keypairs(total_keys), extra)
}
#[cfg(feature = "move")]
fn fund_move_keys<T: Client>(
client: &T,
funding_key: &Keypair,
keypairs: &[Keypair],
total: u64,
libra_pay_program_id: &Pubkey,
libra_mint_program_id: &Pubkey,
libra_genesis_key: &Keypair,
) {
let (mut blockhash, _fee_calculator) = get_recent_blockhash(client);
info!("creating the libra funding account..");
let libra_funding_key = Keypair::new();
let tx = librapay_transaction::create_account(funding_key, &libra_funding_key, 1, blockhash);
client
.send_message(&[funding_key, &libra_funding_key], tx.message)
.unwrap();
info!("minting to funding keypair");
let tx = librapay_transaction::mint_tokens(
&libra_mint_program_id,
funding_key,
libra_genesis_key,
&libra_funding_key.pubkey(),
total,
blockhash,
);
client
.send_message(&[funding_key, libra_genesis_key], tx.message)
.unwrap();
info!("creating {} move accounts...", keypairs.len());
let total_len = keypairs.len();
let create_len = 5;
let mut funding_time = Measure::start("funding_time");
for (i, keys) in keypairs.chunks(create_len).enumerate() {
if client
.get_balance_with_commitment(&keys[0].pubkey(), CommitmentConfig::recent())
.unwrap_or(0)
> 0
{
// already created these accounts.
break;
}
let keypairs: Vec<_> = keys.iter().map(|k| k).collect();
let tx = librapay_transaction::create_accounts(funding_key, &keypairs, 1, blockhash);
let ser_size = bincode::serialized_size(&tx).unwrap();
let mut keys = vec![funding_key];
keys.extend(&keypairs);
client.send_message(&keys, tx.message).unwrap();
if i % 10 == 0 {
info!(
"created {} accounts of {} (size {})",
i,
total_len / create_len,
ser_size,
);
}
}
const NUM_FUNDING_KEYS: usize = 10;
let funding_keys: Vec<_> = (0..NUM_FUNDING_KEYS).map(|_| Keypair::new()).collect();
let pubkey_amounts: Vec<_> = funding_keys
.iter()
.map(|key| (key.pubkey(), total / NUM_FUNDING_KEYS as u64))
.collect();
let tx = Transaction::new_signed_instructions(
&[funding_key],
system_instruction::transfer_many(&funding_key.pubkey(), &pubkey_amounts),
blockhash,
);
client.send_message(&[funding_key], tx.message).unwrap();
let mut balance = 0;
for _ in 0..20 {
if let Ok(balance_) = client
.get_balance_with_commitment(&funding_keys[0].pubkey(), CommitmentConfig::recent())
{
if balance_ > 0 {
balance = balance_;
break;
}
}
sleep(Duration::from_millis(100));
}
assert!(balance > 0);
info!(
"funded multiple funding accounts with {:?} lanports",
balance
);
let libra_funding_keys: Vec<_> = (0..NUM_FUNDING_KEYS).map(|_| Keypair::new()).collect();
for (i, key) in libra_funding_keys.iter().enumerate() {
let tx = librapay_transaction::create_account(&funding_keys[i], &key, 1, blockhash);
client
.send_message(&[&funding_keys[i], &key], tx.message)
.unwrap();
let tx = librapay_transaction::transfer(
libra_pay_program_id,
&libra_genesis_key.pubkey(),
&funding_keys[i],
&libra_funding_key,
&key.pubkey(),
total / NUM_FUNDING_KEYS as u64,
blockhash,
);
client
.send_message(&[&funding_keys[i], &libra_funding_key], tx.message)
.unwrap();
info!("funded libra funding key {}", i);
}
let keypair_count = keypairs.len();
let amount = total / (keypair_count as u64);
for (i, keys) in keypairs[..keypair_count]
.chunks(NUM_FUNDING_KEYS)
.enumerate()
{
for (j, key) in keys.iter().enumerate() {
let tx = librapay_transaction::transfer(
libra_pay_program_id,
&libra_genesis_key.pubkey(),
&funding_keys[j],
&libra_funding_keys[j],
&key.pubkey(),
amount,
blockhash,
);
let _sig = client
.async_send_transaction(tx.clone())
.expect("create_account in generate_and_fund_keypairs");
}
for (j, key) in keys.iter().enumerate() {
let mut times = 0;
loop {
let balance =
librapay_transaction::get_libra_balance(client, &key.pubkey()).unwrap();
if balance >= amount {
break;
} else if times > 20 {
info!("timed out.. {} key: {} balance: {}", i, j, balance);
break;
} else {
times += 1;
sleep(Duration::from_millis(100));
}
}
}
info!(
"funded group {} of {}",
i + 1,
keypairs.len() / NUM_FUNDING_KEYS
);
blockhash = get_recent_blockhash(client).0;
}
funding_time.stop();
info!("done funding keys, took {} ms", funding_time.as_ms());
}
pub fn generate_and_fund_keypairs<T: 'static + Client + Send + Sync>(
client: Arc<T>,
faucet_addr: Option<SocketAddr>,
funding_key: &Keypair,
keypair_count: usize,
lamports_per_account: u64,
use_move: bool,
) -> Result<(Vec<Keypair>, Option<LibraKeys>)> {
) -> Result<Vec<Keypair>> {
info!("Creating {} keypairs...", keypair_count);
let (mut keypairs, extra) = generate_keypairs(funding_key, keypair_count as u64);
info!("Get lamports...");
@ -1047,26 +885,17 @@ pub fn generate_and_fund_keypairs<T: 'static + Client + Send + Sync>(
let last_key = keypairs[keypair_count - 1].pubkey();
let last_keypair_balance = client.get_balance(&last_key).unwrap_or(0);
#[cfg(feature = "move")]
let mut move_keypairs_ret = None;
#[cfg(not(feature = "move"))]
let move_keypairs_ret = None;
// Repeated runs will eat up keypair balances from transaction fees. In order to quickly
// start another bench-tps run without re-funding all of the keypairs, check if the
// keypairs still have at least 80% of the expected funds. That should be enough to
// pay for the transaction fees in a new run.
let enough_lamports = 8 * lamports_per_account / 10;
if first_keypair_balance < enough_lamports || last_keypair_balance < enough_lamports {
let (_blockhash, fee_calculator) = get_recent_blockhash(client.as_ref());
let max_fee = fee_calculator.max_lamports_per_signature;
let fee_rate_governor = client.get_fee_rate_governor().unwrap();
let max_fee = fee_rate_governor.max_lamports_per_signature;
let extra_fees = extra * max_fee;
let total_keypairs = keypairs.len() as u64 + 1; // Add one for funding keypair
let mut total = lamports_per_account * total_keypairs + extra_fees;
if use_move {
total *= 3;
}
let total = lamports_per_account * total_keypairs + extra_fees;
let funding_key_balance = client.get_balance(&funding_key.pubkey()).unwrap_or(0);
info!(
@ -1078,40 +907,6 @@ pub fn generate_and_fund_keypairs<T: 'static + Client + Send + Sync>(
airdrop_lamports(client.as_ref(), &faucet_addr.unwrap(), funding_key, total)?;
}
#[cfg(feature = "move")]
{
if use_move {
let libra_genesis_keypair =
create_genesis(&funding_key, client.as_ref(), 10_000_000);
let libra_mint_program_id = upload_mint_script(&funding_key, client.as_ref());
let libra_pay_program_id = upload_payment_script(&funding_key, client.as_ref());
// Generate another set of keypairs for move accounts.
// Still fund the solana ones which will be used for fees.
let seed = [0u8; 32];
let mut rnd = GenKeys::new(seed);
let move_keypairs = rnd.gen_n_keypairs(keypair_count as u64);
fund_move_keys(
client.as_ref(),
funding_key,
&move_keypairs,
total / 3,
&libra_pay_program_id,
&libra_mint_program_id,
&libra_genesis_keypair,
);
move_keypairs_ret = Some((
libra_genesis_keypair,
libra_pay_program_id,
libra_mint_program_id,
move_keypairs,
));
// Give solana keys 1/3 and move keys 1/3 the lamports. Keep 1/3 for fees.
total /= 3;
}
}
fund_keys(
client,
funding_key,
@ -1125,7 +920,7 @@ pub fn generate_and_fund_keypairs<T: 'static + Client + Send + Sync>(
// 'generate_keypairs' generates extra keys to be able to have size-aligned funding batches for fund_keys.
keypairs.truncate(keypair_count);
Ok((keypairs, move_keypairs_ret))
Ok(keypairs)
}
#[cfg(test)]
@ -1134,7 +929,7 @@ mod tests {
use solana_runtime::bank::Bank;
use solana_runtime::bank_client::BankClient;
use solana_sdk::client::SyncClient;
use solana_sdk::fee_calculator::FeeCalculator;
use solana_sdk::fee_calculator::FeeRateGovernor;
use solana_sdk::genesis_config::create_genesis_config;
#[test]
@ -1149,11 +944,11 @@ mod tests {
config.duration = Duration::from_secs(5);
let keypair_count = config.tx_count * config.keypair_multiplier;
let (keypairs, _move_keypairs) =
generate_and_fund_keypairs(client.clone(), None, &config.id, keypair_count, 20, false)
let keypairs =
generate_and_fund_keypairs(client.clone(), None, &config.id, keypair_count, 20)
.unwrap();
do_bench_tps(client, config, keypairs, None);
do_bench_tps(client, config, keypairs);
}
#[test]
@ -1164,9 +959,8 @@ mod tests {
let keypair_count = 20;
let lamports = 20;
let (keypairs, _move_keypairs) =
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false)
.unwrap();
let keypairs =
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports).unwrap();
for kp in &keypairs {
assert_eq!(
@ -1181,16 +975,15 @@ mod tests {
#[test]
fn test_bench_tps_fund_keys_with_fees() {
let (mut genesis_config, id) = create_genesis_config(10_000);
let fee_calculator = FeeCalculator::new(11, 0);
genesis_config.fee_calculator = fee_calculator;
let fee_rate_governor = FeeRateGovernor::new(11, 0);
genesis_config.fee_rate_governor = fee_rate_governor;
let bank = Bank::new(&genesis_config);
let client = Arc::new(BankClient::new(bank));
let keypair_count = 20;
let lamports = 20;
let (keypairs, _move_keypairs) =
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false)
.unwrap();
let keypairs =
generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports).unwrap();
for kp in &keypairs {
assert_eq!(client.get_balance(&kp.pubkey()).unwrap(), lamports);

View File

@ -1,7 +1,10 @@
use clap::{crate_description, crate_name, App, Arg, ArgMatches};
use solana_faucet::faucet::FAUCET_PORT;
use solana_sdk::fee_calculator::FeeCalculator;
use solana_sdk::signature::{read_keypair_file, Keypair, KeypairUtil};
use solana_sdk::fee_calculator::FeeRateGovernor;
use solana_sdk::{
pubkey::Pubkey,
signature::{read_keypair_file, Keypair},
};
use std::{net::SocketAddr, process::exit, time::Duration};
const NUM_LAMPORTS_PER_ACCOUNT_DEFAULT: u64 = solana_sdk::native_token::LAMPORTS_PER_SOL;
@ -23,8 +26,9 @@ pub struct Config {
pub read_from_client_file: bool,
pub target_lamports_per_signature: u64,
pub multi_client: bool,
pub use_move: bool,
pub num_lamports_per_account: u64,
pub target_slots_per_epoch: u64,
pub target_node: Option<Pubkey>,
}
impl Default for Config {
@ -43,10 +47,11 @@ impl Default for Config {
client_ids_and_stake_file: String::new(),
write_to_client_file: false,
read_from_client_file: false,
target_lamports_per_signature: FeeCalculator::default().target_lamports_per_signature,
target_lamports_per_signature: FeeRateGovernor::default().target_lamports_per_signature,
multi_client: true,
use_move: false,
num_lamports_per_account: NUM_LAMPORTS_PER_ACCOUNT_DEFAULT,
target_slots_per_epoch: 0,
target_node: None,
}
}
}
@ -107,16 +112,19 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> {
.long("sustained")
.help("Use sustained performance mode vs. peak mode. This overlaps the tx generation with transfers."),
)
.arg(
Arg::with_name("use-move")
.long("use-move")
.help("Use Move language transactions to perform transfers."),
)
.arg(
Arg::with_name("no-multi-client")
.long("no-multi-client")
.help("Disable multi-client support, only transact with the entrypoint."),
)
.arg(
Arg::with_name("target_node")
.long("target-node")
.requires("no-multi-client")
.takes_value(true)
.value_name("PUBKEY")
.help("Specify an exact node to send transactions to."),
)
.arg(
Arg::with_name("tx_count")
.long("tx_count")
@ -172,6 +180,15 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> {
"Number of lamports per account.",
),
)
.arg(
Arg::with_name("target_slots_per_epoch")
.long("target-slots-per-epoch")
.value_name("SLOTS")
.takes_value(true)
.help(
"Wait until epochs are this many slots long.",
),
)
}
/// Parses a clap `ArgMatches` structure into a `Config`
@ -252,12 +269,21 @@ pub fn extract_args<'a>(matches: &ArgMatches<'a>) -> Config {
args.target_lamports_per_signature = v.to_string().parse().expect("can't parse lamports");
}
args.use_move = matches.is_present("use-move");
args.multi_client = !matches.is_present("no-multi-client");
args.target_node = matches
.value_of("target_node")
.map(|target_str| target_str.parse().unwrap());
if let Some(v) = matches.value_of("num_lamports_per_account") {
args.num_lamports_per_account = v.to_string().parse().expect("can't parse lamports");
}
if let Some(t) = matches.value_of("target_slots_per_epoch") {
args.target_slots_per_epoch = t
.to_string()
.parse()
.expect("can't parse target slots per epoch");
}
args
}

View File

@ -3,8 +3,8 @@ use solana_bench_tps::bench::{do_bench_tps, generate_and_fund_keypairs, generate
use solana_bench_tps::cli;
use solana_core::gossip_service::{discover_cluster, get_client, get_multi_client};
use solana_genesis::Base64Account;
use solana_sdk::fee_calculator::FeeCalculator;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::fee_calculator::FeeRateGovernor;
use solana_sdk::signature::{Keypair, Signer};
use solana_sdk::system_program;
use std::{collections::HashMap, fs::File, io::prelude::*, path::Path, process::exit, sync::Arc};
@ -15,7 +15,7 @@ fn main() {
solana_logger::setup_with_default("solana=info");
solana_metrics::set_panic_hook("bench-tps");
let matches = cli::build_args(solana_clap_utils::version!()).get_matches();
let matches = cli::build_args(solana_version::version!()).get_matches();
let cli_config = cli::extract_args(&matches);
let cli::Config {
@ -29,9 +29,9 @@ fn main() {
write_to_client_file,
read_from_client_file,
target_lamports_per_signature,
use_move,
multi_client,
num_lamports_per_account,
target_node,
..
} = &cli_config;
@ -41,7 +41,7 @@ fn main() {
let (keypairs, _) = generate_keypairs(&id, keypair_count as u64);
let num_accounts = keypairs.len() as u64;
let max_fee =
FeeCalculator::new(*target_lamports_per_signature, 0).max_lamports_per_signature;
FeeRateGovernor::new(*target_lamports_per_signature, 0).max_lamports_per_signature;
let num_lamports_per_account = (num_accounts - 1 + NUM_SIGNATURES_FOR_TXS * max_fee)
/ num_accounts
+ num_lamports_per_account;
@ -67,8 +67,7 @@ fn main() {
}
info!("Connecting to the cluster");
let (nodes, _archivers) =
discover_cluster(&entrypoint_addr, *num_nodes).unwrap_or_else(|err| {
let nodes = discover_cluster(&entrypoint_addr, *num_nodes).unwrap_or_else(|err| {
eprintln!("Failed to discover {} nodes: {:?}", num_nodes, err);
exit(1);
});
@ -83,11 +82,24 @@ fn main() {
exit(1);
}
Arc::new(client)
} else if let Some(target_node) = target_node {
info!("Searching for target_node: {:?}", target_node);
let mut target_client = None;
for node in nodes {
if node.id == *target_node {
target_client = Some(Arc::new(get_client(&[node])));
break;
}
}
target_client.unwrap_or_else(|| {
eprintln!("Target node {} not found", target_node);
exit(1);
})
} else {
Arc::new(get_client(&nodes))
};
let (keypairs, move_keypairs) = if *read_from_client_file && !use_move {
let keypairs = if *read_from_client_file {
let path = Path::new(&client_ids_and_stake_file);
let file = File::open(path).unwrap();
@ -116,8 +128,8 @@ fn main() {
// Sort keypairs so that do_bench_tps() uses the same subset of accounts for each run.
// This prevents the amount of storage needed for bench-tps accounts from creeping up
// across multiple runs.
keypairs.sort_by(|x, y| x.pubkey().to_string().cmp(&y.pubkey().to_string()));
(keypairs, None)
keypairs.sort_by_key(|x| x.pubkey().to_string());
keypairs
} else {
generate_and_fund_keypairs(
client.clone(),
@ -125,7 +137,6 @@ fn main() {
&id,
keypair_count,
*num_lamports_per_account,
*use_move,
)
.unwrap_or_else(|e| {
eprintln!("Error could not fund keys: {:?}", e);
@ -133,5 +144,5 @@ fn main() {
})
};
do_bench_tps(client, cli_config, keypairs, move_keypairs);
do_bench_tps(client, cli_config, keypairs);
}

View File

@ -6,17 +6,11 @@ use solana_core::cluster_info::VALIDATOR_PORT_RANGE;
use solana_core::validator::ValidatorConfig;
use solana_faucet::faucet::run_local_faucet;
use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
#[cfg(feature = "move")]
use solana_sdk::move_loader::solana_move_loader_program;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::signature::{Keypair, Signer};
use std::sync::{mpsc::channel, Arc};
use std::time::Duration;
fn test_bench_tps_local_cluster(config: Config) {
#[cfg(feature = "move")]
let native_instruction_processors = vec![solana_move_loader_program()];
#[cfg(not(feature = "move"))]
let native_instruction_processors = vec![];
solana_logger::setup();
@ -48,17 +42,16 @@ fn test_bench_tps_local_cluster(config: Config) {
let lamports_per_account = 100;
let keypair_count = config.tx_count * config.keypair_multiplier;
let (keypairs, move_keypairs) = generate_and_fund_keypairs(
let keypairs = generate_and_fund_keypairs(
client.clone(),
Some(faucet_addr),
&config.id,
keypair_count,
lamports_per_account,
config.use_move,
)
.unwrap();
let _total = do_bench_tps(client, config, keypairs, move_keypairs);
let _total = do_bench_tps(client, config, keypairs);
#[cfg(not(debug_assertions))]
assert!(_total > 100);
@ -73,14 +66,3 @@ fn test_bench_tps_local_cluster_solana() {
test_bench_tps_local_cluster(config);
}
#[test]
#[serial]
fn test_bench_tps_local_cluster_move() {
let mut config = Config::default();
config.tx_count = 100;
config.duration = Duration::from_secs(10);
config.use_move = true;
test_bench_tps_local_cluster(config);
}

1
book/.gitattributes vendored
View File

@ -1 +0,0 @@
theme/highlight.js binary

View File

@ -1,26 +0,0 @@
Building the Solana book
---
Install the book's dependnecies, build, and test the book:
```bash
$ ./build.sh
```
Run any Rust tests in the markdown:
```bash
$ make test
```
Render markdown as HTML:
```bash
$ make build
```
Render and view the book:
```bash
$ make open
```

View File

@ -1,20 +0,0 @@
.----------------------------------------.
| Solana Runtime |
| |
| .------------. .------------. |
| | | | | |
.-------->| Verifier +-->| Accounts | |
| | | | | | |
.----------. | | `------------` `------------` |
| +--------` | ^ |
| Client | | LoadAccounts | |
| +--------. | .----------------` |
`----------` | | | |
| | .------+-----. .-------------. |
| | | | | | |
`-------->| Loader +-->| Interpreter | |
| | | | | |
| `------------` `-------------` |
| |
`----------------------------------------`

View File

@ -1,22 +0,0 @@
.--------.
| Leader |
`--------`
^
|
.------------------------------------|--------------------.
| TVU | |
| | |
| .-------. .------------. .----+---. .---------. |
.------------. | | Shred | | Retransmit | | Replay | | Storage | |
| Upstream +----->| Fetch +-->| Stage +-->| Stage +-->| Stage | |
| Validators | | | Stage | | | | | | | |
`------------` | `-------` `----+-------` `----+---` `---------` |
| ^ | | |
| | | | |
`--------|----------|----------------|--------------------`
| | |
| V v
.+-----------. .------.
| Gossip | | Bank |
| Service | `------`
`------------`

View File

@ -1,10 +0,0 @@
[book]
title = "Solana: Blockchain Rebuilt for Scale"
authors = ["The Solana Team"]
[build]
build-dir = "html"
create-missing = false
[output.html]
theme = "theme"

View File

@ -1,16 +0,0 @@
#!/usr/bin/env bash
set -e
cd "$(dirname "$0")"
# md check
find src -name '*.md' -a \! -name SUMMARY.md |
while read -r file; do
if ! grep -q '('"${file#src/}"')' src/SUMMARY.md; then
echo "Error: $file missing from SUMMARY.md"
exit 1
fi
done
make -j"$(nproc)" test

View File

@ -1,43 +0,0 @@
BOB_SRCS=$(wildcard art/*.bob)
MSC_SRCS=$(wildcard art/*.msc)
MD_SRCS=$(wildcard src/*.md src/*/*.md)
SVG_IMGS=$(BOB_SRCS:art/%.bob=src/.gitbook/assets/%.svg) $(MSC_SRCS:art/%.msc=src/.gitbook/assets/%.svg)
TARGET=html/index.html
TEST_STAMP=src/tests.ok
all: $(TARGET)
svg: $(SVG_IMGS)
test: $(TEST_STAMP)
open: $(TEST_STAMP)
mdbook build --open
watch: $(SVG_IMGS)
mdbook watch
src/.gitbook/assets/%.svg: art/%.bob
@mkdir -p $(@D)
svgbob < $< > $@
src/.gitbook/assets/%.svg: art/%.msc
@mkdir -p $(@D)
mscgen -T svg -i $< -o $@
src/%.md: %.md
@mkdir -p $(@D)
@cp $< $@
$(TEST_STAMP): $(TARGET)
mdbook test
touch $@
$(TARGET): $(SVG_IMGS) $(MD_SRCS)
mdbook build
clean:
rm -f $(SVG_IMGS) src/tests.ok
rm -rf html

View File

@ -1,91 +0,0 @@
# Table of contents
* [Introduction](introduction.md)
* [Using Solana from the Command-line](cli/README.md)
* [Command-line Usage](cli/usage.md)
* [Paper Wallet](paper-wallet/README.md)
* [Installation](paper-wallet/installation.md)
* [Paper Wallet Usage](paper-wallet/usage.md)
* [Offline Signing](offline-signing/README.md)
* [Durable Transaction Nonces](offline-signing/durable-nonce.md)
* [Developing Applications](apps/README.md)
* [Example: Web Wallet](apps/webwallet.md)
* [Example: Tic-Tac-Toe](apps/tictactoe.md)
* [Drones](apps/drones.md)
* [Anatomy of a Transaction](transaction.md)
* [JSON RPC API](apps/jsonrpc-api.md)
* [JavaScript API](apps/javascript-api.md)
* [Running a Validator](running-validator/README.md)
* [Validator Requirements](running-validator/validator-reqs.md)
* [Choosing a Testnet](running-validator/validator-testnet.md)
* [Installing the Validator Software](running-validator/validator-software.md)
* [Starting a Validator](running-validator/validator-start.md)
* [Staking](running-validator/validator-stake.md)
* [Monitoring a Validator](running-validator/validator-monitor.md)
* [Publishing Validator Info](running-validator/validator-info.md)
* [Troubleshooting](running-validator/validator-troubleshoot.md)
* [Running an Archiver](running-archiver.md)
* [Understanding Solana's Architecture](cluster/README.md)
* [Synchronization](cluster/synchronization.md)
* [Leader Rotation](cluster/leader-rotation.md)
* [Fork Generation](cluster/fork-generation.md)
* [Managing Forks](cluster/managing-forks.md)
* [Turbine Block Propagation](cluster/turbine-block-propagation.md)
* [Ledger Replication](cluster/ledger-replication.md)
* [Secure Vote Signing](cluster/vote-signing.md)
* [Stake Delegation and Rewards](cluster/stake-delegation-and-rewards.md)
* [Performance Metrics](cluster/performance-metrics.md)
* [Anatomy of a Validator](validator/README.md)
* [TPU](validator/tpu.md)
* [TVU](validator/tvu.md)
* [Blockstore](validator/blockstore.md)
* [Gossip Service](validator/gossip.md)
* [The Runtime](validator/runtime.md)
* [Building from Source](building-from-source.md)
* [Terminology](terminology.md)
* [Implemented Design Proposals](implemented-proposals/README.md)
* [Cluster Software Installation and Updates](implemented-proposals/installer.md)
* [Cluster Economics](implemented-proposals/ed_overview/README.md)
* [Validation-client Economics](implemented-proposals/ed_overview/ed_validation_client_economics/README.md)
* [State-validation Protocol-based Rewards](implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md)
* [State-validation Transaction Fees](implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_transaction_fees.md)
* [Replication-validation Transaction Fees](implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_replication_validation_transaction_fees.md)
* [Validation Stake Delegation](implemented-proposals/ed_overview/ed_validation_client_economics/ed_vce_validation_stake_delegation.md)
* [Replication-client Economics](implemented-proposals/ed_overview/ed_replication_client_economics/README.md)
* [Storage-replication Rewards](implemented-proposals/ed_overview/ed_replication_client_economics/ed_rce_storage_replication_rewards.md)
* [Replication-client Reward Auto-delegation](implemented-proposals/ed_overview/ed_replication_client_economics/ed_rce_replication_client_reward_auto_delegation.md)
* [Storage Rent Economics](implemented-proposals/ed_overview/ed_storage_rent_economics.md)
* [Economic Sustainability](implemented-proposals/ed_overview/ed_economic_sustainability.md)
* [Attack Vectors](implemented-proposals/ed_overview/ed_attack_vectors.md)
* [Economic Design MVP](implemented-proposals/ed_overview/ed_mvp.md)
* [References](implemented-proposals/ed_overview/ed_references.md)
* [Deterministic Transaction Fees](implemented-proposals/transaction-fees.md)
* [Tower BFT](implemented-proposals/tower-bft.md)
* [Leader-to-Leader Transition](implemented-proposals/leader-leader-transition.md)
* [Leader-to-Validator Transition](implemented-proposals/leader-validator-transition.md)
* [Persistent Account Storage](implemented-proposals/persistent-account-storage.md)
* [Reliable Vote Transmission](implemented-proposals/reliable-vote-transmission.md)
* [Repair Service](implemented-proposals/repair-service.md)
* [Testing Programs](implemented-proposals/testing-programs.md)
* [Credit-only Accounts](implemented-proposals/readonly-accounts.md)
* [Embedding the Move Langauge](implemented-proposals/embedding-move.md)
* [Staking Rewards](implemented-proposals/staking-rewards.md)
* [Rent](implemented-proposals/rent.md)
* [Durable Transaction Nonces](implemented-proposals/durable-tx-nonces.md)
* [Validator Timestamp Oracle](implemented-proposals/validator-timestamp-oracle.md)
* [Commitment](implemented-proposals/commitment.md)
* [Snapshot Verification](implemented-proposals/snapshot-verification.md)
* [Accepted Design Proposals](proposals/README.md)
* [Ledger Replication](proposals/ledger-replication-to-implement.md)
* [Secure Vote Signing](proposals/vote-signing-to-implement.md)
* [Cluster Test Framework](proposals/cluster-test-framework.md)
* [Validator](proposals/validator-proposal.md)
* [Simple Payment and State Verification](proposals/simple-payment-and-state-verification.md)
* [Cross-Program Invocation](proposals/cross-program-invocation.md)
* [Inter-chain Transaction Verification](proposals/interchain-transaction-verification.md)
* [Snapshot Verification](proposals/snapshot-verification.md)
* [Bankless Leader](proposals/bankless-leader.md)
* [Slashing](proposals/slashing.md)
* [Tick Verification](proposals/tick-verification.md)
* [Block Confirmation](proposals/block-confirmation.md)
* [ABI Management](proposals/abi-management.md)

View File

@ -1,44 +0,0 @@
# Programming Model
An _app_ interacts with a Solana cluster by sending it _transactions_ with one or more _instructions_. The Solana _runtime_ passes those instructions to user-contributed _programs_. An instruction might, for example, tell a program to transfer _lamports_ from one _account_ to another or create an interactive contract that governs how lamports are transfered. Instructions are executed sequentially and atomically. If any instruction is invalid, any changes made within the transaction are discarded.
### Accounts and Signatures
Each transaction explicitly lists all account public keys referenced by the transaction's instructions. A subset of those public keys are each accompanied by a transaction signature. Those signatures signal on-chain programs that the account holder has authorized the transaction. Typically, the program uses the authorization to permit debiting the account or modifying its data.
The transaction also marks some accounts as _read-only accounts_. The runtime permits read-only accounts to be read concurrently. If a program attempts to modify a read-only account, the transaction is rejected by the runtime.
### Recent Blockhash
A Transaction includes a recent blockhash to prevent duplication and to give transactions lifetimes. Any transaction that is completely identical to a previous one is rejected, so adding a newer blockhash allows multiple transactions to repeat the exact same action. Transactions also have lifetimes that are defined by the blockhash, as any transaction whose blockhash is too old will be rejected.
### Instructions
Each instruction specifies a single program account \(which must be marked executable\), a subset of the transaction's accounts that should be passed to the program, and a data byte array instruction that is passed to the program. The program interprets the data array and operates on the accounts specified by the instructions. The program can return successfully, or with an error code. An error return causes the entire transaction to fail immediately.
## Deploying Programs to a Cluster
![SDK tools](../.gitbook/assets/sdk-tools.svg)
As shown in the diagram above a client creates a program and compiles it to an ELF shared object containing BPF bytecode and sends it to the Solana cluster. The cluster stores the program locally and makes it available to clients via a _program ID_. The program ID is a _public key_ generated by the client and is used to reference the program in subsequent transactions.
A program may be written in any programming language that can target the Berkley Packet Filter \(BPF\) safe execution environment. The Solana SDK offers the best support for C programs, which is compiled to BPF using the [LLVM compiler infrastructure](https://llvm.org).
## Storing State between Transactions
If the program needs to store state between transactions, it does so using _accounts_. Accounts are similar to files in operating systems such as Linux. Like a file, an account may hold arbitrary data and that data persists beyond the lifetime of a program. Also like a file, an account includes metadata that tells the runtime who is allowed to access the data and how. Unlike a file, the account includes metadata for the lifetime of the file. That lifetime is expressed in "tokens", which is a number of fractional native tokens, called _lamports_. Accounts are held in validator memory and pay "rent" to stay there. Each validator periodically scan all accounts and collects rent. Any account that drops to zero lamports is purged.
If an account is marked "executable", it will only be used by a _loader_ to run programs. For example, a BPF-compiled program is marked executable and loaded by the BPF loader. No program is allowed to modify the contents of an executable account.
An account also includes "owner" metadata. The owner is a program ID. The runtime grants the program write access to the account if its ID matches the owner. If an account is not owned by a program, the program is permitted to read its data and credit the account.
In the same way that a Linux user uses a path to look up a file, a Solana client uses public keys to look up accounts. To create an account, the client generates a _keypair_ and registers its public key using the `CreateAccount` instruction. The account created by `CreateAccount` is called a _system account_ and is owned by a built-in program called the System program. The System program allows clients to transfer lamports and assign account ownership.
The runtime only permits the owner to debit the account or modify its data. The program then defines additional rules for whether the client can modify accounts it owns. In the case of the System program, it allows users to transfer lamports by recognizing transaction signatures. If it sees the client signed the transaction using the keypair's _private key_, it knows the client authorized the token transfer.
After the runtime executes each of the transaction's instructions, it uses the account metadata to verify that none of the access rules were violated. If a program violates an access rule, the runtime discards all account changes made by all instructions and marks the transaction as failed.
## Smart Contracts
Programs don't always require transaction signatures, as the System program does. Instead, the program may manage _smart contracts_. A smart contract is a set of constraints that once satisfied, signal to a program that a token transfer or account update is permitted. For example, one could use the Budget program to create a smart contract that authorizes a token transfer only after some date. Once evidence that the date has past, the contract progresses, and token transfer completes.

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
# Example: Tic-Tac-Toe
[Click here to play Tic-Tac-Toe](https://solana-example-tictactoe.herokuapp.com/) on the Solana testnet. Open the link and wait for another player to join, or open the link in a second browser tab to play against yourself. You will see that every move a player makes stores a transaction on the ledger.
## Build and run Tic-Tac-Toe locally
First fetch the latest release of the example code:
```bash
$ git clone https://github.com/solana-labs/example-tictactoe.git
$ cd example-tictactoe
$ TAG=$(git describe --tags $(git rev-list --tags
--max-count=1))
$ git checkout $TAG
```
Next, follow the steps in the git repository's [README](https://github.com/solana-labs/example-tictactoe/blob/master/README.md).
## Getting lamports to users
You may have noticed you interacted with the Solana cluster without first needing to acquire lamports to pay transaction fees. Under the hood, the web app creates a new ephemeral identity and sends a request to an off-chain service for a signed transaction authorizing a user to start a new game. The service is called a _drone_. When the app sends the signed transaction to the Solana cluster, the drone's lamports are spent to pay the transaction fee and start the game. In a real world app, the drone might request the user watch an ad or pass a CAPTCHA before signing over its lamports.

View File

@ -1,5 +0,0 @@
# Using Solana from the Command-line
This chapter describes the command-line tools for interacting with Solana. One
could use these tools to send payments, stake validators, and check account
balances.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
# Implemented Design Proposals
The following design proposals are fully implemented.

View File

@ -1,15 +0,0 @@
# Cluster Economics
**Subject to change.**
Solanas crypto-economic system is designed to promote a healthy, long term self-sustaining economy with participant incentives aligned to the security and decentralization of the network. The main participants in this economy are validation-clients and replication-clients. Their contributions to the network, state validation and data storage respectively, and their requisite incentive mechanisms are discussed below.
The main channels of participant remittances are referred to as protocol-based rewards and transaction fees. Protocol-based rewards are issuances from a global, protocol-defined, inflation rate. These rewards will constitute the total reward delivered to replication and validation clients, the remaining sourced from transaction fees. In the early days of the network, it is likely that protocol-based rewards, deployed based on predefined issuance schedule, will drive the majority of participant incentives to participate in the network.
These protocol-based rewards, to be distributed to participating validation and replication clients, are to be a result of a global supply inflation rate, calculated per Solana epoch and distributed amongst the active validator set. As discussed further below, the per annum inflation rate is based on a pre-determined disinflationary schedule. This provides the network with monetary supply predictability which supports long term economic stability and security.
Transaction fees are market-based participant-to-participant transfers, attached to network interactions as a necessary motivation and compensation for the inclusion and execution of a proposed transaction \(be it a state execution or proof-of-replication verification\). A mechanism for long-term economic stability and forking protection through partial burning of each transaction fee is also discussed below.
A high-level schematic of Solanas crypto-economic design is shown below in **Figure 1**. The specifics of validation-client economics are described in sections: [Validation-client Economics](ed_validation_client_economics/), [State-validation Protocol-based Rewards](ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md), [State-validation Transaction Fees](ed_validation_client_economics/ed_vce_state_validation_transaction_fees.md) and [Replication-validation Transaction Fees](ed_validation_client_economics/ed_vce_replication_validation_transaction_fees.md). Also, the chapter titled [Validation Stake Delegation](ed_validation_client_economics/ed_vce_validation_stake_delegation.md) closes with a discussion of validator delegation opportunties and marketplace. Additionally, in [Storage Rent Economics](ed_storage_rent_economics.md), we describe an implementation of storage rent to account for the externality costs of maintaining the active state of the ledger. The [Replication-client Economics](ed_replication_client_economics/) chapter will review the Solana network design for global ledger storage/redundancy and archiver-client economics \([Storage-replication rewards](ed_replication_client_economics/ed_rce_storage_replication_rewards.md)\) along with an archiver-to-validator delegation mechanism designed to aide participant on-boarding into the Solana economy discussed in [Replication-client Reward Auto-delegation](ed_replication_client_economics/ed_rce_replication_client_reward_auto_delegation.md). An outline of features for an MVP economic design is discussed in the [Economic Design MVP](ed_mvp.md) section. Finally, in chapter [Attack Vectors](ed_attack_vectors.md), various attack vectors will be described and potential vulnerabilities explored and parameterized.
**Figure 1**: Schematic overview of Solana economic incentive design.

View File

@ -1,14 +0,0 @@
# Attack Vectors
**Subject to change.**
## Colluding validation and replication clients
A colluding validation-client, may take the strategy to mark PoReps from non-colluding archiver nodes as invalid as an attempt to maximize the rewards for the colluding archiver nodes. In this case, it isnt feasible for the offended-against archiver nodes to petition the network for resolution as this would result in a network-wide vote on each offending PoRep and create too much overhead for the network to progress adequately. Also, this mitigation attempt would still be vulnerable to a &gt;= 51% staked colluder.
Alternatively, transaction fees from submitted PoReps are pooled and distributed across validation-clients in proportion to the number of valid PoReps discounted by the number of invalid PoReps as voted by each validator-client. Thus invalid votes are directly dis-incentivized through this reward channel. Invalid votes that are revealed by archiver nodes as fishing PoReps, will not be discounted from the payout PoRep count.
Another collusion attack involves a validator-client who may take the strategy to ignore invalid PoReps from colluding archiver and vote them as valid. In this case, colluding archiver-clients would not have to store the data while still receiving rewards for validated PoReps. Additionally, colluding validator nodes would also receive rewards for validating these PoReps. To mitigate this attack, validators must randomly sample PoReps corresponding to the ledger block they are validating and because of this, there will be multiple validators that will receive the colluding archivers invalid submissions. These non-colluding validators will be incentivized to mark these PoReps as invalid as they have no way to determine whether the proposed invalid PoRep is actually a fishing PoRep, for which a confirmation vote would result in the validators stake being slashed.
In this case, the proportion of time a colluding pair will be successful has an upper limit determined by the % of stake of the network claimed by the colluding validator. This also sets bounds to the value of such an attack. For example, if a colluding validator controls 10% of the total validator stake, transaction fees will be lost \(likely sent to mining pool\) by the colluding archiver 90% of the time and so the attack vector is only profitable if the per-PoRep reward at least 90% higher than the average PoRep transaction fee. While, probabilistically, some colluding archiver-client PoReps will find their way to colluding validation-clients, the network can also monitor rates of paired \(validator + archiver\) discrepancies in voting patterns and censor identified colluders in these cases.

View File

@ -1,14 +0,0 @@
# Economic Sustainability
**Subject to change.**
Long term economic sustainability is one of the guiding principles of Solanas economic design. While it is impossible to predict how decentralized economies will develop over time, especially economies with flexible decentralized governances, we can arrange economic components such that, under certain conditions, a sustainable economy may take shape in the long term. In the case of Solanas network, these components take the form of token issuance \(via inflation\) and token burning.
The dominant remittances from the Solana mining pool are validator and archiver rewards. The disinflationary mechanism is a flat, protocol-specified and adjusted, % of each transaction fee.
The Archiver rewards are to be delivered to archivers as a portion of the network inflation after successful PoRep validation. The per-PoRep reward amount is determined as a function of the total network storage redundancy at the time of the PoRep validation and the network goal redundancy. This function is likely to take the form of a discount from a base reward to be delivered when the network has achieved and maintained its goal redundancy. An example of such a reward function is shown in **Figure 3**
**Figure 3**: Example PoRep reward design as a function of global network storage redundancy.
In the example shown in Figure 1, multiple per PoRep base rewards are explored \(as a % of Tx Fee\) to be delivered when the global ledger replication redundancy meets 10X. When the global ledger replication redundancy is less than 10X, the base reward is discounted as a function of the square of the ratio of the actual ledger replication redundancy to the goal redundancy \(i.e. 10X\).

View File

@ -1,16 +0,0 @@
# Economic Design MVP
**Subject to change.**
The preceeding sections, outlined in the [Economic Design Overview](./), describe a long-term vision of a sustainable Solana economy. Of course, we don't expect the final implementation to perfectly match what has been described above. We intend to fully engage with network stakeholders throughout the implementation phases \(i.e. pre-testnet, testnet, mainnet\) to ensure the system supports, and is representative of, the various network participants' interests. The first step toward this goal, however, is outlining a some desired MVP economic features to be available for early pre-testnet and testnet participants. Below is a rough sketch outlining basic economic functionality from which a more complete and functional system can be developed.
## MVP Economic Features
* Faucet to deliver testnet SOLs to validators for staking and application development.
* Mechanism by which validators are rewarded via network inflation.
* Ability to delegate tokens to validator nodes
* Validator set commission fees on interest from delegated tokens.
* Archivers to receive fixed, arbitrary reward for submitting validated PoReps. Reward size mechanism \(i.e. PoRep reward as a function of total ledger redundancy\) to come later.
* Pooling of archiver PoRep transaction fees and weighted distribution to validators based on PoRep verification \(see [Replication-validation Transaction Fees](ed_validation_client_economics/ed_vce_replication_validation_transaction_fees.md). It will be useful to test this protection against attacks on testnet.
* Nice-to-have: auto-delegation of archiver rewards to validator.

View File

@ -1,6 +0,0 @@
# Replication-client Economics
**Subject to change.**
Replication-clients should be rewarded for providing the network with storage space. Incentivization of the set of archivers provides data security through redundancy of the historical ledger. Replication nodes are rewarded in proportion to the amount of ledger data storage provided, as proved by successfully submitting Proofs-of-Replication to the cluster.. These rewards are captured by generating and entering Proofs of Replication \(PoReps\) into the PoH stream which can be validated by Validation nodes as described above in the [Replication-validation Transaction Fees](../ed_validation_client_economics/ed_vce_replication_validation_transaction_fees.md) chapter.

View File

@ -1,8 +0,0 @@
# Replication-client Reward Auto-delegation
**Subject to change.**
The ability for Solana network participants to earn rewards by providing storage service is a unique on-boarding path that requires little hardware overhead and minimal upfront capital. It offers an avenue for individuals with extra-storage space on their home laptops or PCs to contribute to the security of the network and become integrated into the Solana economy.
To enhance this on-boarding ramp and facilitate further participation and investment in the Solana economy, replication-clients have the opportunity to auto-delegate their rewards to validation-clients of their choice. Much like the automatic reinvestment of stock dividends, in this scenario, an archiver-client can earn Solana tokens by providing some storage capacity to the network \(i.e. via submitting valid PoReps\), have the protocol-based rewards automatically assigned as delegation to a staked validator node of the archiver's choice and earn interest, less a fee, from the validation-client's network participation.

View File

@ -1,8 +0,0 @@
# Storage-replication Rewards
**Subject to change.**
Archiver-clients download, encrypt and submit PoReps for ledger block sections.3 PoReps submitted to the PoH stream, and subsequently validated, function as evidence that the submitting archiver client is indeed storing the assigned ledger block sections on local hard drive space as a service to the network. Therefore, archiver clients should earn protocol rewards proportional to the amount of storage, and the number of successfully validated PoReps, that they are verifiably providing to the network.
Additionally, archiver clients have the opportunity to capture a portion of slashed bounties \[TBD\] of dishonest validator clients. This can be accomplished by an archiver client submitting a verifiably false PoRep for which a dishonest validator client receives and signs as a valid PoRep. This reward incentive is to prevent lazy validators and minimize validator-archiver collusion attacks, more on this below.

View File

@ -1,18 +0,0 @@
## Storage Rent Economics
Each transaction that is submitted to the Solana ledger imposes costs. Transaction fees paid by the submitter, and collected by a validator, in theory, account for the acute, transacitonal, costs of validating and adding that data to the ledger. At the same time, our compensation design for archivers (see [Replication-client Economics](ed_replication_client_economics.md)), in theory, accounts for the long term storage of the historical ledger. Unaccounted in this process is the mid-term storage of active ledger state, necessarily maintined by the rotating validator set. This type of storage imposes costs not only to validators but also to the broader network as active state grows so does data transmission and validation overhead. To account for these costs, we describe here our preliminary design and implementation of storage rent.
Storage rent can be paid via one of two methods:
Method 1: Set it and forget it
With this approach, accounts with two-years worth of rent deposits secured are exempt from network rent charges. By maintaining this minimum-balance, the broader network benefits from reduced liquitity and the account holder can trust that their `Account::data` will be retained for continual access/usage.
Method 2: Pay per byte
If an account has less than two-years worth of deposited rent the network charges rent on a per-epoch basis, in credit for the next epoch (but in arrears when necessary). This rent is deducted at a rate specified in genesis, in lamports per kilobyte-year.
For information on the technical implementation details of this design, see the [Rent](rent.md) section.

View File

@ -1,8 +0,0 @@
# Validation-client Economics
**Subject to change.**
Validator-clients are eligible to receive protocol-based \(i.e. inflation-based\) rewards issued via stake-based annual interest rates \(calculated per epoch\) by providing compute \(CPU+GPU\) resources to validate and vote on a given PoH state. These protocol-based rewards are determined through an algorithmic disinflationary schedule as a function of total amount of circulating tokens. The network is expected to launch with an annual inflation rate around 15%, set to decrease by 15% per year until a long-term stable rate of 1-2% is reached. These issuances are to be split and distributed to participating validators and archivers, with around 90% of the issued tokens allocated for validator rewards. Because the network will be distributing a fixed amount of inflation rewards across the stake-weighted valdiator set, any individual validator's interest rate will be a function of the amount of staked SOL in relation to the circulating SOL.
Additionally, validator clients may earn revenue through fees via state-validation transactions and Proof-of-Replication \(PoRep\) transactions. For clarity, we separately describe the design and motivation of these revenue distriubutions for validation-clients below: state-validation protocol-based rewards, state-validation transaction fees and rent, and PoRep-validation transaction fees.

View File

@ -1,11 +0,0 @@
# Replication-validation Transaction Fees
**Subject to change.**
As previously mentioned, validator-clients will also be responsible for validating PoReps submitted into the PoH stream by archiver-clients. In this case, validators are providing compute \(CPU/GPU\) and light storage resources to confirm that these replication proofs could only be generated by a client that is storing the referenced PoH leger block.
While replication-clients are incentivized and rewarded through protocol-based rewards schedule \(see [Replication-client Economics](../ed_replication_client_economics/)\), validator-clients will be incentivized to include and validate PoReps in PoH through collection of transaction fees associated with the submitted PoReps and distribution of protocol rewards proportional to the validated PoReps. As will be described in detail in the Section 3.1, replication-client rewards are protocol-based and designed to reward based on a global data redundancy factor. I.e. the protocol will incentivize replication-client participation through rewards based on a target ledger redundancy \(e.g. 10x data redundancy\).
The validation of PoReps by validation-clients is computationally more expensive than state-validation \(detail in the [Economic Sustainability](../ed_economic_sustainability.md) chapter\), thus the transaction fees are expected to be proportionally higher.
There are various attack vectors available for colluding validation and replication clients, also described in detail below in [Economic Sustainability](../ed_economic_sustainability/README.md). To protect against various collusion attack vectors, for a given epoch, validator rewards are distributed across participating validation-clients in proportion to the number of validated PoReps in the epoch less the number of PoReps that mismatch the archivers challenge. The PoRep challenge game is described in [Ledger Replication](https://github.com/solana-labs/solana/blob/master/book/src/ledger-replication.md#the-porep-game). This design rewards validators proportional to the number of PoReps they process and validate, while providing negative pressure for validation-clients to submit lazy or malicious invalid votes on submitted PoReps \(note that it is computationally prohibitive to determine whether a validator-client has marked a valid PoRep as invalid\).

View File

@ -1,30 +0,0 @@
# State-validation Protocol-based Rewards
**Subject to change.**
Validator-clients have two functional roles in the Solana network:
* Validate \(vote\) the current global state of that PoH along with any Proofs-of-Replication \(see [Replication Client Economics](../ed_replication_client_economics/)\) that they are eligible to validate.
* Be elected as leader on a stake-weighted round-robin schedule during which time they are responsible for collecting outstanding transactions and Proofs-of-Replication and incorporating them into the PoH, thus updating the global state of the network and providing chain continuity.
Validator-client rewards for these services are to be distributed at the end of each Solana epoch. As previously discussed, compensation for validator-clients is provided via a protocol-based annual inflation rate dispersed in proportion to the stake-weight of each validator \(see below\) along with leader-claimed transaction fees available during each leader rotation. I.e. during the time a given validator-client is elected as leader, it has the opportunity to keep a portion of each transaction fee, less a protocol-specified amount that is destroyed \(see [Validation-client State Transaction Fees](ed_vce_state_validation_transaction_fees.md)\). PoRep transaction fees are also collected by the leader client and validator PoRep rewards are distributed in proportion to the number of validated PoReps less the number of PoReps that mismatch an archiver's challenge. \(see [Replication-client Transaction Fees](ed_vce_replication_validation_transaction_fees.md)\)
The effective protocol-based annual interest rate \(%\) per epoch received by validation-clients is to be a function of:
* the current global inflation rate, derived from the pre-determined dis-inflationary issuance schedule \(see [Validation-client Economics](.)\)
* the fraction of staked SOLs out of the current total circulating supply,
* the up-time/participation \[% of available slots that validator had opportunity to vote on\] of a given validator over the previous epoch.
The first factor is a function of protocol parameters only \(i.e. independent of validator behavior in a given epoch\) and results in a global validation reward schedule designed to incentivize early participation, provide clear montetary stability and provide optimal security in the network.
At any given point in time, a specific validator's interest rate can be determined based on the porportion of circulating supply that is staked by the network and the validator's uptime/activity in the previous epoch. For example, consider a hypothetical instance of the network with an initial circulating token supply of 250MM tokens with an additional 250MM vesting over 3 years. Additionally an inflation rate is specified at network launch of 7.5%, and a disinflationary schedule of 20% decrease in inflation rate per year \(the actual rates to be implemented are to be worked out during the testnet experimentation phase of mainnet launch\). With these broad assumptions, the 10-year inflation rate \(adjusted daily for this example\) is shown in **Figure 2**, while the total circulating token supply is illustrated in **Figure 3**. Neglected in this toy-model is the inflation supression due to the portion of each transaction fee that is to be destroyed.
![drawing](../../../.gitbook/assets/p_ex_schedule.png) \*\*Figure 2:\*\* In this example schedule, the annual inflation rate \[%\] reduces at around 20% per year, until it reaches the long-term, fixed, 1.5% rate.
![drawing](../../../.gitbook/assets/p_ex_supply.png) \*\*Figure 3:\*\* The total token supply over a 10-year period, based on an initial 250MM tokens with the disinflationary inflation schedule as shown in \*\*Figure 2\*\* Over time, the interest rate, at a fixed network staked percentage, will reduce concordant with network inflation. Validation-client interest rates are designed to be higher in the early days of the network to incentivize participation and jumpstart the network economy. As previously mentioned, the inflation rate is expected to stabalize near 1-2% which also results in a fixed, long-term, interest rate to be provided to validator-clients. This value does not represent the total interest available to validator-clients as transaction fees for state-validation and ledger storage replication \(PoReps\) are not accounted for here. Given these example parameters, annualized validator-specific interest rates can be determined based on the global fraction of tokens bonded as stake, as well as their uptime/activity in the previous epoch. For the purpose of this example, we assume 100% uptime for all validators and a split in interest-based rewards between validators and archiver nodes of 80%/20%. Additionally, the fraction of staked circulating supply is assummed to be constant. Based on these assumptions, an annualized validation-client interest rate schedule as a function of % circulating token supply that is staked is shown in\*\* Figure 4\*\*.
![drawing](../../../.gitbook/assets/p_ex_interest.png)
**Figure 4:** Shown here are example validator interest rates over time, neglecting transaction fees, segmented by fraction of total circulating supply bonded as stake.
This epoch-specific protocol-defined interest rate sets an upper limit of _protocol-generated_ annual interest rate \(not absolute total interest rate\) possible to be delivered to any validator-client per epoch. The distributed interest rate per epoch is then discounted from this value based on the participation of the validator-client during the previous epoch.

View File

@ -1,32 +0,0 @@
# Validation Stake Delegation
**Subject to change.**
Running a Solana validation-client required relatively modest upfront hardware capital investment. **Table 2** provides an example hardware configuration to support ~1M tx/s with estimated off-the-shelf costs:
| Component | Example | Estimated Cost |
| :--- | :--- | :--- |
| GPU | 2x 2080 Ti | $2500 |
| or | 4x 1080 Ti | $2800 |
| OS/Ledger Storage | Samsung 860 Evo 2TB | $370 |
| Accounts storage | 2x Samsung 970 Pro M.2 512GB | $340 |
| RAM | 32 Gb | $300 |
| Motherboard | AMD x399 | $400 |
| CPU | AMD Threadripper 2920x | $650 |
| Case | | $100 |
| Power supply | EVGA 1600W | $300 |
| Network | &gt; 500 mbps | |
| Network \(1\) | Google webpass business bay area 1gbps unlimited | $5500/mo |
| Network \(2\) | Hurricane Electric bay area colo 1gbps | $500/mo |
**Table 2** example high-end hardware setup for running a Solana client.
Despite the low-barrier to entry as a validation-client, from a capital investment perspective, as in any developing economy, there will be much opportunity and need for trusted validation services as evidenced by node reliability, UX/UI, APIs and other software accessibility tools. Additionally, although Solanas validator node startup costs are nominal when compared to similar networks, they may still be somewhat restrictive for some potential participants. In the spirit of developing a true decentralized, permissionless network, these interested parties still have two options to become involved in the Solana network/economy:
1. Delegation of previously acquired tokens with a reliable validation node to earn a portion of interest generated
2. Provide local storage space as a replication-client and receive rewards by submitting Proof-of-Replication \(see [Replication-client Economics](../ed_replication_client_economics/)\).
a. This participant has the additional option to directly delegate their earned storage rewards \([Replication-client Reward Auto-delegation](../ed_replication_client_economics/ed_rce_replication_client_reward_auto_delegation.md)\)
Delegation of tokens to validation-clients, via option 1, provides a way for passive Solana token holders to become part of the active Solana economy and earn interest rates proportional to the interest rate generated by the delegated validation-client. Additionally, this feature intends to create a healthy validation-client market, with potential validation-client nodes competing to build reliable, transparent and profitable delegation services.

View File

@ -1,52 +0,0 @@
# Rent
Accounts on Solana may have owner-controlled state \(`Account::data`\) that's separate from the account's balance \(`Account::lamports`\). Since validators on the network need to maintain a working copy of this state in memory, the network charges a time-and-space based fee for this resource consumption, also known as Rent.
## Two-tiered rent regime
Accounts which maintain a minimum balance equivalent to 2 years of rent payments are exempt. Accounts whose balance falls below this threshold are charged rent at a rate specified in genesis, in lamports per kilobyte-year. The network charges rent on a per-epoch basis, in credit for the next epoch \(but in arrears when necessary\), and `Account::rent_epoch` keeps track of the next time rent should be collected from the account.
## Collecting rent
Rent is due at account creation time for one epoch's worth of time, and the new account has `Account::rent_epoch` of `current_epoch + 1`. After that, the bank deducts rent from accounts during normal transaction processing as part of the load phase.
If the account is in the exempt regime, `Account::rent_epoch` is simply pushed to `current_epoch + 1`.
If the account is non-exempt, the difference between the next epoch and `Account::rent_epoch` is used to calculate the amount of rent owed by this account \(via `Rent::due()`\). Any fractional lamports of the calculation are truncated. Rent due is deducted from `Account::lamports` and `Account::rent_epoch` is updated to the next epoch. If the amount of rent due is less than one lamport, no changes are made to the account.
Accounts whose balance is insufficient to satisfy the rent that would be due simply fail to load.
A percentage of the rent collected is destroyed. The rest is distributed to validator accounts by stake weight, a la transaction fees, at the end of every slot.
## Read-only accounts
Read-only accounts are not being charged rent in current implementation.
## Design considerations, others considered
Under this design, it is possible to have accounts that linger, never get touched, and never have to pay rent. `Noop` instructions that name these accounts can be used to "garbage collect", but it'd also be possible for accounts that never get touched to migrate out of a validator's working set, thereby reducing memory consumption and obviating the need to charge rent.
### Ad-hoc collection
Collecting rent on an as-needed basis \(i.e. whenever accounts were loaded/accessed\) was considered. The issues with such an approach are:
* accounts loaded as "credit only" for a transaction could very reasonably be expected to have rent due,
but would not be writable during any such transaction
* a mechanism to "beat the bushes" \(i.e. go find accounts that need to pay rent\) is desirable,
lest accounts that are loaded infrequently get a free ride
### System instruction for collecting rent
Collecting rent via a system instruction was considered, as it would naturally have distributed rent to active and stake-weighted nodes and could have been done incrementally. However:
* it would have adversely affected network throughput
* it would require special-casing by the runtime, as accounts with non-SystemProgram owners may be debited by this instruction
* someone would have to issue the transactions
### Account scans on every epoch
Scanning the entire Bank for accounts that owe rent at the beginning of each epoch was considered. This would have been an expensive operation, and would require that the entire current state of the network be present on every validator at the beginning of each epoch.

View File

@ -1,49 +0,0 @@
# Repair Service
## Repair Service
The RepairService is in charge of retrieving missing shreds that failed to be delivered by primary communication protocols like Avalanche. It is in charge of managing the protocols described below in the `Repair Protocols` section below.
## Challenges:
1\) Validators can fail to receive particular shreds due to network failures
2\) Consider a scenario where blockstore contains the set of slots {1, 3, 5}. Then Blockstore receives shreds for some slot 7, where for each of the shreds b, b.parent == 6, so then the parent-child relation 6 -&gt; 7 is stored in blockstore. However, there is no way to chain these slots to any of the existing banks in Blockstore, and thus the `Shred Repair` protocol will not repair these slots. If these slots happen to be part of the main chain, this will halt replay progress on this node.
3\) Validators that find themselves behind the cluster by an entire epoch struggle/fail to catch up because they do not have a leader schedule for future epochs. If nodes were to blindly accept repair shreds in these future epochs, this exposes nodes to spam.
## Repair Protocols
The repair protocol makes best attempts to progress the forking structure of Blockstore.
The different protocol strategies to address the above challenges:
1. Shred Repair \(Addresses Challenge \#1\): This is the most basic repair protocol, with the purpose of detecting and filling "holes" in the ledger. Blockstore tracks the latest root slot. RepairService will then periodically iterate every fork in blockstore starting from the root slot, sending repair requests to validators for any missing shreds. It will send at most some `N` repair reqeusts per iteration.
Note: Validators will only accept shreds within the current verifiable epoch \(epoch the validator has a leader schedule for\).
2. Preemptive Slot Repair \(Addresses Challenge \#2\): The goal of this protocol is to discover the chaining relationship of "orphan" slots that do not currently chain to any known fork.
* Blockstore will track the set of "orphan" slots in a separate column family.
* RepairService will periodically make `RequestOrphan` requests for each of the orphans in blockstore.
`RequestOrphan(orphan)` request - `orphan` is the orphan slot that the requestor wants to know the parents of `RequestOrphan(orphan)` response - The highest shreds for each of the first `N` parents of the requested `orphan`
On receiving the responses `p`, where `p` is some shred in a parent slot, validators will:
* Insert an empty `SlotMeta` in blockstore for `p.slot` if it doesn't already exist.
* If `p.slot` does exist, update the parent of `p` based on `parents`
Note: that once these empty slots are added to blockstore, the `Shred Repair` protocol should attempt to fill those slots.
Note: Validators will only accept responses containing shreds within the current verifiable epoch \(epoch the validator has a leader schedule for\).
3. Repairmen \(Addresses Challenge \#3\): This part of the repair protocol is the primary mechanism by which new nodes joining the cluster catch up after loading a snapshot. This protocol works in a "forward" fashion, so validators can verify every shred that they receive against a known leader schedule.
Each validator advertises in gossip:
* Current root
* The set of all completed slots in the confirmed epochs \(an epoch that was calculated based on a bank &lt;= current root\) past the current root
Observers of this gossip message with higher epochs \(repairmen\) send shreds to catch the lagging node up with the rest of the cluster. The repairmen are responsible for sending the slots within the epochs that are confrimed by the advertised `root` in gossip. The repairmen divide the responsibility of sending each of the missing slots in these epochs based on a random seed \(simple shred.index iteration by N, seeded with the repairman's node\_pubkey\). Ideally, each repairman in an N node cluster \(N nodes whose epochs are higher than that of the repairee\) sends 1/N of the missing shreds. Both data and coding shreds for missing slots are sent. Repairmen do not send shreds again to the same validator until they see the message in gossip updated, at which point they perform another iteration of this protocol.
Gossip messages are updated every time a validator receives a complete slot within the epoch. Completed slots are detected by blockstore and sent over a channel to RepairService. It is important to note that we know that by the time a slot X is complete, the epoch schedule must exist for the epoch that contains slot X because WindowService will reject shreds for unconfirmed epochs. When a newly completed slot is detected, we also update the current root if it has changed since the last update. The root is made available to RepairService through Blockstore, which holds the latest root.

View File

@ -1,37 +0,0 @@
# Introduction
## What is Solana?
Solana is an open source project implementing a new, high-performance, permissionless blockchain. Solana is also the name of a company headquartered in San Francisco that maintains the open source project.
## About this Book
This book describes the Solana open source project, a blockchain built from the ground up for scale. The book covers why Solana is useful, how to use it, how it works, and why it will continue to work long after the company Solana closes its doors. The goal of the Solana architecture is to demonstrate there exists a set of software algorithms that when used in combination to implement a blockchain, removes software as a performance bottleneck, allowing transaction throughput to scale proportionally with network bandwidth. The architecture goes on to satisfy all three desirable properties of a proper blockchain: it is scalable, secure and decentralized.
The architecture describes a theoretical upper bound of 710 thousand transactions per second \(tps\) on a standard gigabit network and 28.4 million tps on 40 gigabit. Furthermore, the architecture supports safe, concurrent execution of programs authored in general purpose programming languages such as C or Rust.
## Disclaimer
All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the author's best effort. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore, nothing in this project constitutes a solicitation for investment.
## History of the Solana Codebase
In November of 2017, Anatoly Yakovenko published a whitepaper describing Proof of History, a technique for keeping time between computers that do not trust one another. From Anatoly's previous experience designing distributed systems at Qualcomm, Mesosphere and Dropbox, he knew that a reliable clock makes network synchronization very simple. When synchronization is simple the resulting network can be blazing fast, bound only by network bandwidth.
Anatoly watched as blockchain systems without clocks, such as Bitcoin and Ethereum, struggled to scale beyond 15 transactions per second worldwide when centralized payment systems such as Visa required peaks of 65,000 tps. Without a clock, it was clear they'd never graduate to being the global payment system or global supercomputer most had dreamed them to be. When Anatoly solved the problem of getting computers that dont trust each other to agree on time, he knew he had the key to bring 40 years of distributed systems research to the world of blockchain. The resulting cluster wouldn't be just 10 times faster, or a 100 times, or a 1,000 times, but 10,000 times faster, right out of the gate!
Anatoly's implementation began in a private codebase and was implemented in the C programming language. Greg Fitzgerald, who had previously worked with Anatoly at semiconductor giant Qualcomm Incorporated, encouraged him to reimplement the project in the Rust programming language. Greg had worked on the LLVM compiler infrastructure, which underlies both the Clang C/C++ compiler as well as the Rust compiler. Greg claimed that the language's safety guarantees would improve software productivity and that its lack of a garbage collector would allow programs to perform as well as those written in C. Anatoly gave it a shot and just two weeks later, had migrated his entire codebase to Rust. Sold. With plans to weave all the world's transactions together on a single, scalable blockchain, Anatoly called the project Loom.
On February 13th of 2018, Greg began prototyping the first open source implementation of Anatoly's whitepaper. The project was published to GitHub under the name Silk in the loomprotocol organization. On February 28th, Greg made his first release, demonstrating 10 thousand signed transactions could be verified and processed in just over half a second. Shortly after, another former Qualcomm cohort, Stephen Akridge, demonstrated throughput could be massively improved by offloading signature verification to graphics processors. Anatoly recruited Greg, Stephen and three others to co-found a company, then called Loom.
Around the same time, Ethereum-based project Loom Network sprung up and many people were confused about whether they were the same project. The Loom team decided it would rebrand. They chose the name Solana, a nod to a small beach town North of San Diego called Solana Beach, where Anatoly, Greg and Stephen lived and surfed for three years when they worked for Qualcomm. On March 28th, the team created the Solana Labs GitHub organization and renamed Greg's prototype Silk to Solana.
In June of 2018, the team scaled up the technology to run on cloud-based networks and on July 19th, published a 50-node, permissioned, public testnet consistently supporting bursts of 250,000 transactions per second. In a later release in December, called v0.10 Pillbox, the team published a permissioned testnet running 150 nodes on a gigabit network and demonstrated soak tests processing an _average_ of 200 thousand transactions per second with bursts over 500 thousand. The project was also extended to support on-chain programs written in the C programming language and run concurrently in a safe execution environment called BPF.
## What is a Solana Cluster?
A cluster is a set of computers that work together and can be viewed from the outside as a single system. A Solana cluster is a set of independently owned computers working together \(and sometimes against each other\) to verify the output of untrusted, user-submitted programs. A Solana cluster can be utilized any time a user wants to preserve an immutable record of events in time or programmatic interpretations of those events. One use is to track which of the computers did meaningful work to keep the cluster running. Another use might be to track the possession of real-world assets. In each case, the cluster produces a record of events called the ledger. It will be preserved for the lifetime of the cluster. As long as someone somewhere in the world maintains a copy of the ledger, the output of its programs \(which may contain a record of who possesses what\) will forever be reproducible, independent of the organization that launched it.
## What are SOLs?
A SOL is the name of Solana's native token, which can be passed to nodes in a Solana cluster in exchange for running an on-chain program or validating its output. The system may perform micropayments of fractional SOLs, which are called _lamports_. They are named in honor of Solana's biggest technical influence, [Leslie Lamport](https://en.wikipedia.org/wiki/Leslie_Lamport). A lamport has a value of 0.000000001 SOL.

View File

@ -1,85 +0,0 @@
# Offline Transaction Signing
Some security models require keeping signing keys, and thus the signing
process, separated from transaction creation and network broadcast. Examples
include:
* Collecting signatures from geographically disparate signers in a
[multi-signature scheme](../api-reference/cli.md#multiple-witnesses)
* Signing transactions using an [airgapped](https://en.wikipedia.org/wiki/Air_gap_(networking))
signing device
This document describes using Solana's CLI to separately sign and submit a
transaction.
## Commands Supporting Offline Signing
At present, the following commands support offline signing:
* [`delegate-stake`](../api-reference/cli.md#solana-delegate-stake)
* [`deactivate-stake`](../api-reference/cli.md#solana-deactivate-stake)
* [`pay`](../api-reference/cli.md#solana-pay)
## Signing Transactions Offline
To sign a transaction offline, pass the following arguments on the command line
1) `--sign-only`, prevents the client from submitting the signed transaction
to the network. Instead, the pubkey/signature pairs are printed to stdout.
2) `--blockhash BASE58_HASH`, allows the caller to specify the value used to
fill the transaction's `recent_blockhash` field. This serves a number of
purposes, namely:
* Eliminates the need to connect to the network and query a recent blockhash
via RPC
* Enables the signers to coordinate the blockhash in a multiple-signature
scheme
### Example: Offline Signing a Payment
Command
```bash
solana@offline$ solana pay --sign-only --blockhash 5Tx8F3jgSHx21CbtjwmdaKPLM5tWmreWAnPrbqHomSJF \
recipient-keypair.json 1 SOL
```
Output
```text
Blockhash: 5Tx8F3jgSHx21CbtjwmdaKPLM5tWmreWAnPrbqHomSJF
Signers (Pubkey=Signature):
FhtzLVsmcV7S5XqGD79ErgoseCLhZYmEZnz9kQg1Rp7j=4vC38p4bz7XyiXrk6HtaooUqwxTWKocf45cstASGtmrD398biNJnmTcUCVEojE7wVQvgdYbjHJqRFZPpzfCQpmUN
{"blockhash":"5Tx8F3jgSHx21CbtjwmdaKPLM5tWmreWAnPrbqHomSJF","signers":["FhtzLVsmcV7S5XqGD79ErgoseCLhZYmEZnz9kQg1Rp7j=4vC38p4bz7XyiXrk6HtaooUqwxTWKocf45cstASGtmrD398biNJnmTcUCVEojE7wVQvgdYbjHJqRFZPpzfCQpmUN"]}'
```
## Submitting Offline Signed Transactions to the Network
To submit a transaction that has been signed offline to the network, pass the
following arguments on the command line
1) `--blockhash BASE58_HASH`, must be the same blockhash as was used to sign
2) `--signer BASE58_PUBKEY=BASE58_SIGNATURE`, one for each offline signer. This
includes the pubkey/signature pairs directly in the transaction rather than
signing it with any local keypair(s)
### Example: Submitting an Offline Signed Payment
Command
```bash
solana@online$ solana pay --blockhash 5Tx8F3jgSHx21CbtjwmdaKPLM5tWmreWAnPrbqHomSJF \
--signer FhtzLVsmcV7S5XqGD79ErgoseCLhZYmEZnz9kQg1Rp7j=4vC38p4bz7XyiXrk6HtaooUqwxTWKocf45cstASGtmrD398biNJnmTcUCVEojE7wVQvgdYbjHJqRFZPpzfCQpmUN
recipient-keypair.json 1 SOL
```
Output
```text
4vC38p4bz7XyiXrk6HtaooUqwxTWKocf45cstASGtmrD398biNJnmTcUCVEojE7wVQvgdYbjHJqRFZPpzfCQpmUN
```
## Buying More Time to Sign
Typically a Solana transaction must be signed and accepted by the network within
a number of slots from the blockhash in its `recent_blockhash` field (~2min at
the time of this writing). If your signing procedure takes longer than this, a
[Durable Transaction Nonce](durable-nonce.md) can give you the extra time you
need.

View File

@ -1,22 +0,0 @@
# Paper Wallet
This document describes how to create and use a paper wallet with the Solana CLI
tools.
{% hint style="info" %}
We do not intend to advise on how to *securely* create or manage paper wallets.
Please research the security concerns carefully.
{% endhint %}
## Overview
Solana provides a key generation tool to derive keys from BIP39 compliant seed
phrases. Solana CLI commands for running a validator and staking tokens all
support keypair input via seed phrases.
To learn more about the BIP39 standard, visit the Bitcoin BIPs Github repository
[here](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki).
{% page-ref page="installation.md" %}
{% page-ref page="usage.md" %}

View File

@ -1,51 +0,0 @@
# Installation Guide
Follow this guide to setup Solana's key generation tool called `solana-keygen`
{% hint style="warn" %}
After installation, ensure your version is `0.21.1` or higher by running `solana-keygen -V`
{% endhint %}
## Download
First, download the latest release tarball from GitHub.
1. Setup download url
```bash
solana_downloads=https://github.com/solana-labs/solana/releases/latest/download
```
2. Specify the download file based on your machine
**MacOS**
```bash
solana_release=solana-release-x86_64-apple-darwin.tar.bz2
```
**Linux**
```bash
solana_release=solana-release-x86_64-unknown-linux-gnu.tar.bz2
```
3. Download
```bash
curl -L -sSf -o solana-release.tar.bz2 $solana_downloads/$solana_release
```
## Extract
Next, extract the tarball
```bash
tar xf solana-release.tar.bz2
```
## Add to "PATH"
Now add the tool to your PATH environment variable with the following command
```bash
export PATH="$(pwd)/solana-release/bin:${PATH}"
```
## Check
Finally, check that `solana-keygen` can be run by running
```bash
solana-keygen -V
```

View File

@ -1,191 +0,0 @@
# Paper Wallet Usage
Solana commands can be run without ever saving a keypair to disk on a machine.
If avoiding writing a private key to disk is a security concern of yours, you've
come to the right place.
{% hint style="warning" %}
Even using this secure input method, it's still possible that a private key gets
written to disk by unencrypted memory swaps. It is the user's responsibility to
protect against this scenario.
{% endhint %}
## Creating a Paper Wallet
Using the `solana-keygen` tool, it is possible to generate new seed phrases as
well as derive a keypair from an existing seed phrase and (optional) passphrase.
The seed phrase and passphrase can be used together as a paper wallet. As long
as you keep your seed phrase and passphrase stored safely, you can use them to
access your account.
{% hint style="info" %}
For more information about how seed phrases work, review this
[Bitcoin Wiki page](https://en.bitcoin.it/wiki/Seed_phrase).
{% endhint %}
### Seed Phrase Generation
Generating a new keypair can be done using the `solana-keygen new` command. The
command will generate a random seed phrase, ask you to enter an optional
passphrase, and then will display the derived public key and the generated seed
phrase for your paper wallet.
```bash
solana-keygen new --no-outfile
```
{% hint style="warning" %}
If the `--no-outfile` flag is **omitted**, the default behavior is to write the
keypair to `~/.config/solana/id.json`
{% endhint %}
{% hint style="info" %}
For added security, increase the seed phrase word count using the `--word-count`
argument
{% endhint %}
For full usage details run:
```bash
solana-keygen new --help
```
### Public Key Derivation
Public keys can be derived from a seed phrase and a passphrase if you choose to
use one. This is useful for using an offline-generated seed phrase to
derive a valid public key. The `solana-keygen pubkey` command will walk you
through entering your seed phrase and a passphrase if you chose to use one.
```bash
solana-keygen pubkey ASK
```
{% hint style="info" %}
Note that you could potentially use different passphrases for the same seed
phrase. Each unique passphrase will yield a different keypair.
{% endhint %}
The `solana-keygen` tool uses the same BIP39 standard English word list as it
does to generate seed phrases. If your seed phrase was generated with another
tool that uses a different word list, you can still use `solana-keygen`, but
will need to pass the `--skip-seed-phrase-validation` argument and forego this
validation.
```bash
solana-keygen pubkey ASK --skip-seed-phrase-validation
```
{% hint style="info" %}
Copy the derived public key to a USB stick for easy usage on networked computers
{% endhint %}
{% hint style="info" %}
A common next step is to [check the balance](#checking-account-balance) of the
account associated with a public key
{% endhint %}
For full usage details run:
```bash
solana-keygen pubkey --help
```
## Checking Account Balance
All that is needed to check an account balance is the public key of an account.
To retrieve public keys securely from a paper wallet, follow the
[Public Key Derivation](#public-key-derivation) instructions on an
[air gapped computer](https://en.wikipedia.org/wiki/Air_gap_\(networking\)).
Public keys can then be typed manually or transferred via a USB stick to a
networked machine.
Next, configure the `solana` CLI tool to connect to a particular cluster:
```bash
solana config set --url <CLUSTER URL> # (i.e. http://testnet.solana.com:8899)
```
Finally, to check the balance, run the following command:
```bash
solana balance <PUBKEY>
```
In order to check a list of public keys quickly, append public keys to a file,
one per line, like so:
`public_keys.txt`
```bash
7hTw3XhprjT2DkVxVixtig9eZwHTZ2rksTSYN7Jh5niZ
9ufAiSyboCZmmEsoStgLYQfnx9KfqP1ZtDK8Wr1j8SJV
# ...
```
And run the following command:
```bash
while read PUBLIC_KEY;
do echo "$PUBLIC_KEY: $(solana balance "$PUBLIC_KEY" | tail -n1)";
done < public_keys.txt
```
## Running a Validator
In order to run a validator, you will need to specify an "identity keypair"
which will be used to fund all of the vote transactions signed by your validator.
Rather than specifying a path with `--identity-keypair <PATH>` you can use the
`--ask-seed-phrase` option.
```bash
solana-validator --ask-seed-phrase identity-keypair --ledger ...
[identity-keypair] seed phrase: 🔒
[identity-keypair] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
```
The `--ask-seed-phrase` option accepts multiple keypairs. If you wish to use this
input method for your voting keypair as well you can do the following:
```bash
solana-validator --ask-seed-phrase identity-keypair voting-keypair --ledger ...
[identity-keypair] seed phrase: 🔒
[identity-keypair] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
[voting-keypair] seed phrase: 🔒
[voting-keypair] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
```
Refer to the following page for a comprehensive guide on running a validator:
{% page-ref page="../running-validator/README.md" %}
## Delegating Stake
Solana CLI tooling supports secure keypair input for stake delegation. To do so,
first create a stake account with some SOL. Use the special `ASK` keyword to
trigger a seed phrase input prompt for the stake account and use
`--ask-seed-phrase keypair` to securely input the funding keypair.
```bash
solana create-stake-account ASK 1 SOL --ask-seed-phrase keypair
[stake_account] seed phrase: 🔒
[stake_account] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
[keypair] seed phrase: 🔒
[keypair] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
```
Then, to delegate that stake to a validator, use `--ask-seed-phrase keypair` to
securely input the funding keypair.
```bash
solana delegate-stake --ask-seed-phrase keypair <STAKE_ACCOUNT_PUBKEY> <VOTE_ACCOUNT_PUBKEY>
[keypair] seed phrase: 🔒
[keypair] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue:
```
Refer to the following page for a comprehensive guide on delegating stake:
{% page-ref page="../running-validator/validator-stake.md" %}
---
{% page-ref page="../api-reference/cli.md" %}

View File

@ -1,4 +0,0 @@
# Accepted Design Proposals
The following architectural proposals have been accepted by the Solana team, but are not yet fully implemented. The proposals may be implemented as described, implemented differently as issues in the designs become evident, or not implemented at all. If implemented, the descriptions will be moved from this section to earlier chapters in a future version of this book.

View File

@ -1,90 +0,0 @@
# Solana ABI management process
This document proposes the Solana ABI management process. The ABI management
process is an engineering practice and a supporting technical framework to avoid
introducing unintended incompatible ABI changes.
# Problem
The Solana ABI (binary interface to the cluster) is currently only defined
implicitly by the implementation and requires a very careful eye to notice
breaking changes. This makes it extremely difficult to upgrade the software
on an existing cluster without rebooting the ledger.
# Requirements and objectives
- Unintended ABI changes can be detected as CI failures mechanically.
- Newer implementation must be able to process the oldest data (since genesis)
once we go mainnet.
- The objective of this proposal is to protect the ABI while sustaining rather
rapid development by opting for a mechanical process rather than a very long
human-driven auditing process.
- Once signed cryptographically, data blob must be identical, so no
in-place data format update is possible regardless of inbound and outbound of
the online system. Also, considering the sheer volume of transactions we're
aiming to handle, retrospective in-place update is undesirable at best.
# Solution
Instead of natural human's eye due-diligence, which should be assumed to fail
regularly, we need a systematic assurance of not breaking the cluster when
changing the source code.
For that purpose, we introduce a mechanism of marking every ABI-related things
in source code (`struct`s, `enum`s) with the new `#[frozen_abi]` attribute. This
takes hard-coded digest value derived from types of its fields via
`ser::Serialize`. And the attribute automatically generates a unit test to try
to detect any unsanctioned changes to the marked ABI-related things.
However, the detection cannot be complete; no matter how hard we statically
analyze the source code, it's still possible to break ABI. For example, this
includes not-`derive`d hand-written `ser::Serialize`, underlying library's
implementation changes (for example `bincode`), CPU architecture differences.
The detection of these possible ABI incompatibilities is out-of-scope for this
ABI management.
# Definitions
ABI item/type: various types to be used for serialization, which collectively
comprises the whole ABI for any system components. For example, those types
include `struct`s and `enum`s.
ABI item digest: Some fixed hash derived from type information of ABI item's
fields.
# Example
```patch
+#[frozen_abi(digest="1c6a53e9")]
#[derive(Serialize, Default, Deserialize, Debug, PartialEq, Eq, Clone)]
pub struct Vote {
/// A stack of votes starting with the oldest vote
pub slots: Vec<Slot>,
/// signature of the bank's state at the last slot
pub hash: Hash,
}
```
# Developer's workflow
To know the digest for new ABI items, developers can add `frozen_abi` with a
random digest value and run the unit tests and replace it with the correct
digest from the assertion test error message.
In general, once we add `frozen_abi` and its change is published in the stable
release channel, its digest should never change. If such a change is needed, we
should opt for defining a new struct like `FooV1`. And special release flow like
hard forks should be approached.
# Implementation remarks
We use some degree of macro machinery to automatically generate unit tests
and calculate a digest from ABI items. This is doable by clever use of
`serde::Serialize` ([1]) and `any::typename` ([2]). For a precedent for similar
implementation, `ink` from the Parity Technologies [3] could be informational.
# References
1. [(De)Serialization with type info · Issue #1095 · serde-rs/serde](https://github.com/serde-rs/serde/issues/1095#issuecomment-345483479)
2. [`std::any::type_name` - Rust](https://doc.rust-lang.org/std/any/fn.type_name.html)
3. [Parity's ink to write smart contracts](https://github.com/paritytech/ink)

View File

@ -1,71 +0,0 @@
# Cross-Program Invocation
## Problem
In today's implementation a client can create a transaction that modifies two accounts, each owned by a separate on-chain program:
```text
let message = Message::new(vec![
token_instruction::pay(&alice_pubkey),
acme_instruction::launch_missiles(&bob_pubkey),
]);
client.send_message(&[&alice_keypair, &bob_keypair], &message);
```
The current implementation does not, however, allow the `acme` program to conveniently invoke `token` instructions on the client's behalf:
```text
let message = Message::new(vec![
acme_instruction::pay_and_launch_missiles(&alice_pubkey, &bob_pubkey),
]);
client.send_message(&[&alice_keypair, &bob_keypair], &message);
```
Currently, there is no way to create instruction `pay_and_launch_missiles` that executes `token_instruction::pay` from the `acme` program. The workaround is to extend the `acme` program with the implementation of the `token` program, and create `token` accounts with `ACME_PROGRAM_ID`, which the `acme` program is permitted to modify. With that workaround, `acme` can modify token-like accounts created by the `acme` program, but not token accounts created by the `token` program.
## Proposed Solution
The goal of this design is to modify Solana's runtime such that an on-chain program can invoke an instruction from another program.
Given two on-chain programs `token` and `acme`, each implementing instructions `pay()` and `launch_missiles()` respectively, we would ideally like to implement the `acme` module with a call to a function defined in the `token` module:
```text
use token;
fn launch_missiles(keyed_accounts: &[KeyedAccount]) -> Result<()> {
...
}
fn pay_and_launch_missiles(keyed_accounts: &[KeyedAccount]) -> Result<()> {
token::pay(&keyed_accounts[1..])?;
launch_missiles(keyed_accounts)?;
}
```
The above code would require that the `token` crate be dynamically linked, so that a custom linker could intercept calls and validate accesses to `keyed_accounts`. That is, even though the client intends to modify both `token` and `acme` accounts, only `token` program is permitted to modify the `token` account, and only the `acme` program is permitted to modify the `acme` account.
Backing off from that ideal cross-program call, a slightly more verbose solution is to expose token's existing `process_instruction()` entrypoint to the acme program:
```text
use token_instruction;
fn launch_missiles(keyed_accounts: &[KeyedAccount]) -> Result<()> {
...
}
fn pay_and_launch_missiles(keyed_accounts: &[KeyedAccount]) -> Result<()> {
let alice_pubkey = keyed_accounts[1].key;
let instruction = token_instruction::pay(&alice_pubkey);
process_instruction(&instruction)?;
launch_missiles(keyed_accounts)?;
}
```
where `process_instruction()` is built into Solana's runtime and responsible for routing the given instruction to the `token` program via the instruction's `program_id` field. Before invoking `pay()`, the runtime must also ensure that `acme` didn't modify any accounts owned by `token`. It does this by calling `runtime::verify_account_changes()` and then afterward updating all the `pre_*` variables to tentatively commit `acme`'s account modifications. After `pay()` completes, the runtime must again ensure that `token` didn't modify any accounts owned by `acme`. It should call `verify_account_changes()` again, but this time with the `token` program ID. Lastly, after `pay_and_launch_missiles()` completes, the runtime must call `verify_account_changes()` one more time, where it normally would, but using all updated `pre_*` variables. If executing `pay_and_launch_missiles()` up to `pay()` made no invalid account changes, `pay()` made no invalid changes, and executing from `pay()` until `pay_and_launch_missiles()` returns made no invalid changes, then the runtime can transitively assume `pay_and_launch_missiles()` as whole made no invalid account changes, and therefore commit all account modifications.
### Setting `KeyedAccount.is_signer`
When `process_instruction()` is invoked, the runtime must create a new `KeyedAccounts` parameter using the signatures from the _original_ transaction data. Since the `token` program is immutable and existed on-chain prior to the `acme` program, the runtime can safely treat the transaction signature as a signature of a transaction with a `token` instruction. When the runtime sees the given instruction references `alice_pubkey`, it looks up the key in the transaction to see if that key corresponds to a transaction signature. In this case it does and so sets `KeyedAccount.is_signer`, thereby authorizing the `token` program to modify Alice's account.

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