Votre Premier Module Move
La blockchain Aptos permet aux développeurs d’écrire des contrats intelligents complets de Turing (appelés “modules”) avec le langage Move sécurisé par conception. Les contrats intelligents permettent aux utilisateurs d’envoyer de l’argent avec la blockchain, mais aussi d’écrire du code arbitraire, même des jeux ! Tout commence avec la CLI Aptos créant un compte qui stockera le module Move déployé (“publié”).
Ce tutoriel vous aidera à comprendre les Modules Move en vous guidant dans la configuration d’un environnement Aptos minimal, puis comment compiler, tester, publier et interagir avec les modules Move sur la Blockchain Aptos. Vous apprendrez comment :
- Configurer votre environnement, installer la CLI
- Créer un compte devnet et le financer
- Compiler et tester un module Move
- Publier (ou “déployer”) un module Move sur la blockchain Aptos
- Interagir avec le module
- Continuer à construire avec Aptos (prochaines étapes)
1. Configuration
Section intitulée « 1. Configuration »Les changements à la blockchain sont appelés “transactions”, et ils nécessitent un compte pour payer les frais de réseau (“frais de gaz”). Nous devrons créer un compte avec quelques APT pour payer ces frais et posséder le contrat publié. Pour cela, nous devrons utiliser la CLI Aptos.
-
Installer la CLI Aptos
Installez la CLI Aptos (si vous ne l’avez pas déjà fait).
-
Ouvrir un nouveau terminal
Ouvrez une nouvelle fenêtre ou un onglet de terminal.
-
Vérifier l’installation
Exécutez
aptos --version
pour vérifier que vous l’avez installé.Fenêtre de terminal aptos --versionVous devriez voir une réponse comme
aptos 4.6.1
. -
Créer un dossier de projet
Créez un nouveau dossier pour ce tutoriel en exécutant :
Fenêtre de terminal mkdir my-first-module -
Naviguer vers le dossier du projet
Exécutez
cd my-first-module
pour aller dans votre nouveau dossier. -
Initialiser votre compte
Exécutez
aptos init
et appuyez sur ‘entrée’ pour chaque étape de configuration pour créer un compte de test surdevnet
.Vous devriez voir un message de succès comme celui-ci :
Fenêtre de terminal ---Aptos CLI is now set up for account 0x9ec1cfa30b885a5c9d595f32f3381ec16d208734913b587be9e210f60be9f9ba as profile default!{"Result": "Success"}
2. (Optionnel) Explorer Ce Que Vous Venez de Faire Sur la Chaîne
Section intitulée « 2. (Optionnel) Explorer Ce Que Vous Venez de Faire Sur la Chaîne »-
Copier l’adresse de votre compte
Copiez l’adresse depuis la ligne de commande pour votre nouveau compte.
L’adresse ressemble à ceci
0x9ec1cfa30b885a5c9d595f32f3381ec16d208734913b587be9e210f60be9f9ba
et vous pouvez la trouver dans la ligne :Fenêtre de terminal Aptos CLI is now set up for account 0x9ec1cfa30b885a5c9d595f32f3381ec16d208734913b587be9e210f60be9f9ba as profile default! -
Visiter l’explorateur Aptos
Ouvrez explorer.aptoslabs.com dans votre navigateur.
-
Rechercher votre compte
Collez l’adresse de votre compte dans la barre de recherche et appuyez sur entrée.
Vous devriez voir les détails de votre compte, incluant votre solde APT.
3. Créer un Projet Move
Section intitulée « 3. Créer un Projet Move »Maintenant que nous avons un compte, créons un nouveau projet Move.
-
Initialiser un nouveau package Move
Dans votre terminal, dans le dossier
my-first-module
, exécutez :Fenêtre de terminal aptos move init --name hello_blockchainCela créera un nouveau package Move avec la structure suivante :
hello_blockchain/├── Move.toml└── sources/ -
Examiner le fichier Move.toml
Ouvrez
Move.toml
dans votre éditeur préféré. Vous devriez voir quelque chose comme :[package]name = "hello_blockchain"version = "1.0.0"authors = [][addresses]hello_blockchain = "_"[dev-addresses][dependencies.AptosFramework]git = "https://github.com/aptos-labs/aptos-core.git"rev = "mainnet"subdir = "aptos-move/framework/aptos-framework"[dev-dependencies]
4. Écrire Votre Premier Module Move
Section intitulée « 4. Écrire Votre Premier Module Move »Créons un module simple qui stocke un message de salutation.
-
Créer un nouveau fichier source
Créez un nouveau fichier nommé
hello_blockchain.move
dans le dossiersources/
. -
Ajouter le code du module
Ajoutez le code suivant à
sources/hello_blockchain.move
:module hello_blockchain::message {use std::error;use std::signer;use std::string;use aptos_framework::event;/// Il n'y a pas de ressource de message sous l'adresse donnéeconst E_NO_MESSAGE: u64 = 0;#[resource_group_member(group = aptos_framework::object::ObjectGroup)]struct MessageHolder has key {message: string::String,}#[event]struct MessageChange has drop, store {account: address,from_message: string::String,to_message: string::String,}public entry fun set_message(account: signer, message: string::String)acquires MessageHolder {let account_addr = signer::address_of(&account);if (!exists<MessageHolder>(account_addr)) {move_to(&account, MessageHolder {message,})} else {let old_message_holder = borrow_global_mut<MessageHolder>(account_addr);let old_message = old_message_holder.message;event::emit(MessageChange {account: account_addr,from_message: old_message,to_message: copy message,});old_message_holder.message = message;}}#[view]public fun get_message(addr: address): string::String acquires MessageHolder {assert!(exists<MessageHolder>(addr), error::not_found(E_NO_MESSAGE));borrow_global<MessageHolder>(addr).message}}Ce module fait quelques choses simples :
- Structure MessageHolder : Stocke un message pour un compte
- Fonction set_message : Définit ou met à jour le message pour un compte
- Fonction get_message : Récupère le message pour un compte
- Événement MessageChange : Émis quand un message change
5. Compiler et Tester le Module
Section intitulée « 5. Compiler et Tester le Module »-
Compiler le module
Fenêtre de terminal aptos move compileSi tout va bien, vous devriez voir :
Fenêtre de terminal Compiling, may take a little while to download git dependencies...UPDATING GIT DEPENDENCY https://github.com/aptos-labs/aptos-core.gitINCLUDING DEPENDENCY AptosFrameworkINCLUDING DEPENDENCY AptosStdlibINCLUDING DEPENDENCY MoveStdlibBUILDING hello_blockchain{"Result": "Success"} -
Créer des tests unitaires
Créez un nouveau fichier
sources/hello_blockchain_test.move
:#[test_only]module hello_blockchain::message_tests {use std::signer;use std::string;use hello_blockchain::message;#[test(account = @0x1)]public entry fun sender_can_set_message(account: signer) {let addr = signer::address_of(&account);aptos_framework::account::create_account_for_test(addr);message::set_message(account, string::utf8(b"Hello, Blockchain"));assert!(message::get_message(addr) == string::utf8(b"Hello, Blockchain"),0);}} -
Exécuter les tests
Fenêtre de terminal aptos move testVous devriez voir :
Fenêtre de terminal BUILDING hello_blockchainRunning Move unit tests[ PASS ] 0x9ec1cfa30b885a5c9d595f32f3381ec16d208734913b587be9e210f60be9f9ba::message_tests::sender_can_set_messageTest result: OK. Total tests: 1; passed: 1; failed: 0{"Result": "Success"}
6. Publier le Module
Section intitulée « 6. Publier le Module »-
Publier sur devnet
Fenêtre de terminal aptos move publishVous verrez quelque chose comme :
Fenêtre de terminal Compiling, may take a little while to download git dependencies...UPDATING GIT DEPENDENCY https://github.com/aptos-labs/aptos-core.gitINCLUDING DEPENDENCY AptosFrameworkINCLUDING DEPENDENCY AptosStdlibINCLUDING DEPENDENCY MoveStdlibBUILDING hello_blockchainpackage size 1755 bytesDo you want to submit a transaction for a range of [194800 - 292200] Octas at a gas unit price of 100 Octas? [yes/no] > -
Confirmer la transaction
Tapez
yes
et appuyez sur entrée. Vous devriez voir :Fenêtre de terminal {"Result": {"transaction_hash": "0x1d7b074dd95724c5459a1c30d796572e8a0e7f6e56d70d0e64a0e9d5a7a4e2e7","gas_used": 1975,"gas_unit_price": 100,"sender": "9ec1cfa30b885a5c9d595f32f3381ec16d208734913b587be9e210f60be9f9ba","sequence_number": 0,"success": true,"timestamp_us": 1685077849623717,"version": 566318193,"vm_status": "Executed successfully"}}Félicitations ! Votre module Move est maintenant publié sur la blockchain Aptos.
7. Interagir avec le Module
Section intitulée « 7. Interagir avec le Module »Maintenant que notre module est publié, interagissons avec lui.
-
Définir un message
Fenêtre de terminal aptos move run --function-id 'default::message::set_message' --args 'string:Hello, Aptos!'Confirmez la transaction en tapant
yes
. -
Lire le message
Fenêtre de terminal aptos move view --function-id 'default::message::get_message' --args 'address:default'Vous devriez voir :
Fenêtre de terminal {"Result": ["Hello, Aptos!"]} -
Mettre à jour le message
Fenêtre de terminal aptos move run --function-id 'default::message::set_message' --args 'string:Hello, Web3!' -
Vérifier la mise à jour
Fenêtre de terminal aptos move view --function-id 'default::message::get_message' --args 'address:default'Vous devriez maintenant voir :
Fenêtre de terminal {"Result": ["Hello, Web3!"]}
8. Explorer sur la Blockchain
Section intitulée « 8. Explorer sur la Blockchain »-
Visiter l’explorateur
Retournez à explorer.aptoslabs.com et recherchez l’adresse de votre compte.
-
Voir vos transactions
Vous devriez voir toutes les transactions que vous avez soumises, incluant la publication du module et les appels de fonction.
-
Voir les ressources du compte
Cliquez sur l’onglet “Resources” pour voir votre
MessageHolder
stocké sur la chaîne.
Concepts Clés Appris
Section intitulée « Concepts Clés Appris »- Modules Move : Contrats intelligents sur Aptos écris en Move
- Ressources : Structures de données qui vivent sur la chaîne et sont possédées par des comptes
- Fonctions d’entrée : Fonctions qui peuvent être appelées depuis l’extérieur
- Fonctions de vue : Fonctions en lecture seule qui ne modifient pas l’état
- Tests unitaires : Comment tester votre code Move avant le déploiement
- Publication : Déployer votre code sur la blockchain
- Interaction : Appeler des fonctions et lire des données depuis des modules déployés
Prochaines Étapes
Section intitulée « Prochaines Étapes »Maintenant que vous avez créé votre premier module Move, voici ce que vous pouvez explorer ensuite :
- Livre Move - Apprenez Move de façon approfondie
- Construire une DApp E2E - Créez une application frontale qui interagit avec votre contrat
- Exemples Move - Explorez des modèles de contrats plus complexes
- Aptos Standards - Apprenez les standards pour les jetons et les NFT
Félicitations pour avoir déployé votre premier contrat intelligent sur Aptos ! 🎉