solidity:合约之间的转账和函数调用

背景:
两个合约间完成转账,并且在一个合约中调用另一个合约的函数
通过call()分别进行有函数名的含参调用或者callback匿名函数的回调

源代码:

pragma solidity ^0.4.0;

contract AddrTest{
    event logdata(bytes data);
    
    //callback func
    function() payable{
        logdata(msg.data);
    }
    
    function getBalance() returns (uint){
        return this.balance;
    }
    
    uint score = 0;
    
    function setScore(uint s) public{
        score = s;
    }
    
    function getScore() returns (uint){
        return score;
    }
}

contract CallTest{
    //Use this function to send wei
    function deposit() payable{
    }
    
    //Send some wei to AddrTest
    event logSendEvent(address to, uint value);
    function transferEther(address towho) payable{
        towho.transfer(10);
        logSendEvent(towho, 10);
    }
    
    //Call AddrTest.callback
    //Check the logs to see the data
    function callNoFunc(address addr) returns (bool){
        return addr.call("boss-li", 1234);
    }
    
    //Point to setScore in AddrTest
    function callfunc(address addr) returns (bool){
        bytes4 methodId = bytes4(keccak256("setScore(uint256)"));
        return addr.call(methodId, 100);
    }
    
    function getBalance() returns (uint){
        return this.balance;
    }
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白速龙王的回眸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值