# Dasar

### StakingPoolBase

#### **`receiveTokenWalletAddress`**

Menyimpan alamat dompet token.\
Hanya root yang bisa memanggil dengan param yang tepat.

```
function receiveTokenWalletAddress(address wallet) external
```

**Parameter:**

| Nama   | Jenis   | Deskripsi           |
| ------ | ------- | ------------------- |
| wallet | address | Alamat dompet token |

#### **`startNewRewardRound`**

Memeriksa apakah ada putaran jika demikian, mengatur putaran terakhir ke sebelumnya, memperbarui pool tentangnya, menambahkan putaran baru ke daftar dan mentransfer sisa bensin ke alamat dari param.

```
function startNewRewardRound(address send_gas_to) external onlyRewarder
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                                     |
| --------- | ------- | --------------------------------------------- |
| sendGasTo | address | Alamat untuk mengirimkan bensin yang terpakai |
|           |         | bensin yang terpakai                          |

**Acara yang dikeluarkan:**

* NewRewardRound

#### **`onAcceptTokensTransfer`**

Deposito terjadi di sini.

```
function onAcceptTokensTransfer(
        address tokenRoot,
        uint128 amount,
        address sender,
        address senderWallet,
        address remainingGasTo,
        TvmCell payload
    ) external override
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                                  |
| -------------- | ------- | ------------------------------------------ |
| tokenRoot      | address | Alamat root token                          |
| amount         | uint128 | Jumlah token yang ditransfer               |
| sender         | address | Alamat pengirim                            |
| senderWallet   | address | Alamat dompet pengirim                     |
| remainingGasTo | address | Alamat di mana sisa bensin akan ditransfer |
| payload        | TvmCell | Setor data muatan yang dikodekan ke Sel    |

**Acara yang dikeluarkan:**

* RewardDeposit

#### **`revertDeposit`**

Memulihkan tindakan mendeposito.

```
function revertDeposit(uint64 _deposit_nonce) external override
```

**Parameter:**

| Nama             | Jenis  | Deskripsi                         |
| ---------------- | ------ | --------------------------------- |
| \_deposit\_nonce | uint64 | Id deposito yang harus dipulihkan |

**Acara yang dikeluarkan:**

* DepositReverted

#### **`finishDeposit`**

Menyelesaikan penyetoran dengan menambah saldo token untuk jumlah setoran.

```
function finishDeposit(uint64 _deposit_nonce) external override
```

**Parameter:**

| Nama             | Jenis  | Deskripsi                          |
| ---------------- | ------ | ---------------------------------- |
| \_deposit\_nonce | uint64 | Id setoran yang harus diselesaikan |

**Acara yang dikeluarkan:**

* Deposit

#### **`withdraw`**

Tindakan penarikan

```
function withdraw(uint128 amount, address send_gas_to) public onlyActive
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| amount    | uint128 | Jumlah untuk ditarik                 |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

#### **`finishWithdraw`**

Menyelesaikan penarikan dengan mengurangi saldo token untuk jumlah setoran.

```
function finishWithdraw(
        address user,
        uint128 withdraw_amount,
        address send_gas_to
    ) public override onlyUserData(user)
```

**Parameter:**

| Nama             | Jenis   | Deskripsi                                  |
| ---------------- | ------- | ------------------------------------------ |
| user             | address | Alamat pengguna yang menginisasi penarikan |
| withdraw\_amount | uint128 | Jumlah untuk ditarik                       |
| sendGasTo        | address | Alamat untuk mengirimkan sisa bensin       |

**Acara yang dikeluarkan:**

* Tarik

#### **`claimReward`**

Mengklaim hadiah untuk pengguna.

```
function claimReward(address send_gas_to) external onlyActive
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

#### **`finishClaimReward`**

Menyelesaikan klaim hadiah dengan menambah hadiah token pengguna dan mengurangi saldo token hadiah

```
function finishClaimReward(address user, uint128[] rewards, address send_gas_to) external override onlyUserData(user)
```

**Parameter:**

