# Контекст (env)

> Host-функції контексту NeuroWASM — ідентичність того, хто викликає, висота блоку, баланси й історичний стейк для голосування, стійкого до миттєвого стейкінгу, — і заплановані функції контексту.

Source: https://docs.nro.world/uk/neurowasm/context

Авторитетна ідентичність і контекст мережі. **Ніколи** не беріть викликача, висоту чи стейк з JSON користувача.

## `get_caller` <Badge type="tip" text="працює" />

```text
get_caller(out_ptr, out_max) → i32
```

Безпосередній викликач (`msg.sender` в EVM): підписант транзакції на верхньому рівні; батьківський контракт для вкладеного `call_contract`. Порожній поза контекстом справжньої транзакції.

**Аналоги:** `info.sender` у CosmWasm, `predecessor_account_id` у NEAR.

## `get_self_addr` <Badge type="info" text="заплановано" />

Адреса `.app` цього контракту (`current_account`).

## `get_signer` <Badge type="info" text="заплановано" />

Підписант кореневої транзакції (відрізняється від викликача у вкладених викликах).

## `get_block_height` <Badge type="tip" text="працює" />

```text
get_block_height() → i64
```

Висота від хоста для цієї транзакції (`0` поза контекстом транзакції). Для часових блокувань і періодів голосування.

## `get_block_time` <Badge type="info" text="заплановано" />

Позначка часу Unix (мс/нс — іменована константа). Детермінована для кожного блоку.

## `get_shard_id` <Badge type="info" text="заплановано" />

Id шарда для цього виконання.

## `get_attached_deposit` <Badge type="info" text="заплановано" />

uNRO, прикріплені попереднім викликачем.

## `get_balance` <Badge type="tip" text="працює" />

```text
get_balance(addr_ptr, addr_len) → i64
```

Нативний баланс (uNRO) зі знімка хоста (враховує перекази в межах виклику). `-1` при помилці.

## `gas_remaining` <Badge type="info" text="заплановано" />

Залишок fuel для цього виклику.

## `get_stake` <Badge type="tip" text="працює" />

```text
get_stake(addr_ptr, addr_len) → i64
```

Поточний власний стейк (uNRO). Хост може заздалегідь завантажити `stake:{addr}`.

## `get_stake_at` <Badge type="tip" text="працює" />

```text
get_stake_at(addr_ptr, addr_len, height: i64) → i64
```

Історичний власний стейк на висоті `height` або раніше (голосування, стійке до миттєвого стейкінгу). `0`, якщо історії чи диспетчера немає.
