# Pemilihan

#### **`applyForMembership`**

Menambahkan pengganti baru ke daftar node permintaan dan menerima permintaan.

```
function applyForMembership(
        address staker_addr,
        uint256 ton_pubkey,
        uint160 eth_addr,
        uint128 tokens,
        uint32 lock_time,
        uint32 code_version
    ) external override onlyUserData(staker_addr)
```

**Parameter:**

| Nama          | Jenis   | Deskripsi                     |
| ------------- | ------- | ----------------------------- |
| staker\_addr  | address | Alamat pengaplikasian penaruh |
| ton\_pubkey   | uint256 | Kunci umum akun ton           |
| eth\_addr     | uint160 | Alamat akun ethereum          |
| tokens        | uint128 | Jumlah token penaruh          |
| lock\_time    | uint32  | Durasi penguncian token       |
| code\_version | uint32  | Versi kode                    |

#### **`destroy`**

Harus dipanggil setelah transfer data pengganti ke putaran pengganti berikutnya.

```
function destroy() external override onlyRoot
```

#### **`finish`**

Mengakhiri pemilihan jika belum diakhiri dan mengirimkan bensin kembali ke root.

```
function finish(uint32 code_version) external override onlyRoot
```

**Parameter:**

| Nama          | Jenis  | Deskripsi            |
| ------------- | ------ | -------------------- |
| code\_version | uint32 | Kode versi pemilihan |

#### **`sendRelaysToRelayRound`**

Mengatur pengganti ke putaran pengganti.

```
function sendRelaysToRelayRound(address relay_round_addr, uint32 relays_count) external override onlyRoot
```

**Parameter:**

| Nama               | Jenis   | Deskripsi                   |
| ------------------ | ------- | --------------------------- |
| relay\_round\_addr | address | Alamat putaran pengganti    |
| relays\_count      | uint32  | Jumlah pengganti di putaran |

#### **`upgrade`**

Meningkatkan data pemilihan dan mengatur kode baru.

```
function upgrade(TvmCell code, uint32 new_version, address send_gas_to) external onlyRoot
```

**Parameter:**

| Nama         | Jenis   | Deskripsi                            |
| ------------ | ------- | ------------------------------------ |
| code         | TvmCell | Kode platform pemilihan              |
| new\_version | uint32  | Versi baru platform pemilihan        |
| sendGasTo    | address | Alamat untuk mengirimkan sisa bensin |

**Acara yang dikeluarkan:**

* ElectionCodeUpgraded

#### **`onCodeUpgrade`**

Membawa info versi saat ini dan membuat node asal setelah inisialisasi kontrak.

```
function onCodeUpgrade(TvmCell upgrade_data) private
```

**Parameter:**

| Nama          | Jenis   | Deskripsi                                    |
| ------------- | ------- | -------------------------------------------- |
| upgrade\_data | TvmCell | Meningkatkan data pemilihan dalam format sel |

#### **`_buildUserDataParams`**

Membangun param data pengguna.

```
function _buildUserDataParams(address user) private view returns (TvmCell)
```

**Parameter:**

| Nama | Jenis   | Deskripsi            |
| ---- | ------- | -------------------- |
| user | address | Alamat data pengguna |

**Nilai hasil:**

| Jenis   | Deskripsi                            |
| ------- | ------------------------------------ |
| TvmCell | Param Data Pengguna dalam format sel |

#### **`_buildPlatformInitData`**

Mengatur data platform awal.

```
function _buildPlatformInitData(address platform_root, uint8 platform_type, TvmCell initial_data) private view returns (TvmCell)
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                           |
| -------------- | ------- | ----------------------------------- |
| platform\_root | address | Alamat platform                     |
| platform\_type | uint8   | Jenis platform                      |
| initial\_data  | TvmCell | Data platform awal dalam format sel |

**Nilai hasil:**

| Jenis   | Deskripsi                              |
| ------- | -------------------------------------- |
| TvmCell | Keadaan awal platform dalam format 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/elections.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.
