# Pengajuan

#### **`queue`**

Terjadi setelah pelaksanaan pengajuan

```
function queue() override public
```

**Acara yang dikeluarkan:**

* Antri

#### **`execute`**

Pelaksanaan pengajuan.

```
function execute() override public
```

**Acara yang dikeluarkan:**

* Dijalankan

#### **`cancel`**

Pembatalan pengajuan.

```
function cancel() override public
```

**Acara yang dikeluarkan:**

* Dibatalkan

#### **`castVote`**

Memproses suara pemilih apakah mendukung atau menentang pengajuan.

```
function castVote(
        uint32 /*proposalId*/,
        address voter,
        uint128 votes,
        bool support,
        string reason
    ) override public onlyStakingAccount(voter)
```

**Parameter:**

| Nama    | Jenis   | Deskripsi                                   |
| ------- | ------- | ------------------------------------------- |
|         | uint32  | Id pengajuan                                |
| voter   | address | Alamat pemilih                              |
| votes   | uint128 | Jumlah suara yang diberikan untuk pengajuan |
| support | bool    | Benar jika mendukung, salah jika menentang  |
| reason  | string  | Alasan suara yang diputuskan                |

**Acara yang dikeluarkan:**

* VoteCast

#### **`onActionsExecuted`**

Panggilan kembali untuk tindakan yang dijalankan.

```
function onActionsExecuted() override public onlyRoot
```

#### **`state`**

Mendapatkan keadaan pengajuan berdasarkan kondisi yang ditentukan.

```
function state() private view returns (ProposalState)
```

**Nilai hasil:**

| Jenis         | Deskripsi                  |
| ------------- | -------------------------- |
| ProposalState | Keadaan pengajuan saat ini |

#### **`unlockCastedVote`**

Membuka suara yang diberikan hanya jika keadaan pengajuan tidak aktif.

```
function unlockCastedVote(address accountOwner) override public view onlyStakingAccount(accountOwner)
```

**Parameter:**

| Nama         | Jenis   | Deskripsi           |
| ------------ | ------- | ------------------- |
| accountOwner | address | Alamat pemilik akun |

#### **`unlockVoteTokens`**

Membuka token suara berdasarkan keadaan pengajuan.

```
function unlockVoteTokens(address accountOwner) override public view onlyStakingAccount(accountOwner)
```

**Parameter:**

| Nama         | Jenis   | Deskripsi           |
| ------------ | ------- | ------------------- |
| accountOwner | address | Alamat pemilik akun |

#### **`_buildAccountInitialData`**

Membangun data awal untuk akun.

```
function _buildAccountInitialData(address accountOwner) private inline pure returns (TvmCell)
```

**Parameter:**

| Nama         | Jenis   | Deskripsi           |
| ------------ | ------- | ------------------- |
| accountOwner | address | Alamat pemilik akun |

**Nilai hasil:**

| Jenis   | Deskripsi                       |
| ------- | ------------------------------- |
| TvmCell | Data awal akun dalam format sel |

#### **`_buildStakingInitData`**

Membangun data awal untuk taruhan.

```
function _buildStakingInitData(uint8 platformType, TvmCell initialData) private inline view returns (TvmCell)
```

**Parameter:**

| Nama         | Jenis   | Deskripsi                                    |
| ------------ | ------- | -------------------------------------------- |
| platformType | uint8   | Jenis platform                               |
| initialData  | TvmCell | Data awal direpresentasikan dalam format sel |

**Nilai hasil:**

| Jenis   | Deskripsi                          |
| ------- | ---------------------------------- |
| TvmCell | Data awal taruhan dalam format sel |

#### **`requestUpgrade`**

Membuat permintaan untuk meningkatkan pengajuan untuk versi berbeda

```
function requestUpgrade(address sendGasTo) override public view
```

**Parameter:**

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

**Acara yang dikeluarkan:**

* CodeUpgradeRequested

#### **`upgrade`**

Meningkatkan kode ke versi baru

```
function upgrade(TvmCell code, uint16 newVersion, address sendGasTo) override public onlyRoot
```

**Parameter:**

| Nama       | Jenis   | Deskripsi                                     |
| ---------- | ------- | --------------------------------------------- |
| code       | TvmCell | Kode untuk diatur untuk versi terbaru         |
| newVersion | uint16  | Versi baru kode                               |
| sendGasTo  | address | Alamat untuk mengirimkan bensin yang terpakai |

**Acara yang dikeluarkan:**

* ProposalCodeUpgraded
