コントラクトを書いてみよう
🛫 Rust の新規プロジェクトを作成しよう
お気に入りのコードエディタ(お持ちでない方はVSCodeをインストールしましょう)でnear_bike_share_dappを開きましょう。
contractディレクトリには簡単なコントラクトであるgreetingプロジェクトが既に入っています。
今回は0からコントラクトを書くのでcontractディレクトリごと削除しましょう。
$ rm -r contract
Rustで新しいプロジェクトを作成する下記のコマンドをnear_bike_share_dapp直下で実行しましょう!
$ cargo new bike_share --lib
bike_shareはプロジェクト名です。
--libはライブラリを作成するという指定です。
デフォルトでは--binが設定されていて、これはバイナリファイル(実行可能ファイル)の作成を指定します。
NEARのコントラクトはライブラリ形式で作成するので--libを指定します。
bike_shareという名前のディレクトリが作成されましたが,
frontendとの対比がわかりやすいように今回はディレクトリ名をcontractに変更しましょう。
$ mv bike_share contract
frontendディレクトリとcontractディレクトリが同じ階層にいることを確認してください。
それではcontractディレクトリの中身を見ていきます。
階層はこのようになっています。
.
├── Cargo.toml
└── src
└── lib.rs
Cargo.tomlはこのプロジェクトの情報(プロジェクト名や依存ファイル情報など)が記入されています。
実際のコードはsrcディレクトリの中に配置します。
Cargo.tomlの中身をこのように書き換えます。
(詳細はCargo.toml についてや
NEAR 開発での Cargo.toml の書き方を参照してください)
// Cargo.toml
[package]
authors = ["Near Inc <hello@near.org>"]
edition = "2021"
name = "bike_share"
version = "1.0.0"
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
near-sdk = "4.0.0"
uint = {version = "0.9.3", default-features = false}
[profile.release]
codegen-units = 1
debug = false
lto = true
opt-level = "z"
overflow-checks = true
panic = "abort"
[workspace]
members = []
また.gitignoreファイルを追加しましょう。
中身は以下を記述してください
/target
/Cargo.lock
contractディレクトリの構成をチェックします。
.
├── .gitignore
├── Cargo.toml
└── src
└── lib.rs