# 银行与事件（env）

> NeuroWASM 银行与事件宿主函数——从合约余额转账、emit_event 和 set_return。

Source: https://docs.nro.world/zh/neurowasm/bank

## `transfer` <Badge type="tip" text="已上线" />

```text
transfer(to_ptr, to_len, amount: i64) → i32
```

从**本**合约的余额中支付原生 uNRO。宿主校验快照，在内存中扣款以保证执行顺序，并记录 `(to, amount)`——仅当整个调用成功（且不是 dry-run）时才会提交。

| 返回值 | 含义 |
|--------|------|
| `0` | 成功 |
| `-1` | amount≤0、无自身地址、余额不足、UTF-8 无效 |

**类比：** CosmWasm `BankMsg::Send`，NEAR 转账 / 附带存款。

## `emit_event` <Badge type="tip" text="已上线" />

```text
emit_event(topic_ptr, topic_len, data_ptr, data_len)
```

追加一个 UTF-8 事件 `{ topic, data }`。在成功提交时存储并建立索引。

## `set_return` <Badge type="tip" text="已上线" />

```text
set_return(ptr, len)
```

从合约内存中设置调用的 `return_data`（覆盖之前的值）。

## `log` <Badge type="info" text="计划中" />

供人阅读的日志行；可能映射为 `emit_event("log", …)`。
