🌝

Movementというブロックチェーンネットワークを触ってみる

2023/12/30に公開

たまたま見つけたMovementというブロックチェーンネットワークに興味を持ったので、ざっとまとめてみます。

Movementとは?

公式サイト
https://movementlabs.xyz/
公式ドキュメント
https://docs.movementlabs.xyz/

MovementはMove言語をベースとするモジュラー型のブロックチェーンネットワークであり、その開発のためのフレームワークを提供している。
2023年12月現在、「M1」「M2」の2つのテストネットが存在する。

M1の特徴

  • Avalanche Subnet
  • Aptos互換 (将来的にSuiにも対応)
  • Move VM
  • Fractal対応で、Solidityスマコンもデプロイ可能
  • Snowman Consensus

M2の特徴

  • Ethereum L2
  • Sui互換
  • Move VM
  • Data Availability(DA)レイヤーにCelestiaを採用
  • M1がSuiに対応後、M2は新しい目的に置き換えられる(repurposed)

> Move VMをAvalancheのコンセンサスで高速並列処理できるなんて面白そうですね!
(14万TPS超えらしい)
https://twitter.com/asimfiles/status/1668629942131912708

M2を触ってみる

筆者はEVM系のチェーンしか使ったことがなく、特にSuiには前から興味があったので早速M2から触ってみることに。
(ここからは基本的に公式ドキュメントにのっとり進めますので、詳細はそちらをご確認ください。)

1. Suiウォレットを用意

こちらのChrome拡張をインストールし作成。
https://chromewebstore.google.com/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil

M2テストネットのカスタムRPCを設定する。

https://devnet.m2.movementlabs.xyz

2. 資金調達

こちらからテストネットトークンのMOVを入手。
https://movement.interestprotocol.com/faucet

3. 開発環境の準備

VS CodeのDev Containersを使います。
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

Dockerイメージをぷる。

docker pull mvlbs/m1-cli

コンテナ立ち上げ。

docker run -it -v "$(pwd):/workspace" mvlbs/m1-cli /bin/bash

/workspace内で新規Sui Moveプロジェクト作成。

movement sui move new [任意のプロジェクト名]

4. Moveを書く

プロジェクト内、/sources配下に.moveファイルを作成。
今回はSui公式のサンプルNFTを参考に実装(ほぼコピペ)。
https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/nfts/sources/devnet_nft.move
https://examples.sui.io/samples/nft.html

できたものはこちら。
https://github.com/ryorod/movement_m2_test

5. M2テストネットにデプロイしてみる

movement sui client publish --gas-budget 20000000

初めてデプロイしようとすると以下のようなメッセージが出てくるので、yで進む。

Config file ["/root/.sui/sui_config/client.yaml"] doesn't exist, do you want to connect to a Sui Full node server [y/N]?
y

次のプロンプトで、ポート番号付きのRPC URLを入力する。

Sui Full node server URL (Defaults to Movement Sui Devnet if not specified) : 
https://devnet.m2.movementlabs.xyz:443

エイリアスの設定を求められるので、なんでも良いがここでは"m2"と入れておく。

