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

基于以太坊的智能合约开发教程 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);   
    }
    
    
    
}

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值