# ConvexCrvLp

#### **`withdrawToConvexDepositTokens`**

Menarik semua token dari kontrak hadiah.

```
function withdrawToConvexDepositTokens() external onlyAuthorized
```

#### **`withdrawToWrappedTokens`**

Menarik semua token dari kontrak hadiah dan membukanya.

```
function withdrawToWrappedTokens() external onlyAuthorized
```

#### **`claimWantTokens`**

Mentransfer token diinginkan yang belum dibuka ke pemerintahan. Hanya bisa dipanggil dengan pemerintahan.

```
function claimWantTokens() external onlyGovernance
```

#### **`claimWrappedWantTokens`**

Transfer wrapped token diinginkan ke pemerintahan. Bisa dipanggil hanya oleh pemerintahan.

```
function claimWrappedWantTokens() external onlyGovernance
```

#### **`claimRewardTokens`**

Mentransfer token hadiah (crv dan cvx) ke pemerintahan. Bisa dipanggil hanya oleh pemerintahan.

```
function claimRewardTokens() external onlyGovernance
```

#### **`name`**

Mengembalikan representasi string dari file abi dari simbol token yang ingin dibungkus.

```
function name() external view override returns (string memory)
```

**Nilai hasil:**

| Jenis         | Deskripsi                         |
| ------------- | --------------------------------- |
| string memory | Simbol token yang ingin dibungkus |

#### **`calc_want_from_wrapped`**

Jika jumlah token yang diinginkan lebih besar dari 0 mengembalikan jumlah yang dihitung dari token yang dibungkus.

```
function calc_want_from_wrapped(uint256 wrapped_amount) public virtual view returns (uint256 expected_return)
```

**Parameter:**

| Nama            | Jenis   | Deskripsi                                  |
| --------------- | ------- | ------------------------------------------ |
| wrapped\_amount | uint256 | Jumlah token yang dibungkus untuk dihitung |

**Nilai hasil:**

| Nama             | Jenis   | Deskripsi                                            |
| ---------------- | ------- | ---------------------------------------------------- |
| expected\_return | uint256 | Jumlah token yang diinginkan dihitung dari dibungkus |

#### **`unwrap`**

Jumlah token yang diinginkan dihitung dari wrapped

```
function unwrap(uint256 wrapped_amount) internal virtual returns (uint256 expected_return)
```

**Parameter:**

| Nama            | Jenis   | Deskripsi                         |
| --------------- | ------- | --------------------------------- |
| wrapped\_amount | uint256 | Jumlah wrapped token untuk dibuka |

**Nilai hasil:**

| Nama             | Jenis   | Deskripsi                   |
| ---------------- | ------- | --------------------------- |
| expected\_return | uint256 | Jumlah token setelah dibuka |

#### **`balanceOfWant`**

Mengembalikan saldo token yang diinginkan dari pemanggil kontrak.

```
function balanceOfWant() public view returns (uint256)
```

**Nilai hasil:**

| Jenis   | Deskripsi                    |
| ------- | ---------------------------- |
| uint256 | Jumlah token yang diinginkan |

#### **`estimatedTotalAssets`**

Mengembalikan jumlah total wrapped dan token yang diinginkan.

```
function estimatedTotalAssets() public view override returns (uint256)
```

**Parameter:**

| Jenis   | Deskripsi                                      |
| ------- | ---------------------------------------------- |
| uint256 | Jumlah total wrapped dan token yang diinginkan |

#### **`adjustPosition`**

Menghitung total token yang tersedia dan jika lebih besar dari utang minimum, membungkus token yang diinginkan dan mendepositokannya ke booster.

```
function adjustPosition(uint256 /*_debtOutstanding*/) internal override
```

**Parameter:**

| Jenis   | Deskripsi                     |
| ------- | ----------------------------- |
| uint256 | Nilai token yang belum dibuka |

#### **`_withdrawSome`**

Menarik dan membuka jumlah hadiah dan mengembalikan saldo baru dari wrapped token setelah penarikan.

```
function _withdrawSome(uint256 _amount) internal returns (uint256)
```

**Parameter:**

| Nama     | Jenis   | Deskripsi                      |
| -------- | ------- | ------------------------------ |
| \_amount | uint256 | Jumlah token yang akan ditarik |

**Nilai hasil:**

| Jenis   | Deskripsi                             |
| ------- | ------------------------------------- |
| uint256 | Saldo wrapped token setelah penarikan |

#### **`liquidatePosition`**

Mengembalikan jumlah dan kerugian yang dilikuidasi, jika saldo kurang dari jumlah yang dibutuhkan untuk menarik, kerugian dihitung untuk tindakan lebih lanjut (melempar kesalahan misalnya).

