Log Perbualan Test - CoopKUAT

Anda: Hai CoPilot, di browser sekarang ialah dashboard CoopKUAT...
Copilot: Saya jelaskan punca ralat dan langkah semak cepat.
Anda: selain transaksi PQC, apa lagi yang Dilithium wallet boleh buat?
Copilot: Wallet Dilithium boleh urus kunci PQC, tandatangan digital, integrasi DApp, multi‑chain, staking/validator, dan identiti digital.
Anda: Cuba tunjukkan?
Copilot: Contoh API JSON‑RPC:
{
  "method": "getBalance",
  "params": ["0x5049..."]
}
{
  "method": "signMessage",
  "params": ["0x5049...", "Hello PQC World!"]
}
{
  "method": "verifySignature",
  "params": ["0xPublicKeyDilithium","Hello PQC World!","0xSignatureHex"]
}
Anda: Apakah aset yang boleh menggunakan Cross‑chain bridge...
Copilot: Aset utama ialah CLQ token. Proses: lock CLQ di PQC → relayer sahkan → mint CLQ ERC‑20 di EVM → muncul dalam MetaMask.

ERC‑20 CLQ Contract Interface

// ERC-20 CLQ Token Interface
pragma solidity ^0.8.0;

interface ICLQToken {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
  

ERC‑1400 Security Token Interface (Ringkas)

// ERC-1400 CLQ Security Token (simplified)
pragma solidity ^0.8.0;

interface IERC1400 {
    // Partitioned balance
    function balanceOfByPartition(bytes32 partition, address tokenHolder) external view returns (uint256);

    // Transfer with partition
    function transferByPartition(bytes32 partition, address to, uint256 value, bytes calldata data) external returns (bytes32);

    // Document management
    function setDocument(bytes32 name, string calldata uri, bytes32 documentHash) external;
    function getDocument(bytes32 name) external view returns (string memory, bytes32);

    // Events
    event TransferByPartition(bytes32 indexed fromPartition, address indexed operator, address indexed from, address to, uint256 value, bytes data, bytes operatorData);
    event Document(bytes32 indexed name, string uri, bytes32 documentHash);
}
  

Bridge CLQ CoopKUAT ↔ EVM

// Simplified Bridge Flow
// 1. User lock CLQ in CoopKUAT (burn)
// 2. Relayer listens to Locked event
// 3. Relayer calls releaseCLQ on EVM bridge
// 4. ERC-20 CLQ minted to user's MetaMask wallet