Aptos 上的智能合约
Aptos 合约使用 Move 语言编写,这是一种用于安全、沙盒化和形式化验证编程的下一代语言,被多个区块链采用。 Move 允许开发者编写灵活管理和转移资产的程序,同时为这些资产提供安全性和攻击防护。
📖 学习 Move
👨💻 Move 示例
Aptos Move 示例 ↗
30+ 个关于如何在 Aptos 上开发 Move 的示例Move 教程 ↗
涵盖 Move 编程的基础知识你的第一个 Move 模块 →
一个hello_blockchain
示例,展示如何发布你的第一个 move 模块这是一个 hello_blockchain
的 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
);
}
}
⚒️ 开发者资源
FAQ 和讨论
- Aptos 开发者讨论 用于 Move 相关的问答。
Move IDE 插件
- Aptos Move Analyzer 用于 Visual Studio。
- JetBrains IDE 的 Move 语言插件:支持语法高亮、代码导航、重命名、格式化、类型检查和代码生成。
外部资源
- Aptos Move by Example
- 在 Aptos 上自学 Move。
- 形式化验证、Move 语言和 Move Prover
- Pontem Move Playground
- 可嵌套的 Move 资源集合
我们有一个新的支持 Move 2 的 Aptos Move 编译器。查看此页面了解更多信息。