帖子
分享您的知识。
基于 sui_getNormalizedMoveFunction 输出创建 tx_bytes 输出:移动模式示例
我正在寻找有关如何在 sui_getNormalizedMoveFunction
Golang、PHP 和 JavaScript 中接收数据后创建 tx_bytes 的示例或指南. sui_getNormalizedMoveFunction
本质上,我想使用来自的输出填充Move函数参数sui_executeTransactionBlock
,准备/签署交易,然后使用发送. 这是执行Move函数的正确流程吗?如果是,如何生成必要的参数?0xf5b55a91957b68f23107522abf96634a0d58ccad6ff9ecd6daf3eba8808b3dd9
函数需要诸如 mintApp、Clock、Coin、Kiosk、sui_getNormalizedMoveFunction
,但我对这种方法不确定.
- Move
答案
2看来你想执行一笔Move Sui交易,它sui_getNormalizedMoveFunction
提供了一些关于Move包的数据. 要进行交易,你可以使用 Sui JSON RPC 文档 中记录的 unsafe_***JSON RPC 调用. 此调用将返回交易字节 (tx_bytes),然后您可以使用该字节签署和执行交易.
以下是一些可帮助您继续前进的建议:
- 使用 TypeScript 软件开发工具包:如果可能的话,从项目提供的 TypeScript 软件开发工具包开始. 使用 SDK 可以通过提供类型和函数参数来为您提供帮助,从而无需调用即可更轻松地使用 Move 函数
unsafe_moveCall
. 你可以在 SUI TypeScript 文档 中找到更多信息和资源. - 对象 ID 和地址:对于某些参数,您需要知道对象 ID. 例如,如果您正在与自助服务终端打交道,则应知道该自助服务终端的 ObjectID. 同样,如果你是 KiosKownerCap,你需要它的 objectID. 时钟对象的固定对象 ID 为 0x6.
3.的参数类型unsafe_payMove
:调用时unsafe_payMove
,在参数类型中提供所需的参数,该参数采用 JSON 值列表. 这些值应该是表示 ID 或地址的字符串. 例如,“0x2:: sui:: SUI” 代表一个地址. 通过执行这些步骤并了解参数和对象 ID,您可以创建必要的 tx_bytes 并执行 Move Sui 事务.
在Sui区块链上执行Move函数时,你所描述的过程通常是正确的. 以下是关于如何解决这个问题的分步指南:
- 调用
sui_getNormalizedMoveFunction
:此函数返回 Move 函数的标准化形式,其中包括该函数的名称、参数和返回类型. 您可以使用此信息来了解该函数需要哪些参数. - 生成必要的参数:函数调用所需的参数将取决于函数本身. 就你而言,你正在尝试调用
0xf5b55a91957b68f23107522abf96634a0d58ccad6ff9ecd6daf3eba8808b3dd9
Sui 包中的 mint 函数. 你已经提到过,你可以从其他交易示例中检索 MintApp 和 Clock. 对于其他参数(Coin、Kiosk、KioskOwnerCap和TransferPolicy <Suifren >),你可能需要从Sui区块链中检索这些参数或自己生成.
3.准备并签署 Sui 交易:获得所有必要参数后,就可以准备交易了. 这将涉及创建一个包含函数调用及其参数的交易区块. 然后,您需要使用私钥对该交易区块进行签名. - 使用发送交易
sui_executeTransactionBlock
:最后,您可以使用该sui_executeTransactionBlock
函数将签名的交易区块发送到Sui区块链.
你知道答案吗?
请登录并分享。
Move is an executable bytecode language used to implement custom transactions and smart contracts.