预测式部署
预测式合约是指我们甚至可以在实际将其部署到链上之前进行交互的合约。 例如,我们可以向一个尚未存在的合约发送资金或分配权限。 为什么?因为 Starknet 中的部署是确定性的,允许我们预测合约将被部署到的地址。 我们可以利用此属性,通过提前发送资金来使合约支付其自身的部署费用。我们称之为预测式部署。
此过程可以用以下步骤描述:
-
通过给定的
class_hash
、salt
和构造函数calldata
确定性地预先计算contract_address
。 请注意,必须先声明class_hash
才能成功部署。 -
将资金发送到
contract_address
。通常,您会首先估算交易费用。现有的 工具通常会为您执行此操作。 -
向网络发送
DeployAccount
类型的交易。 -
然后,协议将使用要部署的合约的
__validate_deploy__
入口点验证交易。 -
如果验证成功,协议将收取费用,然后将合约注册为已部署。
尽管此方法非常流行用于部署账户,但这适用于任何类型的合约。 |