Go to file
dependabot[bot] b56d695732
Bump @typescript-eslint/parser from 4.4.1 to 4.5.0 in /token-lending/js (#679)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.4.1 to 4.5.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/v4.5.0/packages/parser)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-21 10:18:22 +00:00
.github SPL token lending scaffolding (#582) 2020-10-09 13:29:51 +08:00
.travis add rustfilt 2020-10-13 14:53:56 -07:00
ci add shared-memory program (#611) 2020-10-14 23:50:57 +00:00
docs Add JSON RPC methods section 2020-10-14 23:36:37 -07:00
memo Bump memo and token versions (#627) 2020-10-15 12:20:23 -06:00
shared-memory Update SDK version to v1.3.17 (#649) 2020-10-19 18:07:45 +08:00
stake-pool Stake pool improvements and fixes (#665) 2020-10-20 21:02:05 +02:00
themis Update SDK version to v1.3.17 (#649) 2020-10-19 18:07:45 +08:00
token Bump @babel/plugin-transform-runtime from 7.12.0 to 7.12.1 in /token/js (#677) 2020-10-21 09:18:57 +00:00
token-lending Bump @typescript-eslint/parser from 4.4.1 to 4.5.0 in /token-lending/js (#679) 2020-10-21 10:18:22 +00:00
token-swap Bump @babel/cli from 7.11.6 to 7.12.1 in /token-swap/js (#674) 2020-10-20 11:37:21 +00:00
utils
.gitignore
.mergify.yml
.travis.yml
Cargo.lock Bump serde from 1.0.116 to 1.0.117 (#660) 2020-10-19 13:47:45 +00:00
Cargo.toml Token stake pool (#493) 2020-10-16 19:38:12 +02:00
LICENSE
README.md
bpf-sdk-install.sh Update SDK version to v1.3.17 (#649) 2020-10-19 18:07:45 +08:00
cbindgen.sh
coverage.sh SPL token lending scaffolding (#582) 2020-10-09 13:29:51 +08:00
do.sh ./do.sh dump now helps the user when they don't have the right tools installed 2020-10-14 13:44:39 -07:00
package-lock.json

README.md

Build status

Solana Program Library

The Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime. These programs are tested against Solana's implementation of Sealevel, solana-runtime, and deployed to its mainnet. As others implement Sealevel, we will graciously accept patches to ensure the programs here are portable across all implementations.

Full documentation is available at https://spl.solana.com

Building

These programs cannot be built directly via cargo and instead require the build scripts located in Solana's BPF-SDK.

Download or update the BPF-SDK by running:

$ ./do.sh update

To build all programs, run:

$ ./do.sh build all

Or choose a specific program:

$ ./do.sh build <program>

Testing

Unit tests contained within all projects can be built via:

$ ./do.sh test all

Or:

$ ./do.sh test <program>

End-to-end testing may be performed via the per-project .js bindings. See the token program's js project for an example.

Clippy

Clippy is also supported via:

$ ./do.sh clippy all

Or:

$ ./do.sh clippy <program>

Release Process

SPL programs are currently tagged and released manually. Each program is versioned independently of the others, with all new development occurring on master. Once a program is tested and deemed ready for release:

Bump Version

  • Increment the version number in the program's Cargo.toml
  • Generate a new program ID and replace in <program>/program-id.md and <program>/src/lib.rs
  • Run ./do.sh build <program> to update relevant C bindings. (Note the location of the generated spl_<program>.so for attaching to the Github release.)
  • Open a PR with these version changes and merge after passing CI.

Create Github tag

Program tags are of the form <program>-vX.Y.Z. Create the new tag at the version-bump commit and push to the solana-program-library repository, eg:

$ git tag token-v1.0.0 b24bfe7
$ git push upstream --tags

Publish Github release

  • Go to GitHub Releases UI
  • Click "Draft new release", and enter the new tag in the "Tag version" box.
  • Title the release "SPL vX.Y.Z", complete the description, and attach the spl_<program>.so binary
  • Click "Publish release"

Publish to Crates.io

Navigate to the program directory and run cargo package to test the build. Then run cargo publish. (Currently, programs with generated C bindings fail the final step of verification due to the location of the generated file. Once you are certain the crate is ready, run cargo publish --no-verify to bypass this error.)