3 个版本 (重大更改)
0.3.0 | 2023年10月20日 |
---|---|
0.2.0 | 2023年9月14日 |
0.1.0 | 2023年5月31日 |
#27 in #rollup
300KB
6K SLoC
sov-default-stf
AppTemplate
此crate包含一个名为 StateTransitionFunction
的 AppTemplate
实现,专门设计用于与模块系统一起工作。 AppTemplate
依赖于一组特质,这些特质结合在一起定义了转换rollup状态的逻辑。
DispatchCall
特质负责解码序列化消息并将它们转发到适当的模块。Genesis
特质处理rollup的初始化过程。它在rollup部署时设置初始状态。TxHooks
和ApplyBlobHooks
特质允许在事务处理管道中注入自定义逻辑。它们提供了一种在事务处理阶段执行附加操作或执行特定操作的方法。
运行时
DispatchCall
和 Genesis
特质可以自动推导(参见上面的片段中的 RT
)任何一组模块
#[derive(Genesis, DispatchCall, MessageCodec)]
#[serialization(borsh::BorshDeserialize, borsh::BorshSerialize)]
pub struct Runtime<C: Context> {
accounts: accounts::Accounts<C>,
bank: sov_bank::Bank<C>,
sequencer: sequencer::Sequencer<C>,
...
some other modules
}
Runtime
结构充当所有rollup模块组装的入口点。 #[derive]
宏从 sov-module-api
crate生成了必要的 Genesis 和 DispatchCall
特质实现。
要获取 StateTransitionFunction
的实例,可以将 Runtime
传递给 AppTemplate::new(..)
方法。这确保了 StateTransitionFunction
的实现简单,不需要手动集成或复杂的设置步骤。
依赖项
~7–24MB
~370K SLoC