| Nama      | Jenis      | Deskripsi                             |
| --------- | ---------- | ------------------------------------- |
| user      | address    | Alamat pengguna yang mengklaim hadiah |
| rewards   | uint128\[] | Daftar hadiah                         |
| sendGasTo | address    | Alamat untuk mengirimkan sisa bensin  |

**Acara yang dikeluarkan:**

* RewardClaimed

#### **`pendingReward`**

Menyinkronkan hadiah, memperbarui info pool jika tidak kosong, mendapatkan hadiah untuk putaran pengguna lama, menyinkronkan putaran pengguna baru, menghitung token hadiah pengguna dan mengembalikannya.

```
function pendingReward(uint256 user_token_balance, IUserData.RewardRoundData[] user_reward_data) external view responsible returns (uint256)
```

**Parameter:**

| Nama                 | Jenis                        | Deskripsi                               |
| -------------------- | ---------------------------- | --------------------------------------- |
| user\_token\_balance | uint256                      | Saldo token pengguna                    |
| user\_reward\_data   | IUserData.RewardRoundData\[] | Daftar semua hadiah pengguna tersinkron |

**Nilai hasil:**

| Jenis   | Deskripsi                            |
| ------- | ------------------------------------ |
| address | Alamat untuk mengirimkan sisa bensin |

updatePoolInfo Memperbarui informasi pool tentang waktu hadiah terakhir dan total hadiah

function updatePoolInfo() internal

#### **`deployUserData`**

Meluncurkan kontrak Platform dengan data pengguna

```
function deployUserData(address user_data_owner) internal returns (address)
```

**Parameter:**

| Nama              | Jenis   | Deskripsi                     |
| ----------------- | ------- | ----------------------------- |
| user\_data\_owner | address | Alamat peluncur data pengguna |

**Nilai hasil:**

| Jenis   | Deskripsi                                    |
| ------- | -------------------------------------------- |
| address | Alamat kontrak DataPengguna yang diluncurkan |

#### **`castVoteWithReason`**

Mengeluarkan suara pengguna.

```
function castVote(uint32 proposal_id, bool support) public view override
```

**Parameter:**

| Nama         | Jenis  | Deskripsi                                  |
| ------------ | ------ | ------------------------------------------ |
| proposal\_id | uint32 | Id pengajuan                               |
| support      | bool   | Benar jika mendukung, salah jika menentang |

#### **`castVoteWithReason`**

Mengeluarkan suara pengguna dengan alasan tertentu

```
function castVoteWithReason(
        uint32 proposal_id,
        bool support,
        string reason
    ) public view override
```

**Parameter:**

| Nama         | Jenis  | Deskripsi                                  |
| ------------ | ------ | ------------------------------------------ |
| proposal\_id | uint32 | Id pengajuan                               |
| support      | bool   | Benar jika mendukung, salah jika menentang |
| reason       | string | Alasan pemungutan suara                    |

#### **`withdrawTonsUserEmergency`**

Pengguna menarik ton dalam kasus darurat

```
function withdrawTonsUserEmergency() external
```

#### **`withdrawTonsEmergency`**

Memeriksa semua persyaratan yang diperlukan mengenai saldo dan jumlah, dan melakukan transfer ke alamat penerima

```
function withdrawTonsEmergency(uint128 amount, address receiver, bool all, address send_gas_to) external onlyRescuer
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                                            |
| --------- | ------- | ---------------------------------------------------- |
| amount    | uint128 | Jumlah ton untuk ditarik                             |
| receiver  | address | Alamat penerima di mana ton akan dikirimkan          |
| all       | bool    | Benar jika semua ton harus ditarik, salah jika tidak |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin                 |

#### **`withdrawTokensEmergency`**

Penarikan token dalam kasus darurat.

```
function withdrawTokensEmergency(uint128 amount, address receiver, bool all, address send_gas_to) external onlyRescuer
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                                              |
| --------- | ------- | ------------------------------------------------------ |
| amount    | uint128 | Jumlah token untuk ditarik                             |
| receiver  | address | Alamat penerima di mana token akan dikirimkan          |
| all       | bool    | Benar jika semua token harus ditarik, salah jika tidak |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin                   |

