commit affa005b15341d4307a7f06bae4a30c629076e0b Author: Syn Naulaid Date: Tue Oct 8 02:47:07 2024 +0000 Dokumentasi & Penggujian diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..77352b5 --- /dev/null +++ b/Home.md @@ -0,0 +1,221 @@ + +# **wChainGPRC** + + + +## **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`. \ No newline at end of file