Skip to content

Commit f5fb0a8

Browse files
authored
README: Update with memo-specific info (#45)
#### Problem The memo program now lives here, but the documentation is mostly still the generated content. #### Summary of changes Update the README with: * more specific program info * program and docs badges * doc link * audit link
1 parent 526ec64 commit f5fb0a8

File tree

1 file changed

+29
-33
lines changed

1 file changed

+29
-33
lines changed

README.md

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
1-
# Memo
1+
# SPL Memo Program
22

33
<a href="https://github.com/solana-program/memo/actions/workflows/main.yml"><img src="https://img.shields.io/github/actions/workflow/status/solana-program/memo/main.yml?logo=GitHub" /></a>
4+
<a href="https://crates.io/crates/spl-memo"><img src="https://img.shields.io/crates/v/spl-memo?logo=rust" /></a>
5+
[![Docs.rs](https://docs.rs/spl-memo/badge.svg?logo=rust)]
6+
<a href="https://crates.io/crates/spl-memo-client"><img src="https://img.shields.io/crates/v/spl-memo-client?logo=rust" /></a>
47
<a href="https://explorer.solana.com/address/MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsolana-program%2Fmemo%2Fmain%2Fprogram%2Fidl.json&query=%24.version&label=program&logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzEzIiBoZWlnaHQ9IjI4MSIgdmlld0JveD0iMCAwIDMxMyAyODEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF80NzZfMjQzMCkiPgo8cGF0aCBkPSJNMzExLjMxOCAyMjEuMDU3TDI1OS42NiAyNzYuNTU4QzI1OC41MzcgMjc3Ljc2NCAyNTcuMTc4IDI3OC43MjUgMjU1LjY2OSAyNzkuMzgyQzI1NC4xNTkgMjgwLjAzOSAyNTIuNTMgMjgwLjM3OCAyNTAuODg0IDI4MC4zNzdINS45OTcxOUM0LjgyODcgMjgwLjM3NyAzLjY4NTY4IDI4MC4wMzUgMi43MDg1NSAyNzkuMzkzQzEuNzMxNDMgMjc4Ljc1MSAwLjk2Mjc3MSAyNzcuODM3IDAuNDk3MDIgMjc2Ljc2NEMwLjAzMTI2OTEgMjc1LjY5IC0wLjExMTI4NiAyNzQuNTA0IDAuMDg2ODcxMiAyNzMuMzVDMC4yODUwMjggMjcyLjE5NiAwLjgxNTI2NSAyNzEuMTI2IDEuNjEyNDMgMjcwLjI3TDUzLjMwOTkgMjE0Ljc2OUM1NC40Mjk5IDIxMy41NjYgNTUuNzg0MyAyMTIuNjA3IDU3LjI4OTMgMjExLjk1QzU4Ljc5NDMgMjExLjI5MyA2MC40MTc4IDIxMC45NTMgNjIuMDU5NSAyMTAuOTVIMzA2LjkzM0MzMDguMTAxIDIxMC45NSAzMDkuMjQ0IDIxMS4yOTIgMzEwLjIyMSAyMTEuOTM0QzMxMS4xOTkgMjEyLjU3NiAzMTEuOTY3IDIxMy40OSAzMTIuNDMzIDIxNC41NjRDMzEyLjg5OSAyMTUuNjM3IDMxMy4wNDEgMjE2LjgyNCAzMTIuODQzIDIxNy45NzdDMzEyLjY0NSAyMTkuMTMxIDMxMi4xMTUgMjIwLjIwMSAzMTEuMzE4IDIyMS4wNTdaTTI1OS42NiAxMDkuMjk0QzI1OC41MzcgMTA4LjA4OCAyNTcuMTc4IDEwNy4xMjcgMjU1LjY2OSAxMDYuNDdDMjU0LjE1OSAxMDUuODEzIDI1Mi41MyAxMDUuNDc0IDI1MC44ODQgMTA1LjQ3NUg1Ljk5NzE5QzQuODI4NyAxMDUuNDc1IDMuNjg1NjggMTA1LjgxNyAyLjcwODU1IDEwNi40NTlDMS43MzE0MyAxMDcuMTAxIDAuOTYyNzcxIDEwOC4wMTUgMC40OTcwMiAxMDkuMDg4QzAuMDMxMjY5MSAxMTAuMTYyIC0wLjExMTI4NiAxMTEuMzQ4IDAuMDg2ODcxMiAxMTIuNTAyQzAuMjg1MDI4IDExMy42NTYgMC44MTUyNjUgMTE0LjcyNiAxLjYxMjQzIDExNS41ODJMNTMuMzA5OSAxNzEuMDgzQzU0LjQyOTkgMTcyLjI4NiA1NS43ODQzIDE3My4yNDUgNTcuMjg5MyAxNzMuOTAyQzU4Ljc5NDMgMTc0LjU1OSA2MC40MTc4IDE3NC44OTkgNjIuMDU5NSAxNzQuOTAySDMwNi45MzNDMzA4LjEwMSAxNzQuOTAyIDMwOS4yNDQgMTc0LjU2IDMxMC4yMjEgMTczLjkxOEMzMTEuMTk5IDE3My4yNzYgMzExLjk2NyAxNzIuMzYyIDMxMi40MzMgMTcxLjI4OEMzMTIuODk5IDE3MC4yMTUgMzEzLjA0MSAxNjkuMDI4IDMxMi44NDMgMTY3Ljg3NUMzMTIuNjQ1IDE2Ni43MjEgMzEyLjExNSAxNjUuNjUxIDMxMS4zMTggMTY0Ljc5NUwyNTkuNjYgMTA5LjI5NFpNNS45OTcxOSA2OS40MjY3SDI1MC44ODRDMjUyLjUzIDY5LjQyNzUgMjU0LjE1OSA2OS4wODkgMjU1LjY2OSA2OC40MzJDMjU3LjE3OCA2Ny43NzUxIDI1OC41MzcgNjYuODEzOSAyNTkuNjYgNjUuNjA4MkwzMTEuMzE4IDEwLjEwNjlDMzEyLjExNSA5LjI1MTA3IDMxMi42NDUgOC4xODA1NiAzMTIuODQzIDcuMDI2OTVDMzEzLjA0MSA1Ljg3MzM0IDMxMi44OTkgNC42ODY4NiAzMTIuNDMzIDMuNjEzM0MzMTEuOTY3IDIuNTM5NzQgMzExLjE5OSAxLjYyNTg2IDMxMC4yMjEgMC45ODM5NDFDMzA5LjI0NCAwLjM0MjAyNiAzMDguMTAxIDMuOTUzMTRlLTA1IDMwNi45MzMgMEw2Mi4wNTk1IDBDNjAuNDE3OCAwLjAwMjc5ODY2IDU4Ljc5NDMgMC4zNDMxNCA1Ny4yODkzIDAuOTk5OTUzQzU1Ljc4NDMgMS42NTY3NyA1NC40Mjk5IDIuNjE2MDcgNTMuMzA5OSAzLjgxODQ3TDEuNjI1NzYgNTkuMzE5N0MwLjgyOTM2MSA2MC4xNzQ4IDAuMjk5MzU5IDYxLjI0NCAwLjEwMDc1MiA2Mi4zOTY0Qy0wLjA5Nzg1MzkgNjMuNTQ4OCAwLjA0MzU2OTggNjQuNzM0MiAwLjUwNzY3OSA2NS44MDczQzAuOTcxNzg5IDY2Ljg4MDMgMS43Mzg0MSA2Ny43OTQzIDIuNzEzNTIgNjguNDM3MkMzLjY4ODYzIDY5LjA4MDIgNC44Mjk4NCA2OS40MjQgNS45OTcxOSA2OS40MjY3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQ3Nl8yNDMwKSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDc2XzI0MzAiIHgxPSIyNi40MTUiIHkxPSIyODcuMDU5IiB4Mj0iMjgzLjczNSIgeTI9Ii0yLjQ5NTc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4wOCIgc3RvcC1jb2xvcj0iIzk5NDVGRiIvPgo8c3RvcCBvZmZzZXQ9IjAuMyIgc3RvcC1jb2xvcj0iIzg3NTJGMyIvPgo8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzU0OTdENSIvPgo8c3RvcCBvZmZzZXQ9IjAuNiIgc3RvcC1jb2xvcj0iIzQzQjRDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNzIiIHN0b3AtY29sb3I9IiMyOEUwQjkiLz4KPHN0b3Agb2Zmc2V0PSIwLjk3IiBzdG9wLWNvbG9yPSIjMTlGQjlCIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNDc2XzI0MzAiPgo8cmVjdCB3aWR0aD0iMzEyLjkzIiBoZWlnaHQ9IjI4MC4zNzciIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==&color=9945FF" /></a>
58
<a href="https://www.npmjs.com/package/@solana-program/memo"><img src="https://img.shields.io/npm/v/%40solana-program%2Fmemo?logo=npm&color=377CC0" /></a>
6-
<a href="https://crates.io/crates/spl-memo-client"><img src="https://img.shields.io/crates/v/spl-memo-client?logo=rust" /></a>
79

8-
This template should help get you started developing Solana programs. Let's walk through this generated program repository and see what's included.
10+
A simple program that validates a string of UTF-8 encoded characters and logs it
11+
in the transaction log. The program also verifies that any accounts provided are
12+
signers of the transaction, and if so, logs their addresses. It can be used to
13+
record a string on-chain, stored in the instruction data of a successful
14+
transaction, and optionally verify the originator.
15+
16+
This code was moved from the
17+
[solana-program-library](https://github.com/solana-labs/solana-program-library/tree/master/memo)
18+
and is now maintained in this repo.
19+
20+
Full documentation is available at https://spl.solana.com/memo
21+
22+
## Audit
23+
24+
The [security-audits repo](https://github.com/solana-labs/security-audits) contains
25+
all past and present program audits.
926

1027
## Project setup
1128

@@ -15,13 +32,12 @@ The first thing you'll want to do is install NPM dependencies which will allow y
1532
pnpm install
1633
```
1734

18-
## Managing programs
35+
## Program
1936

20-
You'll notice a `program` folder in the root of this repository. This is where your generated Solana program is located.
37+
The `program` folder in the root of this repository contains the program
38+
implementation.
2139

22-
Whilst only one program gets generated, note that you can have as many programs as you like in this repository.
23-
Whenever you add a new program folder to this repository, remember to add it to the `members` array of your root `Cargo.toml` file.
24-
That way, your programs will be recognized by the following scripts that allow you to build, test, format and lint your programs respectively.
40+
The following scripts build, test, format and lint the program respectively.
2541

2642
```sh
2743
pnpm programs:build
@@ -32,24 +48,24 @@ pnpm programs:lint
3248

3349
## Generating IDLs
3450

35-
You may use the following command to generate the IDLs for your programs.
51+
You may use the following command to generate the IDLs.
3652

3753
```sh
3854
pnpm generate:idls
3955
```
4056

41-
Depending on your program's framework, this will either use Shank or Anchor to generate the IDLs.
42-
Note that, to ensure IDLs are generated using the correct framework version, the specific version used by the program will be downloaded and used locally.
57+
Note that, to ensure IDLs are generated using the correct framework version, the
58+
specific version used by the program will be downloaded and used locally.
4359

4460
## Generating clients
4561

46-
Once your programs' IDLs have been generated, you can generate clients for them using the following command.
62+
Once the program's IDL has been generated, you can generate clients for them using the following command.
4763

4864
```sh
4965
pnpm generate:clients
5066
```
5167

52-
Alternatively, you can use the `generate` script to generate both the IDLs and the clients at once.
68+
Alternatively, you can use the `generate` script to generate both the IDL and the clients at once.
5369

5470
```sh
5571
pnpm generate
@@ -81,23 +97,3 @@ Finally, you may stop the local validator using the following command.
8197
```sh
8298
pnpm validator:stop
8399
```
84-
85-
## Using external programs in your validator
86-
87-
If your program requires any external programs to be running, you'll want to in your local validator.
88-
89-
You can do this by adding their program addresses to the `program-dependencies` array in the `Cargo.toml` of your program.
90-
91-
```toml
92-
program-dependencies = [
93-
"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
94-
"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",
95-
]
96-
```
97-
98-
Next time you build your program and run your validator, these external programs will automatically be fetched from mainnet and used in your local validator.
99-
100-
```sh
101-
pnpm programs:build
102-
pnpm validator:restart
103-
```

0 commit comments

Comments
 (0)