联合chatGPT几止代码完成去中间化web3打制本身专属
奇闻趣事 2023-05-04 12:30www.bnfh.cn奇闻趣事
结合chatGPT几行代码实现去中心化eb3打造自己专属存钱罐
0x0 题记
- 需求 最近老是有小伙伴在说自己手贱,没能存住钱,错过了大的升期。其实这事吧很难讲(心理学里面有一堆解释,后面我打算解释一下)。让小伙伴以后没借口呗。整个小工具存钱罐,锁死手贱党。只要时间不到无法取钱。
- eb3实用化 经常听人说,eb3没什么实用。就几行代码事情,来整一个实用存钱罐把钱存智能合约里面,存一个定期。
0x1 智能合约
- chatGPT 有了AI人就更懒了。万事先问ChatGPT,几行代码都不想写了。输出如下
- 差距 AI生成代码与现实还是有一点差距。能用是能用!居然把合约整成了一次性了,还玩了一个部署即锁定不好玩。需要稍微修改一下。大概修改如下,单人将就用用。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SavingsPot {
address payable public oner; // 合约所有者地址
uint256 public lockTime; // 锁定时间
// uint256 public depositAmount; // 存款金额
constructor() {
oner = payable(msg.sender); // 设置合约所有者为部署合约的地址
// lockTime = _lockTime; // 设置锁定时间
}
// 存款函数,接收以太币
function deposit(uint256 _lockTime) public payable {
require(msg.value > 0, "Deposit amount must be greater than 0"); // 存款金额必须大于0
require(msg.sender == oner, "Only oner can deposit"); // 只能拥有者存入
lockTime = block.timestamp + _lockTime; //修改锁定时间增加秒
}
// 提款函数,只能由合约所有者调用
function ithdra() public {
require(msg.sender == oner, "Only oner can ithdra"); // 只有合约所有者可以提款
require(block.timestamp >= lockTime, "Cannot ithdra until lock time"); // 锁定时间未到,不能提款
payable(msg.sender).transfer(address(this).balance); // 将存款金额转账给合约所有者
}
}
- 解释 简单解释一下,block.timestamp为获取当前区块的时间,通过输入时间_lockTime增加多少秒来修改最终锁定时间lockTime。只有当前时间大于lockTime时间,才能解锁取钱。时间不到取不了钱防止手贱。
- remix 在remix里面测一下,基本功能实现
0x2 前端展示
- chatGPT画的 看着还行关键没法跑啊
- 改改 套用以前模板改改,能跑就行
0x3 后记
- 示例 这东西只是测试示例,单人用没什么问题。如果再改改其实也可以多人。安全性其实也有。唯一不安全的就是也许可能增加锁死自己。
- 反思 其实这东西弄出来了估计小伙伴也不会用。其实真正手贱还是人心,即使有办法进行物理锁死(因为不止智能合约一种办法,还有很多解决方案),他们断然不会选择。
- 讽刺 去中心化eb3的dapp在开发的时候,很多时候都是为了去解决信任或者信用的问题。呢现在情况,应用钱包授权,安全性(害怕被钓鱼),用户认知不足,害怕错误操作损失等等原因,反而用户不愿意用dapp,不信任eb3的dapp。如何让用户信任和使用eb3 dapp又时一个难题,即使简单代码开源也无效。
#chat GPT# #eb3.0# #Ai# #去中心化# #dapp#
上一篇:锐评|防着迷需把“游戏租号”挡正在门外
下一篇:浅谈呆板人编程要领及力控编程特性