本文分析了 Solana 和 Anchor 框架为何缺乏 Solidity 中的 Fallback、view、pure、payable 函数及修饰符,指出其设计上账户预声明、数据公开性及 Rust 语言特性导致的差异,并提及缺乏内置单位的问题。
在 Solidity 中,fallback 和 receive 函数处理未定义操作或直接 ETH 转账。Solana 则不同,其交易需预先声明所有涉及的账户。若引入类似 Fallback 函数,访问未指定的账户会导致交易失败,用户需提前预测账户调用,增加复杂性。因此,Solana 直接禁止此类函数,简化设计。
Solidity 的 view 和 pure 函数通过编译器约束状态访问:
Anchor 未实现类似编译器检查。Solana 程序的状态访问由 Context 结构定义,未列明的账户无法直接读写,间接提供一定约束。但这并非强制:
其他框架如 [Seahorse](https://seahorse-l...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!