【主要内容】
今天继续使用erc20标准规范按一篇网络博文的教程进行亲自敲打代码来写一个可以发行token的智能合约。学习共用时35分钟。
(此外整理作笔记花费了约54分钟)
详细学习过程见文末学习过程屏幕录像。
【学习笔记】
一、今天没有理解问题放到开头,提醒自己再去阅读理解下
智能合约中的aprove授权操作现在感觉非常难以理解,在学习的当前代码中,几乎无法理解这个发出授权的节点与接受授权的节点究竟是怎么回事,这个方面的具体细节理解还得多去读相关论文或资料。
二、今天继续逐字母敲打书写作为基础的那个智能合约的内容。
到今天为止【StandardToken.sol】文件已完成的代码如下:
```
pragma solidity ^0.4.4;
import "Token.sol";
contract StandardToken is Token{
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalSupply;
function transfer(address _to,uint256 _value) returns (bool success){
//此函数仅用于调用合约的节点(或者理解为创建这个合约的节点?)地址进行代币的发送到_to形参指定的节点地址。
//可以发送的代币的数量_value这个形参的数值类型是 uint256,可以理解为只能是大于等于零的数,且最大值为2^256-1(为什么要减一呢?因为从0开始)
//实际上这个形参的数值类型就限定了最大可以发送的代币的数量,最多只允许2^256-1。
//下一行代码要进行发送方现有代币余额的检查,以确认可以发送这么多的代币。
if balances[msg.sender]>=_value && _value>0{
//--如果发送方节点有这么多_value,那么执行代币在两个节点间的转移
balances[msg.sender]-=_value;
balances[_to]+=_value;
//---触发事件----
Transfer(msg.sender,_to,_value);
//--返回处理结果----
return true;
}else{
return false;
}
}
function transferFrom(address _from,address _to,uint256 _value) returns (bool success){
//此函数形参_from指定的节点地址进行代币的发送到_to形参指定的节点地址。(是否是在进行授权节点(合约的节点?)的代币支配转移?)
//可以发送的代币的数量_value这个形参的数值类型是 uint256,可以理解为只能是大于等于零的数,且最大值为2^256-1(为什么要减一呢?因为从0开始)
//实际上这个形参的数值类型就限定了最大可以发送的代币的数量,最多只允许2^256-1。
//下一行代码要进行发送方现有代币余额的检查,以确认可以发送这么多的代币。
//同时检查,发送方授权给授权接受方的可支配代币金额是否大于等于_value
if balances[_from]>=_value && allowed[_from][msg.sender]>=_value && _value>0{
//allowed[_from][msg.sender]中:
//_from指的是代币真正的发送方(此节点代币才真正减少),而[msg.sender]指的是_from授权的接受节点(此节点可以动用_from节点限定数量的_value)
//为什么这儿的授权接受方是[msg.sender]没有完全理解 。
//--如果发送方节点有这么多_value,那么执行代币在两个节点间的转移
balances[_from]-=_value; //真正发送代币的节点的代币数量减少
balances[_to]+=_value; //接收代币的节点代币数量增加
allowed[_from][msg.sender]-=_value; //授权的可动用的代币数量也减少
//---触发事件----
Transfer(_from,_to,_value);
//--返回处理结果----
return true;
}else{
return false;
}
}
function balanceOf(address _owner) constant returns (uint256 balance){
//此合约函数用于外部调用合约时,返回指定节点_owner目前的代币余额。
return balance[_owner]
}
}
```
【今天给大家分享的这些年我的自学感受】
自学能力是人持续的成长的发动机
这一点得分解成两个方面来谈。
一方面人是需要持续成长的。肯定的多数朋友要说——我早就长大了,甚至都长老了,还要成长,长成巨人不成?
此处的成长指的当然不是身体外形的成长,而指的人类独有的心智的成长。
如果把一个人比作计算机,那么心智就是运行在这台电脑里的操作系统以及其中许许多多的应用程序,用过的电脑的朋友都应当知道,不管是操作系统还是应用程序总是需要不断升级的——这就是心智的逐渐变化成长的过程。
另一方面对于人来说,只有自学才能实现不断的成长,把自学的能力看作人心智成长的发动机是再恰当不过的比喻了,试想,一部车子,如果没有发动机,那车子肯定就再也不能动了——对于人,那就是一介废人了。
更多的自学感悟,我将与大家在【就是要学】社群交流互动。
我建立【就是要学】社群的初衷就是将渴望与我一样追求自主独立的生活的朋友 ,特别是还有大把青春可以去试错的年轻朋友聚集到一起,在这个人以类聚的时代,我们在一起, 互相交流,坚持每天成长,欢迎来到【就是要学】社群QQ群:646854445
或访问:www.941xue.com
【关于坚持自学的例行说明】
最后例行说明下,我为什么要坚持自学。
“如果我不曾见过太阳,我本可以忍受黑暗,然而阳光已使我的荒凉,成为更新的荒凉。”
——艾米莉·狄金森
如果要问我对自己的前半生如何看待时,我想昨天和今天的答案都将完全不同。
昨天的我,生活在荒凉的满意之中,自觉怡然自得,拿着包身包月的工资,听着仁慈的命令,过着几乎一成不变的生活;时而与周遭的人儿和睦互往,时而唇舌相抵斤斤计较,演出着生活的鸡毛蒜皮,工作的吹拉弹唱;忘我,忘我,才能融入这平和无奇的乐章中,迈着细碎的步伐,原地踏步。那时的我觉得这就是悠然自得的听天由命的平凡人生,也就是我的宿命了。
可是某一天,我见到了不一样的太阳以及太阳下不一样的人生光景——那并不荒凉。
今天的我,生活在荒凉的痛苦之中,自觉渴望改变,迈着不知所措的步伐,看着流逝的年华,睁着悔恨错失一切的双眼… …
我知道我将再无法回到过去的我,只有改变才是唯一正确的方向。
一、为什么一把年纪还在学习
放弃很多去聚餐,去HI歌,去游玩,去看电影,去追剧……的时间,然后进行着这个年纪似乎已不应当再进行的学习,引来身边人们无尽的不解与鄙夷甚至可怜……
但我不想放弃终身学习的誓言。
因为——
我对我今天的生活现状并不认同!
罗伯特清崎告诉过我们,反省自己当下的生活是不是自己想要的,这难道不是最好的动力与答案?
走过了大半生,然后才发现曾经、当下所正在进行的人生并不是自己想要的,那是一种怎样的体验?
只有心中真切的感受才能回答这个问题,而任凭再丰富的语言也是无法描绘出来的。
经历半生的跋涉,却发现走得并不正确,有多少人有勇气承认自己过去的一切都是错误的呢?
而我愿意告诉过去的我:“你错了!”
那么已经历半生错误,年岁之大又压于头顶,还有希望从这架的梯子的半端重新爬下,再蹒跚着爬上另一架梯子吗?
我宁愿相信还有希望!
这便是我为什么要继续坚持终身学习下去的全部理由。
二、这个年纪还在学这些技术有意义吗
纯的技术对这把年纪其实已没有意义。
但兴趣可以超越意义。
但技术可以引来思想的变革,这才是意义。
投资自己的头脑 ,改革自己的思想,这是最保值,更长远的投资,过去我从来没有投资过,错过太多,那就从投资自己头脑开始吧。
罗伯特清崎告诉我们,真正的富有是时间的富有;真正的自由是可以决定自己愿意做什么的自由。
因为我愿意做我兴趣所在的事,所以我希望我有自由选择的那一天,虽然今天离那一天可能还是那么遥远,但我愿意相信,每天多赶几步,离希望就更近一步。
再者,虽然我可能再已无法完全完整的掌握这些技术了,但技术本身却可以启迪心的觉醒,激发灵感,那么只要多了解一点,我相信我将离那个正离我而去跑得越来越快的未来更近一点,不至于被未知的那个未来抛弃得太远。
于是我怎能放弃追逐求索的步伐?
我要坚信:感觉太迟的时候,也许还不算太迟。
感谢一直以来关注我,鼓励我的你!
若不嫌弃这一个到了高龄才长大的可笑可叹的我,请不吝赐教。
我的q号是:578652607,敬候你的指点。
【同步语音笔记】
https://www.ximalaya.com/keji/19103006/268557115
【学习过程屏幕录屏】
链接:https://pan.baidu.com/s/17ae9qFlEZy1MATN8_rNh0w
提取码:1c3j