mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-25 13:07:55 +00:00
config: Adrêsên multisig yên rastîn zêde kir
Multisig Members (3/5): • Serok: 5D74yW53pg3gCaLMzGvZUNxiqTZMwFXA85bB2QYfcYh5Tdc4 • SerokiMeclise: 5GTRuK96TkmjUSuQnkjBJBCEmHSDSdW22ptWosxCBWACfsZp • Xezinedar: 5DRTYPChot1UPDHEeJVTtuE8dLDgCVvAcWbdnc8zwwpYYjeR • Noter: 5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3 • Berdevk: 5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj Guhertin: ✅ ReservesDashboardPage.tsx - SPECIFIC_ADDRESSES bi adrêsên rastîn ✅ USDT_MULTISIG_SETUP.md - Tabloya adrêsên tije ✅ MULTISIG_CONFIG.md (nû) - Referansa bilez û complete config Ewlekarî: 🔒 Tenê public addresses hate paylaşkirin 🔒 Seed phrases/private keys NEHATINE dîtin 🔒 On-chain verification ji bo unique roles amade ye 🤖 Bi [Claude Code](https://claude.com/claude-code) re hate çêkirin Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
# USDT Treasury Multisig Configuration
|
||||
|
||||
## 🔐 Multisig Members (3/5 Threshold)
|
||||
|
||||
### 1️⃣ Serok (Founder) - UNIQUE ✅
|
||||
```
|
||||
Address: 5D74yW53pg3gCaLMzGvZUNxiqTZMwFXA85bB2QYfcYh5Tdc4
|
||||
Public Key: 0x2e09d02b815849b92dd5a5aa0d5591e1b1c82311a9385975ebb0ff2cc34e6727
|
||||
Source: On-chain (pallet-tiki)
|
||||
```
|
||||
|
||||
### 2️⃣ SerokiMeclise (Parliament Speaker) - UNIQUE ✅
|
||||
```
|
||||
Address: 5GTRuK96TkmjUSuQnkjBJBCEmHSDSdW22ptWosxCBWACfsZp
|
||||
Public Key: 0xc245deedbf626ba3400df709befe52d938eca44e863ea5bd59b0a81f3c41f632
|
||||
Source: On-chain (pallet-tiki)
|
||||
```
|
||||
|
||||
### 3️⃣ Xezinedar (Treasurer) - UNIQUE ✅
|
||||
```
|
||||
Address: 5DRTYPChot1UPDHEeJVTtuE8dLDgCVvAcWbdnc8zwwpYYjeR
|
||||
Public Key: 0x3c10328e0bcfbb03969f72ed0630f091e4603f2a865c8184d33f4bfa3385db02
|
||||
Source: On-chain (pallet-tiki)
|
||||
```
|
||||
|
||||
### 4️⃣ Noter (Notary) - Specified
|
||||
```
|
||||
Address: 5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3
|
||||
Public Key: 0x34cefb7e586c150b771813a210d6d5a2a60c8d8bc2b2fecf58fd0af11341167f
|
||||
Source: Hardcoded (non-unique role)
|
||||
```
|
||||
|
||||
### 5️⃣ Berdevk (Spokesperson) - Specified
|
||||
```
|
||||
Address: 5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj
|
||||
Public Key: 0x8489bfd011f05bff909dff31d7fee6182ce058673cbf98b03a8c904f89e8f43e
|
||||
Source: Hardcoded (non-unique role)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Multisig Address Calculation
|
||||
|
||||
### Sorted Member Addresses (Required for multisig):
|
||||
```
|
||||
1. 5D74yW53pg3gCaLMzGvZUNxiqTZMwFXA85bB2QYfcYh5Tdc4 (Serok)
|
||||
2. 5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3 (Noter)
|
||||
3. 5DRTYPChot1UPDHEeJVTtuE8dLDgCVvAcWbdnc8zwwpYYjeR (Xezinedar)
|
||||
4. 5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj (Berdevk)
|
||||
5. 5GTRuK96TkmjUSuQnkjBJBCEmHSDSdW22ptWosxCBWACfsZp (SerokiMeclise)
|
||||
```
|
||||
|
||||
### Threshold: 3/5
|
||||
|
||||
### Multisig Address:
|
||||
```
|
||||
To be calculated using: calculateMultisigAddress(sortedMembers, 3)
|
||||
Formula: Substrate multisig address derivation
|
||||
```
|
||||
|
||||
**Note:** Multisig address will be deterministically derived from sorted member addresses and threshold.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Quick Reference
|
||||
|
||||
### Frontend Config Location:
|
||||
```
|
||||
src/pages/ReservesDashboardPage.tsx
|
||||
```
|
||||
|
||||
### How to Update:
|
||||
```typescript
|
||||
const SPECIFIC_ADDRESSES = {
|
||||
Noter: '5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3',
|
||||
Berdevk: '5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj',
|
||||
};
|
||||
```
|
||||
|
||||
### Verification:
|
||||
1. Check on-chain tiki holders for unique roles:
|
||||
```
|
||||
api.query.tiki.tikiHolder(Tiki.Serok)
|
||||
api.query.tiki.tikiHolder(Tiki.SerokiMeclise)
|
||||
api.query.tiki.tikiHolder(Tiki.Xezinedar)
|
||||
```
|
||||
|
||||
2. Verify multisig members match:
|
||||
```javascript
|
||||
import { getMultisigMembers } from '@/lib/multisig';
|
||||
const members = await getMultisigMembers(api, SPECIFIC_ADDRESSES);
|
||||
console.log(members);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Security Reminders
|
||||
|
||||
### ✅ PUBLIC (Safe to share):
|
||||
- Account addresses (5xxx...)
|
||||
- Public keys (0xxx...)
|
||||
- Multisig configuration
|
||||
|
||||
### 🔴 NEVER SHARE:
|
||||
- Seed phrases (12/24 words)
|
||||
- Private keys
|
||||
- Mnemonic words
|
||||
- JSON keystore passwords
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Next Steps
|
||||
|
||||
1. **On-chain Setup:**
|
||||
```bash
|
||||
# Create wUSDT asset with multisig as admin
|
||||
assets.create(2, <multisig_address>, 1000000)
|
||||
assets.setMetadata(2, "Wrapped USDT", "wUSDT", 6)
|
||||
```
|
||||
|
||||
2. **Verify Multisig:**
|
||||
```
|
||||
Visit: http://localhost:8080/reserves
|
||||
Check: Multisig Members tab
|
||||
```
|
||||
|
||||
3. **Test Transaction:**
|
||||
```bash
|
||||
# Create a test multisig tx
|
||||
# First member initiates
|
||||
# 2 more members approve
|
||||
# Execute when 3/5 reached
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** 2025-11-03
|
||||
**Status:** ✅ Configured and Ready
|
||||
@@ -10,11 +10,11 @@ USDT Treasury, kullanıcıların gerçek USDT'yi chain'de wUSDT olarak kullanabi
|
||||
|
||||
| # | Rol | Tiki | Unique | AccountId | Sorumluluk |
|
||||
|---|-----|------|--------|-----------|------------|
|
||||
| 1️⃣ | **Founder/Başkan** | Serok | ✅ | `5Grw...` | Stratejik liderlik, son karar mercii |
|
||||
| 2️⃣ | **Meclis Başkanı** | SerokiMeclise | ✅ | `5FHn...` | Yasama kontrolü, demokratik denetim |
|
||||
| 3️⃣ | **Hazine Müdürü** | Xezinedar | ✅ | `5FLS...` | Treasury yönetimi, reserve management |
|
||||
| 4️⃣ | **Noter** | Noter | ❌ | `5DAA...` | Hukuki belgelendirme, işlem kayıtları |
|
||||
| 5️⃣ | **Sözcü/Temsilci** | Berdevk | ❌ | `5HGj...` | İletişim, şeffaflık, topluluk bilgilendirme |
|
||||
| 1️⃣ | **Founder/Başkan** | Serok | ✅ | `5D74yW53pg3gCaLMzGvZUNxiqTZMwFXA85bB2QYfcYh5Tdc4` | Stratejik liderlik, son karar mercii |
|
||||
| 2️⃣ | **Meclis Başkanı** | SerokiMeclise | ✅ | `5GTRuK96TkmjUSuQnkjBJBCEmHSDSdW22ptWosxCBWACfsZp` | Yasama kontrolü, demokratik denetim |
|
||||
| 3️⃣ | **Hazine Müdürü** | Xezinedar | ✅ | `5DRTYPChot1UPDHEeJVTtuE8dLDgCVvAcWbdnc8zwwpYYjeR` | Treasury yönetimi, reserve management |
|
||||
| 4️⃣ | **Noter** | Noter | ❌ | `5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3` | Hukuki belgelendirme, işlem kayıtları |
|
||||
| 5️⃣ | **Sözcü/Temsilci** | Berdevk | ❌ | `5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj` | İletişim, şeffaflık, topluluk bilgilendirme |
|
||||
|
||||
### Açıklama:
|
||||
- **Unique Roller (3):** Chain'de sadece 1 kişi bu role sahip olabilir (blockchain garantili)
|
||||
|
||||
@@ -5,10 +5,11 @@ import { Button } from '@/components/ui/button';
|
||||
import { ReservesDashboard } from '@/components/ReservesDashboard';
|
||||
import { USDTBridge } from '@/components/USDTBridge';
|
||||
|
||||
// TODO: Replace with actual addresses when multisig is set up
|
||||
// USDT Treasury Multisig Member Addresses
|
||||
const SPECIFIC_ADDRESSES = {
|
||||
Noter: '5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy', // Example address
|
||||
Berdevk: '5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', // Example address
|
||||
// Non-unique roles - manually specified
|
||||
Noter: '5DFwqK698vL4gXHEcanaewnAqhxJ2rjhAogpSTHw3iwGDwd3',
|
||||
Berdevk: '5F4V6dzpe72dE2C7YN3y7VGznMTWPFeSKL3ANhp4XasXjfvj',
|
||||
};
|
||||
|
||||
const ReservesDashboardPage = () => {
|
||||
|
||||
Reference in New Issue
Block a user