确保以下命令在您的系统上正常运行。
starkli --version
scarb --version
Starkli 通过两种主要方法实现与智能合约的交互:
call用于只读功能。invoke用于修改状态的写入函数。
该call命令允许在不发送交易的情况下查询智能合约功能。
作为示例,您可以使用get_owner不需要任何参数并返回当前所有者的地址的函数:
starkli call \
0x014825acb37c36563d3b96c450afe363d2fdfa3cfbd618b323f95b68b55ebf7e \
get_owner
--network=goerli-1
这将返回我们在部署期间传递给构造函数的地址:
[ "0x02cdab749380950e7a7c0deff5ea8edd716feb3a2952add4e5659655077b8510"]
要修改智能合约的状态,请使用该invoke命令。与命令不同call,invoke向网络提交交易。
在此示例中,我们将调用该transfer_ownership函数将所有权从部署者地址转移到不同的智能钱包地址:
starkli invoke \
0x014825acb37c36563d3b96c450afe363d2fdfa3cfbd618b323f95b68b55ebf7e \
transfer_ownership \
0x011088d3cbe4289bc6750ee3a9cf35e52f4fa4e0ac9f42fb0b62e983139e135a \
--network=goerli-1
当交易在L2上被接受后,您可以通过get_owner再次调用该函数来确认状态转换:
starkli call \
0x014825acb37c36563d3b96c450afe363d2fdfa3cfbd618b323f95b68b55ebf7e \
get_owner \
--network=goerli-1
该get_owner函数现在返回新的所有者地址,确认所有权转移成功。
