还国内信用卡/花呗
海外工资还国内账单?跨境汇款慢
私人换汇?怕被冻卡
银行电汇?手续费贵到肉疼
MiPay 怎么做:
USDT 兑换为人民币
直接还款到支付宝/微信绑定的信用卡
T+0 到账,手续费仅1.5%
Mipay下载链接:
官方中文客服群:
Pay domestic credit card/Huabei
Pay domestic bills with overseas wages? Cross-border remittance is slow
Private currency exchange? Afraid of being frozen
Bank wire transfer? The handling fee is so expensive that it hurts
How to do MiPay:
Convert USDT to RMB
Repay directly to the credit card bound to Alipay/WeChat
T+0 deposit, the handling fee is only 1.5%
Mipay download link:
Official Chinese customer service group:
顯示更多
这个打币给kol。kol不建设还砸盘的解决方案,我思考了一下和之前构建的一个项目的需求很像。分享给各位dev。
原理就是70%既确权给kol。但是又不能让人一把掏了!最大限度降低dev和社区的归零风险,又能激发想干的kol动力!把下面的上下文交给你的codex 让他给你开发出来就行。
核心逻辑是:有人往合约里面打币,然后这个币就会自动每天释放1% 100天后释放完毕。
codex开发完之后再说俩句:按照binance合约审计的水准审计下全部代码。
下面这段可以直接交给另一个用户的 Codex,当作项目交付上下文。
# 项目上下文:BSC 代币 100 天每日 1% 释放 DApp
## 目标
交付一个运行在 BSC / BSC Testnet 上的锁仓释放系统。
用户把指定 BEP20 代币存入合约后,该笔存款从存入时间开始释放:每天释放 1%,100 天释放完毕。用户通过网页连接钱包,完成 approve、deposit、claim 操作。
## 核心规则
- 链:BSC,先支持 BSC Testnet,后续可部署主网。
- 资产:一个固定 BEP20 token,部署合约时传入 token 地址。
- 存款方式:用户不能只靠直接 transfer 到合约。必须:
1. 用户在网页点击 `Approve`
2. 用户点击 `Deposit`
3. 合约通过 `transferFrom` 收币并记录释放计划
- 释放方式:
- 每笔 deposit 独立生成一个 position。
- 从该笔 deposit 的 `startTime` 开始计算。
- 满 1 天释放 1%。
- 满 100 天释放 100%。
- 第 0 天可领取 0%。
- 第 100 天及之后可领取全部剩余未领取数量。
- 领取方式:
- 用户主动点击 `Claim`。
- 合约不需要每天自动转账。
- `claim()` 领取当前所有已释放但未领取的 token。
- 管理权限:
- 管理员不能提走用户锁仓资金。
- 管理员最多只能暂停新 deposit。
- 即使暂停 deposit,也不应阻止用户 claim。
- 不需要后端服务,前端直接读写合约。
## 推荐技术栈
### 合约
- Solidity `^0.8.24` 或更新稳定版本
- OpenZeppelin Contracts
- `SafeERC20`
- `ReentrancyGuard`
- `Ownable`
- 可选:`Pausable`
- Hardhat 或 Foundry 均可,推荐 Hardhat + TypeScript,方便和前端共享 ABI。
### 前端
- Vite + React + TypeScript
- wagmi + viem
- RainbowKit 或 ConnectKit 用于钱包连接
- 支持 MetaMask / Trust Wallet
- 网络:BSC Testnet,后续支持 BSC Mainnet
## 合约建议接口
合约名称建议:`DailyReleaseVault`
核心常量:
- `DURATION_DAYS = 100`
- `BPS_DENOMINATOR = 10000`
- 每天释放 1%,也可以直接用天数除以 100 计算。
建议数据结构:
```solidity
struct Position {
uint256 amount;
uint256 claimed;
uint64 startTime;
}
状态:
IERC20 public immutable token;
mapping(address => Position[]) private positions;
外部函数建议:
function deposit(uint256 amount) external nonReentrant whenNotPaused;
function claim() external nonReentrant;
function claimable(address user) external view returns (uint256);
function totalDeposited(address user) external view returns (uint256);
function totalClaimed(address user) external view returns (uint256);
function positionCount(address user) external view returns (uint256);
function getPosition(address user, uint256 index) external view returns (...);
function pauseDeposits() external onlyOwner;
function unpauseDeposits() external onlyOwner;
释放计算:
elapsedDays = (block.timestamp - startTime) / 1 days
if elapsedDays >= 100:
vested = amount
else:
vested = amount * elapsedDays / 100
claimable = vested - claimed
注意处理:
amount == 0 应 revert。
claimable == 0 时 claim 应 revert 或返回 0,推荐 revert,提示无可领取数量。
使用 SafeERC20.safeTransferFrom 和 safeTransfer。
claim 时先更新 claimed,再转账,配合 nonReentrant。
不要写管理员提取用户 token 的函数。
如果要支持误转其他 token,可加 rescueToken(address otherToken),但必须禁止 rescue 主锁仓 token。
前端页面需求
首页就是实际操作界面,不做营销 landing page。
页面模块:
钱包连接区Connect Wallet
当前地址
当前网络
如果不是 BSC Testnet,提示并提供切换网络按钮
用户资产区钱包 token 余额
allowance
已存入总量
已领取总量
当前可领取数量
未释放数量
预计完全释放时间
存入区输入 deposit 数量
如果 allowance 不足,显示 Approve
allowance 足够后显示 Deposit
显示交易 pending / success / error 状态
领取区显示 claimable 数量
Claim 按钮
没有可领取数量时按钮禁用
仓位列表每笔 deposit 一行
amount
start date
released %
claimed
claimable
full unlock date
测试要求
合约测试必须覆盖:
用户 deposit 成功,position 被记录。
deposit 前必须 approve。
amount 为 0 时失败。
第 0 天 claimable 为 0。
第 1 天 claimable 为 1%。
第 50 天 claimable 为 50%。
第 100 天 claimable 为 100%。
第 120 天不会超过 100%。
多笔 deposit 分别按各自 startTime 释放。
claim 后 claimed 正确增加。
重复 claim 不能重复领取已领取部分。
pause 后不能 deposit。
pause 后仍然可以 claim。
管理员不能取走用户锁仓 token。
rescueToken 不能 rescue 主 token,如实现该函数。
前端测试或手动验收:
能连接钱包。
能切换到 BSC Testnet。
能读取 token balance / allowance / claimable。
allowance 不足时先 approve。
approve 成功后可以 deposit。
deposit 后仓位列表更新。
时间推进后 claimable 正确展示。
claim 成功后余额增加,claimable 归零或减少。
交付物
必须交付:
Solidity 合约源码
合约测试
部署脚本
前端 DApp
ABI 地址配置方式
README
README 至少包含:
安装依赖
运行测试
部署到 BSC Testnet
配置前端合约地址和 token 地址
启动前端
用户操作流程:Connect Wallet -> Approve -> Deposit -> Claim
安全说明:合约不会自动每天打款,用户需要主动 claim
推荐项目结构
project/
contracts/
DailyReleaseVault.sol
scripts/
deploy.ts
test/
DailyReleaseVault.test.ts
frontend/
src/
abi/
config/
components/
pages/
README.md
明确不做
不做自动每天给所有用户转账。
不做后端数据库。
不做多 token 锁仓。
不做管理员代用户提币。
不做用户直接 transfer 到合约后的自动识别。
不做复杂推荐返佣、白名单、手续费,除非后续明确要求。
验收标准
项目完成后,应能在 BSC Testnet 上完成完整流程:
部署测试 BEP20 token 或使用现有测试 token。
部署 DailyReleaseVault,传入 token 地址。
前端配置 vault 地址和 token 地址。
用户连接钱包。
用户 approve。
用户 deposit。
前端显示仓位。
合约测试中通过时间推进验证每日 1% 释放。
用户 claim 后收到已释放 token。
这份上下文已经够另一个 Codex 开始交付了。最重要的是让它坚持 `approve -> deposit -> claim`,不要设计成“用户直接转币到合约自动释放”,那个方向在 BEP20 里会把归属记录搞得很不可靠。
顯示更多
看得我泪流满面😭🥹💔就凭这一点,难道中国人还能再吃狗肉吗?
A Belated Tribute to China’s Wenchuan Earthquake Rescue Dogs.
This is a tribute that comes years too late.
On October 2, 2021, the last search-and-rescue dog that had served in the 2008 Wenchuan Earthquake, Bingjie, passed away. With his death, all 67 rescue dogs that answered the call during one of China’s darkest disasters had completed their final roll call.
This isn’t about whether you love dogs or keep pets.
It’s about heroes.
Back in 2008, when mountains collapsed and entire cities were reduced to rubble, these dogs charged into places no human could safely enter. At a single whistle from their handlers, they disappeared into twisted steel, shattered glass, and unstable concrete without hesitation.
Their paws were ripped apart by broken rebar and jagged debris. They bled with every step. Many worked until the pads of their feet were raw and infected.
Yet the moment they caught even the faintest scent of life beneath the ruins, they refused to leave.
They barked.
They dug.
They kept digging.
For them, every signal they gave meant another chance for someone to survive.
That wasn’t simply bravery.
It was something even purer.
A complete trust in the person who guided them. A trust so absolute that it stood above fear itself.
Bingjie was barely a year old when he was deployed to Wenchuan. Still little more than a puppy, he clawed through what had become a living hell and helped save 13 lives.
The first little girl he rescued is now a university graduate.
The future she was able to live began with a wet black nose finding her in the darkness… and a pair of tiny paws digging until they nearly gave out.
If she remembers that moment, then she remembers who reached her first.
No matter how you measure it, humanity owes these dogs a debt that can never truly be repaid.
There was also Shenhu, another legendary rescue dog.
By the time he retired in 2019, nearly fourteen years old, he had helped save 15 lives. His handler couldn’t bear to part with him, so he brought Shenhu home and stayed by his side until the very end.
Today, a statue stands in his honor.
But the truth is…
Dogs don’t understand medals.
They don’t understand monuments.
They don’t care about titles or glory.
A gentle pat on the head.
A favorite tennis ball.
A few words of praise from the person they trust.
To them, that was worth risking everything.
If called again, they would have done it all over without a second thought.
People often speak of loyalty.
These dogs never spoke a word.
They carved loyalty into their bones.
Now they have all returned to the place people lovingly call the Rainbow Bridge.
Perhaps they’re together again, sniffing one another, wagging their tails, healthy and full of life, just as they were back then.
To the silent heroes who gave everything so that strangers could have another tomorrow…
Thank you.
You will never be forgotten.
顯示更多