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

TealScript中ARC4方法多类型入站交易参数支持及类型判断

关于TealScript ARC4方法的两个问题解答

原方法定义

addLiquidity(
  aXfer: AssetTransferTxn | PayTxn,
  bXfer: AssetTransferTxn | PayTxn,
  poolAsset: AssetID,
  aAsset: AssetID,
  bAsset: AssetID
): void {

问题1:能否将多种类型的入站交易作为ARC4方法的参数?

可以。TealScript支持通过联合类型(如AssetTransferTxn | PayTxn)声明ARC4方法的参数,以此接收多种交易类型作为入站参数。这种写法是合法的,编译器会自动处理对应的类型校验逻辑,确保传入的交易符合声明的类型范围。

问题2:判断交易为AssetTransferTxn或PayTxn的最优方式是什么?

最优方式是直接检查交易的type字段(类型码):

  • PayTxn的类型码固定为pay
  • AssetTransferTxn的类型码固定为axfer

在TealScript中可以直接通过交易对象的type属性进行判断,示例代码如下:

if (aXfer.type === 'pay') {
  // 处理Pay类型交易的逻辑
} else if (aXfer.type === 'axfer') {
  // 处理资产转账类型交易的逻辑
}

此外,也可以结合TealScript的类型守卫特性,配合类型断言使用,让后续代码能安全访问对应交易类型的专属属性,避免类型错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:13:17