### StakingPoolRelay

#### **`linkRelayAccounts`**

Mendapatkan data pengguna dan memproses penautan akun pengganti eth dan ton.

```
function linkRelayAccounts(uint256 ton_pubkey, uint160 eth_address) external view onlyActive
```

**Parameter:**

| Nama         | Jenis   | Deskripsi            |
| ------------ | ------- | -------------------- |
| ton\_pubkey  | uint256 | Kunci umum akun ton  |
| eth\_address | uint160 | Alamat akun ethereum |

#### **`onEventConfirmed`**

Mengonfirmasi transaksi dari everscale ke ethereum.

```
function onEventConfirmed(
        IEthereumEvent.EthereumEventInitData eventData,
        address gasBackAddress
    ) external override onlyEthTonConfig
```

**Parameter:**

| Nama           | Jenis                                | Deskripsi                            |
| -------------- | ------------------------------------ | ------------------------------------ |
| eventData      | IEthereumEvent.EthereumEventInitData | Data EthereumEvent                   |
| gasBackAddress | address                              | Alamat untuk mengirimkan sisa bensin |

#### **`confirmEthAccount`**

Memproses konfirmasi akun ethereum.

```
function confirmEthAccount(address staker_addr, uint160 eth_address, address send_gas_to) internal
```

**Parameter:**

| Nama         | Jenis   | Deskripsi                            |
| ------------ | ------- | ------------------------------------ |
| staker\_addr | address | Alamat penaruh                       |
| eth\_address | uint160 | Alamat akun Ethereum                 |
| sendGasTo    | address | Alamat untuk mengirimkan sisa bensin |

#### **`slashRelay`**

Memotong pengganti tertentu.

```
function slashRelay(address relay_staker_addr, address send_gas_to) external onlyDaoRoot
```

**Parameter:**

| Nama                | Jenis   | Deskripsi                              |
| ------------------- | ------- | -------------------------------------- |
| relay\_staker\_addr | address | Alamat di mana pengganti akan dipotong |
| sendGasTo           | address | Alamat untuk mengirimkan sisa bensin   |

#### **`_syncUserRewardData`**

Menghitung hadiah pengguna berdasarkan param.

```
function _syncUserRewardData(
        uint128[] user_rewards,
        uint128[] user_debts,
        uint128 ban_token_balance
    ) private view returns (uint128[])
```

**Parameter:**

| Nama                | Jenis      | Deskripsi                                                                |
| ------------------- | ---------- | ------------------------------------------------------------------------ |
| user\_rewards       | uint128\[] | Daftar semua hadiah pengguna                                             |
| user\_debts         | uint128\[] | Daftar semua hutang pengguna                                             |
| ban\_token\_balance | uint128    | Digunakan untuk mengkalkulasi hadiah pengguna baru yang belum tersinkron |

**Nilai hasil:**

| Jenis      | Deskripsi                              |
| ---------- | -------------------------------------- |
| uint128\[] | Daftar hadiah pengguna yang tersinkron |

#### **`confirmSlash`**

Mengonfirmasi pemotongan dengan pembakaran bensin pengguna yang terpotong dan menghitung ulang saldo putaran.

function confirmSlash( address user, uint128\[] user\_rewards, uint128\[] user\_debts, uint128 ban\_token\_balance, address send\_gas\_to ) external override onlyUserData(user)

**Parameter:**

| Nama                | Jenis      | Deskripsi                             |
| ------------------- | ---------- | ------------------------------------- |
| user                | address    | Alamat pengguna yang terpotong        |
| user\_rewards       | uint128\[] | Daftar hadiah pengguna yang terpotong |
| user\_debts         | uint128\[] | Daftar hutang pengguna yang terpotong |
| ban\_token\_balance | uint128    | Saldo token yang terblokir            |
| sendGasTo           | address    | Alamat untuk mengirimkan sisa bensin  |

**Acara yang dikeluarkan:**

* RelaySlashed

#### **`createOriginRelayRound`**

Membuat dan meluncurkan putaran pengganti baru dan mengatur pengganti untuk putaran itu.

