Skip to content

Commit 2358673

Browse files
committed
Add study notes for 2025-08-14
1 parent 02aedea commit 2358673

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

adureychloe.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,69 @@ timezone: UTC+8
1515
## Notes
1616

1717
<!-- Content_START -->
18+
# 2025-08-14
19+
20+
部署一个简单的链上留言板项目。
21+
22+
代码:
23+
24+
```solidity
25+
//SPDX-License-Identifier:MIT
26+
pragma solidity ^0.8.0;
27+
28+
contract MessageBoard{
29+
//保存所有人的留言记录
30+
//每个地址对应一个字符串数组,存储该用户的所有留言
31+
mapping(address => string[]) public messages;
32+
33+
//留言事件,便于检索器和区块链浏览器追踪
34+
//​​indexed参数​​:address标记为indexed,可以高效过滤特定地址的留言事件
35+
event NewMessage(address indexed sender, string message);
36+
37+
//构造函数,在部署时留言一条欢迎词
38+
constructor(){
39+
//在函数参数和局部变量中使用memory表示数据临时存储在内存中
40+
string memory initMsg = "Hello ETH Pandas";
41+
//将消息存入部署者(msg.sender)的留言数组中
42+
//msg是内置全局变量,msg.sender获取部署者地址
43+
messages[msg.sender].push(initMsg);
44+
//触发NewMessage事件记录这次初始化留言
45+
emit NewMessage(msg.sender, initMsg);
46+
47+
}
48+
49+
//发送一条留言
50+
function leaveMessage(string memory _msg) public{
51+
messages[msg.sender].push(_msg); //添加到发言记录
52+
emit NewMessage(msg.sender, _msg); //发出事件
53+
}
54+
55+
// 查询某人第 n 条留言(从 0 开始)
56+
//​​view修饰符​​:表示只读取不修改链上状态,不消耗gas
57+
function getMessage(address user, uint256 index) public view returns (string memory) {
58+
return messages[user][index];
59+
}
60+
61+
// 查询某人一共发了多少条
62+
function getMessageCount(address user) public view returns (uint256) {
63+
return messages[user].length;
64+
}
65+
}
66+
```
67+
68+
部署成功,命令终端查看部署日志和构造函数的执行信息:
69+
70+
![f45dcd7c978c53d457709f1ada0fb02c](https://adurey-picture.oss-cn-chengdu.aliyuncs.com/img/20250814230613147.PNG)
71+
72+
调用留言函数:
73+
74+
1. 在合约实例中找到 `leaveMessage` 函数输入框;
75+
2. 在输入框中填入留言内容(例如:`Hello World`);
76+
3. 点击 **leaveMessage** 按钮,发起交易调用;
77+
4. 右侧命令终端将显示一条新的交易记录,点击该记录可查看交易详情与链上存储的留言信息。
78+
79+
![bc928a779b51d6176e7f3a38f7237f50](https://adurey-picture.oss-cn-chengdu.aliyuncs.com/img/20250814230613161.PNG)
80+
1881
# 2025-08-13
1982

2083
# ERC-20标准

0 commit comments

Comments
 (0)