You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向PTE发送已签名manifest实现与已发布包交互

向PTE提交签名Manifest获取Badge的具体操作步骤

前提:你已经通过resim publish完成包发布,拿到了PTE网络上的包地址,且本地resim已经导入了你在PTE上持有的、有足够测试XRD余额的个人账户。

  • 第一步:编写操作Manifest
    新建后缀为.rtm的Manifest文件,核心逻辑要覆盖锁付gas、调用合约发badge、将操作产生的资产存入你的账户三个环节,参考结构如下:

    // 从你的账户锁定部分测试XRD作为gas,建议填5-20,多余gas执行后会自动退回
    CALL_METHOD
        Address("你的PTE个人账户地址")
        "lock_fee"
        Decimal("10")
    ;
    // 调用你已发布包中发放badge的对应方法,按需补全方法参数
    CALL_FUNCTION
        Address("resim publish返回的PTE网络包地址")
        "你的合约模块名"
        "发放badge的方法名"
        // 如果方法需要入参,按参数类型顺序逐行填写即可
    ;
    // 将交易执行后工作台上的所有资产(包含目标badge)全部存入你的账户
    CALL_METHOD
        Address("你的PTE个人账户地址")
        "deposit_batch"
        Expression("ENTIRE_WORKTOP")
    ;
    

    注意:如果你的badge发放方法设置了权限校验,要确认Manifest的调用逻辑和参数完全匹配合约的权限规则,避免交易报权限错误。

  • 第二步:对Manifest做网络签名
    PTE网络不认本地模拟器的默认测试签名,必须用你PTE账户对应的私钥完成签名,执行命令:

    resim sign-manifest --manifest ./你的manifest文件路径.rtm --signer-key 你的PTE账户私钥 --network-id <PTE对应网络ID>
    

    如果不确定PTE对应的网络ID,可以先执行resim show-config查看当前resim连接PTE时的默认network-id,保持参数一致即可。命令执行完成后,会在同目录生成带.signed后缀的已签名Manifest文件。

  • 第三步:提交签名后的Manifest到PTE
    执行提交命令:

    resim submit --signed-manifest ./生成的已签名manifest文件路径.rtm.signed --network-id <和签名步骤一致的PTE网络ID>
    

    提交成功后终端会返回交易哈希,等待3-10秒网络出块确认后,执行以下命令查询你的账户资产,就能看到返回的目标badge:

    resim show 你的PTE个人账户地址 --network-id <和之前一致的PTE网络ID>
    

常见踩坑提醒:

  • 不要混用本地模拟器生成的地址和PTE网络地址,Manifest里填的包地址、账户地址必须全是PTE网络下生成的有效地址
  • 锁gas金额不要设置过低,PTE网络执行合约的gas成本略高于本地模拟器,设置10个测试XRD基本能覆盖绝大多数合约操作
  • 签名用的私钥必须对应你填在Manifest里的账户地址,且该账户在PTE上有足够的测试XRD余额支付gas,否则交易直接失败

内容的提问来源于stack exchange,提问作者Miro Liebschner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:27:22