```
function createOriginRelayRound(
        address[] staker_addrs,
        uint256[] ton_pubkeys,
        uint160[] eth_addrs,
        uint128[] staked_tokens,
        uint128 ton_deposit,
        address send_gas_to
    ) external onlyAdmin
```

**Parameter:**

| Nama           | Jenis      | Deskripsi                            |
| -------------- | ---------- | ------------------------------------ |
| staker\_addrs  | address\[] | Daftar penaruh di putaran            |
| ton\_pubkeys   | uint256\[] | Daftar kunci umum akun ton           |
| eth\_addrs     | uint160\[] | Daftar akun ethereum                 |
| staked\_tokens | uint128\[] | Daftar token yang dipertaruhkan      |
| ton\_deposit   | uint128    | Jumlah ton yang didepositokan        |
| sendGasTo      | address    | Alamat untuk mengirimkan sisa bensin |
|                |            | sisa bensin                          |

#### **`processBecomeRelayNextRound`**

Memproses pengganti baru untuk putaran pengganti berikutnya.

```
function processBecomeRelayNextRound(address user) external view override onlyActive onlyUserData(user)
```

**Parameter:**

| Nama | Jenis   | Deskripsi                                                             |
| ---- | ------- | --------------------------------------------------------------------- |
| user | address | Alamat pengguna yang akan diproses untuk pengganti putaran berikutnya |

#### **`processGetRewardForRelayRound`**

Memproses hadiah untuk putaran pengganti saat ini.

```
function processGetRewardForRelayRound(address user, uint32 round_num) external override onlyActive onlyUserData(user)
```

**Parameter:**

| Nama       | Jenis   | Deskripsi                                     |
| ---------- | ------- | --------------------------------------------- |
| user       | address | Alamat pengguna yang harus mendapatkan hadiah |
| round\_num | uint32  | Jumlah putaran yang dia akan diberi hadiah    |

#### **`startElectionOnNewRound`**

Meluncurkan pemilihan untuk putaran baru.

```
function startElectionOnNewRound() external onlyActive
```

#### **`endElection`**

Berdasarkan alamat pemilihan menyelesaikan pemilihan saat ini.

```
function endElection() external onlyActive
```

#### **`onElectionStarted`**

Mengatur waktu mulai pemilihan.

```
function onElectionStarted(uint32 round_num) external override onlyElection(round_num)
```

**Parameter:**

| Nama       | Jenis  | Deskripsi                                     |
| ---------- | ------ | --------------------------------------------- |
| round\_num | uint32 | Angka putaran di mana pemilihan telah dimulai |

**Acara yang dikeluarkan:**

* ElectionStarted

#### **`onElectionEnded`**

Mengatur detil putaran dan meluncurkan putaran pengganti baru.

```
function onElectionEnded(
        uint32 round_num,
        uint32 relay_requests_count
    ) external override onlyElection(round_num)
```

**Parameter:**

| Nama                   | Jenis  | Deskripsi                                                                                              |
| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------ |
| round\_num             | uint32 | Angka putaran di mana pemilihan telah berakhir                                                         |
| relay\_requests\_count | uint32 | Jumlah permintaan pengganti (digunakan untuk memeriksa apakah ada cukup pemilihan untuk menjadi valid) |

**Acara yang dikeluarkan:**

* ElectionEnded

#### **`_relaysPacksCount`**

Mengembalikan jumlah paket pengganti.

```
function _relaysPacksCount() private view returns (uint8)
```

**Nilai hasil:**

| Jenis | Deskripsi              |
| ----- | ---------------------- |
| uint8 | Jumlah paket pengganti |

#### **`onRelayRoundDeployed`**

Mengirimkan pengganti ke putaran pengganti.

```
function onRelayRoundDeployed(
        uint32 round_num,
        bool duplicate
    ) external override onlyRelayRound(round_num)
```

**Parameter:**

| Nama       | Jenis  | Deskripsi                        |
| ---------- | ------ | -------------------------------- |
| round\_num | uint32 | Angka putaran                    |
| duplicate  | bool   | Benar jika iya, salah jika tidak |

