Starknet智能合约
在前面的章节中,你主要是用main
入口来编写程序。在接下来的章节中,你将学习如何编写和部署Starknet合约。
Cairo语言的一个应用是编写用于Starknet网络的智能合约。Starknet是一个无许可网络,利用zk-STARKs技术实现可扩展性。作为以太坊的二层可扩展性解决方案,Starknet的目标是提供快速、安全和低成本的交易。它作为一个有效性Rollup(通常称为零知识Rollup)运行,并构建在Cairo语言和Starknet虚拟机之上。
简单来说,Starknet合约就是可以在Starknet虚拟机上运行的程序。由于它们在虚拟机上运行,它们可以访问Starknet的持久性状态,可以改变或修改Starknet状态中的变量,与其他合约沟通,并与底层的L1无缝交互。
Starknet合约由#[contract]
属性标记。我们将在接下来的部分对此进行深入探讨。如果你想了解更多关于Starknet网络本身,其架构以及可用的工具,你应该阅读Starknet Book。本节将只专注于如何使用Cairo编写智能合约。
Scarb
Scarb支持Starknet的智能合约开发。要启用此功能,您需要在 Scarb.toml
文件中进行一些配置(有关如何安装Scarb,请参阅安装)。
你需要添加 starknet
依赖项,并添加一个 [[target.starknet-contract]]
部分以启用合约编译。
下面是编译包含Starknet合约的crate所需的最小Scarb.toml文件示例:
[package]
name = "package_name"
version = "0.1.0"
[dependencies]
starknet = ">=2.4.0"
[[target.starknet-contract]]
有关外部合约依赖等更多配置相关的内容,请参阅 Scarb 文档。
本章中的每个示例都可以与 Scarb 一起使用。