Skip to content

Commit

Permalink
Prettier issues fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Varavchik18 committed Jan 14, 2025
1 parent b285aa2 commit bad3192
Show file tree
Hide file tree
Showing 51 changed files with 4,875 additions and 2,374 deletions.
626 changes: 415 additions & 211 deletions docs/locales/uk/advanced/actions.md

Large diffs are not rendered by default.

337 changes: 241 additions & 96 deletions docs/locales/uk/advanced/confirmation.md

Large diffs are not rendered by default.

91 changes: 68 additions & 23 deletions docs/locales/uk/advanced/lookup-tables.md

Large diffs are not rendered by default.

115 changes: 86 additions & 29 deletions docs/locales/uk/advanced/retry.md

Large diffs are not rendered by default.

166 changes: 124 additions & 42 deletions docs/locales/uk/advanced/state-compression.md

Large diffs are not rendered by default.

54 changes: 35 additions & 19 deletions docs/locales/uk/advanced/versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@
sidebarSortOrder: 3
title: "Версійні Транзакції"
description:
"Дослідіть основні концепції Solana: транзакції, версійні транзакції, розширення функціональності в Solana Runtime, таблиці пошуку адрес та інше."
"Дослідіть основні концепції Solana: транзакції, версійні транзакції,
розширення функціональності в Solana Runtime, таблиці пошуку адрес та інше."
altRoutes:
- /docs/uk/core/transactions/versions
---

Версійні Транзакції - це новий формат транзакцій, який дозволяє додаткову функціональність у Solana Runtime, включаючи
Версійні Транзакції - це новий формат транзакцій, який дозволяє додаткову
функціональність у Solana Runtime, включаючи
[Таблиці пошуку адрес](/docs/uk/advanced/lookup-tables.md).

