【合约外部调用】solidity语言是一个合约调用另外一个合约【同一个区块链网络】的方法【使用接口声明关系】

本文介绍了一个使用Solidity编写的智能合约案例,该合约通过接口调用了官方时间库来获取特定时间戳对应的日期信息。案例展示了如何在Rinkeby测试网上部署并调用主网智能合约的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

solidity官方时间库:https://github.com/pipermerriam/ethereum-datetime 

一个如何调用主网智能合约的方法案例!(此案例用Rinkeby测试网络部署)

这里接口的作用:只是用来声明需要调用的方法!

一个如何调用主网智能合约的方法案例!


pragma solidity >=0.5.0 <0.7.0;

interface DateTime {
    function getDay(uint timestamp) view external returns (uint16);
}

contract Collection {
    // 必须把当前合约部署的网络和0x92482Ba45A4D2186DafB486b322C6d0B88410FE7同一个网络
    DateTime time = DateTime(0x92482Ba45A4D2186DafB486b322C6d0B88410FE7);
    uint target = 100 ether;
    uint percentage = 1;
    uint16 private datatime;

    constructor() public {

    }

    function() external payable{
        // 这里实现代币自动兑换
    }
    
    function test_time() public view returns(uint16){
        return time.getDay(1554710705);
    }
}

参考别人的分析:https://blog.youkuaiyun.com/lj900911/article/details/83037691

interface Token {
    // 普通转账(禁止冻结账号交易))
    function transfer(address to, uint256 value) external returns (bool);
    function balanceOf(address owner) external view returns (uint256);
}

contract Collection {
    using UintEther for uint;
    address private admin_account;
    Token private token;
    uint private target;
    uint private percentage;
    
    event SendToken(address sender,uint value);

    constructor(address token_contract) public {
        admin_account = msg.sender;
        target = 10 ether;
        percentage = 1;
        token = Token(token_contract);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值