我们如何将字符串作为应用程序参数传递?(Algorand,JS SDK)



我正在使用Algorand JS SDK,不知道如何将字符串作为应用程序参数传递。我尝试了多种方法,但没有得到任何积极的结果。

您可以在其中看到示例:https://developer.algorand.org/docs/get-started/dapps/pyteal/#deploy-并与智能合约通信

请特别参阅,此代码将字符串"setup"作为应用程序参数进行传递。

setupTxn = transaction.ApplicationCallTxn(
sender=funder.getAddress(),
index=appID,
on_complete=transaction.OnComplete.NoOpOC,
app_args=[b"setup"],
foreign_assets=[nftID],
sp=suggestedParams,
)

一个重要的点是,字符串必须被编码为字节,因此b位于b"setup"的开头。如果字符串是Pythonstring对象,则需要使用.encode()方法。看见https://docs.python.org/3/howto/unicode.html#converting-到字节以获取详细信息。

还要注意的是,现在强烈建议创建与ABI兼容的智能合约。在这种情况下,调用智能合约的最佳方式是使用Atomic Transaction Composer:https://developer.algorand.org/docs/get-details/atc/而不是直接创建CCD_ 6对象。

然而,关于字符串到字节的转换的相同注释仍然适用。

最新更新