0x0 题记

  • 需求 最近老是有小伙伴在说自己手贱,没能存住钱,错过了大的升期。其实这事吧很难讲(心理学里边有一堆解说,后面我计划解说一下)。让小伙伴以后没借口呗。整个小工具存钱罐,锁死手贱党。只要时刻不到无法取钱。
  • web3有用化 常常听人说,web3没什么有用。就几行代码工作,来整一个有用存钱罐把钱存智能合约里边,存一个定时。

0x1 智能合约

  • chatGPT 有了AI人就更懒了。万事前问ChatGPT,几行代码都不想写了。输出如下:

结合chatGPT几行代码实现去中心化web3存钱罐功能打造自己专属Dapp

  • 距离 AI生成代码与实际仍是有一点距离。能用是能用!居然把合约整成了一次性了,还玩了一个布置即确定不好玩。需要稍微修正一下。大概修正如下,单人迁就用用。
// SPDX-License-Identifier: MIT
![01.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7cf2126e3d244216bb1b222024180aa6~tplv-k3u1fbpfcp-watermark.image?)
pragma solidity ^0.8.0;
contract SavingsPot {
    address payable public owner; // 合约所有者地址
    uint256 public lockTime; // 确定时刻
   // uint256 public depositAmount; // 存款金额
    constructor() {
         owner = 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 == owner, "Only owner can deposit"); // 只能拥有者存入
        lockTime = block.timestamp + _lockTime; //修正确定时刻增加秒
    }
    // 提款函数,只能由合约所有者调用
    function withdraw() public {
        require(msg.sender == owner, "Only owner can withdraw"); // 只要合约所有者可以提款
        require(block.timestamp >= lockTime, "Cannot withdraw until lock time"); // 确定时刻未到,不能提款
        payable(msg.sender).transfer(address(this).balance); // 将存款金额转账给合约所有者
    }
}
  • 解说 简单解说一下,block.timestamp为获取当时区块的时刻,通过输入时刻_lockTime增加多少秒来修正终究确定时刻lockTime。只要当时时刻大于lockTime时刻,才能解锁取钱。时刻不到取不了钱防止手贱。
  • remix 在remix里边测一下,基本功能实现

结合chatGPT几行代码实现去中心化web3存钱罐功能打造自己专属Dapp

0x2 前端展现

  • chatGPT画的 看着还行要害无法跑啊
    结合chatGPT几行代码实现去中心化web3存钱罐功能打造自己专属Dapp
  • 改改 套用曾经模板改改,能跑就行
    结合chatGPT几行代码实现去中心化web3存钱罐功能打造自己专属Dapp

0x3 跋文

  • 示例 这东西仅仅测验示例,当然单人用没什么问题。假如再改改其实也可以多人。安全性其实也有。唯一不安全的便是或许可能增加锁死自己。
  • 反思 其实这东西弄出来了估量小伙伴也不会用。其实真正手贱仍是人心,即便有方法进行物理锁死(因为不止智能合约一种方法,还有许多处理方案),他们断然不会选择。
  • 挖苦 去中心化web3的dapp在开发的时候,许多时候都是为了去处理信赖或许信用的问题。但是呢现在情况,使用钱包授权,安全性(惧怕被钓鱼),用户认知不足,惧怕错误操作损失等等原因,反而用户不愿意用dapp,不信赖web3的dapp。如何让用户信赖和使用web3 dapp又是一个难题,即便简单代码开源也无效。