Dokumentasi & Penggujian

Syn Naulaid 2024-10-08 02:47:07 +00:00
commit affa005b15

221
Home.md Normal file

@ -0,0 +1,221 @@
# **wChainGPRC**
<img src="https://git.warceuproject.org/syn/wChainGPRC/raw/branch/main/img/Screenshot.png">
## **Intro**:
**wChainGPRC** adalah implementasi sederhana dari sebuah server JSON-RPC yang berfungsi untuk melakukan berbagai operasi blockchain, termasuk mendapatkan informasi Chain ID, mengecek saldo, mengelola wallet, dan memantau transaksi. Proyek ini bertujuan untuk menyediakan antarmuka testing yang mudah digunakan untuk berbagai fungsi dasar blockchain.
Proyek ini didesain untuk **penggunaan uji coba**, terutama bagi pengembang yang ingin mempelajari interaksi dasar antara JSON-RPC dan blockchain. Dengan menggunakan `curl`, Anda dapat menguji berbagai metode dan memastikan alur kerja blockchain berjalan sesuai ekspektasi sebelum diterapkan ke lingkungan produksi yang lebih kompleks.
---
## **Deskripsi**:
**wChainGPRC** memiliki beberapa fungsi utama yang dapat digunakan untuk pengujian seperti mendapatkan informasi Chain ID, block terakhir, saldo wallet, menambahkan saldo, dan sebagainya. Ini dirancang dengan tujuan agar pengembang dapat dengan mudah memanggil metode blockchain dengan menggunakan JSON-RPC. Setiap metode mengikuti spesifikasi JSON-RPC 2.0 dan dapat diakses melalui permintaan `POST` dengan endpoint yang tersedia.
Proyek ini memiliki beberapa metode JSON-RPC antara lain:
1. `GetChainId`
2. `eth_chainId`
3. `eth_blockNumber`
4. `net_version`
5. `eth_getBalance`
6. `eth_getBlockByNumber`
7. `addWallets`
8. `addBalance`
9. `eth_gasPrice`
10. `eth_estimateGas`
11. `eth_getTransactionCount`
Anda dapat melakukan pengujian fungsi-fungsi tersebut menggunakan perintah `curl` untuk simulasi pada blockchain sederhana ini.
---
## **Disclaimer**:
**wChainGPRC** **bukan** proyek yang ditujukan untuk penggunaan di **lingkungan produksi**. Proyek ini hanya untuk tujuan **pengujian dan edukasi**. Kami **tidak bertanggung jawab** atas segala kerusakan atau kehilangan data yang disebabkan oleh penggunaan proyek ini di luar konteks pengujian. Penggunaan proyek ini untuk sistem blockchain nyata atau terkait transaksi kripto dengan aset nyata **tidak disarankan**.
---
## **Dokumentasi Penggunaan untuk Test dengan `curl`**
Berikut ini adalah dokumentasi lengkap cara menggunakan setiap metode JSON-RPC yang tersedia dalam proyek **wChainGPRC**. Pastikan server Anda sudah berjalan di port `8000` dengan menjalankan `node server.js`.
### **1. GetChainId**
**Endpoint**: `http://localhost:8000/blockchain`
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "GetChainId",
"params": [],
"id": 1
}'
```
---
### **2. eth_chainId**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_chainId",
"params": [],
"id": 2
}'
```
---
### **3. eth_blockNumber**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 3
}'
```
---
### **4. net_version**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "net_version",
"params": [],
"id": 4
}'
```
---
### **5. eth_getBalance**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0x1234567890abcdef1234567890abcdef12345678", "latest"],
"id": 5
}'
```
---
### **6. eth_getBlockByNumber**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBlockByNumber",
"params": ["0x1", true],
"id": 6
}'
```
---
### **7. addWallets**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "addWallets",
"params": [2],
"id": 7
}'
```
---
### **8. addBalance**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "addBalance",
"params": ["0x1234567890abcdef1234567890abcdef12345678", "1000"],
"id": 8
}'
```
---
### **9. eth_gasPrice**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_gasPrice",
"params": [],
"id": 9
}'
```
---
### **10. eth_estimateGas**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_estimateGas",
"params": [{"from": "0x1234567890abcdef1234567890abcdef12345678", "to": "0xabcdefabcdefabcdefabcdefabcdefabcdef", "value": "0x9184e72a000"}],
"id": 10
}'
```
---
### **11. eth_getTransactionCount**
**Contoh Penggunaan**:
```bash
curl -X POST http://localhost:8000/blockchain \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getTransactionCount",
"params": ["0x1234567890abcdef1234567890abcdef12345678", "latest"],
"id": 11
}'
```
---
Dengan mengikuti dokumentasi ini, Anda dapat menguji proyek **wChainGPRC** menggunakan `curl`.