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

Unit Test中.ts文件Tx.contractCall合约名称参数类型咨询

关于Unit Test中Tx.contractCall的类型与代码转换问题

合约名称的参数类型

在TypeScript单元测试代码中,Tx.contractCall的第一个参数(合约名称)为字符串类型,直接传入合约的标识符字符串即可,比如你代码里的"dex"写法是正确的。

从Clarity语句到TypeScript代码的转换

针对你提供的Clarity调用语句:

(contract-call? .dex provide-liquidity .avocado u100 u100)

转换后的正确TypeScript单元测试代码如下:

Tx.contractCall(
  "dex",
  "provide-liquidity",
  [
    types.principal("ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.avocado"), // 对应Clarity中的.avocado
    types.uint(100), // 对应Clarity中的u100
    types.uint(100)  // 对应Clarity中的u100
  ],
  deployer // 调用发起者的principal,需确保该变量存储的是合法的地址字符串
)

关键细节说明

  • 你原代码中types.principal(deployer).avocado的写法错误,types.principal()方法直接接收完整的principal字符串作为参数,无需额外拼接.avocado。如果deployer变量本身就是.avocado对应的完整principal(比如"ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.avocado"),直接写types.principal(deployer)即可。
  • Clarity中的无符号整数u100,在TypeScript中通过types.uint(100)构造,这是类型转换的标准方式。

内容的提问来源于stack exchange,提问作者Bart Brickle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:47:12