Environment alias for [https://devnet.m2.movementlabs.xyz:443] : 
m2

鍵のアルゴリズムをどれにするか求められるので、自分は"0"(ed25519)を選択。

Select key scheme to generate keypair (0 for ed25519, 1 for secp256k1, 2: for secp256r1):
0

するとウォレットアドレスがシードフレーズと共に生成されるので、Sui Walletに追加してそこにMOVを入れたいところだが、デプロイのコマンドを打っていたのでそのままビルドに進む...

アーー!!

[warn] Client/Server api version mismatch, client api version : 1.15.0-canonical-sui, server api version : 1.14.0
UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING m2_test
error[Sui E01001]: invalid object construction
   ┌─ /root/.move/https___github_com_MystenLabs_sui_git_framework__testnet/crates/sui-framework/packages/sui-framework/sources/random.move:53:20
   │  
53let self = Random {
   │ ╭────────────────────^
54 │ │             id: object::randomness_state(),
   │ │             --  -------------------------- Non fresh UID from this position
   │ │             │    
   │ │             The UID must come directly from sui::object::new. Or for tests, it can come from sui::test_scenario::new_object
55 │ │             inner: versioned::create(version, inner, ctx),
56 │ │         };
   │ ╰─────────^ Invalid object creation without a newly created UID.

コンパイルエラーが起きました。
クライアントとサーバーAPIのバージョンが異なっているというwarningが出ているのも気になりますね。
使用したのはDockerの環境でインストールされているものなので、一旦Discordにその件を投げてみました。(特に返信は来ず...)

気を取り直して...

というわけでDockerコンテナのMovement CLIではうまくいかなかったので、ローカルにSui CLIをインストールしてやってみます。

1. Sui CLIのインストール

cargo install --locked --git https://github.com/MystenLabs/sui.git --branch testnet sui

2. M2環境を追加

sui client new-env --rpc https://devnet.m2.movementlabs.xyz:443 --alias m2

またアドレスが生成されるので、Sui WalletにインポートしてそこにMOVを入れておく。

追加したM2環境に切り替え

sui client switch --env m2

3. 今度こそデプロイを

sui client publish --gas-budget 20000000

アアアーー!!!

Failed to publish the Move module(s), reason: [warning] Multiple source verification errors found:

- On-chain version of dependency Sui::random was not found.
- On-chain version of dependency Sui::token was not found.
- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::zklogin_verified_issuer
- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::object
- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::zklogin_verified_id
- Local dependency did not match its on-chain version at 0000000000000000000000000000000000000000000000000000000000000002::Sui::transfer_policy

This may indicate that the on-chain version(s) of your package's dependencies may behave differently than the source version(s) your package was built against.

Fix this by rebuilding your packages with source versions matching on-chain versions of dependencies, or ignore this warning by re-running with the --skip-dependency-verification flag.

またしてもエラーです。
でも以前はあったコンパイルエラーはなくなり、原因はどうやらパッケージのバージョン違いとのことなので、一旦メッセージに書いてあるとおりフラグを付けて再度試す。

sui client publish --gas-budget 20000000 --skip-dependency-verification

キタ――(゚∀゚)――!!

Transaction Digest: 2hoivUGrzXtZDSCK2bNk2PCFJMTgWsv26WzMnZPY4BCJ
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Transaction Data                                                                                                                                            │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                                                                                  │
│ Gas Owner: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                                                                               │
│ Gas Budget: 20000000 MIST                                                                                                                                   │
│ Gas Price: 1000 MIST                                                                                                                                        │
│ Gas Payment:                                                                                                                                                │
│  ┌──                                                                                                                                                        │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                                                                                   │
│  │ Version: 37                                                                                                                                              │
│  │ Digest: DAuLLwerUH7YAov79ZtTziCDFRqCbgnXqhK7TrL1ed9R                                                                                                     │
│  └──                                                                                                                                                        │
│                                                                                                                                                             │
│ Transaction Kind : Programmable                                                                                                                             │
│ Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000" })]                     │
│ Commands: [                                                                                                                                                 │
│   Publish(<modules>,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002), │
│   TransferObjects([Result(0)],Input(0)),                                                                                                                    │
│ ]                                                                                                                                                           │
│                                                                                                                                                             │
│                                                                                                                                                             │
│ Signatures:                                                                                                                                                 │
│    3M600Dz9EBcQZSlDol3m3daK/IJAgVn0sEFKgXZ9BCMLm4SGK0hfTc3HtKEiroeNAQgBgPg9IXV7B5RFtRMrDg==                                                                 │
│                                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Transaction Effects                                                                               │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Digest: 2hoivUGrzXtZDSCK2bNk2PCFJMTgWsv26WzMnZPY4BCJ                                              │
│ Status: Success                                                                                   │
│ Executed Epoch: 27                                                                                │
│                                                                                                   │
│ Created Objects:                                                                                  │
│  ┌──                                                                                              │
│  │ ID: 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3                         │
│  │ Owner: Immutable                                                                               │
│  │ Version: 1                                                                                     │
│  │ Digest: DtuetTEUthCjgN7YwJomkfJja7NY3yDiDca4CNGeBjL4                                           │
│  └──                                                                                              │
│  ┌──                                                                                              │
│  │ ID: 0xc2f1ff5ac3ca95390102cfaa9138a355b4892923a0f250b862f4549b4a04a6b0                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 38                                                                                    │
│  │ Digest: EvASj4LYvgrbqUwbviYT9QsMMbp1XYC8cHtBn1Gy614B                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Mutated Objects:                                                                                  │
│  ┌──                                                                                              │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 38                                                                                    │
│  │ Digest: HirqrFKXVWsw2nB3Sv1hbNkybKNhrVUMc5C1aaZjzEFp                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Gas Object:                                                                                       │
│  ┌──                                                                                              │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 38                                                                                    │
│  │ Digest: HirqrFKXVWsw2nB3Sv1hbNkybKNhrVUMc5C1aaZjzEFp                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Gas Cost Summary:                                                                                 │
│    Storage Cost: 11103600                                                                         │
│    Computation Cost: 1000000                                                                      │
│    Storage Rebate: 978120                                                                         │
│    Non-refundable Storage Fee: 9880                                                               │
│                                                                                                   │
│ Transaction Dependencies:                                                                         │
│    34gMyzi9jNSkTa3gctK9tAcDNBjJWpnK4jPmDmUUF3pt                                                   │
│    E486NBRLMy4bS7W937TSWKKEHVzibgZ8nE8fPbJDdHUH                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────────╮
│ No transaction block events │
╰─────────────────────────────╯

╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Object Changes                                                                                   │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                                  │
│ Created Objects:                                                                                 │
│  ┌──                                                                                             │
│  │ ObjectID: 0xc2f1ff5ac3ca95390102cfaa9138a355b4892923a0f250b862f4549b4a04a6b0                  │
│  │ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                    │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 ) │
│  │ ObjectType: 0x2::package::UpgradeCap                                                          │
│  │ Version: 38                                                                                   │
│  │ Digest: EvASj4LYvgrbqUwbviYT9QsMMbp1XYC8cHtBn1Gy614B                                          │
│  └──                                                                                             │
│                                                                                                  │
│ Mutated Objects:                                                                                 │
│  ┌──                                                                                             │
│  │ ObjectID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                  │
│  │ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                    │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 ) │
│  │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI>                                                    │
│  │ Version: 38                                                                                   │
│  │ Digest: HirqrFKXVWsw2nB3Sv1hbNkybKNhrVUMc5C1aaZjzEFp                                          │
│  └──                                                                                             │
│                                                                                                  │
│ Published Objects:                                                                               │
│  ┌──                                                                                             │
│  │ PackageID: 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3                 │
│  │ Version: 1                                                                                    │
│  │ Digest: DtuetTEUthCjgN7YwJomkfJja7NY3yDiDca4CNGeBjL4                                          │
│  | Modules: devnet_nft                                                                           │
│  └──                                                                                             │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Balance Changes                                                                                   │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
│  ┌──                                                                                              │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ CoinType: 0x2::sui::SUI                                                                        │
│  │ Amount: -11125480                                                                              │
│  └──                                                                                              │
│                                                                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯

