English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE คนไทย Français русский

回答

收藏

Tact 语言基础 | 退出码(Exit codes)

开源社区 开源社区 8295 人阅读 | 0 人回复 | 2025-04-01

TON Blockchain上的每笔交易都包含多个阶段。 退出码 是一个  32位符号整数 这表明交易的 计算(compute) 或 动作(action) 阶段是成功的。 如果没有,则保留例外的代码。 每个退出码代表自己的异常或交易结果。$ a/ W- n0 Z, M/ ]+ W
9 u7 o, x& s+ W5 g* R1 M7 a9 `
退出码 [size=1.21em]00[size=1.21em]11 表示正常(成功)执行 计算阶段。 退出 (或 result) 代码 [size=1.21em]00 表示了[动作阶段] (#action)的正常执行(成功)。 任何其他退出代码都表示发生了某种异常,交易以某种方式没有成功,即交易被退回或入站(inbound)报文被弹回。
: Y; g0 r3 m! \" ]0 B1 c5 x' Z: ~
- ~2 M9 X  K' B. f

4 ^: O# q* n; M8 I: u
TON 区块链保留从 00 到 127127的退出码值,而 Tact 使用从 128128 到 255255的退出码。 注意, Tact使用的退出码表示使用Tact生成FunC代码时可能发生合约错误。 因此被扔进交易的计算阶段,而不是在编译过程中。
从 256256 到 6553565535 的范围内,开发人员可自由定义退出码。
退出码列表
下表列出了每个退出码的来源(可能出现的位置)和简短说明。 该表没有列出 require() 的退出码,因为它是根据具体的 error 消息 String 生成的。
[td]
退出码
来源
说明
[color=var(--sl-color-text-accent)][size=1.21em]00
[color=var(--sl-color-text-accent)]计算和[color=var(--sl-color-text-accent)]动作阶段
标准成功执行退出码
[color=var(--sl-color-text-accent)][size=1.21em]11
[color=var(--sl-color-text-accent)]计算阶段
替代成功的执行退出码。 保留,但不会出现。
[color=var(--sl-color-text-accent)][size=1.21em]22
[color=var(--sl-color-text-accent)]计算阶段
堆栈下溢。
[color=var(--sl-color-text-accent)][size=1.21em]33
[color=var(--sl-color-text-accent)]计算阶段
堆栈溢出。
[color=var(--sl-color-text-accent)][size=1.21em]44
[color=var(--sl-color-text-accent)]计算阶段
整数溢出。
[color=var(--sl-color-text-accent)][size=1.21em]55
[color=var(--sl-color-text-accent)]计算阶段
范围检查错误 — 某些整数超出预期范围。
[color=var(--sl-color-text-accent)][size=1.21em]66
[color=var(--sl-color-text-accent)]计算阶段
无效的 [color=var(--sl-color-text-accent)]TVM opcode
[color=var(--sl-color-text-accent)][size=1.21em]77
[color=var(--sl-color-text-accent)]计算阶段
类型检查错误。
[color=var(--sl-color-text-accent)][size=1.21em]88
[color=var(--sl-color-text-accent)]计算阶段
Cell 溢出。
[color=var(--sl-color-text-accent)][size=1.21em]99
[color=var(--sl-color-text-accent)]计算阶段
cell下溢。
[color=var(--sl-color-text-accent)][size=1.21em]1010
[color=var(--sl-color-text-accent)]计算阶段
字典错误。
[color=var(--sl-color-text-accent)][size=1.21em]1111
[color=var(--sl-color-text-accent)]计算阶段
[color=var(--sl-color-text-accent)]TVM 文档被描述为“未知错误,可能会被用户程序抛出”。
[color=var(--sl-color-text-accent)][size=1.21em]1212
[color=var(--sl-color-text-accent)]计算阶段
致命错误。 由于被认为是不可能的情况而由 [color=var(--sl-color-text-accent)]TVM 抛出。
[color=var(--sl-color-text-accent)][size=1.21em]1313
[color=var(--sl-color-text-accent)]计算阶段
gas 耗尽错误。
[color=var(--sl-color-text-accent)][size=1.21em]−14−14
[color=var(--sl-color-text-accent)]计算阶段
[size=1.21em]1313 相同。 负数,因此[color=var(--sl-color-text-accent)]无法伪造
[color=var(--sl-color-text-accent)][size=1.21em]1414
[color=var(--sl-color-text-accent)]计算阶段
虚拟机虚拟化错误。 保留,但从未抛出。
[color=var(--sl-color-text-accent)][size=1.21em]3232
[color=var(--sl-color-text-accent)]行动阶段
操作列表(Action list)无效。
[color=var(--sl-color-text-accent)][size=1.21em]3333
[color=var(--sl-color-text-accent)]行动阶段
操作列表太长。
[color=var(--sl-color-text-accent)][size=1.21em]3434
[color=var(--sl-color-text-accent)]行动阶段
行动无效或不支持。如果无法执行当前操作,则在行动阶段设置
[color=var(--sl-color-text-accent)][size=1.21em]3535
[color=var(--sl-color-text-accent)]行动阶段
发送消息中无效的源地址。
[color=var(--sl-color-text-accent)][size=1.21em]3636
[color=var(--sl-color-text-accent)]行动阶段
发送消息中无效的目标地址。
[color=var(--sl-color-text-accent)][size=1.21em]3737
[color=var(--sl-color-text-accent)]动作阶段
没有足够的Toncoin。
[color=var(--sl-color-text-accent)][size=1.21em]3838
[color=var(--sl-color-text-accent)]动作阶段
额外代币不足。
[color=var(--sl-color-text-accent)][size=1.21em]3939
[color=var(--sl-color-text-accent)]行动阶段
发送消息在重写后不适合在cell中。
[color=var(--sl-color-text-accent)][size=1.21em]4040
[color=var(--sl-color-text-accent)]行动阶段
无法处理一条消息 — 资金不足,信息过大,或者它的 Merkle 深度过大。
[color=var(--sl-color-text-accent)][size=1.21em]4141
[color=var(--sl-color-text-accent)]行动阶段
在库更改操作期间,库引用是无效的。
[color=var(--sl-color-text-accent)][size=1.21em]4242
[color=var(--sl-color-text-accent)]行动阶段
库更改动作错误。
[color=var(--sl-color-text-accent)][size=1.21em]4343
[color=var(--sl-color-text-accent)]行动阶段
超出库中cell的最大数目或默克尔树的最大深度。
[color=var(--sl-color-text-accent)][size=1.21em]5050
[color=var(--sl-color-text-accent)]行动阶段
账户状态大小超过限制。
[color=var(--sl-color-text-accent)][size=1.21em]128128
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
空引用异常。
[color=var(--sl-color-text-accent)][size=1.21em]129129
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
无效的序列化前缀。
[color=var(--sl-color-text-accent)][size=1.21em]130130
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
无效的收到消息 — 没有接收消息的验证码。
[color=var(--sl-color-text-accent)][size=1.21em]131131
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
限制错误。 保留,但从未抛出。
[color=var(--sl-color-text-accent)][size=1.21em]132132
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
拒绝访问 - 所有者以外的其他人向合约发送了信息
[color=var(--sl-color-text-accent)][size=1.21em]133133
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
合约已中止。 保留,但从未抛出。
[color=var(--sl-color-text-accent)][size=1.21em]134134
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
无效参数。
[color=var(--sl-color-text-accent)][size=1.21em]135135
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
未找到合约代码 - 字典调用的假标记
[color=var(--sl-color-text-accent)][size=1.21em]136136
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
无效地址。
[color=var(--sl-color-text-accent)][size=1.21em]137137
Tact 编译器 ([color=var(--sl-color-text-accent)]计算阶段)
此合约未启用主链支持
: Q. a/ |$ }5 K1 A7 z1 A7 F
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则