KO
|
EN
gitlite — search
Search
#javascript
#python
#ruby
#dotfiles
#c-plus-plus
#shell
#php
#java
#library
#bash
#hacktoberfest
#inactive
cantex-swap
★ 31
Open GitHub ↗
cantex swap full otomatis
Download README (.md)
Explore Similar Repositories
AutoFly-VLA
:
No description available.
Plugin.Maui.Rive
:
Rive animation runtime bindings for .NET MAUI
gemini-pro-panel
:
gemini 增强面板(历史prompt 和收藏 prompt)
llama.cpp-dgx
:
llama.cpp fork optimized for NVIDIA DGX Spark / GB10 (Blackwell, SM 12.1) — TurboQuant weights + KV, NVFP4, DFlash MTP
chicory-redline
:
[EXPERIMENTAL - IN DEVELOPMENT] Use Cranelift to compile Wasm
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
cantex-swap
?
Download (.md)
# Pantex Swap Bot Final Boss Bot otomasi swap CC ↔ USDCx di Cantex.io menggunakan Node.js. Berjalan 24 jam di VPS Linux dengan fitur: - Swap otomatis 5-7x per jam dengan jadwal random - Auto deteksi arah swap via quote check (tidak akan salah pair) - State memory: ingat posisi terakhir meski restart atau crash - Jam tidur otomatis 01:00-04:00 WIB (natural behavior) - Retry otomatis jika swap gagal (hingga 5x) - Notifikasi Telegram: swap gagal, session expired, tidur, bangun - Auto shutdown jika session expired + panduan update cookie --- ## Daftar Isi 1. [Persiapan Awal](#1-persiapan-awal) 2. [Cara Mendapatkan Operator Key](#2-cara-mendapatkan-operator-key) 3. [Cara Mendapatkan Session Cookie](#3-cara-mendapatkan-session-cookie) 4. [Cara Mendapatkan Pool CID dan Instrument Admin](#4-cara-mendapatkan-pool-cid-dan-instrument-admin) 5. [Cara Membuat Bot Telegram](#5-cara-membuat-bot-telegram) 6. [Instalasi di VPS](#6-instalasi-di-vps) 7. [Konfigurasi .env](#7-konfigurasi-env) 8. [Menjalankan Bot](#8-menjalankan-bot) 9. [Perintah PM2](#9-perintah-pm2) 10. [Update Session Cookie](#10-update-session-cookie) 11. [Troubleshooting](#11-troubleshooting) 12. [Keamanan](#12-keamanan) --- ## 1. Persiapan Awal ### Kebutuhan VPS - OS: Ubuntu 20.04 / 22.04 / 24.04 - RAM: minimal 512MB - Node.js v18 ke atas ### Install Node.js di VPS ```bash curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs node --version # pastikan v20 ke atas npm --version ``` ### Install PM2 ```bash npm install -g pm2 ``` --- ## 2. Cara Mendapatkan Operator Key Operator Key adalah private key untuk menandatangani transaksi di Cantex. **Jangan pernah share ke siapapun.** 1. Login ke [cantex.io](https://cantex.io) 2. Klik ikon profil → **Settings** 3. Scroll ke bawah ke bagian **Advance Setting** 4. Klik tombol **Reveal Operator Key** 5. Copy hex string yang muncul (kombinasi huruf dan angka panjang) 6. Simpan ke `.env` sebagai nilai `OPERATOR_KEY_HEX` --- ## 3. Cara Mendapatkan Session Cookie Session Cookie digunakan untuk autentikasi setiap request ke API Cantex. 1. Login ke [cantex.io](https://cantex.io) di browser Chrome/Edge 2. Tekan **F12** untuk buka DevTools 3. Klik tab **Network** 4. Klik filter **Fetch/XHR** 5. Lakukan aksi apapun di Cantex (misal buka halaman trade) 6. Klik salah satu request yang muncul di daftar 7. Klik tab **Headers** 8. Scroll ke bawah ke bagian **Request Headers** 9. Cari baris **Cookie:** → copy seluruh nilainya 10. Simpan ke `.env` sebagai nilai `SESSION_COOKIE` > **Catatan:** Cookie akan expired dalam beberapa hari. > Bot akan otomatis shutdown dan kirim notif Telegram saat expired. > Lihat bagian [Update Session Cookie](#10-update-session-cookie). --- ## 4. Cara Mendapatkan Pool CID dan Instrument Admin Nilai-nilai ini didapat dengan cara intercept network request saat swap. 1. Login ke [cantex.io](https://cantex.io) 2. Buka DevTools (F12) → tab **Network** → filter **Fetch/XHR** 3. Lakukan swap manual sekali (misal 1 CC ke USDCx) 4. Cari request bernama **swap** di daftar Network 5. Klik request tersebut → tab **Payload** Catat nilai berikut dari payload: ``` poolCid → simpan sebagai POOL_CID instrumentAdmin → untuk CC simpan sebagai CC_INSTRUMENT_ADMIN ``` Untuk `USDCX_INSTRUMENT_ADMIN`, swap arah sebaliknya (USDCx ke CC) dan catat nilai `instrumentAdmin` dari payload-nya. Contoh nilai yang didapat: ``` POOL_CID=0015ccbfeb6e0086c5b3ae6ecaf3cd... CC_INSTRUMENT_ADMIN=DSO::1220b1431ef217342db44d516bb9befde802... USDCX_INSTRUMENT_ADMIN=decentralized-usdc-interchain-rep::12208115f1e168... ``` --- ## 5. Cara Membuat Bot Telegram Bot Telegram digunakan untuk menerima notifikasi dari swap bot. ### Buat Bot Baru 1. Buka Telegram, cari **@BotFather** 2. Kirim perintah `/newbot` 3. Ikuti instruksi: masukkan nama bot dan username bot 4. BotFather akan memberikan **token** seperti: ``` 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ ``` 5. Simpan token ini sebagai `TELEGRAM_BOT_TOKEN` di `.env` ### Dapatkan Chat ID 1. Kirim pesan apapun ke bot yang baru dibuat 2. Buka URL berikut di browser (ganti TOKEN dengan token kamu): ``` https://api.telegram.org/botTOKEN/getUpdates ``` 3. Cari bagian `"chat":{"id":` → angka setelahnya adalah Chat ID kamu ```json "chat": { "id": 123456789, ... } ``` 4. Simpan angka tersebut sebagai `TELEGRAM_CHAT_ID` di `.env` --- ## 6. Instalasi di VPS ```bash # Clone repository git clone https://github.com/username/cantex-bot.git cd cantex-bot # Install dependensi npm install # Buat file .env dari template cp .env.example .env # Edit .env dengan nilai yang sudah dikumpulkan nano .env ``` --- ## 7. Konfigurasi .env Isi file `.env` dengan nilai yang sudah dikumpulkan: ```env # ── WAJIB DIISI ────────────────────────────────────────────── # Operator Key dari Settings Cantex (hex string) OPERATOR_KEY_HEX=isi_operator_key_kamu # Session Cookie dari DevTools browser SESSION_COOKIE=isi_cookie_dari_browser # Party ID dari dashboard Cantex PARTY_ID=Cantex::122089... # Pool Contract ID dari payload swap POOL_CID=0015ccbfeb6e... # Instrument Admin untuk USDCx USDCX_INSTRUMENT_ADMIN=decentralized-usdc-interchain-rep::12208115... # Instrument Admin untuk CC (Canton Coin) CC_INSTRUMENT_ADMIN=DSO::1220b1431ef217... # Token Bot Telegram TELEGRAM_BOT_TOKEN=1234567890:ABCdef... # Chat ID Telegram kamu TELEGRAM_CHAT_ID=123456789 # ── KONFIGURASI SWAP ───────────────────────────────────────── # Range siklus swap per jam SWAP_MIN_PER_HOUR=5 SWAP_MAX_PER_HOUR=7 # Range nominal CC yang di-swap ke USDCx CC_AMOUNT_MIN=80 CC_AMOUNT_MAX=100 # Range nominal USDCx yang di-swap ke CC USDCX_AMOUNT_MIN=10 USDCX_AMOUNT_MAX=20 ``` ### Test sebelum jalankan bot ```bash # Test Operator Key node test-sign.js # Test 1x swap kecil node test-swap.js ``` Pastikan keduanya menampilkan ✅ sebelum lanjut. --- ## 8. Menjalankan Bot ```bash cd ~/cantex-bot # Jalankan dengan PM2 pm2 start bot.js --name cantex-bot # Simpan agar auto-start saat VPS reboot pm2 save # Aktifkan auto-start (jalankan sekali saja) pm2 startup # → Copy-paste perintah yang muncul dan jalankan # Pantau log pm2 logs cantex-bot ``` ### Cara Kerja Bot Setiap jam bot akan: 1. Generate jadwal random (5-7 siklus dalam 60 menit) 2. Sebelum setiap siklus, cek balance via quote API 3. Tentukan arah swap berdasarkan balance dan state terakhir 4. Eksekusi swap pertama (CC→USDCx atau USDCx→CC) 5. Jeda 4-10 menit agar holding settle di ledger 6. Eksekusi swap kedua (arah balik) 7. Simpan state ke `state.json` 8. Ulangi untuk siklus berikutnya Jam 01:00-04:00 WIB bot otomatis tidur dan lanjut kembali setelah jam 04:00 WIB. --- ## 9. Perintah PM2 | Tujuan | Perintah | |--------|----------| | Jalankan bot | `pm2 start bot.js --name cantex-bot` | | Cek status | `pm2 status` | | Lihat log live | `pm2 logs cantex-bot` | | Restart bot | `pm2 restart cantex-bot` | | Stop sementara | `pm2 stop cantex-bot` | | Jalankan lagi | `pm2 start cantex-bot` | | Hapus dari PM2 | `pm2 delete cantex-bot` | | Monitor detail | `pm2 monit` | > **Catatan:** `pm2 logs` bisa dihentikan dengan Ctrl+C tanpa mematikan bot. --- ## 10. Update Session Cookie Saat session expired, bot akan: 1. Kirim notifikasi ke Telegram berisi langkah-langkah update 2. Otomatis shutdown Langkah update cookie: ```bash # Buat script helper (hanya sekali) nano ~/cantex-bot/update-cookie.sh ``` Isi dengan: ```bash #!/bin/bash echo "Paste cookie baru dari browser, lalu tekan Enter:" read -r COOKIE sed -i "s|SESSION_COOKIE=.*|SESSION_COOKIE=$COOKIE|" ~/cantex-bot/.env echo "✅ Cookie berhasil diupdate!" pm2 restart cantex-bot echo "✅ Bot direstart!" ``` Simpan lalu beri izin: ```bash chmod +x ~/cantex-bot/update-cookie.sh ``` Saat dapat notif expired, cukup jalankan: ```bash ~/cantex-bot/update-cookie.sh # Paste cookie baru → Enter # Bot otomatis restart ``` ### Cara ambil cookie baru dari browser: 1. Login ke cantex.io 2. Buka DevTools (F12) → Network → Fetch/XHR 3. Klik request apapun → Headers → Request Headers 4. Copy nilai **Cookie:** 5. Paste ke script di atas --- ## 11. Troubleshooting **Error: `Cannot find module 'dotenv'`** ```bash cd ~/cantex-bot && npm install ``` **Error: `Operator Key harus 32 bytes`** Operator Key harus tepat 64 karakter hex. Pastikan tidak ada spasi atau karakter tambahan. **Error: `401 Unauthorized`** Session cookie expired. Jalankan: ```bash ~/cantex-bot/update-cookie.sh ``` **Error: `user input holding cids not found`** Holding belum settle di ledger. Bot akan retry otomatis setiap 1 menit hingga 5x. **Error: `Pool CID not found`** Pool mungkin diupdate oleh Cantex. Ulangi langkah capture Network tab untuk mendapatkan `poolCid` terbaru, lalu update `.env` dan restart bot. **Bot tidak kirim notif Telegram** Pastikan sudah kirim pesan ke bot Telegram kamu minimal sekali sebelum bot dijalankan, dan pastikan `TELEGRAM_BOT_TOKEN` serta `TELEGRAM_CHAT_ID` sudah benar di `.env`. **Cek log untuk detail error:** ```bash pm2 logs cantex-bot --lines 50 grep "ERROR" ~/cantex-bot/bot.log | tail -20 ``` --- ## 12. Keamanan | File | Status | |------|--------| | `.env` | ⛔ RAHASIA — jangan pernah share atau upload | | `state.json` | ⚠️ Pribadi — tidak perlu diupload | | `bot.log` | ⚠️ Pribadi — tidak perlu diupload | | `node_modules/` | Tidak perlu diupload | | File `.js` lainnya | ✅ Aman diupload | **Yang paling sensitif di `.env`:** - `OPERATOR_KEY_HEX` → akses penuh ke akun Cantex - `SESSION_COOKIE` → bisa login sebagai kamu - `TELEGRAM_BOT_TOKEN` → kontrol bot Telegram kamu **Jangan pernah:** - Share file `.env` ke siapapun - Commit `.env` ke GitHub (gunakan `.env.example` sebagai gantinya) - Paste Operator Key atau Cookie di chat, forum, atau grup --- ## Struktur File ``` cantex-bot/ ├── bot.js ← Bot utama ├── cantex-api.js ← Module komunikasi API Cantex ├── signer.js ← Module Ed25519 signing ├── test-sign.js ← Test validasi Operator Key ├── test-swap.js ← Test 1x swap ├── package.json ← Dependensi Node.js ├── .env.example ← Template konfigurasi (aman diupload) ├── .env ← Konfigurasi asli (JANGAN diupload) ├── .gitignore ← Daftar file yang tidak diupload ke GitHub ├── state.json ← State bot (auto-generated) └── bot.log ← Log bot (auto-generated) ``` --- *Cantex Swap Bot v5.0 — Canton Network*