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

是否支持通过消息数据发送模块?如何实现字符串转模块?

实现方案

使用Pact内置的read-module函数即可完成字符串到模块类型的读取转换,该函数与read-decimal、read-integer、read-keyset、read-string同属消息载荷类型读取内置函数,专门用于处理模块类型的参数解析。

使用步骤

  • 正式消息通道传参时严格遵循JSON规范,传入目标模块的名称字符串即可,例如载荷中配置"callModule": "coin"
  • 合约逻辑中调用(read-module msg 'callModule),即可获得与REPL环境直接传入coin完全等价的模块对象,可直接用于模块方法调用、成员访问等操作,无需额外类型转换。

边界说明

  • 传入的模块名必须对应链上已部署、且当前执行上下文有权限访问的模块,否则read-module会直接抛出执行异常
  • 禁止通过read-string读取模块名字符串后直接当模块使用,Pact为强类型语言,字符串类型无法被自动识别为模块类型,必须通过专属读取函数完成类型解析。

REPL环境支持直接传入模块对象属于调试场景专属的语法糖适配,该能力不遵循JSON格式约束,仅用于本地快速调试。链上正式执行环境要求所有消息载荷必须符合合法JSON规范,所有非基础JSON类型的参数都需要通过对应read-*系列函数完成反序列化。

内容的提问来源于stack exchange,提问作者Michael Doron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:09:37