基于以太坊的智能合约solidity学习日记

  • 第1课 helloworld在remix之中的实现
  • 第2课 主要是一些布尔语句 。
  • 第24课-第31课 地址与交易篇
    • 1.以太坊地址的本质(p24)
    • 2.使用钱包转移资金(p25)

第1课 helloworld在remix之中的实现

pragma solidity ^0.4.16;//版本号最好设置成0.4.16之后的版本,之前的版本在一些问题上面会报错contract HelloWorld{    string Myname = "chelsea";        function getName() public returns(string)    {        return Myname;    }        function changeName(string _newName)public    {        Myname =  _newName;    }        function  pureTest(string _name) pure public returns(string){        return  _name;    }}

第2课 主要是一些布尔语句 。

pragma solidity ^0.4.16;contract booleanTest{        bool _a;    int num1=100;    int num2=100;    function getBool() returns(bool)    {        return _a;    }        function getBool1() returns(bool)    {        return !_a;    }        function panduan() returns(bool)    {        return num1==num2;    }        function panduan2() returns(bool)    {        return num1!=num2;    }    function yu() returns(bool){        return (num1==num2)&&true;    }}

第24课-第31课 地址与交易篇

1.以太坊地址的本质(p24)

pragma solidity ^0.4.16;contract addresstest{    address public account;//初始时默认地址为0,外部地址为0xca35b7d915458ef540ade6068dfe2f44e8fa733c(40个字节160位)等价于 unit160,账户地址代表拥有账户    }

点击部署,部署完成之后合约也会有一个地址,这个地址0xe90f4f8aeba3ade774cac94245792085a451bc8e部署在区块链的网络之上

然后对是否是160位进行了一个验证,这个部分报了一个错误还没具体去调整(作用是unit160和address进行强制转换)

pragma solidity ^0.4.16;contract addresstest{    address public account;//0xca35b7d915458ef540ade6068dfe2f44e8fa733c        function changeIt() returns(unit160){//报的错误是6:33.declarationError        return unit160(account);    }}

接着讲解地址怎样去进行判断,判断大小,判断依据是地址的数字大小

pragma solidity ^0.4.16;contract addresstest{    address public account=0xca35b7d915458ef540ade6068dfe2f44e8fa733c;        address account1=0xca35b7d915458ef540ade6068dfe2f44e8fa733c;    address account2=0x0de37dce8154ce54d895bd16942c86d568ddb5fc;        function changeIt() view returns(address){        return address(0xe90f4f8aeba3ade774cac94245792085a451bc8e);    }        function check1() view returns(bool){//加上view之后能够更加直观的在右方看到结果        return account1>account2;    }        function check2() view returns(bool){        return account1>=account2;    }        function check3() view returns(bool){        return account1

2.使用钱包转移资金(p25)

合约有地址,那么在这个地址上依旧可以存储以太币,如何调用地址时给合约用户发送以太币,调用函数的时候连带着将value也就是交易金额发送给合约的地址

调用函数的同时,发送value信息,发送以太币给账户的地址,点击pay按钮之后,会连带着将图中所示的10ether发送给智能合约的地址