Utilities for Solana developers
npm install solana-toolkitSolana Toolkit aims to provide Solana developers with some utilities
Inspector : inspect encoded message to Solana message / transactiontypescript
import { inspectMessage } from solana-toolkit
`
- prettyLog : beatify program logs like Solscan
`typescript
import { prettyProgramLogs } from solana-toolkit
`Contribution
Getting Started
`bashInstall dependencies
yarn installNow you can run various yarn commands:
yarn cli
yarn lint
yarn test
yarn build
...
`package.json
* For publishing to npm, use yarn publish (or npm publish)esbuild
esbuild is an extremely fast bundler that supports a large part of the TypeScript syntax. This project uses it to bundle for browsers (and Node.js if you want).
`bash
Build for browsers
yarn esbuild-browser:dev
yarn esbuild-browser:watchBuild the cli for node
yarn esbuild-node:dev
yarn esbuild-node:watch
`You can generate a full clean build with
yarn build-all (which uses both tsc and esbuild).*
package.json includes scripts for various esbuild commands: see here
* esbuild has a --global-name=xyz flag, to store the exports from the entry point in a global variable. See also the esbuild "Global name" docs.
* Read more about the esbuild setup here.
* esbuild for the browser uses the IIFE (immediately-invoked function expression) format, which executes the bundled code on load (see also https://github.com/evanw/esbuild/issues/29)
Tests with Jest
You can write Jest tests like this:
Run the tests with
yarn test, no separate compile step is necessary.* See also the Jest documentation.
* The tests can be automatically run in CI (GitHub Actions, GitLab CI):
.github/workflows/lint-and-test.yml, .gitlab-ci.yml
* Take a look at other modern test runners such as ava, uvu and tapeDocumentation, published with CI
You can auto-generate API documentation from the TyoeScript source files using TypeDoc. The generated documentation can be published to GitHub / GitLab pages through the CI.
Generate the documentation, using
src/main.ts as entrypoint (configured in package.json):`bash
yarn docs
`The resulting HTML is saved in
docs/.You can publish the documentation through CI:
* GitHub pages: See
.github/workflows/deploy-gh-pages.yml
* GitLab pages: .gitlab-ci.yml`Reach out with feedback and ideas: