Skip to content

你好,Sway

顶部的contract关键字定义了Sway中四种程序类型之一。其他类型包括libraries、scripts和predicates。

sway
// 在Sway中编写的智能合约与Solidity中的智能合约没有区别
// 一些字节码与API和状态一起部署以进行交互
contract;

// ABI(应用程序二进制接口)清楚地定义了合约中存在的函数的签名
abi HelloModular {
    // "annotation"存储指示函数的不纯动作
    // 在这种情况下,greet()函数仅具有读取功能。
    // 注意:Storage只能在contract类型的程序中找到
    #[storage(read)]
    fn greet() -> str[16];
}

// Storage包含合约中所有可用的状态
storage {
    greet: str[16] = "Welcome to Sway!"
}

// 合约的ABI的实际实现
impl HelloModular for Contract {
    #[storage(read)]
    fn greet() -> str[16] {
        storage.greet
    }
}