地址、交易篇(完结)

地址、交易篇

注:以下代码来源于b站上面的基于以太坊的智能合约开发教程【Solidity】链接:https://www.bilibili.com/video/BV1St411a7Pk?p=34

使用钱包转移资金

pragma solidity >=0.4.15 <0.6.0;  contract payableTest {     //转账     function pay() public payable     {             }     //获取合约地址余额     function getBalance() public returns(uint)     {         return this.balance;     }          //获取合约地址     function getThis() view returns(address)     {         return this;     }     //获取指定地址的余额     function getrandomBalance(address account) view returns(uint)     {         return account.balance;     }      } 

编译完成后,部署合约,然后再交易金额上面写上10,也就是转10个以太币到合约账户中,点击2所示的pay按钮,可以看到控制台显示转账成功,然后点3所示的getBalance获取当前合约地址的余额,5所示的getThis是指当前合约的地址,4所示的getRandomBalance是指根据所输入的地址显示他的余额。
地址、交易篇(完结)

send和transfer区别

pragma solidity >=0.4.15 <0.6.0;  contract transfer {     //向指定地址转账地址转账     function transfer() payable{         address account=0xca35b7d915458ef540ade6068dfe2f44e8fa733c;         account.transfer(msg.value);     }     //用msg.value向合约转账,但是要加上回滚函数     function transfer1() payable{                 this.transfer(msg.value);     }     function () payable     {              }     //send转账,这个返回值是bool类型,在控制台查看,transfer要比send安全      function sendMoney() payable returns(bool){         address account=0xca35b7d915458ef540ade6068dfe2f44e8fa733c;         return account.send(msg.value);     }     //获取转账人的地址     function getGloble1() view returns(address)     {         return msg.sender;     }     //获取块号     function getGloble2() view returns(uint)     {         return block.number;     }     //块的难度     function getGloble3() view returns(uint)     {         return block.difficulty;     } } 
地址、交易篇(完结)
地址、交易篇(完结)

映射

pragma solidity >=0.4.15 <0.6.0;  contract mappingTest {     //这是这地址-》id的映射,然后又将id-》name上     mapping(address=>uint) idmapping;     mapping(uint=>string) namemapping;     uint sum=0;     //注册账户     function register(string name)     {         address account=msg.sender;         sum=sum+1;         idmapping[account]=sum;         namemapping[sum]=name;     }     //获取id需要的地址是账户地址不是合约地址     function getIDAddress(address are) view returns(uint)     {         return idmapping[are];     }     //获取名字需要的地址是账户地址不是合约地址     function getNameById(uint id) view returns(string)     {         return namemapping[id];     }     //如果要注册第二个人,需要换一个账户地址     function getSum() view returns(uint)     {         return sum;     }      } 
地址、交易篇(完结)

版权声明:玥玥 发表于 2021-03-22 23:26:11。
转载请注明:地址、交易篇(完结) | 女黑客导航