您当前的位置: 首页 >  以太坊

柠檬味小发糕

暂无认证

  • 4浏览

    0关注

    84博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于以太坊的智能合约开发教程 Solidity 地址与交易

柠檬味小发糕 发布时间:2021-11-07 10:32:06 ,浏览量:4

基于以太坊的智能合约开发教程 Solidity 地址与交易
  • 地址与交易

地址与交易

包括使用钱包转移资金,合约与合约账户,transfer转移资金

学习代码如下:

pragma solidity ^0.4.19;

contract payabletest{
    
    
    // 可以进行转账操作,在部署成功之后,在页面当中的value填入10ether,
    //然后点击pay,就能发现外部账户当中的10ether成功转入合约账户,而且getBalance可以查看这个账户的金额
    
    function pay()public payable{
        
    }
    
    
    // this表示的是当前合约  查看当前合约的账户余额  
    function getBalance()public view returns(uint){
         return address(this).balance;
    }
    
    //  我们可以查看部署合约的账户的金额
    function gettargetBalance()public view  returns(uint){
        address account = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
        return account.balance;
    }
    
    // 通过transfer可以实现外部账户之间的转账
    // msg.value需要我们手动在value页面输入值
    function transfer1account()public  payable{
        address account = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2;
        account.transfer(msg.value);
    }
    
    // 第二种方法实现由部署合约的外部账户向合约账户实现转账操作
    function transfer2account()public payable{
        this.transfer(msg.value);
    }
    
    function()public payable{
        
    }
    // 当我们在图形化界面的value输入20时,而我们调用 transfer3account(),
    // 向第二个部署合约账户转账10 ether时,此时会有10ether从第一个账户转入第二个账户,而多余的10ether会转入我们的合约账户
    function transfer3account()public payable{
        address account = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2;
        account.transfer(10 ether);
    }
    
    // send与transfer的功能一样,都能进行转账操作,但send作为底层方法比较危险,send出现问题不会报错,而transfer出现问题会进行报错
    function sendMoney()public payable returns(bool){
        address account = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2;
         return account.send(10 ether);
    }


    address public owner;

    // 可以将合约中的金额提现至部署合约的账户当中
    function withdraw()public{
        owner = msg.sender;
        owner.transfer(this.balance);   
    }
    
    
    
}

在这里插入图片描述 在这里插入图片描述

关注
打赏
1640351950
查看更多评论
立即登录/注册

微信扫码登录

0.0685s