Skip to content

Commit

Permalink
update filepaths
Browse files Browse the repository at this point in the history
  • Loading branch information
neila committed Dec 10, 2022
1 parent e724977 commit ee1babe
Show file tree
Hide file tree
Showing 27 changed files with 438 additions and 439 deletions.
1 change: 1 addition & 0 deletions .textlintrc
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"に",
"が",
"と",
"は",
"も",
"で",
"に関する"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,34 @@
- [TypeScript](https://typescriptbook.jp/overview/features)
- [React.js](https://ja.reactjs.org/)

いますべてを理解している必要はありません。
いますべてを理解している必要はありません。
わからないことがあったらインターネットで検索したり,コミュニティで質問しながらプロジェクトを進めていきましょう!

`Avalanche`での開発が初めての方や, `hardhat`でスマートコントラクトのテストを書いたご経験の無い方は [AVAX-messenger](https://app.unchain.tech/learn/AVAX-messenger) により詳しく解説がありますので先にそちらを進めるとスムーズかと思います。
`Avalanche`での開発が初めての方や, `hardhat`でスマートコントラクトのテストを書いたご経験の無い方は [AVAX-Messenger](https://app.unchain.tech/learn/AVAX-Messenger) により詳しく解説がありますので先にそちらを進めるとスムーズかと思います。

### 🛠 何を構築するのか?

`Miniswap`という **分散型 Web アプリケーション(dApp)** を構築します。

`Miniswap``AMM`の機能を搭載したスマートコントラクトと, スマートコントラクトとユーザの仲介をするフロントエンドのコードによって作成します。

スマートコントラクトに`Solidity`,
スマートコントラクトに`Solidity`,
フロントエンドに`TypeScript` + `React.js` + `Next.js`を使用します。

今回は作成したスマートコントラクトを, [FUJI C-Chain](https://docs.avax.network/quickstart/fuji-workflow)へデプロイします。

AvalancheとC-Chainに関する概要は[こちら](https://app.unchain.tech/learn/AVAX-messenger/section-0_lesson-1)をご覧ください。
AvalancheとC-Chainに関する概要は[こちら](https://app.unchain.tech/learn/AVAX-Messenger/section-0_lesson-1)をご覧ください。

### 🪙 Defi と DEX と AMM

🐦 Defi(分散型金融)

ブロックチェーンのネットワーク上に構築される, 中心となる管理者がいない金融のエコシステムです。

DeFiの主なメリットとして, コードで管理されたシステムであることやユーザが資産を自身で管理するという点から,
DeFiの主なメリットとして, コードで管理されたシステムであることやユーザが資産を自身で管理するという点から,
既存金融にあったコストやシステム上の摩擦を軽減することができます。

暗号通貨が貨幣として正常に機能する場合,
暗号通貨が貨幣として正常に機能する場合,
Defiがオープンで低価格な点は, 現在の金融システムを利用できない低所得者も利用できるなどのメリットにも繋がります。

一方, 手数料の高騰が起こり得ることや, ユーザーは資産を自身で管理しなければいけず責任の所在はユーザーにある点などはデメリットとして挙げられます。
Expand All @@ -46,10 +46,10 @@ Defiがオープンで低価格な点は, 現在の金融システムを利用

🦏 DEX(分散型取引所)

DEXは, AVAX-USDCペアのような2つのトークン間で取引を行うことにより, 誰でもブロックチェーン上で暗号通貨トークンを交換することができる取引所です。
DEXは, AVAX-USDCペアのような2つのトークン間で取引を行うことにより, 誰でもブロックチェーン上で暗号通貨トークンを交換することができる取引所です。
Defiの一種です。

Binanceなどの中央集権型の取引所(CEX)は, 買い手と売り手のマッチングに注文書を使用するオンライン取引プラットフォームです。
Binanceなどの中央集権型の取引所(CEX)は, 買い手と売り手のマッチングに注文書を使用するオンライン取引プラットフォームです。
オンライン証券口座と似たような仕組みで, 投資家に人気があります。

PancakeSwapやUniswapなどの分散型取引所(DEX)は, 暗号通貨トレーダーが保有資産を変換できるスマートコントラクトを搭載した自己完結型の金融プロトコルです。
Expand All @@ -70,10 +70,10 @@ AvalancheでDefiを構築することは以下のようなメリットを与え

以下, [medium Avalanche: 新しい DeFi ブロックチェーンを解説](https://medium.com/ava-labs-jp/avalanche-%E6%96%B0%E3%81%97%E3%81%84defi%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%82%92%E8%A7%A3%E8%AA%AC-fdf231906e4d)より抜粋

アクセス性 — Avalancheでのトランザクションコストが低いことは, 小規模取引の方が資金的に有利であることを意味し, 小規模なプレイヤーやエントリーレベルの投資家にDeFiのエコシステムを開放します。
アクセス性 — Avalancheでのトランザクションコストが低いことは, 小規模取引の方が資金的に有利であることを意味し, 小規模なプレイヤーやエントリーレベルの投資家にDeFiのエコシステムを開放します。
ユーザーエクスペリエンスはまだ複雑で, 新規参入にとって大きな障壁となっていますが, この分野の改善によりDeFi領域でより広範な参加者の流入につなげられる可能性があります。

低スリッページ — Ethereumブロックチェーンの速度は遅くオンチェーン取引を行う際には、大きなスリッページや処理の失敗が発生します。
低スリッページ — Ethereumブロックチェーンの速度は遅くオンチェーン取引を行う際には、大きなスリッページや処理の失敗が発生します。
Avalancheネットワークの高速なトランザクションレートと高いスループットは, 最小限の価格スリッページとインスタント取引への扉を開き, DEXでのトレードエクスペリエンスを中央集権型の取引のそれに近づけます。

### 🌍 プロジェクトをアップグレードする
Expand Down Expand Up @@ -103,9 +103,9 @@ GitHubから直接コードを編集して直接`pull request`を送る方法は

UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨

> Windows を使用している方へ
> Windows をお使いの場合は,[Git for Windows](https://gitforwindows.org/) をダウンロードし,それに付属する Git Bash を使うことをお勧めします。
> 本手順では UNIX 固有のコマンドをサポートしています。
> Windows を使用している方へ
> Windows をお使いの場合は,[Git for Windows](https://gitforwindows.org/) をダウンロードし,それに付属する Git Bash を使うことをお勧めします。
> 本手順では UNIX 固有のコマンドをサポートしています。
> [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install) も選択肢の一つです。
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
- Hardhatにより,ローカル環境でイーサリアムネットワークを簡単に起動し,テストネットでethereumを利用できます。
- 「サーバー」がブロックチェーンであることを除けば,Hardhatはローカルサーバーと同じです。

まず,`node` / `npm`を取得する必要があります。
お持ちでない場合は,[こちら](https://hardhat.org/tutorial/setting-up-the-environment#installing-node.js) にアクセスし`Node.js`をインストールしてください。
まず,`node` / `npm`を取得する必要があります。
お持ちでない場合は,[こちら](https://hardhat.org/tutorial/setting-up-the-environment#installing-node.js) にアクセスし`Node.js`をインストールしてください。
`Node.js`をインストールすると, そのパッケージ管理ツールである`npm`も同時にインストールされます。

> 動作確認。
Expand Down Expand Up @@ -57,8 +57,8 @@ npm install --save-dev hardhat @openzeppelin/test-helpers
npm install dotenv @openzeppelin/contracts
```
dapp全体のディレクトリ(`Avalanche-AMM`)とコントラクト実装に使用するディレクトリ(`contract`)を用意しました。
次に`npm init`によりnpmパッケージを管理するための環境をセットアップを行いました。
dapp全体のディレクトリ(`Avalanche-AMM`)とコントラクト実装に使用するディレクトリ(`contract`)を用意しました。
次に`npm init`によりnpmパッケージを管理するための環境をセットアップを行いました。
最後にスマートコントラクトの開発に必要な以下のパッケージを`npm`コマンドを利用してインストールしています。

- `hardhat`: solidityを使った開発をサポートします。
Expand All @@ -70,8 +70,8 @@ dapp全体のディレクトリ(`Avalanche-AMM`)とコントラクト実装に

次に,Hardhatを実行します。

ターミナルで`contract`に移動し,下記を実行します。
`npx hardhat`を実行すると対話形式で指示を求められるので下記のように回答します。
ターミナルで`contract`に移動し,下記を実行します。
`npx hardhat`を実行すると対話形式で指示を求められるので下記のように回答します。
`Create a TypeScript project`を選択するところ以外は`enter`を押せば例通りになるはずです。

```
Expand All @@ -91,7 +91,7 @@ $ npx hardhat

`TypeScript`のコードはコンパイルにより`JavaScript`のコードに変換されてから実行されます。

最終的には`JavaScript`のコードとなるので, 処理能力など`JavaScript`と変わることはありません。
最終的には`JavaScript`のコードとなるので, 処理能力など`JavaScript`と変わることはありません。
ですが`TypeScript`には静的型付け機能を搭載しているという特徴があります。

静的型付けとは, ソースコード内の値やオブジェクトの型をコンパイル時に解析し, 安全性が保たれているかを検証するシステム・方法のことです。
Expand All @@ -101,8 +101,8 @@ $ npx hardhat
`TypeScript`はそれらのエラーはコンパイル時に判明するためバグの早期発見に繋がります。
バグの早期発見は開発コストを下げることにつながります。

本プロジェクトでは, コントラクトのテストとフロントエンドの構築に`TypeScript`を使用します。
フロントエンドの実装の方では自ら型の指定をする部分が多いのでより型について認識できるかもしれません。
本プロジェクトでは, コントラクトのテストとフロントエンドの構築に`TypeScript`を使用します。
フロントエンドの実装の方では自ら型の指定をする部分が多いのでより型について認識できるかもしれません。
(コントラクのテスト実装の方では, 自動的に型を判別する機能を使用しているので自ら型を指定する部分が少ないです)。

ひとまず, オブジェクトの型がわかっていないと実行できないような`JavaScript`コード, という認識でまずは進めてみてください。
Expand All @@ -119,7 +119,7 @@ $ npx hardhat test

次のように表示されたら成功です! 🎉

![](/public/images/AVAX-amm/section-1/1_1_1.png)
![](/public/images/AVAX-AMM/section-1/1_1_1.png)

ここまできたら,フォルダーの中身を整理しましょう。

Expand All @@ -141,7 +141,7 @@ contract
└── typechain-types
```

`test`の下のファイル`Lock.ts`
`test`の下のファイル`Lock.ts`
`contracts`の下のファイル`Lock.sol`を削除してください。

実際のフォルダは削除しないように注意しましょう。
Expand Down
Loading

0 comments on commit ee1babe

Please sign in to comment.