一个基于区块链的特斯拉股票代币化项目,使用超额抵押机制和Chainlink价格预言机,实现与特斯拉(TSLA)股票价格挂钩的代币铸造和赎回。
Tesla Price Token (TPT) 是一种ERC20代币,其价值与特斯拉(TSLA)股票价格挂钩。本项目对标 DeFi-Unchained-IITK/Asset-Tokenization 项目的MSFT资产代币化实现,采用超额抵押机制,用户可以使用ETH作为抵押品铸造TPT代币,也可以随时赎回TPT代币取回抵押的ETH。代币的价值由Chainlink价格预言机提供的实时TSLA和ETH价格决定。
- 超额抵押机制:需要200%的ETH抵押品才能铸造TPT代币,确保系统安全
- 健康因子监控:实时计算和监控用户账户的健康状况,防止清算风险
- 双价格预言机:使用Chainlink TSLA/USD和ETH/USD价格预言机,确保价格准确性
- 价格数据验证:通过OracleLib库验证价格数据的新鲜度,防止使用过期价格
- 安全机制:包含暂停/恢复、紧急提取、清算保护等多种安全机制
- 模块化设计:将价格验证逻辑分离到独立库中,提高代码可维护性
- Solidity 0.8.20 - 智能合约开发语言
- Chainlink Price Feeds - 用于获取TSLA和ETH价格数据
- Foundry - 智能合约开发、测试和部署框架
- OpenZeppelin Contracts - 安全的智能合约库
TSLAToken/
├── src/
│ ├── TeslaPriceToken.sol # 主合约文件
│ └── library/
│ └── OracleLib.sol # 价格数据验证库
├── script/
│ └── Deploy.s.sol # 部署脚本
├── test/
│ ├── TeslaPriceToken.t.sol # 主合约测试
│ └── mocks/
│ └── MockV3Aggregator.sol # 模拟价格馈送合约
├── .env.example # 环境变量示例
├── foundry.toml # Foundry配置文件
├── Makefile # 构建和部署命令
├── DEPLOYMENT_GUIDE.md # 部署指南
├── USAGE_EXAMPLES.md # 使用示例
├── SECURITY_CHECKLIST.md # 安全检查清单
├── PROJECT_SUMMARY.md # 项目总结
└── README.md # 项目说明
git clone <repository-url>
cd TSLAToken# 安装Foundry依赖
forge install
# 安装npm依赖(如果需要)
npm install复制.env.example文件为.env并填入您的配置:
cp .env.example .env编辑.env文件,填入您的配置:
SEPOLIA_RPC_URL: Sepolia测试网RPC URLPRIVATE_KEY: 部署者私钥ETHERSCAN_API_KEY: Etherscan API密钥TSLA_PRICE_FEED: TSLA/USD价格预言机地址ETH_PRICE_FEED: ETH/USD价格预言机地址
# 编译合约
forge build
# 运行测试
forge test# 部署到Sepolia测试网
make deploy-sepolia
# 或者
forge script script/Deploy.s.sol --rpc-url $SEPOLIA_RPC_URL --private-key $PRIVATE_KEY --broadcast --verifyawait contract.depositAndMnt(amountInETH);await contract.redeemAndBurn(tokenAmount);await contract.addCollateral({ value: amountInETH });await contract.withdrawCollateral(amountInETH);const healthFactor = await contract.getHealthFactor(userAddress);const balance = await contract.balanceOf(address);- 最大供应量: 1,000,000 TPT代币
- 抵押率: 200%(需要价值2倍于代币的ETH抵押品)
- 清算阈值: 50%(抵押品价值低于代币价值的50%时将被清算)
- 价格过期时间: 3小时(超过3小时未更新的价格将被视为过期)
- 暂停/恢复机制: 合约所有者可以暂停/恢复合约操作
- 紧急提取: 在紧急情况下,所有者可以提取合约中的ETH
- 价格数据验证: 确保使用的价格数据是最新且有效的
- 健康因子检查: 防止用户抵押不足导致的风险
- 重入攻击防护: 使用OpenZeppelin的ReentrancyGuard防护重入攻击
本项目采用MIT许可证 - 详见 LICENSE 文件
欢迎贡献代码!请查看 CONTRIBUTING.md 了解详情。
如果您在使用过程中遇到问题,可以:
- 查看项目的文档
- 在GitHub上创建Issue
- 加入我们的社区讨论
注意: 本项目仅用于教育和演示目的,在生产环境中使用前请进行充分的安全审计。