> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockx.chaintable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 函数代码

> 读取 EVM 状态、查询合约并返回派生记录。

函数代码是 BlockX Call 调用的 Python 计算逻辑。你提供位置参数，读取计算所需的 EVM 或表数据，再返回结果交给 Writer Plugin 处理。

## 输入与输出

| 部分 | 约定 |
| - | - |
| Inline 入口 | 定义 `def _(...)` 可显式指定入口 |
| 参数 | 从显式输入行或触发行模板按位置传入 |
| 读取上下文 | 计算需要历史状态时，传入链与区块标识 |
| 返回值 | 可 JSON 序列化的值；写表流程使用记录形式 |

EVM 派生记录应包含实体标识及目标 schema 所需的上下文。保持整数金额的精度，避免转为浮点数。

## 可用计算能力

| 能力 | 示例 |
| - | - |
| 账户状态 | 通过 `EVM` 读取余额、nonce、代码或存储 |
| 合约查询 | 提供方法签名与参数来调用合约 |
| BlockDB 读取 | 使用表的读取上下文查询事件或状态记录 |
| 子函数 | 用 `function.call` 调用已注册 BlockX 函数 |

完整函数见[编写 EVM 数据函数](/zh/guides/write-functions)。运行时将后端访问路由到 Worker IO。

## 函数身份与版本

* Inline 源码随输入配置提交。
* 注册函数通过标识符解析。
* 一个 task 为注册函数调用和子调用固定函数代码快照。
* 代码快照固定函数定义，数据读取上下文需另行设置。

代码加载与快照生命周期见 [Function Code View](/zh/components/function-code)。

## 执行边界

* 生成输出记录，由 Writer Plugin 执行任务写入。
* 使用运行时支持的模块和能力。
* 保持 Call 不依赖执行顺序。
* 执行限制和审计检查可能在函数返回之前使其失败。

## 小结

* 函数将 EVM 数据读取连接到派生输出。
* 显式传入历史读取上下文。
* 函数代码版本与链数据上下文相互独立。

继续阅读：

* [编写 EVM 数据函数](/zh/guides/write-functions)
* [EVM 计算模型](/zh/concepts/evm-computation)
* [Python Executor](/zh/components/python-executor)
* [查询结果与处理失败](/zh/guides/results-and-failures)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.