#### **`onRelayRoundInitialized`**

Mengatur detil putaran, meluncurkan acara baru dan menghancurkan putaran sebelumnya.

```
function onRelayRoundInitialized(
        uint32 round_num,
        uint32 round_start_time,
        uint32 round_end_time,
        uint32 relays_count,
        uint128 round_reward,
        uint32 reward_round_num,
        bool duplicate,
        uint160[] eth_keys
    ) external override onlyRelayRound(round_num)
```

**Parameter:**

| Nama               | Jenis      | Deskripsi                                                             |
| ------------------ | ---------- | --------------------------------------------------------------------- |
| round\_num         | uint32     | Angka putaran                                                         |
| round\_start\_time | uint32     | Waktu saat putaran akan mulai                                         |
| round\_end\_time   | uint32     | Akhir putaran                                                         |
| relays\_count      | uint32     | Jumlah pengganti                                                      |
| round\_reward      | uint128    | Hadiah putaran                                                        |
| reward\_round\_num | uint32     | Jumlah putaran hadiah (indeks untuk base\_details.rewardRounds array) |
|                    |            | (indeks untuk base\_details.rewardRounds array)                       |
| duplicate          | bool       | Benar jika iya, salah jika tidak                                      |
| eth\_keys          | uint160\[] | Daftar akun ethereum                                                  |

**Acara yang dikeluarkan:**

* RelayRoundInitialized

#### **`deployElection`**

Membuat platform baru untuk pemilihan baru.

```
function deployElection(uint32 round_num) private returns (address)
```

**Parameter:**

| Nama       | Jenis  | Deskripsi      |
| ---------- | ------ | -------------- |
| round\_num | uint32 | Jumlah putaran |

**Nilai hasil:**

| Jenis   | Deskripsi                         |
| ------- | --------------------------------- |
| address | Alamat pemilihan yang diluncurkan |

#### **`deployRelayRound`**

Membuat platform untuk putaran pengganti baru.

```
function deployRelayRound(
        uint32 round_num,
        uint32 start_time,
        uint32 end_time,
        bool duplicate,
        uint8 packs_num,
        address election_addr,
        address prev_relay_round_addr,
        uint16 msg_flag
    ) private returns (address)
```

**Parameter:**

| Nama                     | Jenis   | Deskripsi                                                       |
| ------------------------ | ------- | --------------------------------------------------------------- |
| round\_num               | uint32  | Jumlah putaran                                                  |
| start\_time              | uint32  | Waktu mulai putaran                                             |
| end\_time                | uint32  | Waktu berakhir putaran                                          |
| duplicate                | bool    | Benar jika iya, salah jika tidak                                |
| packs\_num               | uint8   | Jumlah paket pengganti                                          |
| election\_addr           | address | Alamat pemilihan                                                |
| prev\_relay\_round\_addr | address | Alamat putaran pengganti sebelumnya                             |
| msg\_flag                | uint16  | Bendera yang digunakan untuk membangun platform RelayRound baru |

**Nilai hasil:**

| Jenis   | Deskripsi                                 |
| ------- | ----------------------------------------- |
| address | Alamat putaran pengganti yang diluncurkan |

### StakingUpgradable

#### **`installPlatformOnce`**

Menginstal platform yang diperbarui.

```
function installPlatformOnce(TvmCell code, address send_gas_to) external onlyAdmin
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| code      | TvmCell | Kode platform yang dituliskan ke sel |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

#### **`installOrUpdateUserDataCode`**

Memperbarui versi data pengguna.

```
function installOrUpdateUserDataCode(TvmCell code, address send_gas_to) external onlyAdmin
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| code      | TvmCell | Kode data pengguna dalam format sel  |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

**Acara yang dikeluarkan:**

* UserDataCodeUpgraded

#### **`installOrUpdateElectionCode`**

Meningkatkan versi pemilihan.

