GCASH PEGGED V2 README

# GCASH PEGGED 前端控制台(Polygon 主网)使用说明

本前端(`gcash_token_dashboard.html`)可直接通过浏览器与合约交互,无需 Remix。建议使用 Chrome + MetaMask。

## 一、快速开始

1. 打开 `gcash_token_dashboard.html`(本地双击或任意静态服务器上线皆可)。
2. 右上角点击“连接钱包”。若未在 Polygon 主网,页面会提示切换/添加 Polygon(ChainId 137)。
3. 在左侧“合约设置”输入你的合约地址(ABI 已内置 `GCASHPEGGEDToken`,如你自定义了合约,请粘贴你的 ABI)。
4. 点击“连接合约”,页面显示合约名、代号、精度、总/最大供应、Owner 等信息。
5. 根据顶部 Tab 切换到不同功能页操作。

## 二、关于单位(务必读)

- 合约的金额类型是 `uint256`,实际单位为 Wei(18 位小数)。
- 前端“所有金额输入均以 Token(人类可读)为单位”,会自动转换为 Wei。你不需要手动增加 18 个 0。
- 示例:输入 `1.5` Token,前端会自动传递 `1500000000000000000`(Wei)。

提示:页面左侧提供“Token <-> Wei”换算工具,便于核对。

## 三、网络要求

- 本前端默认要求 Polygon 主网(ChainId 137)。
- 连接钱包后如果不在 Polygon,会自动提示 `wallet_switchEthereumChain``wallet_addEthereumChain`
- 切换成功后,右上角会显示 `Polygon (137)`

## 四、功能导航与影响

### 1) 转账/授权
- transfer / transferFrom:常规转账;发送方需额外支付手续费(若有)。
- transferWithCall:转账并回调目标合约(`IERC1363Receiver.onTokenTransfer`),回调失败会回滚交易。
- approve / approveAndCall:授权额度管理;`approveAndCall` 会回调目标合约(`IERC1363Spender.onApprovalReceived`),失败回滚。
- increaseApproval / decreaseApproval:在原有 allowance 基础上增/减授权。
- burn:销毁自己地址中的代币。

注意:
- 转账会检查多个条件:全局是否开启、地址是否被禁/冻、是否有足够可用余额(扣除锁仓与手续费)。
- 如果接收方是合约并启用了 `TransferOnCall`,会额外触发回调(不影响转账成败)。

### 2) Owner 操作
- mint / multiMint:增发代币至地址;总量将增加,但不得超过 `maxSupply`
- increaseMaxSupply:提高未来可增发的上限 `maxSupply`
- burnMaxSupply:销毁并减少 `maxSupply`(不可逆)。
- setTransfersEnabled:全局开/关转账。
- disableTransfer/enableTransfer:禁用/恢复某地址转账。
- blockTransfer/unblockTransfer:冻结/解冻地址(无法收发)。
- setFeeRecipient:设置手续费接收地址(设为 0 地址表示将手续费直接销毁)。
- recoverTokens / recoverAllTokens:找回误转至本合约的第三方 ERC20(不可找回本 Token)。
- recoverNativeToken:找回本合约内的原生代币(Polygon 上为 MATIC)。
- setNewRecoverWallet:设置误转代币接收地址。
- transferOwnership:转移 Owner;旧 Owner 的“发送方免手续费”将被移除,新 Owner 自动启用。

### 3) 手续费/白名单/VIP
- setFeeConfig:配置多层费率(ppb 十亿分比),例如 1% = 10,000,000 ppb;`minFee`、额外手续费单位均为 Wei。
- setContractExtraFee / removeContractExtraFee / hasContractExtraFee:对某合约地址设置/移除/查询“额外手续费”。
- whitelist/superWhitelist/vip/vvip/vvvip:多级白名单/VIP 费率;支持单个与批量操作。
- setFeeExemptSender / Receiver(含 Batch):免手续费名单(发送方或接收方)。
- 付费 VIP1:`setPaidVip1` / `setPaidVip1MinFee` / `removePaidVip1` / `getPaidVip1Status`,为指定地址设置自定义费率与过期时间,覆盖其他所有费率逻辑。
- 折扣配置:`setDiscountConfig`(折扣代币、发送方阈值、接收方阈值);满足阈值各减半,最多两次减半叠加。

### 4) 锁仓/批量
- 旧锁仓:`lockTokens`(单一记录);新锁仓:`lock`(多索引)。锁仓中的余额不可转出。
- `removeHoldByAddress` / `removeHoldByAddressIndex`:移除锁仓;`pruneExpiredLocks`:清理已到期锁仓。
- `multiSend`:Owner 批量发送;`multiMint`:Owner 批量增发。
- 批量白名单/VIP/免手续费:在该页签提供地址列表文本框,一键批量设置。

### 5) 诊断/查询
- 账户:`balanceOf``getAccountBalance``getLockedBalance``getAccountStatus``getLockDetails`
- 手续费:`estimateFee``getFeeBreakdown`
- 合约:`getAllFeeConfigs``getDiscountConfig``getContractStatus`
- 可转/模拟:`canBeTransfered``checkTransferFeasibility``simulateTransfer`

## 五、常见问题与排错

1. 交易失败/回滚:请查看页面底部日志。常见原因:
- 余额不足(包含手续费与锁仓占用)
- 地址被禁用或冻结
- 全局转账关闭
- 非 Owner 调用 Owner 函数
- 回调失败(`transferWithCall` / `approveAndCall`
2. 单位混淆(重要):页面输入一律是 Token 单位,前端自动转换为 Wei。无需手动补 18 个 0。
3. 网络不符:若不是 Polygon 主网,页面会提示切换/添加网络;成功后刷新或重新连接。
4. 大整数输入:费率(ppb)、最小手续费(Wei)、时间戳请直接按十进制字符串输入;页面会安全转换为兼容类型。

## 六、安全建议

- Owner 相关操作影响全局状态、白名单、费率或供应,执行前请仔细核对参数与目标地址。
- `burnMaxSupply` 不可逆,谨慎操作。
- 回调型交易有被目标合约拒绝的风险(会回滚),请确保目标合约实现了正确接口。

## 七、部署建议

- 若部署到生产环境:建议托管在可信任的静态站点(如 Vercel、Netlify、S3+CDN),并通过 HTTPS 访问。
- 可在页面“合约设置”中保存配置,浏览器将使用 `localStorage` 记忆地址与 ABI。

如需品牌化 UI、预填你的合约地址、或新增操作日志导出等功能,请联系维护者进行二次开发。祝使用顺利!