├── .DS_Store
├── .eslintignore
├── .eslintrc.json
├── .github
└── dependabot.yml
├── .gitignore
├── .gitpod.Dockerfile
├── .gitpod.yml
├── .prettierrc.yaml
├── .theia
└── settings.json
├── .travis.yml
├── .vscode
└── settings.json
├── LICENSE
├── README-gitpod.md
├── README-installation-notes.md
├── README.md
├── README_ZH.md
├── cluster-devnet.env
├── cluster-mainnet-beta.env
├── cluster-testnet.env
├── package-lock.json
├── package.json
├── src
├── .DS_Store
└── program-rust
│ ├── .gitignore
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── Xargo.toml
│ ├── src
│ └── lib.rs
│ └── tests
│ └── lib.rs
└── tsconfig.json
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsoneaday/solana-example-helloworld/b2d94236a509caefa565d1b8bf800930f9338545/.DS_Store
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/
2 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "env": {
4 | "node": true,
5 | "browser": true
6 | },
7 | "extends": [
8 | "eslint:recommended",
9 | "plugin:@typescript-eslint/eslint-recommended",
10 | "plugin:@typescript-eslint/recommended",
11 | "plugin:@typescript-eslint/recommended-requiring-type-checking",
12 | "prettier",
13 | "prettier/@typescript-eslint"
14 | ],
15 | "parser": "@typescript-eslint/parser",
16 | "parserOptions": {
17 | "ecmaVersion": 2020,
18 | "parser": "babel-eslint",
19 | "project": "./tsconfig.json",
20 | "sourceType": "module"
21 | },
22 | "plugins": [
23 | "@typescript-eslint",
24 | "prettier"
25 | ],
26 | "rules": {
27 | "no-console": 0,
28 | "semi": 0,
29 | "@typescript-eslint/no-explicit-any": 0
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: npm
4 | directory: "/"
5 | schedule:
6 | interval: daily
7 | time: "01:00"
8 | timezone: America/Los_Angeles
9 | open-pull-requests-limit: 3
10 | ignore:
11 | - dependency-name: eslint-config-prettier
12 | versions:
13 | - "> 6.15.0"
14 | - dependency-name: eslint
15 | versions:
16 | - 7.25.0
17 | - dependency-name: "@typescript-eslint/parser"
18 | versions:
19 | - 4.14.1
20 | - 4.14.2
21 | - 4.15.0
22 | - 4.18.0
23 | - 4.19.0
24 | - 4.20.0
25 | - 4.21.0
26 | - dependency-name: "@types/eslint"
27 | versions:
28 | - 7.2.6
29 | - dependency-name: "@typescript-eslint/eslint-plugin"
30 | versions:
31 | - 4.14.1
32 | - 4.14.2
33 | - 4.15.0
34 | - dependency-name: "@types/prettier"
35 | versions:
36 | - 2.1.6
37 | - 2.2.0
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | *.sw[po]
3 | /.cargo
4 | /dist
5 | .env
6 | src/client/util/store
7 | test-ledger/
8 |
--------------------------------------------------------------------------------
/.gitpod.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM gitpod/workspace-full
2 |
3 | RUN sh -c "$(curl -sSfL https://release.solana.com/v1.6.6/install)"
4 | RUN export PATH=~/.local/share/solana/install/active_release/bin:$PATH
5 |
--------------------------------------------------------------------------------
/.gitpod.yml:
--------------------------------------------------------------------------------
1 | image:
2 | file: .gitpod.Dockerfile
3 | tasks:
4 | - init: |
5 | sh -c "$(curl -sSfL https://release.solana.com/v1.6.6/install)"
6 | export PATH=~/.local/share/solana/install/active_release/bin:$PATH
7 | npm install
8 | npm run build:program-rust
9 | solana config set --url localhost
10 | solana-keygen new --no-bip39-passphrase
11 | command: |
12 | gp open README-gitpod.md
13 | github:
14 | prebuilds:
15 | # enable for the master/default branch (defaults to true)
16 | master: true
17 | # enable for all branches in this repo (defaults to false)
18 | branches: false
19 | # enable for pull requests coming from this repo (defaults to true)
20 | pullRequests: true
21 | # add a check to pull requests (defaults to true)
22 | addCheck: true
23 | # add a "Review in Gitpod" button as a comment to pull requests (defaults to false)
24 | addComment: true
25 | ports:
26 | - port: 1024
27 | onOpen: ignore
28 | - port: 8899
29 | onOpen: ignore
30 | - port: 8900
31 | onOpen: ignore
32 | - port: 9900
33 | onOpen: ignore
34 |
--------------------------------------------------------------------------------
/.prettierrc.yaml:
--------------------------------------------------------------------------------
1 | arrowParens: "avoid"
2 | bracketSpacing: false
3 | jsxBracketSameLine: false
4 | semi: true
5 | singleQuote: true
6 | tabWidth: 2
7 | trailingComma: "all"
8 |
--------------------------------------------------------------------------------
/.theia/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "workbench.iconTheme": "theia-file-icons",
3 | "preview.openByDefault": true
4 | }
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | dist: bionic
2 | sudo: required
3 | language: rust
4 | services:
5 | - docker
6 | cache:
7 | cargo: true
8 | directories:
9 | - "~/.npm"
10 | notifications:
11 | email: false
12 |
13 | install:
14 | - rustup install nightly
15 | - cargo --version
16 | - docker --version
17 | - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
18 | - sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main"
19 | - sudo apt-get update
20 | - sudo apt-get install -y clang-7 --allow-unauthenticated
21 | - sudo apt-get install -y openssl --allow-unauthenticated
22 | - sudo apt-get install -y libssl-dev --allow-unauthenticated
23 | - sudo apt-get install -y libssl1.1 --allow-unauthenticated
24 | - clang-7 --version
25 | - nvm install node
26 | - node --version
27 | - npm install
28 | - sh -c "$(curl -sSfL https://release.solana.com/v1.6.6/install)"
29 | - export PATH=~/.local/share/solana/install/active_release/bin:$PATH
30 | - solana-install info
31 |
32 | script:
33 | - solana-keygen new --no-bip39-passphrase
34 | - solana-test-validator --quiet &
35 | - npm run lint
36 | - npm run build:program-rust
37 | - npm run test:program-rust
38 | - cargo test-bpf --manifest-path=./src/program-rust/Cargo.toml
39 | - solana config set --url localhost
40 | - solana program deploy dist/program/helloworld.so
41 | - npm run start
42 | - npm run build:program-c
43 | - solana program deploy dist/program/helloworld.so
44 | - npm run start
45 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "window.zoomLevel": 1,
3 | "editor.formatOnSave": true,
4 | "editor.defaultFormatter": "esbenp.prettier-vscode",
5 | "git.ignoreLimitWarning": true
6 | }
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018 Solana Labs, Inc
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/README-gitpod.md:
--------------------------------------------------------------------------------
1 | [![Build status][travis-image]][travis-url] [](https://gitpod.io/#https://github.com/solana-labs/example-helloworld)
3 |
4 |
5 | [travis-image]:
6 | https://travis-ci.org/solana-labs/example-helloworld.svg?branch=master
7 | [travis-url]: https://travis-ci.org/solana-labs/example-helloworld
8 |
9 | # Hello world on Solana (Gitpod version)
10 |
11 | This project demonstrates how to use the [Solana Javascript
12 | API](https://github.com/solana-labs/solana-web3.js) to build, deploy, and
13 | interact with programs on the Solana blockchain.
14 |
15 | The project comprises of:
16 |
17 | * An on-chain hello world program
18 | * A client that can send a "hello" to an account and get back the number of
19 | times "hello" has been sent
20 |
21 | ## Table of Contents
22 | - [Hello world on Solana (Gitpod
23 | version)](#hello-world-on-solana-gitpod-version)
24 | - [Table of Contents](#table-of-contents)
25 | - [Quick Start](#quick-start)
26 | - [Expected output](#expected-output)
27 | - [Customizing the Program](#customizing-the-program)
28 | - [Learn about Solana](#learn-about-solana)
29 | - [Learn about the client](#learn-about-the-client)
30 | - [Learn about the on-chain program](#learn-about-the-on-chain-program)
31 | - [Expand your skills with advanced
32 | examples](#expand-your-skills-with-advanced-examples)
33 |
34 | ## Quick Start
35 |
36 | Using this example in Gitpod connects to the public Solana `devnet` cluster. Use
37 | the environment variable `CLUSTER` to choose a different Solana cluster.
38 |
39 | Run the client to load and interact with the on-chain program:
40 | ```bash
41 | $ npm run start
42 | ```
43 |
44 | The remaining sections of this document point back to the non-Gitpod version of
45 | the README for more information.
46 |
47 | ### [Expected output](README.md#expected-output)
48 |
49 | ### [Customizing the Program](README.md#Customizing-the-Program)
50 |
51 | ## [Learn about Solana](README.md#learn-about-solana)
52 |
53 | ## [Learn about the client](README.md#learn-about-the-client)
54 |
55 | ## [Learn about the on-chain program](README.md#learn-about-the-on-chain-program)
56 |
57 | ## [Expand your skills with advanced examples](README.md#expand-your-skills-with-advanced-examples)
--------------------------------------------------------------------------------
/README-installation-notes.md:
--------------------------------------------------------------------------------
1 | # Installation Notes
2 | if you are a first-time user of Rust, the notes below may help you to install
3 | some of the dependencies on a Mac or Linux workstation.
4 |
5 | ### Rust
6 | We suggest that you install Rust using the 'rustup' tool. Rustup will install
7 | the latest version of Rust, Cargo, and the other binaries used in Solana.
8 |
9 | Follow the instructions at [Installing
10 | Rust](https://www.rust-lang.org/tools/install).
11 |
12 | For Mac users, Homebrew is also an option. The Mac Homebrew command is `brew
13 | install rustup` and then `rustup-init`. See [Mac
14 | Setup](https://sourabhbajaj.com/mac-setup/Rust/) & [Installing
15 | Rust](https://www.rust-lang.org/tools/install) for more details.
16 |
17 | After installation, you should have `rustc`, `cargo`, & `rustup`. You should
18 | also have `~/.cargo/bin` in your PATH environment variable.
19 |
20 | ### NodeJS/NPM
21 | Fetch the `npm` dependencies, including `@solana/web3.js`, by running:
22 | ```bash
23 | $ npm install
24 | ```
25 |
26 | ### Git Repository
27 | Clone the 'example-helloworld' repository into your development machine:
28 | ```bash
29 | $ cd /path/to/your/work/folder/
30 | $ git clone https://github.com/solana-labs/example-helloworld.git
31 | $ cd example-helloworld
32 | ```
33 | (If you plan to submit changes in a pull request, be sure to create a fork first
34 | and then clone your fork.)
35 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Updated By David Choi
2 |
3 | This is an updated version of Solana's example-helloworld sample app
4 | Based on youtube video https://youtu.be/gA7hFdq2h9Q
5 |
--------------------------------------------------------------------------------
/README_ZH.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | [![Build status][travis-image]][travis-url]
8 | [](https://gitpod.io/#https://github.com/solana-labs/example-helloworld)
9 |
10 | [travis-image]: https://travis-ci.org/solana-labs/example-helloworld.svg?branch=master
11 | [travis-url]: https://travis-ci.org/solana-labs/example-helloworld
12 |
13 | # Hello world on Solana
14 |
15 | 此專案將展示如何使用 [Solana Javascript API](https://github.com/solana-labs/solana-web3.js) 在 Solana 區塊鏈上和程式交互。
16 |
17 | 此專案包含:
18 |
19 | * 鏈上的 Hello World 程式
20 | * 可以向帳戶發送 `hello` 並獲取 `hello` 的發送次數。
21 |
22 | ## 翻譯
23 | - [英文](README.md)
24 |
25 | ## 目錄
26 | - [Hello world on Solana](#hello-world-on-solana)
27 | - [快速開始](#快速開始)
28 | - [啟動本地 Solana 集群](#啟動本地-solana-集群)
29 | - [安裝 npm 套件](#安裝-npm-套件)
30 | - [部署鏈上程式](#部署鏈上程式)
31 | - [啟動客戶端](#啟動客戶端)
32 | - [期望產出](#期望產出)
33 | - [沒有達到期望產出?](#沒有達到期望產出)
34 | - [自定義程式](#自定義程式)
35 | - [學習 Solana](#學習-solana)
36 | - [學習 Client](#學習-client)
37 | - [進入點](#進入點)
38 | - [建立與集群的連接](#建立與集群的連接)
39 | - [載入鏈上程式 Hello World(如果尚未加載)](#載入鏈上程式-hello-world如果尚未加載)
40 | - [發送 `Hello` 交易至鏈上](#發送-Hello-交易至鏈上)
41 | - [查詢使用過 `Hello` 交易的 Solana 帳戶](#查詢使用過-Hello-交易的-Solana-帳戶)
42 | - [學習鏈上程式](#學習鏈上程式)
43 | - [在 Solana 上編寫程式](#在-Solana-上編寫程式)
44 | - [指向公開 Solana 集群](#指向公開的-Solana-集群)
45 | - [透過高級的範例擴展你的技能](#透過高級的範例擴展你的技能)
46 |
47 | ## 快速開始
48 |
49 | [](https://gitpod.io/#https://github.com/solana-labs/example-helloworld)
50 |
51 | 如果您決定在 Gitpod 中打開,請參考 [README-gitpod.md](README-gitpod.md),否則請繼續閱讀。
52 |
53 |
54 | 要創建和運行此範例,請確認並安裝以下套件
55 |
56 | - 安裝 node
57 | - 安裝 npm
58 | - 從 https://rustup.rs/ 安裝最新的 Rust 穩定版本
59 | - 從 https://docs.solana.com/cli/install-solana-cli-tools 安裝 v1.6.6 的 Solana 命令列管理工具
60 |
61 | 如果這是您第一次使用 Docker 或 Rust,這些 [安裝筆記](README-installation-notes.md) 可能對您有幫助。
62 |
63 | ### 配置命令列
64 |
65 | 1. 將命令列配置的 url 設置成 localhost 集群
66 |
67 | ```bash
68 | $ solana config set --url localhost
69 | ```
70 |
71 | 2. 創建命令列使用的密鑰對
72 |
73 | 如果這是你第一次使用 solana 命令列,你先得生成一个新的密鑰對
74 |
75 | ```bash
76 | $ solana-keygen new
77 | ```
78 |
79 | ### 啟動本地 Solana 集群
80 |
81 | 默認情況下,此範例連接到本地 Solana 集群。
82 |
83 | 啟動本地 Solana 集群:
84 | ```bash
85 | $ solana-test-validator
86 | ```
87 | **注意: 如果你要用 Windows 的話,你得先設置 WSL,才能用 `solana-test-validator` 的工具**
88 |
89 | 關注交易日誌:
90 | ```bash
91 | $ solana logs
92 | ```
93 |
94 | ### 安裝 npm 套件
95 |
96 | ```bash
97 | $ npm install
98 | ```
99 | ### 構建鏈上程式
100 |
101 | 鏈上程式有 Rust 版本和 C 版本,最新的版本是運行範例時使用的版本。
102 |
103 | ```bash
104 | $ npm run build:program-rust
105 | ```
106 |
107 | ```bash
108 | $ npm run build:program-c
109 | ```
110 |
111 | ### 部署鏈上程式
112 |
113 | ```bash
114 | $ solana program deploy dist/program/helloworld.so
115 | ```
116 |
117 | ### 啟動客戶端
118 |
119 | ```bash
120 | $ npm run start
121 | ```
122 |
123 | ### 期望產出
124 |
125 | 公鑰將會有所不同:
126 |
127 | ```bash
128 | Let's say hello to a Solana account...
129 | Connection to cluster established: http://localhost:8899 { 'feature-set': 3714435735, 'solana-core': '1.6.6' }
130 | Using account AiT1QgeYaK86Lf9kudqKthQPCWwpG8vFA1bAAioBoF4X containing 0.00141872 SOL to pay for fees
131 | Using program Dro9uk45fxMcKWGb1eWALujbTssh6DW8mb4x8x3Eq5h6
132 | Creating account 8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A to say hello to
133 | Saying hello to 8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A
134 | 8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A has been greeted 1 times
135 | Success
136 | ```
137 |
138 | #### 沒有達到期望產出?
139 |
140 | - 確認您已經[啟動了本地 Solana 集群](#start-local-solana-cluster),[構建](#構建鏈上程式) 并 [部署好了](#部署鏈上程式) 鏈上程式。
141 | - 集群的輸出日誌應包括程序日誌消息以及程式失敗的原因
142 | - `program log: `
143 | - 運行 `solana logs` 檢查程式日誌找出程式失敗的原因。
144 | - ```bash
145 | Transaction executed in slot 5621:
146 | Signature: 4pya5iyvNfAZj9sVWHzByrxdKB84uA5sCxLceBwr9UyuETX2QwnKg56MgBKWSM4breVRzHmpb1EZQXFPPmJnEtsJ
147 | Status: Error processing Instruction 0: Program failed to complete
148 | Log Messages:
149 | Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA invoke [1]
150 | Program log: Hello World Rust program entrypoint
151 | Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA consumed 200000 of 200000 compute units
152 | Program failed to complete: exceeded maximum number of instructions allowed (200000) at instruction #334
153 | Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA failed: Program failed to complete
154 |
155 | ### 自定義程式
156 |
157 | 要自定義示例,請更改 `/src` 下的文件。如果您更改 `/src/program-rust` 或 `/src/program-c` 下的任何文件,你將需要[重新構建鏈上程式](#構建鏈上程式) 並 [重新部署鏈上程式](#部署鏈上程式)。
158 |
159 | 現在,當您重新運行 `npm run start` 時,您應該看到更改的結果。
160 |
161 | ## 學習 Solana
162 |
163 | [Solana 文件](https://docs.solana.com/)提供了有關 Solana 的更多消息並且所有的源代碼都在 [github](https://github.com/solana-labs/solana) 上。
164 |
165 | 更多的問題?在 [Discord](https://discordapp.com/invite/pquxPsq) 告訴我們。
166 |
167 | ## 學習 Client
168 |
169 | 此範例中的客戶端使用 JavaScript 語言撰寫:
170 | - [Solana web3.js SDK](https://github.com/solana-labs/solana-web3.js)
171 | - [Solana web3 API](https://solana-labs.github.io/solana-web3.js)
172 |
173 | ### 進入點
174 |
175 | [客戶端入口點](https://github.com/solana-labs/example-helloworld/blob/e936ab42e168f1939df0164d5996adf9ca635bd0/src/client/main.js#L14)做了四件事
176 |
177 | ### 建立與集群的連接
178 |
179 | 客戶端通過調用 [`establishConnection`](https://github.com/solana-labs/example-helloworld/blob/e936ab42e168f1939df0164d5996adf9ca635bd0/src/client/hello_world.js#L45) 與客戶端建立連接.
180 |
181 | ### Check if the helloworld on-chain program has been deployed
182 |
183 | The client loads the keypair of the deployed program from `./dist/program/helloworld-keypair.json` and uses
184 | the public key for the keypair to fetch the program account. If the program doesn't exist, the client halts
185 | with an error. If the program does exist, it will create a new account with the program assigned as its owner
186 | to store program state (number of hello's processed).
187 |
188 | ### 發送 `Hello` 交易至鏈上
189 |
190 | 客戶端將通過調用 [`sayHello`](https://github.com/solana-labs/example-helloworld/blob/e936ab42e168f1939df0164d5996adf9ca635bd0/src/client/hello_world.js#L121) 並向程式發送 `Hello` 交易。此交易包含一條非常簡單的指令,此指令主要呼叫 `helloworld` 程式的帳戶公鑰希望向 `greeter` 帳戶說 `Hello`。
191 |
192 | ### 查詢使用過 `Hello` 交易的 Solana 帳戶
193 |
194 | 客戶端每次對帳戶說 `Hello` 時,程式都會在 `greeter` 帳戶的數據中增加一個計數。客戶端查詢 `greeter` 帳戶的數據,並透過 [`reportHellos`](https://github.com/solana-labs/example-helloworld/blob/e936ab42e168f1939df0164d5996adf9ca635bd0/src/client/hello_world.js#L138.) 查詢此帳戶當前被訪問的次數。
195 |
196 | ## 學習鏈上程式
197 |
198 | [鏈上 HelloWorld 程式](/src/program-rust/Cargo.toml) 是一個 Rust 程式編譯成 [Berkley Packet Format (BPF)](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter) 並儲存為[可執行和可鏈接格式(ELF)共享對象](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format).
199 |
200 | 此程式是使用以下程式編寫:
201 | - [Solana Rust SDK](https://github.com/solana-labs/solana/tree/master/sdk)
202 |
203 | ### 在 Solana 上編寫程式
204 |
205 | 要了解有關 Solana 程式設計模型的更多訊息,請參閱[程式設計模型概述](https://docs.solana.com/developing/programming-model/overview)。
206 |
207 | 要了解有關在 Solana 上開發程式的更多訊息,請參閱[已部署程式概述](https://docs.solana.com/developing/deployed-programs/overview)。
208 |
209 | ## 指向公開的 Solana 集群
210 |
211 | Solana 有三個公開集群:
212 |
213 | - `devnet` - 啟用空投的開發者集群
214 | - `testnet` - Tour De Sol 沒有空投的測試集群
215 | - `mainnet-beta` - 主網集群
216 |
217 | 使用 Solana CLI 的 `solana` 指令去選擇集群
218 |
219 | 選擇 `devnet` 集群:
220 | ```bash
221 | $ solana config set --url devnet
222 | ```
223 |
224 | 選擇 `local` 集群:
225 | ```bash
226 | $ solana config set --url localhost
227 | ```
228 |
229 | ## 透過高級的範例擴展你的技能
230 |
231 | 還有更多的東西要學習。以下範例展示了更多高級功能,例如自定義錯誤、高級帳戶處理、數據序列化建議、基準測試...等。
232 |
233 | - [Programming Examples](https://github.com/solana-labs/solana-program-library/tree/master/examples)
234 | - [Token Program](https://github.com/solana-labs/solana-program-library/tree/master/token)
235 | - [Token Swap Program](https://github.com/solana-labs/solana-program-library/tree/master/token-swap)
236 |
--------------------------------------------------------------------------------
/cluster-devnet.env:
--------------------------------------------------------------------------------
1 | LIVE=1
2 | CLUSTER=devnet
3 |
--------------------------------------------------------------------------------
/cluster-mainnet-beta.env:
--------------------------------------------------------------------------------
1 | LIVE=1
2 | CLUSTER=mainnet-beta
3 |
--------------------------------------------------------------------------------
/cluster-testnet.env:
--------------------------------------------------------------------------------
1 | LIVE=1
2 | CLUSTER=testnet
3 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "solana-example-helloworld",
3 | "version": "0.0.1",
4 | "description": "",
5 | "repository": {
6 | "type": "git",
7 | "url": "https://github.com/jsoneaday/solana-helloworld"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "MIT",
12 | "scripts": {
13 | "start": "ts-node src/client/main.ts",
14 | "start-with-test-validator": "start-server-and-test 'solana-test-validator --reset --quiet' http://localhost:8899/health start",
15 | "lint": "eslint --ext .ts src/client/* && prettier --check \"src/client/**/*.ts\"",
16 | "lint:fix": "eslint --ext .ts src/client/* --fix && prettier --write \"src/client/**/*.ts\"",
17 | "clean": "npm run clean:program-c && npm run clean:program-rust",
18 | "build:program-c": "V=1 make -C ./src/program-c helloworld",
19 | "clean:program-c": "V=1 make -C ./src/program-c clean",
20 | "build:program-rust": "cargo build-bpf --manifest-path=./src/program-rust/Cargo.toml --bpf-out-dir=dist/program",
21 | "clean:program-rust": "cargo clean --manifest-path=./src/program-rust/Cargo.toml && rm -rf ./dist",
22 | "test:program-rust": "cargo test-bpf --manifest-path=./src/program-rust/Cargo.toml",
23 | "pretty": "prettier --write '{,src/**/}*.ts'",
24 | "postinstall": "cargo update --manifest-path=src/program-rust/Cargo.toml"
25 | },
26 | "dependencies": {
27 | "@solana/web3.js": "^1.7.0",
28 | "borsh": "^0.3.1",
29 | "dotenv": "8.2.0",
30 | "json-to-pretty-yaml": "^1.2.2",
31 | "mkdirp": "^1.0.4",
32 | "mz": "^2.7.0",
33 | "yaml": "^1.10.2"
34 | },
35 | "devDependencies": {
36 | "@tsconfig/recommended": "^1.0.1",
37 | "@types/eslint": "^7.2.4",
38 | "@types/eslint-plugin-prettier": "^3.1.0",
39 | "@types/mkdirp": "^1.0.1",
40 | "@types/mz": "^2.7.2",
41 | "@types/prettier": "^2.1.5",
42 | "@types/yaml": "^1.9.7",
43 | "@typescript-eslint/eslint-plugin": "^4.6.0",
44 | "@typescript-eslint/parser": "^4.6.0",
45 | "eslint": "^7.12.1",
46 | "eslint-config-prettier": "^6.15.0",
47 | "eslint-plugin-prettier": "^3.1.4",
48 | "prettier": "^2.1.2",
49 | "start-server-and-test": "^1.11.6",
50 | "ts-node": "^9.0.0",
51 | "typescript": "^4.0.5"
52 | },
53 | "engines": {
54 | "node": "12.x"
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsoneaday/solana-example-helloworld/b2d94236a509caefa565d1b8bf800930f9338545/src/.DS_Store
--------------------------------------------------------------------------------
/src/program-rust/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 |
--------------------------------------------------------------------------------
/src/program-rust/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | [[package]]
4 | name = "Inflector"
5 | version = "0.11.4"
6 | source = "registry+https://github.com/rust-lang/crates.io-index"
7 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
8 | dependencies = [
9 | "lazy_static",
10 | "regex",
11 | ]
12 |
13 | [[package]]
14 | name = "addr2line"
15 | version = "0.14.1"
16 | source = "registry+https://github.com/rust-lang/crates.io-index"
17 | checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
18 | dependencies = [
19 | "gimli",
20 | ]
21 |
22 | [[package]]
23 | name = "adler"
24 | version = "1.0.2"
25 | source = "registry+https://github.com/rust-lang/crates.io-index"
26 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
27 |
28 | [[package]]
29 | name = "ahash"
30 | version = "0.4.7"
31 | source = "registry+https://github.com/rust-lang/crates.io-index"
32 | checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
33 |
34 | [[package]]
35 | name = "aho-corasick"
36 | version = "0.7.18"
37 | source = "registry+https://github.com/rust-lang/crates.io-index"
38 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
39 | dependencies = [
40 | "memchr",
41 | ]
42 |
43 | [[package]]
44 | name = "anyhow"
45 | version = "1.0.40"
46 | source = "registry+https://github.com/rust-lang/crates.io-index"
47 | checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
48 |
49 | [[package]]
50 | name = "arrayref"
51 | version = "0.3.6"
52 | source = "registry+https://github.com/rust-lang/crates.io-index"
53 | checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
54 |
55 | [[package]]
56 | name = "arrayvec"
57 | version = "0.5.2"
58 | source = "registry+https://github.com/rust-lang/crates.io-index"
59 | checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
60 |
61 | [[package]]
62 | name = "ascii"
63 | version = "0.9.3"
64 | source = "registry+https://github.com/rust-lang/crates.io-index"
65 | checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e"
66 |
67 | [[package]]
68 | name = "assert_matches"
69 | version = "1.5.0"
70 | source = "registry+https://github.com/rust-lang/crates.io-index"
71 | checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
72 |
73 | [[package]]
74 | name = "async-trait"
75 | version = "0.1.50"
76 | source = "registry+https://github.com/rust-lang/crates.io-index"
77 | checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
78 | dependencies = [
79 | "proc-macro2 1.0.26",
80 | "quote 1.0.9",
81 | "syn 1.0.71",
82 | ]
83 |
84 | [[package]]
85 | name = "atty"
86 | version = "0.2.14"
87 | source = "registry+https://github.com/rust-lang/crates.io-index"
88 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
89 | dependencies = [
90 | "hermit-abi",
91 | "libc",
92 | "winapi 0.3.9",
93 | ]
94 |
95 | [[package]]
96 | name = "autocfg"
97 | version = "1.0.1"
98 | source = "registry+https://github.com/rust-lang/crates.io-index"
99 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
100 |
101 | [[package]]
102 | name = "backtrace"
103 | version = "0.3.57"
104 | source = "registry+https://github.com/rust-lang/crates.io-index"
105 | checksum = "78ed203b9ba68b242c62b3fb7480f589dd49829be1edb3fe8fc8b4ffda2dcb8d"
106 | dependencies = [
107 | "addr2line",
108 | "cfg-if 1.0.0",
109 | "libc",
110 | "miniz_oxide",
111 | "object",
112 | "rustc-demangle",
113 | "serde",
114 | ]
115 |
116 | [[package]]
117 | name = "base64"
118 | version = "0.12.3"
119 | source = "registry+https://github.com/rust-lang/crates.io-index"
120 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
121 |
122 | [[package]]
123 | name = "base64"
124 | version = "0.13.0"
125 | source = "registry+https://github.com/rust-lang/crates.io-index"
126 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
127 |
128 | [[package]]
129 | name = "bincode"
130 | version = "1.3.3"
131 | source = "registry+https://github.com/rust-lang/crates.io-index"
132 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
133 | dependencies = [
134 | "serde",
135 | ]
136 |
137 | [[package]]
138 | name = "bitflags"
139 | version = "1.2.1"
140 | source = "registry+https://github.com/rust-lang/crates.io-index"
141 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
142 |
143 | [[package]]
144 | name = "blake3"
145 | version = "0.3.7"
146 | source = "registry+https://github.com/rust-lang/crates.io-index"
147 | checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f"
148 | dependencies = [
149 | "arrayref",
150 | "arrayvec",
151 | "cc",
152 | "cfg-if 0.1.10",
153 | "constant_time_eq",
154 | "crypto-mac 0.8.0",
155 | "digest 0.9.0",
156 | ]
157 |
158 | [[package]]
159 | name = "block-buffer"
160 | version = "0.7.3"
161 | source = "registry+https://github.com/rust-lang/crates.io-index"
162 | checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
163 | dependencies = [
164 | "block-padding 0.1.5",
165 | "byte-tools",
166 | "byteorder",
167 | "generic-array 0.12.4",
168 | ]
169 |
170 | [[package]]
171 | name = "block-buffer"
172 | version = "0.9.0"
173 | source = "registry+https://github.com/rust-lang/crates.io-index"
174 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
175 | dependencies = [
176 | "block-padding 0.2.1",
177 | "generic-array 0.14.4",
178 | ]
179 |
180 | [[package]]
181 | name = "block-padding"
182 | version = "0.1.5"
183 | source = "registry+https://github.com/rust-lang/crates.io-index"
184 | checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
185 | dependencies = [
186 | "byte-tools",
187 | ]
188 |
189 | [[package]]
190 | name = "block-padding"
191 | version = "0.2.1"
192 | source = "registry+https://github.com/rust-lang/crates.io-index"
193 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
194 |
195 | [[package]]
196 | name = "borsh"
197 | version = "0.7.2"
198 | source = "registry+https://github.com/rust-lang/crates.io-index"
199 | checksum = "b42b13fa9bf62be34702e5ee4526aff22530ae22fe34a0c4290d30d5e4e782e6"
200 | dependencies = [
201 | "borsh-derive 0.7.2",
202 | ]
203 |
204 | [[package]]
205 | name = "borsh"
206 | version = "0.8.2"
207 | source = "registry+https://github.com/rust-lang/crates.io-index"
208 | checksum = "09a7111f797cc721407885a323fb071636aee57f750b1a4ddc27397eba168a74"
209 | dependencies = [
210 | "borsh-derive 0.8.2",
211 | "hashbrown",
212 | ]
213 |
214 | [[package]]
215 | name = "borsh-derive"
216 | version = "0.7.2"
217 | source = "registry+https://github.com/rust-lang/crates.io-index"
218 | checksum = "e6aaa45f8eec26e4bf71e7e5492cf53a91591af8f871f422d550e7cc43f6b927"
219 | dependencies = [
220 | "borsh-derive-internal 0.7.2",
221 | "borsh-schema-derive-internal 0.7.2",
222 | "proc-macro2 1.0.26",
223 | "syn 1.0.71",
224 | ]
225 |
226 | [[package]]
227 | name = "borsh-derive"
228 | version = "0.8.2"
229 | source = "registry+https://github.com/rust-lang/crates.io-index"
230 | checksum = "307f3740906bac2c118a8122fe22681232b244f1369273e45f1156b45c43d2dd"
231 | dependencies = [
232 | "borsh-derive-internal 0.8.2",
233 | "borsh-schema-derive-internal 0.8.2",
234 | "proc-macro-crate",
235 | "proc-macro2 1.0.26",
236 | "syn 1.0.71",
237 | ]
238 |
239 | [[package]]
240 | name = "borsh-derive-internal"
241 | version = "0.7.2"
242 | source = "registry+https://github.com/rust-lang/crates.io-index"
243 | checksum = "61621b9d3cca65cc54e2583db84ef912d59ae60d2f04ba61bc0d7fc57556bda2"
244 | dependencies = [
245 | "proc-macro2 1.0.26",
246 | "quote 1.0.9",
247 | "syn 1.0.71",
248 | ]
249 |
250 | [[package]]
251 | name = "borsh-derive-internal"
252 | version = "0.8.2"
253 | source = "registry+https://github.com/rust-lang/crates.io-index"
254 | checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc"
255 | dependencies = [
256 | "proc-macro2 1.0.26",
257 | "quote 1.0.9",
258 | "syn 1.0.71",
259 | ]
260 |
261 | [[package]]
262 | name = "borsh-schema-derive-internal"
263 | version = "0.7.2"
264 | source = "registry+https://github.com/rust-lang/crates.io-index"
265 | checksum = "85b38abfda570837b0949c2c7ebd31417e15607861c23eacb2f668c69f6f3bf7"
266 | dependencies = [
267 | "proc-macro2 1.0.26",
268 | "quote 1.0.9",
269 | "syn 1.0.71",
270 | ]
271 |
272 | [[package]]
273 | name = "borsh-schema-derive-internal"
274 | version = "0.8.2"
275 | source = "registry+https://github.com/rust-lang/crates.io-index"
276 | checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728"
277 | dependencies = [
278 | "proc-macro2 1.0.26",
279 | "quote 1.0.9",
280 | "syn 1.0.71",
281 | ]
282 |
283 | [[package]]
284 | name = "bs58"
285 | version = "0.3.1"
286 | source = "registry+https://github.com/rust-lang/crates.io-index"
287 | checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
288 |
289 | [[package]]
290 | name = "bumpalo"
291 | version = "3.6.1"
292 | source = "registry+https://github.com/rust-lang/crates.io-index"
293 | checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
294 |
295 | [[package]]
296 | name = "bv"
297 | version = "0.11.1"
298 | source = "registry+https://github.com/rust-lang/crates.io-index"
299 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340"
300 | dependencies = [
301 | "feature-probe",
302 | "serde",
303 | ]
304 |
305 | [[package]]
306 | name = "byte-tools"
307 | version = "0.3.1"
308 | source = "registry+https://github.com/rust-lang/crates.io-index"
309 | checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
310 |
311 | [[package]]
312 | name = "byteorder"
313 | version = "1.4.3"
314 | source = "registry+https://github.com/rust-lang/crates.io-index"
315 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
316 |
317 | [[package]]
318 | name = "bytes"
319 | version = "0.4.12"
320 | source = "registry+https://github.com/rust-lang/crates.io-index"
321 | checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
322 | dependencies = [
323 | "byteorder",
324 | "either",
325 | "iovec",
326 | ]
327 |
328 | [[package]]
329 | name = "bytes"
330 | version = "1.0.1"
331 | source = "registry+https://github.com/rust-lang/crates.io-index"
332 | checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
333 |
334 | [[package]]
335 | name = "bzip2"
336 | version = "0.3.3"
337 | source = "registry+https://github.com/rust-lang/crates.io-index"
338 | checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
339 | dependencies = [
340 | "bzip2-sys",
341 | "libc",
342 | ]
343 |
344 | [[package]]
345 | name = "bzip2-sys"
346 | version = "0.1.10+1.0.8"
347 | source = "registry+https://github.com/rust-lang/crates.io-index"
348 | checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c"
349 | dependencies = [
350 | "cc",
351 | "libc",
352 | "pkg-config",
353 | ]
354 |
355 | [[package]]
356 | name = "cc"
357 | version = "1.0.49"
358 | source = "registry+https://github.com/rust-lang/crates.io-index"
359 | checksum = "e450b8da92aa6f274e7c6437692f9f2ce6d701fb73bacfcf87897b3f89a4c20e"
360 | dependencies = [
361 | "jobserver",
362 | "num_cpus",
363 | ]
364 |
365 | [[package]]
366 | name = "cfg-if"
367 | version = "0.1.10"
368 | source = "registry+https://github.com/rust-lang/crates.io-index"
369 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
370 |
371 | [[package]]
372 | name = "cfg-if"
373 | version = "1.0.0"
374 | source = "registry+https://github.com/rust-lang/crates.io-index"
375 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
376 |
377 | [[package]]
378 | name = "chrono"
379 | version = "0.4.19"
380 | source = "registry+https://github.com/rust-lang/crates.io-index"
381 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
382 | dependencies = [
383 | "libc",
384 | "num-integer",
385 | "num-traits",
386 | "serde",
387 | "time",
388 | "winapi 0.3.9",
389 | ]
390 |
391 | [[package]]
392 | name = "chrono-humanize"
393 | version = "0.1.2"
394 | source = "registry+https://github.com/rust-lang/crates.io-index"
395 | checksum = "8164ae3089baf04ff71f32aeb70213283dcd236dce8bc976d00b17a458f5f71c"
396 | dependencies = [
397 | "chrono",
398 | ]
399 |
400 | [[package]]
401 | name = "cloudabi"
402 | version = "0.0.3"
403 | source = "registry+https://github.com/rust-lang/crates.io-index"
404 | checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
405 | dependencies = [
406 | "bitflags",
407 | ]
408 |
409 | [[package]]
410 | name = "combine"
411 | version = "3.8.1"
412 | source = "registry+https://github.com/rust-lang/crates.io-index"
413 | checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680"
414 | dependencies = [
415 | "ascii",
416 | "byteorder",
417 | "either",
418 | "memchr",
419 | "unreachable",
420 | ]
421 |
422 | [[package]]
423 | name = "constant_time_eq"
424 | version = "0.1.5"
425 | source = "registry+https://github.com/rust-lang/crates.io-index"
426 | checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
427 |
428 | [[package]]
429 | name = "cpuid-bool"
430 | version = "0.1.2"
431 | source = "registry+https://github.com/rust-lang/crates.io-index"
432 | checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
433 |
434 | [[package]]
435 | name = "crc32fast"
436 | version = "1.2.1"
437 | source = "registry+https://github.com/rust-lang/crates.io-index"
438 | checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
439 | dependencies = [
440 | "cfg-if 1.0.0",
441 | ]
442 |
443 | [[package]]
444 | name = "crossbeam-channel"
445 | version = "0.4.4"
446 | source = "registry+https://github.com/rust-lang/crates.io-index"
447 | checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
448 | dependencies = [
449 | "crossbeam-utils 0.7.2",
450 | "maybe-uninit",
451 | ]
452 |
453 | [[package]]
454 | name = "crossbeam-channel"
455 | version = "0.5.1"
456 | source = "registry+https://github.com/rust-lang/crates.io-index"
457 | checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
458 | dependencies = [
459 | "cfg-if 1.0.0",
460 | "crossbeam-utils 0.8.4",
461 | ]
462 |
463 | [[package]]
464 | name = "crossbeam-deque"
465 | version = "0.7.3"
466 | source = "registry+https://github.com/rust-lang/crates.io-index"
467 | checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
468 | dependencies = [
469 | "crossbeam-epoch 0.8.2",
470 | "crossbeam-utils 0.7.2",
471 | "maybe-uninit",
472 | ]
473 |
474 | [[package]]
475 | name = "crossbeam-deque"
476 | version = "0.8.0"
477 | source = "registry+https://github.com/rust-lang/crates.io-index"
478 | checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
479 | dependencies = [
480 | "cfg-if 1.0.0",
481 | "crossbeam-epoch 0.9.4",
482 | "crossbeam-utils 0.8.4",
483 | ]
484 |
485 | [[package]]
486 | name = "crossbeam-epoch"
487 | version = "0.8.2"
488 | source = "registry+https://github.com/rust-lang/crates.io-index"
489 | checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
490 | dependencies = [
491 | "autocfg",
492 | "cfg-if 0.1.10",
493 | "crossbeam-utils 0.7.2",
494 | "lazy_static",
495 | "maybe-uninit",
496 | "memoffset 0.5.6",
497 | "scopeguard",
498 | ]
499 |
500 | [[package]]
501 | name = "crossbeam-epoch"
502 | version = "0.9.4"
503 | source = "registry+https://github.com/rust-lang/crates.io-index"
504 | checksum = "52fb27eab85b17fbb9f6fd667089e07d6a2eb8743d02639ee7f6a7a7729c9c94"
505 | dependencies = [
506 | "cfg-if 1.0.0",
507 | "crossbeam-utils 0.8.4",
508 | "lazy_static",
509 | "memoffset 0.6.3",
510 | "scopeguard",
511 | ]
512 |
513 | [[package]]
514 | name = "crossbeam-queue"
515 | version = "0.2.3"
516 | source = "registry+https://github.com/rust-lang/crates.io-index"
517 | checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
518 | dependencies = [
519 | "cfg-if 0.1.10",
520 | "crossbeam-utils 0.7.2",
521 | "maybe-uninit",
522 | ]
523 |
524 | [[package]]
525 | name = "crossbeam-utils"
526 | version = "0.7.2"
527 | source = "registry+https://github.com/rust-lang/crates.io-index"
528 | checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
529 | dependencies = [
530 | "autocfg",
531 | "cfg-if 0.1.10",
532 | "lazy_static",
533 | ]
534 |
535 | [[package]]
536 | name = "crossbeam-utils"
537 | version = "0.8.4"
538 | source = "registry+https://github.com/rust-lang/crates.io-index"
539 | checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278"
540 | dependencies = [
541 | "autocfg",
542 | "cfg-if 1.0.0",
543 | "lazy_static",
544 | ]
545 |
546 | [[package]]
547 | name = "crunchy"
548 | version = "0.2.2"
549 | source = "registry+https://github.com/rust-lang/crates.io-index"
550 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
551 |
552 | [[package]]
553 | name = "crypto-mac"
554 | version = "0.7.0"
555 | source = "registry+https://github.com/rust-lang/crates.io-index"
556 | checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
557 | dependencies = [
558 | "generic-array 0.12.4",
559 | "subtle 1.0.0",
560 | ]
561 |
562 | [[package]]
563 | name = "crypto-mac"
564 | version = "0.8.0"
565 | source = "registry+https://github.com/rust-lang/crates.io-index"
566 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
567 | dependencies = [
568 | "generic-array 0.14.4",
569 | "subtle 2.4.0",
570 | ]
571 |
572 | [[package]]
573 | name = "crypto-mac"
574 | version = "0.10.0"
575 | source = "registry+https://github.com/rust-lang/crates.io-index"
576 | checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6"
577 | dependencies = [
578 | "generic-array 0.14.4",
579 | "subtle 2.4.0",
580 | ]
581 |
582 | [[package]]
583 | name = "curve25519-dalek"
584 | version = "2.1.2"
585 | source = "registry+https://github.com/rust-lang/crates.io-index"
586 | checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8"
587 | dependencies = [
588 | "byteorder",
589 | "digest 0.8.1",
590 | "rand_core 0.5.1",
591 | "subtle 2.4.0",
592 | "zeroize",
593 | ]
594 |
595 | [[package]]
596 | name = "curve25519-dalek"
597 | version = "3.1.0"
598 | source = "registry+https://github.com/rust-lang/crates.io-index"
599 | checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3"
600 | dependencies = [
601 | "byteorder",
602 | "digest 0.9.0",
603 | "rand_core 0.5.1",
604 | "subtle 2.4.0",
605 | "zeroize",
606 | ]
607 |
608 | [[package]]
609 | name = "dashmap"
610 | version = "4.0.2"
611 | source = "registry+https://github.com/rust-lang/crates.io-index"
612 | checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
613 | dependencies = [
614 | "cfg-if 1.0.0",
615 | "num_cpus",
616 | "rayon",
617 | ]
618 |
619 | [[package]]
620 | name = "digest"
621 | version = "0.8.1"
622 | source = "registry+https://github.com/rust-lang/crates.io-index"
623 | checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
624 | dependencies = [
625 | "generic-array 0.12.4",
626 | ]
627 |
628 | [[package]]
629 | name = "digest"
630 | version = "0.9.0"
631 | source = "registry+https://github.com/rust-lang/crates.io-index"
632 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
633 | dependencies = [
634 | "generic-array 0.14.4",
635 | ]
636 |
637 | [[package]]
638 | name = "dir-diff"
639 | version = "0.3.2"
640 | source = "registry+https://github.com/rust-lang/crates.io-index"
641 | checksum = "2860407d7d7e2e004bb2128510ad9e8d669e76fa005ccf567977b5d71b8b4a0b"
642 | dependencies = [
643 | "walkdir",
644 | ]
645 |
646 | [[package]]
647 | name = "ed25519"
648 | version = "1.1.1"
649 | source = "registry+https://github.com/rust-lang/crates.io-index"
650 | checksum = "8d0860415b12243916284c67a9be413e044ee6668247b99ba26d94b2bc06c8f6"
651 | dependencies = [
652 | "serde",
653 | "signature",
654 | ]
655 |
656 | [[package]]
657 | name = "ed25519-dalek"
658 | version = "1.0.1"
659 | source = "registry+https://github.com/rust-lang/crates.io-index"
660 | checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
661 | dependencies = [
662 | "curve25519-dalek 3.1.0",
663 | "ed25519",
664 | "rand 0.7.3",
665 | "serde",
666 | "serde_bytes",
667 | "sha2 0.9.3",
668 | "zeroize",
669 | ]
670 |
671 | [[package]]
672 | name = "educe"
673 | version = "0.4.16"
674 | source = "registry+https://github.com/rust-lang/crates.io-index"
675 | checksum = "2b6f648515c65974bcb893b286a5c4a35adfdcfbfd03c1bbf1108f40feec65d7"
676 | dependencies = [
677 | "enum-ordinalize",
678 | "proc-macro2 1.0.26",
679 | "quote 1.0.9",
680 | "syn 1.0.71",
681 | ]
682 |
683 | [[package]]
684 | name = "either"
685 | version = "1.6.1"
686 | source = "registry+https://github.com/rust-lang/crates.io-index"
687 | checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
688 |
689 | [[package]]
690 | name = "encoding_rs"
691 | version = "0.8.28"
692 | source = "registry+https://github.com/rust-lang/crates.io-index"
693 | checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
694 | dependencies = [
695 | "cfg-if 1.0.0",
696 | ]
697 |
698 | [[package]]
699 | name = "enum-ordinalize"
700 | version = "3.1.10"
701 | source = "registry+https://github.com/rust-lang/crates.io-index"
702 | checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef"
703 | dependencies = [
704 | "num-bigint",
705 | "num-traits",
706 | "proc-macro2 1.0.26",
707 | "quote 1.0.9",
708 | "syn 1.0.71",
709 | ]
710 |
711 | [[package]]
712 | name = "env_logger"
713 | version = "0.8.3"
714 | source = "registry+https://github.com/rust-lang/crates.io-index"
715 | checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
716 | dependencies = [
717 | "atty",
718 | "humantime",
719 | "log",
720 | "regex",
721 | "termcolor",
722 | ]
723 |
724 | [[package]]
725 | name = "fake-simd"
726 | version = "0.1.2"
727 | source = "registry+https://github.com/rust-lang/crates.io-index"
728 | checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
729 |
730 | [[package]]
731 | name = "feature-probe"
732 | version = "0.1.1"
733 | source = "registry+https://github.com/rust-lang/crates.io-index"
734 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da"
735 |
736 | [[package]]
737 | name = "filetime"
738 | version = "0.2.14"
739 | source = "registry+https://github.com/rust-lang/crates.io-index"
740 | checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
741 | dependencies = [
742 | "cfg-if 1.0.0",
743 | "libc",
744 | "redox_syscall 0.2.7",
745 | "winapi 0.3.9",
746 | ]
747 |
748 | [[package]]
749 | name = "flate2"
750 | version = "1.0.20"
751 | source = "registry+https://github.com/rust-lang/crates.io-index"
752 | checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
753 | dependencies = [
754 | "cfg-if 1.0.0",
755 | "crc32fast",
756 | "libc",
757 | "miniz_oxide",
758 | ]
759 |
760 | [[package]]
761 | name = "fnv"
762 | version = "1.0.7"
763 | source = "registry+https://github.com/rust-lang/crates.io-index"
764 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
765 |
766 | [[package]]
767 | name = "form_urlencoded"
768 | version = "1.0.1"
769 | source = "registry+https://github.com/rust-lang/crates.io-index"
770 | checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
771 | dependencies = [
772 | "matches",
773 | "percent-encoding",
774 | ]
775 |
776 | [[package]]
777 | name = "fs_extra"
778 | version = "1.2.0"
779 | source = "registry+https://github.com/rust-lang/crates.io-index"
780 | checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
781 |
782 | [[package]]
783 | name = "fuchsia-zircon"
784 | version = "0.3.3"
785 | source = "registry+https://github.com/rust-lang/crates.io-index"
786 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
787 | dependencies = [
788 | "bitflags",
789 | "fuchsia-zircon-sys",
790 | ]
791 |
792 | [[package]]
793 | name = "fuchsia-zircon-sys"
794 | version = "0.3.3"
795 | source = "registry+https://github.com/rust-lang/crates.io-index"
796 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
797 |
798 | [[package]]
799 | name = "futures"
800 | version = "0.1.31"
801 | source = "registry+https://github.com/rust-lang/crates.io-index"
802 | checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
803 |
804 | [[package]]
805 | name = "futures"
806 | version = "0.3.14"
807 | source = "registry+https://github.com/rust-lang/crates.io-index"
808 | checksum = "a9d5813545e459ad3ca1bff9915e9ad7f1a47dc6a91b627ce321d5863b7dd253"
809 | dependencies = [
810 | "futures-channel",
811 | "futures-core",
812 | "futures-executor",
813 | "futures-io",
814 | "futures-sink",
815 | "futures-task",
816 | "futures-util",
817 | ]
818 |
819 | [[package]]
820 | name = "futures-channel"
821 | version = "0.3.14"
822 | source = "registry+https://github.com/rust-lang/crates.io-index"
823 | checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25"
824 | dependencies = [
825 | "futures-core",
826 | "futures-sink",
827 | ]
828 |
829 | [[package]]
830 | name = "futures-core"
831 | version = "0.3.14"
832 | source = "registry+https://github.com/rust-lang/crates.io-index"
833 | checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815"
834 |
835 | [[package]]
836 | name = "futures-executor"
837 | version = "0.3.14"
838 | source = "registry+https://github.com/rust-lang/crates.io-index"
839 | checksum = "10f6cb7042eda00f0049b1d2080aa4b93442997ee507eb3828e8bd7577f94c9d"
840 | dependencies = [
841 | "futures-core",
842 | "futures-task",
843 | "futures-util",
844 | ]
845 |
846 | [[package]]
847 | name = "futures-io"
848 | version = "0.3.14"
849 | source = "registry+https://github.com/rust-lang/crates.io-index"
850 | checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04"
851 |
852 | [[package]]
853 | name = "futures-macro"
854 | version = "0.3.14"
855 | source = "registry+https://github.com/rust-lang/crates.io-index"
856 | checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b"
857 | dependencies = [
858 | "proc-macro-hack",
859 | "proc-macro2 1.0.26",
860 | "quote 1.0.9",
861 | "syn 1.0.71",
862 | ]
863 |
864 | [[package]]
865 | name = "futures-sink"
866 | version = "0.3.14"
867 | source = "registry+https://github.com/rust-lang/crates.io-index"
868 | checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23"
869 |
870 | [[package]]
871 | name = "futures-task"
872 | version = "0.3.14"
873 | source = "registry+https://github.com/rust-lang/crates.io-index"
874 | checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc"
875 |
876 | [[package]]
877 | name = "futures-util"
878 | version = "0.3.14"
879 | source = "registry+https://github.com/rust-lang/crates.io-index"
880 | checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025"
881 | dependencies = [
882 | "futures-channel",
883 | "futures-core",
884 | "futures-io",
885 | "futures-macro",
886 | "futures-sink",
887 | "futures-task",
888 | "memchr",
889 | "pin-project-lite",
890 | "pin-utils",
891 | "proc-macro-hack",
892 | "proc-macro-nested",
893 | "slab",
894 | ]
895 |
896 | [[package]]
897 | name = "generic-array"
898 | version = "0.12.4"
899 | source = "registry+https://github.com/rust-lang/crates.io-index"
900 | checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
901 | dependencies = [
902 | "typenum",
903 | ]
904 |
905 | [[package]]
906 | name = "generic-array"
907 | version = "0.14.4"
908 | source = "registry+https://github.com/rust-lang/crates.io-index"
909 | checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
910 | dependencies = [
911 | "serde",
912 | "typenum",
913 | "version_check",
914 | ]
915 |
916 | [[package]]
917 | name = "gethostname"
918 | version = "0.2.1"
919 | source = "registry+https://github.com/rust-lang/crates.io-index"
920 | checksum = "e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028"
921 | dependencies = [
922 | "libc",
923 | "winapi 0.3.9",
924 | ]
925 |
926 | [[package]]
927 | name = "getrandom"
928 | version = "0.1.16"
929 | source = "registry+https://github.com/rust-lang/crates.io-index"
930 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
931 | dependencies = [
932 | "cfg-if 1.0.0",
933 | "libc",
934 | "wasi 0.9.0+wasi-snapshot-preview1",
935 | ]
936 |
937 | [[package]]
938 | name = "getrandom"
939 | version = "0.2.2"
940 | source = "registry+https://github.com/rust-lang/crates.io-index"
941 | checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
942 | dependencies = [
943 | "cfg-if 1.0.0",
944 | "libc",
945 | "wasi 0.10.0+wasi-snapshot-preview1",
946 | ]
947 |
948 | [[package]]
949 | name = "gimli"
950 | version = "0.23.0"
951 | source = "registry+https://github.com/rust-lang/crates.io-index"
952 | checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
953 |
954 | [[package]]
955 | name = "glob"
956 | version = "0.3.0"
957 | source = "registry+https://github.com/rust-lang/crates.io-index"
958 | checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
959 |
960 | [[package]]
961 | name = "goblin"
962 | version = "0.3.4"
963 | source = "registry+https://github.com/rust-lang/crates.io-index"
964 | checksum = "669cdc3826f69a51d3f8fc3f86de81c2378110254f678b8407977736122057a4"
965 | dependencies = [
966 | "log",
967 | "plain",
968 | "scroll",
969 | ]
970 |
971 | [[package]]
972 | name = "h2"
973 | version = "0.3.3"
974 | source = "registry+https://github.com/rust-lang/crates.io-index"
975 | checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726"
976 | dependencies = [
977 | "bytes 1.0.1",
978 | "fnv",
979 | "futures-core",
980 | "futures-sink",
981 | "futures-util",
982 | "http",
983 | "indexmap",
984 | "slab",
985 | "tokio 1.5.0",
986 | "tokio-util",
987 | "tracing",
988 | ]
989 |
990 | [[package]]
991 | name = "hash32"
992 | version = "0.1.1"
993 | source = "registry+https://github.com/rust-lang/crates.io-index"
994 | checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc"
995 | dependencies = [
996 | "byteorder",
997 | ]
998 |
999 | [[package]]
1000 | name = "hashbrown"
1001 | version = "0.9.1"
1002 | source = "registry+https://github.com/rust-lang/crates.io-index"
1003 | checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
1004 | dependencies = [
1005 | "ahash",
1006 | ]
1007 |
1008 | [[package]]
1009 | name = "hermit-abi"
1010 | version = "0.1.18"
1011 | source = "registry+https://github.com/rust-lang/crates.io-index"
1012 | checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
1013 | dependencies = [
1014 | "libc",
1015 | ]
1016 |
1017 | [[package]]
1018 | name = "hex"
1019 | version = "0.4.3"
1020 | source = "registry+https://github.com/rust-lang/crates.io-index"
1021 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1022 |
1023 | [[package]]
1024 | name = "hmac"
1025 | version = "0.7.1"
1026 | source = "registry+https://github.com/rust-lang/crates.io-index"
1027 | checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
1028 | dependencies = [
1029 | "crypto-mac 0.7.0",
1030 | "digest 0.8.1",
1031 | ]
1032 |
1033 | [[package]]
1034 | name = "hmac"
1035 | version = "0.10.1"
1036 | source = "registry+https://github.com/rust-lang/crates.io-index"
1037 | checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
1038 | dependencies = [
1039 | "crypto-mac 0.10.0",
1040 | "digest 0.9.0",
1041 | ]
1042 |
1043 | [[package]]
1044 | name = "hmac-drbg"
1045 | version = "0.2.0"
1046 | source = "registry+https://github.com/rust-lang/crates.io-index"
1047 | checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b"
1048 | dependencies = [
1049 | "digest 0.8.1",
1050 | "generic-array 0.12.4",
1051 | "hmac 0.7.1",
1052 | ]
1053 |
1054 | [[package]]
1055 | name = "http"
1056 | version = "0.2.4"
1057 | source = "registry+https://github.com/rust-lang/crates.io-index"
1058 | checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
1059 | dependencies = [
1060 | "bytes 1.0.1",
1061 | "fnv",
1062 | "itoa",
1063 | ]
1064 |
1065 | [[package]]
1066 | name = "http-body"
1067 | version = "0.4.1"
1068 | source = "registry+https://github.com/rust-lang/crates.io-index"
1069 | checksum = "5dfb77c123b4e2f72a2069aeae0b4b4949cc7e966df277813fc16347e7549737"
1070 | dependencies = [
1071 | "bytes 1.0.1",
1072 | "http",
1073 | "pin-project-lite",
1074 | ]
1075 |
1076 | [[package]]
1077 | name = "httparse"
1078 | version = "1.4.0"
1079 | source = "registry+https://github.com/rust-lang/crates.io-index"
1080 | checksum = "4a1ce40d6fc9764887c2fdc7305c3dcc429ba11ff981c1509416afd5697e4437"
1081 |
1082 | [[package]]
1083 | name = "httpdate"
1084 | version = "1.0.0"
1085 | source = "registry+https://github.com/rust-lang/crates.io-index"
1086 | checksum = "05842d0d43232b23ccb7060ecb0f0626922c21f30012e97b767b30afd4a5d4b9"
1087 |
1088 | [[package]]
1089 | name = "humantime"
1090 | version = "2.1.0"
1091 | source = "registry+https://github.com/rust-lang/crates.io-index"
1092 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
1093 |
1094 | [[package]]
1095 | name = "hyper"
1096 | version = "0.14.7"
1097 | source = "registry+https://github.com/rust-lang/crates.io-index"
1098 | checksum = "1e5f105c494081baa3bf9e200b279e27ec1623895cd504c7dbef8d0b080fcf54"
1099 | dependencies = [
1100 | "bytes 1.0.1",
1101 | "futures-channel",
1102 | "futures-core",
1103 | "futures-util",
1104 | "h2",
1105 | "http",
1106 | "http-body",
1107 | "httparse",
1108 | "httpdate",
1109 | "itoa",
1110 | "pin-project",
1111 | "socket2",
1112 | "tokio 1.5.0",
1113 | "tower-service",
1114 | "tracing",
1115 | "want",
1116 | ]
1117 |
1118 | [[package]]
1119 | name = "hyper-rustls"
1120 | version = "0.22.1"
1121 | source = "registry+https://github.com/rust-lang/crates.io-index"
1122 | checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
1123 | dependencies = [
1124 | "futures-util",
1125 | "hyper",
1126 | "log",
1127 | "rustls",
1128 | "tokio 1.5.0",
1129 | "tokio-rustls",
1130 | "webpki",
1131 | ]
1132 |
1133 | [[package]]
1134 | name = "idna"
1135 | version = "0.2.3"
1136 | source = "registry+https://github.com/rust-lang/crates.io-index"
1137 | checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
1138 | dependencies = [
1139 | "matches",
1140 | "unicode-bidi",
1141 | "unicode-normalization",
1142 | ]
1143 |
1144 | [[package]]
1145 | name = "indexmap"
1146 | version = "1.6.2"
1147 | source = "registry+https://github.com/rust-lang/crates.io-index"
1148 | checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
1149 | dependencies = [
1150 | "autocfg",
1151 | "hashbrown",
1152 | ]
1153 |
1154 | [[package]]
1155 | name = "instant"
1156 | version = "0.1.9"
1157 | source = "registry+https://github.com/rust-lang/crates.io-index"
1158 | checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
1159 | dependencies = [
1160 | "cfg-if 1.0.0",
1161 | ]
1162 |
1163 | [[package]]
1164 | name = "iovec"
1165 | version = "0.1.4"
1166 | source = "registry+https://github.com/rust-lang/crates.io-index"
1167 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
1168 | dependencies = [
1169 | "libc",
1170 | ]
1171 |
1172 | [[package]]
1173 | name = "ipnet"
1174 | version = "2.3.0"
1175 | source = "registry+https://github.com/rust-lang/crates.io-index"
1176 | checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
1177 |
1178 | [[package]]
1179 | name = "itertools"
1180 | version = "0.9.0"
1181 | source = "registry+https://github.com/rust-lang/crates.io-index"
1182 | checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
1183 | dependencies = [
1184 | "either",
1185 | ]
1186 |
1187 | [[package]]
1188 | name = "itoa"
1189 | version = "0.4.7"
1190 | source = "registry+https://github.com/rust-lang/crates.io-index"
1191 | checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
1192 |
1193 | [[package]]
1194 | name = "jemalloc-ctl"
1195 | version = "0.3.3"
1196 | source = "registry+https://github.com/rust-lang/crates.io-index"
1197 | checksum = "c502a5ff9dd2924f1ed32ba96e3b65735d837b4bfd978d3161b1702e66aca4b7"
1198 | dependencies = [
1199 | "jemalloc-sys",
1200 | "libc",
1201 | "paste",
1202 | ]
1203 |
1204 | [[package]]
1205 | name = "jemalloc-sys"
1206 | version = "0.3.2"
1207 | source = "registry+https://github.com/rust-lang/crates.io-index"
1208 | checksum = "0d3b9f3f5c9b31aa0f5ed3260385ac205db665baa41d49bb8338008ae94ede45"
1209 | dependencies = [
1210 | "cc",
1211 | "fs_extra",
1212 | "libc",
1213 | ]
1214 |
1215 | [[package]]
1216 | name = "jemallocator"
1217 | version = "0.3.2"
1218 | source = "registry+https://github.com/rust-lang/crates.io-index"
1219 | checksum = "43ae63fcfc45e99ab3d1b29a46782ad679e98436c3169d15a167a1108a724b69"
1220 | dependencies = [
1221 | "jemalloc-sys",
1222 | "libc",
1223 | ]
1224 |
1225 | [[package]]
1226 | name = "jobserver"
1227 | version = "0.1.22"
1228 | source = "registry+https://github.com/rust-lang/crates.io-index"
1229 | checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd"
1230 | dependencies = [
1231 | "libc",
1232 | ]
1233 |
1234 | [[package]]
1235 | name = "js-sys"
1236 | version = "0.3.50"
1237 | source = "registry+https://github.com/rust-lang/crates.io-index"
1238 | checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
1239 | dependencies = [
1240 | "wasm-bindgen",
1241 | ]
1242 |
1243 | [[package]]
1244 | name = "keccak"
1245 | version = "0.1.0"
1246 | source = "registry+https://github.com/rust-lang/crates.io-index"
1247 | checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7"
1248 |
1249 | [[package]]
1250 | name = "kernel32-sys"
1251 | version = "0.2.2"
1252 | source = "registry+https://github.com/rust-lang/crates.io-index"
1253 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
1254 | dependencies = [
1255 | "winapi 0.2.8",
1256 | "winapi-build",
1257 | ]
1258 |
1259 | [[package]]
1260 | name = "lazy_static"
1261 | version = "1.4.0"
1262 | source = "registry+https://github.com/rust-lang/crates.io-index"
1263 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1264 | dependencies = [
1265 | "spin",
1266 | ]
1267 |
1268 | [[package]]
1269 | name = "libc"
1270 | version = "0.2.94"
1271 | source = "registry+https://github.com/rust-lang/crates.io-index"
1272 | checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
1273 |
1274 | [[package]]
1275 | name = "libloading"
1276 | version = "0.6.7"
1277 | source = "registry+https://github.com/rust-lang/crates.io-index"
1278 | checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883"
1279 | dependencies = [
1280 | "cfg-if 1.0.0",
1281 | "winapi 0.3.9",
1282 | ]
1283 |
1284 | [[package]]
1285 | name = "libsecp256k1"
1286 | version = "0.3.5"
1287 | source = "registry+https://github.com/rust-lang/crates.io-index"
1288 | checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962"
1289 | dependencies = [
1290 | "arrayref",
1291 | "crunchy",
1292 | "digest 0.8.1",
1293 | "hmac-drbg",
1294 | "rand 0.7.3",
1295 | "sha2 0.8.2",
1296 | "subtle 2.4.0",
1297 | "typenum",
1298 | ]
1299 |
1300 | [[package]]
1301 | name = "lock_api"
1302 | version = "0.3.4"
1303 | source = "registry+https://github.com/rust-lang/crates.io-index"
1304 | checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
1305 | dependencies = [
1306 | "scopeguard",
1307 | ]
1308 |
1309 | [[package]]
1310 | name = "lock_api"
1311 | version = "0.4.4"
1312 | source = "registry+https://github.com/rust-lang/crates.io-index"
1313 | checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
1314 | dependencies = [
1315 | "scopeguard",
1316 | ]
1317 |
1318 | [[package]]
1319 | name = "log"
1320 | version = "0.4.14"
1321 | source = "registry+https://github.com/rust-lang/crates.io-index"
1322 | checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
1323 | dependencies = [
1324 | "cfg-if 1.0.0",
1325 | ]
1326 |
1327 | [[package]]
1328 | name = "matches"
1329 | version = "0.1.8"
1330 | source = "registry+https://github.com/rust-lang/crates.io-index"
1331 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
1332 |
1333 | [[package]]
1334 | name = "maybe-uninit"
1335 | version = "2.0.0"
1336 | source = "registry+https://github.com/rust-lang/crates.io-index"
1337 | checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
1338 |
1339 | [[package]]
1340 | name = "memchr"
1341 | version = "2.4.0"
1342 | source = "registry+https://github.com/rust-lang/crates.io-index"
1343 | checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
1344 |
1345 | [[package]]
1346 | name = "memmap2"
1347 | version = "0.1.0"
1348 | source = "registry+https://github.com/rust-lang/crates.io-index"
1349 | checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a"
1350 | dependencies = [
1351 | "libc",
1352 | ]
1353 |
1354 | [[package]]
1355 | name = "memoffset"
1356 | version = "0.5.6"
1357 | source = "registry+https://github.com/rust-lang/crates.io-index"
1358 | checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
1359 | dependencies = [
1360 | "autocfg",
1361 | ]
1362 |
1363 | [[package]]
1364 | name = "memoffset"
1365 | version = "0.6.3"
1366 | source = "registry+https://github.com/rust-lang/crates.io-index"
1367 | checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
1368 | dependencies = [
1369 | "autocfg",
1370 | ]
1371 |
1372 | [[package]]
1373 | name = "mime"
1374 | version = "0.3.16"
1375 | source = "registry+https://github.com/rust-lang/crates.io-index"
1376 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
1377 |
1378 | [[package]]
1379 | name = "miniz_oxide"
1380 | version = "0.4.4"
1381 | source = "registry+https://github.com/rust-lang/crates.io-index"
1382 | checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
1383 | dependencies = [
1384 | "adler",
1385 | "autocfg",
1386 | ]
1387 |
1388 | [[package]]
1389 | name = "mio"
1390 | version = "0.6.23"
1391 | source = "registry+https://github.com/rust-lang/crates.io-index"
1392 | checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
1393 | dependencies = [
1394 | "cfg-if 0.1.10",
1395 | "fuchsia-zircon",
1396 | "fuchsia-zircon-sys",
1397 | "iovec",
1398 | "kernel32-sys",
1399 | "libc",
1400 | "log",
1401 | "miow 0.2.2",
1402 | "net2",
1403 | "slab",
1404 | "winapi 0.2.8",
1405 | ]
1406 |
1407 | [[package]]
1408 | name = "mio"
1409 | version = "0.7.11"
1410 | source = "registry+https://github.com/rust-lang/crates.io-index"
1411 | checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956"
1412 | dependencies = [
1413 | "libc",
1414 | "log",
1415 | "miow 0.3.7",
1416 | "ntapi",
1417 | "winapi 0.3.9",
1418 | ]
1419 |
1420 | [[package]]
1421 | name = "mio-uds"
1422 | version = "0.6.8"
1423 | source = "registry+https://github.com/rust-lang/crates.io-index"
1424 | checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
1425 | dependencies = [
1426 | "iovec",
1427 | "libc",
1428 | "mio 0.6.23",
1429 | ]
1430 |
1431 | [[package]]
1432 | name = "miow"
1433 | version = "0.2.2"
1434 | source = "registry+https://github.com/rust-lang/crates.io-index"
1435 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
1436 | dependencies = [
1437 | "kernel32-sys",
1438 | "net2",
1439 | "winapi 0.2.8",
1440 | "ws2_32-sys",
1441 | ]
1442 |
1443 | [[package]]
1444 | name = "miow"
1445 | version = "0.3.7"
1446 | source = "registry+https://github.com/rust-lang/crates.io-index"
1447 | checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
1448 | dependencies = [
1449 | "winapi 0.3.9",
1450 | ]
1451 |
1452 | [[package]]
1453 | name = "net2"
1454 | version = "0.2.37"
1455 | source = "registry+https://github.com/rust-lang/crates.io-index"
1456 | checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
1457 | dependencies = [
1458 | "cfg-if 0.1.10",
1459 | "libc",
1460 | "winapi 0.3.9",
1461 | ]
1462 |
1463 | [[package]]
1464 | name = "ntapi"
1465 | version = "0.3.6"
1466 | source = "registry+https://github.com/rust-lang/crates.io-index"
1467 | checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
1468 | dependencies = [
1469 | "winapi 0.3.9",
1470 | ]
1471 |
1472 | [[package]]
1473 | name = "num-bigint"
1474 | version = "0.4.0"
1475 | source = "registry+https://github.com/rust-lang/crates.io-index"
1476 | checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512"
1477 | dependencies = [
1478 | "autocfg",
1479 | "num-integer",
1480 | "num-traits",
1481 | ]
1482 |
1483 | [[package]]
1484 | name = "num-derive"
1485 | version = "0.3.3"
1486 | source = "registry+https://github.com/rust-lang/crates.io-index"
1487 | checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
1488 | dependencies = [
1489 | "proc-macro2 1.0.26",
1490 | "quote 1.0.9",
1491 | "syn 1.0.71",
1492 | ]
1493 |
1494 | [[package]]
1495 | name = "num-integer"
1496 | version = "0.1.44"
1497 | source = "registry+https://github.com/rust-lang/crates.io-index"
1498 | checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
1499 | dependencies = [
1500 | "autocfg",
1501 | "num-traits",
1502 | ]
1503 |
1504 | [[package]]
1505 | name = "num-traits"
1506 | version = "0.2.14"
1507 | source = "registry+https://github.com/rust-lang/crates.io-index"
1508 | checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
1509 | dependencies = [
1510 | "autocfg",
1511 | ]
1512 |
1513 | [[package]]
1514 | name = "num_cpus"
1515 | version = "1.13.0"
1516 | source = "registry+https://github.com/rust-lang/crates.io-index"
1517 | checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
1518 | dependencies = [
1519 | "hermit-abi",
1520 | "libc",
1521 | ]
1522 |
1523 | [[package]]
1524 | name = "object"
1525 | version = "0.23.0"
1526 | source = "registry+https://github.com/rust-lang/crates.io-index"
1527 | checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
1528 |
1529 | [[package]]
1530 | name = "once_cell"
1531 | version = "1.7.2"
1532 | source = "registry+https://github.com/rust-lang/crates.io-index"
1533 | checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
1534 |
1535 | [[package]]
1536 | name = "opaque-debug"
1537 | version = "0.2.3"
1538 | source = "registry+https://github.com/rust-lang/crates.io-index"
1539 | checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
1540 |
1541 | [[package]]
1542 | name = "opaque-debug"
1543 | version = "0.3.0"
1544 | source = "registry+https://github.com/rust-lang/crates.io-index"
1545 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
1546 |
1547 | [[package]]
1548 | name = "ouroboros"
1549 | version = "0.5.1"
1550 | source = "registry+https://github.com/rust-lang/crates.io-index"
1551 | checksum = "cc04551635026d3ac7bc646698ea1836a85ed2a26b7094fe1d15d8b14854c4a2"
1552 | dependencies = [
1553 | "ouroboros_macro",
1554 | "stable_deref_trait",
1555 | ]
1556 |
1557 | [[package]]
1558 | name = "ouroboros_macro"
1559 | version = "0.5.1"
1560 | source = "registry+https://github.com/rust-lang/crates.io-index"
1561 | checksum = "cec33dfceabec83cd0e95a5ce9d20e76ab3a5cbfef59659b8c927f69b93ed8ae"
1562 | dependencies = [
1563 | "Inflector",
1564 | "proc-macro2 1.0.26",
1565 | "quote 1.0.9",
1566 | "syn 1.0.71",
1567 | ]
1568 |
1569 | [[package]]
1570 | name = "parking_lot"
1571 | version = "0.9.0"
1572 | source = "registry+https://github.com/rust-lang/crates.io-index"
1573 | checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
1574 | dependencies = [
1575 | "lock_api 0.3.4",
1576 | "parking_lot_core 0.6.2",
1577 | "rustc_version",
1578 | ]
1579 |
1580 | [[package]]
1581 | name = "parking_lot"
1582 | version = "0.11.1"
1583 | source = "registry+https://github.com/rust-lang/crates.io-index"
1584 | checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
1585 | dependencies = [
1586 | "instant",
1587 | "lock_api 0.4.4",
1588 | "parking_lot_core 0.8.3",
1589 | ]
1590 |
1591 | [[package]]
1592 | name = "parking_lot_core"
1593 | version = "0.6.2"
1594 | source = "registry+https://github.com/rust-lang/crates.io-index"
1595 | checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
1596 | dependencies = [
1597 | "cfg-if 0.1.10",
1598 | "cloudabi",
1599 | "libc",
1600 | "redox_syscall 0.1.57",
1601 | "rustc_version",
1602 | "smallvec 0.6.14",
1603 | "winapi 0.3.9",
1604 | ]
1605 |
1606 | [[package]]
1607 | name = "parking_lot_core"
1608 | version = "0.8.3"
1609 | source = "registry+https://github.com/rust-lang/crates.io-index"
1610 | checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
1611 | dependencies = [
1612 | "cfg-if 1.0.0",
1613 | "instant",
1614 | "libc",
1615 | "redox_syscall 0.2.7",
1616 | "smallvec 1.6.1",
1617 | "winapi 0.3.9",
1618 | ]
1619 |
1620 | [[package]]
1621 | name = "paste"
1622 | version = "0.1.18"
1623 | source = "registry+https://github.com/rust-lang/crates.io-index"
1624 | checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
1625 | dependencies = [
1626 | "paste-impl",
1627 | "proc-macro-hack",
1628 | ]
1629 |
1630 | [[package]]
1631 | name = "paste-impl"
1632 | version = "0.1.18"
1633 | source = "registry+https://github.com/rust-lang/crates.io-index"
1634 | checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
1635 | dependencies = [
1636 | "proc-macro-hack",
1637 | ]
1638 |
1639 | [[package]]
1640 | name = "pbkdf2"
1641 | version = "0.6.0"
1642 | source = "registry+https://github.com/rust-lang/crates.io-index"
1643 | checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a"
1644 | dependencies = [
1645 | "crypto-mac 0.10.0",
1646 | ]
1647 |
1648 | [[package]]
1649 | name = "percent-encoding"
1650 | version = "2.1.0"
1651 | source = "registry+https://github.com/rust-lang/crates.io-index"
1652 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
1653 |
1654 | [[package]]
1655 | name = "pin-project"
1656 | version = "1.0.7"
1657 | source = "registry+https://github.com/rust-lang/crates.io-index"
1658 | checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
1659 | dependencies = [
1660 | "pin-project-internal",
1661 | ]
1662 |
1663 | [[package]]
1664 | name = "pin-project-internal"
1665 | version = "1.0.7"
1666 | source = "registry+https://github.com/rust-lang/crates.io-index"
1667 | checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
1668 | dependencies = [
1669 | "proc-macro2 1.0.26",
1670 | "quote 1.0.9",
1671 | "syn 1.0.71",
1672 | ]
1673 |
1674 | [[package]]
1675 | name = "pin-project-lite"
1676 | version = "0.2.6"
1677 | source = "registry+https://github.com/rust-lang/crates.io-index"
1678 | checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
1679 |
1680 | [[package]]
1681 | name = "pin-utils"
1682 | version = "0.1.0"
1683 | source = "registry+https://github.com/rust-lang/crates.io-index"
1684 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
1685 |
1686 | [[package]]
1687 | name = "pkg-config"
1688 | version = "0.3.19"
1689 | source = "registry+https://github.com/rust-lang/crates.io-index"
1690 | checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
1691 |
1692 | [[package]]
1693 | name = "plain"
1694 | version = "0.2.3"
1695 | source = "registry+https://github.com/rust-lang/crates.io-index"
1696 | checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
1697 |
1698 | [[package]]
1699 | name = "ppv-lite86"
1700 | version = "0.2.10"
1701 | source = "registry+https://github.com/rust-lang/crates.io-index"
1702 | checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
1703 |
1704 | [[package]]
1705 | name = "proc-macro-crate"
1706 | version = "0.1.5"
1707 | source = "registry+https://github.com/rust-lang/crates.io-index"
1708 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
1709 | dependencies = [
1710 | "toml",
1711 | ]
1712 |
1713 | [[package]]
1714 | name = "proc-macro-hack"
1715 | version = "0.5.19"
1716 | source = "registry+https://github.com/rust-lang/crates.io-index"
1717 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
1718 |
1719 | [[package]]
1720 | name = "proc-macro-nested"
1721 | version = "0.1.7"
1722 | source = "registry+https://github.com/rust-lang/crates.io-index"
1723 | checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
1724 |
1725 | [[package]]
1726 | name = "proc-macro2"
1727 | version = "0.4.30"
1728 | source = "registry+https://github.com/rust-lang/crates.io-index"
1729 | checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
1730 | dependencies = [
1731 | "unicode-xid 0.1.0",
1732 | ]
1733 |
1734 | [[package]]
1735 | name = "proc-macro2"
1736 | version = "1.0.26"
1737 | source = "registry+https://github.com/rust-lang/crates.io-index"
1738 | checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
1739 | dependencies = [
1740 | "unicode-xid 0.2.2",
1741 | ]
1742 |
1743 | [[package]]
1744 | name = "quote"
1745 | version = "0.6.13"
1746 | source = "registry+https://github.com/rust-lang/crates.io-index"
1747 | checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
1748 | dependencies = [
1749 | "proc-macro2 0.4.30",
1750 | ]
1751 |
1752 | [[package]]
1753 | name = "quote"
1754 | version = "1.0.9"
1755 | source = "registry+https://github.com/rust-lang/crates.io-index"
1756 | checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
1757 | dependencies = [
1758 | "proc-macro2 1.0.26",
1759 | ]
1760 |
1761 | [[package]]
1762 | name = "rand"
1763 | version = "0.7.3"
1764 | source = "registry+https://github.com/rust-lang/crates.io-index"
1765 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
1766 | dependencies = [
1767 | "getrandom 0.1.16",
1768 | "libc",
1769 | "rand_chacha 0.2.2",
1770 | "rand_core 0.5.1",
1771 | "rand_hc 0.2.0",
1772 | "rand_pcg",
1773 | ]
1774 |
1775 | [[package]]
1776 | name = "rand"
1777 | version = "0.8.3"
1778 | source = "registry+https://github.com/rust-lang/crates.io-index"
1779 | checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
1780 | dependencies = [
1781 | "libc",
1782 | "rand_chacha 0.3.0",
1783 | "rand_core 0.6.2",
1784 | "rand_hc 0.3.0",
1785 | ]
1786 |
1787 | [[package]]
1788 | name = "rand_chacha"
1789 | version = "0.2.2"
1790 | source = "registry+https://github.com/rust-lang/crates.io-index"
1791 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
1792 | dependencies = [
1793 | "ppv-lite86",
1794 | "rand_core 0.5.1",
1795 | ]
1796 |
1797 | [[package]]
1798 | name = "rand_chacha"
1799 | version = "0.3.0"
1800 | source = "registry+https://github.com/rust-lang/crates.io-index"
1801 | checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
1802 | dependencies = [
1803 | "ppv-lite86",
1804 | "rand_core 0.6.2",
1805 | ]
1806 |
1807 | [[package]]
1808 | name = "rand_core"
1809 | version = "0.5.1"
1810 | source = "registry+https://github.com/rust-lang/crates.io-index"
1811 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
1812 | dependencies = [
1813 | "getrandom 0.1.16",
1814 | ]
1815 |
1816 | [[package]]
1817 | name = "rand_core"
1818 | version = "0.6.2"
1819 | source = "registry+https://github.com/rust-lang/crates.io-index"
1820 | checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
1821 | dependencies = [
1822 | "getrandom 0.2.2",
1823 | ]
1824 |
1825 | [[package]]
1826 | name = "rand_hc"
1827 | version = "0.2.0"
1828 | source = "registry+https://github.com/rust-lang/crates.io-index"
1829 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
1830 | dependencies = [
1831 | "rand_core 0.5.1",
1832 | ]
1833 |
1834 | [[package]]
1835 | name = "rand_hc"
1836 | version = "0.3.0"
1837 | source = "registry+https://github.com/rust-lang/crates.io-index"
1838 | checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
1839 | dependencies = [
1840 | "rand_core 0.6.2",
1841 | ]
1842 |
1843 | [[package]]
1844 | name = "rand_pcg"
1845 | version = "0.2.1"
1846 | source = "registry+https://github.com/rust-lang/crates.io-index"
1847 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
1848 | dependencies = [
1849 | "rand_core 0.5.1",
1850 | ]
1851 |
1852 | [[package]]
1853 | name = "rayon"
1854 | version = "1.5.0"
1855 | source = "registry+https://github.com/rust-lang/crates.io-index"
1856 | checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
1857 | dependencies = [
1858 | "autocfg",
1859 | "crossbeam-deque 0.8.0",
1860 | "either",
1861 | "rayon-core",
1862 | ]
1863 |
1864 | [[package]]
1865 | name = "rayon-core"
1866 | version = "1.9.0"
1867 | source = "registry+https://github.com/rust-lang/crates.io-index"
1868 | checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
1869 | dependencies = [
1870 | "crossbeam-channel 0.5.1",
1871 | "crossbeam-deque 0.8.0",
1872 | "crossbeam-utils 0.8.4",
1873 | "lazy_static",
1874 | "num_cpus",
1875 | ]
1876 |
1877 | [[package]]
1878 | name = "redox_syscall"
1879 | version = "0.1.57"
1880 | source = "registry+https://github.com/rust-lang/crates.io-index"
1881 | checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
1882 |
1883 | [[package]]
1884 | name = "redox_syscall"
1885 | version = "0.2.7"
1886 | source = "registry+https://github.com/rust-lang/crates.io-index"
1887 | checksum = "85dd92e586f7355c633911e11f77f3d12f04b1b1bd76a198bd34ae3af8341ef2"
1888 | dependencies = [
1889 | "bitflags",
1890 | ]
1891 |
1892 | [[package]]
1893 | name = "regex"
1894 | version = "1.5.2"
1895 | source = "registry+https://github.com/rust-lang/crates.io-index"
1896 | checksum = "1efb2352a0f4d4b128f734b5c44c79ff80117351138733f12f982fe3e2b13343"
1897 | dependencies = [
1898 | "aho-corasick",
1899 | "memchr",
1900 | "regex-syntax",
1901 | ]
1902 |
1903 | [[package]]
1904 | name = "regex-syntax"
1905 | version = "0.6.24"
1906 | source = "registry+https://github.com/rust-lang/crates.io-index"
1907 | checksum = "00efb87459ba4f6fb2169d20f68565555688e1250ee6825cdf6254f8b48fafb2"
1908 |
1909 | [[package]]
1910 | name = "remove_dir_all"
1911 | version = "0.5.3"
1912 | source = "registry+https://github.com/rust-lang/crates.io-index"
1913 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
1914 | dependencies = [
1915 | "winapi 0.3.9",
1916 | ]
1917 |
1918 | [[package]]
1919 | name = "reqwest"
1920 | version = "0.11.3"
1921 | source = "registry+https://github.com/rust-lang/crates.io-index"
1922 | checksum = "2296f2fac53979e8ccbc4a1136b25dcefd37be9ed7e4a1f6b05a6029c84ff124"
1923 | dependencies = [
1924 | "base64 0.13.0",
1925 | "bytes 1.0.1",
1926 | "encoding_rs",
1927 | "futures-core",
1928 | "futures-util",
1929 | "http",
1930 | "http-body",
1931 | "hyper",
1932 | "hyper-rustls",
1933 | "ipnet",
1934 | "js-sys",
1935 | "lazy_static",
1936 | "log",
1937 | "mime",
1938 | "percent-encoding",
1939 | "pin-project-lite",
1940 | "rustls",
1941 | "serde",
1942 | "serde_json",
1943 | "serde_urlencoded",
1944 | "tokio 1.5.0",
1945 | "tokio-rustls",
1946 | "url",
1947 | "wasm-bindgen",
1948 | "wasm-bindgen-futures",
1949 | "web-sys",
1950 | "webpki-roots",
1951 | "winreg",
1952 | ]
1953 |
1954 | [[package]]
1955 | name = "ring"
1956 | version = "0.16.12"
1957 | source = "registry+https://github.com/rust-lang/crates.io-index"
1958 | checksum = "1ba5a8ec64ee89a76c98c549af81ff14813df09c3e6dc4766c3856da48597a0c"
1959 | dependencies = [
1960 | "cc",
1961 | "lazy_static",
1962 | "libc",
1963 | "spin",
1964 | "untrusted",
1965 | "web-sys",
1966 | "winapi 0.3.9",
1967 | ]
1968 |
1969 | [[package]]
1970 | name = "rustc-demangle"
1971 | version = "0.1.18"
1972 | source = "registry+https://github.com/rust-lang/crates.io-index"
1973 | checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
1974 |
1975 | [[package]]
1976 | name = "rustc_version"
1977 | version = "0.2.3"
1978 | source = "registry+https://github.com/rust-lang/crates.io-index"
1979 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
1980 | dependencies = [
1981 | "semver",
1982 | ]
1983 |
1984 | [[package]]
1985 | name = "rustls"
1986 | version = "0.19.1"
1987 | source = "registry+https://github.com/rust-lang/crates.io-index"
1988 | checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
1989 | dependencies = [
1990 | "base64 0.13.0",
1991 | "log",
1992 | "ring",
1993 | "sct",
1994 | "webpki",
1995 | ]
1996 |
1997 | [[package]]
1998 | name = "rustversion"
1999 | version = "1.0.4"
2000 | source = "registry+https://github.com/rust-lang/crates.io-index"
2001 | checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
2002 |
2003 | [[package]]
2004 | name = "ryu"
2005 | version = "1.0.5"
2006 | source = "registry+https://github.com/rust-lang/crates.io-index"
2007 | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
2008 |
2009 | [[package]]
2010 | name = "same-file"
2011 | version = "1.0.6"
2012 | source = "registry+https://github.com/rust-lang/crates.io-index"
2013 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
2014 | dependencies = [
2015 | "winapi-util",
2016 | ]
2017 |
2018 | [[package]]
2019 | name = "scopeguard"
2020 | version = "1.1.0"
2021 | source = "registry+https://github.com/rust-lang/crates.io-index"
2022 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
2023 |
2024 | [[package]]
2025 | name = "scroll"
2026 | version = "0.10.2"
2027 | source = "registry+https://github.com/rust-lang/crates.io-index"
2028 | checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec"
2029 | dependencies = [
2030 | "scroll_derive",
2031 | ]
2032 |
2033 | [[package]]
2034 | name = "scroll_derive"
2035 | version = "0.10.5"
2036 | source = "registry+https://github.com/rust-lang/crates.io-index"
2037 | checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0"
2038 | dependencies = [
2039 | "proc-macro2 1.0.26",
2040 | "quote 1.0.9",
2041 | "syn 1.0.71",
2042 | ]
2043 |
2044 | [[package]]
2045 | name = "sct"
2046 | version = "0.6.0"
2047 | source = "registry+https://github.com/rust-lang/crates.io-index"
2048 | checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c"
2049 | dependencies = [
2050 | "ring",
2051 | "untrusted",
2052 | ]
2053 |
2054 | [[package]]
2055 | name = "semver"
2056 | version = "0.9.0"
2057 | source = "registry+https://github.com/rust-lang/crates.io-index"
2058 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
2059 | dependencies = [
2060 | "semver-parser",
2061 | ]
2062 |
2063 | [[package]]
2064 | name = "semver-parser"
2065 | version = "0.7.0"
2066 | source = "registry+https://github.com/rust-lang/crates.io-index"
2067 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
2068 |
2069 | [[package]]
2070 | name = "serde"
2071 | version = "1.0.125"
2072 | source = "registry+https://github.com/rust-lang/crates.io-index"
2073 | checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
2074 | dependencies = [
2075 | "serde_derive",
2076 | ]
2077 |
2078 | [[package]]
2079 | name = "serde_bytes"
2080 | version = "0.11.5"
2081 | source = "registry+https://github.com/rust-lang/crates.io-index"
2082 | checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9"
2083 | dependencies = [
2084 | "serde",
2085 | ]
2086 |
2087 | [[package]]
2088 | name = "serde_derive"
2089 | version = "1.0.125"
2090 | source = "registry+https://github.com/rust-lang/crates.io-index"
2091 | checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
2092 | dependencies = [
2093 | "proc-macro2 1.0.26",
2094 | "quote 1.0.9",
2095 | "syn 1.0.71",
2096 | ]
2097 |
2098 | [[package]]
2099 | name = "serde_json"
2100 | version = "1.0.64"
2101 | source = "registry+https://github.com/rust-lang/crates.io-index"
2102 | checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
2103 | dependencies = [
2104 | "itoa",
2105 | "ryu",
2106 | "serde",
2107 | ]
2108 |
2109 | [[package]]
2110 | name = "serde_urlencoded"
2111 | version = "0.7.0"
2112 | source = "registry+https://github.com/rust-lang/crates.io-index"
2113 | checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
2114 | dependencies = [
2115 | "form_urlencoded",
2116 | "itoa",
2117 | "ryu",
2118 | "serde",
2119 | ]
2120 |
2121 | [[package]]
2122 | name = "sha2"
2123 | version = "0.8.2"
2124 | source = "registry+https://github.com/rust-lang/crates.io-index"
2125 | checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
2126 | dependencies = [
2127 | "block-buffer 0.7.3",
2128 | "digest 0.8.1",
2129 | "fake-simd",
2130 | "opaque-debug 0.2.3",
2131 | ]
2132 |
2133 | [[package]]
2134 | name = "sha2"
2135 | version = "0.9.3"
2136 | source = "registry+https://github.com/rust-lang/crates.io-index"
2137 | checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de"
2138 | dependencies = [
2139 | "block-buffer 0.9.0",
2140 | "cfg-if 1.0.0",
2141 | "cpuid-bool",
2142 | "digest 0.9.0",
2143 | "opaque-debug 0.3.0",
2144 | ]
2145 |
2146 | [[package]]
2147 | name = "sha3"
2148 | version = "0.9.1"
2149 | source = "registry+https://github.com/rust-lang/crates.io-index"
2150 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
2151 | dependencies = [
2152 | "block-buffer 0.9.0",
2153 | "digest 0.9.0",
2154 | "keccak",
2155 | "opaque-debug 0.3.0",
2156 | ]
2157 |
2158 | [[package]]
2159 | name = "signal-hook-registry"
2160 | version = "1.3.0"
2161 | source = "registry+https://github.com/rust-lang/crates.io-index"
2162 | checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
2163 | dependencies = [
2164 | "libc",
2165 | ]
2166 |
2167 | [[package]]
2168 | name = "signature"
2169 | version = "1.3.0"
2170 | source = "registry+https://github.com/rust-lang/crates.io-index"
2171 | checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68"
2172 |
2173 | [[package]]
2174 | name = "slab"
2175 | version = "0.4.3"
2176 | source = "registry+https://github.com/rust-lang/crates.io-index"
2177 | checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
2178 |
2179 | [[package]]
2180 | name = "smallvec"
2181 | version = "0.6.14"
2182 | source = "registry+https://github.com/rust-lang/crates.io-index"
2183 | checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
2184 | dependencies = [
2185 | "maybe-uninit",
2186 | ]
2187 |
2188 | [[package]]
2189 | name = "smallvec"
2190 | version = "1.6.1"
2191 | source = "registry+https://github.com/rust-lang/crates.io-index"
2192 | checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
2193 |
2194 | [[package]]
2195 | name = "socket2"
2196 | version = "0.4.0"
2197 | source = "registry+https://github.com/rust-lang/crates.io-index"
2198 | checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
2199 | dependencies = [
2200 | "libc",
2201 | "winapi 0.3.9",
2202 | ]
2203 |
2204 | [[package]]
2205 | name = "solana-banks-client"
2206 | version = "1.6.6"
2207 | source = "registry+https://github.com/rust-lang/crates.io-index"
2208 | checksum = "84e398e020121174a8c7d0817ecd03bea68d0540d1c35f0b1ae1c192c496b8d3"
2209 | dependencies = [
2210 | "bincode",
2211 | "borsh 0.8.2",
2212 | "borsh-derive 0.8.2",
2213 | "futures 0.3.14",
2214 | "mio 0.7.11",
2215 | "solana-banks-interface",
2216 | "solana-program",
2217 | "solana-sdk",
2218 | "tarpc",
2219 | "tokio 1.5.0",
2220 | "tokio-serde",
2221 | ]
2222 |
2223 | [[package]]
2224 | name = "solana-banks-interface"
2225 | version = "1.6.6"
2226 | source = "registry+https://github.com/rust-lang/crates.io-index"
2227 | checksum = "34a065f27d341019da543dee76a38c1a661479b8814ac2fa8e9a5bb71d210d55"
2228 | dependencies = [
2229 | "mio 0.7.11",
2230 | "serde",
2231 | "solana-sdk",
2232 | "tarpc",
2233 | ]
2234 |
2235 | [[package]]
2236 | name = "solana-banks-server"
2237 | version = "1.6.6"
2238 | source = "registry+https://github.com/rust-lang/crates.io-index"
2239 | checksum = "874279be1633b7707adec626d796ac55e408194289e94ace408adae95a14fb2f"
2240 | dependencies = [
2241 | "bincode",
2242 | "futures 0.3.14",
2243 | "log",
2244 | "mio 0.7.11",
2245 | "solana-banks-interface",
2246 | "solana-metrics",
2247 | "solana-runtime",
2248 | "solana-sdk",
2249 | "tarpc",
2250 | "tokio 1.5.0",
2251 | "tokio-serde",
2252 | "tokio-stream",
2253 | ]
2254 |
2255 | [[package]]
2256 | name = "solana-bpf-helloworld"
2257 | version = "0.0.1"
2258 | dependencies = [
2259 | "borsh 0.7.2",
2260 | "borsh-derive 0.8.2",
2261 | "solana-program",
2262 | "solana-program-test",
2263 | "solana-sdk",
2264 | ]
2265 |
2266 | [[package]]
2267 | name = "solana-bpf-loader-program"
2268 | version = "1.6.6"
2269 | source = "registry+https://github.com/rust-lang/crates.io-index"
2270 | checksum = "add869800bf5fc8f6c7b0bbddab1d1a398f6a5ae5376371e59eb690a0489fa62"
2271 | dependencies = [
2272 | "bincode",
2273 | "byteorder",
2274 | "curve25519-dalek 3.1.0",
2275 | "log",
2276 | "num-derive",
2277 | "num-traits",
2278 | "rand_core 0.6.2",
2279 | "solana-measure",
2280 | "solana-runtime",
2281 | "solana-sdk",
2282 | "solana_rbpf",
2283 | "thiserror",
2284 | ]
2285 |
2286 | [[package]]
2287 | name = "solana-config-program"
2288 | version = "1.6.6"
2289 | source = "registry+https://github.com/rust-lang/crates.io-index"
2290 | checksum = "f185b791eaf0677bf470902823b1053c7f4f7645ea1c4c9bf0b410a975499bc9"
2291 | dependencies = [
2292 | "bincode",
2293 | "chrono",
2294 | "log",
2295 | "rand_core 0.6.2",
2296 | "serde",
2297 | "serde_derive",
2298 | "solana-sdk",
2299 | ]
2300 |
2301 | [[package]]
2302 | name = "solana-crate-features"
2303 | version = "1.6.6"
2304 | source = "registry+https://github.com/rust-lang/crates.io-index"
2305 | checksum = "becb3da0ebb90064537b4f8f7abcb2ac70f70114b876fdc1e0d619b09e579a6a"
2306 | dependencies = [
2307 | "backtrace",
2308 | "bytes 0.4.12",
2309 | "cc",
2310 | "curve25519-dalek 2.1.2",
2311 | "ed25519-dalek",
2312 | "either",
2313 | "lazy_static",
2314 | "libc",
2315 | "rand_chacha 0.2.2",
2316 | "regex-syntax",
2317 | "reqwest",
2318 | "serde",
2319 | "syn 0.15.44",
2320 | "syn 1.0.71",
2321 | "tokio 0.1.22",
2322 | "winapi 0.3.9",
2323 | ]
2324 |
2325 | [[package]]
2326 | name = "solana-frozen-abi"
2327 | version = "1.6.6"
2328 | source = "registry+https://github.com/rust-lang/crates.io-index"
2329 | checksum = "10272e9486b3cb41b04e899929c521c5c2a037ba6be1651cff68ad3959f4d1f9"
2330 | dependencies = [
2331 | "bs58",
2332 | "bv",
2333 | "generic-array 0.14.4",
2334 | "log",
2335 | "memmap2",
2336 | "rustc_version",
2337 | "serde",
2338 | "serde_derive",
2339 | "sha2 0.9.3",
2340 | "solana-frozen-abi-macro",
2341 | "solana-logger",
2342 | "thiserror",
2343 | ]
2344 |
2345 | [[package]]
2346 | name = "solana-frozen-abi-macro"
2347 | version = "1.6.6"
2348 | source = "registry+https://github.com/rust-lang/crates.io-index"
2349 | checksum = "82f4b6a34f19cc4b09da1919ff9810c1a499c7e77fc9d26bea022f69dc965edf"
2350 | dependencies = [
2351 | "lazy_static",
2352 | "proc-macro2 1.0.26",
2353 | "quote 1.0.9",
2354 | "rustc_version",
2355 | "syn 1.0.71",
2356 | ]
2357 |
2358 | [[package]]
2359 | name = "solana-logger"
2360 | version = "1.6.6"
2361 | source = "registry+https://github.com/rust-lang/crates.io-index"
2362 | checksum = "3c17fa89f2e5fe988cf95a34df411950db4609f68af8df602371d9b7f83cefa7"
2363 | dependencies = [
2364 | "env_logger",
2365 | "lazy_static",
2366 | "log",
2367 | ]
2368 |
2369 | [[package]]
2370 | name = "solana-measure"
2371 | version = "1.6.6"
2372 | source = "registry+https://github.com/rust-lang/crates.io-index"
2373 | checksum = "8a949fef09061319f4bd5c56d88bdc08f7acc27afc792ff5c0059b4f303409c0"
2374 | dependencies = [
2375 | "jemalloc-ctl",
2376 | "jemallocator",
2377 | "log",
2378 | "solana-metrics",
2379 | "solana-sdk",
2380 | ]
2381 |
2382 | [[package]]
2383 | name = "solana-metrics"
2384 | version = "1.6.6"
2385 | source = "registry+https://github.com/rust-lang/crates.io-index"
2386 | checksum = "a35b3eea1e460e90656945a787a429273aeef1c9dd966ffac8b174872ea67a1f"
2387 | dependencies = [
2388 | "env_logger",
2389 | "gethostname",
2390 | "lazy_static",
2391 | "log",
2392 | "reqwest",
2393 | "solana-sdk",
2394 | ]
2395 |
2396 | [[package]]
2397 | name = "solana-program"
2398 | version = "1.6.6"
2399 | source = "registry+https://github.com/rust-lang/crates.io-index"
2400 | checksum = "885552ce43e9f2cf13fda274bf2b4ef75c5de6e5e0190f53acb83f84cda739c0"
2401 | dependencies = [
2402 | "bincode",
2403 | "blake3",
2404 | "borsh 0.8.2",
2405 | "borsh-derive 0.8.2",
2406 | "bs58",
2407 | "bv",
2408 | "curve25519-dalek 2.1.2",
2409 | "hex",
2410 | "itertools",
2411 | "lazy_static",
2412 | "log",
2413 | "num-derive",
2414 | "num-traits",
2415 | "rand 0.7.3",
2416 | "rustc_version",
2417 | "rustversion",
2418 | "serde",
2419 | "serde_bytes",
2420 | "serde_derive",
2421 | "sha2 0.9.3",
2422 | "solana-frozen-abi",
2423 | "solana-frozen-abi-macro",
2424 | "solana-logger",
2425 | "solana-sdk-macro",
2426 | "thiserror",
2427 | ]
2428 |
2429 | [[package]]
2430 | name = "solana-program-test"
2431 | version = "1.6.6"
2432 | source = "registry+https://github.com/rust-lang/crates.io-index"
2433 | checksum = "008a7664176a1f5fd79acd3f2c02377b793bd504d54f65fc83ad035f24cd947c"
2434 | dependencies = [
2435 | "async-trait",
2436 | "base64 0.12.3",
2437 | "bincode",
2438 | "chrono",
2439 | "chrono-humanize",
2440 | "log",
2441 | "mio 0.7.11",
2442 | "serde",
2443 | "serde_derive",
2444 | "solana-banks-client",
2445 | "solana-banks-server",
2446 | "solana-bpf-loader-program",
2447 | "solana-logger",
2448 | "solana-runtime",
2449 | "solana-sdk",
2450 | "solana-vote-program",
2451 | "thiserror",
2452 | "tokio 1.5.0",
2453 | ]
2454 |
2455 | [[package]]
2456 | name = "solana-rayon-threadlimit"
2457 | version = "1.6.6"
2458 | source = "registry+https://github.com/rust-lang/crates.io-index"
2459 | checksum = "e4ff1bba96e1081035ffd291e269c691cacd0271665f0631ba3efaed0b15e71a"
2460 | dependencies = [
2461 | "lazy_static",
2462 | "num_cpus",
2463 | ]
2464 |
2465 | [[package]]
2466 | name = "solana-runtime"
2467 | version = "1.6.6"
2468 | source = "registry+https://github.com/rust-lang/crates.io-index"
2469 | checksum = "1e82b3f482706a83cb235e554c6313614e47e2ea942b8fea6a1b07a68bdb50b0"
2470 | dependencies = [
2471 | "arrayref",
2472 | "bincode",
2473 | "blake3",
2474 | "bv",
2475 | "byteorder",
2476 | "bzip2",
2477 | "crossbeam-channel 0.4.4",
2478 | "dashmap",
2479 | "dir-diff",
2480 | "flate2",
2481 | "fnv",
2482 | "itertools",
2483 | "lazy_static",
2484 | "libc",
2485 | "libloading",
2486 | "log",
2487 | "memmap2",
2488 | "num-derive",
2489 | "num-traits",
2490 | "num_cpus",
2491 | "ouroboros",
2492 | "rand 0.7.3",
2493 | "rayon",
2494 | "regex",
2495 | "rustc_version",
2496 | "serde",
2497 | "serde_derive",
2498 | "solana-config-program",
2499 | "solana-frozen-abi",
2500 | "solana-frozen-abi-macro",
2501 | "solana-logger",
2502 | "solana-measure",
2503 | "solana-metrics",
2504 | "solana-rayon-threadlimit",
2505 | "solana-sdk",
2506 | "solana-secp256k1-program",
2507 | "solana-stake-program",
2508 | "solana-vote-program",
2509 | "symlink",
2510 | "tar",
2511 | "tempfile",
2512 | "thiserror",
2513 | "zstd",
2514 | ]
2515 |
2516 | [[package]]
2517 | name = "solana-sdk"
2518 | version = "1.6.6"
2519 | source = "registry+https://github.com/rust-lang/crates.io-index"
2520 | checksum = "280f61d2de90504e44b7494cdc3db91182c995a787677bcb68b45bbee58b3b54"
2521 | dependencies = [
2522 | "assert_matches",
2523 | "bincode",
2524 | "bs58",
2525 | "bv",
2526 | "byteorder",
2527 | "chrono",
2528 | "digest 0.9.0",
2529 | "ed25519-dalek",
2530 | "generic-array 0.14.4",
2531 | "hex",
2532 | "hmac 0.10.1",
2533 | "itertools",
2534 | "lazy_static",
2535 | "libsecp256k1",
2536 | "log",
2537 | "memmap2",
2538 | "num-derive",
2539 | "num-traits",
2540 | "pbkdf2",
2541 | "rand 0.7.3",
2542 | "rand_chacha 0.2.2",
2543 | "rand_core 0.6.2",
2544 | "rustc_version",
2545 | "rustversion",
2546 | "serde",
2547 | "serde_bytes",
2548 | "serde_derive",
2549 | "serde_json",
2550 | "sha2 0.9.3",
2551 | "sha3",
2552 | "solana-crate-features",
2553 | "solana-frozen-abi",
2554 | "solana-frozen-abi-macro",
2555 | "solana-logger",
2556 | "solana-program",
2557 | "solana-sdk-macro",
2558 | "thiserror",
2559 | ]
2560 |
2561 | [[package]]
2562 | name = "solana-sdk-macro"
2563 | version = "1.6.6"
2564 | source = "registry+https://github.com/rust-lang/crates.io-index"
2565 | checksum = "8264149655cbbcfa1dccd0dc9f62eb04d6832ec08540fcb81db6f305a21d3b65"
2566 | dependencies = [
2567 | "bs58",
2568 | "proc-macro2 1.0.26",
2569 | "quote 1.0.9",
2570 | "rustversion",
2571 | "syn 1.0.71",
2572 | ]
2573 |
2574 | [[package]]
2575 | name = "solana-secp256k1-program"
2576 | version = "1.6.6"
2577 | source = "registry+https://github.com/rust-lang/crates.io-index"
2578 | checksum = "4fba4a8f73a59358b3876ce7c6f43794fdb406acec238396a6b0b8618846ca1c"
2579 | dependencies = [
2580 | "bincode",
2581 | "digest 0.9.0",
2582 | "libsecp256k1",
2583 | "rand 0.7.3",
2584 | "sha3",
2585 | "solana-logger",
2586 | "solana-sdk",
2587 | ]
2588 |
2589 | [[package]]
2590 | name = "solana-stake-program"
2591 | version = "1.6.6"
2592 | source = "registry+https://github.com/rust-lang/crates.io-index"
2593 | checksum = "4c2bf1474cfbd5984692d8c8888c2227511a94617e1def8b78e34a46d1694944"
2594 | dependencies = [
2595 | "bincode",
2596 | "log",
2597 | "num-derive",
2598 | "num-traits",
2599 | "rustc_version",
2600 | "serde",
2601 | "serde_derive",
2602 | "solana-config-program",
2603 | "solana-frozen-abi",
2604 | "solana-frozen-abi-macro",
2605 | "solana-metrics",
2606 | "solana-sdk",
2607 | "solana-vote-program",
2608 | "thiserror",
2609 | ]
2610 |
2611 | [[package]]
2612 | name = "solana-vote-program"
2613 | version = "1.6.6"
2614 | source = "registry+https://github.com/rust-lang/crates.io-index"
2615 | checksum = "f548472496d6da6f2103af9c2f1b309c46e8764a936f2986ba6cd12382c92870"
2616 | dependencies = [
2617 | "bincode",
2618 | "log",
2619 | "num-derive",
2620 | "num-traits",
2621 | "rustc_version",
2622 | "serde",
2623 | "serde_derive",
2624 | "solana-frozen-abi",
2625 | "solana-frozen-abi-macro",
2626 | "solana-logger",
2627 | "solana-metrics",
2628 | "solana-sdk",
2629 | "thiserror",
2630 | ]
2631 |
2632 | [[package]]
2633 | name = "solana_rbpf"
2634 | version = "0.2.7"
2635 | source = "registry+https://github.com/rust-lang/crates.io-index"
2636 | checksum = "14e36c51d5aa290416c5dea3c43ac467cb57c0b643184af23e6bdab7434710fb"
2637 | dependencies = [
2638 | "byteorder",
2639 | "combine",
2640 | "goblin",
2641 | "hash32",
2642 | "libc",
2643 | "log",
2644 | "rand 0.7.3",
2645 | "scroll",
2646 | "thiserror",
2647 | "time",
2648 | ]
2649 |
2650 | [[package]]
2651 | name = "spin"
2652 | version = "0.5.2"
2653 | source = "registry+https://github.com/rust-lang/crates.io-index"
2654 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
2655 |
2656 | [[package]]
2657 | name = "stable_deref_trait"
2658 | version = "1.2.0"
2659 | source = "registry+https://github.com/rust-lang/crates.io-index"
2660 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
2661 |
2662 | [[package]]
2663 | name = "static_assertions"
2664 | version = "1.1.0"
2665 | source = "registry+https://github.com/rust-lang/crates.io-index"
2666 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
2667 |
2668 | [[package]]
2669 | name = "subtle"
2670 | version = "1.0.0"
2671 | source = "registry+https://github.com/rust-lang/crates.io-index"
2672 | checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
2673 |
2674 | [[package]]
2675 | name = "subtle"
2676 | version = "2.4.0"
2677 | source = "registry+https://github.com/rust-lang/crates.io-index"
2678 | checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
2679 |
2680 | [[package]]
2681 | name = "symlink"
2682 | version = "0.1.0"
2683 | source = "registry+https://github.com/rust-lang/crates.io-index"
2684 | checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a"
2685 |
2686 | [[package]]
2687 | name = "syn"
2688 | version = "0.15.44"
2689 | source = "registry+https://github.com/rust-lang/crates.io-index"
2690 | checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
2691 | dependencies = [
2692 | "proc-macro2 0.4.30",
2693 | "quote 0.6.13",
2694 | "unicode-xid 0.1.0",
2695 | ]
2696 |
2697 | [[package]]
2698 | name = "syn"
2699 | version = "1.0.71"
2700 | source = "registry+https://github.com/rust-lang/crates.io-index"
2701 | checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373"
2702 | dependencies = [
2703 | "proc-macro2 1.0.26",
2704 | "quote 1.0.9",
2705 | "unicode-xid 0.2.2",
2706 | ]
2707 |
2708 | [[package]]
2709 | name = "synstructure"
2710 | version = "0.12.4"
2711 | source = "registry+https://github.com/rust-lang/crates.io-index"
2712 | checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
2713 | dependencies = [
2714 | "proc-macro2 1.0.26",
2715 | "quote 1.0.9",
2716 | "syn 1.0.71",
2717 | "unicode-xid 0.2.2",
2718 | ]
2719 |
2720 | [[package]]
2721 | name = "tar"
2722 | version = "0.4.33"
2723 | source = "registry+https://github.com/rust-lang/crates.io-index"
2724 | checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228"
2725 | dependencies = [
2726 | "filetime",
2727 | "libc",
2728 | "xattr",
2729 | ]
2730 |
2731 | [[package]]
2732 | name = "tarpc"
2733 | version = "0.24.1"
2734 | source = "registry+https://github.com/rust-lang/crates.io-index"
2735 | checksum = "e325774dd5b35d979e9f4db2b0f0d7d85dc2ff2b676a3150af56c09eafc14b07"
2736 | dependencies = [
2737 | "anyhow",
2738 | "fnv",
2739 | "futures 0.3.14",
2740 | "humantime",
2741 | "log",
2742 | "pin-project",
2743 | "rand 0.7.3",
2744 | "serde",
2745 | "static_assertions",
2746 | "tarpc-plugins",
2747 | "tokio 1.5.0",
2748 | "tokio-serde",
2749 | "tokio-util",
2750 | ]
2751 |
2752 | [[package]]
2753 | name = "tarpc-plugins"
2754 | version = "0.9.0"
2755 | source = "registry+https://github.com/rust-lang/crates.io-index"
2756 | checksum = "f3240378a22b1195734e085ba71d1d4188d50f034aea82635acc430b7005afb5"
2757 | dependencies = [
2758 | "proc-macro2 1.0.26",
2759 | "quote 1.0.9",
2760 | "syn 1.0.71",
2761 | ]
2762 |
2763 | [[package]]
2764 | name = "tempfile"
2765 | version = "3.2.0"
2766 | source = "registry+https://github.com/rust-lang/crates.io-index"
2767 | checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
2768 | dependencies = [
2769 | "cfg-if 1.0.0",
2770 | "libc",
2771 | "rand 0.8.3",
2772 | "redox_syscall 0.2.7",
2773 | "remove_dir_all",
2774 | "winapi 0.3.9",
2775 | ]
2776 |
2777 | [[package]]
2778 | name = "termcolor"
2779 | version = "1.1.2"
2780 | source = "registry+https://github.com/rust-lang/crates.io-index"
2781 | checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
2782 | dependencies = [
2783 | "winapi-util",
2784 | ]
2785 |
2786 | [[package]]
2787 | name = "thiserror"
2788 | version = "1.0.24"
2789 | source = "registry+https://github.com/rust-lang/crates.io-index"
2790 | checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
2791 | dependencies = [
2792 | "thiserror-impl",
2793 | ]
2794 |
2795 | [[package]]
2796 | name = "thiserror-impl"
2797 | version = "1.0.24"
2798 | source = "registry+https://github.com/rust-lang/crates.io-index"
2799 | checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
2800 | dependencies = [
2801 | "proc-macro2 1.0.26",
2802 | "quote 1.0.9",
2803 | "syn 1.0.71",
2804 | ]
2805 |
2806 | [[package]]
2807 | name = "time"
2808 | version = "0.1.44"
2809 | source = "registry+https://github.com/rust-lang/crates.io-index"
2810 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
2811 | dependencies = [
2812 | "libc",
2813 | "wasi 0.10.0+wasi-snapshot-preview1",
2814 | "winapi 0.3.9",
2815 | ]
2816 |
2817 | [[package]]
2818 | name = "tinyvec"
2819 | version = "1.2.0"
2820 | source = "registry+https://github.com/rust-lang/crates.io-index"
2821 | checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342"
2822 | dependencies = [
2823 | "tinyvec_macros",
2824 | ]
2825 |
2826 | [[package]]
2827 | name = "tinyvec_macros"
2828 | version = "0.1.0"
2829 | source = "registry+https://github.com/rust-lang/crates.io-index"
2830 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
2831 |
2832 | [[package]]
2833 | name = "tokio"
2834 | version = "0.1.22"
2835 | source = "registry+https://github.com/rust-lang/crates.io-index"
2836 | checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
2837 | dependencies = [
2838 | "bytes 0.4.12",
2839 | "futures 0.1.31",
2840 | "mio 0.6.23",
2841 | "num_cpus",
2842 | "tokio-codec",
2843 | "tokio-current-thread",
2844 | "tokio-executor",
2845 | "tokio-fs",
2846 | "tokio-io",
2847 | "tokio-reactor",
2848 | "tokio-sync",
2849 | "tokio-tcp",
2850 | "tokio-threadpool",
2851 | "tokio-timer",
2852 | "tokio-udp",
2853 | "tokio-uds",
2854 | ]
2855 |
2856 | [[package]]
2857 | name = "tokio"
2858 | version = "1.5.0"
2859 | source = "registry+https://github.com/rust-lang/crates.io-index"
2860 | checksum = "83f0c8e7c0addab50b663055baf787d0af7f413a46e6e7fb9559a4e4db7137a5"
2861 | dependencies = [
2862 | "autocfg",
2863 | "bytes 1.0.1",
2864 | "libc",
2865 | "memchr",
2866 | "mio 0.7.11",
2867 | "num_cpus",
2868 | "once_cell",
2869 | "parking_lot 0.11.1",
2870 | "pin-project-lite",
2871 | "signal-hook-registry",
2872 | "tokio-macros",
2873 | "winapi 0.3.9",
2874 | ]
2875 |
2876 | [[package]]
2877 | name = "tokio-codec"
2878 | version = "0.1.2"
2879 | source = "registry+https://github.com/rust-lang/crates.io-index"
2880 | checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
2881 | dependencies = [
2882 | "bytes 0.4.12",
2883 | "futures 0.1.31",
2884 | "tokio-io",
2885 | ]
2886 |
2887 | [[package]]
2888 | name = "tokio-current-thread"
2889 | version = "0.1.7"
2890 | source = "registry+https://github.com/rust-lang/crates.io-index"
2891 | checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
2892 | dependencies = [
2893 | "futures 0.1.31",
2894 | "tokio-executor",
2895 | ]
2896 |
2897 | [[package]]
2898 | name = "tokio-executor"
2899 | version = "0.1.10"
2900 | source = "registry+https://github.com/rust-lang/crates.io-index"
2901 | checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
2902 | dependencies = [
2903 | "crossbeam-utils 0.7.2",
2904 | "futures 0.1.31",
2905 | ]
2906 |
2907 | [[package]]
2908 | name = "tokio-fs"
2909 | version = "0.1.7"
2910 | source = "registry+https://github.com/rust-lang/crates.io-index"
2911 | checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
2912 | dependencies = [
2913 | "futures 0.1.31",
2914 | "tokio-io",
2915 | "tokio-threadpool",
2916 | ]
2917 |
2918 | [[package]]
2919 | name = "tokio-io"
2920 | version = "0.1.13"
2921 | source = "registry+https://github.com/rust-lang/crates.io-index"
2922 | checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
2923 | dependencies = [
2924 | "bytes 0.4.12",
2925 | "futures 0.1.31",
2926 | "log",
2927 | ]
2928 |
2929 | [[package]]
2930 | name = "tokio-macros"
2931 | version = "1.1.0"
2932 | source = "registry+https://github.com/rust-lang/crates.io-index"
2933 | checksum = "caf7b11a536f46a809a8a9f0bb4237020f70ecbf115b842360afb127ea2fda57"
2934 | dependencies = [
2935 | "proc-macro2 1.0.26",
2936 | "quote 1.0.9",
2937 | "syn 1.0.71",
2938 | ]
2939 |
2940 | [[package]]
2941 | name = "tokio-reactor"
2942 | version = "0.1.12"
2943 | source = "registry+https://github.com/rust-lang/crates.io-index"
2944 | checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
2945 | dependencies = [
2946 | "crossbeam-utils 0.7.2",
2947 | "futures 0.1.31",
2948 | "lazy_static",
2949 | "log",
2950 | "mio 0.6.23",
2951 | "num_cpus",
2952 | "parking_lot 0.9.0",
2953 | "slab",
2954 | "tokio-executor",
2955 | "tokio-io",
2956 | "tokio-sync",
2957 | ]
2958 |
2959 | [[package]]
2960 | name = "tokio-rustls"
2961 | version = "0.22.0"
2962 | source = "registry+https://github.com/rust-lang/crates.io-index"
2963 | checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
2964 | dependencies = [
2965 | "rustls",
2966 | "tokio 1.5.0",
2967 | "webpki",
2968 | ]
2969 |
2970 | [[package]]
2971 | name = "tokio-serde"
2972 | version = "0.8.0"
2973 | source = "registry+https://github.com/rust-lang/crates.io-index"
2974 | checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466"
2975 | dependencies = [
2976 | "bincode",
2977 | "bytes 1.0.1",
2978 | "educe",
2979 | "futures-core",
2980 | "futures-sink",
2981 | "pin-project",
2982 | "serde",
2983 | "serde_json",
2984 | ]
2985 |
2986 | [[package]]
2987 | name = "tokio-stream"
2988 | version = "0.1.5"
2989 | source = "registry+https://github.com/rust-lang/crates.io-index"
2990 | checksum = "e177a5d8c3bf36de9ebe6d58537d8879e964332f93fb3339e43f618c81361af0"
2991 | dependencies = [
2992 | "futures-core",
2993 | "pin-project-lite",
2994 | "tokio 1.5.0",
2995 | ]
2996 |
2997 | [[package]]
2998 | name = "tokio-sync"
2999 | version = "0.1.8"
3000 | source = "registry+https://github.com/rust-lang/crates.io-index"
3001 | checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
3002 | dependencies = [
3003 | "fnv",
3004 | "futures 0.1.31",
3005 | ]
3006 |
3007 | [[package]]
3008 | name = "tokio-tcp"
3009 | version = "0.1.4"
3010 | source = "registry+https://github.com/rust-lang/crates.io-index"
3011 | checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
3012 | dependencies = [
3013 | "bytes 0.4.12",
3014 | "futures 0.1.31",
3015 | "iovec",
3016 | "mio 0.6.23",
3017 | "tokio-io",
3018 | "tokio-reactor",
3019 | ]
3020 |
3021 | [[package]]
3022 | name = "tokio-threadpool"
3023 | version = "0.1.18"
3024 | source = "registry+https://github.com/rust-lang/crates.io-index"
3025 | checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
3026 | dependencies = [
3027 | "crossbeam-deque 0.7.3",
3028 | "crossbeam-queue",
3029 | "crossbeam-utils 0.7.2",
3030 | "futures 0.1.31",
3031 | "lazy_static",
3032 | "log",
3033 | "num_cpus",
3034 | "slab",
3035 | "tokio-executor",
3036 | ]
3037 |
3038 | [[package]]
3039 | name = "tokio-timer"
3040 | version = "0.2.13"
3041 | source = "registry+https://github.com/rust-lang/crates.io-index"
3042 | checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
3043 | dependencies = [
3044 | "crossbeam-utils 0.7.2",
3045 | "futures 0.1.31",
3046 | "slab",
3047 | "tokio-executor",
3048 | ]
3049 |
3050 | [[package]]
3051 | name = "tokio-udp"
3052 | version = "0.1.6"
3053 | source = "registry+https://github.com/rust-lang/crates.io-index"
3054 | checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
3055 | dependencies = [
3056 | "bytes 0.4.12",
3057 | "futures 0.1.31",
3058 | "log",
3059 | "mio 0.6.23",
3060 | "tokio-codec",
3061 | "tokio-io",
3062 | "tokio-reactor",
3063 | ]
3064 |
3065 | [[package]]
3066 | name = "tokio-uds"
3067 | version = "0.2.7"
3068 | source = "registry+https://github.com/rust-lang/crates.io-index"
3069 | checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
3070 | dependencies = [
3071 | "bytes 0.4.12",
3072 | "futures 0.1.31",
3073 | "iovec",
3074 | "libc",
3075 | "log",
3076 | "mio 0.6.23",
3077 | "mio-uds",
3078 | "tokio-codec",
3079 | "tokio-io",
3080 | "tokio-reactor",
3081 | ]
3082 |
3083 | [[package]]
3084 | name = "tokio-util"
3085 | version = "0.6.6"
3086 | source = "registry+https://github.com/rust-lang/crates.io-index"
3087 | checksum = "940a12c99365c31ea8dd9ba04ec1be183ffe4920102bb7122c2f515437601e8e"
3088 | dependencies = [
3089 | "bytes 1.0.1",
3090 | "futures-core",
3091 | "futures-sink",
3092 | "log",
3093 | "pin-project-lite",
3094 | "tokio 1.5.0",
3095 | ]
3096 |
3097 | [[package]]
3098 | name = "toml"
3099 | version = "0.5.8"
3100 | source = "registry+https://github.com/rust-lang/crates.io-index"
3101 | checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
3102 | dependencies = [
3103 | "serde",
3104 | ]
3105 |
3106 | [[package]]
3107 | name = "tower-service"
3108 | version = "0.3.1"
3109 | source = "registry+https://github.com/rust-lang/crates.io-index"
3110 | checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
3111 |
3112 | [[package]]
3113 | name = "tracing"
3114 | version = "0.1.26"
3115 | source = "registry+https://github.com/rust-lang/crates.io-index"
3116 | checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
3117 | dependencies = [
3118 | "cfg-if 1.0.0",
3119 | "pin-project-lite",
3120 | "tracing-core",
3121 | ]
3122 |
3123 | [[package]]
3124 | name = "tracing-core"
3125 | version = "0.1.18"
3126 | source = "registry+https://github.com/rust-lang/crates.io-index"
3127 | checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052"
3128 | dependencies = [
3129 | "lazy_static",
3130 | ]
3131 |
3132 | [[package]]
3133 | name = "try-lock"
3134 | version = "0.2.3"
3135 | source = "registry+https://github.com/rust-lang/crates.io-index"
3136 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
3137 |
3138 | [[package]]
3139 | name = "typenum"
3140 | version = "1.13.0"
3141 | source = "registry+https://github.com/rust-lang/crates.io-index"
3142 | checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
3143 |
3144 | [[package]]
3145 | name = "unicode-bidi"
3146 | version = "0.3.5"
3147 | source = "registry+https://github.com/rust-lang/crates.io-index"
3148 | checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0"
3149 | dependencies = [
3150 | "matches",
3151 | ]
3152 |
3153 | [[package]]
3154 | name = "unicode-normalization"
3155 | version = "0.1.17"
3156 | source = "registry+https://github.com/rust-lang/crates.io-index"
3157 | checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
3158 | dependencies = [
3159 | "tinyvec",
3160 | ]
3161 |
3162 | [[package]]
3163 | name = "unicode-xid"
3164 | version = "0.1.0"
3165 | source = "registry+https://github.com/rust-lang/crates.io-index"
3166 | checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
3167 |
3168 | [[package]]
3169 | name = "unicode-xid"
3170 | version = "0.2.2"
3171 | source = "registry+https://github.com/rust-lang/crates.io-index"
3172 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
3173 |
3174 | [[package]]
3175 | name = "unreachable"
3176 | version = "1.0.0"
3177 | source = "registry+https://github.com/rust-lang/crates.io-index"
3178 | checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
3179 | dependencies = [
3180 | "void",
3181 | ]
3182 |
3183 | [[package]]
3184 | name = "untrusted"
3185 | version = "0.7.1"
3186 | source = "registry+https://github.com/rust-lang/crates.io-index"
3187 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
3188 |
3189 | [[package]]
3190 | name = "url"
3191 | version = "2.2.1"
3192 | source = "registry+https://github.com/rust-lang/crates.io-index"
3193 | checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
3194 | dependencies = [
3195 | "form_urlencoded",
3196 | "idna",
3197 | "matches",
3198 | "percent-encoding",
3199 | ]
3200 |
3201 | [[package]]
3202 | name = "version_check"
3203 | version = "0.9.3"
3204 | source = "registry+https://github.com/rust-lang/crates.io-index"
3205 | checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
3206 |
3207 | [[package]]
3208 | name = "void"
3209 | version = "1.0.2"
3210 | source = "registry+https://github.com/rust-lang/crates.io-index"
3211 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
3212 |
3213 | [[package]]
3214 | name = "walkdir"
3215 | version = "2.3.2"
3216 | source = "registry+https://github.com/rust-lang/crates.io-index"
3217 | checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
3218 | dependencies = [
3219 | "same-file",
3220 | "winapi 0.3.9",
3221 | "winapi-util",
3222 | ]
3223 |
3224 | [[package]]
3225 | name = "want"
3226 | version = "0.3.0"
3227 | source = "registry+https://github.com/rust-lang/crates.io-index"
3228 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
3229 | dependencies = [
3230 | "log",
3231 | "try-lock",
3232 | ]
3233 |
3234 | [[package]]
3235 | name = "wasi"
3236 | version = "0.9.0+wasi-snapshot-preview1"
3237 | source = "registry+https://github.com/rust-lang/crates.io-index"
3238 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
3239 |
3240 | [[package]]
3241 | name = "wasi"
3242 | version = "0.10.0+wasi-snapshot-preview1"
3243 | source = "registry+https://github.com/rust-lang/crates.io-index"
3244 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
3245 |
3246 | [[package]]
3247 | name = "wasm-bindgen"
3248 | version = "0.2.73"
3249 | source = "registry+https://github.com/rust-lang/crates.io-index"
3250 | checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
3251 | dependencies = [
3252 | "cfg-if 1.0.0",
3253 | "serde",
3254 | "serde_json",
3255 | "wasm-bindgen-macro",
3256 | ]
3257 |
3258 | [[package]]
3259 | name = "wasm-bindgen-backend"
3260 | version = "0.2.73"
3261 | source = "registry+https://github.com/rust-lang/crates.io-index"
3262 | checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
3263 | dependencies = [
3264 | "bumpalo",
3265 | "lazy_static",
3266 | "log",
3267 | "proc-macro2 1.0.26",
3268 | "quote 1.0.9",
3269 | "syn 1.0.71",
3270 | "wasm-bindgen-shared",
3271 | ]
3272 |
3273 | [[package]]
3274 | name = "wasm-bindgen-futures"
3275 | version = "0.4.23"
3276 | source = "registry+https://github.com/rust-lang/crates.io-index"
3277 | checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"
3278 | dependencies = [
3279 | "cfg-if 1.0.0",
3280 | "js-sys",
3281 | "wasm-bindgen",
3282 | "web-sys",
3283 | ]
3284 |
3285 | [[package]]
3286 | name = "wasm-bindgen-macro"
3287 | version = "0.2.73"
3288 | source = "registry+https://github.com/rust-lang/crates.io-index"
3289 | checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
3290 | dependencies = [
3291 | "quote 1.0.9",
3292 | "wasm-bindgen-macro-support",
3293 | ]
3294 |
3295 | [[package]]
3296 | name = "wasm-bindgen-macro-support"
3297 | version = "0.2.73"
3298 | source = "registry+https://github.com/rust-lang/crates.io-index"
3299 | checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
3300 | dependencies = [
3301 | "proc-macro2 1.0.26",
3302 | "quote 1.0.9",
3303 | "syn 1.0.71",
3304 | "wasm-bindgen-backend",
3305 | "wasm-bindgen-shared",
3306 | ]
3307 |
3308 | [[package]]
3309 | name = "wasm-bindgen-shared"
3310 | version = "0.2.73"
3311 | source = "registry+https://github.com/rust-lang/crates.io-index"
3312 | checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
3313 |
3314 | [[package]]
3315 | name = "web-sys"
3316 | version = "0.3.50"
3317 | source = "registry+https://github.com/rust-lang/crates.io-index"
3318 | checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
3319 | dependencies = [
3320 | "js-sys",
3321 | "wasm-bindgen",
3322 | ]
3323 |
3324 | [[package]]
3325 | name = "webpki"
3326 | version = "0.21.2"
3327 | source = "registry+https://github.com/rust-lang/crates.io-index"
3328 | checksum = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef"
3329 | dependencies = [
3330 | "ring",
3331 | "untrusted",
3332 | ]
3333 |
3334 | [[package]]
3335 | name = "webpki-roots"
3336 | version = "0.21.1"
3337 | source = "registry+https://github.com/rust-lang/crates.io-index"
3338 | checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
3339 | dependencies = [
3340 | "webpki",
3341 | ]
3342 |
3343 | [[package]]
3344 | name = "winapi"
3345 | version = "0.2.8"
3346 | source = "registry+https://github.com/rust-lang/crates.io-index"
3347 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
3348 |
3349 | [[package]]
3350 | name = "winapi"
3351 | version = "0.3.9"
3352 | source = "registry+https://github.com/rust-lang/crates.io-index"
3353 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
3354 | dependencies = [
3355 | "winapi-i686-pc-windows-gnu",
3356 | "winapi-x86_64-pc-windows-gnu",
3357 | ]
3358 |
3359 | [[package]]
3360 | name = "winapi-build"
3361 | version = "0.1.1"
3362 | source = "registry+https://github.com/rust-lang/crates.io-index"
3363 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
3364 |
3365 | [[package]]
3366 | name = "winapi-i686-pc-windows-gnu"
3367 | version = "0.4.0"
3368 | source = "registry+https://github.com/rust-lang/crates.io-index"
3369 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
3370 |
3371 | [[package]]
3372 | name = "winapi-util"
3373 | version = "0.1.5"
3374 | source = "registry+https://github.com/rust-lang/crates.io-index"
3375 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
3376 | dependencies = [
3377 | "winapi 0.3.9",
3378 | ]
3379 |
3380 | [[package]]
3381 | name = "winapi-x86_64-pc-windows-gnu"
3382 | version = "0.4.0"
3383 | source = "registry+https://github.com/rust-lang/crates.io-index"
3384 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
3385 |
3386 | [[package]]
3387 | name = "winreg"
3388 | version = "0.7.0"
3389 | source = "registry+https://github.com/rust-lang/crates.io-index"
3390 | checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
3391 | dependencies = [
3392 | "winapi 0.3.9",
3393 | ]
3394 |
3395 | [[package]]
3396 | name = "ws2_32-sys"
3397 | version = "0.2.1"
3398 | source = "registry+https://github.com/rust-lang/crates.io-index"
3399 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
3400 | dependencies = [
3401 | "winapi 0.2.8",
3402 | "winapi-build",
3403 | ]
3404 |
3405 | [[package]]
3406 | name = "xattr"
3407 | version = "0.2.2"
3408 | source = "registry+https://github.com/rust-lang/crates.io-index"
3409 | checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
3410 | dependencies = [
3411 | "libc",
3412 | ]
3413 |
3414 | [[package]]
3415 | name = "zeroize"
3416 | version = "1.3.0"
3417 | source = "registry+https://github.com/rust-lang/crates.io-index"
3418 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
3419 | dependencies = [
3420 | "zeroize_derive",
3421 | ]
3422 |
3423 | [[package]]
3424 | name = "zeroize_derive"
3425 | version = "1.1.0"
3426 | source = "registry+https://github.com/rust-lang/crates.io-index"
3427 | checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1"
3428 | dependencies = [
3429 | "proc-macro2 1.0.26",
3430 | "quote 1.0.9",
3431 | "syn 1.0.71",
3432 | "synstructure",
3433 | ]
3434 |
3435 | [[package]]
3436 | name = "zstd"
3437 | version = "0.5.4+zstd.1.4.7"
3438 | source = "registry+https://github.com/rust-lang/crates.io-index"
3439 | checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910"
3440 | dependencies = [
3441 | "zstd-safe",
3442 | ]
3443 |
3444 | [[package]]
3445 | name = "zstd-safe"
3446 | version = "2.0.6+zstd.1.4.7"
3447 | source = "registry+https://github.com/rust-lang/crates.io-index"
3448 | checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e"
3449 | dependencies = [
3450 | "libc",
3451 | "zstd-sys",
3452 | ]
3453 |
3454 | [[package]]
3455 | name = "zstd-sys"
3456 | version = "1.4.18+zstd.1.4.7"
3457 | source = "registry+https://github.com/rust-lang/crates.io-index"
3458 | checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81"
3459 | dependencies = [
3460 | "cc",
3461 | "glob",
3462 | "itertools",
3463 | "libc",
3464 | ]
3465 |
--------------------------------------------------------------------------------
/src/program-rust/Cargo.toml:
--------------------------------------------------------------------------------
1 |
2 | [package]
3 | name = "solana-bpf-helloworld"
4 | version = "0.0.1"
5 | description = "Example template program written in Rust"
6 | authors = ["Solana Maintainers "]
7 | repository = "https://github.com/solana-labs/solana"
8 | license = "Apache-2.0"
9 | homepage = "https://solana.com/"
10 | edition = "2018"
11 |
12 | [features]
13 | no-entrypoint = []
14 |
15 | [dependencies]
16 | borsh = "0.7.1"
17 | borsh-derive = "0.8.1"
18 | solana-program = "=1.6.6"
19 |
20 | [dev-dependencies]
21 | solana-program-test = "=1.6.6"
22 | solana-sdk = "=1.6.6"
23 |
24 | [lib]
25 | name = "helloworld"
26 | crate-type = ["cdylib", "lib"]
27 |
--------------------------------------------------------------------------------
/src/program-rust/Xargo.toml:
--------------------------------------------------------------------------------
1 | [target.bpfel-unknown-unknown.dependencies.std]
2 | features = []
--------------------------------------------------------------------------------
/src/program-rust/src/lib.rs:
--------------------------------------------------------------------------------
1 | use borsh::{BorshDeserialize, BorshSerialize};
2 | use solana_program::{
3 | log::sol_log_compute_units,
4 | account_info::{next_account_info, AccountInfo},
5 | entrypoint,
6 | entrypoint::ProgramResult,
7 | msg,
8 | program_error::ProgramError,
9 | pubkey::Pubkey,
10 | };
11 |
12 | /// Define the type of state stored in accounts
13 | #[derive(BorshSerialize, BorshDeserialize, Debug)]
14 | pub struct GreetingAccount {
15 | /// number of greetings
16 | pub txt: String,
17 | }
18 |
19 | // Declare and export the program's entrypoint
20 | entrypoint!(process_instruction);
21 |
22 | // Program entrypoint's implementation
23 | pub fn process_instruction(
24 | program_id: &Pubkey, // Public key of the account the hello world program was loaded into
25 | accounts: &[AccountInfo], // The account to say hello to
26 | instruction_data: &[u8], // Ignored, all helloworld instructions are hellos
27 | ) -> ProgramResult {
28 | msg!("Hello World Rust program entrypoint");
29 |
30 | // Iterating accounts is safer then indexing
31 | let accounts_iter = &mut accounts.iter();
32 |
33 | // Get the account to say hello to
34 | let account = next_account_info(accounts_iter)?;
35 |
36 | // The account must be owned by the program in order to modify its data
37 | if account.owner != program_id {
38 | msg!("Greeted account does not have the correct program id");
39 | return Err(ProgramError::IncorrectProgramId);
40 | }
41 |
42 | msg!("Start instruction decode");
43 | let message = GreetingAccount::try_from_slice(instruction_data).map_err(|err| {
44 | msg!("Receiving message as string utf8 failed, {:?}", err);
45 | ProgramError::InvalidInstructionData
46 | })?;
47 | msg!("Greeting passed to program is {:?}", message);
48 |
49 | let data = &mut &mut account.data.borrow_mut();
50 | msg!("Start save instruction into data");
51 | data[..instruction_data.len()].copy_from_slice(&instruction_data);
52 |
53 | sol_log_compute_units();
54 | msg!("Was sent message {}!", message.txt);
55 |
56 | Ok(())
57 | }
58 |
59 | // Sanity tests
60 | #[cfg(test)]
61 | mod test {
62 | use super::*;
63 | use solana_program::clock::Epoch;
64 | use std::mem;
65 |
66 | #[test]
67 | fn test_sanity() {
68 | let program_id = Pubkey::default();
69 | let key = Pubkey::default();
70 | let mut lamports = 0;
71 | let mut data = vec![0; mem::size_of::()];
72 | let owner = Pubkey::default();
73 | let account = AccountInfo::new(
74 | &key,
75 | false,
76 | true,
77 | &mut lamports,
78 | &mut data,
79 | &owner,
80 | false,
81 | Epoch::default(),
82 | );
83 | let instruction_data: Vec = Vec::new();
84 |
85 | let accounts = vec![account];
86 |
87 | assert_eq!(
88 | GreetingAccount::try_from_slice(&accounts[0].data.borrow())
89 | .unwrap()
90 | .counter,
91 | 0
92 | );
93 | process_instruction(&program_id, &accounts, &instruction_data).unwrap();
94 | assert_eq!(
95 | GreetingAccount::try_from_slice(&accounts[0].data.borrow())
96 | .unwrap()
97 | .counter,
98 | 1
99 | );
100 | process_instruction(&program_id, &accounts, &instruction_data).unwrap();
101 | assert_eq!(
102 | GreetingAccount::try_from_slice(&accounts[0].data.borrow())
103 | .unwrap()
104 | .counter,
105 | 2
106 | );
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/src/program-rust/tests/lib.rs:
--------------------------------------------------------------------------------
1 | use borsh::BorshDeserialize;
2 | use helloworld::{process_instruction, GreetingAccount};
3 | use solana_program_test::*;
4 | use solana_sdk::{
5 | account::Account,
6 | instruction::{AccountMeta, Instruction},
7 | pubkey::Pubkey,
8 | signature::Signer,
9 | transaction::Transaction,
10 | };
11 | use std::mem;
12 |
13 | #[tokio::test]
14 | async fn test_helloworld() {
15 | let program_id = Pubkey::new_unique();
16 | let greeted_pubkey = Pubkey::new_unique();
17 |
18 | let mut program_test = ProgramTest::new(
19 | "helloworld", // Run the BPF version with `cargo test-bpf`
20 | program_id,
21 | processor!(process_instruction), // Run the native version with `cargo test`
22 | );
23 | program_test.add_account(
24 | greeted_pubkey,
25 | Account {
26 | lamports: 5,
27 | data: vec![0_u8; mem::size_of::()],
28 | owner: program_id,
29 | ..Account::default()
30 | },
31 | );
32 | let (mut banks_client, payer, recent_blockhash) = program_test.start().await;
33 |
34 | // Verify account has zero greetings
35 | let greeted_account = banks_client
36 | .get_account(greeted_pubkey)
37 | .await
38 | .expect("get_account")
39 | .expect("greeted_account not found");
40 | assert_eq!(
41 | GreetingAccount::try_from_slice(&greeted_account.data)
42 | .unwrap()
43 | .counter,
44 | 0
45 | );
46 |
47 | // Greet once
48 | let mut transaction = Transaction::new_with_payer(
49 | &[Instruction::new_with_bincode(
50 | program_id,
51 | &[0], // ignored but makes the instruction unique in the slot
52 | vec![AccountMeta::new(greeted_pubkey, false)],
53 | )],
54 | Some(&payer.pubkey()),
55 | );
56 | transaction.sign(&[&payer], recent_blockhash);
57 | banks_client.process_transaction(transaction).await.unwrap();
58 |
59 | // Verify account has one greeting
60 | let greeted_account = banks_client
61 | .get_account(greeted_pubkey)
62 | .await
63 | .expect("get_account")
64 | .expect("greeted_account not found");
65 | assert_eq!(
66 | GreetingAccount::try_from_slice(&greeted_account.data)
67 | .unwrap()
68 | .counter,
69 | 1
70 | );
71 |
72 | // Greet again
73 | let mut transaction = Transaction::new_with_payer(
74 | &[Instruction::new_with_bincode(
75 | program_id,
76 | &[1], // ignored but makes the instruction unique in the slot
77 | vec![AccountMeta::new(greeted_pubkey, false)],
78 | )],
79 | Some(&payer.pubkey()),
80 | );
81 | transaction.sign(&[&payer], recent_blockhash);
82 | banks_client.process_transaction(transaction).await.unwrap();
83 |
84 | // Verify account has two greetings
85 | let greeted_account = banks_client
86 | .get_account(greeted_pubkey)
87 | .await
88 | .expect("get_account")
89 | .expect("greeted_account not found");
90 | assert_eq!(
91 | GreetingAccount::try_from_slice(&greeted_account.data)
92 | .unwrap()
93 | .counter,
94 | 2
95 | );
96 | }
97 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/recommended/tsconfig.json",
3 | "ts-node": {
4 | "compilerOptions": {
5 | "module": "commonjs"
6 | }
7 | },
8 | "compilerOptions": {
9 | "declaration": true,
10 | "moduleResolution": "node",
11 | "module": "es2015"
12 | },
13 | "include": ["src/client/**/*"],
14 | "exclude": ["node_modules"]
15 | }
16 |
--------------------------------------------------------------------------------