solana/web3.js/README.md

145 lines
4.5 KiB
Markdown
Raw Normal View History

2018-09-21 08:57:19 -07:00
[![Build status][travis-image]][travis-url]
[![codecov][codecov-image]][codecov-url]
2018-09-22 10:32:48 -07:00
<br>
2018-09-21 08:57:19 -07:00
[![npm][npm-image]][npm-url]
2018-09-22 10:32:48 -07:00
[![npm-downloads][npm-downloads-image]][npm-url]
2018-11-07 10:50:21 -08:00
<br>
2018-10-01 08:12:14 -07:00
[![semantic-release][semantic-release-image]][semantic-release-url]
2018-11-07 10:50:21 -08:00
[![code-style-prettier][code-style-prettier-image]][code-style-prettier-url]
2018-09-21 08:57:19 -07:00
[travis-image]: https://api.travis-ci.org/solana-labs/solana-web3.js.svg?branch=master
[travis-url]: https://travis-ci.org/solana-labs/solana-web3.js
[codecov-image]: https://codecov.io/gh/solana-labs/solana-web3.js/branch/master/graph/badge.svg
[codecov-url]: https://codecov.io/gh/solana-labs/solana-web3.js
[npm-image]: https://img.shields.io/npm/v/@solana/web3.js.svg?style=flat
2018-09-22 10:32:48 -07:00
[npm-downloads-image]: https://img.shields.io/npm/dm/@solana/web3.js.svg?style=flat
2018-09-21 08:57:19 -07:00
[npm-url]: https://www.npmjs.com/package/@solana/web3.js
2018-10-01 08:12:14 -07:00
[semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release-url]: https://github.com/semantic-release/semantic-release
2018-11-07 10:50:21 -08:00
[code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
[code-style-prettier-url]: https://github.com/prettier/prettier
# Solana JavaScript API
2020-03-29 07:01:01 -07:00
This is the Solana Javascript API built on the Solana [JSON RPC API](https://docs.solana.com/apps/jsonrpc-api)
2018-08-22 13:53:13 -07:00
[Latest API Documentation](https://solana-labs.github.io/solana-web3.js/)
2018-08-23 08:12:51 -07:00
## Installation
2018-08-22 20:06:29 -07:00
2018-08-23 08:12:51 -07:00
### Yarn
```
$ yarn add @solana/web3.js
```
### npm
2018-08-22 20:06:29 -07:00
```
$ npm install --save @solana/web3.js
```
2018-08-23 08:12:51 -07:00
### Browser bundle
```html
<!-- Development (un-minified) -->
<script src="https://unpkg.com/@solana/web3.js@0.92.0/lib/index.iife.js"></script>
<!-- Production (un-minified) -->
<script src="https://unpkg.com/@solana/web3.js@0.92.0/lib/index.iife.min.js"></script>
2018-08-23 08:12:51 -07:00
```
2018-08-22 20:06:29 -07:00
2019-05-10 14:16:35 -07:00
### Development Environment Setup
To build and run tests:
1. Install Rust from https://rustup.rs/
2. Install the latest Solana release from https://docs.solana.com/cli/install-solana-cli-tools
2018-11-01 10:06:06 -07:00
2018-08-23 08:12:51 -07:00
## Usage
2018-08-22 20:06:29 -07:00
2018-08-23 08:12:51 -07:00
### Javascript
```js
const solanaWeb3 = require('@solana/web3.js');
console.log(solanaWeb3);
```
2018-08-22 20:06:29 -07:00
2018-08-23 08:12:51 -07:00
### ES6
```js
import solanaWeb3 from '@solana/web3.js';
console.log(solanaWeb3);
```
### Browser bundle
```js
// `solanaWeb3` is provided in the global namespace by the `solanaWeb3.min.js` script bundle.
console.log(solanaWeb3);
```
## Flow
A [Flow library definition](https://flow.org/en/docs/libdefs/) is provided at
[module.flow.js](https://github.com/solana-labs/solana-web3.js/tree/master/module.flow.js).
Add the following line under the [libs] section of your project's .flowconfig to
activate it:
```ini
[libs]
node_modules/@solana/web3.js/module.flow.js
```
## Examples
See the [examples/](https://github.com/solana-labs/solana-web3.js/tree/master/examples) directory for small snippets.
Standalone examples:
* Message feed (BPF Rust and C): https://github.com/solana-labs/example-messagefeed
* Tic-tac-toe (BPF C): https://github.com/solana-labs/example-tictactoe
* Web wallet: https://github.com/solana-labs/example-webwallet
## Releases
Releases are available on [Github](https://github.com/solana-labs/solana-web3.js/releases)
and [npmjs.com](https://www.npmjs.com/package/@solana/web3.js)
Each Github release features a tarball containing API documentation and a
minified version of the module suitable for direct use in a browser environment
(&lt;script&gt; tag)
## Deprecated
### Local Network
**Please use `solana-test-validator` from the latest Solana release instead of the information in this section**
2019-03-04 08:16:13 -08:00
The `solana-localnet` program is provided to easily start a test Solana cluster
2018-10-02 20:51:19 -07:00
locally on your machine. Docker must be installed. The JSON RPC endpoint of
2019-03-04 08:16:13 -08:00
the local cluster is `http://localhost:8899`.
2018-10-02 20:51:19 -07:00
To start, first fetch the latest Docker image by running:
```bash
$ npx solana-localnet update
```
2019-03-04 08:16:13 -08:00
Then run the following command to start the cluster
2018-10-02 20:51:19 -07:00
```bash
$ npx solana-localnet up
```
2019-03-04 08:16:13 -08:00
While the cluster is running logs are available with:
2018-10-02 20:51:19 -07:00
```bash
$ npx solana-localnet logs -f
```
2019-03-04 08:16:13 -08:00
Stop the cluster with:
2018-10-02 20:51:19 -07:00
```bash
2018-10-14 19:52:52 -07:00
$ npx solana-localnet down
2018-10-02 20:51:19 -07:00
```
### BPF program development
**Please use `cargo build-bpf` from the latest Solana release instead of the information in this section**
2018-08-23 20:29:27 -07:00
The Solana BPF SDK is located in the `bpf-sdk/` subdirectory if you installed
solana-web3.js from npmjs.com.
2018-08-23 08:12:51 -07:00
From a git clone, run `npm run bpf-sdk:install` to fetch the latest BPF SDK.
Additionally Rust must be installed to build Rust BPF programs such as
`examples/bpf-rust-noop/`. See https://www.rust-lang.org/install.html for
installation details.