
استخدام @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 من صفحة الحسابات لفتح الموقع. من هناك:
| المفتاح | الإجراء |
|---|---|
↑/↓ | تحديد مفتاح التوقيع |
s | فتح كاميرا الويب — يوقع تلقائيًا أول رمز EIP-4527 يتم اكتشافه |
a | إعادة تحميل المفاتيح من القرص |
c | مسح النتيجة الحالية |
Esc | العودة إلى الحسابات |
يتم عرض المعاملة الموقعة (hex خام، تجزئة المعاملة، r/s/v) فورًا بعد المسح.
signer/eth_signer.py)يعمل موقع Python بشكل مستقل دون TUI. قم بتثبيت التبعيات مرة واحدة:
pip install -r requirements.txt
| الأمر | الوصف |
|---|---|
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 | سرد العناوين المخزنة |
جميع المخرجات بصيغة 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...", ... }