Sway 程序本身具有类型:它可以是 合约、断言、脚本 或 库。这些中的前三个都可以部署到区块链上。 库 只是一个旨在实现代码重用的项目,永远不会直接部署到链上。
每个 Sway 文件 必须 以声明其程序类型开始。一个项目可以包含多个库,但只能有一个合约、脚本或断言。脚本和断言需要 main
函数作为入口点,而合约则会发布一个 ABI。本章将详细介绍所有这些不同类型的程序及其用途。
合约主要用于在固定的一组规则内运行的协议或系统。一个很好的例子是质押合约或去中心化交易所(也称为 DEX)。
脚本用于不会持续存在的复杂链上交互。一个例子可能是使用 DEX 和 Lender 创建一个杠杆头寸(借款、交换、重新抵押、借款),这是一个通常需要多个步骤的复杂交易。
库是用于处理常见情况的可重用代码。一个很好的例子是用于处理定点数运算或大数运算的库。