feat: implement complete OpenClaw DAO governance system
🏛️ OpenClawDAO Smart Contract Implementation: Core Governance Contract: - Enhanced OpenClawDAO with snapshot security and anti-flash-loan protection - Token-weighted voting with 24-hour TWAS calculation - Multi-sig protection for critical proposals (emergency/protocol upgrades) - Agent swarm role integration (Provider/Consumer/Builder/Coordinator) - Proposal types: Parameter Change, Protocol Upgrade, Treasury, Emergency, Agent Trading, DAO Grants - Maximum voting power limits (5% per address) and vesting periods Security Features: - Snapshot-based voting power capture prevents flash-loan manipulation - Proposal bonds and challenge mechanisms for proposal validation - Multi-signature requirements for critical governance actions - Reputation-based voting weight enhancement for agents - Emergency pause and recovery mechanisms Agent Wallet Contract: - Autonomous agent voting with configurable strategies - Role-specific voting preferences based on agent type - Reputation-based voting power bonuses - Authorized caller management for agent control - Emergency stop and reactivate functionality - Autonomous vote execution based on predefined strategies GPU Staking Contract: - GPU resource staking with AITBC token collateral - Reputation-based reward rate calculations - Utilization-based reward scaling - Lock period enforcement with flexible durations - Provider reputation tracking and updates - Multi-pool support with different reward rates Deployment & Testing: - Complete deployment script with system configuration - Comprehensive test suite covering all major functionality - Multi-sig setup and initial agent registration - Snapshot creation and staking pool initialization - Test report generation with detailed results 🔐 Security Implementation: - Anti-flash-loan protection through snapshot voting - Multi-layer security (proposal bonds, challenges, multi-sig) - Reputation-based access control and voting enhancement - Emergency mechanisms for system recovery - Comprehensive input validation and access controls 📊 Governance Features: - 6 proposal types covering all governance scenarios - 4 agent swarm roles with specialized voting preferences - Token-weighted voting with reputation bonuses - 7-day voting period with 1-day delay - 4% quorum requirement and 1000 AITBC proposal threshold 🚀 Ready for deployment and integration with AITBC ecosystem
This commit is contained in:
@@ -63,3 +63,13 @@ async def list_receipts(
|
||||
offset: int = Query(default=0, ge=0),
|
||||
) -> ReceiptListResponse:
|
||||
return _service(session).list_receipts(job_id=job_id, limit=limit, offset=offset)
|
||||
|
||||
|
||||
@router.get("/transactions/{tx_hash}", summary="Get transaction details by hash")
|
||||
async def get_transaction(
|
||||
*,
|
||||
session: Annotated[Session, Depends(get_session)],
|
||||
tx_hash: str,
|
||||
) -> dict:
|
||||
"""Get transaction details by hash from blockchain RPC"""
|
||||
return _service(session).get_transaction(tx_hash)
|
||||
|
||||
@@ -262,3 +262,30 @@ class ExplorerService:
|
||||
|
||||
resolved_job_id = job_id or "all"
|
||||
return ReceiptListResponse(jobId=resolved_job_id, items=items)
|
||||
|
||||
def get_transaction(self, tx_hash: str) -> dict:
|
||||
"""Get transaction details by hash from blockchain RPC"""
|
||||
rpc_base = settings.blockchain_rpc_url.rstrip("/")
|
||||
try:
|
||||
with httpx.Client(timeout=10.0) as client:
|
||||
resp = client.get(f"{rpc_base}/rpc/tx/{tx_hash}")
|
||||
if resp.status_code == 404:
|
||||
return {"error": "Transaction not found", "hash": tx_hash}
|
||||
resp.raise_for_status()
|
||||
tx_data = resp.json()
|
||||
|
||||
# Map RPC schema to UI-compatible format
|
||||
return {
|
||||
"hash": tx_data.get("tx_hash", tx_hash),
|
||||
"from": tx_data.get("sender", "unknown"),
|
||||
"to": tx_data.get("recipient", "unknown"),
|
||||
"amount": tx_data.get("payload", {}).get("value", "0"),
|
||||
"fee": "0", # RPC doesn't provide fee info
|
||||
"timestamp": tx_data.get("created_at"),
|
||||
"block": tx_data.get("block_height", "pending"),
|
||||
"status": "confirmed",
|
||||
"raw": tx_data # Include raw data for debugging
|
||||
}
|
||||
except Exception as e:
|
||||
print(f"Warning: Failed to fetch transaction {tx_hash} from RPC: {e}")
|
||||
return {"error": f"Failed to fetch transaction: {str(e)}", "hash": tx_hash}
|
||||
|
||||
Reference in New Issue
Block a user