いけたっぽいですね。
Sui Explorerでも諸々確認できました。

トランザクション
https://suiexplorer.com/txblock/2hoivUGrzXtZDSCK2bNk2PCFJMTgWsv26WzMnZPY4BCJ?network=https%3A%2F%2Fdevnet.m2.movementlabs.xyz

パッケージ
https://suiexplorer.com/object/0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3?network=https%3A%2F%2Fdevnet.m2.movementlabs.xyz

オブジェクト
https://suiexplorer.com/object/0xc2f1ff5ac3ca95390102cfaa9138a355b4892923a0f250b862f4549b4a04a6b0?network=https%3A%2F%2Fdevnet.m2.movementlabs.xyz

4. NFTをMintしてみる

sui client call --package 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3 --module devnet_nft --function mint --gas-budget 10000000 --args "test name" "test desc" "https://www.sui.io"
Transaction Digest: 2S1FEQeD36ugycor2asQ5bQ1A6ofsEMvK8swKAabnJHv
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Transaction Data                                                                                                                                                                                                                             │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                                                                                                                                                                   │
│ Gas Owner: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                                                                                                                                                                │
│ Gas Budget: 10000000 MIST                                                                                                                                                                                                                    │
│ Gas Price: 1000 MIST                                                                                                                                                                                                                         │
│ Gas Payment:                                                                                                                                                                                                                                 │
│  ┌──                                                                                                                                                                                                                                         │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                                                                                                                                                                    │
│  │ Version: 38                                                                                                                                                                                                                               │
│  │ Digest: HirqrFKXVWsw2nB3Sv1hbNkybKNhrVUMc5C1aaZjzEFp                                                                                                                                                                                      │
│  └──                                                                                                                                                                                                                                         │
│                                                                                                                                                                                                                                              │
│ Transaction Kind : Programmable                                                                                                                                                                                                              │
│ Inputs: [Pure(SuiPureValue { value_type: Some(Vector(U8)), value: "test name" }), Pure(SuiPureValue { value_type: Some(Vector(U8)), value: "test desc" }), Pure(SuiPureValue { value_type: Some(Vector(U8)), value: "https://www.sui.io" })] │
│ Commands: [                                                                                                                                                                                                                                  │
│   MoveCall(0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3::devnet_nft::mint(Input(0),Input(1),Input(2))),                                                                                                                │
│ ]                                                                                                                                                                                                                                            │
│                                                                                                                                                                                                                                              │
│                                                                                                                                                                                                                                              │
│ Signatures:                                                                                                                                                                                                                                  │
│    m5sehgk5pHwzb7Q2AcNFA/H4FPNDwqSYCeU9cKLIpbjLdyXDergT9DHaGhljtSCwRcpl7ffs5q0EKqnzWUNmBA==                                                                                                                                                  │
│                                                                                                                                                                                                                                              │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Transaction Effects                                                                               │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Digest: 2S1FEQeD36ugycor2asQ5bQ1A6ofsEMvK8swKAabnJHv                                              │
│ Status: Success                                                                                   │
│ Executed Epoch: 27                                                                                │
│                                                                                                   │
│ Created Objects:                                                                                  │
│  ┌──                                                                                              │
│  │ ID: 0xc6924c2f7dbc2c93cad897f4deb8d8b5f502250690d70c1d2138f885e04dd99d                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 39                                                                                    │
│  │ Digest: Cqn28YYhTvRrRw87iCLAEMuLqhj9F79686TmEvEGPoSw                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Mutated Objects:                                                                                  │
│  ┌──                                                                                              │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 39                                                                                    │
│  │ Digest: 81GxDmHYq8qgurKB3CUf8P9XDczQc3jhfsqmznrTsxVA                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Gas Object:                                                                                       │
│  ┌──                                                                                              │
│  │ ID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                         │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ Version: 39                                                                                    │
│  │ Digest: 81GxDmHYq8qgurKB3CUf8P9XDczQc3jhfsqmznrTsxVA                                           │
│  └──                                                                                              │
│                                                                                                   │
│ Gas Cost Summary:                                                                                 │
│    Storage Cost: 2622000                                                                          │
│    Computation Cost: 1000000                                                                      │
│    Storage Rebate: 978120                                                                         │
│    Non-refundable Storage Fee: 9880                                                               │
│                                                                                                   │
│ Transaction Dependencies:                                                                         │
│    2hoivUGrzXtZDSCK2bNk2PCFJMTgWsv26WzMnZPY4BCJ                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Transaction Block Events                                                                                   │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│  ┌──                                                                                                       │
│  │ EventID: 2S1FEQeD36ugycor2asQ5bQ1A6ofsEMvK8swKAabnJHv:0                                                 │
│  │ PackageID: 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3                           │
│  │ Transaction Module: devnet_nft                                                                          │
│  │ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                              │
│  │ EventType: 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3::devnet_nft::MintNFTEvent │
│  │ ParsedJSON:                                                                                             │
│  │   ┌───────────┬────────────────────────────────────────────────────────────────────┐                    │
│  │   │ creator   │ 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 │                    │
│  │   ├───────────┼────────────────────────────────────────────────────────────────────┤                    │
│  │   │ name      │ test name                                                          │                    │
│  │   ├───────────┼────────────────────────────────────────────────────────────────────┤                    │
│  │   │ object_id │ 0xc6924c2f7dbc2c93cad897f4deb8d8b5f502250690d70c1d2138f885e04dd99d │                    │
│  │   └───────────┴────────────────────────────────────────────────────────────────────┘                    │
│  └──                                                                                                       │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Object Changes                                                                                            │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                                           │
│ Created Objects:                                                                                          │
│  ┌──                                                                                                      │
│  │ ObjectID: 0xc6924c2f7dbc2c93cad897f4deb8d8b5f502250690d70c1d2138f885e04dd99d                           │
│  │ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                             │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )          │
│  │ ObjectType: 0x5c7bfebe05c4756dee16b35ba0b020b7b3b012009ab07ac1392d7aa77dc703e3::devnet_nft::DevNetNFT  │
│  │ Version: 39                                                                                            │
│  │ Digest: Cqn28YYhTvRrRw87iCLAEMuLqhj9F79686TmEvEGPoSw                                                   │
│  └──                                                                                                      │
│                                                                                                           │
│ Mutated Objects:                                                                                          │
│  ┌──                                                                                                      │
│  │ ObjectID: 0x0dbea68d3ffd1e4d2b5c13bd95e9debf0b81ca665eddc407f82e652e8455a578                           │
│  │ Sender: 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000                             │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )          │
│  │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI>                                                             │
│  │ Version: 39                                                                                            │
│  │ Digest: 81GxDmHYq8qgurKB3CUf8P9XDczQc3jhfsqmznrTsxVA                                                   │
│  └──                                                                                                      │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Balance Changes                                                                                   │
├───────────────────────────────────────────────────────────────────────────────────────────────────┤
│  ┌──                                                                                              │
│  │ Owner: Account Address ( 0x9d92e05f49003c433b445dc32b6d7eb8295b06085f762ed27e4ea12a9b4ff000 )  │
│  │ CoinType: 0x2::sui::SUI                                                                        │
│  │ Amount: -2643880                                                                               │
│  └──                                                                                              │
│                                                                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────────────────╯

