diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/_category_.json b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/_category_.json
index 3b79e91a3..5bc4f0f24 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/_category_.json
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/_category_.json
@@ -1,8 +1,8 @@
{
- "label": "Building on Lisk",
+ "label": "Membangun di atas Lisk",
"position": 3,
"link": {
"type": "generated-index",
- "description": "Guides for developers wanting to build on Lisk L2."
+ "description": "Panduan untuk pengembang yang ingin membangun di Lisk L2."
}
-}
\ No newline at end of file
+}
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/custom-token.mdx b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/custom-token.mdx
index 092afceeb..56d5b0b5e 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/custom-token.mdx
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/custom-token.mdx
@@ -1,7 +1,7 @@
---
-title: Deploying a custom token
+title: Meluncurkan Token Sendiri
slug: /building-on-lisk/add-token-to-lisk/custom-token
-description: 'Learn how to bridge your custom ERC-20 token to Lisk using the standard bridge.'
+description: 'Pelajari cara memindahkan token ERC-20 Anda sendiri ke Lisk menggunakan bridge standar.'
keywords:
[
'ERC-20 contract',
@@ -16,72 +16,72 @@ keywords:
]
---
-# Deploying your Custom ERC-20 token to Lisk
+# Meluncurkan Token ERC-20 Anda Sendiri ke Lisk
{/* :::info
-**This tutorial is for developers who want to bridge a new Custom ERC-20 token to Lisk Mainnet.**
-If you want to bridge existing tokens, you can follow the tutorial on [Bridging ERC-20 tokens with the Optimism SDK](https://docs.optimism.io/builders/app-developers/tutorials/cross-dom-bridge-erc20).
+**Tutorial ini ditujukan untuk developer yang ingin memindahkan token ERC-20 baru mereka sendiri ke Lisk Mainnet menggunakan bridge.**
+Jika Anda ingin memindahkan token yang sudah ada, Anda dapat mengikuti tutorial [Memindahkan Token ERC-20 dengan Optimism SDK](https://docs.optimism.io/builders/app-developers/tutorials/cross-dom-bridge-erc20).
::: */}
-In this tutorial, you will learn how to bridge a custom ERC-20 token from Ethereum or Sepolia to the Lisk or Lisk Sepolia network, respectively.
-By using the [Standard Bridge system](https://docs.optimism.io/builders/dapp-developers/bridging/standard-bridge), this tutorial is meant for developers who already have an existing ERC-20 token on Ethereum and want to create a bridged representation of that token on Lisk.
+Dalam tutorial ini, Anda akan belajar cara memindahkan token ERC-20 kustom dari Ethereum atau Sepolia ke jaringan Lisk atau Lisk Sepolia.
+Dengan menggunakan [Sistem Bridge Standar](https://docs.optimism.io/builders/dapp-developers/bridging/standard-bridge), tutorial ini ditujukan untuk developer yang sudah memiliki token ERC-20 di Ethereum dan ingin membuat representasi token tersebut di Lisk.
-Learn step-by-step how you can create a custom token that conforms to the [`IOptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/IOptimismMintableERC20.sol) interface so that it can be used with the Standard Bridge system.
-A custom token allows you to do things like trigger extra logic whenever a token is deposited.
-If you don't need extra functionality like this, consider following the tutorial on [Deploying your Standard ERC-20 token to Lisk](./standard-token) instead.
+Pelajari langkah demi langkah cara membuat token kustom yang sesuai dengan interface [`IOptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/IOptimismMintableERC20.sol) sehingga dapat digunakan dengan Sistem Bridge Standar.
+Token kustom memungkinkan Anda melakukan hal-hal seperti men-_trigger_ logika tambahan setiap kali token dideposit.
+Jika Anda tidak memerlukan fungsionalitas tambahan ini, pertimbangkan untuk mengikuti tutorial [Meluncurkan Token ERC-20 Standar ke Lisk](./standard-token).
-## Prerequisites
+## Prasyarat
:::note
-You can deploy your **Custom ERC-20** token on Lisk Mainnet by adopting the same process.
-For deploying to mainnet, ensure that your wallet has enough ETH.
+Anda dapat meluncurkan **Token ERC-20 Anda Sendiri** di Lisk Mainnet dengan menggunakan proses yang sama.
+Untuk meluncurkan ke mainnet, pastikan dompet (_wallet_) Anda memiliki ETH yang cukup.
-The subsequent text contains commands for both Lisk and Lisk Sepolia for your ease.
-For more information, see the [available Lisk networks](/network-info) and [how to connect a wallet with them](/user/connecting-to-a-wallet).
+Teks berikut mencakup perintah untuk Lisk dan Lisk Sepolia demi kemudahan Anda.
+Untuk informasi lebih lanjut, lihat [jaringan Lisk yang tersedia](/network-info) dan [cara menghubungkan dompet ke jaringan tersebut](/user/connecting-to-a-wallet).
:::
-### Get ETH on Sepolia and Lisk Sepolia
+### Mendapatkan ETH di Sepolia dan Lisk Sepolia
-You will need to get some ETH on both, Sepolia and Lisk Sepolia networks.
+Anda perlu mendapatkan ETH di kedua jaringan, Sepolia dan Lisk Sepolia.
:::info
-You can use [ETH Sepolia Faucet](https://sepoliafaucet.com/) to get ETH on Sepolia.
-You can use the [Superchain Faucet](https://app.optimism.io/faucet?utm_source=docs) to get ETH on Lisk Sepolia.
+Anda dapat menggunakan [ETH Sepolia Faucet](https://sepoliafaucet.com/) untuk mendapatkan ETH di Sepolia.
+Anda dapat menggunakan [Superchain Faucet](https://app.optimism.io/faucet?utm_source=docs) untuk mendapatkan ETH di Lisk Sepolia.
:::
-### Add Lisk Sepolia to Your Wallet
+### Menambahkan Lisk Sepolia ke Dompet Anda
-This tutorial uses [Remix](https://remix.ethereum.org) to deploy contracts.
-You will need to add the Lisk or Lisk Sepolia network to your wallet in order to follow this tutorial.
-Please follow the [How to connect Lisk to a wallet](/user/connecting-to-a-wallet) guide, to connect your wallet to Lisk or Lisk Sepolia network.
+Tutorial ini menggunakan [Remix](https://remix.ethereum.org) untuk meluncurkan kontrak.
+Anda perlu menambahkan jaringan Lisk atau Lisk Sepolia ke dompet Anda untuk mengikuti tutorial ini.
+Silakan ikuti panduan [Cara Menghubungkan Lisk ke Dompet](/user/connecting-to-a-wallet) untuk menghubungkan dompet Anda ke jaringan Lisk atau Lisk Sepolia.
-### Get an L1 ERC-20 Token Address
+### Mendapatkan Alamat Token ERC-20 L1
-You will need an L1 ERC-20 token for this tutorial.
-If you already have an L1 ERC-20 token deployed on Ethereum Mainnet or Sepolia, you can skip this step.
-For Sepolia, you can use the testing token located at [`0x5589BB8228C07c4e15558875fAf2B859f678d129`](https://sepolia.etherscan.io/address/0x5589BB8228C07c4e15558875fAf2B859f678d129) that includes a `faucet()` function that can be used to mint tokens.
+Anda memerlukan token ERC-20 L1 untuk tutorial ini.
+Jika Anda sudah memiliki token ERC-20 L1 yang diluncurkan di Ethereum Mainnet atau Sepolia, Anda dapat melewati langkah ini.
+Untuk Sepolia, Anda dapat menggunakan token uji coba yang terletak di [`0x5589BB8228C07c4e15558875fAf2B859f678d129`](https://sepolia.etherscan.io/address/0x5589BB8228C07c4e15558875fAf2B859f678d129) yang menyertakan fungsi `faucet()` untuk me-_mint_ token.
-## Create an L2 ERC-20 Token
+## Membuat Token ERC-20 L2
-Once you have an L1 ERC-20 token, you can create a corresponding L2 ERC-20 token on Lisk or Lisk Sepolia network.
-This tutorial uses [Remix](https://remix.ethereum.org), so you can easily deploy a token without a framework like [Hardhat](https://hardhat.org) or [Foundry](https://getfoundry.sh).
-You can follow the same general process within your favorite framework if you prefer.
+Setelah Anda memiliki token ERC-20 L1, Anda dapat membuat token ERC-20 L2 yang sesuai di jaringan Lisk atau Lisk Sepolia.
+Tutorial ini menggunakan [Remix](https://remix.ethereum.org), sehingga Anda dapat dengan mudah meluncurkan token tanpa _framework_ seperti [Hardhat](https://hardhat.org) atau [Foundry](https://getfoundry.sh).
+Anda juga dapat mengikuti proses umum yang sama dalam _framework_ pilihan Anda jika Anda mau.
-In this section, you'll be creating an ERC-20 token that can be deposited but cannot be withdrawn.
-This is just one example of the endless ways in which you could customize your L2 token.
+Dalam bagian ini, Anda akan membuat token ERC-20 yang dapat di-_deposit_ tetapi tidak dapat di-_withdraw_.
+Ini hanyalah salah satu contoh dari banyak cara untuk menyesuaikan token L2 Anda.
-### 1. Open Remix
+### 1. Buka Remix
-Navigate to [Remix](https://remix.ethereum.org) in your browser.
+Akses [Remix](https://remix.ethereum.org) di browser Anda.
-### 2. Create a new file
+### 2. Buat file baru
-Click the π ("Create new file") button to create a new empty Solidity file.
-You can name this file whatever you'd like, e.g. `custom-token.sol`.
+Klik tombol π ("Buat file baru") untuk membuat file Solidity kosong.
+Anda dapat memberi nama file ini sesuai keinginan Anda, misalnya `custom-token.sol`.
-### 3. Copy the example contract
+### 3. Salin kontrak contoh
-Copy the following example contract into your new file:
+Salin kontrak contoh berikut ke dalam file baru Anda:
custom-token.sol
@@ -186,15 +186,15 @@ contract MyCustomL2Token is IOptimismMintableERC20, ERC20 {
```
-### 4. Review the example contract
+### 4. Tinjau kontrak contoh
-Take a moment to review the example contract.
-It's almost the same as the standard [`OptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/OptimismMintableERC20.sol) contract except that the `_burn` function has been made to always revert.
+Luangkan waktu untuk meninjau kontrak contoh.
+Kontrak ini hampir sama dengan kontrak standar [`OptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/OptimismMintableERC20.sol), kecuali fungsi `_burn` telah dimodifikasi agar selalu gagal (revert).
-The contract for the custom token inherits from the [`IOptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/IOptimismMintableERC20.sol) interface and the `ERC20` contract.
-The constructor takes the address of the L2 standard bridge, the address of the corresponding L1 token, the name of the ERC20 token, and the symbol of the ERC20 token.
-The `mint` function allows the bridge to mint tokens for users.
-Since the bridge needs to burn tokens when users want to withdraw them to L1, this means that users will not be able to withdraw tokens from this contract, which is what we intend for this example.
+Kontrak untuk token kustom ini mewarisi (_inherits_) dari interface [`IOptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/universal/IOptimismMintableERC20.sol) dan kontrak `ERC20`.
+Konstruktor menerima alamat dari L2 standard bridge, alamat token L1 yang sesuai, nama token ERC20, dan simbol token ERC20.
+Fungsi `mint` memungkinkan bridge me-_mint_ token untuk pengguna.
+Karena bridge perlu mem-_burn_ token ketika pengguna ingin me-_withdraw_-nya kembali ke L1, ini berarti pengguna tidak akan dapat me-_withdraw_ token dari kontrak ini, sesuai dengan tujuan contoh ini.
```solidity
/// @notice Prevents tokens from being withdrawn to L1.
@@ -211,16 +211,16 @@ function burn(
}
```
-### 5. Compile the contract
+### 5. Mengompilasi Kontrak
-Save the file to automatically compile the contract.
-If you've disabled auto-compile, you'll need to manually compile the contract by clicking the "Solidity Compiler" tab (this looks like the letter "S") and pressing the blue "Compile" button.
+Simpan file untuk secara otomatis mengompilasi kontrak.
+Jika Anda telah menonaktifkan fitur kompilasi otomatis, Anda perlu mengompilasi kontrak secara manual dengan mengklik tab "Solidity Compiler" (ikon berbentuk huruf "S") dan menekan tombol biru "Compile".
-### 6. Deploy the contract
+### 6. Meluncurkan Kontrak
-Open the deployment tab (this looks like an Ethereum logo with an arrow pointing right).
-Make sure that your environment is set to "Injected Provider", your wallet is connected to Lisk or Lisk Sepolia network, and Remix has access to your wallet.
-Then, select the `MyCustomL2Token` contract from the deployment dropdown and deploy it with the following parameters:
+Buka tab deployment (ikon berbentuk logo Ethereum dengan panah mengarah ke kanan).
+Pastikan bahwa _environment_ Anda diatur ke "Injected Provider", dompet Anda terhubung ke jaringan Lisk atau Lisk Sepolia, dan Remix memiliki akses ke dompet Anda.
+Kemudian, pilih kontrak `MyCustomL2Token` dari dropdown deployment dan luncurkan dengan parameter berikut:
```text
_BRIDGE: "0x4200000000000000000000000000000000000007"
@@ -230,12 +230,12 @@ _SYMBOL: "MCL2T"
```
:::tip
-If you used the testing token described in step [Get an L1 ERC-20 Token Address](#get-an-l1-erc-20-token-address), use the address `0x5589BB8228C07c4e15558875fAf2B859f678d129` for the `_REMOTETOKEN` parameter.
+Jika Anda menggunakan token uji coba yang dijelaskan pada langkah [Mendapatkan Alamat Token ERC-20 L1](#mendapatkan-alamat-token-erc-20-l1), gunakan alamat `0x5589BB8228C07c4e15558875fAf2B859f678d129` untuk parameter `_REMOTETOKEN`.
:::
-{/* ## Bridge Some Tokens
+{/* ## Bridge Beberapa Token
-Now that you have an L2 ERC-20 token, you can bridge some tokens from L1 to L2.
-Check out the tutorial on [Bridging ERC-20 tokens with the Optimism SDK](https://docs.optimism.io/builders/app-developers/tutorials/cross-dom-bridge-erc20) to learn how to bridge your L1 ERC-20 to Lisk using the Optimism SDK.
-Remember that the withdrawal step will *not* work for the token you just created!
-This is exactly what this tutorial was meant to demonstrate. */}
\ No newline at end of file
+Sekarang setelah Anda memiliki token ERC-20 L2, Anda dapat memindahkan beberapa token dari L1 ke L2.
+Lihat tutorial [Memindahkan Token ERC-20 dengan Optimism SDK](https://docs.optimism.io/builders/app-developers/tutorials/cross-dom-bridge-erc20) untuk mempelajari cara memindahkan token ERC-20 L1 Anda ke Lisk menggunakan Optimism SDK.
+Ingat bahwa langkah _withdrawal_ *tidak akan* berfungsi untuk token yang baru saja Anda buat!
+Hal ini sesuai dengan tujuan yang ingin ditunjukkan oleh tutorial ini. */}
\ No newline at end of file
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/index.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/index.md
index 2b0a9a0fb..3f598aa24 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/index.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/index.md
@@ -1,94 +1,99 @@
---
-title: Introduction
+title: Pengenalan
sidebar_position: 1
slug: /building-on-lisk/add-token-to-lisk
-description: 'Guide to adding external ERC-20 contracts deployed on Ethereum to Lisk network.'
+description: "Panduan menambahkan kontrak ERC-20 eksternal yang telah diluncurkan di Ethereum ke jaringan Lisk."
keywords:
[
- 'ERC-20 contract',
- 'Lisk Testnet',
- 'Sepolia',
- 'Ethereum',
- 'Lisk Mainnet',
- 'Lisk',
- 'Optimism Superchain token list',
+ "Kontrak ERC-20",
+ "Testnet Lisk",
+ "Sepolia",
+ "Ethereum",
+ "Mainnet Lisk",
+ "Lisk",
+ "daftar token Optimism Superchain",
]
---
-# Bridging an L1 token to Lisk
-This page is intended for token issuers who already have an ERC-20 contract deployed on Ethereum and would like to submit their token for bridging between Ethereum and Lisk.
-Lisk uses the Superchain Token List as a reference for tokens that have been deployed on Lisk.
+# Memindahkan (_Bridging_) Token L1 ke Lisk
-## Superchain Token List
-The [Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io) exists to help users discover the correct bridged token addresses for any given native token.
+Halaman ini ditujukan untuk penerbit token yang sudah memiliki kontrak ERC-20 yang diluncurkan di Ethereum dan ingin men-_submit_ token mereka untuk dipindahkan (_bridging_) antara Ethereum dan Lisk.
+Lisk menggunakan _Superchain Token List_ sebagai referensi untuk token-token yang telah diluncurkan di Lisk.
-Consider checking this list to make sure that you're not using the wrong bridged representation of a token when bridging a native token.
-
+## _Superchain Token List_
+
+[Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io) bertujuan membantu pengguna menemukan alamat yang benar untuk token yang dipindahkan melalui _bridge_ (_bridged token_) pada setiap token native tertentu.
+
+Pastikan untuk memeriksa daftar ini agar Anda tidak menggunakan representasi token yang salah ketika memindahkan token native melalui _bridge_.
+
+
:::warning
-Lisk does not endorse any of the tokens that are listed in the [**ethereum-optimism.github.io**](https://github.com/ethereum-optimism/ethereum-optimism.github.io) repository and relies on the preliminary checks put in place, listed on the repository.
+Lisk tidak meng-_endorse_ token apa pun yang tercantum dalam repositori [**ethereum-optimism.github.io**](https://github.com/ethereum-optimism/ethereum-optimism.github.io), dan bergantung pada pemeriksaan awal yang telah ditetapkan serta dicantumkan di repositori tersebut.
:::
-Developers who are creating their own bridged tokens should consider [adding their token to the list](#adding-your-token-to-the-superchain-token-list).
+Developer yang membuat token mereka sendiri yang dipindahkan melalui _bridge_ sebaiknya mempertimbangkan untuk [menambahkan token mereka ke dalam list](#menambahkan-token-anda-ke-superchain-token-list).
-Tokens on the Superchain Token List will automatically appear on certain tools like the [Superchain Bridges UI](https://app.optimism.io/bridge).
-However, tokens are not necessarily listed on the [Lisk Bridge UI](https://bridge.lisk.com/bridge/lisk); their listing is neither guaranteed nor automatic.
-Lisk Bridge reviews are conducted manually by the Lisk team.
+Token yang ada di _Superchain Token List_ akan otomatis muncul di beberapa _tool_ seperti [Superchain Bridges UI](https://app.optimism.io/bridge).
+Namun, token tidak secara otomatis tercantum di [Lisk Bridge UI](https://bridge.lisk.com/bridge/lisk); pencantuman tersebut tidak dijamin dan tidak bersifat otomatis.
+Peninjauan untuk Lisk Bridge dilakukan secara manual oleh tim Lisk.
-## The Standard Bridge
-Before a token native to one chain can be bridged to the other chain, a bridged representation of that token must be created on the receiving side.
-The [Standard Bridge](https://docs.optimism.io/builders/app-developers/bridging/standard-bridge) allows users to convert tokens that are native to one chain (like Ethereum) into a representation of those tokens on the other chain (like Lisk).
-Users can then convert these bridged representations back into their original native tokens at any time.
+## Bridge Standar
+
+Sebelum token yang berasal dari satu chain dapat dipindahkan ke chain lainnya, representasi token yang dipindahkan melalui _bridge_ harus dibuat di sisi penerima.
+[Bridge Standar](https://docs.optimism.io/builders/app-developers/bridging/standard-bridge) memungkinkan pengguna untuk mengonversi token yang berasal dari satu chain (seperti Ethereum) menjadi representasi token tersebut di chain lain (seperti Lisk).
+Pengguna kemudian dapat mengonversi representasi token yang dipindahkan ini kembali ke token native aslinya kapan saja.
:::tip
-This bridging mechanism functions identically in both directions β tokens native to Lisk can be bridged to Ethereum, just like tokens native to Ethereum can be bridged to Lisk.
+Mekanisme _bridging_ ini berfungsi secara identik di kedua arah β token yang berasal dari Lisk dapat dipindahkan ke Ethereum, sama seperti token yang berasal dari Ethereum dapat dipindahkan ke Lisk.
:::
-A bridged representation of a token is an ERC-20 token that implements the `IOptimismMintableERC20`[^1] interface.
-A native token may have more than one bridged representation at the same time.
-Users must always specify which bridged token they wish to use when using the bridge; see [Superchain Token List](#superchain-token-list).
-Different bridged representations of the same native token are considered entirely independent tokens.
+Representasi token yang dipindahkan melalui bridge adalah token ERC-20 yang mengimplementasikan _interface_ `IOptimismMintableERC20`[^1].
+Token native dapat memiliki lebih dari satu representasi yang dipindahkan melalui bridge dalam waktu yang bersamaan.
+Pengguna harus selalu menentukan token yang ingin mereka gunakan saat menggunakan bridge; lihat [Superchain Token List](#superchain-token-list). Representasi token yang berbeda untuk token native yang sama dianggap sebagai token yang sepenuhnya independen.
+
+Bridge Standar adalah kontrak pintar sederhana dengan fungsionalitas untuk memindahkan token ERC-20 antara Lisk dan Ethereum.
+
+Pada protokol terdiri dari dua kontrak penting:
-The Standard Bridge is a simple smart contract, with the functionality to move ERC-20 tokens between Lisk and Ethereum.
+- Kontrak _bridge_ yang diluncurkan di **Ethereum**, disebut [L1StandardBridge](https://etherscan.io/address/0x2658723Bf70c7667De6B25F99fcce13A16D25d08).
+- Kontrak _bridge_ yang diluncurkan di **Lisk**, disebut [L2StandardBridge](https://blockscout.lisk.com/address/0x4200000000000000000000000000000000000010).
-The protocol consists of two pertinent contracts:
+Kedua kontrak ini berinteraksi satu sama lain melalui sistem `CrossDomainMessenger` untuk mengirim pesan antara Ethereum dan Lisk.
-- A bridge contract deployed to **Ethereum**, called [L1StandardBridge](https://etherscan.io/address/0x2658723Bf70c7667De6B25F99fcce13A16D25d08).
-- A bridge contract deployed to **Lisk**, called [L2StandardBridge](https://blockscout.lisk.com/address/0x4200000000000000000000000000000000000010).
+[^1]:
+ _Interface_ `IOptimismMintableERC20` adalah kumpulan (_superset_) dari [interface ERC-20 standar](https://eips.ethereum.org/EIPS/eip-20) dan mencakup fungsi-fungsi yang memungkinkan _bridge_ untuk memverifikasi _deposit/withdrawals_ serta mencetak (_mint_) atau membakar (_burn_) token sesuai kebutuhan.
+ Semua versi token yang dipindahkan melalui _bridge_ harus mengimplementasikan _interface_ ini agar dapat dipindahkan menggunakan sistem [Bridge Standar](#bridge-standar).
+ Token native tidak perlu mengimplementasikan interface ini.
-These two contracts interact with one another via the `CrossDomainMessenger` system for sending messages between Ethereum and Lisk.
+## Menambahkan Token Anda ke Superchain Token List
-[^1]: The `IOptimismMintableERC20` interface is a superset of the [standard ERC-20 interface](https://eips.ethereum.org/EIPS/eip-20) and includes functions that allow the bridge to properly verify deposits/withdrawals and mint/burn tokens as needed.
-All bridged versions of tokens must implement this interface in order to be bridged with the [Standard Bridge](#the-standard-bridge) system.
-Native tokens do not need to implement this interface.
+Lisk menggunakan [Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io/blob/master/optimism.tokenlist.json) sebagai referensi untuk token-token yang telah diluncurkan di Lisk.
+Untuk menambahkan token Anda ke dalam list, lakukan langkah-langkah berikut.
-## Adding your token to the Superchain Token List
+### Langkah 1: Luncurkan Token Anda di Lisk
-Lisk uses the [Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io/blob/master/optimism.tokenlist.json) as a reference for tokens that have been deployed on Lisk.
+Pilih framework _bridging_ yang Anda inginkan, dan gunakan untuk meluncurkan ERC-20 token Anda di Lisk.
+Kami merekomendasikan Anda menggunakan framework yang disediakan oleh kontrak [bridge standar](#bridge-standar) milik Lisk dan meluncurkan token Anda menggunakan [OptimismMintableERC20Factory](https://docs.lisk.com/contracts#jaringan-lisk-l2).
+Meluncurkan token Anda di Lisk dengan cara ini memberikan jaminan tambahan yang akan memperlancar proses persetujuan.
+Jika Anda memilih framework _bridging_ lain, interfacenya harus kompatibel dengan _bridge standar_. Jika tidak, kami mungkin akan kesulitan untuk mendukungnya.
-To add your token to the list, perform the following steps.
+Untuk instruksi langkah demi langkah tentang cara meluncurkan token ERC-20 di Lisk, silakan lihat panduan berikut:
-### Step 1: Deploy your token on Lisk
-Select your preferred bridging framework and use it to deploy an ERC-20 for your token on Lisk.
-We recommend you use the framework provided by Lisk's [standard bridge](#the-standard-bridge) contracts and, furthermore, deploy your token using the [OptimismMintableERC20Factory](https://docs.lisk.com/contracts#lisk-network-l2).
-Deploying your token on Lisk in this manner provides us with guarantees that will smooth the approval process.
-If you choose a different bridging framework, its interface must be compatible with that of the standard bridge.
-Otherwise, it may be difficult for us to support them.
+- [Meluncurkan Token ERC-20 Standar](./standard-token.md)
+- [Meluncurkan Token ERC-20 Sendiri](./custom-token.mdx)
-For step-by-step instructions on how to deploy ERC-20 tokens on Lisk, check the following guides:
+### Langkah 2: Ajukan Detail Token Anda
-- [Deploying a Standard ERC-20 token](./standard-token.md)
-- [Deploying a Custom ERC-20 token](./custom-token.mdx)
+Ikuti instruksi di [repositori GitHub](https://github.com/ethereum-optimism/ethereum-optimism.github.io) dan ajukan _Pull Request_ (PR) yang berisi detail yang diperlukan untuk token Anda.
-### Step 2: Submit details of your token
-Follow the instructions in the [GitHub repository](https://github.com/ethereum-optimism/ethereum-optimism.github.io) and submit a PR containing the required details for your token.
+**Penting:** Anda harus menentukan bagian `lisk-sepolia` dan/atau `lisk` di file `data.json` token Anda.
-**Important:** You must specify in your token's `data.json` file a section for `lisk-sepolia` and/or `lisk`.
+[PR ini](https://github.com/ethereum-optimism/ethereum-optimism.github.io/pull/899) menunjukkan perubahan yang diperlukan untuk menambahkan token LSK ke _Superchain Token Registry_.
+Perubahan yang perlu Anda ajukan akan menjadi lebih sederhana jika token Anda sudah ditambahkan ke _Superchain Token Registry_.
+Sebagai contoh, [PR ini](https://github.com/ethereum-optimism/ethereum-optimism.github.io/commit/27ab9b2d3388f7feba3a152e0a0748c73d732a68) menunjukkan perubahan yang diperlukan untuk cbETH, yang sudah ada di _Superchain Token Registry_ dan bergantung pada _bridge standar_ Base.
-[This PR](https://github.com/ethereum-optimism/ethereum-optimism.github.io/pull/899) shows the changes necessary to add the LSK token to the Superchain Token Registry.
-The change you need to submit is particularly simple if your token has already been added to the Superchain Token Registry.
-For example, [this PR](https://github.com/ethereum-optimism/ethereum-optimism.github.io/commit/27ab9b2d3388f7feba3a152e0a0748c73d732a68) shows the change required for cbETH, which was already on Superchain Token Registry and relies on the Base standard bridge.
+### Langkah 3: Tunggu Persetujuan Akhir
-### Step 3: Await final approval
-Reviews are regularly conducted by the Lisk team and you should receive a reply within 24-72 hours (depending on if the PR is opened on a weekday, weekend or holiday).
+Peninjauan secara rutin dilakukan oleh tim Lisk, dan Anda akan menerima balasan dalam waktu 24-72 jam (tergantung apakah PR diajukan pada hari kerja, akhir pekan, atau hari libur).
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/standard-token.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/standard-token.md
index 826c29ba6..ef30a32e6 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/standard-token.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/add-token-to-lisk/standard-token.md
@@ -1,87 +1,86 @@
---
-title: Deploying a standard token
+title: Meluncurkan Token Standar
slug: /building-on-lisk/add-token-to-lisk/standard-token
-description: 'Learn how to add your standard ERC-20 token to Lisk using the standard bridge.'
+description: "Pelajari cara menambahkan token ERC-20 standar Anda ke Lisk menggunakan bridge standar."
keywords:
[
- 'ERC-20 contract',
- 'Standard token',
- 'Lisk Testnet',
- 'Sepolia',
- 'Ethereum',
- 'Lisk Sepolia',
- 'Optimism Superchain token list',
+ "kontrak ERC-20",
+ "Token Standar",
+ "Testnet Lisk",
+ "Sepolia",
+ "Ethereum",
+ "Lisk Sepolia",
+ "Daftar Token Optimism Superchain",
]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Deploying your Standard ERC-20 token to Lisk
+# Meluncurkan Token ERC-20 Standar Anda ke Lisk
-In this tutorial, you'll learn how to bridge a standard ERC-20 token from Ethereum to Lisk using the [Standard Bridge system](https://docs.optimism.io/builders/dapp-developers/bridging/standard-bridge).
-This tutorial is meant for developers who already have an existing ERC-20 token on Ethereum and want to create a bridged representation of that token on Lisk.
+Dalam tutorial ini, Anda akan belajar cara memindahkan token ERC-20 standar dari Ethereum ke Lisk menggunakan [Sistem Bridge Standar](https://docs.optimism.io/builders/dapp-developers/bridging/standard-bridge).
+Tutorial ini ditujukan untuk developer yang sudah memiliki token ERC-20 di Ethereum dan ingin membuat representasi token tersebut di Lisk.
-This tutorial explains how to use the [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol) to deploy a standardized ERC-20 token on Lisk or Lisk Sepolia network.
-Tokens created by this factory contract are compatible with the Standard Bridge system and include basic logic for deposits, transfers, and withdrawals.
-If you want to include specialized logic within your L2 token, see the tutorial on [Bridging Your Custom ERC-20 Token to Lisk](./custom-token) instead.
+Tutorial ini menjelaskan cara menggunakan [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol) untuk meluncurkan token ERC-20 standar di jaringan Lisk atau Lisk Sepolia.
+Token yang dibuat oleh kontrak factory ini kompatibel dengan sistem Bridge Standar dan mencakup logika dasar untuk deposit, transfer, dan withdrawals.
+Jika Anda ingin menyertakan logika khusus di dalam token L2 Anda, lihat tutorial [Memindahkan Token ERC-20 Kustom Anda ke Lisk](./custom-token).
-## Dependencies
+## Dependensi
-* [cast](https://book.getfoundry.sh/getting-started/installation)
+- [cast](https://book.getfoundry.sh/getting-started/installation)
-## Prerequisites
+## Prasyarat
:::note
-You can deploy your **Standard ERC-20** token on Lisk Mainnet by adopting the same process.
-For deploying to mainnet, ensure that your wallet has enough ETH.
+Anda dapat meluncurkan **token ERC-20 Standar** Anda di Lisk Mainnet dengan menggunakan proses yang sama.
+Untuk meluncurkan ke mainnet, pastikan dompet Anda memiliki ETH yang cukup.
-The subsequent text contains commands for both Lisk and Lisk Sepolia for your ease.
-For more information, see the [available Lisk networks](/network-info) and [how to connect a wallet with them](/user/connecting-to-a-wallet).
+Teks berikut mencakup perintah untuk Lisk dan Lisk Sepolia demi kemudahan Anda.
+Untuk informasi lebih lanjut, lihat [jaringan Lisk yang tersedia](/network-info) dan [cara menghubungkan dompet ke jaringan tersebut](/user/connecting-to-a-wallet).
:::
+### Dapatkan ETH di Sepolia dan Lisk Sepolia
-### Get ETH on Sepolia and Lisk Sepolia
-
-This tutorial explains how to create a bridged ERC-20 token on Lisk Sepolia.
-You will need to get some ETH on both of these testnets.
+Tutorial ini menjelaskan cara membuat token ERC-20 yang dipindahkan melalui bridge di Lisk Sepolia.
+Anda perlu mendapatkan sejumlah ETH di kedua testnet ini.
:::info
-You can use [ETH Sepolia Faucet](https://sepoliafaucet.com/) to get ETH on Sepolia.
-You can use the [Superchain Faucet](https://app.optimism.io/faucet?utm_source=docs) to get ETH on Lisk Sepolia.
+Anda dapat menggunakan [ETH Sepolia Faucet](https://sepoliafaucet.com/) untuk mendapatkan ETH di Sepolia.
+Anda dapat menggunakan [Superchain Faucet](https://app.optimism.io/faucet?utm_source=docs) untuk mendapatkan ETH di Lisk Sepolia.
:::
-### Get an L1 ERC-20 Token Address
+### Dapatkan Alamat Token ERC-20 L1
-You will need an L1 ERC-20 token for this tutorial.
-If you already have an L1 ERC-20 token deployed on Ethereum Mainnet or Sepolia, you can skip this step.
-For Sepolia, you can use the testing token located at [`0x5589BB8228C07c4e15558875fAf2B859f678d129`](https://sepolia.etherscan.io/address/0x5589BB8228C07c4e15558875fAf2B859f678d129) that includes a `faucet()` function that can be used to mint tokens.
+Anda memerlukan token ERC-20 L1 untuk tutorial ini.
+Jika Anda sudah memiliki token ERC-20 L1 yang diluncurkan di Ethereum Mainnet atau Sepolia, Anda dapat melewati langkah ini.
+Untuk Sepolia, Anda dapat menggunakan token uji coba yang berada di alamat [`0x5589BB8228C07c4e15558875fAf2B859f678d129`](https://sepolia.etherscan.io/address/0x5589BB8228C07c4e15558875fAf2B859f678d129), yang memiliki fungsi `faucet()` untuk me-_mint_ token.
-## Create an L2 ERC-20 token
+## Membuat Token ERC-20 L2
-Once you have an L1 ERC-20 token, you can use the [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol) to create a corresponding L2 ERC-20 token on Lisk or Lisk Sepolia network.
-All tokens created by the factory implement the `IOptimismMintableERC20` interface and are compatible with the Standard Bridge system.
-To create an L2 ERC-20 token, do the following:
+Setelah Anda memiliki token ERC-20 L1, Anda dapat menggunakan [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol) untuk membuat token ERC-20 L2 yang sesuai di jaringan Lisk atau Lisk Sepolia.
+Semua token yang dibuat oleh factory ini mengimplementasikan _interface_ `IOptimismMintableERC20` dan kompatibel dengan sistem _Bridge Standar_.
+Untuk membuat token ERC-20 L2, lakukan langkah-langkah berikut:
-### 1. Add a private key to your environment
+### 1. Tambahkan _private key_ ke _environment_ Anda
-You'll need a private key in order to sign transactions.
-Set your private key as an environment variable with the `export` command.
-Make sure this private key corresponds to an address that has ETH on Lisk or Lisk Sepolia network.
+Anda memerlukan _private key_ untuk menandatangani transaksi.
+Atur _private key_ Anda sebagai variabel _environment_ menggunakan perintah `export`.
+Pastikan _private key_ ini sesuai dengan alamat yang memiliki ETH di jaringan Lisk atau Lisk Sepolia.
```bash
export TUTORIAL_PRIVATE_KEY=0x...
```
-### 2. Add the Lisk RPC URL to your environment
+### 2. Tambahkan URL RPC Lisk ke _environment_ Anda
-You'll need an RPC URL in order to connect to Lisk or Lisk Sepolia network.
-Set your RPC URL as an environment variable with the `export` command.
+Anda memerlukan URL RPC untuk terhubung ke jaringan Lisk atau Lisk Sepolia.
+Atur URL RPC Anda sebagai variabel _environment_ menggunakan perintah `export`.
@@ -96,49 +95,47 @@ Set your RPC URL as an environment variable with the `export` command.
+### 3. Tambahkan alamat token ERC-20 L1 Anda ke _environment_
-
-### 3. Add your L1 ERC-20 token address to your environment
-
-You'll need to know the address of your L1 ERC-20 token in order to create a bridged representation of it on Lisk or Lisk Sepolia network.
-Set your L1 ERC-20 token address as an environment variable with the `export` command.
+Anda perlu mengetahui alamat token ERC-20 L1 Anda untuk membuat representasi token tersebut di jaringan Lisk atau Lisk Sepolia.
+Atur alamat token ERC-20 L1 Anda sebagai variabel _environment_ menggunakan perintah `export`.
```bash
# Replace this with your L1 ERC-20 token if not using the testing token!
export TUTORIAL_L1_ERC20_ADDRESS=0x5589BB8228C07c4e15558875fAf2B859f678d129
```
-### 4. Deploy your L2 ERC-20 token
+### 4. Luncurkan token ERC-20 L2 Anda
-You can now deploy your L2 ERC-20 token using the [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol).
-Use the `cast` command to trigger the deployment function on the factory contract.
-This example command creates a token with the name "My Standard Demo Token" and the symbol "L2TKN".
-The resulting L2 ERC-20 token address is printed to the console.
+Anda sekarang dapat meluncurkan token ERC-20 L2 Anda menggunakan [`OptimismMintableERC20Factory`](https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/packages/contracts-bedrock/contracts/universal/OptimismMintableERC20Factory.sol).
+Gunakan perintah `cast` untuk memicu fungsi peluncuran pada kontrak factory.
+Contoh perintah berikut akan membuat token dengan nama _"My Standard Demo Token"_ dan simbol _"L2TKN"_.
+Alamat token ERC-20 L2 yang dihasilkan akan dicetak di konsol.
-```bash
+```bash
cast send 0x4200000000000000000000000000000000000012 "createOptimismMintableERC20(address,string,string)" $TUTORIAL_L1_ERC20_ADDRESS "My Standard Demo Token" "L2TKN" --private-key $TUTORIAL_PRIVATE_KEY --rpc-url $TUTORIAL_RPC_URL --json | jq -r '.logs[0].topics[2]' | cast parse-bytes32-address
```
-If all goes well, it will respond with the address of the newly deployed contract:
+Jika semua berjalan dengan lancar, Anda akan menerima respons berisi alamat kontrak yang baru saja diluncurkan:
```text
0x891C582b83F69B7c2d3107cd73A3e491CB33962F
```
-:::note[Using factories is **not** recommended for production]
-Factories make it easy to deploy contracts out of the box.
-The downside of this is, that you do not have control over the source code of the contract that is going to be deployed, as this is performed by the factory.
+:::note[Menggunakan _factory_ **tidak** direkomendasikan untuk _production_]
+_Factory_ memudahkan proses peluncuran kontrak secara instan.
+Namun, kelemahannya adalah Anda tidak memiliki kendali atas _source code_ dari kontrak yang akan diluncurkan karena proses ini dilakukan oleh _factory_.
-Furthermore, it is not so straightforward to verify those contracts on Blockscout, as the source code of the contract is required for the verification.
+Selain itu, verifikasi kontrak tersebut di Blockscout tidak begitu mudah dilakukan, karena _source code_ kontrak diperlukan untuk proses verifikasi.
:::
-
+Sekarang setelah Anda memiliki token ERC-20 L2, Anda dapat memindahkan beberapa token dari L1 ke L2.
+Lihat tutorial [Memindahkan Token ERC-20 dengan Optimism SDK](https://docs.optimism.io/builders/app-developers/tutorials/cross-dom-bridge-erc20) untuk mempelajari cara memindahkan token ERC-20 L1 ke L2 dan sebaliknya menggunakan Optimism SDK. -->
-
\ No newline at end of file
+[Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io#readme) adalah daftar umum token yang telah diluncurkan di chain dalam Optimism Superchain.
+Daftar ini digunakan oleh layanan seperti [Optimism Bridge UI](https://app.optimism.io/bridge).
+Jika Anda ingin token OP Mainnet Anda dimasukkan ke dalam daftar ini, silakan lihat [proses peninjauan dan kriteria penggabungan](https://github.com/ethereum-optimism/ethereum-optimism.github.io#review-process-and-merge-criteria). -->
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/bridged-tokens.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/bridged-tokens.md
index defafac86..d65b77327 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/bridged-tokens.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/bridged-tokens.md
@@ -1,32 +1,28 @@
---
id: bridged-tokens
-title: Bridged Token Addresses
+title: Alamat Token yang Dipindahkan melalui Bridge (Bridged Token)
sidebar_position: 2
slug: /bridged-tokens
-description: 'A reference page listing all tokens bridged to Lisk.'
-keywords:
- [
- 'Lisk',
- 'Bridged tokens'
- ]
+description: "Halaman referensi yang mencantumkan semua token yang dipindahkan melalui bridge (bridged token) ke Lisk."
+keywords: ["Lisk", "token yang dipindahkan melalui bridge (bridged token)"]
---
-# Bridged tokens
+# Token yang Dipindahkan melalui Bridge (_Bridged Tokens_)
-This page summarizes officially reviewed tokens deployed on Lisk and their corresponding L1 addresses.
+Halaman ini merangkum token-token yang telah ditinjau secara resmi dan diluncurkan di Lisk, beserta alamat L1 yang sesuai.
-The list is based on the [Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io).
+Daftar ini berdasarkan [Daftar Token Superchain](https://github.com/ethereum-optimism/ethereum-optimism.github.io).
:::tip
-If you want to add a token to the list, please check out the guide [Bridging an L1 token to Lisk](add-token-to-lisk/index.md).
+Jika Anda ingin menambahkan token ke daftar ini, silakan lihat panduan [Memindahkan Token L1 ke Lisk](add-token-to-lisk/index.md).
:::
## Lisk Mainnet
-| Bridged Tokens Mainnet | Symbol | L1 Token | L2 Token |
-| :----------------- | :----- |:----------------- | :----------------- |
+| _Bridged Token_ di Mainnet | Simbol | Token L1 | Token L2 |
+| :------------------------- | :----- | :------- | :------- |
## Lisk Sepolia
-| Bridged Tokens Sepolia | Symbol | L1 Token | L2 Token |
-| :----------------- | :----- |:----------------- | :----------------- |
+| _Bridged Token_ di Sepolia | Simbol | Token L1 | Token L2 |
+| :------------------------- | :----- | :------- | :------- |
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/contracts.mdx b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/contracts.mdx
index 037d32b1d..b3d43024f 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/contracts.mdx
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/contracts.mdx
@@ -1,9 +1,9 @@
---
id: contracts
-title: Contracts
+title: Kontrak
sidebar_position: 1
slug: /contracts
-description: 'A reference page listing all the contracts deployed concerning Lisk.'
+description: '**Halaman referensi yang mencantumkan semua kontrak yang diluncurkan terkait Lisk.**'
keywords:
[
'Lisk',
@@ -16,24 +16,24 @@ keywords:
]
---
-# Contracts
-A reference page that includes information about all contracts deployed on various networks.
+# Kontrak
+Halaman referensi yang mencakup informasi tentang semua kontrak yang diluncurkan pada berbagai jaringan.
-## Ethereum network (L1)
+## Jaringan Ethereum (L1)
-Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepolia Testnet** are as follows.
+Detail kontrak pintar yang diluncurkan di π’ **Ethereum Mainnet** dan π‘ **Sepolia Testnet** adalah sebagai berikut.
- Name of Contract |
- Description |
- Contract Address |
+ Nama Kontrak |
+ Deskripsi |
+ Alamat Kontrak |
ProxyAdmin |
- Owner of AddressManager, Admin of LiskPortal, SystemConfig, L2OutputOracle, L1StandardBridge. |
+ Pemilik (_Owner_) dari AddressManager, Admin of LiskPortal, SystemConfig, L2OutputOracle, L1StandardBridge. |
[0xeC432c4F1d0E12737f3a42a459B84848Af979b2d](https://etherscan.io/address/0xeC432c4F1d0E12737f3a42a459B84848Af979b2d) |
π’ |
@@ -44,7 +44,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
SystemConfig |
- It contains configuration parameters such as the Sequencer address, the L2 gas limit, and the unsafe block signer address. |
+ Berisi parameter konfigurasi seperti alamat Sequencer, batas gas L2, dan alamat penandatangan blok yang tidak aman. |
[0x05f23282FFDCA8286E4738C1aF79079f3d843750](https://etherscan.io/address/0x05f23282ffdca8286e4738c1af79079f3d843750) |
π’ |
@@ -55,7 +55,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
AddressManager |
- The Address Manager is a built-in actor that manages Ethereum's address space. |
+ AddressManager adalah aktor bawaan yang mengelola ruang alamat Ethereum. |
[0x2dF7057d3F25212E51aFEA8dA628668229Ea423f](https://etherscan.io/address/0x2dF7057d3F25212E51aFEA8dA628668229Ea423f) |
π’ |
@@ -66,7 +66,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L1ERC721Bridge |
- Handles the sending and receiving of ERC 721 tokens between L1 and L2. |
+ Mengelola pengiriman dan penerimaan token ERC-721 antara L1 dan L2. |
[0x3A44A3b263FB631cdbf25f339e2D29497511A81f](https://etherscan.io/address/0x3A44A3b263FB631cdbf25f339e2D29497511A81f) |
π’ |
@@ -77,7 +77,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L2OutputOracle |
- It contains a list of proposed state roots that the Proposers assert to be a result of block execution. |
+ Berisi daftar root _state_ yang diusulkan oleh Proposer yang mereka klaim sebagai hasil dari eksekusi blok. |
[0x113cB99283AF242Da0A0C54347667edF531Aa7d6](https://etherscan.io/address/0x113cB99283AF242Da0A0C54347667edF531Aa7d6) |
π’ |
@@ -88,7 +88,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
OptimismPortal |
- It is the main entry point for depositing funds from L1 to L2. It also allows proving and finalizing withdrawals. |
+ Ini adalah titik masuk utama untuk menyetor dana dari L1 ke L2. Selain itu, kontrak ini memungkinkan pembuktian dan penyelesaian penarikan. |
[0x26dB93F8b8b4f7016240af62F7730979d353f9A7](https://etherscan.io/address/0x26dB93F8b8b4f7016240af62F7730979d353f9A7) |
π’ |
@@ -99,7 +99,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L1StandardBridge |
- It is the main entry point for depositing ERC20 tokens from L1 to L2. This contract can store any token. |
+ Ini adalah titik masuk utama untuk menyetor token ERC20 dari L1 ke L2. Kontrak ini dapat menyimpan token apa pun. |
[0x2658723Bf70c7667De6B25F99fcce13A16D25d08](https://etherscan.io/address/0x2658723Bf70c7667De6B25F99fcce13A16D25d08) |
π’ |
@@ -110,7 +110,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
ProtocolVersions |
- It is used to manage superchain protocol version information. |
+ Kontrak ini digunakan untuk mengelola informasi versi protokol superchain. |
[0xDd9C27910327d3f4A4007Ad8f7B53332DB6f1079](https://etherscan.io/address/0xDd9C27910327d3f4A4007Ad8f7B53332DB6f1079) |
π’ |
@@ -121,7 +121,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L1CrossDomainMessenger |
- Sends messages from L1 to L2 and relays messages from L2 onto L1. |
+ Mengirim pesan dari L1 ke L2 dan meneruskan (_relay_) pesan dari L2 ke L1. |
[0x31B72D76FB666844C41EdF08dF0254875Dbb7edB](https://etherscan.io/address/0x31B72D76FB666844C41EdF08dF0254875Dbb7edB) |
π’ |
@@ -132,7 +132,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
OptimismMintableERC20Factory |
- It is responsible for creating ERC20 contracts on L1 that can be used for depositing native L2 tokens into. |
+ Kontrak ini bertanggung jawab untuk membuat kontrak ERC20 di L1 yang dapat digunakan untuk menyetor token native L2. |
[0xc1dA06CC5DD5cE23bABa924463de7F762039252d](https://etherscan.io/address/0xc1dA06CC5DD5cE23bABa924463de7F762039252d) |
π’ |
@@ -143,7 +143,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L1LiskToken |
- Contains the implementation of LSK as an ERC20 token. |
+ Berisi implementasi LSK sebagai token ERC20. |
[0x6033F7f88332B8db6ad452B7C6D5bB643990aE3f](https://etherscan.io/address/0x6033f7f88332b8db6ad452b7c6d5bb643990ae3f) |
π’ |
@@ -154,7 +154,7 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
L1VestingWallet |
- This contract handles the Vesting functionality of the LSK token for the Ethereum network. |
+ Kontrak ini mengelola fungsi _vesting_ untuk token LSK pada jaringan Ethereum. |
[0xd590c2e71739c551eba7aebe00e7855df4cf5fb7](https://etherscan.io/address/0xd590c2e71739c551eba7aebe00e7855df4cf5fb7) |
π’ |
@@ -167,21 +167,21 @@ Details of smart contracts deployed on π’ **Ethereum Mainnet** and π‘ **Sepo
-## Lisk network (L2)
+## Jaringan Lisk (L2)
-### Predeploys on Lisk
+### Pra-Peluncuran pada Lisk
-A predeployed contract is included in the L2 genesis state, and it exists from the very beginning of the blockchain.
-On Lisk Network, these contracts are located at specific addresses that are determined in advance and are part of the genesis state.
-For more information on Predeploys, see [Predeploys' README](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/predeploys.md).
+Kontrak prapeluncuran disertakan dalam _state_ genesis L2, dan ada sejak awal blockchain.
+Di jaringan Lisk, kontrak ini terletak di alamat tertentu yang telah ditentukan sebelumnya dan merupakan bagian dari _state_ genesis.
+Untuk informasi lebih lanjut tentang Prapeluncuran, lihat [README Prapeluncuran](https://github.com/ethereum-optimism/specs/blob/main/specs/protocol/predeploys.md).
-Details of **predeployed** contracts deployed on π΅ **Lisk Mainnet** and π£ **Lisk Sepolia Testnet** are as follows.
+Detail kontrak **prapeluncuran** yang diluncurkan pada π΅ **Lisk Mainnet** dan π£ **Lisk Sepolia Testnet** adalah sebagai berikut.
- Name of Contract |
- Contract Address |
+ Nama Kontrak |
+ Alamat Kontrak |
@@ -364,22 +364,22 @@ Details of **predeployed** contracts deployed on π΅ **Lisk Mainnet** and π£
-### Lisk features-specific contracts
+### Kontrak di Lisk yang _features-specific_
-Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet** and π£ **Lisk Sepolia Testnet** are as follows.
+Detail kontrak Lisk yang **_features-specific_ Lisk** yang diluncurkan pada π΅ **Lisk Mainnet** dan π£ **Lisk Sepolia Testnet** adalah sebagai berikut.
- Name of Contract |
- Description |
- Contract Address |
+ Nama Kontrak |
+ Deksripsi |
+ Alamat Kontrak |
L2Airdrop |
- L2Airdrop is an implementation of the Lisk v4 migration airdrop on L2. It is responsible for the airdrop computation and distribution of LSK tokens to the recipient's accounts that have migrated to L2. |
+ L2Airdrop adalah implementasi airdrop migrasi Lisk v4 di L2. Kontrak ini bertanggung jawab untuk perhitungan dan distribusi token LSK ke akun penerima yang telah bermigrasi ke L2. |
[0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC](https://blockscout.lisk.com/address/0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC) |
π΅ |
@@ -390,7 +390,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Claim (Proxy) |
- Proxy contract for claiming LSK tokens from the legacy Lisk chain and recieve the appropriate amount on Lisk L2. |
+ Kontrak proxy untuk mengklaim token LSK dari rantai legacy Lisk dan menerima jumlah yang sesuai di Lisk L2. |
[0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC](https://blockscout.lisk.com/address/0xC7315f4FaaB2F700fc6b4704BB801c46ff6327AC) |
π΅ |
@@ -401,7 +401,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Claim (Implementation) |
- Enables users to claim their LSK tokens from the legacy Lisk chain and recieve the appropriate amount on Lisk L2 using Merkle proofs, with support for both regular and multisig accounts. |
+ Memungkinkan pengguna untuk mengklaim token LSK mereka dari rantai legacy Lisk dan menerima jumlah yang sesuai di Lisk L2 menggunakan bukti _Merkle_, dengan dukungan untuk akun reguler maupun _multisig_. |
[0x60790Dc2d45BaA8B36282889569BbB301F4D0c41](https://blockscout.lisk.com/address/0x60790Dc2d45BaA8B36282889569BbB301F4D0c41) |
π΅ |
@@ -412,7 +412,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Governor (Proxy) |
- Proxy contract for the governance-related operations of Lisk L2. |
+ Kontrak proxy untuk operasi terkait tata kelola di Lisk L2. |
[0x58a61b1807a7bDA541855DaAEAEe89b1DDA48568](https://blockscout.lisk.com/address/0x58a61b1807a7bDA541855DaAEAEe89b1DDA48568) |
π΅ |
@@ -423,7 +423,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Governor (Implementation) |
- Handles the governance-related operations of Lisk L2. |
+ Mengelola operasi yang terkait dengan tata kelola di Lisk L2. |
[0x18a0b8c653c291D69F21A6Ef9a1000335F71618e](https://blockscout.lisk.com/address/0x18a0b8c653c291D69F21A6Ef9a1000335F71618e) |
π΅ |
@@ -434,7 +434,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2LiskToken |
- Interface for the `OptimismMintableERC20` contract. Includes functionalities for minting, burning, querying tokens, and bridging addresses. |
+ _Interface_ untuk kontrak `OptimismMintableERC20`. Mencakup fungsi untuk _minting_, _burning_, memeriksa token, dan _bridging_ alamat. |
[0xac485391EB2d7D88253a7F1eF18C37f4242D1A24](https://blockscout.lisk.com/address/0xac485391EB2d7D88253a7F1eF18C37f4242D1A24) |
π΅ |
@@ -445,7 +445,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2LockingPosition (Proxy) |
- Proxy contract for locking positions. |
+ Kontrak proxy untuk mengunci posisi. |
[0xC39F0C944FB3eeF9cd2556488e37d7895DC77aB8](https://blockscout.lisk.com/address/0xC39F0C944FB3eeF9cd2556488e37d7895DC77aB8) |
π΅ |
@@ -456,7 +456,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2LockingPosition (Implementation) |
- Contract for locking positions. It allows creating, modifying, and removing locking positions. |
+ Kontrak untuk mengunci posisi. Kontrak ini memungkinkan pembuatan, modifikasi, dan penghapusan posisi penguncian. |
[0x6Ad85C3309C976B394ddecCD202D659719403671](https://blockscout.lisk.com/address/0x6Ad85C3309C976B394ddecCD202D659719403671) |
π΅ |
@@ -468,7 +468,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Staking (Proxy) |
- Proxy contract for staking LSK. |
+ Kontrak proxy untuk _staking_ LSK. |
[0xe9FA20Ca1157Fa686e60F1Afc763104F2C794b83](https://blockscout.lisk.com/address/0xe9FA20Ca1157Fa686e60F1Afc763104F2C794b83) |
π΅ |
@@ -479,7 +479,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Staking (Implementation) |
- This contract handles the staking functionality for the L2 network. |
+ Kontrak ini mengelola fungsi _staking_ untuk jaringan L2. |
[0x0ff2D89d01Ce79a0e971E264EdBA1608a8654CEd](https://blockscout.lisk.com/address/0x0ff2D89d01Ce79a0e971E264EdBA1608a8654CEd) |
π΅ |
@@ -491,7 +491,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Reward (Proxy) |
- Proxy contract for managing and handling L2 Staking Rewards. |
+ Kontrak proxy untuk mengelola dan menangani L2 _Staking Rewards_. |
[0xD35ca9577a9DADa7624a35EC10C2F55031f0Ab1f](https://blockscout.lisk.com/address/0xD35ca9577a9DADa7624a35EC10C2F55031f0Ab1f) |
π΅ |
@@ -502,7 +502,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2Reward (Implementation) |
- This contract manages and handles L2 Staking Rewards. |
+ Kontrak ini mengelola dan menangani L2 _Staking Rewards_. |
[0xA82138726caF68901933838135Fb103E08fb858e](https://blockscout.lisk.com/address/0xA82138726caF68901933838135Fb103E08fb858e) |
π΅ |
@@ -513,7 +513,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2TimelockController |
- This contract module acts as a time-locked controller. |
+ Modul kontrak ini berfungsi sebagai pengontrol penguncian waktu (time-locked controller). |
[0x2294A7f24187B84995A2A28112f82f07BE1BceAD](https://blockscout.lisk.com/address/0x2294A7f24187B84995A2A28112f82f07BE1BceAD) |
π΅ |
@@ -524,7 +524,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2VestingWallet |
- This contract handles the Vesting functionality of the LSK token for the L2 network. |
+ Kontrak ini mengelola fungsi _vesting_ untuk token LSK di jaringan L2. |
[0xdF2363BE4644f160EEbFe5AE6F8728e64D8Db211](https://blockscout.lisk.com/address/0xdF2363BE4644f160EEbFe5AE6F8728e64D8Db211) |
π΅ |
@@ -535,7 +535,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2VotingPower (Proxy) |
- Proxy contract for handling voting powers of stakers on Lisk L2 network. |
+ Kontrak proxy untuk menangani hak suara (_voting powers_) para _staker_ di jaringan Lisk L2. |
[0x2eE6Eca46d2406454708a1C80356a6E63b57D404](https://blockscout.lisk.com/address/0x2eE6Eca46d2406454708a1C80356a6E63b57D404) |
π΅ |
@@ -546,7 +546,7 @@ Details of **Lisk features-specific** contracts deployed on π΅ **Lisk Mainnet*
L2VotingPower (Implementation) |
- Contract for handling voting powers, locking positions, etc. of stakers on the Lisk L2 network. |
+ Kontrak untuk menangani hak suara (_voting powers_), penguncian posisi, dan fungsi lainnya oleh _staker_ di jaringan Lisk L2. |
[0x99137F8880fB38e770EB7eF3d68038bC673D58EF](https://blockscout.lisk.com/address/0x99137F8880fB38e770EB7eF3d68038bC673D58EF) |
π΅ |
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Foundry.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Foundry.md
index 7e25e2d2a..150b072ae 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Foundry.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Foundry.md
@@ -1,10 +1,11 @@
---
-title: ... with Foundry
+title: ... menggunakan Foundry
slug: /building-on-lisk/deploying-smart-contract/with-Foundry
-description: "A guide on deploying a smart contract on the Lisk test network using Foundry. Includes instructions for setting up the environment, compiling, and deploying the smart contract."
-keywords: [
+description: "Panduan untuk meluncurkan kontrak pintar di jaringan test Lisk menggunakan Foundry. Termasuk instruksi untuk mengatur environment, mengompilasi, dan meluncurkan kontrak pintar."
+keywords:
+ [
"Foundry",
- "smart contract",
+ "kontrak pintar",
"ERC-20",
"Lisk",
"Lisk test network",
@@ -14,79 +15,80 @@ keywords: [
"Solidity",
"smart contract deployment",
"deploy a smart contract",
- "deploying smart contracts",
- "build on lisk",
- "write smart contract",
- "smart contract development"
- ]
+ "meluncurkan kontrak pintar",
+ "membangun di lisk",
+ "menulis ke kontrak pintar",
+ "pengembangan kontrak pintar",
+ ]
toc_max_heading_level: 4
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Deploying a smart contract with Foundry
+# Meluncurkan kontrak pintar dengan Foundry
-In this guide, we discuss the basics of the [Foundry](https://book.getfoundry.sh/) development toolchain and will describe how to create and deploy a smart contract with Foundry to the **Lisk Sepolia** testnet.
+Panduan ini membahas dasar-dasar _toolchain_ pengembangan [Foundry](https://book.getfoundry.sh/) dan menjelaskan cara membuat serta meluncurkan kontrak pintar dengan Foundry ke testnet **Lisk Sepolia**.
:::note
-You can deploy a contract on **Lisk** mainnet by adopting the same process.
-For deploying to mainnet, ensure that your wallet has enough ETH.
+Anda dapat meluncurkan kontrak di mainnet **Lisk** dengan menggunakan proses yang sama.
+Untuk meluncurkan ke mainnet, pastikan dompet Anda memiliki ETH yang cukup.
-The subsequent text contains commands for both Lisk and Lisk Sepolia for your ease.
-For more information, see the [available Lisk networks](/network-info) and [how to connect a wallet with them](/user/connecting-to-a-wallet).
+Teks berikut mencakup perintah untuk Lisk dan Lisk Sepolia demi kemudahan Anda.
+Untuk informasi lebih lanjut, lihat [jaringan Lisk yang tersedia](/network-info) dan [cara menghubungkan dompet ke jaringan tersebut](/user/connecting-to-a-wallet).
:::
-Foundry is a powerful suite of tools to develop, test, and debug your smart contracts.
-It comprises several individual tools such as:
+Foundry adalah rangkaian _tools_ yang mumpuni untuk mengembangkan, menguji, dan men-_debug_ kontrak pintar Anda.
+Foundry terdiri dari beberapa _tools_ individu seperti:
-- [`forge`](https://book.getfoundry.sh/forge/): is a command-line tool that is shipped with Foundry.
-Forge tests, builds, and deploys your smart contracts.
-- [`cast`](https://book.getfoundry.sh/cast/): is a command-line tool for performing RPC calls e.g., interacting with contracts, sending transactions, and getting onchain data.
-- [`anvil`](https://book.getfoundry.sh/anvil/): is a local testnet node, designed for testing contract behavior from a frontend or over RPC in a local development environment.
-- [`chisel`](https://book.getfoundry.sh/chisel/): is a Solidity [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop), for trying out Solidity snippets on a local or forked network.
+- [`forge`](https://book.getfoundry.sh/forge/): _tools_ berbasis _command-line_ yang disertakan dengan Foundry. _Forge_ digunakan untuk menguji, membangun, dan meluncurkan kontrak pintar Anda.
+- [`cast`](https://book.getfoundry.sh/cast/): _tools_ berbasis _command-line_ untuk melakukan panggilan RPC, seperti berinteraksi dengan kontrak, mengirim transaksi, dan mendapatkan data on-chain.
+- [`anvil`](https://book.getfoundry.sh/anvil/): node testnet lokal, dirancang untuk menguji perilaku kontrak dari frontend atau melalui RPC dalam _environment_ pengembangan lokal.
+- [`chisel`](https://book.getfoundry.sh/chisel/): REPL Solidity ([ReadβEvalβPrint Loop](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)) untuk mencoba potongan kode Solidity pada jaringan lokal atau jaringan yang di-_fork_.
+## Prasyarat
-## Prerequisites
-To build with Foundry, you need:
+Untuk membangun dengan Foundry, Anda memerlukan:
-- A basic understanding of [Solidity](https://soliditylang.org/).
-- Have Foundry installed on your system.
-To do that, perform the following steps:
- - From the command line, run:
+- Pemahaman dasar tentang [Solidity](https://soliditylang.org/).
+- Foundry terinstal pada sistem Anda.
+ Untuk menginstalnya, lakukan langkah-langkah berikut:
+ - Dari command line, jalankan:
```bash
curl -L https://foundry.paradigm.xyz | bash
```
- - After that, to install the latest (nightly) build of Foundry, run:
+ - Setelah itu, untuk menginstal versi terbaru (nightly) dari Foundry, jalankan:
```bash
foundryup
```
-- For more information, see the Foundry Book's [Installation guide](https://book.getfoundry.sh/getting-started/installation).
+- Untuk informasi lebih lanjut, lihat [Panduan Instalasi](https://book.getfoundry.sh/getting-started/installation) di Foundry Book.
-### Wallet funds
+### Dana Dompet
-**Deploying contracts** to the blockchain requires a **gas fee**.
-Therefore, you will need to fund your wallet with ETH to cover such gas fees.
+**Meluncurkan kontrak** ke blockchain memerlukan **biaya gas**.
+Oleh karena itu, Anda perlu mendanai dompet Anda dengan ETH untuk menutupi biaya gas tersebut.
-For this guide, you will be deploying a contract to the Lisk Sepolia Testnet.
+Dalam panduan ini, Anda akan meluncurkan kontrak ke Lisk Sepolia Testnet.
-You can deposit the required tokens by using the [Lisk Sepolia Bridge](https://sepolia-bridge.lisk.com/bridge/lisk-sepolia-testnet).
+Anda dapat men-_deposit_ token yang diperlukan menggunakan [Lisk Sepolia Bridge](https://sepolia-bridge.lisk.com/bridge/lisk-sepolia-testnet).
-In case your wallet doesn't hold enough `SepoliaETH`, use one of the available faucets for the **Ethereum Sepolia** Testnet like [https://sepoliafaucet.com](https://sepoliafaucet.com/) to receive free Testnet ETH.
-Then, use the aforementioned Lisk Bridge to send tokens from the **Ethereum Sepolia Testnet** to the **Lisk Sepolia Testnet**.
+Jika dompet Anda tidak memiliki `SepoliaETH` yang cukup, gunakan salah satu faucet yang tersedia untuk Ethereum Sepolia Testnet seperti [https://sepoliafaucet.com](https://sepoliafaucet.com/) untuk menerima ETH Testnet secara gratis.
+Kemudian, gunakan Lisk Bridge yang disebutkan sebelumnya untuk mengirim token dari **Ethereum Sepolia Testnet** ke **Lisk Sepolia Testnet**.
-## Creating a project
-The first step of deploying smart contracts to Lisk is to set up your development environment by creating a Foundry project.
+## Membuat Proyek
-You can separately create a new directory and then initialize a Foundry project, or you can let Foundry create a directory and initiate a Foundry project by running the following command:
+Langkah pertama dalam meluncurkan kontrak pintar ke Lisk adalah menyiapkan _environment_ pengembangan Anda dengan membuat proyek Foundry.
+
+Anda dapat membuat direktori baru secara terpisah lalu menginisialisasi (_initialize_) proyek Foundry, atau Anda dapat membiarkan Foundry membuat direktori dan menginisialisasi proyek Foundry dengan menjalankan perintah berikut:
```bash
forge init foundry_app && cd foundry_app
```
-This command will create a `foundry_app` and will change the terminal's working directory to the aforementioned folder as well.
+
+Perintah ini akan membuat folder bernama `foundry_app` dan sekaligus mengubah direktori kerja (_working directory_) terminal ke folder tersebut.
-Execution logs of the `forge init` command
+Log Eksekusi Perintah `forge init`
```text
Initializing /XYZ/L2/25/foundry_app/foundry_app...
Installing forge-std in /XYZ/L2/25/foundry_app/foundry_app/lib/forge-std (url: Some("https://github.com/foundry-rs/forge-std"), tag: None)
@@ -110,7 +112,7 @@ Resolving deltas: 100% (130/130), done.
```
-By default, any application built with Foundry will have a similar directory structure to the following:
+Secara default, setiap aplikasi yang dibuat dengan Foundry akan memiliki struktur direktori yang serupa seperti berikut ini:
```bash
.
@@ -128,21 +130,21 @@ By default, any application built with Foundry will have a similar directory str
βββ README.md
```
-For now, delete the files present in the `script/Counter.s.sol`, `src/Counter.sol`, and `test/Counter.t.sol` as we will be creating a contract, and relevant test code ourselves in the following guide.
+Untuk saat ini, hapus file yang ada di `script/Counter.s.sol`, `src/Counter.sol`, dan `test/Counter.t.sol`, karena kita akan membuat kontrak dan kode pengujian sendiri dalam panduan berikutnya.
-### **Creating** the smart contract
+### **Membuat** Kontrak Pintar
-For ease and security, weβll use the `ERC721` contract provided by the [OpenZeppelin Contracts library](https://docs.openzeppelin.com/contracts/5.x/erc721) to create a simple ERC-721 smart contract.
-With OpenZeppelin, we donβt need to write the entire ERC-721 contract.
-Instead, we can import the library contract and use its functions from the get-go.
+Untuk kemudahan dan keamanan, kita akan menggunakan kontrak `ERC721` yang disediakan oleh [OpenZeppelin Contracts library](https://docs.openzeppelin.com/contracts/5.x/erc721) untuk membuat kontrak pintar ERC-721 sederhana.
+Dengan OpenZeppelin, kita tidak perlu menulis keseluruhan kontrak ERC-721.
+Sebaliknya, kita dapat mengimpor kontrak dari library dan langsung menggunakan fungsinya.
-To install the OpenZeppelin Contracts library to your project, run:
+Untuk menginstal OpenZeppelin Contracts library ke proyek Anda, jalankan perintah berikut:
```bash
forge install openzeppelin/openzeppelin-contracts
```
-Inside the `src` folder, create a smart contract called `NFT.sol` and add the code below to the newly created file.
+Di dalam folder `src`, buat sebuah kontrak pintar bernama `NFT.sol` dan tambahkan kode berikut ke dalam file yang baru dibuat.
```sol title="src/NFT.sol"
// SPDX-License-Identifier: MIT
@@ -152,7 +154,7 @@ import "openzeppelin-contracts/contracts/token/ERC721/ERC721.sol";
contract NFT is ERC721 {
uint256 public currentTokenId;
-
+
// The following will create an ERC721 Token called Lisk.
constructor() ERC721("Lisk", "LSK") {}
@@ -165,13 +167,16 @@ contract NFT is ERC721 {
}
```
-### **Compiling** the smart contract
-Once the smart contract's code is ready, it must be compiled using Foundry, to do that, simply run:
+### Mengompilasi Kontrak Pintar
+
+Setelah kode kontrak pintar siap, Anda harus mengompilasinya menggunakan Foundry.
+Untuk melakukannya, cukup jalankan perintah berikut:
```bash
forge build
```
-If the smart contract doesn't have any errors, you will see the following output on the terminal:
+
+Jika kontrak pintar tidak memiliki eror, Anda akan melihat output berikut di terminal:
```text
[β ’] Compiling...
@@ -180,14 +185,14 @@ If the smart contract doesn't have any errors, you will see the following output
Compiler run successful!
```
-### **Testing** the smart contract
+### **Menguji** Kontrak Pintar
-By testing the smart contract, you can verify that the smart contract behaves as expected and that it is free of bugs, before deploying it to Lisk.
+Dengan menguji kontrak pintar, Anda dapat memastikan bahwa kontrak pintar berperilaku sesuai harapan dan tidak ada _bug_ sebelum meluncurkannya ke Lisk.
-Foundry provides a rich testing framework to support you in writing tests for smart contracts.
-See [Tests - Foundry Book](https://book.getfoundry.sh/forge/tests) for examples and references regarding the testing framework.
+Foundry menyediakan banyak _framework testing_ untuk mendukung Anda dalam menulis _test_ untuk kontrak pintar.
+Lihat [Tests - Foundry Book](https://book.getfoundry.sh/forge/tests) untuk contoh dan referensi terkait _framework testing_.
-To test the `NFT` smart contract, create a new file `NFT.t.sol` under the `test/` directory, and add the following content:
+Untuk melakukan _testing_ pada kontrak pintar `NFT`, buat file baru bernama `NFT.t.sol` di dalam direktori `test/`, dan tambahkan konten berikut:
```solidity title="foundry_app/test/NFT.t.sol"
// SPDX-License-Identifier: UNLICENSED
@@ -222,13 +227,13 @@ contract NFTTest is Test {
}
```
-To run the tests, execute the following command. The `-vv` flag will output detailed information about the tests run using the following command.
+Untuk menjalankan _test_, eksekusi perintah berikut. _Flag_ `-vv` akan menghasilkan informasi detail tentang _test_ yang dijalankan menggunakan perintah berikut:
```bash
forge test -vv
-```
+```
-The output should look like this:
+Outputnya seharusnya terlihat seperti ini:
```text
[β ’] Compiling...
@@ -255,19 +260,18 @@ Encountered 1 failing test in test/NFT.t.sol:NFTTest
Encountered a total of 1 failing tests, 1 tests succeeded
```
-The first test: `testMintPass` passed successfully as the criteria for the `mint()` function were met.
-We passed the recipient address to the `mint()` function as required, hence the success.
+_Test_ pertama: `testMintPass` berhasil dijalankan karena kriteria untuk fungsi `mint()` terpenuhi.
+Kita memberikan alamat penerima ke fungsi `mint()` sebagaimana yang diminta, sehingga _test_ berhasil.
-The second test: `testMintFail` failed since we asserted that the addresses of `alice` and `bob` were the same.
-The highlighted log output elaborates on how the assertion was false.
+_Test_ kedua: `testMintFail` gagal karena kita mengasumsikan bahwa alamat `alice` dan `bob` adalah sama.
+_Log output_ yang disorot diatas menjelaskan mengapa asumsi tersebut salah.
-### **Deploying** the smart contract
+### Meluncurkan Smart Contract
-After successfully building the smart contract, you can now deploy it to the Lisk network.
-For this example, we will use the Lisk Sepolia network to deploy the `NFT` contract.
-
-Add the `--verify`, `--verifier`, `--verifier-url`, and the sender account's `--private-key` flag to the `forge create` command to directly verify the smart contract on BlockScout.
+Setelah berhasil membangun kontrak pintar, Anda sekarang dapat meluncurkannya ke jaringan Lisk.
+Untuk contoh ini, kita akan menggunakan jaringan Lisk Sepolia untuk meluncurkan kontrak `NFT`.
+Tambahkan flag `--verify`, `--verifier`, `--verifier-url`, dan `--private-key` dari akun pengirim ke perintah `forge create` untuk langsung memverifikasi kontrak pintar di BlockScout.
@@ -294,11 +298,10 @@ Add the `--verify`, `--verifier`, `--verifier-url`, and the sender account's `--
-
-If the deployment is successful, the output should look like the following:
+Jika peluncuran berhasil, outputnya akan terlihat seperti berikut:
```text
-# The aforementioned command will first deploy the contract and display the following output:
+# Perintah yang disebutkan di atas akan terlebih dahulu meluncurkan kontrak dan menampilkan output berikut:
// highlight-start
[β ] Compiling...
@@ -308,7 +311,7 @@ Deployed to: 0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5
Transaction hash: 0xf465528f43e5cbc9b5206e46048feba0b920179813c3eb8c3bdbccbfd13d731e
// highlight-end
-# Once the contract is deployed successfully, the above-mentioned command will then verify the contract as well!
+# Setelah kontrak berhasil diluncurkan, perintah yang disebutkan di atas akan langsung memverifikasi kontrak tersebut!
// highlight-start
Starting contract verification...
@@ -330,28 +333,28 @@ Contract successfully verified
// highlight-end
```
-After the smart contract is deployed and verified, you can interact with it by calling its public functions.
+Setelah kontrak pintar berhasil diluncurkan dan diverifikasi, Anda dapat berinteraksi dengan memanggil fungsi-fungsi publiknya.
-### **Verifying** the smart contract
+### **Memverifikasi** Kontrak Pintar
-Each deployed contract should be verified so that users and other developers can inspect the source code, and be sure that it matches the deployed bytecode on the blockchain.
+Setiap kontrak yang diluncurkan harus diverifikasi agar pengguna dan developer lainnya dapat memeriksa _source code_-nya dan memastikan bahwa _source code_ tersebut sesuai dengan _bytecode_ yang diluncurkan di blockchain.
-Further, if you want to allow others to interact with your contract using the block explorer such as Blockscout's [Read contract](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=read_contract) and [Write Contract](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract) interfaces, it first needs to be verified.
+Selain itu, jika Anda ingin orang lain dapat berinteraksi dengan kontrak Anda melalui penjelajah blockchain seperti _interface_ [Read Contract](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=read_contract) dan [Write Contract](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract) di Blockscout, kontrak tersebut harus diverifikasi terlebih dahulu.
-
-The above contract has **already been verified**, so you should be able to view your version on a block explorer already, but we'll still walk through how to verify a contract on the Lisk Sepolia testnet.
+Kontrak di atas **sudah diverifikasi**, sehingga Anda seharusnya dapat melihat versi Anda di penjelajah blockchain, tetapi kami tetap akan menjelaskan langkah-langkah untuk memverifikasi kontrak di Lisk Sepolia testnet.
:::info
-You can't re-verify a contract identical to one that has already been verified. If you attempt to do so, such as verifying the above contract, you'll get an error similar to:
+Anda tidak dapat memverifikasi ulang kontrak yang identik dengan yang sudah diverifikasi. Jika Anda mencoba melakukannya, seperti memverifikasi kontrak di atas, Anda akan mendapatkan pesan error seperti:
```text
Start verifying contract `0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5` deployed on 4202
Contract [src/NFT.sol:NFT] "0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5" is already verified. Skipping verification.
-```
+```
+
:::
-In case your smart contract isn't verified, grab the deployed address and run:
+Jika kontrak pintar Anda belum diverifikasi, ambil alamat kontrak yang sudah diluncurkan dan jalankan:
@@ -376,18 +379,18 @@ In case your smart contract isn't verified, grab the deployed address and run:
-You should see an output similar to the following:
+Anda akan melihat output yang serupa dengan berikut:
- ```
+```
Starting contract verification...
Waiting for blockscout to detect contract deployment...
Start verifying contract `0xcCaA1C3eb8FEb5b09a5Eac1359BC4c70E18e29d9` deployed on 4202
Submitting verification for [src/NFT.sol:NFT] 0xcCaA1C3eb8FEb5b09a5Eac1359BC4c70E18e29d9.
Submitted contract for verification:
- Response: `OK`
- GUID: `ccaa1c3eb8feb5b09a5eac1359bc4c70e18e29d965e5c95a`
- URL: https://sepolia-blockscout.lisk.com/address/0xccaa1c3eb8feb5b09a5eac1359bc4c70e18e29d9
+ Response: `OK`
+ GUID: `ccaa1c3eb8feb5b09a5eac1359bc4c70e18e29d965e5c95a`
+ URL: https://sepolia-blockscout.lisk.com/address/0xccaa1c3eb8feb5b09a5eac1359bc4c70e18e29d9
Contract verification status:
Response: `OK`
Details: `Pending in queue`
@@ -397,27 +400,26 @@ Details: `Pass - Verified`
Contract successfully verified
```
-Use the contract's address e.g., `0xcCaA1C3eb8FEb5b09a5Eac1359BC4c70E18e29d9` to search for your contract on [Blockscout](https://sepolia-blockscout.lisk.com/) to confirm that it is verified.
-
+Gunakan alamat kontrak, misalnya `0xcCaA1C3eb8FEb5b09a5Eac1359BC4c70E18e29d9`, untuk mencari kontrak Anda di [Blockscout](https://sepolia-blockscout.lisk.com/) dan memastikan bahwa kontrak tersebut telah diverifikasi.
-## Interacting with the Smart Contract
+## Berinteraksi dengan Kontrak Pintar
-As mentioned earlier, if you verified the smart contract on Blocksout, you can use the `Read contract` and `Write contract` sections under the `Contract` tab to interact with the deployed contract.
+Seperti yang disebutkan sebelumnya, jika Anda telah memverifikasi kontrak pintar di Blockscout, Anda dapat menggunakan bagian `Read contract` dan `Write contract` di bawah tab `Contract` untuk berinteraksi dengan kontrak yang telah diluncurkan.
-The `Read contract` tab can be used without connecting a wallet, however, to use the `Write contract` tab, you'll need to connect your wallet first.
-You can do that by clicking the `Connect wallet` button.
+Tab `Read contract` dapat digunakan tanpa menghubungkan dompet, namun, untuk menggunakan tab `Write contract`, Anda harus terlebih dahulu menghubungkan dompet Anda.
+Anda dapat melakukannya dengan mengklik tombol `Connect wallet`.
-### Using **cast** for interaction
+### Menggunakan **cast** untuk Berinteraksi
-With Foundry's rich command-line tool: [`cast`](https://book.getfoundry.sh/cast/) it is possible to interact with any deployed contract whether it is reading or writing data on the blockchain.
-Let's perform a call without publishing a transaction (a read), then sign and publish a transaction (a write) to the deployed contract.
+Dengan _tool_ command-line dari Foundry: [`cast`](https://book.getfoundry.sh/cast/), Anda dapat berinteraksi dengan kontrak yang telah diluncurkan, baik untuk membaca maupun menulis data di blockchain.
+Mari kita lakukan panggilan tanpa mempublikasikan transaksi (_read_), lalu menandatangani (_sign_) dan mempublikasikan transaksi (_write_) ke kontrak yang telah diluncurkan.
-#### Performing a call
+#### Melakukan Panggilan (_call_)
-A key component of the Foundry toolkit, `cast` enables us to interact with contracts, send transactions, and get onchain data using Ethereum RPC calls.
-First, we will perform a call from an account, without publishing a transaction.
+Sebagai salah satu komponen utama dari toolkit Foundry, `cast` memungkinkan kita untuk berinteraksi dengan kontrak, mengirim transaksi, dan mendapatkan data on-chain menggunakan panggilan RPC Ethereum.
+Pertama, kita akan melakukan panggilan dari sebuah akun tanpa mempublikasikan transaksi.
-Fill out the following `` and then, run the command:
+Isi `` berikut, lalu jalankan perintah:
@@ -432,14 +434,14 @@ Fill out the following `` and then, run the command:
-You should receive `0x0000000000000000000000000000000000000000000000000000000000000000` in response, which equals `0` in hexadecimal.
-This makes sense as you've only deployed the NFT contract for now, however, no NFTs have been minted yet, and therefore your account's balance is zero.
+Anda akan menerima respons berupa `0x0000000000000000000000000000000000000000000000000000000000000000`, yang setara dengan `0` dalam format heksadesimal.
+Hal ini masuk akal karena Anda baru saja meluncurkan kontrak NFT, namun belum ada NFT yang dicetak (_minted_), sehingga saldo akun Anda adalah nol.
-#### Signing and sending a transaction
+#### Menandatangani (_signing_) dan Mengirim Transaksi
-Now let's sign and send a transaction, calling the `mint(address)` function on the `NFT` contract we just deployed.
+Sekarang, mari kita tandatangani dan kirim transaksi dengan memanggil fungsi `mint(address)` pada kontrak `NFT` yang baru saja kita luncurkan.
-Again, fill out the following `` and then, run the command:
+Isi `` berikut, lalu jalankan perintah:
@@ -454,24 +456,22 @@ Again, fill out the following `` and then, run the command:
-
-
:::info
-As the `cast send` command writes data on the blockchain, it needs a sender account's private key to be passed to the `--private-key` flag.
-The transaction will be sent successfully if the sender account has sufficient funds.
+Karena perintah `cast send` menulis data ke blockchain, maka diperlukan _private key_ akun pengirim yang harus diberikan ke flag `--private-key`.
+Transaksi akan berhasil dikirim jika akun pengirim memiliki dana yang cukup.
-The aforesaid is not required for `cast call` command, because that only retrieves already published data from the smart contract.
+Hal ini tidak diperlukan untuk perintah `cast call`, karena perintah tersebut hanya mengambil data yang sudah dipublikasikan dari kontrak pintar.
:::
-If the transaction execution is successful, Foundry will respond with information about the transaction, including the `blockNumber`, `gasUsed`, `transactionHash`, and much more.
+Jika eksekusi transaksi berhasil, Foundry akan memberikan respons berisi informasi tentang transaksi, termasuk `blockNumber`, `gasUsed`, `transactionHash`, dan banyak lagi.
```text
blockHash 0xfa9d32794b0fc9c1a10d39c5289613dfe80b55f8ead06475ca877a389e088e67
// highlight-next-line
blockNumber 2165375
-contractAddress
+contractAddress
cumulativeGasUsed 137472
effectiveGasPrice 3000000253
from 0x5e1A92F84cA1CE280B3Cb29d79C3368f45b41EBB
@@ -479,7 +479,7 @@ from 0x5e1A92F84cA1CE280B3Cb29d79C3368f45b41EBB
gasUsed 93597
logs [{"address":"0x108872f713a27bc22ca1db8ceefcac8cbeddf9e5","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000488ba3c013020bd1712ed6a1997c4212d9711954","0x0000000000000000000000000000000000000000000000000000000000000001"],"data":"0x","blockHash":"0xfa9d32794b0fc9c1a10d39c5289613dfe80b55f8ead06475ca877a389e088e67","blockNumber":"0x210a7f","transactionHash":"0x76750ee1aaeed89c8f165d6f547002eb3bb833a142f73d63c1c3c9980fce8796","transactionIndex":"0x1","logIndex":"0x0","removed":false}]
logsBloom 0x00000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000200000000008000000000000000000040000000000000000000000000000020000000000000000080800000000000000000000000010000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000400000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000
-root
+root
status 1
// highlight-next-line
transactionHash 0x76750ee1aaeed89c8f165d6f547002eb3bb833a142f73d63c1c3c9980fce8796
@@ -491,8 +491,8 @@ l1GasPrice "0x6d49929"
l1GasUsed "0x8a4"
```
-Finally, you can confirm the minting by [performing the call](#performing-a-call) again.
-We should see that our balance increased from `0` to `1`.
+Terakhir, Anda dapat mengonfirmasi proses minting dengan [melakukan panggilan](#melakukan-panggilan-call) lagi.
+Anda seharusnya melihat saldo Anda meningkat dari `0` menjadi `1`.
@@ -507,9 +507,9 @@ We should see that our balance increased from `0` to `1`.
-And the response: `0x0000000000000000000000000000000000000000000000000000000000000001` (`1` in hex) βΒ congratulations, you deployed a contract and minted an NFT with Foundry!
+Dan responsnya: `0x0000000000000000000000000000000000000000000000000000000000000001` (`1` dalam format heksadesimal) β selamat, Anda berhasil meluncurkan kontrak dan mencetak NFT dengan Foundry!
-See the minted token for this guide on the [Blockscout explorer](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5).
+Lihat token yang telah dicetak dalam panduan ini di [Blockscout explorer](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5).
-That's it! Although this is just the tip of the iceberg, there is a lot more to learn about Foundry.
-For all things Foundry, check out the [Foundry book](https://book.getfoundry.sh/), or head to the official Telegram [dev chat](https://t.me/foundry_rs) or [support chat](https://t.me/foundry_support).
\ No newline at end of file
+Itu dia! Meskipun ini hanya permulaan, masih banyak hal yang dapat dipelajari tentang Foundry.
+Untuk semua hal tentang Foundry, kunjungi [Foundry book](https://book.getfoundry.sh/), atau bergabunglah dengan [dev chat](https://t.me/foundry_rs) atau [support chat](https://t.me/foundry_support) resmi di Telegram.
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Hardhat.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Hardhat.md
index 45f556283..855144fff 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Hardhat.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-Hardhat.md
@@ -1,87 +1,90 @@
---
-title: ... with Hardhat
+title: ... menggunakan Hardhat
slug: /building-on-lisk/deploying-smart-contract/with-Hardhat
-description: "A guide on deploying a smart contract on the Lisk test network using Hardhat. Includes instructions for setting up the environment, compiling, and deploying the smart contract."
-keywords: [
+description: "Panduan untuk meluncurkan kontrak pintar di jaringan test Lisk menggunakan Hardhat. Termasuk instruksi untuk mengatur environment, mengompilasi, dan meluncurkan kontrak pintar."
+keywords:
+ [
"Hardhat",
- "smart contract",
- "ERC-721", "Lisk",
- "Lisk test network",
- "Lisk testnet",
+ "kontrak pintar",
+ "ERC-721",
+ "Lisk",
+ "jaringan test Lisk",
+ "testnet Lisk",
"Node.js",
"Solidity",
"smart contract deployment",
"deploy a smart contract",
- "deploying smart contracts",
- "build on lisk",
- "write smart contract",
- "smart contract development"
- ]
+ "meluncurkan kontrak pintar",
+ "membangun di lisk",
+ "menulis ke kontrak pintar",
+ "pengembangan kontrak pintar",
+ ]
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Deploying a smart contract with Hardhat
-## Prerequisites
+# Meluncurkan Kontrak Pintar dengan Hardhat
+
+## Prasyarat
### Node v18+
-This guide requires you to have Node version 18+ installed.
+Panduan ini memerlukan Node versi 18+ yang sudah terinstal.
-- Download [Node v18+](https://nodejs.org/en/download/)
+- _Download_ [Node v18+](https://nodejs.org/en/download/)
-If you are using `nvm` to manage your node versions, you can just run `nvm install 18`.
+Jika Anda menggunakan `nvm` untuk mengelola versi Node Anda, cukup jalankan perintah: `nvm install 18`.
-### Wallet funds
+### Dana Dompet
-**Deploying contracts** to the blockchain requires a **gas fee**.
-Therefore, you will need to fund your wallet with ETH to cover those gas fees.
+**Meluncurkan kontrak** ke blockchain memerlukan **biaya gas**.
+Oleh karena itu, Anda perlu mendanai dompet Anda dengan ETH untuk menutupi biaya gas tersebut.
-For this guide, you will be deploying a contract to the Lisk Sepolia Testnet.
+Dalam panduan ini, Anda akan meluncurkan kontrak ke Lisk Sepolia Testnet.
-You can deposit the required tokens by using the [Lisk Bridge](https://sepolia-bridge.lisk.com/bridge/lisk-sepolia-testnet).
+Anda dapat men-_deposit_ token yang diperlukan menggunakan [Lisk Bridge](https://sepolia-bridge.lisk.com/bridge/lisk-sepolia-testnet).
-In case your wallet doesn't hold enough `SepoliaETH`, use one of the available faucets for the **Ethereum Sepolia** Testnet like [https://sepoliafaucet.com](https://sepoliafaucet.com/) to receive free Testnet ETH.
-Then, use the aforementioned Lisk Bridge to send tokens from the **Ethereum Sepolia Testnet** to the **Lisk Sepolia Testnet**.
+Jika dompet Anda tidak memiliki `SepoliaETH` yang cukup, gunakan salah satu faucet yang tersedia untuk **Ethereum Sepolia** Testnet, seperti [https://sepoliafaucet.com](https://sepoliafaucet.com/) untuk menerima ETH Testnet secara gratis.
+Kemudian, gunakan Lisk Bridge yang disebutkan sebelumnya untuk mengirim token dari **Ethereum Sepolia Testnet** ke **Lisk Sepolia Testnet**.
:::note
-You can deploy a contract on Lisk Mainnet by adopting the same process.
-For deploying to mainnet, ensure that your wallet has enough ETH.
+Anda dapat meluncurkan kontrak di Lisk Mainnet dengan menggunakan proses yang sama.
+Untuk meluncurkan ke mainnet, pastikan dompet Anda memiliki cukup ETH.
-The subsequent text contains commands for both Lisk and Lisk Sepolia for your ease.
-For more information, see the [available Lisk networks](/network-info) and [how to connect a wallet with them](/user/connecting-to-a-wallet).
+Teks berikut mencakup perintah untuk Lisk dan Lisk Sepolia demi kemudahan Anda.
+Untuk informasi lebih lanjut, lihat [jaringan Lisk yang tersedia](/network-info) dan [cara menghubungkan dompet ke jaringan tersebut](/user/connecting-to-a-wallet).
:::
+## Membuat Proyek
-## Creating a project
-Before you can begin deploying smart contracts to Lisk, you need to set up your development environment by creating a Node.js project.
+Sebelum Anda dapat mulai meluncurkan kontrak pintar ke Lisk, Anda perlu menyiapkan _environment_ pengembangan dengan membuat proyek Node.js.
-To create a new Node.js project, run:
+Untuk membuat proyek Node.js baru, jalankan perintah berikut:
```bash
npm init --y
```
-Next, you will need to install [Hardhat](https://hardhat.org/tutorial) and create a new Hardhat project.
+Selanjutnya, Anda perlu menginstal [Hardhat](https://hardhat.org/tutorial) dan membuat proyek Hardhat baru.
-To install Hardhat, run:
+Untuk menginstal Hardhat, jalankan perintah berikut:
```bash
npm install --save-dev hardhat
```
-To create a new Hardhat project, run:
+Untuk membuat proyek Hardhat baru, jalankan perintah berikut:
```bash
npx hardhat
```
-Select `Create a TypeScript project` then press _Enter_ to confirm the project root.
+Pilih `Create a TypeScript project`, lalu tekan _Enter_ untuk mengonfirmasi direktori proyek.
-Select `y` for both adding a `.gitignore` and loading the sample project.
-Optionally, you can decide to share crash reports and usage data with HardHat.
+Pilih `y` untuk menambahkan file `.gitignore` dan memuat proyek contoh.
+Secara opsional, Anda dapat memutuskan untuk membagikan laporan crash dan data penggunaan dengan Hardhat.
```
β What do you want to do? Β· Create a TypeScript project
@@ -91,37 +94,37 @@ Optionally, you can decide to share crash reports and usage data with HardHat.
β Do you want to install this sample project's dependencies with npm (@nomicfoundation/hardhat-toolbox)? (Y/n) Β· y
```
-It will take a moment for the project setup process to complete.
+Proses penyiapan proyek akan memakan waktu beberapa saat hingga selesai.
-## Configuring Hardhat with Lisk
+## Mengonfigurasi Hardhat dengan Lisk
-In order to deploy smart contracts to the Lisk network, you will need to configure your Hardhat project and add the Lisk network.
+Untuk meluncurkan kontrak pintar ke jaringan Lisk, Anda perlu mengonfigurasi proyek Hardhat Anda dan menambahkan jaringan Lisk.
-This example uses [dotenv](https://www.npmjs.com/package/dotenv) to load the `WALLET_KEY` environment variable from a `.env` file to `process.env.WALLET_KEY`.
-You should use a similar method to avoid hardcoding your private keys within your source code.
+Contoh ini menggunakan [dotenv](https://www.npmjs.com/package/dotenv) untuk memuat variabel environment `WALLET_KEY` dari file `.env` ke `process.env.WALLET_KEY`.
+Anda sebaiknya menggunakan metode serupa untuk menghindari menuliskan _private key_ secara langsung di dalam _source code_ Anda.
```bash
npm install --save-dev dotenv
```
-Once you have `dotenv` installed, create a `.env` file with the following content:
+Setelah Anda menginstal `dotenv`, buat file `.env` dengan konten berikut:
```
WALLET_KEY=
```
-Substitute `` with the private key for your wallet.
+Ganti `` dengan _private key_ dompet Anda.
:::caution
-`WALLET_KEY` is the private key of the wallet to use when deploying a contract.
-Follow the instructions of your wallet on how to get your private key.
-E.g. for **MetaMask**, please follow [these instructions](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key).
-**It is critical that you do NOT commit this to a public repo**
+`WALLET_KEY` adalah _private key_ dari dompet yang akan digunakan saat meluncurkan kontrak.
+Ikuti instruksi dari dompet Anda untuk mendapatkan _private key_.
+Misalnya, untuk **MetaMask**, silakan ikuti [instruksi ini](https://support.metamask.io/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key).
+**Sangat penting untuk memastikan bahwa Anda TIDAK meng-upload _private key_ ini ke repositori publik.**
:::
-To configure Hardhat to use Lisk, add Lisk as a network to your project's `hardhat.config.ts` file:
+Untuk mengonfigurasi Hardhat agar menggunakan Lisk, tambahkan Lisk sebagai jaringan ke file `hardhat.config.ts` di proyek Anda:
@@ -134,7 +137,7 @@ To configure Hardhat to use Lisk, add Lisk as a network to your project's `hardh
const config: HardhatUserConfig = {
solidity: "0.8.23",
networks: {
- // for mainnet
+ // untuk mainnet
'lisk': {
url: 'https://rpc.api.lisk.com',
accounts: [process.env.WALLET_KEY as string],
@@ -145,6 +148,7 @@ To configure Hardhat to use Lisk, add Lisk as a network to your project's `hardh
export default config;
```
+
```ts title="hardhat.config.ts"
@@ -156,7 +160,7 @@ To configure Hardhat to use Lisk, add Lisk as a network to your project's `hardh
const config: HardhatUserConfig = {
solidity: "0.8.23",
networks: {
- // for testnet
+ // untuk testnet
'lisk-sepolia': {
url: 'https://rpc.sepolia-api.lisk.com',
accounts: [process.env.WALLET_KEY as string],
@@ -167,23 +171,25 @@ To configure Hardhat to use Lisk, add Lisk as a network to your project's `hardh
export default config;
```
+
-## Creating the contract
-For ease and security, weβll use the `ERC721` interface provided by the [OpenZeppelin Contracts library](https://docs.openzeppelin.com/contracts/5.x/) to create an NFT smart contract.
-With OpenZeppelin, we donβt need to write the whole ERC-721 interface. Instead, we can import the library contract and use its functions.
+## Membuat Kontrak
-To add the OpenZeppelin Contracts library to your project, run:
+Untuk kemudahan dan keamanan, kita akan menggunakan _interface_ `ERC721` yang disediakan oleh [OpenZeppelin Contracts library](https://docs.openzeppelin.com/contracts/5.x/) untuk membuat kontrak pintar NFT.
+Dengan OpenZeppelin, kita tidak perlu menulis keseluruhan _interface_ ERC-721. Sebaliknya, kita dapat mengimpor kontrak dari library dan menggunakan fungsinya.
+
+Untuk menambahkan libarry OpenZeppelin Contracts ke proyek Anda, jalankan perintah berikut:
```bash
npm install --save @openzeppelin/contracts
```
-In your project, delete the `contracts/Lock.sol` contract that was generated with the project.
-(You can also delete the `test/Lock.ts` test file, but you should add your own tests ASAP!).
+Di proyek Anda, hapus kontrak `contracts/Lock.sol` yang dihasilkan saat proyek dibuat.
+(Anda juga dapat menghapus file _test_ `test/Lock.ts`, tetapi Anda sebaiknya segera menambahkan _test_ Anda sendiri!).
-Add the code below to a new file called `contracts/NFT.sol`.
+Tambahkan kode berikut ke file baru bernama `contracts/NFT.sol`.
```sol title="contracts/NFT.sol"
// SPDX-License-Identifier: MIT
@@ -204,20 +210,21 @@ contract NFT is ERC721 {
}
```
-## Compiling the smart contract
-To compile the contract using Hardhat, simply run:
+## Mengompilasi Smart Contract
+
+Untuk mengompilasi kontrak menggunakan Hardhat, cukup jalankan perintah berikut:
```bash
npx hardhat compile
```
-After successful compilation, you should see a new folder `artifacts/`, which contains the [compilation artifacts](https://hardhat.org/hardhat-runner/docs/advanced/artifacts).
+Setelah kompilasi berhasil, Anda akan melihat folder baru bernama `artifacts/`, yang berisi [artefak kompilasi](https://hardhat.org/hardhat-runner/docs/advanced/artifacts).
-## Deploying the smart contract
+## Meluncurkan Smart Contract
-Once your contract has been successfully compiled, you can deploy the contract to the Lisk Sepolia test network.
+Setelah kontrak Anda berhasil dikompilasi, Anda dapat meluncurkan kontrak ke jaringan test Lisk Sepolia.
-To deploy the contract to the Lisk Sepolia test network, you'll need to modify the `scripts/deploy.ts` in your project:
+Untuk meluncurkan kontrak ke jaringan test Lisk Sepolia, Anda perlu memodifikasi file `scripts/deploy.ts` di proyek Anda:
```ts title="scripts/deploy.ts"
import { ethers } from 'hardhat';
@@ -230,19 +237,18 @@ async function main() {
console.log('NFT Contract Deployed at ' + nft.target);
}
-// We recommend this pattern to be able to use async/await everywhere
-// and properly handle errors.
+// Kami merekomendasikan pattern ini agar dapat menggunakan async/await di seluruh bagian kode.
+// dan menangani error dengan baik.
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
```
-You'll also need Testnet ETH in your wallet.
-See the [Prerequisites](#prerequisites) if you haven't done that yet.
-Otherwise, the deployment attempt will fail.
+Anda juga memerlukan ETH Testnet di dompet Anda.
+Lihat bagian [Prasyarat](#prasyarat) jika Anda belum melakukannya. Jika tidak, upaya peluncuran akan gagal.
-Finally, run:
+Terakhir, jalankan perintah berikut:
@@ -257,32 +263,30 @@ Finally, run:
-
-
-
-The contract will be deployed on the Lisk Sepolia Testnet.
-You can view the deployment status and contract by using a block explorer and searching for the address returned by your deploy script.
-If you're deploying a new or modified contract, you'll need to verify it first.
+Kontrak akan diluncurkan di Lisk Sepolia Testnet.
+Anda dapat melihat status peluncuran dan kontrak dengan menggunakan penjelajah blockchain dan mencari alamat yang dikembalikan oleh skrip peluncuran Anda.
-## Verifying the Smart Contract
+Jika Anda meluncurkan kontrak baru atau yang dimodifikasi, Anda perlu memverifikasinya terlebih dahulu.
-If you want to interact with your contract on the block explorer, you, or someone else needs to verify it first.
-The above contract has already been verified, so you should be able to view your version on a block explorer already.
-For the remainder of this guide, we'll walk through how to verify your contract on the Lisk Sepolia Testnet.
+## Memverifikasi Kontrak Pintar
-In `hardhat.config.ts`, configure Lisk Sepolia as a custom network.
-Add the following to your `HardhatUserConfig`:
+Jika Anda ingin berinteraksi dengan kontrak Anda di penjelajah blockchain, Anda atau orang lain perlu memverifikasinya terlebih dahulu.
+Kontrak di atas sudah diverifikasi, sehingga Anda seharusnya dapat melihat versi Anda di penjelajah blockchain.
+Selebihnya di panduan ini, kami akan menjelaskan langkah-langkah memverifikasi kontrak Anda di Lisk Sepolia Testnet.
+
+Di dalam `hardhat.config.ts`, konfigurasikan Lisk Sepolia sebagai jaringan kustom.
+Tambahkan konfigurasi berikut ke `HardhatUserConfig`:
```ts title="hardhat.config.ts"
- // Add the following information after the "networks" configuration of the HardhatUserConfig
+ // Tambahkan informasi berikut setelah konfigurasi "networks" di HardhatUserConfig:
const config: HardhatUserConfig = {
- // Hardhat expects etherscan here, even if you're using Blockscout.
+ // Hardhat berekspektasi konfigurasi etherscan di sini, meskipun Anda menggunakan Blockscout.
etherscan: {
- // Use "123" as a placeholder, because Blockscout doesn't need a real API key, and Hardhat will complain if this property isn't set.
+ // Gunakan "123" sebagai placeholder, karena Blockscout tidak memerlukan API key yang sebenarnya, namun Hardhat akan memberikan error jika properti ini tidak diatur.
apiKey: {
"lisk": "123"
},
@@ -305,11 +309,11 @@ Add the following to your `HardhatUserConfig`:
```ts title="hardhat.config.ts"
- // Add the following information after the "networks" configuration of the HardhatUserConfig
+ // Tambahkan informasi berikut setelah konfigurasi "networks" di HardhatUserConfig
const config: HardhatUserConfig = {
- // Hardhat expects etherscan here, even if you're using Blockscout.
+ // Hardhat berekspektasi konfigurasi etherscan di sini, meskipun Anda menggunakan Blockscout.
etherscan: {
- // Use "123" as a placeholder, because Blockscout doesn't need a real API key, and Hardhat will complain if this property isn't set.
+ // Gunakan "123" sebagai placeholder, karena Blockscout tidak memerlukan API key yang sebenarnya, namun Hardhat akan memberikan error jika properti ini tidak diatur.
apiKey: {
"lisk-sepolia": "123"
},
@@ -332,8 +336,8 @@ Add the following to your `HardhatUserConfig`:
-Now, you can verify your contract.
-Grab the deployed address and run:
+Sekarang, Anda dapat memverifikasi kontrak Anda.
+Ambil alamat kontrak yang telah dideploy dan jalankan perintah berikut:
@@ -348,7 +352,7 @@ Grab the deployed address and run:
-You should see an output similar to:
+Anda akan melihat output yang serupa dengan:
```text
Successfully submitted source code for contract
@@ -361,21 +365,21 @@ https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe
:::info
-You can't re-verify a contract identical to one that has already been verified.
-If you attempt to do so, such as verifying the above contract, you'll get a message similar to:
+Anda tidak dapat memverifikasi ulang kontrak yang identik dengan yang sudah diverifikasi.
+Jika Anda mencoba melakukannya, seperti memverifikasi kontrak di atas, Anda akan mendapatkan pesan yang serupa dengan:
-```text
+```text
The contract 0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D has already been verified on Etherscan.
https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D#code
```
:::
-View your contract on BlockScout, by following the [link to the deployed contract](https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D?tab=contract) displayed in the previous steps output message.
-The block explorer will confirm that the contract is verified and allow you to [interact](#interacting-with-the-smart-contract) with it.
+Lihat kontrak Anda di BlockScout dengan mengikuti [link ke kontrak yang telah diluncurkan](https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D?tab=contract) yang ditampilkan dalam pesan output langkah sebelumnya.
+Penjelajah Blockchain akan mengonfirmasi bahwa kontrak tersebut telah diverifikasi dan memungkinkan Anda untuk [berinteraksi](#berinteraksi-dengan-smart-contract) dengannya.
-## Interacting with the Smart Contract
+## Berinteraksi dengan Kontrak Pintar
-After [the contract is verified](#verifying-the-smart-contract), you can use the `Read Contract` and `Write Contract` tabs to interact with the deployed contract via [BlockScout](https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D?tab=contract).
-Don't forget to update the contract address in the Blockscout URL.
-You'll also need to connect your wallet first, by clicking the `Connect Wallet` button.
+Setelah [kontrak diverifikasi](#verifying-the-smart-contract), Anda dapat menggunakan tab `Read Contract` dan `Write Contract` untuk berinteraksi dengan kontrak yang telah diluncurkan melalui [BlockScout](https://sepolia-blockscout.lisk.com/address/0xC10710ac55C98f9AACdc9cD0A506411FBe0af71D?tab=contract).
+Jangan lupa untuk memperbarui alamat kontrak di URL BlockScout.
+Anda juga perlu menghubungkan dompet Anda terlebih dahulu dengan mengklik tombol `Connect Wallet`.
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-thirdweb.mdx b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-thirdweb.mdx
index 845ba748b..40cbe5140 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-thirdweb.mdx
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/deploying-smart-contract/with-thirdweb.mdx
@@ -1,10 +1,10 @@
---
-title: ... with thirdweb
+title: ... menggunakan thirdweb
slug: /building-on-lisk/deploying-smart-contract/with-thirdweb
-description: "A guide on deploying a smart contract on the Lisk test network using thirdweb. Includes instructions for setting up the environment, compiling, and deploying the smart contract."
+description: "Panduan untuk meluncurkan kontrak pintar di jaringan test Lisk menggunakan thirdweb. Termasuk instruksi untuk mengatur environment, mengompilasi, dan meluncurkan kontrak pintar."
keywords: [
"thirdweb",
- "smart contract",
+ "kontrak pintar",
"ERC-721", "Lisk",
"Lisk test network",
"Lisk testnet",
@@ -23,53 +23,56 @@ toc_max_heading_level: 4
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Deploying a smart contract with thirdweb
-[thirdweb](https://thirdweb.com/) is an end-to-end framework for smart contract development and deployment.
+# Meluncurkan Kontrak Pintar dengan thirdweb
-It enables developers to deploy, standard contracts such as ERC-20, ERC-721, or ERC-1155, etc. without writing a line of code.
-More of this is discussed in the [via thirdweb Explore](#deploying-pre-built-contracts-via-thirdweb-explore) section.
+[thirdweb](https://thirdweb.com/) adalah _framework_ end-to-end untuk pengembangan dan peluncuran kontrak pintar.
-Furthermore, developers looking to develop and deploy custom smart contracts can use the [Solidity SDK](https://portal.thirdweb.com/contracts/build/overview) provided by thirdweb, among others such as [TypeScript SDK](https://portal.thirdweb.com/typescript/v5) and [Unity SDK](https://portal.thirdweb.com/unity).
-However, for this guide, we will mainly talk about the [thirdweb Explore](https://thirdweb.com/explore) and the [Solidity SDK](https://portal.thirdweb.com/contracts/build/overview).
+Kerangka ini memungkinkan developer untuk meluncurkan kontrak standar seperti ERC-20, ERC-721, atau ERC-1155, tanpa menulis satu baris kode pun.
+Lebih banyak informasi tentang ini dapat ditemukan di bagian [thirdweb Explore](#mendeploy-kontrak-bawaan-melalui-thirdweb-explore).
-**Features:**
+Selain itu, developer yang ingin mengembangkan dan meluncurkan kontrak pintar kustom dapat menggunakan [Solidity SDK](https://portal.thirdweb.com/contracts/build/overview) yang disediakan oleh thirdweb, serta opsi lainnya seperti [TypeScript SDK](https://portal.thirdweb.com/typescript/v5) dan [Unity SDK](https://portal.thirdweb.com/unity).
+Namun, dalam panduan ini, kami akan lebih fokus pada [thirdweb Explore](https://thirdweb.com/explore) dan [Solidity SDK](https://portal.thirdweb.com/contracts/build/overview).
-- [Explore](https://portal.thirdweb.com/contracts/explore/overview): Ready to deploy pre-built contracts.
-- [Build (Solidity SDK)](https://portal.thirdweb.com/contracts/build/overview): Write custom smart contracts.
-- [Deploy](https://portal.thirdweb.com/contracts/deploy/overview): Support for contract deployment built for any use case.
-- [Publish](https://portal.thirdweb.com/contracts/publish/overview): Publish your contracts onchain.
-- [Interact](https://portal.thirdweb.com/contracts/interact/overview): Interact with smart contracts and integrate smart contracts directly into your app.
+**Fitur:**
-## Deploying pre-built contracts via thirdweb Explore
-In case you want to deploy a pre-built contract without any customization, thirdweb offers a convenient way to do so with **Explore**.
-Check out the following video for a quick introduction to Explore:
+- [Explore](https://portal.thirdweb.com/contracts/explore/overview): Meluncurkan kontrak bawaan siap pakai.
+- [Build (Solidity SDK)](https://portal.thirdweb.com/contracts/build/overview): Menulis kontrak pintar kustom.
+- [Deploy](https://portal.thirdweb.com/contracts/deploy/overview): Mendukung peluncuran kontrak untuk berbagai kasus penggunaan.
+- [Publish](https://portal.thirdweb.com/contracts/publish/overview): Mempublikasikan kontrak Anda secara on-chain.
+- [Interact](https://portal.thirdweb.com/contracts/interact/overview): Berinteraksi dengan kontrak pintar dan mengintegrasikannya langsung ke dalam aplikasi Anda.
-- [What is thirdweb **Explore**?](https://youtu.be/jYEqoIeAoBg?t=5300)
+## Meluncurkan Kontrak Bawaan melalui thirdweb Explore
+
+Jika Anda ingin meluncurkan kontrak bawaan tanpa kustomisasi, thirdweb menyediakan cara yang mudah untuk melakukannya menggunakan **Explore**.
+Tonton video berikut untuk pengenalan singkat tentang Explore:
+
+- [Apa itu thirdweb **Explore**?](https://youtu.be/jYEqoIeAoBg?t=5300)
:::note
-Before you try out the following guides, please ensure that your [wallet is connected to Lisk's Network](/user/connecting-to-a-wallet) and it has sufficient funds in it.
-For more information, see the [Wallet funds](/building-on-lisk/deploying-smart-contract/with-Foundry#wallet-funds) section.
+Sebelum mencoba panduan berikut, pastikan bahwa [dompet Anda terhubung ke Jaringan Lisk](/user/connecting-to-a-wallet) dan memiliki dana yang cukup.
+Untuk informasi lebih lanjut, lihat bagian [Dana Dompet](/building-on-lisk/deploying-smart-contract/with-Foundry#dana-dompet).
:::
-The following videos describe step-by-step, how to deploy different tokens with pre-built contracts on Lisk.
-- [How to deploy a pre-built **ERC-20** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=5776)
-- [How to deploy a pre-built **ERC-721** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=6040)
-- [How to deploy a pre-built **ERC-1155** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=6396)
+Video-video berikut menjelaskan langkah-langkah untuk meluncurkan berbagai token dengan kontrak bawaan di Lisk:
+
+- [Bagaimana cara meluncurkan kontrak bawaan **ERC-20** melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=5776)
+- [Bagaimana cara meluncurkan kontrak bawaan **ERC-721** melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=6040)
+- [Bagaimana cara meluncurkan kontrak bawaan **ERC-1155** melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=6396)
-## via Solidity SDK
+## Menggunakan Solidity SDK
-### Prerequisites
+### Prasyarat
#### Node.js v18+
-Download and install [Node v18+](https://nodejs.org/en/download/).
+_Download_ dan instal [Node v18+](https://nodejs.org/en/download/).
-If you are using nvm to manage your node versions, you can just run `nvm install 18`.
+Jika Anda menggunakan `nvm` untuk mengelola versi Node.js Anda, cukup jalankan perintah: `nvm install 18`.
-#### Installing and Configuring thirdweb
+#### Menginstal dan Mengonfigurasi thirdweb
-To develop custom contracts, it is required to download and configure thirdweb.
+Untuk mengembangkan kontrak kustom, Anda perlu men_download_ dan mengonfigurasi thirdweb.
-1. To install thirdweb run the following command:
+1. Untuk menginstal thirdweb, jalankan perintah berikut:
```bash
@@ -82,15 +85,15 @@ To develop custom contracts, it is required to download and configure thirdweb.
```
-2. [Set up your thirdweb API key](https://youtu.be/jYEqoIeAoBg?t=9467).
+2. [Atur API key thirdweb Anda](https://youtu.be/jYEqoIeAoBg?t=9467).
-#### Logging in with your API key
+#### _Login_ menggunakan API key Anda.
-1. The next step is to log in to thirdweb via CLI, so to do that type the following:
+1. Langkah berikutnya adalah _login_ ke thirdweb melalui CLI. Untuk melakukannya, ketik perintah berikut:
```bash
thirdweb login
```
-2. Once, you execute the aforementioned command, the terminal will open a browser window where it will ask you to authenticate the device:
+2. Setelah Anda menjalankan perintah di atas, terminal akan membuka aplikasi browser yang meminta Anda untuk mengautentikasi perangkat:
```text
.......
@@ -104,28 +107,29 @@ To develop custom contracts, it is required to download and configure thirdweb.
β Waiting for a response from the dashboard
```
-3. Once you authenticate via the browser, the terminal will log the following message:
+3. Setelah Anda melakukan autentikasi melalui browser, terminal akan mencatat pesan berikut:
```text
Successfully linked your account to this device
```
-4. You can verify your login status by re-running the `thirdweb login` command.
+4. Anda dapat memverifikasi status login Anda dengan menjalankan kembali perintah `thirdweb login`.
```text
π thirdweb v0.13.60 π
-### Creating a project
-The first step of deploying smart contracts to Lisk is to set up your development environment by creating a project.
-The thirdweb supports two of the most popular smart contracts development frameworks such as [Foundry](https://book.getfoundry.sh/) and [Hardhat](https://hardhat.org).
+### Membuat Proyek
-For this guide, we are using Foundry for smart contract development.
-However, you can use Hardhat if you are more comfortable with that.
-The project creation steps are similar for both Foundry and Hardhat.
+Langkah pertama untuk meluncurkan kontrak pintar ke Lisk adalah menyiapkan _environment_ pengembangan Anda dengan membuat sebuah proyek.
+thirdweb mendukung dua framework pengembangan kontrak pintar paling populer, yaitu [Foundry](https://book.getfoundry.sh/) dan [Hardhat](https://hardhat.org).
-1. For Foundry, install its [prerequisites](/building-on-lisk/deploying-smart-contract/with-Foundry#prerequisites) on your system before proceeding with the creation of a thirdweb project.
-2. Once, the aforementioned is installed, proceed with the following:
+Dalam panduan ini, kami menggunakan Foundry untuk pengembangan kontrak pintar.
+Namun, Anda dapat menggunakan Hardhat jika Anda lebih nyaman dengan itu.
+Langkah-langkah pembuatan proyek serupa untuk Foundry maupun Hardhat.
+
+1. Untuk Foundry, instal [prasyaratnya](/building-on-lisk/deploying-smart-contract/with-Foundry#prasyarat) di sistem Anda sebelum melanjutkan pembuatan proyek thirdweb.
+2. Setelah semua yang disebutkan di atas terinstal, lanjutkan dengan langkah-langkah berikut:
```bash
npx thirdweb create
```
-3. Choose `Contract` as the type of your project and give an appropriate name to your project.
+3. Pilih `Contract` sebagai jenis proyek Anda dan berikan nama yang sesuai untuk proyek tersebut.
```text
.......
@@ -134,9 +138,9 @@ The project creation steps are similar for both Foundry and Hardhat.
β What type of project do you want to create? βΊ Contract
β What is your project named? β¦ thirdweb-contracts
```
-4. Next, choose `Forge` as the framework, `NFT` as the name of the contract, `ERC721` as the type of smart contract, and `None` for the extensions option.
+4. Selanjutnya, pilih `Forge` sebagai framework, `NFT` sebagai nama kontrak, `ERC721` sebagai jenis kontrak pintar, dan `None` untuk opsi ekstensi.
:::info
- In case you want to use the Hardhat framework, choose `Hardhat` instead of `Forge` in the following dialogue.
+ Jika Anda ingin menggunakan _framework_ Hardhat, pilih `Hardhat` sebagai pengganti `Forge` dalam dialog berikutnya.
:::
```text
@@ -145,9 +149,9 @@ The project creation steps are similar for both Foundry and Hardhat.
β What type of contract do you want to start from? βΊ ERC721
β What extensions do you want to add to your contract? βΊ None
```
-5. thirdweb will install all the relevant dependencies and set up a contract project for you.
+5. thirdweb akan menginstal semua dependensi yang relevan dan mengatur proyek kontrak untuk Anda.
- Execution logs of the thirdweb `contract` project creation
+ Log eksekusi dari pembuatan proyek `contract` thirdweb:
```text
Creating a new thirdweb contracts project in /Users/XYZ/Lightcurve-Code/L2/thirdweb-contracts.
@@ -185,7 +189,7 @@ The project creation steps are similar for both Foundry and Hardhat.
```
-6. Foundry applications created with thirdweb have a similar directory structure to the following:
+6. Aplikasi Foundry yang dibuat dengan thirdweb memiliki struktur direktori yang mirip seperti ini:
```bash
.
@@ -204,11 +208,11 @@ The project creation steps are similar for both Foundry and Hardhat.
βββ README.md
```
-#### **Creating** the smart contract
+#### **Membuat** Kontrak Pintar
-For ease and security, thirdweb already provides base contracts, which can be easily customized via code.
-Since we chose to create an `ERC721` token earlier, an `NFT.sol` file will be present in the `src/` folder.
-The `NFT.sol` will already have the base code required for an NFT contract.
+Untuk kemudahan dan keamanan, thirdweb sudah menyediakan kontrak dasar yang dapat dengan mudah dikustomisasi dengan kode.
+Karena sebelumnya kita memilih untuk membuat token `ERC721`, file `NFT.sol` akan tersedia di folder `src/`.
+File `NFT.sol` ini sudah memiliki kode dasar yang diperlukan untuk sebuah kontrak NFT.
```sol title="src/NFT.sol"
// SPDX-License-Identifier: MIT
@@ -236,14 +240,16 @@ contract NFT is ERC721Base {
```
-#### **Building** the smart contract
-Once the smart contract's code is ready, it must be built using thirdweb.
+#### **Membangun** Kontrak Pintar
+
+Setelah kode kontrak pintar siap, kontrak tersebut harus di-_build_ menggunakan thirdweb.
-1. To do that, simply run:
+1. Untuk melakukannya, cukup jalankan perintah berikut:
```bash
npx thirdweb build
```
-2. If the smart contract doesn't have any errors, you will see the following output on the terminal:
+
+2. Jika kontrak pintar tidak memiliki error, Anda akan melihat output berikut di terminal:
```text
.......
@@ -288,14 +294,14 @@ Once the smart contract's code is ready, it must be built using thirdweb.
yarn deploy
```
-#### **Deploying** the smart contract
-All checks passed, which means that the smart contract is ready to be deployed using thirdweb.
+#### **Meluncurkan** Kontrak Pintar
+Semua pemeriksaan berhasil dilewati, yang berarti kontrak pintar siap untuk diluncurkan menggunakan thirdweb.
-1. To do that, simply run:
+1. Untuk melakukannya, cukup jalankan perintah berikut:
```bash
npx thirdweb deploy
```
-2. If the smart contract doesn't have any errors, you will see the following output on the terminal:
+2. Jika kontrak pintar tidak memiliki error, Anda akan melihat output berikut di terminal:
```text
.......
@@ -309,20 +315,20 @@ All checks passed, which means that the smart contract is ready to be deployed u
β Open this link to deploy your contracts: https://thirdweb.com/contracts/deploy/QmSJExQJfPYFuaRZuDu9XRR2jUu9yp3kaFX3Sdc1KRWxiP
```
-3. The terminal will also open a browser window, directing towards a unique URL, as highlighted above.
-4. Fill out the form as suggested in the [Fill Parameter](https://portal.thirdweb.com/contracts/deploy/deploy-contract#Fill%20parameter) section.
-5. Once you fill out the details of the ERC721 smart contract, click on the `Deploy Now` button and it will deploy the contract to the chosen network of your wallet.
+3. Terminal juga akan membuka aplikasi browser yang mengarah ke URL khusus, seperti yang ter-_highlight_ diatas.
+4. Isi formulir sesuai dengan petunjuk di bagian [Fill Parameter](https://portal.thirdweb.com/contracts/deploy/deploy-contract#Fill%20parameter).
+5. Setelah Anda mengisi detail kontrak pintar ERC721, klik tombol `Deploy Now` dan kontrak tersebut akan dideploy ke jaringan yang dipilih dari dompet Anda.
:::info
-If you want to test your Foundry-based contract, follow the steps mentioned in the [Testing the Smart Contract](/building-on-lisk/deploying-smart-contract/with-Foundry#testing-the-smart-contract) guide.
+Jika Anda ingin menguji kontrak berbasis Foundry Anda, ikuti langkah-langkah yang disebutkan dalam panduan [Menguji Kontrak Pintar](/building-on-lisk/deploying-smart-contract/with-Foundry#menguji-kontrak-pintar).
:::
-## Interacting with the Smart Contract
+## Berinteraksi dengan Kontrak Pintar
-Once the contract is deployed, you can interact with it via Explore.
-The following videos describe step-by-step, how to interact with different token contracts on Lisk.
+Setelah kontrak diluncurkan, Anda dapat berinteraksi dengan kontrak tersebut melalui Explore.
+Video berikut menjelaskan langkah demi langkah bagaimana berinteraksi dengan bermacam-macam kontrak token di Lisk.
-- [How to interact with a deployed **ERC-20** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=6823)
-- [How to interact with a deployed **ERC-721** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=7581)
-- [How to interact with a deployed **ERC-1155** contract via Explore?](https://youtu.be/jYEqoIeAoBg?t=8355)
\ No newline at end of file
+- [Bagaimana cara berinteraksi dengan kontrak **ERC-20** yang telah diluncurkan melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=6823)
+- [Bagaimana cara berinteraksi dengan kontrak **ERC-721** yang telah diluncurkan melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=7581)
+- [Bagaimana cara berinteraksi dengan kontrak **ERC-1155** yang telah diluncurkan melalui Explore?](https://youtu.be/jYEqoIeAoBg?t=8355)
\ No newline at end of file
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/ethers.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/ethers.md
index 5dfb966a2..e86503b0f 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/ethers.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/ethers.md
@@ -1,7 +1,7 @@
---
-title: ...with ethers.js
+title: ...menggunakan ethers.js
slug: /building-on-lisk/interacting-with-the-blockchain/ethers
-description: Documentation for using ethers.js, a JavaScript library for EVM-compatible blockchain interactions. This page covers installation, setup, connecting to the Lisk network, reading and writing blockchain data, and interacting with smart contracts.
+description: Dokumentasi untuk menggunakan ethers.js, sebuah library JavaScript untuk interaksi dengan blockchain yang kompatibel dengan EVM. Halaman ini mencakup instalasi, pengaturan, koneksi ke jaringan Lisk, membaca dan menulis data blockchain, serta berinteraksi dengan kontrak pintar.
keywords:
[
ethers.js,
@@ -22,34 +22,33 @@ keywords:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Interacting with the blockchain with ethers.js
+# Berinteraksi dengan blockchain menggunakan ethers.js
-[ethers.js](https://docs.ethers.org/) is a JavaScript library that allows developers to interact with EVM-compatible blockchain networks.
+[ethers.js](https://docs.ethers.org/) adalah sebuah library JavaScript yang memungkinkan developer untuk berinteraksi dengan jaringan blockchain yang kompatibel dengan EVM.
-You can use ethers.js to interact with smart contracts deployed on the Lisk network.
+Anda dapat menggunakan ethers.js untuk berinteraksi dengan kontrak pintar yang telah diluncurkan di jaringan Lisk.
+## Instalasi
-## Install
-
-To install ethers.js run the following command:
+Untuk menginstal ethers.js, jalankan perintah berikut:
```bash
npm install --save ethers
```
-## Setup
+## _Setup_
-Before you can start using ethers.js, you need to import it into your project.
+Sebelum Anda dapat mulai menggunakan ethers.js, Anda perlu mengimpornya ke dalam proyek Anda.
-Add the following line of code to the top of your file to import ethers.js:
+Tambahkan baris kode berikut di bagian atas file Anda untuk mengimpor ethers.js:
```javascript
-const ethers = require('ethers');
+const ethers = require("ethers");
```
-## Connecting to Lisk
+## Hubungkan ke Lisk
-You can connect to Lisk by instantiating a new ethers.js `JsonRpcProvider` object with an RPC URL of the Lisk network:
+Anda dapat terhubung ke Lisk dengan menginisialisasi objek `JsonRpcProvider` baru dari ethers.js menggunakan URL RPC jaringan Lisk:
@@ -59,6 +58,7 @@ You can connect to Lisk by instantiating a new ethers.js `JsonRpcProvider` objec
const url = 'https://rpc.api.lisk.com';
const provider = new ethers.JsonRpcProvider(url);
```
+
```javascript
@@ -67,18 +67,19 @@ You can connect to Lisk by instantiating a new ethers.js `JsonRpcProvider` objec
const url = 'https://rpc.sepolia-api.lisk.com';
const provider = new ethers.JsonRpcProvider(url);
```
+
:::note
-A **Provider** (in ethers.js) is a class that provides an abstraction for a connection to the Ethereum Network. It provides read-only access to the Blockchain and its status.
+**Provider** (dalam ethers.js) adalah sebuah kelas yang menyediakan abstraksi untuk koneksi ke Jaringan Ethereum. Provider memberikan akses _read-only_ ke Blockchain dan statusnya.
:::
-## Reading data from the blockchain
+## Membaca data dari blockchain
-Once you have created a provider, you can use it to read data from the Lisk network.
+Setelah Anda membuat _provider_, Anda dapat menggunakannya untuk membaca data dari jaringan Lisk.
-For example, you can use the `getBlockNumber` method to get the latest block:
+Sebagai contoh, Anda dapat menggunakan metode `getBlockNumber` untuk mendapatkan block terbaru:
```javascript
async function getLatestBlock() {
@@ -90,14 +91,14 @@ getLatestBlock();
```
-Complete code example
+Contoh kode lengkap:
```javascript
const ethers = require('ethers');
-// For Lisk Sepolia network
+// Untuk jaringan Lisk Sepolia
const url = 'https://rpc.sepolia-api.lisk.com';
-// For Lisk network
+// Untuk jaringan Lisk
// const url = 'https://rpc.api.lisk.com';
const provider = new ethers.JsonRpcProvider(url);
@@ -108,24 +109,25 @@ async function getLatestBlock() {
}
getLatestBlock();
+
```
-## Writing data to the blockchain
+## Menulis data ke blockchain
-In order to write data to the Lisk network, you need to create a `Signer`.
+Untuk menulis data ke jaringan Lisk, Anda perlu membuat sebuah `Signer`.
:::note
-A **Signer** is a class that (usually) in some way directly or indirectly has access to a private key, which can sign messages and transactions to authorize the network to charge your account ether to perform operations.
+**Signer** adalah sebuah kelas yang (biasanya) secara langsung atau tidak langsung memiliki akses ke private key, yang dapat menandatangani pesan dan transaksi untuk mengizinkan jaringan membayar ether dari akun Anda untuk melakukan operasi.
:::
-You can create a `Signer` by instantiating a new ethers.js `Wallet` object, providing it with a private key and `Provider`.
+Anda dapat membuat sebuah `Signer` dengan menginisialisasi objek `Wallet` baru dari ethers.js, serta memberikan private key dan `Provider` kepada objek tersebut.
```javascript
const privateKey = 'PRIVATE_KEY';
const signer = new ethers.Wallet(privateKey, provider);
const receiver = '0x5e1A92F84cA1CE280B3Cb29d79C3368f45b41EBB';
-// Send 0.01 ether to a given address.
+// Kirim 0,01 ether ke alamat yang diberikan.
async function sendTx(to) {
const tx = await signer.sendTransaction({
to: to,
@@ -139,28 +141,28 @@ async function sendTx(to) {
```
:::info
-`PRIVATE_KEY` is the private key of the account that is to be used when creating the `signer` object.
+`PRIVATE_KEY` adalah private key dari akun yang akan digunakan saat membuat objek `signer`.
:::
-The receiving account's balance will increment by `0.01` ETH once the transaction execution is successful.
+Saldo akun penerima akan bertambah sebanyak `0,01` ETH setelah eksekusi transaksi berhasil.
-Complete code example
+Contoh kode lengkap:
```javascript
const ethers = require('ethers');
-// For Lisk Sepolia network
+// Untuk jaringan Lisk Sepolia
const url = 'https://rpc.sepolia-api.lisk.com';
-// For Lisk network
+// Untuk jaringan Lisk
// const url = 'https://rpc.api.lisk.com';
const provider = new ethers.JsonRpcProvider(url);
-// Replace PRIVATE_KEY with the private key of your account.
+// Gantilah PRIVATE_KEY dengan private key dari akun Anda.
const privateKey = 'PRIVATE_KEY';
const signer = new ethers.Wallet(privateKey, provider);
const receiver = '0x5e1A92F84cA1CE280B3Cb29d79C3368f45b41EBB';
-// Send 0.01 ether to a given address.
+// Kirim 0,01 ether ke alamat yang diberikan.
async function sendTx(to) {
const tx = await signer.sendTransaction({
to: to,
@@ -171,26 +173,27 @@ async function sendTx(to) {
}
sendTx(receiver);
+
```
-## Interacting with smart contracts
+## Berinteraksi dengan kontrak pintar
-You can use ethers.js to interact with a smart contract on Lisk by instantiating a `Contract` object using the ABI and address of a deployed contract:
+Anda dapat menggunakan ethers.js untuk berinteraksi dengan kontrak pintar di Lisk dengan menginisialisasi objek `Contract` menggunakan ABI dan alamat dari kontrak yang telah diluncurkan:
:::tip
-The ABI of a contract can be found on the respective contract page in [BlockScout](https://sepolia-blockscout.lisk.com/).
+ABI dari sebuah kontrak dapat ditemukan di halaman kontrak terkait di [BlockScout](https://sepolia-blockscout.lisk.com/).
-For example, you can use the ABI for the [Hello contract](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=contact_code). Just scroll down to `Contract ABI` and copy the deployed contract's ABI.
+Sebagai contoh, Anda dapat menggunakan ABI untuk [Kontrak Hello](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=contact_code). Cukup _scroll_ ke bagian `Contract ABI` dan salin ABI dari kontrak yang telah diluncurkan.
:::
-```javascript title="Reading from contracts"
-// Replace the contractAddress' value with the desired contract.
+```javascript title="Membaca dari kontrak"
+// Gantilah nilai `contractAddress` dengan alamat kontrak yang diinginkan.
const contractAddress = "CONTRACT_ADDRESS"
// read-only
const contract = new ethers.Contract(contractAddress, abi, provider);
const abi = [
-β¦ // ABI of deployed contract
+β¦ // ABI dari kontrak yang telah diluncurkan.
];
async function getHello() {
@@ -202,21 +205,21 @@ getHello();
```
:::info
-`CONTRACT_ADDRESS` is the address of the deployed contract.
+`CONTRACT_ADDRESS` adalah alamat dari kontrak yang telah diluncurkan.
:::
:::note
-A **Contract** (in ethers.js) is an abstraction that represents a connection to a specific contract on the Lisk Network, so that applications can use it like a normal JavaScript object.
+**Contract** (dalam ethers.js) adalah sebuah abstraksi yang mewakili koneksi ke kontrak tertentu di Jaringan Lisk, sehingga aplikasi dapat menggunakannya seperti objek JavaScript biasa.
:::
-For reading and writing contracts, provide a `Signer` object instead of a `Provider` object:
+Untuk membaca dan menulis kontrak, gunakan objek `Signer` untuk menggantikan objek `Provider`:
-```javascript title="Writing to contracts"
-// read & write
+```javascript title="Menulis ke kontrak"
+// read & write
const contract = new ethers.Contract(contractAddress, abi, signer);
```
-Once you have created a `Contract` object, you can use it to call desired methods on the smart contract:
+Setelah Anda membuat objek `Contract`, Anda dapat menggunakannya untuk memanggil metode yang diinginkan pada kontrak pintar:
```javascript
async function createHello(message) {
@@ -228,18 +231,18 @@ async function createHello(message) {
```
:::tip
-For an overview of existing public functions for the contract, please check the [Read Contract](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=read_contract) and [Write Contract](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=write_contract) tabs for the specific contract.
+Untuk gambaran umum tentang fungsi publik yang ada pada kontrak, silakan cek tab [Read Contract](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=read_contract) dan [Write Contract](https://sepolia-blockscout.lisk.com/address/0xb18eb752813c2fbedfdf2be6e5e842a85a3b8539?tab=write_contract) untuk kontrak spesifik tersebut.
:::
-Complete code example
+Contoh kode lengkap:
```javascript
const ethers = require('ethers');
-// For Lisk Sepolia network
+// Untuk jaringan Lisk Sepolia
const url = 'https://rpc.sepolia-api.lisk.com';
-// For Lisk network
+// Untuk jaringan Lisk
// const url = 'https://rpc.api.lisk.com';
const provider = new ethers.JsonRpcProvider(url);
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/viem.mdx b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/viem.mdx
index 145b7ce6c..6bad7dbed 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/viem.mdx
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/viem.mdx
@@ -1,7 +1,7 @@
---
-title: ...with viem
+title: ...menggunakan viem
slug: /building-on-lisk/interacting-with-blockchain/viem
-description: Documentation for using Viem, a TypeScript interface for EVM-compatible blockchains. This page covers installation, setup, and various functionalities such as reading and writing blockchain data and interacting with smart contracts on Lisk.
+description: Dokumentasi untuk menggunakan Viem, sebuah interface TypeScript untuk blockchain yang kompatibel dengan EVM. Halaman ini mencakup instalasi, pengaturan, serta berbagai fungsi seperti membaca dan menulis data blockchain, dan berinteraksi dengan kontrak pintar di Lisk.
keywords:
[
viem,
@@ -20,16 +20,16 @@ keywords:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Interacting with the blockchain with viem
+# Berinteraksi dengan Blockchain menggunakan Viem
-[viem](https://viem.sh/) a TypeScript interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum.
+[viem](https://viem.sh/) adalah sebuah _interface_ TypeScript untuk Ethereum yang menyediakan _low-level stateless primitives_ untuk berinteraksi dengan Ethereum.
-You can use viem to interact with smart contracts deployed on Lisk.
-Viem provides first-class support for chains implemented on the OP stack, see [viem.sh > OP stack](https://viem.sh/op-stack).
+Anda dapat menggunakan viem untuk berinteraksi dengan kontrak pintar yang diluncurkan di Lisk.
+Viem menyediakan dukungan penuh untuk rantai yang diimplementasikan pada OP stack, lihat [viem.sh > OP stack](https://viem.sh/op-stack).
-## Install
+## Instalasi
-To install viem run the following command:
+Untuk menginstal viem, jalankan perintah berikut:
```bash
npm install --save viem
@@ -37,14 +37,14 @@ npm install --save viem
## Setup
-Before you can start using viem, you need to setup a [Client](https://viem.sh/op-stack/client) with a desired [Transport](https://viem.sh/docs/clients/intro.html#transports) and [Chain](https://viem.sh/docs/chains/introduction).
+Sebelum mulai menggunakan viem, Anda perlu mengatur [Client](https://viem.sh/op-stack/client) dengan [Transport](https://viem.sh/docs/clients/intro.html#transports) dan [Rantai](https://viem.sh/docs/chains/introduction) yang diinginkan.
### Public Client
-In order to read data from Lisk, you need to create a **Public client**.
+Untuk membaca data dari Lisk, Anda perlu membuat **Public client**.
-By extending the public client with `publicActionsL2` or `publicActionsL1`, you have access to additional methods for Lisk and other chains built on top of the OP stack.
-See [Layer 2 extensions](https://viem.sh/op-stack/client#layer-2-extensions) for more information.
+Dengan meng-_extend_ public client menggunakan `publicActionsL2` atau `publicActionsL1`, Anda akan mendapatkan akses ke metode tambahan untuk Lisk dan rantai lain yang dibangun di atas OP stack.
+Lihat [Layer 2 extensions](https://viem.sh/op-stack/client#layer-2-extensions) untuk informasi lebih lanjut.
@@ -85,13 +85,13 @@ See [Layer 2 extensions](https://viem.sh/op-stack/client#layer-2-extensions) for
### Wallet Client
-In order to write data to Lisk, you need to create a Wallet client (`createWalletClient`) and specify an [`Account`](https://ethereum.org/en/developers/docs/accounts/) to use.
+Untuk menulis data ke Lisk, Anda perlu membuat Wallet client (`createWalletClient`) dan menentukan [`Account`](https://ethereum.org/en/developers/docs/accounts/) yang akan digunakan.
-By extending the wallet client with `walletActionsL1` or `walletActionsL2`, you have access to additional methods for Lisk and other chains built on top of the OP stack.
-See [Layer 2 extensions](https://viem.sh/op-stack/client#layer-2-extensions) for more information.
+Dengan meng-_extend_ wallet client menggunakan `walletActionsL1` atau `walletActionsL2`, Anda akan mendapatkan akses ke metode tambahan untuk Lisk dan rantai lain yang dibangun di atas OP stack.
+Lihat [Ekstensi Layer 2](https://viem.sh/op-stack/client#layer-2-extensions) untuk informasi lebih lanjut.
-
+
@@ -148,10 +148,10 @@ See [Layer 2 extensions](https://viem.sh/op-stack/client#layer-2-extensions) for
-
+
-Replace `` with the private key of the account you want to use.
-The `0x` prefix indicates that the following string is a hexadecimal number.
+Ganti `` dengan private key dari akun yang ingin Anda gunakan.
+Prefiks `0x` menunjukkan bahwa string berikutnya adalah angka dalam format heksadesimal.
@@ -161,14 +161,14 @@ The `0x` prefix indicates that the following string is a hexadecimal number.
import { ethereum, lisk } from 'viem/chains'
import { walletActionsL1, walletActionsL2 } from 'viem/op-stack'
- // Wallet client for Ethereum
+ // Wallet client untuk Ethereum
export const walletClientL1 = createWalletClient({
account: privateKeyToAccount('0x'),
chain: ethereum,
transport: http()
}).extend(walletActionsL1());
- // Wallet client for Lisk
+ // Wallet client untuk Lisk
export const walletClientL2 = createWalletClient({
account: privateKeyToAccount('0x'),
chain: lisk,
@@ -183,14 +183,14 @@ The `0x` prefix indicates that the following string is a hexadecimal number.
import { sepolia, liskSepolia } from 'viem/chains'
import { walletActionsL1, walletActionsL2 } from 'viem/op-stack'
- // Wallet client for Ethereum
+ // Wallet client untuk Ethereum
export const walletClientL1 = createWalletClient({
account: privateKeyToAccount('0x'),
chain: sepolia,
transport: http()
}).extend(walletActionsL1());
- // Wallet client for Lisk
+ // Wallet client untuk Lisk
export const walletClientL2 = createWalletClient({
account: privateKeyToAccount('0x'),
chain: liskSepolia,
@@ -206,19 +206,19 @@ The `0x` prefix indicates that the following string is a hexadecimal number.
:::info
-In addition to making a JSON-RPC request (`eth_requestAccounts`) to get an Account, viem provides various helper methods for creating an `Account`, including: [`privateKeyToAccount`](https://viem.sh/docs/accounts/privateKey.html), [`mnemonicToAccount`](https://viem.sh/docs/accounts/mnemonic.html), and [`hdKeyToAccount`](https://viem.sh/docs/accounts/hd.html).
-
-{ /* To use Lisk Sepolia (testnet), replace `lisk` with `liskSepolia`.
+Selain membuat permintaan JSON-RPC (`eth_requestAccounts`) untuk mendapatkan sebuah Akun, viem menyediakan berbagai metode pembantu untuk membuat sebuah `Account`, termasuk: [`privateKeyToAccount`](https://viem.sh/docs/accounts/privateKey.html), [`mnemonicToAccount`](https://viem.sh/docs/accounts/mnemonic.html), dan [`hdKeyToAccount`](https://viem.sh/docs/accounts/hd.html).
+
+{ /* Untuk menggunakan Lisk Sepolia (testnet), ganti `lisk` dengan `liskSepolia`.
*/}
:::
-## Reading data from the blockchain
+## Membaca Data dari Blockchain
-Create a [public client](#public-client) and use it to read and access data from Lisk using [Public Actions](https://viem.sh/docs/actions/public/introduction) and [OP stack public actions](https://viem.sh/op-stack/client#layer-2-extensions).
+Buat sebuah [public client](#public-client) dan gunakan untuk membaca serta mengakses data dari Lisk menggunakan [Public Actions](https://viem.sh/docs/actions/public/introduction) dan [OP stack public actions](https://viem.sh/op-stack/client#layer-2-extensions).
-Public Actions are client methods that map one-to-one with a "public" Ethereum RPC method (`eth_blockNumber`, `eth_getBalance`, etc.).
+Public Actions adalah metode client yang memiliki pemetaan _one-on-one_ dengan metode "public" Ethereum RPC (`eth_blockNumber`, `eth_getBalance`, dll.).
-For example, you can use the `getBlockNumber` action to get the latest block:
+Sebagai contoh, Anda dapat menggunakan aksi `getBlockNumber` untuk mendapatkan blok terbaru:
```javascript title="read-example.js"
import { parseEther } from 'viem'
@@ -237,13 +237,13 @@ console.log(l1Gas);
```
-## Writing data to the blockchain
+## Menulis Data ke Blockchain
-Create a [wallet client](#wallet-client) and use it to read and access data from Lisk using [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction) and [OP stack wallet actions](https://viem.sh/op-stack/client#layer-2-extensions).
+Buat sebuah [wallet client](#wallet-client) dan gunakan untuk membaca serta mengakses data dari Lisk menggunakan [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction) dan [OP stack wallet actions](https://viem.sh/op-stack/client#layer-2-extensions).
-Wallet Actions are actions that map one-to-one with a "wallet" or "signable" Ethereum RPC method (`eth_requestAccounts`, `eth_sendTransaction`, etc).
+Wallet Actions adalah aksi yang memiliki pemetaan _one-on-one_ dengan metode "wallet" atau "signable" Ethereum RPC (`eth_requestAccounts`, `eth_sendTransaction`, dll.).
-For example, you can use the `sendTransaction` action to post a transaction:
+Sebagai contoh, Anda dapat menggunakan aksi `sendTransaction` untuk memposting transaksi:
```javascript title="write-example.js"
import { walletClientL2 } from './wallet-client.js'
@@ -256,9 +256,9 @@ const hash = await walletClientL2.sendTransaction({
console.log(hash);
```
-## Interacting with smart contracts
+## Berinteraksi dengan Kontrak Pintar
-You can use viem to interact with a smart contract on Lisk by creating a `Contract` instance using [`getContract`](https://viem.sh/docs/contract/getContract.html) and passing it the contract ABI, contract address, and and [Public](https://viem.sh/docs/clients/public.html) and/or [Wallet](https://viem.sh/docs/clients/wallet.html) Client:
+Anda dapat menggunakan viem untuk berinteraksi dengan kontrak pintar di Lisk dengan membuat instance `Contract` menggunakan [`getContract`](https://viem.sh/docs/contract/getContract.html) dan memberikan ABI kontrak, alamat kontrak, serta [Public](https://viem.sh/docs/clients/public.html) dan/atau [Wallet](https://viem.sh/docs/clients/wallet.html) Client:
@@ -268,17 +268,17 @@ import { getContract } from 'viem'
import { wagmiAbi } from './abi.js'
import { publicClient, walletClient } from './client.js'
-// 1. Create contract instance
+// 1. Buat instance kontrak
const contract = getContract({
address: 'CONTRACT_ADDRESS',
abi: wagmiAbi,
- // 1a. Insert a single client
+ // 1a. Masukkan satu client
//client: publicClient,
- // 1b. Or public and/or wallet clients
+ // 1b. Atau public dan/atau wallet clients
client: { public: publicClient, wallet: walletClient }
})
-// 2. Call contract methods, fetch events, listen to events, etc.
+// 2. Panggil metode kontrak, ambil *event*, dengarkan *event*, dan lain-lain.
const result = await contract.read.totalSupply()
const logs = await contract.getEvents.Transfer()
const unwatch = contract.watchEvent.Transfer(
@@ -361,7 +361,7 @@ const unwatch = contract.watchEvent.Transfer(
:::tip
-The ABI of a contract can be found on the respective contract page in [BlockScout](https://sepolia-blockscout.lisk.com/).
+ABI dari sebuah kontrak dapat ditemukan di halaman kontrak terkait di [BlockScout](https://sepolia-blockscout.lisk.com/).
:::
```js title="abi.js"
@@ -532,5 +532,5 @@ export const wagmiAbi = [
:::info
-`CONTRACT_ADDRESS` is the address of the deployed contract.
+`CONTRACT_ADDRESS` adalah alamat dari kontrak yang telah diluncurkan.
:::
\ No newline at end of file
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/web3.mdx b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/web3.mdx
index 5ecf0393b..016fa13be 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/web3.mdx
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/interacting-with-the-blockchain/web3.mdx
@@ -1,7 +1,7 @@
---
-title: ...with web3.js
+title: ...menggunakan web3.js
slug: /building-on-lisk/interacting-with-the-blockchain/web3
-description: Documentation for using web3.js, a JavaScript library for EVM-compatible blockchain interactions. This page covers installation, setup, connecting to the Lisk network, reading and writing blockchain data, and interacting with smart contracts.
+description: Dokumentasi untuk menggunakan web3.js, sebuah library JavaScript untuk interaksi blockchain yang kompatibel dengan EVM. Halaman ini mencakup instalasi, pengaturan, koneksi ke jaringan Lisk, membaca dan menulis data blockchain, serta berinteraksi dengan kontrak pintar.
keywords:
[
web3.js,
@@ -23,16 +23,15 @@ keywords:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Interacting with the blockchain via web3.js
+# Berinteraksi dengan Blockchain melalui web3.js
-[web3.js](https://web3js.org/) is a JavaScript library for building and interacting with EVM-compatible blockchain networks.
+[web3.js](https://web3js.org/) adalah sebuah library JavaScript untuk membangun dan berinteraksi dengan jaringan blockchain yang kompatibel dengan EVM.
-You can also use web3.js to interact with smart contracts deployed on the Lisk network.
+Anda juga dapat menggunakan web3.js untuk berinteraksi dengan kontrak pintar yang telah diluncurkan di jaringan Lisk.
+## Instalasi
-## Install
-
-To install web3.js run the following command:
+Untuk menginstal web3.js, jalankan perintah berikut:
```bash
@@ -48,11 +47,11 @@ To install web3.js run the following command:
## Import
-Before you can start using web3.js, you need to import it into your project.
+Sebelum mulai menggunakan web3.js, Anda perlu mengimpornya ke dalam proyek Anda.
-Web3.js supports both CommonJS and native ESM module imports.
+Web3.js mendukung impor modul CommonJS maupun native ESM.
-Add the following line of code to the top of your file to import web3.js:
+Tambahkan baris kode berikut di bagian atas file Anda untuk mengimpor web3.js:
```js
@@ -66,9 +65,9 @@ Add the following line of code to the top of your file to import web3.js:
-## Connecting to Lisk
+## Menghubungkan ke Lisk
-You can connect to Lisk by instantiating a new `Web3` object with an RPC URL of the Lisk network:
+Anda dapat menghubungkan ke Lisk dengan membuat sebuah objek `Web3` baru menggunakan URL RPC dari jaringan Lisk:
@@ -76,7 +75,7 @@ You can connect to Lisk by instantiating a new `Web3` object with an RPC URL of
```javascript
import { Web3 } from 'web3';
- // Instantiate a web3 object by passing the RPC URL of Lisk.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk.
const web3 = new Web3('https://rpc.api.lisk.com');
```
@@ -84,7 +83,7 @@ You can connect to Lisk by instantiating a new `Web3` object with an RPC URL of
```javascript
import { Web3 } from 'web3';
- // Instantiate a web3 object by passing the RPC URL of Lisk Sepolia.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk Sepolia.
const web3 = new Web3('https://rpc.sepolia-api.lisk.com');
```
@@ -92,14 +91,14 @@ You can connect to Lisk by instantiating a new `Web3` object with an RPC URL of
-### Reading data from the blockchain
+### Membaca Data dari Blockchain
-Once you have created the `Web3` object, you can use it to read data from the Lisk network.
+Setelah Anda membuat objek `Web3`, Anda dapat menggunakannya untuk membaca data dari jaringan Lisk.
-For example, you can use the `getBlockNumber` method to get the latest block:
+Sebagai contoh, Anda dapat menggunakan metode `getBlockNumber` untuk mendapatkan blok terbaru:
```javascript
-// Retrieve data from blockchain
+// Mengambil data dari blockchain
async function getLatestBlock() {
const latestBlock = await web3.eth.getBlockNumber()
console.log("The latest block's number is:", latestBlock);
@@ -108,17 +107,17 @@ async function getLatestBlock() {
getLatestBlock();
```
- Complete code example
+ Contoh kode lengkap:
```javascript
import { Web3 } from 'web3';
- // Instantiate a web3 object by passing the RPC URL of Lisk Sepolia.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk Sepolia.
const web3 = new Web3('https://rpc.sepolia-api.lisk.com');
- // Instantiate a web3 object by passing the RPC URL of Lisk.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk.
// const web3 = new Web3('https://rpc.api.lisk.com');
- // Retrieve data from blockchain
+ // Mengambil data dari blockchain
async function getLatestBlock() {
const latestBlock = await web3.eth.getBlockNumber()
console.log("The latest block's number is:", latestBlock);
@@ -133,72 +132,72 @@ getLatestBlock();
:::tip
-Web3 provides a wide range of [Web3Eth methods](https://docs.web3js.org/guides/web3_eth/methods/) that can be used to interact with the blockchain.
+Web3 menyediakan berbagai [metode Web3Eth](https://docs.web3js.org/guides/web3_eth/methods/) yang dapat digunakan untuk berinteraksi dengan blockchain.
:::
-### Writing data to the blockchain
+### Menulis Data ke Blockchain
-To write data to the Lisk network, you need to create a [`Wallet`](https://docs.web3js.org/guides/wallet/).
+Untuk menulis data ke jaringan Lisk, Anda perlu membuat sebuah [`Dompet`](https://docs.web3js.org/guides/wallet/).
:::note
-A web3.js `Wallet` is your main entry point if you want to use a private key to do any blockchain operations e.g., sending transactions, etc.
-It is also called a `Signer` in other libraries.
+`Dompet` pada web3.js adalah titik masuk utama Anda jika ingin menggunakan private key untuk melakukan operasi blockchain, seperti mengirim transaksi, dan lainnya.
+Ini juga disebut sebagai `Signer` di library lain.
:::
-You can create a `Wallet` by instantiating a new Web3 `Wallet` object and the add private key(s) into it.
-Such private key(s) can later be used to send transactions on the blockchain.
+Anda dapat membuat sebuah `Dompet` dengan menginstansikan objek `Wallet` baru dari Web3 dan menambahkan private key ke dalamnya.
+Private key tersebut nantinya dapat digunakan untuk mengirim transaksi di blockchain.
```javascript
-// Add an account to a wallet
+// Menambahkan akun ke dompet
const privateKey = '0x';
const account = web3.eth.accounts.wallet.add(privateKey);
-// Create transaction object to send '.0001' eth to '0x.....' address from the account[0]
+// Buat objek transaksi untuk mengirimkan `0.0001` ETH ke alamat `0x.....` dari akun account[0].
const tx =
{
from: account[0].address,
to: '',
value: web3.utils.toWei('.0001', 'ether')
};
-// The 'from' address must match the one previously added with 'wallet.add'
+// Alamat `from` harus sesuai dengan yang sebelumnya ditambahkan menggunakan `wallet.add`.
-// Send the transaction
+// Kirim transaksi
const txReceipt = await web3.eth.sendTransaction(tx);
console.log('Tx hash:', txReceipt.transactionHash)
```
:::info
-`PRIVATE_KEY` is the private key of the account that is used to sign and send a transaction using web3.js.
+`PRIVATE_KEY` adalah private key dari akun yang digunakan untuk menandatangani dan mengirim transaksi menggunakan web3.js.
:::
-The receiving account's balance will increment by `0.0001` ETH once the transaction execution is successful.
+Saldo akun penerima akan bertambah sebesar `0.0001` ETH setelah transaksi berhasil dieksekusi.
- Complete code example
+ Contoh kode lengkap
```js
import { Web3 } from 'web3';
- // Instantiate a web3 object by passing the RPC URL of Lisk Sepolia.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk Sepolia.
const web3 = new Web3('https://rpc.sepolia-api.lisk.com');
- // Instantiate a web3 object by passing the RPC URL of Lisk.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk.
// const web3 = new Web3('https://rpc.api.lisk.com');
- // Add an account to a wallet
+ // Tambahkan sebuah akun ke dompet.
const privateKey = '0x';
const account = web3.eth.accounts.wallet.add(privateKey);
- // Create transaction object to send '.0001' eth to '0x.....' address from the account[0]
+ // Buat objek transaksi untuk mengirimkan `0.0001` ETH ke alamat `0x.....` dari akun account[0]
const tx =
{
from: account[0].address,
to: '',
value: web3.utils.toWei('.0001', 'ether')
};
- // The 'from' address must match the one previously added with 'wallet.add'
+ // Alamat `from` harus sesuai dengan yang sebelumnya ditambahkan menggunakan `wallet.add`.
- // Send the transaction
+ // Kirim transaksi
const txReceipt = await web3.eth.sendTransaction(tx);
console.log('Tx hash:', txReceipt.transactionHash)
@@ -207,57 +206,57 @@ The receiving account's balance will increment by `0.0001` ETH once the transact
+## Berinteraksi dengan Kontrak Pintar
-## Interacting with smart contracts
-
-You can use web3.js to interact with a smart contract on Lisk by instantiating a `Contract` object and passing it the `ABI` and `address` of a deployed contract.
+Anda dapat menggunakan web3.js untuk berinteraksi dengan sebuah kontrak pintar di Lisk dengan menginstansikan objek `Contract` dan memberikan `ABI` serta `address` dari kontrak pintar yang telah diluncurkan.
-In the following sections, we will:
-- Read data from a deployed contract, specifically, we will fetch the **name of the contract**.
-- Furthermore, we will **mint a token**, via an already deployed contract.
+Pada bagian berikut, kita akan:
+- Membaca data dari kontrak pintar yang telah diluncurkan, secara spesifik, kita akan mengambil **nama dari kontrak tersebut**.
+- Selain itu, kita juga akan **mint token** melalui kontrak pintar yang sudah diluncurkan.
:::tip
-For an overview of existing public functions for the contract, please check the [Read Contract](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=read_contract) and [Write Contract](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract) tabs for the specific contract.
+Untuk gambaran umum tentang fungsi publik yang tersedia pada kontrak, silakan periksa tab [Read Contract](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=read_contract) dan [Write Contract](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract) untuk kontrak tertentu.
:::
-### Reading from smart contracts
-To read data from a smart contract, one needs to pass the `address` and `abi` of the deployed & verfied contract.
-Once the aforementioned information is passed, any read-only function of the smart contract can be called, as described below:
+### Membaca dari Kontrak Pintar
+
+Untuk membaca data dari sebuah kontrak pintar, Anda perlu memberikan `address` dan `abi` dari kontrak pintar yang telah diluncurkan dan diverifikasi.
+Setelah informasi tersebut diberikan, fungsi _read-only_ dari kontrak pintar dapat dipanggil, seperti yang dijelaskan di bawah ini:
- ```js title="Fetching the contract's name"
- // Address of the contract you want to interact with.
+ ```js title="Mengambil nama kontrak"
+ // Alamat kontrak yang ingin Anda interaksikan
const address = '0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5';
- // Instantiate the contract object
+ // Instansiasi objek kontrak
const contract = new web3.eth.Contract(abi, address);
- // Call any of the 'Read contract' functions e.g. 'name()'
+ // Panggil salah satu fungsi 'Read contract', misalnya 'name()'.
const contractName = await contract.methods.name().call();
console.log('Contract\'s Name is: ', contractName);
```
- Complete code example
+ Contoh kode lengkap
```javascript title="get-contract-name.js"
import { Web3 } from 'web3';
import { abi } from './abi.js';
- // Instantiate a web3 object by passing the RPC URL of Lisk Sepolia.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk Sepolia
const web3 = new Web3('https://rpc.sepolia-api.lisk.com');
- // Instantiate a web3 object by passing the RPC URL of Lisk.
+ // Instansikan objek web3 dengan memberikan URL RPC dari Lisk
// const web3 = new Web3('https://rpc.api.lisk.com');
- // Address of the contract you want to interact with.
+ // Alamat kontrak yang ingin Anda interaksikan
const address = '0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5';
- // Instantiate the contract object
+ // Instansiasi objek kontrak
const contract = new web3.eth.Contract(abi, address);
- // Call any of the 'Read contract' functions e.g. 'name()'
+ // Panggil salah satu fungsi 'Read contract', misalnya 'name()'
const contractName = await contract.methods.name().call();
console.log('Contract\'s Name is: ', contractName);
@@ -272,10 +271,10 @@ Once the aforementioned information is passed, any read-only function of the sma
:::tip
-The ABI of a contract can be found on the respective contract page in [BlockScout](https://sepolia-blockscout.lisk.com/).
+ABI sebuah kontrak dapat ditemukan pada halaman kontrak terkait di [BlockScout](https://sepolia-blockscout.lisk.com/).
-For example, you can use the ABI for the [Lisk NFT Token contract](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=contract).
-Just scroll down to `Contract ABI` and copy the deployed contract's ABI.
+Sebagai contoh, Anda dapat menggunakan ABI untuk [kontrak Token NFT Lisk](https://sepolia-blockscout.lisk.com/token/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=contract).
+Cukup scroll ke bagian `Contract ABI` dan salin ABI kontrak yang telah diluncurkan.
:::
@@ -756,66 +755,66 @@ export const abi = [
-### Writing to smart contracts
+### Menulis ke Kontrak Pintar
-To write data through a contract's method, a few things are required such as:
+Untuk menulis data melalui metode kontrak, beberapa hal diperlukan, seperti:
-- contract's address
-- recipient's address
-- private key of the sender
-- ... and the method's name
+- alamat kontrak
+- alamat penerima
+- private key pengirim
+- ... dan nama metode
-Use the following snippet to interact with an already [deployed contract's](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract) `mint()` function.
+Gunakan cuplikan kode berikut untuk berinteraksi dengan fungsi `mint()` dari [kontrak yang telah diluncurkan](https://sepolia-blockscout.lisk.com/address/0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5?tab=write_contract).
```javascript title="miniting-token.js"
-// Address of the contract you want to interact with.
+// Alamat kontrak yang ingin Anda interaksikan
const contractAddress = '0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5';
-// Address of the Recipient account receiving the NFT.
+// Alamat akun penerima yang akan menerima NFT.
const recipientAddress = 'RECIPIENT_ADDRESS'
const amount = web3.utils.toWei('.0001', 'ether')
-// PRIVATE_KEY of the sender's account.
+// PRIVATE_KEY dari akun pengirim.
const privateKey = 'PRIVATE_KEY';
const account = web3.eth.accounts.wallet.add(privateKey);
-// Instantiate the contract object
+// Instansiasi objek kontrak.
const contract = new web3.eth.Contract(abi, contractAddress);
-// Send a request to the 'mint()' function to mint a token.
+// Kirim permintaan ke fungsi `mint()` untuk mencetak token.
const txReceipt = await contract.methods.mint(recipientAddress, amount).send({ from: account[0].address });
console.log('Tx hash:', txReceipt.transactionHash);
```
-Complete code example
+Contoh kode lengkap
```javascript title="miniting-token.js"
import { Web3 } from 'web3';
import { abi } from './abi.js';
-// Instantiate a web3 object by passing the RPC URL of Lisk.
+// Instansiasi objek web3 dengan memberikan URL RPC dari Lisk.
const web3 = new Web3('https://rpc.sepolia-api.lisk.com');
-// For Lisk network
+// Untuk jaringan Lisk
//const web3 = new Web3('https://rpc.api.lisk.com');
-// Address of the contract you want to interact with.
+// Alamat kontrak yang ingin Anda interaksikan.
const contractAddress = '0x108872F713A27bc22ca1db8CEefCAC8CbeDdF9E5';
-// Address of the Recipient account receiving the NFT.
+// Alamat akun penerima yang akan menerima NFT.
const recipientAddress = 'RECIPIENT_ADDRESS'
const amount = web3.utils.toWei('.0001', 'ether')
-// PRIVATE_KEY of the sender's account.
+// PRIVATE_KEY dari akun pengirim.
const privateKey = 'PRIVATE_KEY';
const account = web3.eth.accounts.wallet.add(privateKey);
-// Instantiate the contract object
+// Instansiasi objek kontrak.
const contract = new web3.eth.Contract(abi, contractAddress);
-// Send a request to the 'mint()' function to mint a token.
+// Kirim permintaan ke fungsi `mint()` untuk me-mint token.
const txReceipt = await contract.methods.mint(recipientAddress, amount).send({ from: account[0].address });
console.log('Tx hash:', txReceipt.transactionHash);
@@ -826,6 +825,6 @@ Transaction hash: 0xe654513f453623d9ce329b575985b7fcd09116325d10150d7cd30dcdedc1
```
:::info
-You can use the transaction hash received above to check the details of the `mint` transaction on Blockscout Explorer: [`0xe654513f453623d9ce329b575985b7fcd09116325d10150d7cd30dcdedc124a9`](https://sepolia-blockscout.lisk.com/tx/0xe654513f453623d9ce329b575985b7fcd09116325d10150d7cd30dcdedc124a9).
+Anda dapat menggunakan hash transaksi yang diterima di atas untuk memeriksa detail transaksi `mint` di Blockscout Explorer: [`0xe654513f453623d9ce329b575985b7fcd09116325d10150d7cd30dcdedc124a9`](https://sepolia-blockscout.lisk.com/tx/0xe654513f453623d9ce329b575985b7fcd09116325d10150d7cd30dcdedc124a9).
:::
\ No newline at end of file
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/run-a-lisk-node.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/run-a-lisk-node.md
index 81e4448b9..f934f5b26 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/run-a-lisk-node.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/run-a-lisk-node.md
@@ -1,10 +1,10 @@
---
-title: Running a Lisk Node
+title: Menjalankan Node Lisk
slug: /building-on-lisk/run-a-lisk-node
-description: A tutorial that teaches how to set up and run a Lisk Node.
+description: Tutorial yang mengajarkan cara memasang dan menjalankan Node Lisk.
keywords:
[
- Lisk Node setup,
+ pemasangan node Lisk,
running a node,
Lisk node,
run a Lisk node,
@@ -14,61 +14,62 @@ keywords:
Lisk chain,
Lisk blockchain,
Lisk network,
- node deployment,
+ peluncuran node,
Ethereum node,
]
-tags: ['nodes']
+tags: ["node"]
difficulty: beginner
---
-This tutorial will walk you through setting up your own [Lisk Node].
+**Menjalankan Node Lisk**
-## Objectives
+Tutorial ini akan memandu Anda untuk mengatur dan menjalankan [Node Lisk] Anda sendiri.
-By the end of this tutorial you should be able to:
+## Tujuan
-- Deploy and sync a Lisk node
+Pada akhir tutorial ini, Anda akan dapat:
-## Prerequisites
+- Meluncurkan dan menyinkronkan node Lisk
+
+## Prasyarat
:::caution
-Running a node is time consuming, resource expensive, and potentially costly. If you don't already know why you want to run your own node, you probably don't need to.
+Menjalankan node membutuhkan waktu, sumber daya, dan biaya yang signifikan. Jika Anda belum mengetahui alasan untuk menjalankan node Anda sendiri, kemungkinan besar Anda tidak membutuhkannya.
-If you're just getting started and need an RPC URL, you can use our free endpoints:
+Jika Anda baru memulai dan memerlukan URL RPC, Anda dapat menggunakan endpoint gratis kami:
- **Mainnet**: `https://rpc.api.lisk.com`
- **Testnet (Sepolia)**: `https://rpc.sepolia-api.lisk.com`
-**Note:** Our RPCs are rate-limited, they are not suitable for production apps.
+**Catatan:** RPC kami memiliki _rate limit_, sehingga tidak cocok untuk aplikasi produksi.
-If you're looking to harden your app and avoid rate-limiting for your users, please check out one of our [partners].
+Jika Anda ingin memperkuat aplikasi Anda dan menghindari _rate limit_ untuk pengguna Anda, silakan cek salah satu [mitra kami].
:::
-## System requirements
+## Persyaratan Sistem
-The following system requirements are recommended to run a Lisk L2 node.
+Persyaratan sistem berikut direkomendasikan untuk menjalankan node Lisk L2.
-### Memory
+### Memori
-- Modern multi-core CPU with good single-core performance.
-- Machines with a minimum of 16 GB RAM (32 GB recommended).
+- CPU _multi-core_ modern dengan kinerja _core_ tunggal yang baik.
+- Mesin dengan minimal 16 GB RAM (32 GB disarankan).
-### Storage
+### Penyimpanan
-- Machines with a high performance SSD drive with at least 750GB (full node) or 4.5TB (archive node) free.
+- Mesin dengan SSD berkinerja tinggi dengan ruang kosong setidaknya 750GB (untuk node penuh) atau 4.5TB (untuk node arsip).
-## Usage
+## Penggunaan
:::note
-It is currently not possible to run the nodes with the `--op-network` flag until the configs for Lisk have been merged into the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry).
+Saat ini belum memungkinkan untuk menjalankan node dengan _flag_ `--op-network` hingga konfigurasi untuk Lisk digabungkan ke dalam [superchain-registry](https://github.com/ethereum-optimism/superchain-registry).
-There is currently an [open PR](https://github.com/ethereum-optimism/superchain-registry/pull/234) to add the Lisk Mainnet config.
-The Lisk Sepolia Testnet will be supported soon as well.
+Saat ini ada [PR terbuka](https://github.com/ethereum-optimism/superchain-registry/pull/234) untuk menambahkan konfigurasi Lisk Mainnet. Dukungan untuk Lisk Sepolia Testnet akan segera ditambahkan.
:::
-### Clone the Repository
+### Mengkloning Repository
```sh
git clone https://github.com/LiskHQ/lisk-node.git
@@ -80,30 +81,31 @@ cd lisk-node
### Docker
-1. Ensure you have an Ethereum L1 full node RPC available (not Lisk), and set the `OP_NODE_L1_ETH_RPC` and the `OP_NODE_L1_BEACON` variables (within the `.env.*` files, if using docker-compose).
- If running your own L1 node, it needs to be synced before the Lisk node will be able to fully sync.
-2. Please ensure that the environment file relevant to your network (`.env.sepolia`, or `.env.mainnet`) is set for the `env_file` properties within `docker-compose.yml`.
- By default, it is set to `.env.mainnet`.
- :::info
- We currently support running either the `op-geth` or the `op-reth` nodes alongside the `op-node`. By default, we run the `op-geth` node. If you would like to run the `op-reth` node instead, please set the `CLIENT` environment variable to `reth` before starting the node.
- :::
-3. Run:
+1. Pastikan Anda memiliki RPC node penuh Ethereum L1 (bukan Lisk), dan atur variabel `OP_NODE_L1_ETH_RPC` dan `OP_NODE_L1_BEACON` (dalam file `.env.*`, jika menggunakan docker-compose).
+ Jika Anda menjalankan node L1 sendiri, node tersebut harus disinkronkan sebelum node Lisk dapat sepenuhnya sinkron.
+2. Pastikan file _environment_ yang relevan dengan jaringan Anda (`.env.sepolia`, atau `.env.mainnet`) diatur untuk properti `env_file` dalam `docker-compose.yml`. Secara default, diatur ke `.env.mainnet`.
+
+ :::info
+ Kami saat ini mendukung menjalankan node `op-geth` atau `op-reth` bersama dengan `op-node`. Secara default, kami menjalankan node `op-geth`. Jika Anda ingin menjalankan node `op-reth`, silakan atur variabel _environment_ `CLIENT` ke `reth` sebelum memulai node.
+ :::
- ```
- docker compose up --build --detach
- ```
+3. Jalankan:
-4. You should now be able to `curl` your Lisk node:
- ```
- curl -s -d '{"id":0,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \
- -H "Content-Type: application/json" http://localhost:8545
- ```
+ ```
+ docker compose up --build --detach
+ ```
-### Syncing
+4. Anda sekarang seharusnya dapat melakukan `curl` ke node Lisk Anda:
+ ```
+ curl -s -d '{"id":0,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \
+ -H "Content-Type: application/json" http://localhost:8545
+ ```
-Sync speed depends on your L1 node, as the majority of the chain is derived from data submitted to the L1.
-You can check your syncing status using the `optimism_syncStatus` RPC on the `op-node` container.
-Example:
+### Sinkronisasi
+
+Kecepatan sinkronisasi tergantung pada node L1 Anda, karena sebagian besar chain berasal dari data yang dikirimkan ke L1.
+Anda dapat memeriksa status sinkronisasi Anda menggunakan RPC `optimism_syncStatus` pada container `op-node`.
+Contoh:
```
command -v jq &> /dev/null || { echo "jq is not installed" 1>&2 ; }
@@ -113,6 +115,5 @@ $( curl -s -d '{"id":0,"jsonrpc":"2.0","method":"optimism_syncStatus"}' -H "Cont
jq -r .result.unsafe_l2.timestamp))/60)) minutes
```
-
-[partners]: /lisk-tools/api-providers
-[lisk node]: https://github.com/LiskHQ/lisk-node
\ No newline at end of file
+[mitra kami]: /lisk-tools/api-providers
+[node lisk]: https://github.com/LiskHQ/lisk-node
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-1155.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-1155.md
index 10f047892..b38165937 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-1155.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-1155.md
@@ -1,36 +1,37 @@
---
-title: 'Deploying a new ERC-1155 token on Lisk'
-description: 'A guide on how to deploy a new ERC-1155 token on Lisk.'
+title: "Meluncurkan Token ERC-1155 Baru di Lisk"
+description: "Panduan tentang Cara Meluncurkan Token ERC-1155 Baru di Lisk"
keywords:
[
- 'Lisk',
- 'Token development',
- 'Deploy token',
- 'ERC',
- 'EIP',
- 'ERC-1155',
- 'Hybrid token',
- 'Multi token',
+ "Lisk",
+ "Pengembangan Token",
+ "Meluncurkan token",
+ "ERC",
+ "EIP",
+ "ERC-1155",
+ "Token Hybrid",
+ "Multi token",
]
---
-# How to deploy a new ERC-1155 token on Lisk
+# Cara Meluncurkan Token ERC-721 Baru di Lisk
:::note
-We will use Remix IDE for smart contract development in this guide, but feel free to choose a [smart contract development framework](/category/building-on-lisk/deploying-smart-contract) of your choice to implement your token contract.
+Panduan ini menggunakan Remix IDE untuk pengembangan kontrak pintar, tetapi Anda bebas memilih [framework pengembangan kontrak pintar](/category/building-on-lisk/deploying-smart-contract) lain sesuai preferensi Anda untuk mengimplementasikan kontrak token Anda.
:::
-## 1. Open Remix
+## 1. Buka Remix
-Navigate to [Remix](https://remix.ethereum.org) in your browser.
+Akses [Remix](https://remix.ethereum.org) di browser Anda.
-## 2. Create a new file
-Inside the `contracts` folder, click the π ("Create new file") button to create a new empty Solidity file.
-You can name this file whatever you'd like, e.g., `MyItems.sol`.
+## 2. Buat File Baru
-## 3. Copy the example contract
+Di dalam folder `contracts`, klik tombol π ("Buat file baru") untuk membuat file Solidity kosong baru.
+Anda dapat memberikan nama file sesuai keinginan, misalnya, `MyItems.sol`.
-Copy the following example contract into your new file:
+## 3. Salin Contoh Kontrak
+
+Salin contoh kontrak berikut ke dalam file baru Anda:
```solidity
// SPDX-License-Identifier: MIT
@@ -56,65 +57,63 @@ contract MyItems is ERC1155 {
```
:::note
-Gold, Silver,Sword and shield are fungible tokens whilst Thorβs Hammer is a non-fungible token as we minted only one.
+Pada contoh diatas, _Gold_, _Silver_, _Sword_, dan _Shield_ adalah token yang dapat dipertukarkan (fungible token), sedangkan _Thorβs Hammer_ adalah token yang tidak dapat dipertukarkan (non-fungible token) karena kami hanya mencetak satu unit.
:::
-An URI pointing to the JSON metadata of the different items/ tokens needs to be specified in the constructor, see [ERC-1155 contract API](https://docs.openzeppelin.com/contracts/3.x/api/token/erc1155#ERC1155).
-
-The URI can include the string `{id}`, which clients must replace with the actual token ID, in lowercase hexadecimal (with no 0x prefix) and leading zero-padded to 64 hex characters.
-The URI MUST point to a JSON file that conforms to the [ERC-1155 Metadata URI JSON Schema](https://eips.ethereum.org/EIPS/eip-1155).
+Sebuah URI yang menunjuk ke metadata JSON dari item/token yang berbeda harus ditentukan dalam konstruktor, lihat [API kontrak ERC-1155](https://docs.openzeppelin.com/contracts/3.x/api/token/erc1155#ERC1155).
+URI tersebut dapat menyertakan string `{id}`, yang harus diganti oleh klien dengan ID token sebenarnya dalam format heksadesimal huruf kecil (tanpa awalan `0x`) dan disertakan nol di depan hingga mencapai 64 karakter heksadesimal.
+URI **HARUS** menunjuk ke file JSON yang sesuai dengan [Skema JSON Metadata URI ERC-1155](https://eips.ethereum.org/EIPS/eip-1155).
-For token ID 2 and uri `https://game.example/api/item/{id}.json` clients would replace `{id}` with `0000000000000000000000000000000000000000000000000000000000000002` to retrieve JSON at `https://game.example/api/item/0000000000000000000000000000000000000000000000000000000000000002.json`.
+Untuk token ID 2 dan URI `https://game.example/api/item/{id}.json`, klien akan mengganti `{id}` dengan `0000000000000000000000000000000000000000000000000000000000000002` untuk mengambil JSON di `https://game.example/api/item/0000000000000000000000000000000000000000000000000000000000000002.json`.
-The JSON document for token ID 2 might look something like:
+Dokumen JSON untuk token ID 2 mungkin akan terlihat seperti ini:
```json
{
- "name": "Thor's hammer",
- "description": "MjΓΆlnir, the legendary hammer of the Norse god of thunder.",
- "image": "https://game.example/item-id-8u5h2m.png",
- "strength": 20
+ "name": "Thor's hammer",
+ "description": "MjΓΆlnir, the legendary hammer of the Norse god of thunder.",
+ "image": "https://game.example/item-id-8u5h2m.png",
+ "strength": 20
}
```
-For more information about the metadata JSON Schema, check out the [ERC-1155 Metadata URI JSON Schema](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md#erc-1155-metadata-uri-json-schema).
+Untuk informasi lebih lanjut tentang Skema JSON Metadata, silakan lihat [Skema JSON Metadata URI ERC-1155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md#erc-1155-metadata-uri-json-schema).
+
+## 4. Kompilasi Kontrak
-## 4. Compile the contract
+Pastikan bahwa versi compiler di Remix IDE sesuai dengan versi compiler yang disebutkan di kontrak pintar: `pragma solidity ^0.8.28;`.
-Please double-check that the compiler version of the Remix IDE is matching with the compiler version mentioned in the smart contract: `pragma solidity ^0.8.28;`.
+Tekan tombol play berwarna hijau di bagian atas untuk mengompilasi kontrak.
-Press the green play button at the top to compile the contract.
+## 5. Luncurkan Kontrak
-## 5. Deploy the contract
+Buka tab `Deploy & run transactions` (ikon ini terlihat seperti logo Ethereum dengan panah mengarah ke kanan). Pastikan bahwa _environment_ Anda diatur ke "Injected Provider", dompet Anda terhubung ke jaringan Lisk atau Lisk Sepolia, dan Remix memiliki akses ke dompet Anda.
+Kemudian, pilih kontrak `MyItems` dari dropdown deployment dan klik tombol `Deploy` berwarna oranye untuk meluncurkan kontrak.
+Akhirnya, konfirmasi deployment kontrak di dompet Anda yang terhubung.
-Open the `Deploy & run transactions` tab (this looks like an Ethereum logo with an arrow pointing right).
-Make sure that your environment is set to "Injected Provider", your wallet is connected to Lisk or Lisk Sepolia network, and Remix has access to your wallet.
-Then, select the `MyItems` contract from the deployment dropdown and click the orange `Deploy` button to deploy the contract.
-Finally, confirm the contract deployment in your connected wallet.
+Periksa pesan log Remix; pesan tersebut akan mencantumkan alamat kontrak.
+Tempelkan alamat ini di BlockScout untuk melihat kontrak di penjelajah blockchain Lisk: https://sepolia-blockscout.lisk.com/address/0x8b2f45e810F539647e70fBCd6441B73d332Ef1A0
-Check the Remix log messages; they should include the contract address.
-Paste this address in BlockScout, to see the contract in the Lisk blockchain explorer: https://sepolia-blockscout.lisk.com/address/0x8b2f45e810F539647e70fBCd6441B73d332Ef1A0
+Jika Anda memilih untuk meluncurkan di Lisk Mainnet, tempelkan alamat tersebut di https://blockscout.lisk.com
-In case you chose to deploy on the Lisk Mainnet, you need to paste the address on https://blockscout.lisk.com instead.
+## 6. Verifikasi Kontrak
-## 6. Verify the contract
+Jika Anda ingin berinteraksi dengan kontrak Anda di penjelajah blockchain, Anda, atau orang lain, harus memverifikasinya terlebih dahulu.
+Kontrak di atas sudah diverifikasi, sehingga Anda seharusnya dapat melihat versi Anda di penjelajah blockchain.
+Selebihnya dari panduan ini, kami akan menjelaskan cara memverifikasi kontrak Anda dengan Remix di Lisk Sepolia Testnet.
-If you want to interact with your contract on the block explorer, you, or someone else needs to verify it first.
-The above contract has already been verified, so you should be able to view your version on a block explorer already.
-For the remainder of this guide, we'll walk you through how to verify your contract with Remix on the Lisk Sepolia Testnet.
+Anda dapat menerapkan langkah yang sama untuk memverifikasi kontrak di Lisk Mainnet, jika kontrak diluncurkan di jaringan tersebut, cukup gunakan https://blockscout.lisk.com untuk menggantikan https://sepolia-blockscout.lisk.com pada langkah 2 dibawah ini.
-You can apply the same steps for verifying a contract on Lisk Mainnet, in case you deployed it there in the previous step, just use https://blockscout.lisk.com instead of https://sepolia-blockscout.lisk.com in step 2.
+1. Di Remix, klik kanan pada kontrak yang ingin Anda verifikasi dan pilih `Flatten`.
+ Ini akan membuat file baru bernama `MyItems_flattened.sol`.
+2. Sekarang, buka [kontrak yang baru saja Anda luncurkan](https://sepolia-blockscout.lisk.com/address/0x8b2f45e810F539647e70fBCd6441B73d332Ef1A0) di https://sepolia-blockscout.lisk.com.
+3. Buka tab kontrak dan klik tombol `Verify and Publish` berwarna biru.
+ - (Opsional) Atur lisensi untuk kontrak Anda.
+ - Pilih `Solidity (Single file)` sebagai metode verifikasi.
+ - Pilih versi compiler yang sesuai untuk kontrak Anda.
+ - Nonaktifkan _code optimization_.
+ - Salin _source code_ yang telah diflatkan dari Remix dan tempelkan di kolom `Enter the Solidity Contract Code`.
+4. Periksa bahwa semua informasi sudah benar, lalu klik tombol `Verify and Publish` untuk memverifikasi kontrak Anda.
-1. In Remix, rightlick on the contract you wish to verify and select `Flatten`.
-This will create a new file `MyItems_flattened.sol`.
-2. Now, switch to your [newly deployed contract](https://sepolia-blockscout.lisk.com/address/0x8b2f45e810F539647e70fBCd6441B73d332Ef1A0) on https://sepolia-blockscout.lisk.com/
-3. Go to the `Contract` tab and click on the blue `Verify and Publish` button.
- - (Optional) Set a license for your contract.
- - Choose `Solidity (Single file)` as the verification method.
- - Choose the fitting compiler version for your contract.
- - Disable code optimization.
- - Copy the flattened source code from Remix and paste it into the `Enter the Solidity Contract Code` field.
-- Check that all info is correct and click the `Verify and Publish` button, to verify your contract.
-
- Once verified, the code tab will include the β
icon, and the source code will be viewable.
+Setelah diverifikasi, tab kode akan menyertakan ikon β
, dan _source code_ akan dapat dilihat.
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-20.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-20.md
index 80a81ad36..f129f340c 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-20.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-20.md
@@ -1,39 +1,38 @@
---
-title: 'Deploying a new ERC-20 token on Lisk'
-description: 'A guide on how to deploy a new ERC-20 token on Lisk.'
+title: "Meluncurkan Token ERC-20 Baru di Lisk"
+description: "Panduan untuk meluncurkan Token ERC-20 Baru di Lisk"
keywords:
[
- 'Lisk',
- 'Token development',
- 'Deploy token',
- 'ERC',
- 'EIP',
- 'ERC-20',
- 'Fungible token',
+ "Lisk",
+ "Pengembangan token",
+ "Meluncurkan token",
+ "ERC",
+ "EIP",
+ "ERC-20",
+ "Fungible token",
]
---
-# How to deploy a new ERC-20 token on Lisk
+# Cara Meluncurkan Token ERC-20 Baru di Lisk
-This guide explains how to deploy a new ERC-20 token to Lisk.
-In case you want to bridge an existing token from Ethereum, please refer to the guide [Bridging an L1 token to Lisk](../add-token-to-lisk).
+Panduan ini menjelaskan cara meluncurkan token ERC-20 baru ke Lisk. Jika Anda ingin menjembatani (_bridge_) token yang sudah ada dari Ethereum, silakan merujuk ke panduan [Menjembatani Token L1 ke Lisk](../add-token-to-lisk).
:::note
-We will use Remix IDE for smart contract development in this guide, but feel free to choose a [smart contract development framework](/category/building-on-lisk/deploying-smart-contract) of your choice to implement your token contract.
+Dalam panduan ini, kita akan menggunakan Remix IDE untuk pengembangan kontrak pintar, tetapi Anda bebas memilih [framework pengembangan kontrak pintar](/category/building-on-lisk/deploying-smart-contract) lainnya untuk mengimplementasikan kontrak token Anda.
:::
-## 1. Open Remix
+## 1. Buka Remix
-Navigate to [Remix](https://remix.ethereum.org) in your browser.
+Akses [Remix](https://remix.ethereum.org) di browser Anda.
-## 2. Create a new file
+## 2. Buat File Baru
-Inside the `contracts` folder, click the π ("Create new file") button to create a new empty Solidity file.
-You can name this file whatever you'd like, e.g., `MyToken.sol`.
+Di dalam folder `contracts`, klik tombol π ("Create new file") untuk membuat file Solidity kosong yang baru.
+Anda dapat memberi nama file ini sesuai keinginan, misalnya `MyToken.sol`.
-## 3. Copy the example contract
+## 3. Salin Kontrak Contoh
-Copy the following example contract into your new file:
+Salin kontrak contoh berikut ke dalam file baru Anda:
```solidity
// SPDX-License-Identifier: MIT
@@ -45,51 +44,51 @@ contract MyToken is ERC20 {
constructor(string memory _name, string memory _symbol, uint256 initialSupply) ERC20(_name, _symbol) {
_mint(msg.sender, initialSupply);
}
-
+
}
```
-## 4. Compile the contract
+## 4. Kompilasi Kontrak
+
+Pastikan bahwa versi compiler di Remix IDE sesuai dengan versi compiler yang disebutkan di kontrak pintar: `pragma solidity ^0.8.28;`.
-Please double-check that the compiler version of the Remix IDE is matching with the compiler version mentioned in the smart contract: `pragma solidity ^0.8.28;`.
+Tekan tombol play berwarna hijau di bagian atas untuk mengompilasi kontrak.
-Press the green play button at the top to compile the contract.
+## 5. Meluncurkan Kontrak
-## 5. Deploy the contract
+Buka tab `Deploy & run transactions` (ikon ini terlihat seperti logo Ethereum dengan panah mengarah ke kanan). Pastikan bahwa _environment_ Anda diatur ke "Injected Provider", _wallet_ Anda terhubung ke jaringan Lisk atau Lisk Sepolia, dan Remix memiliki akses ke _wallet_ Anda.
+Kemudian, pilih kontrak `MyToken` dari dropdown deployment dan luncurkan dengan parameter pilihan Anda, misalnya:
-Open the `Deploy & run transactions` tab (this looks like an Ethereum logo with an arrow pointing right).
-Make sure that your environment is set to "Injected Provider", your wallet is connected to the Lisk or Lisk Sepolia network, and Remix has access to your wallet.
-Then, select the `MyToken` contract from the deployment dropdown and deploy it with the parameters of your choice, for example:
+- Nama: MyToken
+- Simbol: MYT
+- JumlahAwal: 1000000000000000000000
-- Name: MyToken
-- Symbol: MYT
-- InitalSupply: 1000000000000000000000
+Klik tombol `transact` berwarna oranye untuk meluncurkan kontrak.
+Akhirnya, konfirmasi peluncuran kontrak di _wallet_ Anda yang terhubung.
-Click on the orange `transact` button to deploy the contract.
-Finally, confirm the contract deployment in your connected wallet.
+Periksa pesan log Remix; pesan tersebut akan mencantumkan alamat kontrak.
+Tempel alamat ini di BlockScout untuk melihat kontrak di _explorer_ blockchain Lisk:
+https://sepolia-blockscout.lisk.com/address/0x6e8fF2E042c1637a2Da9563763c62362a3bbD712
-Check the Remix log messages; they should include the contract address.
-Paste this address in BlockScout, to see the contract in the Lisk blockchain explorer: https://sepolia-blockscout.lisk.com/address/0x6e8fF2E042c1637a2Da9563763c62362a3bbD712
+Jika Anda memilih untuk meluncurkan di Lisk Mainnet, tempelkan alamat tersebut di https://blockscout.lisk.com
-In case you chose to deploy on the Lisk Mainnet, you need to paste the address on https://blockscout.lisk.com instead.
+## 6. Verifikasi Kontrak
-## 6. Verify the contract
+Jika Anda ingin berinteraksi dengan kontrak Anda di penjelajah blockchain, Anda, atau orang lain, harus memverifikasinya terlebih dahulu.
+Kontrak di atas sudah diverifikasi, sehingga Anda seharusnya dapat melihat versi Anda di penjelajah blockchain.
+Selebihnya dari panduan ini, kami akan menjelaskan cara memverifikasi kontrak Anda dengan Remix di Lisk Sepolia Testnet.
-If you want to interact with your contract on the block explorer, you, or someone else needs to verify it first.
-The above contract has already been verified, so you should be able to view your version on a block explorer already.
-For the remainder of this guide, we'll walk through how to verify your contract with Remix on the Lisk Sepolia Testnet.
+Anda dapat menerapkan langkah yang sama untuk memverifikasi kontrak di Lisk Mainnet, jika jaringan itu yang Anda gunakan pada proses diatas, cukup gunakan https://blockscout.lisk.com untuk menggantikan https://sepolia-blockscout.lisk.com pada langkah 2 dibawah ini.
-You can apply the same steps for verifying a contract on Lisk Mainnet in case you deployed it there in the previous step, just use https://blockscout.lisk.com instead of https://sepolia-blockscout.lisk.com in step 2.
+1. Di Remix, klik kanan pada kontrak yang ingin Anda verifikasi dan pilih `Flatten`.
+ Ini akan membuat file baru bernama `MyToken_flattened.sol`.
+2. Sekarang, buka [kontrak yang baru saja Anda luncurkan](https://sepolia-blockscout.lisk.com/address/0x6e8fF2E042c1637a2Da9563763c62362a3bbD712) di https://sepolia-blockscout.lisk.com.
+3. Buka tab kontrak dan klik tombol `Verify and Publish` berwarna biru.
+ - (Opsional) Atur lisensi untuk kontrak Anda.
+ - Pilih `Solidity (Single file)` sebagai metode verifikasi.
+ - Pilih versi compiler yang sesuai untuk kontrak Anda.
+ - Nonaktifkan _code optimization_.
+ - Salin _source code_ yang telah diflatkan dari Remix dan tempelkan di kolom `Enter the Solidity Contract Code`.
+4. Periksa bahwa semua informasi sudah benar, lalu klik tombol `Verify and Publish` untuk memverifikasi kontrak Anda.
-1. In Remix, rightlick on the contract you wish to verify and select `Flatten`.
- This will create a new file `MyToken_flattened.sol`.
-2. Now, switch to your [newly deployed contract](https://sepolia-blockscout.lisk.com/address/0x6e8fF2E042c1637a2Da9563763c62362a3bbD712) on https://sepolia-blockscout.lisk.com/
-3. Go to the contract tab and click on the blue `Verify and Publish` button.
- - (Optional) Set a license for your contract.
- - Choose `Solidity (Single file)` as the verification method.
- - Choose the fitting compiler version for your contract.
- - Disable code optimization.
- - Copy the flattened source code from Remix and paste it into the `Enter the Solidity Contract Code` field.
-4. Check that all info is correct and click the `Verify and Publish` button, to verify your contract.
-
- Once verified, the code tab will include the β
icon, and the source code will be viewable.
+Setelah diverifikasi, tab kode akan menyertakan ikon β
, dan _source code_ akan dapat dilihat.
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-721.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-721.md
index dfe6fff23..2c6d90b21 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-721.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/deploy-erc-721.md
@@ -1,36 +1,36 @@
---
-title: 'Deploying a new ERC-721 token on Lisk'
-description: 'A guide on how to deploy a new ERC-721 token on Lisk.'
+title: "Meluncurkan Token ERC-721 Baru di Lisk"
+description: "Panduan Cara Meluncurkan Token ERC-721 Baru di Lisk."
keywords:
[
- 'Lisk',
- 'Token development',
- 'Deploy token',
- 'ERC',
- 'EIP',
- 'ERC-721',
- 'NFT',
+ "Lisk",
+ "Token development",
+ "Meluncurkan token",
+ "ERC",
+ "EIP",
+ "ERC-721",
+ "NFT",
]
---
-# How to deploy a new ERC-721 token on Lisk
+# Cara Meluncurkan Token ERC-721 Baru di Lisk
:::note
-We will use Remix IDE for smart contract development in this guide, but feel free to choose a [smart contract development framework](/category/building-on-lisk/deploying-smart-contract) of your choice to implement your token contract.
+Panduan ini menggunakan Remix IDE untuk pengembangan kontrak pintar, tetapi Anda bebas memilih [framework pengembangan kontrak pintar](/category/building-on-lisk/deploying-smart-contract) lain sesuai preferensi Anda untuk mengimplementasikan kontrak token Anda.
:::
-## 1. Open Remix
+## 1. Buka Remix
-Navigate to [Remix](https://remix.ethereum.org) in your browser.
+Akses [Remix](https://remix.ethereum.org) di browser Anda.
-## 2. Create a new file
+## 2. Buat File Baru
-Inside the `contracts` folder, click the π ("Create new file") button to create a new empty Solidity file.
-You can name this file whatever you'd like, e.g., `MyNFT.sol`.
+Di dalam folder `contracts`, klik tombol π ("Buat file baru") untuk membuat file Solidity kosong baru.
+Anda dapat memberikan nama file sesuai keinginan, misalnya, `MyNFT.sol`.
-## 3. Copy the example contract
+## 3. Salin Contoh Kontrak
-Copy the following example contract into your new file:
+Salin contoh kontrak berikut ke dalam file baru Anda:
```solidity
// SPDX-License-Identifier: MIT
@@ -51,40 +51,40 @@ contract MyNFT is ERC721 {
}
```
-## 4. Compile the contract
+## 4. Kompilasi Kontrak
-Please double-check that the compiler version of the Remix IDE is matching with the compiler version mentioned in the smart contract: `pragma solidity ^0.8.28;`.
+Pastikan bahwa versi compiler di Remix IDE sesuai dengan versi compiler yang disebutkan di kontrak pintar: `pragma solidity ^0.8.28;`.
-Press the green play button at the top to compile the contract.
+Tekan tombol _play_ berwarna hijau di bagian atas untuk mengompilasi kontrak.
-## 5. Deploy the contract
+## 5. Meluncurkan Kontrak
-Open the `Deploy & run transactions` tab (this looks like an Ethereum logo with an arrow pointing right).
-Make sure that your environment is set to "Injected Provider", your wallet is connected to Lisk or Lisk Sepolia network, and Remix has access to your wallet.
-Then, select the `MyNFT` contract from the deployment dropdown and click the orange `Deploy` button to deploy the contract and confirm the contract deployment in your connected wallet.
+Buka tab `Deploy & run transactions` (ikon ini terlihat seperti logo Ethereum dengan panah mengarah ke kanan). Pastikan bahwa _environment_ Anda diatur ke "Injected Provider", dompet Anda terhubung ke jaringan Lisk atau Lisk Sepolia, dan Remix memiliki akses ke dompet Anda.
+Kemudian, pilih kontrak `MyNFT` dari dropdown deployment dan klik tombol `Deploy` berwarna oranye untuk meluncurkan kontrak, lalu konfirmasikan proses peluncuran kontrak di dompet Anda yang terhubung.
-Check the Remix log messages; they should include the contract address.
-Paste this address in BlockScout, to see the contract in the Lisk blockchain explorer: https://sepolia-blockscout.lisk.com/address/0x73e7a94dD5760d862F6FD9f8ea5D4245Bb143446
+Periksa pesan log Remix; pesan tersebut akan mencantumkan alamat kontrak.
+Tempel alamat ini di BlockScout untuk melihat kontrak di _explorer_ blockchain Lisk:
+https://sepolia-blockscout.lisk.com/address/0x73e7a94dD5760d862F6FD9f8ea5D4245Bb143446
-In case you chose to deploy on the Lisk Mainnet, you need to paste the address on https://blockscout.lisk.com instead.
+Jika Anda memilih untuk meluncurkan di Lisk Mainnet, tempelkan alamat tersebut di https://blockscout.lisk.com
-## 6. Verify the contract
+## 6. Verifikasi Kontrak
-If you want to interact with your contract on the block explorer, you, or someone else needs to verify it first.
-The above contract has already been verified, so you should be able to view your version on a block explorer already.
-For the remainder of this guide, we'll walk through how to verify your contract with Remix on the Lisk Sepolia Testnet.
+Jika Anda ingin berinteraksi dengan kontrak Anda di penjelajah blockchain, Anda, atau orang lain, harus memverifikasinya terlebih dahulu.
+Kontrak di atas sudah diverifikasi, sehingga Anda seharusnya dapat melihat versi Anda di penjelajah blockchain.
+Selebihnya dari panduan ini, kami akan menjelaskan cara memverifikasi kontrak Anda dengan Remix di Lisk Sepolia Testnet.
-You can apply the same steps for verifying a contract on Lisk Mainnet, in case you deployed it there in the previous step, just use https://blockscout.lisk.com instead of https://sepolia-blockscout.lisk.com in step 2.
+Anda dapat menerapkan langkah yang sama untuk memverifikasi kontrak di Lisk Mainnet, jika kamu meluncurkannya di jaringan itu di langkah sebelumnya, cukup gunakan https://blockscout.lisk.com dari pada https://sepolia-blockscout.lisk.com pada langkah 2 dibawah ini.
- - In Remix, rightlick on the contract you wish to verify and select `Flatten`.
- This will create a new file `MyNFT_flattened.sol`.
- - Now, switch to your [newly deployed contract](https://sepolia-blockscout.lisk.com/address/0x73e7a94dD5760d862F6FD9f8ea5D4245Bb143446) on https://sepolia-blockscout.lisk.com/
- - Go to the contract tab and click on the blue `Verify and Publish` button.
- - (Optional) Set a license for your contract.
- - Choose `Solidity (Single file)` as the verification method.
- - Choose the fitting compiler version for your contract.
- - Disable code optimization.
- - Copy the flattened source code from Remix and paste it into the `Enter the Solidity Contract Code` field.
- - Check that all info is correct and click the `Verify and Publish` button, to verify your contract.
-
- Once verified, the code tab will include the β
icon, and the source code will be viewable.
\ No newline at end of file
+- Di Remix, klik kanan pada kontrak yang ingin Anda verifikasi dan pilih `Flatten`.
+ Ini akan membuat file baru bernama `MyNFT_flattened.sol`.
+- Sekarang, buka [kontrak yang baru saja Anda luncurkan](https://sepolia-blockscout.lisk.com/address/0x73e7a94dD5760d862F6FD9f8ea5D4245Bb143446) di https://sepolia-blockscout.lisk.com.
+- Buka tab kontrak dan klik tombol `Verify and Publish` berwarna biru.
+ - (Opsional) Atur lisensi untuk kontrak Anda.
+ - Pilih `Solidity (Single file)` sebagai metode verifikasi.
+ - Pilih versi compiler yang sesuai untuk kontrak Anda.
+ - Nonaktifkan _code optimization_.
+ - Salin _source code_ yang telah diflatkan dari Remix dan tempelkan di bidang `Enter the Solidity Contract Code`.
+- Periksa bahwa semua informasi sudah benar, lalu klik tombol `Verify and Publish` untuk memverifikasi kontrak Anda.
+
+Setelah diverifikasi, tab kode akan menyertakan ikon β
, dan _source code_ akan dapat dilihat.
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/overview.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/overview.md
index 3a9b7a381..3104a1ab6 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/overview.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/token-development/overview.md
@@ -1,106 +1,118 @@
---
-title: Overview
+title: Gambaran Umum
slug: /token-development
-description: 'An introduction into and ERC token standards and token development on Lisk.'
+description: "Pengantar tentang standar token ERC dan pengembangan token di Lisk."
keywords:
[
- 'Lisk',
- 'Token development',
- 'Deploy token',
- 'ERC',
- 'EIP',
- 'ERC-20',
- 'ERC-721',
- 'ERC-1155',
- 'NFT',
- 'Fungible token',
- 'Hybrid token',
+ "Lisk",
+ "Pengembangan Token",
+ "Luncurkan token",
+ "ERC",
+ "EIP",
+ "ERC-20",
+ "ERC-721",
+ "ERC-1155",
+ "NFT",
+ "token Fungible",
+ "token Hybrid",
]
---
-# Token development
-This page is intended for token issuers who wish to create a new ERC-20 contract on Lisk.
-It includes an explanation of ERCs, a summary of the most important token standards, and examples of how to deploy these tokens on Lisk.
-In case you already have a token deployed on the Ethereum network, and wish to bridge it to Lisk, please refer to the guide [Bridging an L1 token to Lisk](../add-token-to-lisk/index.md).
+# Pengembangan Token
-## ERC token standards
+Halaman ini ditujukan untuk penerbit token yang ingin membuat kontrak ERC-20 baru di Lisk.
+Halaman ini mencakup penjelasan tentang ERC, ringkasan standar token terpenting, dan contoh cara meluncurkan token tersebut di Lisk.
+Jika Anda sudah memiliki token yang diluncurkan di jaringan Ethereum dan ingin memindahkan (_bridge_) token tersebut ke Lisk, silakan merujuk ke panduan [Memindahkan Token L1 ke Lisk](../add-token-to-lisk/index.md).
-A standard interface allows any tokens on Ethereum to be re-used by other applications: from wallets to decentralized exchanges.
-**ERCs**(Ethereum Request for Comments) are a set of application-level standards and conventions, including contract standards such as token standards (ERC-20), name registries (ERC-137), URI schemes, library/package formats, and wallet formats for the Ethereum blockchain.
+## Standar Token ERC
-Following the most popular ERC token standards when creating a new token has several benefits:
+_Interface_ standar memungkinkan token apa pun di Ethereum untuk digunakan kembali oleh aplikasi lain: mulai dari dompet hingga _decentralized exchange_.
+**ERCs** (_Ethereum Request for Comments_) adalah serangkaian standar dan konvensi di tingkat aplikasi, termasuk standar kontrak seperti standar token (ERC-20), registri nama (ERC-137), skema URI, format _library/package_, dan format dompet untuk blockchain Ethereum.
-- **Increased security:** Let your contract inherit from heavily audited and reviewed implementations of the standard, mitigating the possibility of bugs greatly.
-- **High application compatibility:** Most applications only support the most popular ERC token standards. By following these standards, you ensure your token will be compatible with most external applications like wallets or decentralized exchanges.
-- **Great documentation:** Benefit from the vast number of tutorials and guides that are available to develop ERC-compliant tokens.
+Mengikuti standar token ERC yang paling populer saat membuat token baru memiliki beberapa manfaat:
-ERCs are a subcategory of **EIPs**(Ethereum Improvement Proposals).
-New EIPs are added following the process outlined in [EIP-1](https://eips.ethereum.org/EIPS/eip-1).
+- **Keamanan meningkat:** Biarkan kontrak Anda mewarisi implementasi standar yang telah diaudit dan ditinjau secara menyeluruh, sehingga kemungkinan _bug_ berkurang secara signifikan.
+- **Kompatibilitas aplikasi tinggi:** Sebagian besar aplikasi hanya mendukung standar token ERC yang paling populer. Dengan mengikuti standar ini, Anda memastikan token Anda akan kompatibel dengan sebagian besar aplikasi eksternal seperti dompet atau _decentralized exchange_.
+- **Dokumentasi yang baik:** Manfaatkan banyak tutorial dan panduan yang tersedia untuk mengembangkan token yang sesuai dengan ERC.
-Here's the full list of [ERC proposals](https://eips.ethereum.org/erc).
+ERC adalah subkategori dari **EIPs** (_Ethereum Improvement Proposals_).
+EIP baru ditambahkan mengikuti proses yang dijelaskan dalam [EIP-1](https://eips.ethereum.org/EIPS/eip-1).
-A summary of some interesting ERC token standards can be found below.
+Berikut adalah daftar lengkap [proposal ERC](https://eips.ethereum.org/erc).
-- [ERC-20](#erc-20): the most widespread token standard for fungible tokens, albeit somewhat limited by its simplicity.
-- [ERC-721](#erc-721): the most popular token standard for non-fungible tokens, often used for collectibles and games.
-- [ERC-1155](#erc-1155): a standard for multi-tokens, allowing for a single contract to represent multiple fungible and non-fungible tokens, along with batched operations for increased gas efficiency.
+Ringkasan beberapa standar token ERC yang menarik dapat ditemukan di bawah ini:
+
+- [ERC-20](#erc-20): standar token yang paling digunakan untuk token yang dapat dipertukarkan (_fungible_), meskipun agak terbatas karena kesederhanaannya.
+- [ERC-721](#erc-721): standar token paling populer untuk token yang tidak dapat dipertukarkan (_non-fungible_), sering digunakan untuk koleksi dan permainan.
+- [ERC-1155](#erc-1155): standar untuk multi-token, memungkinkan satu kontrak merepresentasikan banyak token yang dapat dipertukarkan maupun tidak, serta mendukung operasi batch untuk efisiensi gas yang lebih baik.
## ERC-20
-The most widespread token standard for fungible tokens.
-Any token is exactly equal to any other token; no tokens have special rights or behavior associated with them.
-This makes [ERC-20](https://eips.ethereum.org/EIPS/eip-20) tokens useful for things like a medium of exchange currency, voting rights, staking, and more.
-### Guides
-[How to deploy a new ERC-20 token on Lisk](deploy-erc-20.md)
+Standar token yang paling digunakan untuk token yang dapat dipertukarkan (_fungible_).
+Setiap token memiliki nilai yang sama dengan token lainnya; tidak ada token yang memiliki hak atau perilaku khusus.
+Hal ini membuat [ERC-20](https://eips.ethereum.org/EIPS/eip-20) berguna untuk berbagai hal seperti mata uang, media pertukaran, hak suara, _staking_, dan lainnya.
+
+### Panduan
+
+[Bagaimana cara meluncurkan token ERC-20 baru di Lisk](deploy-erc-20.md)
-### Further reading
-- [Understand the ERC-20 token smart contract](https://ethereum.org/en/developers/tutorials/understand-the-erc-20-token-smart-contract/)
+### Bacaan lebih lanjut
+
+- [Memahami smart kontrak pintar ERC-20](https://ethereum.org/en/developers/tutorials/understand-the-erc-20-token-smart-contract/)
- [ERC-20 EIP](https://eips.ethereum.org/EIPS/eip-20)
-- [OpenZeppelin: ERC-20 API](https://docs.openzeppelin.com/contracts/3.x/api/token/erc20)
-- [OpenZeppelin: ERC-20 contract](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)
+- [OpenZeppelin: API ERC-20](https://docs.openzeppelin.com/contracts/3.x/api/token/erc20)
+- [OpenZeppelin: Kontrak ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)
- [Solidity by example: ERC-20](https://solidity-by-example.org/app/erc20/)
-- [Ethereum Docs: ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)
-- [Alchemy: Complete guide to ERC-20](https://www.alchemy.com/overviews/erc20-solidity)
+- [Dokumentasi Ethereum: ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)
+- [Alchemy: Panduan lengkap tentang ERC-20](https://www.alchemy.com/overviews/erc20-solidity)
+
+---
## ERC-721
-[ERC-721](https://eips.ethereum.org/EIPS/eip-721) is a standard for representing ownership of non-fungible tokens.
-Non-fungible tokens(NFTs) are used to represent unique objects like real estate or collectibles, where some items are valued more than others due to their usefulness, rarity, or other individual characteristics.
-To represent these unique features onchain, the ERC-721 includes metadata properties that offer information about the token's specific features, such as the title, the creator, and an image preview.
+[ERC-721](https://eips.ethereum.org/EIPS/eip-721) adalah standar untuk merepresentasikan kepemilikan token yang tidak dapat dipertukarkan (_non-fungible_).
+_Non-fungible token_ (NFTs) digunakan untuk merepresentasikan objek unik seperti real estate atau barang koleksi (_collectibles_), di mana beberapa item memiliki nilai lebih tinggi dibandingkan lainnya karena kegunaan, kelangkaan, atau karakteristik individu lainnya.
-### Guides
-[How to deploy a new ERC-721 token on Lisk](deploy-erc-721.md)
+Untuk merepresentasikan fitur unik ini secara onchain, ERC-721 menyertakan properti metadata yang menyediakan informasi tentang fitur spesifik token, seperti judul, pencipta, dan pratinjau gambar.
-### Further reading
-- [Ethereum Docs: ERC-721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)
+### Panduan
+
+[Bagaimana cara meluncurkan token ERC-721 baru di Lisk](deploy-erc-721.md)
+
+### Bacaan lebih lanjut
+
+- [Dokumentasi Ethereum: ERC-721](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)
- [ERC-721 EIP](https://eips.ethereum.org/EIPS/eip-721)
-- [OpenZeppelin: ERC-721 API](https://docs.openzeppelin.com/contracts/3.x/api/token/erc721)
-- [OpenZeppelin: ERC-721 contract](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol)
-- [Solidity by example: ERC721](https://solidity-by-example.org/app/erc721/)
-- [How to implement an ERC-721 market](https://ethereum.org/en/developers/tutorials/how-to-implement-an-erc721-market/)
+- [OpenZeppelin: API ERC-721](https://docs.openzeppelin.com/contracts/3.x/api/token/erc721)
+- [OpenZeppelin: Kontrak ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol)
+- [Solidity by example: ERC-721](https://solidity-by-example.org/app/erc721/)
+- [Bagaimana cara mengimplementasikan pasar ERC-721](https://ethereum.org/en/developers/tutorials/how-to-implement-an-erc721-market/)
## ERC-1155
-The [ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) is a standard interface for contracts that manage multiple token types.
-The distinctive feature of ERC-1155 is that it uses a single smart contract to represent multiple tokens at once.
-A single deployed contract may include any combination of fungible tokens, non-fungible tokens or other configurations (e.g. semi-fungible tokens).
-This is why its `balanceOf` function differs from ERC-20βs:
-it has an additional `id` argument for the identifier of the token that you want to query the balance of.
-ERC-1155 accounts have a distinct balance for each token id; non-fungible tokens are implemented by simply minting a single one of them.
+[ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) adalah _interface_ standar untuk kontrak yang mengelola berbagai jenis token.
+Fitur khas ERC-1155 adalah penggunaan satu kontrak pintar untuk merepresentasikan banyak token sekaligus.
+Satu kontrak yang dideploy dapat mencakup kombinasi token _fungible_, _non-fungible_, atau konfigurasi lainnya (misalnya token _semi-fungible_).
-This approach leads to massive gas savings for projects that require multiple tokens.
-Instead of deploying a new contract for each token type, a single ERC-1155 token contract can hold the entire system state, reducing deployment costs and complexity.
+Karena itu, fungsi `balanceOf` pada ERC-1155 berbeda dari ERC-20:
+fungsi ini memiliki argumen tambahan, yaitu `id`, untuk mengidentifikasi token yang ingin Anda query saldonya.
+Akun ERC-1155 memiliki saldo yang berbeda untuk setiap token id; token non-fungible diimplementasikan dengan hanya mencetak satu token saja.
-### Guides
-[How to deploy a new ERC-1155 token on Lisk](deploy-erc-1155.md)
+Pendekatan ini menghasilkan penghematan gas yang signifikan untuk proyek yang memerlukan banyak token.
+Alih-alih mendeploy kontrak baru untuk setiap jenis token, satu kontrak token ERC-1155 dapat menyimpan seluruh _state_ sistem, sehingga mengurangi biaya peluncuran dan kompleksitas.
+
+### Panduan
+
+[Bagaimana cara mendeploy token ERC-1155 baru di Lisk](deploy-erc-1155.md)
:::warning
-Please note that there is currently less ecosystem support for ERC-1155 as compared with ERC-20 or ERC-721.
+Harap diperhatikan bahwa saat ini dukungan ekosistem untuk ERC-1155 masih lebih sedikit dibandingkan ERC-20 atau ERC-721.
:::
-### Further reading
-- [Ethereum Docs: ERC-1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/)
+### Bacaan lebih lanjut
+
+- [Dokumentasi Ethereum: ERC-1155](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/)
- [ERC-1155 EIP](https://eips.ethereum.org/EIPS/eip-1155)
-- [OpenZeppelin: ERC-1155 API](https://docs.openzeppelin.com/contracts/3.x/api/token/erc1155)
-- [OpenZeppelin: ERC-1155 contract](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol)
-- [Solidity by example: ERC1155](https://solidity-by-example.org/app/erc1155/)
\ No newline at end of file
+- [OpenZeppelin: API ERC-1155](https://docs.openzeppelin.com/contracts/3.x/api/token/erc1155)
+- [OpenZeppelin: Kontrak ERC-1155](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol)
+- [Solidity by example: ERC-1155](https://solidity-by-example.org/app/erc1155/)
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-pull.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-pull.md
index e1aba23ae..2a07a23e3 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-pull.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-pull.md
@@ -1,7 +1,7 @@
---
-title: ...with RedStone (Pull)
+title: ...menggunakan RedStone (Pull)
slug: /building-on-lisk/using-oracle-data/redstone-pull
-description: A guide on using RedStone Pull to access real-world data such as asset prices, directly from your smart contracts on the Lisk blockchain.
+description: Panduan menggunakan RedStone Pull untuk mengakses data dunia nyata, seperti harga aset, langsung dari smart contract Anda di blockchain Lisk.
keywords: [
Oracle
Oracles,
@@ -21,43 +21,44 @@ keywords: [
]
---
-# Accessing real-world data using the RedStone Oracle (Pull)
+# Mengakses data dunia nyata menggunakan RedStone Oracle (Pull)
-This page will explain how you can access oracle data using [RedStone Pull](https://docs.redstone.finance/docs/get-started/models/redstone-pull/).
+Halaman ini akan menjelaskan cara Anda dapat mengakses data _oracle_ menggunakan [RedStone Pull](https://docs.redstone.finance/docs/get-started/models/redstone-pull/).
-RedStone is a data ecosystem that delivers frequently updated, reliable, and diverse data for your dApp and smart contracts deployed on Lisk.
+RedStone adalah ekosistem data yang menyediakan data yang sering diperbarui, dapat diandalkan, dan beragam untuk dApp dan kontrak pintar Anda yang diluncurkan di Lisk.
-## How to pull oracle data from RedStone
+## Cara Mengambil Data Oracle dari RedStone
-To create a smart contract that directly fetches the latest data from the RedStone oracle, follow this guide.
+Untuk membuat kontrak pintar yang secara langsung mengambil data terbaru dari RedStone oracle, ikuti panduan ini.
-This guide uses the [RedStone Pull model](https://docs.redstone.finance/docs/get-started/models/redstone-pull) to fetch the data.
+Panduan ini menggunakan model [RedStone Pull](https://docs.redstone.finance/docs/get-started/models/redstone-pull) untuk mengambil data.
-For an overview of the different modules that RedStone offers to receive oracle data, go to [Oracles > RedStone](../../lisk-tools/oracles#redstone).
+Untuk gambaran umum mengenai berbagai modul yang ditawarkan RedStone untuk menerima data oracle, kunjungi [Oracles > RedStone](../../lisk-tools/oracles#redstone).
-[Hardhat](https://hardhat.org/) is used in this guide to create the smart contract.
-In case you want to use Foundry, check out the [RedStone docs](https://docs.redstone.finance/docs/get-started/models/redstone-pull#foundry) for instructions.
+Panduan ini menggunakan [Hardhat](https://hardhat.org/) untuk membuat kontrak pintar.
+Jika Anda ingin menggunakan Foundry, silakan cek [dokumentasi RedStone](https://docs.redstone.finance/docs/get-started/models/redstone-pull#foundry) untuk instruksi.
-### Dependencies
+### Dependensi
- ethers ^5.7.2
- hardhat ^2.14.0
-### Install the evm connector
-Install the [@redstone-finance/evm-connector](https://www.npmjs.com/package/@redstone-finance/evm-connector) package.
+### Instalasi EVM Connector
+
+Instal paket [@redstone-finance/evm-connector](https://www.npmjs.com/package/@redstone-finance/evm-connector).
```sh
npm install @redstone-finance/evm-connector
```
-### Import the evm connector
+### Mengimpor evm connector
```solidity
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
/**
-* Imports the EVM connector
+* Mengimpor EVM connector
*/
import "@redstone-finance/evm-connector/contracts/data-services/RapidDemoConsumerBase.sol";
@@ -67,20 +68,21 @@ contract YourContract is RapidDemoConsumerBase {
}
```
-### Get oracle data
-Get the oracle data using the functions provided by the EVM connector.
+### Mendapatkan Data Oracle
+
+Dapatkan data oracle menggunakan fungsi-fungsi yang disediakan oleh EVM connector.
-#### Get a single value
+#### Mendapatkan Satu Nilai
-To get a single price feed, use the function `getOracleNumericValueFromTxMsg()` and provide the data feed ID as a parameter.
+Untuk mendapatkan satu data _feed_ harga, gunakan fungsi `getOracleNumericValueFromTxMsg()` dan berikan ID data _feed_ sebagai parameter.
```solidity
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
/**
-* Imports the EVM connector
+* Mengimpor EVM connector
*/
import "@redstone-finance/evm-connector/contracts/data-services/RapidDemoConsumerBase.sol";
@@ -89,7 +91,7 @@ contract YourContract is RapidDemoConsumerBase {
// ...
/**
- * Returns the latest price of ETH
+ * Mendapatkan harga terbaru dari ETH
*/
function getLatestEthPrice() public view returns (uint256) {
bytes32 dataFeedId = bytes32("ETH");
@@ -100,11 +102,13 @@ contract YourContract is RapidDemoConsumerBase {
#### Get multiple values
-To get data from multiple price feeds, use the function `getOracleNumericValuesFromTxMsg()` and provide the data feed ID array as a parameter.
+#### Mendapatkan Beberapa Nilai
+
+Untuk mendapatkan data dari beberapa _feed_ harga, gunakan fungsi `getOracleNumericValuesFromTxMsg()` dan berikan array ID data _feed_ sebagai parameter.
```solidity
/**
-* Returns the latest prices of ETH and BTC
+* Mendapatkan harga terbaru dari ETH dan BTC
*/
function getLatestEthBtcPrices() public view returns (uint256[] memory) {
bytes32[] memory dataFeedIds = new bytes32[](2);
@@ -115,9 +119,9 @@ function getLatestEthBtcPrices() public view returns (uint256[] memory) {
}
```
-### Testing
+### Testing
-In order to test the EVM connector related functions in your contract, it is necessary to wrap the contract using the `WrapperBuilder` provided by the `@redstone-finance/evm-connector` package.
+Untuk mengetes fungsi-fungsi yang terkait dengan EVM connector dalam kontrak Anda, maka Anda perlu me-_wrap_ kontrak menggunakan `WrapperBuilder` yang disediakan oleh paket `@redstone-finance/evm-connector`.
```typescript title="test/YourContract.ts"
import { expect } from "chai";
@@ -125,39 +129,39 @@ import { ethers } from "hardhat";
import { WrapperBuilder } from "@redstone-finance/evm-connector";
describe("YourContract", function () {
- describe("RedStone", function () {
- it("Get ETH price securely", async function () {
- const YourContract = await ethers.getContractFactory("YourContract");
- const contract = await YourContract.deploy();
- const wrappedContract = WrapperBuilder.wrap(contract).usingDataService({
- dataFeeds: ["ETH"],
- });
-
- // Interact with the contract (getting oracle value securely)
- const ethPriceFromContract = await wrappedContract.getLatestEthPrice();
- console.log("Latest ETH price:");
- console.log({ ethPriceFromContract });
- });
+ describe("RedStone", function () {
+ it("Get ETH price securely", async function () {
+ const YourContract = await ethers.getContractFactory("YourContract");
+ const contract = await YourContract.deploy();
+ const wrappedContract = WrapperBuilder.wrap(contract).usingDataService({
+ dataFeeds: ["ETH"],
+ });
+
+ // Berinteraksi dengan kontrak (mengambil nilai oracle secara aman)
+ const ethPriceFromContract = await wrappedContract.getLatestEthPrice();
+ console.log("Latest ETH price:");
+ console.log({ ethPriceFromContract });
});
+ });
});
```
-Now run the test:
+Sekarang jalankan tesnya:
```bash
npx hardhat test
```
-This should output the latest ETH price in the console:
+Ini akan menampilkan harga ETH terbaru di konsol:
-``` title="Output"
+```title="Output"
Latest ETH price:
{ ethPriceFromContract: BigNumber { value: "250255087192" } }
```
-## Deploying on Lisk
+## Meluncurkan kontrak pintar di Lisk
-To deploy the smart contract on Lisk Sepolia or Lisk Mainnet, follow the guides
+Untuk meluncurkan kontrak pintar di Lisk Sepolia atau Lisk Mainnet, ikuti panduan berikut:
-- [Deploying a smart contract with Hardhat](../deploying-smart-contract/with-Hardhat), or
-- [Deploying a smart contract with Foundry](../deploying-smart-contract/with-Foundry)
\ No newline at end of file
+- [Meluncurkan kontrak pintar dengan Hardhat](../deploying-smart-contract/with-Hardhat), atau
+- [Meluncurkan kontrak pintar dengan Foundry](../deploying-smart-contract/with-Foundry)
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-push.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-push.md
index e269c8c54..cef4b732c 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-push.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/redstone-push.md
@@ -1,7 +1,7 @@
---
-title: ...with RedStone (Push)
+title: ...menggunakan RedStone (Push)
slug: /building-on-lisk/using-oracle-data/redstone-push
-description: A guide on using RedStone Push to access real-world data such as asset prices, directly from your smart contracts on the Lisk blockchain.
+description: Panduan menggunakan RedStone Push untuk mengakses data dunia nyata seperti harga aset, langsung dari kontrak pintar Anda di blockchain Lisk.
keywords: [
Oracle
Oracles,
@@ -21,53 +21,55 @@ keywords: [
]
---
-# Accessing real-world data using the RedStone Oracle (Push)
+# Mengakses Data Dunia Nyata menggunakan RedStone Oracle (Push)
-This page will explain how you can access oracle data using [RedStone Push](https://docs.redstone.finance/docs/get-started/models/redstone-push).
+Halaman ini akan menjelaskan bagaimana Anda dapat mengakses data oracle menggunakan [RedStone Push](https://docs.redstone.finance/docs/get-started/models/redstone-push).
-RedStone is a data ecosystem that delivers frequently updated, reliable, and diverse data for your dApp and smart contracts deployed on Lisk.
+RedStone adalah ekosistem data yang menyediakan data yang sering diperbarui, dapat diandalkan, dan beragam untuk dApp dan kontrak pintar Anda yang diluncurkan di Lisk.
-RedStone data feeds are compatible with Chainlink's [AggregatorV3Interface](https://docs.chain.link/data-feeds/using-data-feeds#solidity) and include the following components:
+Data feed RedStone kompatibel dengan [AggregatorV3Interface](https://docs.chain.link/data-feeds/using-data-feeds#solidity) dari Chainlink dan mencakup komponen berikut:
-- **Aggregator contract**: An aggregator is a contract that receives periodic data updates from the oracle network.
-Aggregators store aggregated data onchain so that consumers can retrieve it and act upon it within the same transaction.
-These contracts are already deployed on the Lisk network and can be directly used by Consumers.
-- **Consumer**: A consumer is an onchain or offchain application that uses Data Feeds.
-Consumer contracts use the `AggregatorV3Interface` to call functions on the proxy contract[^1] of the Aggregator to retrieve oracle data.
+- **Kontrak Agregator**: Agregator adalah kontrak yang menerima pembaruan data berkala dari jaringan oracle.
+ Agregator menyimpan data yang telah digabungkan di onchain sehingga konsumen dapat mengambilnya dan menggunakannya dalam transaksi yang sama.
+ Kontrak-kontrak ini sudah diluncurkan di jaringan Lisk dan dapat langsung digunakan oleh konsumen.
+- **Konsumen (Consumer)**: Konsumen adalah aplikasi onchain atau offchain yang menggunakan data _feed_.
+ Kontrak konsumen menggunakan `AggregatorV3Interface` untuk memanggil fungsi pada kontrak proxy[^1] dari Agregator untuk mengambil data oracle.
-[^1]: Proxy contracts are onchain proxies that point to the aggregator for a particular data feed.
-Using proxies enables the underlying aggregator to be upgraded without any service interruption to consuming contracts.
+[^1]:
+ Kontrak proxy adalah proxy onchain yang menunjuk ke agregator untuk data feed tertentu.
+ Penggunaan proxy memungkinkan agregator dasar untuk ditingkatkan tanpa mengganggu layanan bagi kontrak yang mengonsumsinya.
-## Data feeds on Lisk
-The following Aggregators are available on Lisk Mainnet for RedStone Push:
+## Data Feed di Lisk
+
+Agregator berikut tersedia di Lisk Mainnet untuk RedStone Push:
- [ETH/USD L2PriceFeedWithoutRounds](https://blockscout.lisk.com/address/0x6b7AB4213c77A671Fc7AEe8eB23C9961fDdaB3b2)
- - address: `0x6b7AB4213c77A671Fc7AEe8eB23C9961fDdaB3b2`
+ - alamat: `0x6b7AB4213c77A671Fc7AEe8eB23C9961fDdaB3b2`
- [LSK/USD L2PriceFeedWithoutRounds](https://blockscout.lisk.com/address/0xa1EbA9E63ed7BA328fE0778cFD67699F05378a96)
- - address: `0xa1EbA9E63ed7BA328fE0778cFD67699F05378a96`
+ - alamat: `0xa1EbA9E63ed7BA328fE0778cFD67699F05378a96`
- [USDT/USD L2PriceFeedWithoutRounds](https://blockscout.lisk.com/address/0xd2176Dd57D1e200c0A8ec9e575A129b511DBD3AD)
- - address: `0xd2176Dd57D1e200c0A8ec9e575A129b511DBD3AD`
+ - alamat: `0xd2176Dd57D1e200c0A8ec9e575A129b511DBD3AD`
- [USDC/USD L2PriceFeedWithoutRounds](https://blockscout.lisk.com/address/0xb4e6A7861067674AC398a26DD73A3c524C602184)
- - address: `0xb4e6A7861067674AC398a26DD73A3c524C602184`
+ - alamat: `0xb4e6A7861067674AC398a26DD73A3c524C602184`
- [WBTC/USD L2PriceFeedWithoutRounds](https://blockscout.lisk.com/address/0x13da43eA89fB692bdB6666F053FeE70aC61A53cd)
- - address: `0x13da43eA89fB692bdB6666F053FeE70aC61A53cd`
+ - alamat: `0x13da43eA89fB692bdB6666F053FeE70aC61A53cd`
-In this guide, we will develop a Consumer contract that will request the latest spot prices from the ETH, LSK and USDT data feeds.
+Dalam panduan ini, kita akan mengembangkan kontrak konsumen yang akan meminta harga spot terbaru dari data feed ETH, LSK, dan USDT.
:::note
-RedStone Push is only fully available on Lisk Mainnet, so please make sure to deploy your Consumer contract on Lisk Mainnet as well.
+RedStone Push hanya sepenuhnya tersedia di Lisk Mainnet, jadi pastikan untuk meluncurkan kontrak konsumen Anda di Lisk Mainnet juga.
-In case you wish to deploy on Lisk Sepolia Testnet, check the [Tellor](./tellor.md) guide, which is available for both networks.
+Jika Anda ingin meluncurkan di Lisk Sepolia Testnet, periksa panduan [Tellor](./tellor.md), yang tersedia untuk kedua jaringan.
:::
-## Import
+## Mengimpor
-To use the RedStone data inside your contract, import the [AggregatorV3Interface](https://docs.chain.link/data-feeds/using-data-feeds#solidity) from Chainlink like shown in the example contract below.
+Untuk menggunakan data RedStone di dalam kontrak Anda, impor [AggregatorV3Interface](https://docs.chain.link/data-feeds/using-data-feeds#solidity) dari Chainlink seperti yang ditunjukkan dalam contoh kontrak di bawah ini.
-For every data feed you like to store, create a new constant with type `AggregatorV3Interface`.
+Untuk setiap data _feed_ yang ingin Anda simpan, buat konstanta baru dengan tipe `AggregatorV3Interface`.
-In the constructor, set the above defined constants to point to the respective data feeds:
-Use the `AggregatorV3Interface()` function and pass the address of the respective data feed contract as parameter.
+Dalam konstruktor, tetapkan konstanta yang telah didefinisikan di atas untuk menunjuk ke data _feed_ masing-masing:
+Gunakan fungsi `AggregatorV3Interface()` dan masukkan alamat kontrak data _feed_ yang sesuai sebagai parameter.
```solidity
// SPDX-License-Identifier: MIT
@@ -109,38 +111,39 @@ contract RedStoneDataConsumer {
}
```
-## Reading data
-To read the data of the price feeds, we define the following functions in the contract:
+## Membaca Data
+
+Untuk membaca data dari _feeds_ harga, kita mendefinisikan fungsi-fungsi berikut dalam kontrak:
- `getRedStoneETHDataFeedLatestAnswer()`
- `getRedStoneLSKDataFeedLatestAnswer()`
- `getRedStoneUSDTDataFeedLatestAnswer()`
-Inside of the functions, call the [latestRoundData](https://docs.chain.link/data-feeds/api-reference#latestrounddata) on the respective data feeds to receive the latest spot prices for the respective token.
+Di dalam fungsi-fungsi tersebut, panggil [latestRoundData](https://docs.chain.link/data-feeds/api-reference#latestrounddata) pada masing-masing data feed untuk menerima harga spot terbaru untuk token yang bersangkutan.
-The `latestRoundData()` function returns the following values:
+Fungsi `latestRoundData()` me-_return_ nilai-nilai berikut:
-- `roundId`(uint80): The round ID.
-For all [data feeds](#data-feeds-on-lisk), the round is always `1`, because the contracts are without rounds, as the name suggests.
-- `answer`(int256): The data that this specific feed provides.
-Depending on the feed you selected, this answer provides asset prices, reserves, and other types of data.
-- `startedAt`(uint256): Timestamp of when the round started.
-- `updatedAt`(uint256): Timestamp of when the round was updated.
-- `answeredInRound`(uint80): Deprecated - Previously used when answers could take multiple rounds to be computed.
+- `roundId`(uint80): ID dari ronde.
+ Untuk semua [data feed](#data-feeds-on-lisk), ronde selalu bernilai `1`, karena kontrak ini tidak menggunakan ronde, sesuai dengan namanya.
+- `answer`(int256): Data yang disediakan oleh feed ini.
+ Tergantung pada feed yang dipilih, `answer` menyediakan harga aset, cadangan, dan jenis data lainnya.
+- `startedAt`(uint256): Timestamp ketika ronde dimulai.
+- `updatedAt`(uint256): Timestamp ketika ronde diperbarui.
+- `answeredInRound`(uint80): _Deprecated_ - Sebelumnya digunakan ketika jawaban membutuhkan beberapa ronde untuk dihitung.
-In this example, we will only use `answer` and `updatedAt`.
-The `updatedAt` value should be used to make sure that the `answer` is recent enough for your application to use it.
-You can compare `updatedAt` to the latest block time (`uint256 currentTime = block.timestamp;`) to ensure you are only using the latest oracle data in your application.
+Dalam contoh ini, kita hanya akan menggunakan `answer` dan `updatedAt`.
+Nilai `updatedAt` harus digunakan untuk memastikan bahwa `answer` cukup baru untuk digunakan oleh aplikasi Anda.
+Anda dapat membandingkan `updatedAt` dengan waktu blok terbaru (`uint256 currentTime = block.timestamp;`) untuk memastikan hanya menggunakan data oracle terbaru dalam aplikasi Anda.
```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
/**
- * THIS IS AN EXAMPLE CONTRACT THAT USES HARDCODED
- * VALUES FOR CLARITY.
- * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE.
- * DO NOT USE THIS CODE IN PRODUCTION.
+ * INI ADALAH KONTRAK CONTOH YANG MENGGUNAKAN NILAI-NILAI
+ * YANG DITETAPKAN LANGSUNG UNTUK KEJELASAN.
+ * INI ADALAH KONTRAK CONTOH YANG MENGGUNAKAN KODE YANG BELUM DIAUDIT.
+ * JANGAN GUNAKAN KODE INI DALAM PRODUKSI.
*/
import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";
@@ -163,7 +166,7 @@ contract RedStoneDataConsumer {
}
/**
- * Returns the latest ETH price, and when it was updated.
+ * Me-return harga ETH terbaru, serta waktu terakhir kali diperbarui.
*/
function getRedStoneETHDataFeedLatestAnswer() public view returns (int, uint) {
(
@@ -176,7 +179,7 @@ contract RedStoneDataConsumer {
return (answer, updatedAt);
}
/**
- * Returns the latest LSK price, and when it was updated.
+ * Me-return harga LSK terbaru, serta waktu terakhir kali diperbarui.
*/
function getRedStoneLSKDataFeedLatestAnswer() public view returns (int, uint) {
(
@@ -189,7 +192,7 @@ contract RedStoneDataConsumer {
return (answer, updatedAt);
}
/**
- * Returns the latest USDT price, and when it was updated.
+ * Me-return harga USDT terbaru, serta waktu terakhir kali diperbarui.
*/
function getRedStoneUSDTDataFeedLatestAnswer() public view returns (int, uint) {
(
@@ -204,15 +207,15 @@ contract RedStoneDataConsumer {
}
```
-## Deploying on Lisk
+## Meluncurkan di Lisk
-To deploy the smart contract on Lisk, follow the guides
+Untuk meluncurkan kontrak pintar di Lisk, ikuti panduan berikut:
-- [Deploying a smart contract with Hardhat](../deploying-smart-contract/with-Hardhat), or
-- [Deploying a smart contract with Foundry](../deploying-smart-contract/with-Foundry)
+- [Meluncurkan kontrak pintar dengan Hardhat](../deploying-smart-contract/with-Hardhat), atau
+- [Meluncurkan kontrak pintar dengan Foundry](../deploying-smart-contract/with-Foundry)
:::note
-RedStone Push is only available on Lisk Mainnet, so please make sure to deploy your Consumer contract on Lisk Mainnet as well.
+RedStone Push hanya tersedia di Lisk Mainnet, jadi pastikan Anda meluncurkan kontrak konsumen di Lisk Mainnet.
-In case you wish to deploy on Lisk Sepolia Testnet, check the [Tellor](./tellor.md) guide, which is available for both networks.
-:::
\ No newline at end of file
+Jika Anda ingin meluncurkan di Lisk Sepolia Testnet, silakan cek panduan [Tellor](./tellor.md), yang tersedia untuk kedua jaringan.
+:::
diff --git a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/tellor.md b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/tellor.md
index 1fb3e8d2d..4edaf0e84 100644
--- a/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/tellor.md
+++ b/i18n/ind/docusaurus-plugin-content-docs/current/building-on-lisk/using-oracle-data/tellor.md
@@ -1,7 +1,7 @@
---
-title: ...with Tellor
+title: ...menggunakan Tellor
slug: /building-on-lisk/using-oracle-data/tellor
-description: A guide on using Tellor Data Feeds to access real-world data such as asset prices, directly from your smart contracts on the Lisk blockchain.
+description: Panduan tentang menggunakan Data Feed Tellor untuk mengakses data dunia nyata seperti harga aset, langsung dari kontrak pintar Anda di blockchain Lisk.
keywords: [
Oracle
Oracles,
@@ -20,29 +20,31 @@ keywords: [
]
---
-# Using oracle data with Tellor
-This page will explain how your application can access oracle data using Tellor.
+# Menggunakan Data Oracle dengan Tellor
-[Tellor](https://tellor.io/) is an immutable decentralized oracle protocol where parties can request the value of an offchain data point (e.g. ETH/USD, LSK/USD) and reporters compete to add this value to an onchain databank.
-The inputs to this databank are secured by a network of staked reporters.
+Halaman ini akan menjelaskan bagaimana aplikasi Anda dapat mengakses data oracle menggunakan Tellor.
-Tellor utilizes crypto-economic incentive mechanisms, rewarding honest data submissions by reporters and punishing bad actors through the issuance of Tellorβs token, Tributes (TRB) and a dispute mechanism.
+[Tellor](https://tellor.io/) adalah protokol oracle terdesentralisasi yang _immutable_, di mana pihak-pihak dapat meminta nilai data dari luar blockchain (misalnya ETH/USD, LSK/USD), dan _reporters_ bersaing untuk menambahkan nilai ini ke dalam bank data onchain.
+Input ke dalam bank data ini dijamin oleh jaringan _reporters_ yang melakukan staking terhadap token mereka.
-This incentivizes an open, permissionless network of data reporting and data validation, ensuring that data can be provided by anyone and checked by everyone.
+Tellor memanfaatkan mekanisme insentif kripto-ekonomi, memberikan hadiah kepada _reporters_ yang memberikan data jujur dan menghukum pelaku buruk melalui penerbitan token Tellor, Tributes (TRB), serta mekanisme sengketa.
-## Installation
-The first thing you'll want to do is install the basic tools necessary for using Tellor as your oracle.
+Hal ini mendorong jaringan pelaporan data dan validasi data yang terbuka serta _permissionless_, memastikan bahwa data dapat disediakan oleh siapa saja dan diverifikasi oleh semua orang.
-To install [usingtellor](https://github.com/tellor-io/usingtellor), run one the following commands:
+## Instalasi
+
+Langkah pertama yang perlu dilakukan adalah menginstal _tools_ dasar yang diperlukan untuk menggunakan Tellor sebagai oracle Anda.
+
+Untuk menginstal [usingtellor](https://github.com/tellor-io/usingtellor), jalankan salah satu perintah berikut:
- Hardhat: `npm install usingtellor`
- Foundry: `forge install tellor-io/usingtellor`
-Once installed, this will allow your contracts to inherit the functions from the 'UsingTellor' contract.
+Setelah diinstal, ini memungkinkan kontrak Anda untuk _inherit_ fungsi dari kontrak 'UsingTellor'.
-Great! Now that you've got the tools ready, let's go through a simple exercise where we retrieve the `eth/usd` and `lsk/usd` prices from Tellor.
+Bagus! Sekarang _tools_ Anda siap, mari kita lakukan latihan sederhana untuk mengambil harga `eth/usd` dan `lsk/usd` dari Tellor.
-## Import
+## Mengimpor
```solidity
pragma solidity >=0.8.0;
@@ -63,15 +65,15 @@ contract MyContract is UsingTellor {
}
```
-To import the UsingTellor contract into your Solidity file, pass the desired Tellor Oracle address as a parameter.
-For the Lisk Mainnet, the Tellor Oracle address is: [0x896419Ed2E0dC848a1f7d2814F4e5Df4b9B9bFcc](https://blockscout.lisk.com/address/0x896419Ed2E0dC848a1f7d2814F4e5Df4b9B9bFcc)
+Untuk mengimpor kontrak UsingTellor ke dalam file Solidity Anda, masukkan alamat Tellor Oracle yang diinginkan sebagai parameter.
+Untuk Lisk Mainnet, alamat Tellor Oracle adalah: [0x896419Ed2E0dC848a1f7d2814F4e5Df4b9B9bFcc](https://blockscout.lisk.com/address/0x896419Ed2E0dC848a1f7d2814F4e5Df4b9B9bFcc).
-## Reading data
+## Membaca Data
-In the example below, we add two functions:
+Dalam contoh di bawah ini, kami menambahkan dua fungsi:
-- `getETHSpotPrice()` that reads the ETH/USD price feed and another function
-- `getLSKSpotPrice()` that reads the LSK/USD price feed from the Oracle
+- `getETHSpotPrice()` untuk membaca data harga ETH/USD dari Oracle.
+- `getLSKSpotPrice()` untuk membaca data harga LSK/USD dari Oracle.
```solidity
// SPDX-License-Identifier: MIT
@@ -93,9 +95,9 @@ contract MyContract is UsingTellor {
error StalePrice(uint256 price, uint256 timestamp);
error NoValueRetrieved(uint256 timestamp);
- /**
- * @dev the constructor sets the Tellor address and the ETH and LSK queryIds
- * @param _tellorOracle is the address of the Tellor oracle
+ /**
+ * @dev Konstruktor menetapkan alamat Tellor dan queryId untuk ETH serta LSK.
+ * @param _tellorOracle adalah alamat dari Tellor oracle.
*/
constructor (address payable _tellorOracle) UsingTellor(_tellorOracle) {
// set the ETH queryId
@@ -106,11 +108,11 @@ contract MyContract is UsingTellor {
lskQueryId = keccak256(_lskQueryData);
}
- /**
- * @dev Allows a user contract to read the ETH price from Tellor and perform some
- * best practice checks on the retrieved data
- * @return _value the ETH spot price from Tellor, with 18 decimal places
- * @return timestamp the value's timestamp
+ /**
+ * @dev Memungkinkan kontrak pengguna untuk membaca harga ETH dari Tellor
+ * dan melakukan beberapa pemeriksaan best-practice pada data yang diambil.
+ * @return _value harga spot ETH dari Tellor, dengan 18 angka desimal.
+ * @return timestamp stempel waktu dari nilai tersebut.
*/
function getETHSpotPrice()
public
@@ -119,41 +121,41 @@ contract MyContract is UsingTellor {
uint256 timestamp
)
{
- // retrieve the most recent 20+ minute old ETH price.
- // the buffer allows time for a bad value to be disputed
+ // mengambil harga ETH terbaru yang berusia lebih dari 20 menit.
+ // buffer memungkinkan waktu untuk men-dispute nilai yang salah.
(bytes memory _data, uint256 _timestamp) = _getDataBefore(ethQueryId, block.timestamp - DISPUTE_BUFFER);
- // check whether any value was retrieved
+ // periksa apakah ada nilai yang berhasil diambil
if (_timestamp == 0 || _data.length == 0) revert NoValueRetrieved(_timestamp);
- // decode the value from bytes to uint256
+ // dekode nilai dari bytes ke uint256
_value = abi.decode(_data, (uint256));
- // prevent a back-in-time dispute attack by caching the most recent value and timestamp.
- // this stops an attacker from disputing tellor values to manupulate which price is used
- // by your protocol
+ // mencegah serangan back-in-time dispute dengan menyimpan nilai dan timestamp terbaru.
+ // ini menghentikan penyerang dari mendisput nilai Tellor untuk memanipulasi harga yang digunakan
+ // oleh protokol Anda
if (_timestamp > ethLastStoredTimestamp) {
- // if the new value is newer than the last stored value, update the cache
+ // jika nilai baru lebih baru daripada nilai terakhir yang disimpan, perbarui cache
ethLastStoredTimestamp = _timestamp;
ethLastStoredPrice = _value;
} else {
- // if the new value is older than the last stored value, use the cached value
+ // jika nilai baru lebih lama daripada nilai terakhir yang disimpan, gunakan nilai yang di-cache
_value = ethLastStoredPrice;
_timestamp = ethLastStoredTimestamp;
}
- // check whether value is too old
+ // periksa apakah nilai terlalu lama
if (block.timestamp - _timestamp > STALENESS_AGE) revert StalePrice(_value, _timestamp);
- // return the value and timestamp
+ // kembalikan nilai dan timestamp
return (_value, _timestamp);
}
- /**
- * @dev Allows a user contract to read the LSK price from Tellor and perform some
- * best practice checks on the retrieved data
- * @return _value the LSK spot price from Tellor, with 18 decimal places
- * @return timestamp the value's timestamp
+ /**
+ * @dev Memungkinkan kontrak pengguna untuk membaca harga LSK dari Tellor dan melakukan beberapa
+ * pengecekan best-practice pada data yang diambil.
+ * @return _value harga spot LSK dari Tellor, dengan 18 tempat desimal.
+ * @return timestamp stempel waktu dari nilai tersebut.
*/
function getLSKSpotPrice()
public
@@ -183,25 +185,25 @@ contract MyContract is UsingTellor {
}
```
-You can adapt this contract to your needs.
-The example utilizes some best practices[^1] for using Tellor by implementing a dispute time buffer and a data staleness check.
-In addition, it also seeks to mitigate back-in-time dispute attacks by caching the most recent value and timestamp.
+Anda dapat menyesuaikan kontrak ini sesuai kebutuhan Anda.
+Contoh ini menerapkan beberapa _best-practice_[^1] untuk menggunakan Tellor dengan mengimplementasikan buffer waktu sengketa dan pemeriksaan _staleness_ data.
+Selain itu, contoh ini juga berusaha mengurangi serangan disput _back-in-time_ dengan menyimpan nilai dan timestamp terbaru dalam cache.
-[^1]: Based on examples in [Tellor's best practices repository](https://github.com/tellor-io/best-practices-user/tree/main)
+[^1]: Berdasarkan contoh dalam [repositori best-practice Tellor](https://github.com/tellor-io/best-practices-user/tree/main)
:::tip
-For a general overview of best practices using Tellor, go to the [User checklists](https://docs.tellor.io/tellor/getting-data/user-checklists) in the Tellor docs.
+Untuk gambaran umum _best-practice_ menggunakan Tellor, kunjungi [Checklist Pengguna](https://docs.tellor.io/tellor/getting-data/user-checklists) dalam dokumentasi Tellor.
:::
-## Deploying on Lisk
+## Meluncurkan di Lisk
-To deploy the smart contract on Lisk Sepolia or Lisk Mainnet, follow the guides
+Untuk meluncurkan kontrak pintar di Lisk Sepolia atau Lisk Mainnet, ikuti panduan berikut:
-- [Deploying a smart contract with Hardhat](../deploying-smart-contract/with-Hardhat), or
-- [Deploying a smart contract with Foundry](../deploying-smart-contract/with-Foundry)
+- [Meluncurkan kontrak pintar dengan Hardhat](../deploying-smart-contract/with-Hardhat), atau
+- [Meluncurkan kontrak pintar dengan Foundry](../deploying-smart-contract/with-Foundry)
-## Further resources
+## Sumber daya tambahan
-- For a more robust implementation of the Tellor oracle, check out the full list of available functions [here](https://github.com/tellor-io/usingtellor/blob/master/README.md).
-- Have a specific Data Feed Request? [Fill out this form](https://github.com/tellor-io/dataSpecs/issues/new?assignees=&labels=&template=new_query_type.yaml&title=%5BNew+Data+Request+Form%5D%3A+).
-- Still have question? Reach out to the Tellor team on Discord [here](https://discord.gg/tellor).
\ No newline at end of file
+- Untuk implementasi yang lebih andal dari oracle Tellor, lihat daftar lengkap fungsi yang tersedia [di sini](https://github.com/tellor-io/usingtellor/blob/master/README.md).
+- Apakah Anda memiliki permintaan Data Feed tertentu? [Isi formulir ini](https://github.com/tellor-io/dataSpecs/issues/new?assignees=&labels=&template=new_query_type.yaml&title=%5BNew+Data+Request+Form%5D%3A+).
+- Apakah Anda masih memiliki pertanyaan? Hubungi tim Tellor di Discord [di sini](https://discord.gg/tellor).