11. 智能合约设计③
- 每周信息同步:开课之前会把每周的新信息,进行同步
- Solidity 开发语言学习
hello、数据类型、状态变量、全局变量、函数和函数修饰符、数组、mapping、自定义结构、事物控制与异常、自定义修饰符、storage与memorypure和if等、interface、payable、事件
- 接触规范:下午主要是规范
- 查找合约地址:点击到每个币种详情页,会看到对应的合约地址(
Contracts) - 主网查看开源代码:复制合约地址=搜索地址-点击合约地址(
Contract),能看到详细的开源代码 - 重点内容:
Agent开发已经成为前端的标配AI全流程开发已经成为现实Solidity语言的学习
预测大师骗人手段
提前预测,蒙蔽双眼
- 提前一天或者几天的时间,把两种预测发出去,但是只有自己能看
- 等到日期到了根据实际结果,公开正确预测,删除错误预测
貔貅函(貔貅合约:只进不出)
代码展示
貔貅函代码详情
js
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract payable_demo {
uint256 public balance;
address payable public owner;
// 部署合约这个人 类型转换
constructor() {
owner = payable(msg.sender);
}
function deposit() public payable {
// 存钱 用户实际传递过来的金额
balance += msg.value;
}
function withdraw(uint256 amount, address _to) public {
// 取钱 只能合约的拥有者取钱 你便是管理员
require(msg.sender == owner, "only owner can withdraw");
// 余额不足
require(amount <= balance, "insufficient balance");
// 给用户转账
// owner.transfer(amount);
payable(_to).transfer(amount);
balance -= amount;
}
}这里面的问题!
站在“写这个合约的作者”的角度,它逻辑上算是自洽的;但站在“普通用户”角度,这就是典型的坑。
最核心的问题:只有owner能取钱
普通用户看到 UI 上有“存款 deposit/取款 withdraw”两个按钮,很容易以为:我存进去的钱,之后可以自己提出来。
- 但实际逻辑是:
deposit():任何人都可以往里充钱;withdraw():只有owner(部署合约的人)可以提钱,而且可以把钱提到任意地址_to
- 也就是说:
- 别人只能充钱,不能自己取;
- 钱最终只能被合约拥有者拿走。
如果有人拿这个合约做“投资/理财/质押”之类的项目,又不明说 withdraw 是 onlyOwner,那么绝大多数人会以为随时可以赎回,实际上钱已经“只进不出”——对于普通用户来说就等于被锁死在老板手里。
AI开发流程
- AI的实战开发已经可以完全替代整个项目组了,以前是
1-2个月的周期,现在1-2周
佳哥笔记
js
1.面试
1万U的-2万U
2.深圳一灯教育科技公司
北京一灯教育科技公司
工作 接了web3项目 兼职 流水
3.AI更新
注册账号 -> 紫卡 -> Agent开发 -> RAG精进 -> 其他框架 AI意图分析 -> N8N ->
chatgpt
claude token
google
grok
4.web3抵触 远程工作 纯AI公司收工资 U结算
简历 Agent开发、工程提效
figma make(nano) -> chatgpt -> codex -> subagent -> aws mcp -> Atlas
设计图 -> PRD -> MCP还原代码 -> 后端远程主机的 codex claude -> 前端远程主机的 codex claude写后端
-> subagent 测试 -> AWS mcp上线 -> Atlas -> AIGC(SD=录播课)
deepseek 千问 国家电网 监控