跳转到主要内容

原生代币处理

KAS 是 Kasplex 区块链的原生货币(类似于以太坊上的 ETH)。由于 AMM 智能合约专门使用 ERC-20 代币,KAS 被包装为 WKAS(Wrapped KAS)用于链上操作。

KAS 与 WKAS

KASWKAS
类型原生货币ERC-20 代币
用途Gas 费用、转账DEX 操作
地址(显示)0x0000...0000合约地址
精度1818
转换1 KAS = 1 WKAS(始终)1 WKAS = 1 KAS(始终)

WKAS 合约地址

网络WKAS 地址
Mainnet0x2c2Ae87Ba178F48637acAe54B87c3924F544a83e
Testnet0xC065C62a10fB363fD31CA394D632C4Df106566df

包装原理

WKAS 是一个简单的存取合约:
  • 包装:将 KAS 发送到 WKAS 合约 → 收到等量 WKAS
  • 解包:调用 WKAS 的 withdraw() → 收到等量 KAS
Universal Router 在交易过程中自动处理此操作。用户无需手动包装或解包。

代币表示

在 Kroko DEX 系统中,代币有两个地址字段:
字段KAS 值ERC-20 值用途
address0x0000...0000代币合约地址显示、存储键、余额查询
dexAddressWKAS 地址address 相同所有 DEX 操作(交易、报价、流动性、授权)

调用 API 时

使用 KAS 作为输入或输出调用 Quote 或 Swap API 时,始终使用 WKAS 地址(而非零地址):
// 正确:为 KAS 使用 WKAS 地址
const WKAS = "0x2c2Ae87Ba178F48637acAe54B87c3924F544a83e";
fetch(`/api/v1/quote?tokenIn=${WKAS}&tokenOut=${USDC}&amountIn=1000000000000000000`);

// 错误:零地址不起作用
fetch(`/api/v1/quote?tokenIn=0x0000000000000000000000000000000000000000&...`);

在交易中发送原生 KAS

当 KAS 是输入代币时,将金额作为交易 value 包含:
const tx = await signer.sendTransaction({
  to: swapData.to,
  data: swapData.data,
  value: swapData.value  // 卖出 KAS 时非零
});
当 Swap API 检测到 WKAS 为输入代币时,会自动设置 value 字段。