联合chatGPT几止代码完成去中间化web3打制本身专属_奇闻趣事网

联合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#

Copyright © 2016-2025 www.bnfh.cn 怪异网 版权所有 Power by