```
function installOrUpdateElectionCode(TvmCell code, address send_gas_to) external onlyAdmin
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| code      | TvmCell | Kode pemilihan dalam format sel      |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

**Acara yang dikeluarkan:**

* ElectionCodeUpgraded

#### **`installOrUpdateRelayRoundCode`**

Meningkatkan versi putaran pengganti.

```
function installOrUpdateRelayRoundCode(TvmCell code, address send_gas_to) external onlyAdmin
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                               |
| --------- | ------- | --------------------------------------- |
| code      | TvmCell | kode putaran pengganti dalam format sel |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin    |

**Acara yang dikeluarkan:**

* RelayRoundCodeUpgraded

#### *`upgradeUserData`*\*

Meningkatkan data pengguna.

```
function upgradeUserData(address send_gas_to) external view onlyActive
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

#### **`forceUpgradeUserData`**

Meningkatkan data pengguna.

```
function forceUpgradeUserData(
        address user,
        address send_gas_to
    ) external view onlyAdmin
```

**Parameter:**

| Nama      | Jenis   | Deskripsi                            |
| --------- | ------- | ------------------------------------ |
| user      | address | Alamat pengguna                      |
| sendGasTo | address | Alamat untuk mengirimkan sisa bensin |

#### **`_upgradeUserData`**

Meningkatkan kode data pengguna dan versi berdasarkan permintaan.

```
function _upgradeUserData(address user, uint128 gas_value, address send_gas_to) internal view
```

**Parameter:**

| Nama       | Jenis   | Deskripsi                                       |
| ---------- | ------- | ----------------------------------------------- |
| user       | address | Alamat pengguna                                 |
| gas\_value | uint128 | Nilai bensin yang dikeluarkan untuk peningkatan |
| sendGasTo  | address | Alamat untuk mengirimkan sisa bensin            |

**Acara yang dikeluarkan:**

* RequestedUserDataUpgrade

#### **`upgradeElection`**

Meningkatkan kode pemilihan dan versi berdasarkan permintaan.

```
function upgradeElection(
        uint32 round_num,
        address send_gas_to
    ) external view onlyAdmin
```

**Parameter:**

| Nama       | Jenis   | Deskripsi                            |
| ---------- | ------- | ------------------------------------ |
| round\_num | uint32  | Jumlah putaran                       |
| sendGasTo  | address | Alamat untuk mengirimkan sisa bensin |

**Acara yang dikeluarkan:**

* RequestedElectionUpgrade

#### **`upgradeRelayRound`**

Meningkatkan kode putaran pengganti dan versi berdasarkan permintaan.

```
function upgradeRelayRound(
        uint32 round_num,
        address send_gas_to
    ) external view onlyAdmin
```

**Parameter:**

| Nama       | Jenis   | Deskripsi                            |
| ---------- | ------- | ------------------------------------ |
| round\_num | uint32  | Jumlah putaran                       |
| sendGasTo  | address | Alamat untuk mengirimkan sisa bensin |

**Acara yang dikeluarkan:**

* RequestedRelayRoundUpgrade

#### **`_buildElectionParams`**

Mengembalikan param pemilihan dalam format sel berdasarkan jumlah putaran.

```
function _buildElectionParams(uint32 round_num) internal inline view returns (TvmCell)
```

**Parameter:**

| Nama       | Jenis  | Deskripsi      |
| ---------- | ------ | -------------- |
| round\_num | uint32 | Jumlah putaran |

**Nilai hasil:**

| Jenis   | Deskripsi                                  |
| ------- | ------------------------------------------ |
| TvmCell | Data parameter pemilihan dituliskan ke sel |

#### **`_buildRelayRoundParams`**

Mengembalikan param putaran pengganti dalam format sel berdasarkan jumlah putaran.

```
function _buildRelayRoundParams(uint32 round_num) internal inline view returns (TvmCell)
```

**Parameter:**

| Nama       | Jenis  | Deskripsi      |
| ---------- | ------ | -------------- |
| round\_num | uint32 | Jumlah putaran |

| Jenis   | Deskripsi                                      |
| ------- | ---------------------------------------------- |
| TvmCell | Param putaran pengganti yang dituliskan ke sel |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.octusbridge.io/ob-id/integrate/octus-bridge-contracts/everscale/staking-section/base.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