Хоча зміни в ончейн-програмах **НЕ** потрібні для підтримки нової функціональності версійних транзакцій (або для зворотної сумісності), розробники **ПОВИННІ** оновити клієнтський код, щоб уникнути
Хоча зміни в ончейн-програмах **НЕ** потрібні для підтримки нової
функціональності версійних транзакцій (або для зворотної сумісності), розробники
**ПОВИННІ** оновити клієнтський код, щоб уникнути
[помилок через різні версії транзакцій](#max-supported-transaction-version).

## Поточні версії транзакцій
Expand All @@ -23,26 +27,32 @@ Solana Runtime підтримує дві версії транзакцій:

## Максимально підтримувана версія транзакцій

Усі RPC-запити, які повертають транзакцію, **_повинні_** вказувати найвищу версію транзакцій, яку вони підтримують у своїй програмі, використовуючи параметр
`maxSupportedTransactionVersion`, включаючи
Усі RPC-запити, які повертають транзакцію, **_повинні_** вказувати найвищу
версію транзакцій, яку вони підтримують у своїй програмі, використовуючи
параметр `maxSupportedTransactionVersion`, включаючи
[`getBlock`](/docs/uk/rpc/http/getBlock.mdx) та
[`getTransaction`](/docs/uk/rpc/http/getTransaction.mdx).

RPC-запит завершиться невдачею, якщо буде повернута версійна транзакція, яка має версію вище встановленої `maxSupportedTransactionVersion`. (наприклад, якщо повертається транзакція версії `0`, а встановлено `legacy`)
RPC-запит завершиться невдачею, якщо буде повернута версійна транзакція, яка має
версію вище встановленої `maxSupportedTransactionVersion`. (наприклад, якщо
повертається транзакція версії `0`, а встановлено `legacy`)

> УВАГА: Якщо значення `maxSupportedTransactionVersion` не встановлено, тоді лише транзакції `legacy` будуть дозволені у відповіді RPC. Таким чином, ваші RPC-запити **ПРИЗВЕДУТЬ ДО ПОМИЛКИ**, якщо буде повернута будь-яка транзакція версії `0`.
> УВАГА: Якщо значення `maxSupportedTransactionVersion` не встановлено, тоді
> лише транзакції `legacy` будуть дозволені у відповіді RPC. Таким чином, ваші
> RPC-запити **ПРИЗВЕДУТЬ ДО ПОМИЛКИ**, якщо буде повернута будь-яка транзакція
> версії `0`.
## Як встановити максимально підтримувану версію

Ви можете встановити `maxSupportedTransactionVersion`, використовуючи бібліотеку
[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/)
або шляхом прямого надсилання JSON-запитів до RPC-ендпоінту.
[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/) або
шляхом прямого надсилання JSON-запитів до RPC-ендпоінту.

### Використання web3.js

Використовуючи бібліотеку
[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/),
ви можете отримати останній блок або конкретну транзакцію:
[`@solana/web3.js`](https://solana-labs.github.io/solana-web3.js/v1.x/), ви
можете отримати останній блок або конкретну транзакцію:

```js
// підключення до кластера `devnet` та отримання поточного `slot`
Expand Down Expand Up @@ -80,7 +90,8 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -

## Як створити версійну транзакцію

Версійні транзакції можна створити подібно до старого методу створення транзакцій. Є відмінності у використанні певних бібліотек, які слід враховувати.
Версійні транзакції можна створити подібно до старого методу створення
транзакцій. Є відмінності у використанні певних бібліотек, які слід враховувати.

Нижче наведено приклад створення версійної транзакції з використанням бібліотеки
`@solana/web3.js` для передачі SOL між двома рахунками.
Expand All @@ -90,9 +101,11 @@ curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -
- `payer` - це дійсний гаманець `Keypair`, наповнений SOL
- `toAccount` - дійсний `Keypair`

Спочатку імпортуйте бібліотеку web3.js та створіть `connection` до бажаного кластера.
Спочатку імпортуйте бібліотеку web3.js та створіть `connection` до бажаного
кластера.

Далі визначте останній `blockhash` і `minRent`, які будуть потрібні для вашої транзакції та рахунку:
Далі визначте останній `blockhash` і `minRent`, які будуть потрібні для вашої
транзакції та рахунку:

```js
const web3 = require("@solana/web3.js");
Expand All @@ -105,7 +118,8 @@ let blockhash = await connection
.then(res => res.blockhash);
```

Створіть `array` усіх `instructions`, які ви хочете відправити у вашій транзакції. У прикладі нижче ми створюємо просту інструкцію передачі SOL:
Створіть `array` усіх `instructions`, які ви хочете відправити у вашій
транзакції. У прикладі нижче ми створюємо просту інструкцію передачі SOL:

```js
// створення масиву з вашими інструкціями
Expand Down Expand Up @@ -138,16 +152,19 @@ const transaction = new web3.VersionedTransaction(messageV0);
transaction.sign([payer]);
```

Після того, як ваша `VersionedTransaction` підписана всіма необхідними рахунками, ви можете відправити її до кластера та отримати відповідь:
Після того, як ваша `VersionedTransaction` підписана всіма необхідними
рахунками, ви можете відправити її до кластера та отримати відповідь:

```js
// відправка нашої транзакції v0 до кластера
const txId = await connection.sendTransaction(transaction);
console.log(`https://explorer.solana.com/tx/${txId}?cluster=devnet`);
```

> УВАГА: На відміну від `legacy` транзакцій, відправка `VersionedTransaction` через
> `sendTransaction` **НЕ** підтримує підпис транзакцій через передачу масиву `Signers` як другого параметра. Ви повинні підписати транзакцію перед викликом `connection.sendTransaction()`.
> УВАГА: На відміну від `legacy` транзакцій, відправка `VersionedTransaction`
> через `sendTransaction` **НЕ** підтримує підпис транзакцій через передачу
> масиву `Signers` як другого параметра. Ви повинні підписати транзакцію перед
> викликом `connection.sendTransaction()`.
## Додаткові ресурси

Expand All @@ -159,4 +176,3 @@ console.log(`https://explorer.solana.com/tx/${txId}?cluster=devnet`);
- Читання
[ухваленої пропозиції](https://docs.anza.xyz/proposals/versioned-transactions)
для версійних транзакцій та таблиць пошуку адрес

Loading

0 comments on commit bad3192

Please sign in to comment.