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

# Работа с временными метками в Virtual Environments

> Узнайте, как получить правильную временную метку и продвинуть время в Virtual Environments

Для определённых типов тестов удобно перепрыгивать во времени. Это возможно за счёт двух методов Admin RPC, доступных в Virtual Environments: **[`evm_setNextBlockTimestamp`](/virtual-environments/admin-rpc/#evm_setnextblocktimestamp)** и **[`evm_setNextBlockTimestamp`](/virtual-environments/admin-rpc/#evm_setnextblocktimestamp)**.

## Получение правильного времени

Во время выполнения транзакции или `eth_call` при обращении к `block.timestamp` внутри контракта значение будет зависеть от того, целевой ли блок `latest` или `pending`:

* Для **блока `pending`**: `block.timestamp == time.now() + adjustment_offset`. Это текущее время, скорректированное методами настройки времени.
* Для **блока `latest`**: `block.timestamp == latest_block.timestamp`. Это временная метка самого последнего майнинга блока.

`adjustment_offset` формируется методами настройки времени:

1. [`evm_setNextBlockTimestamp`](/virtual-environments/admin-rpc/#evm_setnextblocktimestamp):
   Перепрыгивает время до временной метки следующего блока: `adjustment_offset = timestamp - time.now()`.

2. [`evm_increaseTime`](/virtual-environments/admin-rpc/#evm_increasetime):
   Продвигает время на относительную величину.
   `adjustment_offset += increase_value`

## Примеры

### Увеличение времени на смещение

```bash showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
VIRTUAL_TESTNET_RPC=https://YOUR-RPC-URL-HERE
curl -s -X POST \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "evm_increaseTime",
    "params": ["0xe10"],
    "id": 2
  }' "$VIRTUAL_TESTNET_RPC"
```

### Установка временной метки для pending-блока

```bash showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
VIRTUAL_TESTNET_RPC=https://YOUR-RPC-URL-HERE

# Get the current date in Unix timestamp format
current_date=$(date +%s)

# Use evm_setTime to set the block time to today (current timestamp)
curl -s -X POST \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "evm_setNextBlockTimestamp",
    "params": ["'"$current_date"'"],
    "id": 3
  }' "$VIRTUAL_TESTNET_RPC"
```