トランザクション
https://suiexplorer.com/txblock/2S1FEQeD36ugycor2asQ5bQ1A6ofsEMvK8swKAabnJHv?network=https%3A%2F%2Fdevnet.m2.movementlabs.xyz

オブジェクト
https://suiexplorer.com/object/0xc6924c2f7dbc2c93cad897f4deb8d8b5f502250690d70c1d2138f885e04dd99d?network=https%3A%2F%2Fdevnet.m2.movementlabs.xyz

M1をEVMのスマコンで触ってみる

M1ではSolidityで書かれたコントラクトもデプロイできるとのことなので、そちらも触ってみます。

1. EVM対応ウォレットにネットワークを追加・接続

ネットワーク名

Move-EVM

RPC URL

https://mevm.devnet.m1.movementlabs.xyz/v1

チェーンID

336

通貨記号

MOV

2. 資金調達

こちらのfaucetでMEVM用のMOVを入手。
https://faucet.movementlabs.xyz/?network=testnet

3. Remixでコントラクトをデプロイ

RemixでERC721のテンプレートを用いてコントラクトを作成し、コンパイル。
https://remix.ethereum.org/

"Injected Provider"を選択してウォレットを接続。
自身のアカウントにMOVの残高があることを確認し、デプロイ。

成功後、M1のExplorerからトランザクションを確認できます。
https://explorer.devnet.m1.movementlabs.xyz/#/txn/0xfffe343ca0b75b8fd6bb4fab3524e67ed5c1874b203c9ca41c75b3abb375c174?network=local

おわりに

今回はMovementのSui互換性を持つM2テストネットと、SolidityコントラクトをデプロイできるM1テストネットを触ってみました。
まだまだ開発段階でドキュメントも不十分なところが多いですが、非常に高いポテンシャルを持っていると思うので今後の動向にも期待したいですね。

JUNNI

Discussion