Smart Contracts
Aptos-Verträge werden mit Move geschrieben, einer Sprache der nächsten Generation für sichere, sandboxed und formal verifizierte Programmierung, die für mehrere Chains verwendet wird. Move ermöglicht es Entwicklern, Programme zu schreiben, die flexibel Assets verwalten und übertragen, während sie Sicherheit und Schutz vor Angriffen auf diese Assets bieten.
📖 Move lernen
Abschnitt betitelt „📖 Move lernen“ Warum Move? Lernen Sie, warum Aptos die Move-Sprache verwendet
Paket erstellen Erste Schritte durch das Lernen, wie man ein Move-Paket erstellt
Objekte Lernen Sie, wie Sie den Object-Standard auf Aptos verwenden, um komponierbare und flexible Primitive on-chain zu erstellen
👨💻 Move-Beispiele
Abschnitt betitelt „👨💻 Move-Beispiele“ Aptos Move-Beispiele 30+ Beispiele zur Entwicklung von Move auf Aptos
Move-Tutorial Behandelt die Grundlagen der Programmierung mit Move
Ihr erstes Move-Modul Ein Beispiel, wie Sie Ihr erstes Move-Modul veröffentlichen
Hier ist ein hello_blockchain
-Beispiel von Move
module hello_blockchain::message { use std::error; use std::signer; use std::string; use aptos_framework::event;
//:!:>resource struct MessageHolder has key { message: string::String, } //<:!:resource
#[event] struct MessageChange has drop, store { account: address, from_message: string::String, to_message: string::String, }
/// There is no message present const ENO_MESSAGE: u64 = 0;
#[view] public fun get_message(addr: address): string::String acquires MessageHolder { assert!(exists<MessageHolder>(addr), error::not_found(ENO_MESSAGE)); borrow_global<MessageHolder>(addr).message }
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 from_message = old_message_holder.message; event::emit(MessageChange { account: account_addr, from_message, to_message: copy message, }); old_message_holder.message = message; } }
#[test(account = @0x1)] public entry fun sender_can_set_message(account: signer) acquires MessageHolder { let addr = signer::address_of(&account); aptos_framework::account::create_account_for_test(addr); set_message(account, string::utf8(b"Hello, Blockchain"));
assert!( get_message(addr) == string::utf8(b"Hello, Blockchain"), ENO_MESSAGE ); }}
⚒️ Entwicklerressourcen
Abschnitt betitelt „⚒️ Entwicklerressourcen“FAQ und Diskussionen
Abschnitt betitelt „FAQ und Diskussionen“- Aptos Dev Discussions für Q&A über Move.
Move IDE-Plugins
Abschnitt betitelt „Move IDE-Plugins“- Move on Aptos-Erweiterung für VSCode und OpenVSX.
- Move-Sprachen-Plugin für JetBrains IDEs
Externe Ressourcen
Abschnitt betitelt „Externe Ressourcen“- Aptos Move by Example
- Teach yourself Move on Aptos.
- Formal Verification, the Move Language, and the Move Prover
- Pontem Move Playground
- Collection of nestable Move resources
Wir haben einen neuen Move on Aptos-Compiler, der Move 2 unterstützt. Siehe diese Seite für weitere Informationen.