# DAORoot

#### **`propose`**

Membuat pengajuan DAO baru.

```
function propose(
        uint32 answerId,
        TonAction[] tonActions,
        EthAction[] ethActions,
        string description
    ) override public
```

**Parameter:**

| Nama        | Jenis        | Deskripsi                 |
| ----------- | ------------ | ------------------------- |
| answerId    | uint32       |                           |
| tonActions  | TonAction\[] | Daftar tindakan everscale |
| ethActions  | EthAction\[] | Daftar tindakan ethereum  |
| description | string       | Deskripsi pengajuan       |

#### **`deployProposal`**

Meluncurkan kontrak Pengajuan (membuat contoh kontrak Platform baru).

```
function deployProposal(
        uint32 nonce,
        address accountOwner,
        TvmCell proposalData
    ) override public onlyStakingAccount(accountOwner)onProposalDeployed
```

| Nama         | Jenis   | Deskripsi                                                                                |
| ------------ | ------- | ---------------------------------------------------------------------------------------- |
| nonce        | uint32  |                                                                                          |
| accountOwner | address | Alamat pemilik akun                                                                      |
| proposalData | TvmCell | Informasi tentang pengajuan, termasuk id jawaban, deskripsi, daftar tindakan TON dan EVM |

**Acara yang dikeluarkan:**

* ProposalCreated

#### **`onProposalSucceeded`**

Metode panggilan kembali setelah pengajuan berhasil.

```
function onProposalSucceeded(
        uint32 proposalId,
        address proposer,
        TonAction[] tonActions,
        EthAction[] ethActions
    ) override public onlyProposal(proposalId)
```

**Parameter:**

| Nama       | Jenis        | Deskripsi                 |
| ---------- | ------------ | ------------------------- |
| proposalId | uint32       | Id pengajuan              |
| proposer   | address      | Alamat pembuat pengajuan  |
| tonActions | TonAction\[] | Daftar tindakan everscale |
| ethActions | EthAction\[] | Daftar tindakan ethereum  |

**Acara yang dikeluarkan:**

* ExecutingTonActions

#### **`executeTonAction`**

Melakukan transfer berdasarkan payload tindakan.

```
function executeTonAction(TonAction action) private pure inline
```

**Parameter:**

| Nama   | Jenis     | Deskripsi                           |
| ------ | --------- | ----------------------------------- |
| action | TonAction | Tindakan everscale untuk dijalankan |

#### **`executeEthActions`**

Berdasarkan daftar tindakan mengisi data yang diperlukan, menambahkan tindakan ke chain tindakan, menuliskan kodenya ke data acara dan meluncurkan acara.

```
function executeEthActions(address proposer, EthAction[] actions) private view inline
```

**Parameter:**

| Nama     | Jenis        | Deskripsi                          |
| -------- | ------------ | ---------------------------------- |
| proposer | address      | Alamat pembuat pengajuan           |
| actions  | EthAction\[] | Tindakan ethereum untuk dijalankan |

#### **`calcTonActionsValue`**

Menghitung nilai total tindakan di Everscale.

```
function calcTonActionsValue(TonAction[] actions) public pure returns (uint128 totalValue)
```

Parameter:

| Nama    | Jenis        | Deskripsi                      |
| ------- | ------------ | ------------------------------ |
| actions | TonAction\[] | Daftar tindakan untuk dihitung |

**Nilai hasil:**

| Nama       | Jenis   | Deskripsi                   |
| ---------- | ------- | --------------------------- |
| totalValue | uint128 | Nilai total daftar tindakan |

#### **`calcEthActionsValue`**

Menghitung nilai todal tindakan di Ethereum.

```
function calcEthActionsValue(
        EthAction[] actions
    ) public view returns (uint128 totalValue)
```

**Parameter:**

| Nama    | Jenis        | Deskripsi                      |
| ------- | ------------ | ------------------------------ |
| actions | EthAction\[] | Daftar tindakan untuk dihitung |

**Nilai hasil:**

| Nama       | Jenis   | Deskripsi                   |
| ---------- | ------- | --------------------------- |
| totalValue | uint128 | Nilai total daftar tindakan |

\_buildProposalInitialData Membangun data awal untuk Pengajuan

fungsi \_buildProposalInitialData(uint32 proposalId) private inline pure returns (TvmCell)

**Parameter:**

| Nama       | Jenis  | Deskripsi    |
| ---------- | ------ | ------------ |
| proposalId | uint32 | Id pengajuan |

**Nilai hasil:**

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

#### **`_buildStakingAccountInitialData`**

Membangun data awal untuk akun Taruhan

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

**Parameter:**

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

**Nilai hasil:**

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

#### **`_buildInitData`**

Membangun data awal untuk jenis Platform yang ditentukan.

```
function _buildInitData(PlatformType platformType, TvmCell initialData) private view returns (TvmCell)
```

**Parameter:**

| Nama         | Jenis        | Deskripsi                            |
| ------------ | ------------ | ------------------------------------ |
| platformType | PlatformType | Jenis platform                       |
| initialData  | TvmCell      | Data awal pengajuan dalam format sel |

**Nilai hasil:**

| Jenis   | Deskripsi                                    | Deskripsi      |
| ------- | -------------------------------------------- | -------------- |
| TvmCell | Data awal direpresentasikan dalam format sel | Jenis platform |

#### **`requestUpgradeProposal`**

Membuat permintaan untuk meningkatkan pengajuan untuk versi berbeda.

```
function requestUpgradeProposal(
        uint16 currentVersion,
        address sendGasTo,
        uint32 proposalId
    ) override public onlyProposal(proposalId)
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                                        |
| -------------- | ------- | ------------------------------------------------ |
| currentVersion | uint16  | Versi pengajuan saat ini                         |
| sendGasTo      | address | Alamat untuk mengirimkan bensin yang dikeluarkan |
| proposalId     | uint32  | Id pengajuan                                     |

#### **`setStakingRoot`**

Mengatur alamat root taruhan dari param dan mentransfer sisa bensin ke admin

```
function setStakingRoot(address newStakingRoot) override public onlyAdmin
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                     |
| -------------- | ------- | ----------------------------- |
| newStakingRoot | address | Alamat root taruhan yang baru |

**Acara yang dikeluarkan:**

* StakingRootUpdated

#### **`transferAdmin`**

Mentransfer peran admin ke alamat lain.

```
function transferAdmin(address newAdmin) override public onlyAdmin
```

**Parameter:**

| Nama     | Jenis   | Deskripsi         |
| -------- | ------- | ----------------- |
| newAdmin | address | Alamat admin baru |

**Acara yang dikeluarkan:**

* AdminTransferAccepted


---

# 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/dao-section/daoroot.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.
