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