Introduction
本指南默认你已经会读 Solidity,也能理解 EVM 合约的基本行为。这里不重复讲区块链入门,而是把你已有的开发直觉重新映射到 Aptos。
最先发生变化的地方
Section titled “最先发生变化的地方”- 授权模型:从隐式的
msg.sender检查,变成显式的&signer参数。 - 存储模型:从合约拥有的 slot 和 mapping,变成全局存储中的 resource 与 object。
- 代币模型:从“每个资产一份合约”的 ERC 模式,转向框架支持的 Fungible Asset 与 Digital Asset。
- 前端交互:从 Ethers contract instance,转向
@aptos-labs/ts-sdk加上 Wallet Adapter。
Move 中的事件
Section titled “Move 中的事件”Solidity 直接在合约里声明事件:
event MessageAdded(address sender, string message, uint256 addedAt);Move 把事件当作带 #[event] 注解的 struct,并通过 event::emit 发出:
use 0x1::event;use std::string::String;
#[event]struct MessageAdded has drop, store { sender: address, message: String, added_at: u64,}
event::emit(MessageAdded { sender, message, added_at: timestamp::now_seconds(),});如果你想先看短版,直接跳到 cheatsheet。