
استخدام @charmbracelet لإنشاء متصفح إيثريوم بأناقة
محفظة إيثريوم ومتصفح عقود ذكية جميل يعمل في الطرفية، مصمم من أجل السيادة والأمان والأناقة.
━━━━━━━━━━━━━━━━━━━━
domestic system
━━━━━━━━━━━━━━━━━━━━

النظام المنزلي هو واجهة مستخدم طرفية (TUI) مصممة لتصفح حسابات وعقود إيثريوم (EVM). يجمع بين ثلاثة مبادئ أساسية تجعل التفاعل مع البلوكتشين عبر الطرفية ليس فقط عمليًا، بل مفضلًا أيضًا.
من جانب العميل فقط. لا خوادم مركزية. أنت والبلوكتشين فقط.
يتصل النظام المنزلي مباشرة بنقاط نهاية RPC الخاصة بإيثريوم التي تختارها. لا وسطاء. لا تحليلات. لا تتبع. تفاعلك مع البلوكتشين مباشر وغير وسيط. هكذا كان من المفترض أن يعمل Web3.
لا إدارة للمفاتيح الخاصة. جاهز للمحفظة العتادية.
مفاتيحك الخاصة لا تلمس هذا التطبيق أبدًا. يتم إنشاء جميع المعاملات كرموز QR باتباع EIP-4527، المصممة خصيصًا للتوقيع باستخدام أجهزة المحفظة العتادية. اعرض حساباتك، حضّر المعاملات، ووقعها بأمان على محفظتك العتادية.
مبنية باستخدام Charm.sh. واجهات طرفية، منفذة بشكل جميل.
باستخدام نظام Charm.land الرائع (Bubble Tea وLip Gloss وHuh)، يثبت النظام المنزلي أن واجهات سطر الأوامر لا يجب أن تكون قاسية. الألوان الغنية والتفاعلات السلسة وتصميم الواجهة المدروس يجلب جمالية مستقبلية رجعية للتفاعل مع البلوكتشين.
تتلاقى هذه المبادئ الثلاثة—السيادة والأمان والجماليات—بشكل مثالي في الطرفية. تطبيقات الطرفية:
يحتل النظام المنزلي تقاطعًا فريدًا لحالات الاستخدام المتخصصة، يخدم أولئك الذين يقدرون التحكم والأمان والإتقان.
git clone https://github.com/yourusername/domestic-system.git
cd domestic-system
go build
go run .
يخزن النظام المنزلي إعداداته في ~/.charm-wallet-config.json.
أضف نقاط نهاية RPC لإيثريوم في صفحة الإعدادات "s" أو بتعيين متغير البيئة ETH_RPC_URL:
export ETH_RPC_URL="https://eth.llamarpc.com"
go run .
خصص رموز ERC-20 التي تريد عرضها بتحرير قائمة مراقبة الرموز في main.go (واجهة المستخدم للتهيئة قريبًا).
x من الحسابات): إدارة مفاتيح التوقيع، مسح رموز QR الخاصة بـ EIP-4527 عبر كاميرا الويب، وتوقيع المعاملاتa لإضافة محفظة جديدةالحساب النشط (المُعلَّم بـ ★) يحدد المحفظة المستخدمة للمعاملات. لتبديل الحسابات:
بدلاً من ذلك، انتقل إلى صفحة المحافظ واضغط Enter على أي محفظة لعرض تفاصيلها وتفعيلها.
يتضمن النظام المنزلي سير عمل كامل لتوقيع المعاملات وفقًا لـ EIP-4527 يمكن استخدامه داخل TUI وبشكل مستقل من الطرفية.
TUI (أي صفحة) → يحزم معاملة غير موقعة → يعرض رمز QR الخاص بـ EIP-4527
↓
صفحة الموقع تمسح QR عبر كاميرا الويب
↓
يفك تشفير UR → يوقع بالمفتاح المخزن
↓
يعرض المعاملة الموقعة بصيغة hex خام
تُخزّن المفاتيح في ~/.charm-wallet-private-keys.json (الوضع 600، خارج المستودع). في التشغيل الأول، يتم تهيئة مفتاح تجريبي NotForProduction تلقائيًا ويُسجل عنوانه في ~/.charm-wallet-config.json.
{
"private_keys": [
{
"address": "0x29c73B201bEE86C4d1Fe4f598C4355Bb210251e3",
"name": "NotForProduction",
"private_key": "0xc0054..."
}
]
}
اضغط x من صفحة الحسابات لفتح الموقع. من هناك:
يتم عرض المعاملة الموقعة (hex خام، تجزئة المعاملة، r/s/v) فورًا بعد المسح.
signer/eth_signer.py)يعمل موقع Python بشكل مستقل دون TUI. قم بتثبيت التبعيات مرة واحدة:
pip install -r requirements.txt
جميع المخرجات بصيغة JSON. وضع --scan يفتح نافذة OpenCV تعرض بث الكاميرا المباشر ويصدر المعاملات الموقعة إلى stdout عند اكتشافها.
cmd/txtest)يمارس دورة الحزم ← فك التشفير ← التوقيع باستخدام وحدات Go مباشرة:
# غير متصل (معاملات اختبار ثابتة — لا حاجة لـ RPC)
go run ./cmd/txtest
# مع nonce/gasPrice/chainId حية من نقطة نهاية RPC
go run ./cmd/txtest --rpc https://eth.llamarpc.com
# مستلم ومبلغ مخصصين
go run ./cmd/txtest --to 0xYourAddr --value 0.5 --chainid 11155111
يظهر الإخراج كلا الخطوتين بوضوح:
STEP 1 — Pack unsigned transaction (EIP-4527)
─────────────────────────────────────────────
Transaction fields: { "from": "0x29c7...", "to": "0xd8dA...", ... }
UR: ur:eth-sign-request/onadtpdagd...
STEP 2 — Decode + sign with stored key
───────────────────────────────────────
Decoded transaction: { "from": "0x29c7...", "value": "0.001000 ETH", ... }
Signed transaction: { "txHash": "0x5989...", "raw_transaction": "0xf86b...", ... }
✓ Round-trip complete
ss -ntlp | grep 8545
ssh -N -L 8545:localhost:8545 user@node_machine_ip_address #لـ http
ssh -N -L 8546:localhost:8546 user@node_machine_ip_address #لـ ws websocket
يمكن لتطبيقك، الذي يعمل على جهاز التطبيق، الآن الوصول إلى RPC لعقدة إيثريوم عبر http://localhost:8545
go run helpers/uniswap_v4_listener.go -ws -poolmanager
[-from ]go run ./cmd/v4listener
-ws ws://localhost:8546
-poolmanager 0x000000000004444c5dc75cB358380D2e3dE08A90
go run ./cmd/v4listener
-ws ws://localhost:8546 \ #أو ws://mainnet.infura.io/ws/v3/YOUR_KEY
-poolmanager 0x000000000004444c5dc75cB358380D2e3dE08A90
-from 21688000
domestic-system/
├── main.go # نقطة الدخول — يربط برنامج Bubble Tea
├── model.go # هيكل حالة التطبيق + Init()
├── update.go # جميع معالجات رسائل Update()
├── view.go # وظيفة View() العليا للموزع
├── cmd/
│ ├── txtest/ # CLI اختبار الحزم ← التوقيع من البداية للنهاية
│ └── v4listener/ # مستمع أحداث Uniswap V4 مستقل
├── config/ # تحميل/حفظ إعدادات JSON، تعريفات الأنواع
├── helpers/ # حل ENS، تنسيق العناوين، Uniswap V2/V4
├── rpc/ # عميل RPC لإيثريوم، تغليف معاملات EIP-4527
├── signer/
│ ├── signer.go # حزمة Go: إدارة المفاتيح، فك تشفير EIP-4527، توقيع ECDSA
│ └── eth_signer.py # CLI Python مستقل (نفس الوظيفة)
├── styles/ # ألوان Lip Gloss والأنماط المشتركة
├── views/ # عارضات لكل صفحة
│ ├── wallets/
│ ├── details/
│ ├── settings/
│ ├── dapps/
│ ├── uniswap/
│ ├── terra/
│ └── signer/ # عارض صفحة الموقع
└── webcam/ # التقاط الكاميرا وعرض الفيديو بنصف بلوك
# اختبارات حزمة RPC (تتطلب نقطة نهاية RPC)
ETH_RPC_URL="https://eth.llamarpc.com" go test ./rpc -v
# جميع الاختبارات
go test ./... -v
المساهمات مرحب بها! هذا المشروع يقدر:
يرجى فتح قضية قبل البدء في عمل كبير.
MIT License - راجع ملف LICENSE للتفاصيل
بُني باستخدام:
مستوحى من روح السيادة الذاتية وجماليات الحوسبة القديمة.
النظام المنزلي: طرفيتك، مفاتيحك، بلوكتشينك.
| المفتاح | الإجراء |
|---|
↑/↓ | تحديد مفتاح التوقيع |
s | فتح كاميرا الويب — يوقع تلقائيًا أول رمز EIP-4527 يتم اكتشافه |
a | إعادة تحميل المفاتيح من القرص |
c | مسح النتيجة الحالية |
Esc | العودة إلى الحسابات |
| الأمر | الوصف |
|---|
python signer/eth_signer.py --generate-keys | إنشاء زوج مفاتيح ECDSA جديد |
python signer/eth_signer.py --derive-address 0x... | اشتقاق العنوان من المفتاح الخاص |
python signer/eth_signer.py --private-key 0x... --to 0x... --value 1000000000000000000 | توقيع معاملة |
python signer/eth_signer.py --scan | مسح كاميرا الويب: اكتشاف وتوقيع رموز QR الخاصة بـ EIP-4527 |
python signer/eth_signer.py --add-key --private-key 0x... --name "Wallet" | إضافة مفتاح إلى المخزن |
python signer/eth_signer.py --list-keys | سرد العناوين المخزنة |