```
function liquidatePosition(uint256 _amountNeeded) internal override returns (uint256 _liquidatedAmount, uint256 _loss)
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                              |
| -------------- | ------- | -------------------------------------- |
| \_amountNeeded | uint256 | Jumlah wrapped token untuk dilikuidasi |

**Nilai hasil:**

| Nama               | Jenis   | Deskripsi                                   |
| ------------------ | ------- | ------------------------------------------- |
| \_liquidatedAmount | uint256 | Jumlah token yang dilikuidasi               |
| \_loss             | uint256 | Rugi setelah likuidasi (harus 0, o/w error) |

#### **`prepareMigration`**

Menarik dan membuka semua token hadiah, memigrasikan hadiah berdasarkan strategi baru dan mentransfer saldo wrapped token ke wrapped pool token.

```
function prepareMigration(address _newStrategy) internal override
```

**Parameter:**

| Nama          | Jenis   | Deskripsi                     |
| ------------- | ------- | ----------------------------- |
| \_newStrategy | address | Alamat cadangan strategi baru |

#### **`_migrateRewards`**

Mentransfer semua token kurva dan cembung dari pool kontrak ini ke alamat pool mereka.

```
function _migrateRewards(address _newStrategy) internal virtual
```

**Parameter:**

| Nama          | Jenis   | Deskripsi                |
| ------------- | ------- | ------------------------ |
| \_newStrategy | address | Alamat cadangan strategi |

#### **`_claimableBasicInETH`**

Mengambil jumlah kurva dari pool ini, menghitung jumlah cembung berdasarkan itu, kemudian menghitung nilai cembung dan kurva dan mengembalikan jumlahnya saat ditukar ke ETH.

```
function _claimableBasicInETH() internal view returns (uint256)
```

**Nilai hasil:**

| Jenis   | Deskripsi                                     |
| ------- | --------------------------------------------- |
| uint256 | Jumlah token cembung dan kurva ditukar ke eth |

#### **`claimableInETH`**

Mengembalikan nilai yang dapat diklaim.

```
function claimableInETH() public virtual view returns (uint256 _claimable)
```

**Nilai hasil:**

| Nama        | Jenis   | Deskripsi                           |
| ----------- | ------- | ----------------------------------- |
| \_claimable | uint256 | Jumlah token ETH yang dapat diklaim |

#### **`harvestTrigger`**

Memutuskan apakah harvest harus dipicu berdasarkan banyak faktor (minReportDelay, maxReportDelay, totalDebt...), benar jika ya, salah jika tidak.

```
function harvestTrigger(uint256 callCost) public override view returns (bool)
```

**Parameter:**

| Nama     | Jenis   | Deskripsi                  |
| -------- | ------- | -------------------------- |
| callCost | uint256 | Biaya untuk memicu harvest |

**Nilai hasil:**

| Jenis | Deskripsi                                            |
| ----- | ---------------------------------------------------- |
| bool  | Benar jika harvest harus dilakukan, salah jika tidak |

#### **`harvest`**

Memanen Strategi, mengenali setiap keuntungan atau kerugian dan menyesuaikan posisi Strategi. Dalam kasus yang jarang terjadi, Strategi dalam keadaan darurat, maka Strategi akan keluar dari posisi. Ini hanya dapat dipanggil oleh pemerintahan, ahli strategi, atau penjaga.

```
function harvest() external override onlyKeepers
```

**Acara yang dikeluarkan:**

* Harvested(want\_profit, want\_loss, want\_debtPayment, debtOutstanding)

#### **`withdraw`**

Menarik \_amountNeeded (direpresentasikan di wrapped token) ke cadangan tertentu. Ini hanya dapat dipanggil oleh Cadangan.

```
function withdraw(uint256 _amountNeeded) external override returns (uint256 _loss)
```

**Parameter:**

| Nama           | Jenis   | Deskripsi                      |
| -------------- | ------- | ------------------------------ |
| \_amountNeeded | uint256 | Jumlah penarikan wrapped token |

**Nilai hasil:**

| Nama   | Jenis   | Deskripsi                                       |
| ------ | ------- | ----------------------------------------------- |
| \_loss | uint256 | Kerugian apa pun yang dihasilkan oleh penarikan |

#### **`sweep`**

Menghapus token dari Strategi ini yang bukan merupakan jenis token yang dikelola oleh Strategi ini. Dapat digunakan jika secara tidak sengaja mengirimkan jenis token yang salah ke Strategi ini. Token akan dikirim ke pemerintahan. Akan gagal jika usaha dilakukan untuk menghapus `want`, atau token apa pun yang dilindungi oleh Strategi ini. Hanya dapat dipanggil oleh pemerintahan.

```
function sweep(address _token) external override onlyGovernance
```

**Parameter:**

| Nama    | Jenis   | Deskripsi                                     |
| ------- | ------- | --------------------------------------------- |
| \_token | address | Alamat token yang harus dihapus dari strategi |
