虽然 Starknet 是基于以太坊构建的第 2 层网络,但它与基于以太坊虚拟机 (EVM) 模型构建的其他第 2 层网络不同,因此它拥有许多自己的开发人员工具来支持正在构建的开发人员社区在星网上。
虽然 Starknet 开发工具堆栈最初主要基于 Python,但总体趋势是从基于 Python 构建的工具转向基于 Rust 构建的工具。
以下是 Starknet 开发者的 7 个开发工具:
该图说明了开发过程,以及对每个开发阶段有用的工具。
Starkli,发音为Stark-lie,是一个快速命令行界面,取代了传统的 starknet-CLI。Starkli 是一个独立的界面,也就是说,您可以单独使用它,而不是作为另一个工具的组件。如果您实际上并不是在 Starknet 上进行开发,而只是想进行交互(例如通过发送事务),那么独立的 CLI 可能比 Cast 等接口更合适,Cast 是 Foundry 开发环境的集成组件。
Starknet 社区贡献者 Jonathan Lei,zkLend 联合创始人兼 CTO。
Starkli 是一个 Starknet CLI,类似于 cairo-lang,但用 Rust 编写。它更容易安装和导航,并且没有依赖项。该工具支持 Braavos 和 Argent X 智能钱包,并嵌入了对 RPC 端点的支持。
Starkli 包含标准 CLI 功能,如下所示:
部署账户
与合约交互
获取 Starknet 数据,例如有关区块、交易等的信息
Starkli 还包括以下功能:
从定义类的 Cairo 文件计算类哈希
计算函数的选择器
编码消息
自动完成
有用的帮助命令
进行多次通话的能力
有关入门信息(包括安装说明),请参阅Starkli:新的 Starknet CLI。
也可以看看:
软件开发工具包(SDK)是一个库,它抽象了 Starknet 在构建交易和与区块链交互时的复杂性,包括以下内容:
使用 JSON-RPC 和 Feeder gateway API 读取和写入 API 调用
帐户创建
密码学:Starknet 使用的签名验证和签名、计算哈希值
合约交互:ABI导入、构建交易
不同语言有多种SDK,您可以根据自己的语言选择SDK。
**语言使用者谁维护它?你从哪里得到它?**Starknet.jsJavaScript/
打字稿
去中心化应用程序/钱包碎片实验室starknet.js Github 存储库斯塔克网.pyPython有用的脚本软件大厦(SWM)starknet.py Github 存储库斯塔克网络RS锈斯塔克利,铸造厂雷国强starknet -rs Github 存储库Starknet-go去链环虚空心智starknet -go Github 存储库
devnet 是一个作为本地节点运行的 Starknet 实例,它的开发速度比使用测试网快得多,并且在测试网上启动之前提供隐私。
Shardlabs 最初用 Python 编写 starknet-devnet,但他们现在正在积极开发 Rust 版本,starknet-devnet-rs。目前,基于 Python 的版本功能更加丰富,最显着的功能是能够在给定块上分叉网络,因此如果这对您很重要,那么您需要使用基于 Python 的版本。然而,starknet-devnet-rs 的运行速度更快,开发人员正在努力使其功能与基于 Python 的 starknet-devnet 相当。
starknet-devnet-rs 是唯一接收新功能的版本。
碎片实验室
starknet-devnet 和 starknet-devnet-rs 包括一些已经使用可用于支付费用的 ERC-20 代币提供资金的账户。定义该代币的 ERC-20 合约也包含在内。
使用 starknet-devnet 和 starknet-devnet-rs 您可以执行以下操作:
创建模拟账户。
使用随附的预部署、预注资帐户发送交易。
测试工具。
测试 RPC 请求。
使用随附的通用部署者合约 (UDC) 部署新合约。
starknet-devnet-rs是值得关注的devnet,因为它是与StarkWare合作开发的,并且是正在积极开发的版本。
Katana 由 Dojo 团队开发,是一个速度极快的开发网络,旨在支持 Dojo 的本地开发,Dojo 是 Starknet 的游戏引擎。您也可以使用 Katana 作为通用开发网络。Katana 允许开发人员使用 Katana 网络在本地测试应用程序,以测试游戏期间发送的交易。
Katana 提供了方便的 RPC 方法,您可以使用它们根据需要更改网络配置。例如,您可以更改区块时间或允许零费用交易。
Katana 支持 Starknet JSON-RPC 规范 v0.3.0 版本,最新版本截至 2023 年 6 月。Katana 允许您使用本机 Starknet JSON 调用,例如starknet_getTransactionReceipt 、starknet_getStorageAt
有关安装和使用 Katana 的信息,请参阅Dojo 文档中的Katana 。
Starknet 的官方包管理器。
软件大厦
它通过以下方式让生活变得更轻松:
安装 Cairo 软件包时,它会处理添加、更新和删除依赖项。
您可以使用它来编译智能合约。
创建您自己的 Cairo 包时,它会负责从 Github 修补您需要的任何库,并让您知道是否存在版本不匹配。然后,您可以使用 Cairo 测试运行程序来构建和测试您的项目。建设速度相当快。
它包含内置的 Cairo 编译器,因此除非您实际上是编译器开发人员,否则不需要设置任何额外的工具。
它包含开罗语言服务器的捆绑二进制文件,您可以使用它
它与 Cairo 生态系统中的其他工具(例如 Foundry 和 Dojo)配合良好。
开发人员目前正在致力于改进 Scarb 处理版本、项目和工作区管理的方式。
https://docs.swmansion.com/scarb/
Starknet Foundry 是一个用于开发 Starknet 智能合约的工具链。它有助于编写、部署和测试您的智能合约。
软件大厦
Starknet Foundry 包括以下功能:
Forge,一个快速测试框架。Forge 的性能可与 Cairo Test Runner 相媲美,并且具有更好的用户体验。您可以在智能合约中测试独立功能并嵌入复杂的部署流程。
支持打印合同。根据文档,调试功能将在 Starknet 编译器中添加支持之后进行。
在线 Foundry 书籍,提供了有关编写和运行测试以及与 Starknet 交互的大量有用信息和指导。
使用 Scarb 集成编译和依赖管理。
Cast,文档通过其命令名称“sncast”来引用。Cast 是一个集成 CLI,专门设计用于执行 Starknet RPC 调用、发送交易和获取 Starknet 链数据。您可以使用 Cast 来使用 Starknet JSON-RPC 声明、部署合约并与之交互。
许多新功能即将推出,包括模糊测试、L1<>L2 消息传递和代码覆盖率。
Starknet Foundry Github 存储库有一个显示新功能和正在开发的功能的路线图,尽管尚不清楚复选标记是否表示已实现或正在积极开发的功能。
https://github.com/foundry-rs/starknet-foundry/
主要用于测试 Cairo 代码的工具。您还可以使用 JavaScript 中的脚本来部署合约。
碎片实验室
Hardhat 是以太坊流行的 JavaScript 开发环境,如果你已经熟悉它并且想在 Starknet 上使用它,那么这个插件可以派上用场。您可以将 Starknet 命令作为 Hardhat 中的任务运行,例如编译 Cairo 合约。
Hardhat 与本地开发网络集成,因此您只需担心用 JavaScript 编写测试即可。
即将推出的功能包括:
改进了与 Starknet.js 的集成,以获得更好的开发人员体验
改进了对最新开罗功能的支持
从Hardhat 网站获取 Hardhat 。
从Starknet Hardhat 插件 Github 存储库获取 Starknet 插件。
请参阅Starknet Hardhat 示例脚本 Github 存储库中有关如何使用该插件的示例。
Remix 是一个基于浏览器的以太坊集成开发环境 (IDE),您可以使用它来学习、实验和查找智能合约中的漏洞,而无需安装任何东西。Starknet Remix 插件允许您使用 Remix 来测试 Starknet 智能合约,这样您就可以专注于学习 Cairo 和 Starknet,而无需为设置工具链而分心。
虚空心智
Remix 和 Starknet Remix 插件包含以下功能:
集成编译。
您可以在任何开发网络上部署合约,包括插件自己的集成开发网络。
您还可以部署在测试网或主网上。
您可以调用已部署的合约函数,方便测试和交互。
与 Scarb 无缝集成。
与 Voyager 等区块浏览器集成,因此您可以轻松实时检查交易的执行情况。
Starknet Remix 插件与Starknet By Examples集成,这是一个丰富的实用学习内容存储库。
有关 Starknet Remix 插件的更多信息,请参阅解锁 Starknet 入门:Starknet Remix 插件概述。
支持直接在浏览器中测试 Starknet 合约。
计划在未来版本中提供集成代码编辑器。
要开始使用 Remix,请参阅Remix 项目网站。
要开始使用 Starknet Remix 插件,请参阅Starknet Remix 插件的 Github 存储库。
Microsoft Visual Studio Code IDE 的扩展,可在使用 Cairo 语言服务器编写 Cairo 智能合约时提供帮助。
斯塔克韦尔
特点包括:
Cairo 文件的编译器支持
编译错误的实时诊断突出显示
快速修复和建议
转到导入的定义
导入的代码完成
随着更多功能添加到 Cairo 语言服务器,Cairo 语法突出显示将会得到改进
https://marketplace.visualstudio.com/items?itemName=starkware.cairo1

