🙆‍♀️

Aptosチュートリアルでコンパイルエラーになったときの原因と解決方法

2023/03/30に公開

AptosのBuild an E2E Dapp on Aptosチュートリアルを進めていたところ、何度試してもコンパイルできませんでした。
Aptos LabsのGithub Isuueで質問したところ解決したので、シェアします。

こちらのチュートリアルです。
https://aptos.dev/tutorials/build-e2e-dapp/e2e-dapp-index

目次

  1. エラーの内容と開発環境について
  2. エラーの原因
  3. エラーの解決方法とコンパイル結果
  4. まとめ

エラーの内容と開発環境について

チュートリアルの「1. Create a Smart Contract」で、todolist.moveファイルをコンパイルできませんでした。

エラーメッセージ

コンパイル時のエラーメッセージです。

error: property `map_borrow_mut_with_default` is not valid in this context
   ┌─ ../.move/https___github_com_aptos-labs_aptos-core_git_main/aptos-move/framework/aptos-framework/../aptos-stdlib/sources/table.spec.move:7:9
   │  
 7 │ ╭         pragma intrinsic = map,
 8 │ │             map_new = new,
 9 │ │             map_destroy_empty = destroy,
10 │ │             map_has_key = contains,
   · │
19 │ │             map_spec_del = spec_remove,
20 │ │             map_spec_has_key = spec_contains;
   │ ╰─────────────────────────────────────────────^

error: property `map_borrow_mut_with_default` is not valid in this context
   ┌─ ../.move/https___github_com_aptos-labs_aptos-core_git_main/aptos-move/framework/aptos-framework/../aptos-stdlib/sources/table_with_length.spec.move:7:9
   │  
 7 │ ╭         pragma intrinsic = map,
 8 │ │             map_new = new,
 9 │ │             map_destroy_empty = destroy_empty,
10 │ │             map_len = length,
   · │
22 │ │             map_spec_len = spec_len,
23 │ │             map_spec_has_key = spec_contains;
   │ ╰─────────────────────────────────────────────^

{
  "Error": "Move compilation failed: extended checks failed"
}

開発環境

  • Aptos CLI 1.0.7
  • macOS Ventura 13.2.1

エラーの原因

Aptos CLIがエラーの原因でした。
バージョンを1.0.7から1.0.9にアップデートすれば、問題なくコンパイルできます。

Using the upcoming Aptos CLI 1.0.9 will solve this issue.
(Deepl翻訳)今後リリースされるAptos CLI 1.0.9を使用することで、この問題は解決されます。

質問したAptos Labs Github Isuueページはこちら
https://github.com/aptos-labs/aptos-core/issues/7467

エラーの解決方法とコンパイル結果

すでに、1.0.9はリリースされているので、brewを使ってインストールしていきます。

アップデートには、以下のどちらかのコマンドを実行します。

$ brew update // brewで管理しているパッケージをアップデート
$ brew upgrade aptos // Aptos CLIのみアップデート

アップデートできたか確認します。

$ aptos -V
aptos 1.0.9

Aptos CLIがアップデートできたので、再度コンパイルしてみます。

$ aptos move compile
Compiling, may take a little while to download git dependencies...
UPDATING GIT DEPENDENCY https://github.com/aptos-labs/aptos-core.git
INCLUDING DEPENDENCY AptosFramework
INCLUDING DEPENDENCY AptosStdlib
INCLUDING DEPENDENCY MoveStdlib
BUILDING my_todo_list
{
  "Result": [
    "<default-profile-account-address>::todolist"
  ]
}

無事、コンパイルできました。

まとめ

同じエラーで悩んでいる方の助けになりましたらうれしいです。
最後までお読みいただきありがとうございました!

Discussion