Commit Graph

330 Commits

Author SHA1 Message Date
Jack May df480b9795
Breakup stake-pool update test transactions (#2084)
* Breakup stake-pool update test transactions

* nudge
2021-07-14 10:26:31 -07:00
Jon Cinque 02397e9152
stake-pool: Add check for delegation stake in add / remove (#2076) 2021-07-13 20:11:39 +02:00
Jon Cinque 151eef0696
Convert `checked_add` to `saturating_add` to fix downstream build (#2055) 2021-07-12 12:50:28 +02:00
Jon Cinque 054d61c6b2
stake-pool: Increase version for crate release, update program id (#2059) 2021-07-10 00:24:24 +02:00
Jon Cinque f35ca3c48c
stake-pool-cli: Address feedback (#2057)
* Fix signer parameters (staker, manager, depositor, fee-payer, and
  token-owner)
* On deposit / withdraw / add / remove validator, show the validator
  stake account and where the stake is going to
2021-07-09 23:56:41 +02:00
Jon Cinque 99a6e95106
stake-pool: Optimizations for 4k validators (#2041)
* In-place serde

* Add cleanup instruction

* Add BigVec tests, clarify lifetimes
2021-07-08 22:50:28 +02:00
Tyera Eulberg 0acc8c8bad
Bump solana and borsh crates (#2015) 2021-07-02 16:53:41 +00:00
dependabot[bot] b565332024
build(deps): bump serde from 1.0.125 to 1.0.126 (#2008)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.125 to 1.0.126.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.125...v1.0.126)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-01 11:57:51 +00:00
dependabot[bot] 2cb2129527
build(deps): bump proptest from 0.10.1 to 1.0.0 (#2007)
Bumps [proptest](https://github.com/altsysrq/proptest) from 0.10.1 to 1.0.0.
- [Release notes](https://github.com/altsysrq/proptest/releases)
- [Changelog](https://github.com/AltSysrq/proptest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/altsysrq/proptest/compare/v0.10.1...1.0.0)

---
updated-dependencies:
- dependency-name: proptest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-01 11:44:21 +00:00
Jon Cinque 8f2c8fa6c8
stake-pool-cli: Add small optimizations for updating faster (#1995)
* stake-pool-cli: Add small optimizations for updating faster

* Cargo fmt

* Light refactor

* Refactor transaction creation / checking

* Rename function
2021-06-30 12:59:23 +02:00
Jon Cinque 66d28b41ff
stake-pool: Add helper scripts for setting up a pool (#1994) 2021-06-29 23:11:08 +02:00
Jon Cinque ac2f9e09a4
stake-pool: Fixup accounting on increase transient account (#1985) 2021-06-29 00:51:54 +02:00
Jon Cinque edf07b1f69
stake-pool: Update version for crate publish (#1967)
Finalize the stake pool struct for when a lockup will eventually be
present.
2021-06-25 21:34:48 +00:00
Jon Cinque 21f8af34e7
Update all solana dependencies to 1.7.3, fix issues (#1958)
* Update all dependencies to 1.7.3, fix issues

* Remove esm from mocha

* Fix missed token test

* Also update rust version

* token-swap: update tolerance on sim test

* Run `cargo clippy --fix` for needless_borrow errors

* Rerun cargo fmt
2021-06-25 00:39:08 +02:00
Jon Cinque 6c9ca0d83d
stake-pool: Use `delegation.stake` for accounting (#1934)
* stake-pool: Use `delegation.stake` for accounting

* Clippy

* Improve test and remove spl-math dependency

* Address smaller review comments

* Fix calculation, improve tests

* Clippy

* Remove esm from mocha

* Revert "Remove esm from mocha"

This reverts commit c0f25ab543c808a1daf3474df4ef851bc994fc6c.
2021-06-24 20:30:59 +02:00
Lieu Zheng Hong 346075743e
stake-pool: Stake pool deserializer (#1656)
* first commit

* add schema for stakepool accounts

* got imports working

* add typescript support

* fix schema

* Change to use PublicKey type

* change to camelCase instead

* add type annotations to typescript classes

* add readme

* Add prettier linting

* add instructions to run

* add test section

* prettier clean up schema.ts

* convert index.js to index.ts

* actually use decode method available in Assignable

* rename stakepoolaccount so i can have a wrapper class

* add new class StakePool and change return type of getStakePoolAccounts

* remove extraneous .js files

* update schema to incorporate jon's comments

* remove unnecessary comments

* add helper functions to get individual accounts; cleaned up code

* add Fee, change denominator/numerator to BN

* Add enums so we can check what type an accountType is

* Remove name and ticker in StakePool class

* fix borshjs import

* change outdir to dist/ folder

* Edit package.json

* add toBuffer for schema.PublicKey

* add exports and default exports to index.ts

* fix trailing comma on tsconfig.json

* get mocha test harness working with ts-node, ts-mocha, esm

* fix borsh import

* clean up imports

* add working test script

* remove unneeded borshjs import

* add unit tests for both decodes (WIP)

* no need to console.log in testOnDevnet since we now have a test suite

* Add tests for ValidatorListAccount.decode

* add schema.decode.StakePoolAccount test

* Finish up

* reduce dependencies in package.json

* Add lint command to package.json

* Lint with prettier

* Update README.md with new commands

* Write explanatory comments in index.js

* Small linting change

* feat: introduce new borshjs deserializeUnchecked import

* lint: npm lint

* refactor: upgrade web3js version

* refactor: refactor type names

* refactor: npm run lint

* refactor: improve tsconfig.json

* feat: add declaration and declarationMap to tsconfig.json

* feat: allow getStakePoolAccounts to more robustly handle errors

* Update stake-pool/js/.gitignore

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* Update stake-pool/js/package.json

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* Update stake-pool/js/package.json

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* Update stake-pool/js/package.json

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* Update stake-pool/js/package.json

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* refactor: modify `constructStakePoolSchema` to mutate in place

* lint: remove webpack.config.js

* lint: npm run lint

* lint: add comments above index.ts

* lint: lowercase schema

* feat: add full deserialization test

* Update stake-pool/js/package.json

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* refactor: remove try-catch block in getStakePoolAccounts

* lint: lint

* refactor: use web3js pubkey

* refactor: move integration tests to separate file

* refactor: change test.js to do encode-decode loop

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2021-06-23 14:18:45 +02:00
Jon Cinque 702f1478e8
stake-pool: Split transient stake account creation (#1950) 2021-06-22 21:45:47 +00:00
Jon Cinque de693dc219
stake-pool: Fail initializing if mint has a freeze authority (#1949) 2021-06-22 21:38:08 +00:00
Jon Cinque a081c2859b
stake-pool: Wait to apply new fee (#1922)
* Add `next_epoch_fee` field and fix serde

* Only update fee after the epoch is passed

* Update docs
2021-06-15 23:40:14 +00:00
Tyera Eulberg e28af24443 Bump solana version 2021-06-14 16:02:27 -06:00
Jon Cinque ddf9efa330
stake-pool: Add ability to withdraw from transient stakes (#1890)
* stake-pool: Add ability to withdraw from transient stakes

It's possible for a very malicious pool staker to constantly increase /
decrease the stake on validators, making it impossible for people to get
their SOL out.

Update the accounting to know how much of the stake is active and how
much is transient and allow users to withdraw from transient accounts,
but only if there's no more active stake.

* Remove mut ickiness
2021-06-11 20:50:59 +00:00
Jon Cinque 329f9c0912
stake-pool: Add explicit ownership checks (#1868) 2021-06-04 21:45:49 +00:00
Jon Cinque ba99e44bff
stake-pool: Add reserve stake check on update pool balance (#1866) 2021-06-04 23:08:32 +02:00
Jon Cinque 454c75c711
stake-pool: Document writability of validator list (#1867) 2021-06-04 22:15:39 +02:00
Jon Cinque 450b2d511a
stake-pool: Add preferred deposit / withdraw validator accounts (#1831)
* stake-pool: Add set preferred validator instruction

* Add functionality for using the preferred deposit / withdraw

* Add CLI support
2021-06-01 12:45:27 +02:00
Jon Cinque b310c2a163
stake-pool: Add program_id to all instruction ctors (#1814) 2021-05-28 11:46:57 +02:00
Michael Vines ed0389f708 Add forward compatibility with solana-client 1.6.10 2021-05-22 00:00:33 -07:00
Jon Cinque ea98e6bf73
stake-pool: Fix fee calculation (#1764)
* stake-pool: Fix fee calculation

* Remove unwraps, widen one more calc
2021-05-20 11:53:06 +00:00
Jon Cinque d4bbdf8224
stake-pool-cli: Bump version for release (#1713)
* stake-pool-cli: Bump version for release

* Update lock file
2021-05-12 13:20:48 +00:00
Jon Cinque 731bb6f57a
stake-pool: Bump version for release (#1707) 2021-05-11 21:46:49 +00:00
Jon Cinque cebb3176b2
stake-pool: Add helper instruction creators for stake pool integration (#1706)
* stake-pool: Add more instructions for easier usage

* Add extra check (shouldn't be necessary, but who knows?)
2021-05-11 20:48:58 +00:00
Jon Cinque d68608c440
stake-pool: Re-enable tests, avoid warping so much (#1687) 2021-05-10 12:33:56 +00:00
jordansexton f0b1cec4d8 stake-pool: minor typo fix 2021-05-07 13:50:35 -05:00
Trent Nelson 1f36ca301b Bump solana crates to v1.6.7 2021-05-05 04:39:49 +00:00
Jon Cinque 3dd6767297
stake-pool: Update versions for crate deployment (#1657) 2021-05-03 20:50:49 +00:00
Jon Cinque 9c63bc0b06
stake-pool-cli: All sorts of fixes (#1650)
While going back through the docs, I ended up doing a lot of the stake
pool CLI items:

* Deposit / withdraw command: Use associated token account by default
* Create command: Allow passing the stake pool and mint keypair (useful
  for testing)
* Create command: Split the transaction for pool creation (required to get under the
  transaction size limit)
* Add / remove validator command: take a validator vote account rather than stake
  account, which makes integration from outside tools a lot simpler
* Update command: add a `--force` flag to force the update
* Update command: add a `--no-merge` flag to not merge while updating
  (useful to allow the pool to work, even if the transient stake
  accounts are unmergeable)
* Withdraw: Add `--use-reserve` flag to withdraw from reserve
* Withdraw: Add `--vote-account` arg to specify which validator to
  withdraw from
2021-05-03 11:47:24 +02:00
Jon Cinque 11e207cc85
stake-pool: Add user transfer authority on withdraw (#1640)
The stake pool expects pool tokens to be delegated to the withdraw
authority before performing a withdrawal. If a user delegates too many
tokens to the withdraw authority, anyone else can take the rest of their
tokens by doing their own withdrawal.

Delegate pool tokens to an ephemeral keypair and sign with that.
2021-04-27 12:53:46 +00:00
Jon Cinque 14bdbdc3ac
stake-pool: Add ability to remove a validator that has deactivating transient stake (#1624)
* Add status enum

* Add ability to remove validator with transient stake

* Only account validator stake if active

* Fix merge conflicts
2021-04-27 13:24:39 +02:00
Jon Cinque 61a53abf6f
stake-pool: Add ability to withdraw from reserve if no stake available (#1627) 2021-04-23 23:55:16 +02:00
Michael Vines 1e47030549 Update SPL to Solana v1.6.6 2021-04-23 13:39:51 -07:00
Jon Cinque c149b0a46e
stake-pool: Add depositor key on init, required on deposit (#1616)
* stake-pool: Add depositor key on init, required on deposit

Some stake pools need to be private, and not allow outside depositors.

Enhance the existing deposit authority in the stake pool be configurable
on initialization, and then require its signature on deposit.

The existing deposit authority is a program address, making deposits
permissionless. This allows a pool creator to set their own deposit_authority on
initialization. In a great turn of events, almost everything else works
the same way!

Here's the current workflow for deposit, where the user calls
stake_program::authorize and stake_pool::deposit in the same
transaction:

* stake_program::authorize assigns staker and withdraw authority to the
  stake pool deposit authority
* stake_pool::deposit
    - uses the deposit authority to assign authority on the deposited
  stake account to the stake pool withdraw authority
    - uses the withdraw authority to merge the deposited stake into the validator stake

The deposit authority must "sign" the transaction in order to reassign
authority to the withdraw authority. Currently, as a program address, it
can just do that. With this change, if the deposit authority is set
during initialization, then that deposit authority must sign the
instruction.

There's also a little update for ease-of-use to always do the
stake_program::authorize in the same transaction as stake_pool::deposit.
This way, in case someone tries to deposit into a forbidden stake pool, the
whole transaction will bail and their stake will stay as theirs.

* Address review feedback

* Fix rebase issues
2021-04-22 21:34:41 +02:00
Jon Cinque 804a61e558
stake-pool: Increase lower limit for increase-validator-stake (#1620)
* stake-pool: Increase lower limit for increase-validator-stake

* Update test amounts in line with limit
2021-04-22 20:49:30 +02:00
Jon Cinque 3613ffe3b0
hotfix: ignore tests that break with tip of 1.6 (#1622) 2021-04-22 12:30:47 +00:00
Jon Cinque 08c4cb530a
stake-pool-cli: Add increase / decrease validator stake (#1619) 2021-04-22 00:20:35 +00:00
Jon Cinque fdba05714d
stake-pool: Add merging transient stakes in update (#1618)
* Add check for transient stake account activation on removal

* Add proper merging logic during update

* Format + clippy

* Add max possible validators

* Disallow removal for any transient stake state

* Reduce number of accounts for BPF instruction usage
2021-04-22 01:41:15 +02:00
Jon Cinque 53c86493e6
stake-pool: Add reserve stake and decrease / increase validator stake instruction (#1617)
* Add reserve stake account

* Add decrease validator stake instruction

* Cargo fmt

* Add increase instruction

* Add more increase tests

* Fix set fee tests

* Fix clippy in tests

* Add test-bpf feature to increase / decrease tests
2021-04-21 22:20:27 +02:00
Jon Cinque 40ebfc6917
stake-pool: Set fee (#1604)
* stake-pool: Add set_fee instruction

* Add more tests

* Add set-fee CLI instruction

* Update documentation

* Cargo fmt

* Re-format

* Fix clippy
2021-04-21 14:20:55 +02:00
Jon Cinque 30671aa5b3
stake-pool: Rework add / remove validator to not use pool tokens (#1581)
* Rework remove

* Add tests

* Transition to checked math

* Update CLI for new types / instructions

* Cargo fmt

* Rename voter_pubkey -> vote_account_address

* Remove max check

* Update validator balance test
2021-04-21 13:06:43 +02:00
Jon Cinque 71e5e556c4
stake-pool: Assess fee as a percentage of rewards (#1597)
* stake-pool: Collect fee every epoch as proportion of rewards

* Add more complete tests

* Update docs
2021-04-15 12:10:17 +02:00
Jon Cinque 2b3f71ead5
stake-pool: Add rebalancing instruction interface (#1563)
* stake-pool: Add rebalancing instruction interface

* Address feedback

* Rename again

* Ignore rustdoc code
2021-04-09 12:32:21 +02:00
Jon Cinque 7f89183c0d
stake-pool: Ensure zero pool token supply on init (#1572) 2021-04-05 20:06:40 +02:00
Michael Vines 17dd53d5e8 Break up the UpdateValidatorListBalance instructions over multiple transactions 2021-04-05 08:50:57 -07:00
Michael Vines ee52f1d499 Reimplement `spl-stake-pool list` command to use the StakePool/ValidatorList as the primary source of information 2021-04-02 16:27:42 -07:00
Jon Cinque 092432f1e1
stake-pool: Separate manager from owner (#1560)
* stake-pool: Separate manager from owner

* Add manager pubkey to stake pool
* Differentiate manager functions from owner functions
* Include a `set_manager` function to be used by the owner
* Change the term `owner` to `authority` in the CLI for clarity

* Rename manager -> staker and owner -> manager

* Split staker, manager, and token owner in CLI

* "Do not disturb the boss"
2021-04-02 10:56:12 +02:00
Michael Vines eb6cd994b8 More variable renaming 2021-04-01 07:40:18 +00:00
Michael Vines 48ab307cad Reboot program address derivation helpers 2021-03-31 23:57:44 -07:00
Michael Vines 67cb90f39c De-tangle processor/state dependencies 2021-03-31 22:00:20 -07:00
Michael Vines b97849d206 Code cleanup v2 2021-03-31 19:52:17 -07:00
Michael Vines 2cd7adbf87 Code cleanup v1 2021-03-31 15:37:50 -07:00
Michael Vines eb1bf2eb44 Code cleanup v0 2021-03-31 12:28:08 -07:00
Jack May f390e12311
Allow for fixed error mappings (#1541) 2021-03-30 17:30:44 -07:00
Jon Cinque 9f38a6f4b2
Rework create validator stake account (#1539) 2021-03-31 00:54:15 +02:00
Michael Vines 19e1161be2 Minor config -> rpc_client refactor 2021-03-30 15:29:55 -07:00
Jon Cinque 9e4f190633
stake-pool: Rename instructions / structs (#1536)
* stake-pool: Rename instructions / structs

* Cargo fmt

* Fix proptest
2021-03-30 23:54:06 +02:00
Michael Vines 024766161c Automatically update the stake pool if needed, use the `--no-update` flag to disable 2021-03-30 12:56:30 -07:00
Michael Vines 8ad223ac4e add-validator-stake now cleanly errors if non-active stake is provided 2021-03-30 11:44:24 -07:00
Michael Vines a029447484 Move to positional parameters 2021-03-30 09:40:23 -07:00
Michael Vines 448be67cfa Update to Solana 1.6.2 2021-03-30 09:38:04 -07:00
Jon Cinque d815ba9b8e
stake-pool: Add borsh support and specify size on creation (#1505)
* lending: Update JS tests to solana-test-validator

* Add solana tools install

* Fix oopsie on the path

* Move where deployed programs go

* stake-pool: Add borsh support and size on creation

We can't specify the size in the instruction unfortunately, since we'd
only have 10kb max for the validator list. At roughly 50 bytes per
validator, that only gives us 200 validators.

On the flip side, using Borsh means we can allow the validator stake list
to be any size!

* Add AccountType enum

* Remove V1 everywhere

* Add max validators as parameter and get_instance_packed_len

* Add test for adding too many validators

* Clippy
2021-03-27 13:42:29 +01:00
Jon Cinque d336b8b714
stake-pool: Use checked_ceil_div for withdraw calc (#1482)
* stake-pool: Use checked_ceil_div for withdraw calc

When a stake account is totally removed from a stake pool by the
manager, there's a chance that the operation would not take enough of
the manager's pool tokens by 1 due to truncation.

Do a ceiling division instead, and refactor ceiling division into the
math library.

* Use new function name on CLI

* Cargo fmt
2021-03-23 00:33:51 +01:00
Yuriy Savchenko d0bf7157cf
Set staking authority instruction removed (#1469)
* Set staking authority instruction removed

* Fixed fmt errors
2021-03-18 12:21:01 +01:00
Michael Vines 662f38f939 Bump Solana version to 1.6.1 2021-03-18 04:07:16 +00:00
Michael Vines af5fdb3146 Bump Rust version to 1.50.0 2021-03-16 22:22:59 -07:00
Michael Vines 686444088b Bump Solana version to 1.5.15 2021-03-16 18:33:37 -07:00
Michael Vines 1bc52c30fd Remove yelling 2021-03-16 18:33:37 -07:00
Michael Vines 995d4a029f Remove tokio dev-dependency 2021-03-16 18:33:37 -07:00
Michael Vines c63d854ac7 Switch to Instruction::new_with_bincode 2021-03-16 18:33:37 -07:00
Jon Cinque 78f7f7f5de
stake-pool-cli: Fix withdraw calc for CLI / program consistency (#1422)
* stake-pool-cli: Fix withdraw calc for CLI / program consistency

* Run cargo fmt

* Integrate review feedback
2021-03-10 13:45:42 +01:00
Jon Cinque 2217950da1
stake-pool-cli: Rename burn -> withdraw (#1423) 2021-03-10 10:38:44 +01:00
Jon Cinque 9c12b50703
Update solana-program to 1.5.11 (#1362)
* Update solana-program to 1.5.11

* Update all programs
2021-03-02 19:19:50 +01:00
Jon Cinque d536460d3f
stake-pool: Fix stake split and withdraw token calculation (#1352)
* Fix stake split and withdraw token calculation

* Cargo fmt
2021-03-01 21:39:21 +00:00
Jon Cinque 833ea9324d
stake-pool-cli: Fix update command, add verbosity (#1345)
* stake-pool-cli: Fix update command, add verbosity

The update command in the stake pool CLI was passing the validator vote
account instead of the associated stake account from the pool, causing
it to fail.  Additionally, add more verbose logging, and a dry-run mode
to get simulate transaction information, useful for debugging CLI
failures.

* Run cargo fmt
2021-02-27 00:57:38 +01:00
Jon Cinque d74b8c8f0a
stake-pool-cli: Update RPC client per TODO (#1304)
* Update deployed stake pool program id

* Add validator account takes 1 SOL instead of 1 lamport

* Fix "update" command for empty validator list

* Update dependencies

* Revert consequential changes

* Run cargo fmt

* Revert sdk

* Revert Cargo.lock
2021-02-23 00:28:06 +01:00
Jon Cinque d75fc5875c
stake-pool-cli: Fix update command for empty list (#1306) 2021-02-22 23:50:17 +01:00
Jon Cinque d31cd78a54
stake-pool: Validator stake account initialized with 1 SOL (#1305)
* stake-pool: Validator stake account initialized with 1 SOL

A validator stake account only has 1 lamport, which means that it will
gain very few rewards per epoch.  Its credits_observed is not
be reset each epoch, which makes it practically impossible to merge
into.  Get around this by instantiating them with more stake.

* Cargo fmt + fix tests
2021-02-22 23:50:05 +01:00
dependabot[bot] 1e5b376df6
build(deps): bump serde_json from 1.0.61 to 1.0.62 (#1265)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.61 to 1.0.62.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.61...v1.0.62)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-18 02:07:29 +00:00
dependabot[bot] 5b4c62ce49
build(deps): bump solana-program from 1.5.6 to 1.5.8 (#1261)
Bumps [solana-program](https://github.com/solana-labs/solana) from 1.5.6 to 1.5.8.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.6...v1.5.8)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-17 23:56:18 +00:00
dependabot[bot] b476c962ce
build(deps): bump solana-cli-config from 1.5.6 to 1.5.8 (#1260)
Bumps [solana-cli-config](https://github.com/solana-labs/solana) from 1.5.6 to 1.5.8.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.6...v1.5.8)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-17 23:23:27 +00:00
dependabot[bot] 0caba7d549
build(deps): bump serde from 1.0.120 to 1.0.121 (#1258)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.120 to 1.0.121.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.120...v1.0.121)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-17 22:17:04 +00:00
Trent Nelson 188c03e9a1 chore: bump solana crates to 1.5.6 2021-02-11 16:30:03 -07:00
Atticlab LLC 11df4aa5ec
Various postponed fixes and changes to the stake pool program (#1200)
* Various postponed fixes and changes to the stake pool program

* Fixed PR comments

* Fixed no-signature validator stake account add test

Co-authored-by: Yuriy Savchenko <yuriy.savchenko@gmail.com>
2021-02-10 17:42:28 +01:00
Yuriy Savchenko 13826294ef
Stake pool: test coverage for most of the program errors (#1134)
* Stake pool: test coverage for most of the program errors

* Fixes to stake pool tests PR comments
2021-01-27 23:35:25 +01:00
Jon Cinque 14daf0d370
Stake pool: adding pool balance confirmation (Redo of #960) (#1116)
* Added validator stake account list storage, deprecated old tests

* Added join and leave stake pool instructions, error messages refactoring

* Stake pool tests refactoring, tests for join and leave pool added

* Added validator stake account creation instruction, join/leave pool instructions renamed, version field added

* Formatting fixes

* Added update list/pool instructions (no tests yet), updated deposit instruction logic, claim instruction removed, refactoring

* Updated deposit logic and tests, updated withdraw logic and added tests, refactoring

* Stake pool CLI updated to work with new deposit/withdraw instructions, claim usage removed

* Added validator stake account management and balance update commands to the stake pool CLI, updated dependency versions, updated devnet program address

* Merge conflicts fixed

* Removed deprecated tests

* Fixes for review comments

* Additional program id checks across the code

* Formatting errors fixed

* Changed minimum stake balance in CLI, removed deprecated tests, removed check for stake history id

* Added TODO for stake account warmup status check

* Cargo.lock conflict fix

* Formatting fixed

* Update Cargo lock file for CI

* Pin themis version of subtle

Co-authored-by: Yuriy Savchenko <yuriy.savchenko@gmail.com>
2021-01-21 14:48:46 +01:00
dependabot[bot] c1d49de8b2
build(deps): bump solana-logger from 1.5.1 to 1.5.3 (#1066)
Bumps [solana-logger](https://github.com/solana-labs/solana) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.1...v1.5.3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-14 12:36:43 +00:00
dependabot[bot] 7e8c36ef78
build(deps): bump solana-cli-config from 1.5.1 to 1.5.2 (#1051)
Bumps [solana-cli-config](https://github.com/solana-labs/solana) from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.1...v1.5.2)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-11 01:32:56 +00:00
dependabot[bot] 86af1b771a
Bump serde from 1.0.117 to 1.0.118 (#1004)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.117 to 1.0.118.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.117...v1.0.118)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-11 08:55:02 +08:00
dependabot[bot] 7b81c0d3c0
build(deps): bump solana-program from 1.5.0 to 1.5.1 (#1025)
Bumps [solana-program](https://github.com/solana-labs/solana) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.0...v1.5.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 13:51:29 +00:00
dependabot[bot] b08ed21332
build(deps): bump solana-cli-config from 1.5.0 to 1.5.1 (#1023)
Bumps [solana-cli-config](https://github.com/solana-labs/solana) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.5.0...v1.5.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 12:39:08 +00:00
dependabot[bot] c64d43180a
Bump serde_json from 1.0.59 to 1.0.61 (#983)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.59 to 1.0.61.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.59...v1.0.61)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-04 01:33:47 +00:00
Michael Vines 8ae34d2137 Update to Solana 1.5.0 2020-12-17 21:24:30 -08:00
Yuriy Savchenko c03f45ec30
Multi-account withdraw added the stake-pool CLI (#895)
* Multi-account withdraw added the stake-pool CLI

* Multi-account withdraw refactoring in stake-pool cli, added merge of multiple claim accounts

* Fixed formatting

* Added tests to stake pool CLI withdraw accounts selection

* Formatting fixed

* Clippy warnings fixed
2020-12-03 11:11:56 +01:00
Michael Vines 158fa1dea6 Upgrade to Solana v1.4.14 2020-12-03 05:39:55 +00:00
Michael Vines a477895f02 program-test now adds SPL Token automatically 2020-12-03 05:39:55 +00:00
dependabot[bot] 6aa1d8cce1
Bump solana-program from 1.4.9 to 1.4.13 (#916)
Bumps [solana-program](https://github.com/solana-labs/solana) from 1.4.9 to 1.4.13.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.4.9...v1.4.13)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 12:54:42 +00:00
Yuriy Savchenko 90698e4be9
Added negative tests for stake pool (#857)
* Added negative tests for stake pool

* Claim refactoring, error codes fixed

* Linter errors fixed
2020-11-18 22:47:42 +01:00
Michael Vines c6a4ac9a82 Bump solana version to v1.4.9 2020-11-17 20:02:17 -08:00
dependabot[bot] 83096bc02a Bump bs58 from 0.3.1 to 0.4.0
Bumps [bs58](https://github.com/mycorrhiza/bs58-rs) from 0.3.1 to 0.4.0.
- [Release notes](https://github.com/mycorrhiza/bs58-rs/releases)
- [Commits](https://github.com/mycorrhiza/bs58-rs/compare/0.3.1...0.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-13 21:04:26 -08:00
Michael Vines f4af9054a2 Update to Solana 1.4.8 2020-11-14 02:35:20 +00:00
Jon Cinque b9fed1116b
stake-pool: Add end-to-end testing using ProgramTest (#828)
* WIP: stake-pool: Add end-to-end testing using ProgramTest

* Run cargo fmt

* Add deposit test and extra requirements

* Update Cargo.lock after rebuild

* Bring token program sdk version back to 1.4.7
2020-11-13 13:11:39 +01:00
Michael Vines 5030a87021 Upgrade to Solana 1.4.7 2020-11-12 11:05:20 -08:00
Yuriy Savchenko b9c2bbc275
Added set-staking-auth and set-owner commands to stake pool CLI (#827)
* Added set-staking-auth and set-owner commands to stake pool CLI

* Error handling refactored, fixed new fee owner setting, fixed set owner arg group settings

* Added check for fee account mint to stake pool initialization and set owner methods
2020-11-12 16:44:08 +01:00
dependabot[bot] b71456a8f1
Bump solana-program from 1.4.5 to 1.4.6 (#826)
Bumps [solana-program](https://github.com/solana-labs/solana) from 1.4.5 to 1.4.6.
- [Release notes](https://github.com/solana-labs/solana/releases)
- [Changelog](https://github.com/solana-labs/solana/blob/master/RELEASE.md)
- [Commits](https://github.com/solana-labs/solana/compare/v1.4.5...v1.4.6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-11 12:39:52 +00:00
Yuriy Savchenko fec7794c22
Stake pool CLI added (#806)
* Implemented stake-pool CLI with create-pool, deposit, list and withdraw commands, fixed several bugs in underlying smart contract

* Several typos fixed, some error text clarifications.

* Fee parameter in stake pool creation changed into two: numarator and demoninator

* Refactoring to resolve pool request comments

* Added merge to stake_receiver account when claiming whole stake account

* Removed unused import

* Withdraw bump seed calculation fixed
2020-11-10 15:36:05 +01:00
Michael Vines 238eabc1d0 Bump solana version to v1.4.5 2020-11-06 21:29:04 -08:00
Justin Starry 1f810787d0
Fix broken stake-pool docs link and make readme's consistent (#805) 2020-11-06 09:15:27 +08:00
Yuriy Savchenko 87129a93ac
Added positive tests in stake pool and fixed several bugs in instructions (#788)
* Added positive tests for withdraw, claim, set owner, set authority, several bugs fixed

* Fixed PR comments

* Fixed constant with leading zero

* Deposit tests refactoring
2020-11-04 13:34:25 +01:00
Michael Vines 341149d0e9 Back to no-entrypoint feature name 2020-11-03 10:34:43 -08:00
Yuriy Savchenko 480f6604b7
Added missing accounts to the interface to call stake account program (#763)
* Interface accounts added as read-only, fixed mint authority on deposit, fixed stake pool stake deserializing

* Unit test refactoring, added success tests for deposit, updated stake account program id

* Warnings fixed

* Removed random key generation, used Pubkey::new_unique instead

* Imports optimization

* Unit test architecture updated to remove separate invoke_signed declarations

* Added missing accounts (sysvar clock and stake account program id) to calls to stake account program

* Fixed formatting

* Fixed stake pool deposit unit test

* Temporarily removed stake-pool cli from main workspace

* Fixed warning in token program

* Fixed warning in token program v3

* Fixed warnings in token swap program

* Fixed warning in token cli

* Sysvar and program id params reordered
2020-11-02 22:03:54 +01:00
Michael Vines 2b5e9d1286 Drop lifetimes 2020-11-01 20:48:15 -08:00
Michael Vines 9f4e6d8beb Update to solana v1.4.4 2020-11-01 20:48:15 -08:00
Yuriy Savchenko a5babd6cbe
Unit tests refactoring and success deposit test added to stake pool program (#718)
* Interface accounts added as read-only, fixed mint authority on deposit, fixed stake pool stake deserializing

* Unit test refactoring, added success tests for deposit, updated stake account program id

* Warnings fixed

* Removed random key generation, used Pubkey::new_unique instead

* Imports optimization

* Unit test architecture updated to remove separate invoke_signed declarations
2020-10-29 17:19:48 +01:00
Michael Vines 211f92e8c6 Groom Cargo.tomls 2020-10-25 07:52:33 +00:00
Michael Vines f9b4616bb6 Clean up stake-pool copypasta 2020-10-25 03:40:21 +00:00
Michael Vines 80e29ef6b9 Port SPL to solana-program and `cargo build-bpf` 2020-10-24 19:21:38 -07:00
Yuriy Savchenko 100e930f2c
Interface accounts added as read-only, fixed mint authority on deposit, fixed stake pool stake deserializing (#702) 2020-10-23 14:25:53 +02:00
Yuriy Savchenko bb54cf0dc6
Added stake pool instruction interface methods (#684)
* Added address type in programm address generation for the stake pool, renamed nonce to bump seed

* Formatting fixed

* Bump seed calculation moved to the smart contract, test for fee > 1 added, state length public constant added

* Added claim method to stake pool, fixed program address generation in token mint and burn calls

* Refactored signers management when calling other contracts

* Signers formation put back into calling functions, deposit/withdraw/claim method reworked, state serialization bug fixed

* Added instruction interface methods

* Fixed signer flags for accounts in stake pool instruction creation
2020-10-21 14:21:54 +02:00
Yuriy Savchenko df63d6a0f0
Stake pool improvements and fixes (#665)
* Added address type in programm address generation for the stake pool, renamed nonce to bump seed

* Formatting fixed

* Bump seed calculation moved to the smart contract, test for fee > 1 added, state length public constant added

* Added claim method to stake pool, fixed program address generation in token mint and burn calls

* Refactored signers management when calling other contracts

* Signers formation put back into calling functions, deposit/withdraw/claim method reworked, state serialization bug fixed
2020-10-20 21:02:05 +02:00
dependabot[bot] 1dfebe929d
Bump serde from 1.0.116 to 1.0.117 (#660)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.116 to 1.0.117.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.116...v1.0.117)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 13:47:45 +00:00
ysavchenko b5b3c56226
Changes to stake pool program address generation (#647)
* Added address type in programm address generation for the stake pool, renamed nonce to bump seed

* Formatting fixed
2020-10-19 13:26:05 +02:00
anatoly yakovenko 44b95aecdb
Token stake pool (#493)
* init

* instructions

* instruction progress

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* update

* wip

* update

* wip

* clippy

* builds

* builds

* wip test

* init testcargo fmt

* update

* wip stake instructions

* wip

* comment

* update

* update

* update

* init cli

* Address review comments

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2020-10-16 19:38:12 +02:00