区块链智能合约调用变量

pragma solidity ^0.4.18;

contract Auction {
event newBid();
address owner;
address public leader;
address public winner;
string public item;
uint public leadingBid;

function Auction(string name, uint price) public {
    owner = msg.sender;
    item = name;
    leadingBid = price;
}
function placeBid() payable public{
    if (msg.value > leadingBid) {
        returnPrevBid();
        leader = msg.sender;
        leadingBid = msg.value;
      emit newBid();
    }
}
function returnPrevBid() private{
    if (leader != 0) {
        leader.transfer(leadingBid);
    }
}
function endAuction() public {
   if (msg.sender == owner) {
       winner = leader;
       owner.transfer(leadingBid);
   }

}
}

请问如何在一个新合约中调用上面这个拍卖合约的 leadingBid 这个变量的结果(在上面合约执行之后)?如果不能,能不能从区块中读取这个变量?很急很急,回答的好可以追加,谢谢。是调用变量,不是函数调用。就算调用getleadingBid函数也不能在另外一个合约返回变量leadingBid的值。

3个回答

uint public leadingBid;

这是一个public变量,在智能合约中public变量其实就是一个函数,可以按照调用外部函数的方法来调用这个变量。

首先得知道这个合约的地址

然后可以参与下面这段代码,如果对你有帮助,还请给点分哦。

simple2调用simple1中的函数的方法,要先知道simple1在区块链中的合约地址,然后你就可以像调用函数一样的调用public变量了。

pragma solidity ^0.4.21;

contract sample1 {
//payable是一个内置的函数修改器
//如果另一个合约在调用方法时发送以太,则需要这个修改器。
function sample1(int b) payable
{
a = b;
}

function assign(int c)
{
    a = c;
}

function makePayment(int d) payable
{
    a = d;
}

}

contract sample2 {
function hello() {

}

function sample2(address addressOfContract)  {
    //当创建sample1合约对象时,发送12 wei
    sample1 s = (new sample1).value(12)(23);
    s.makePayment(22);
    //发送以太也是的
    s.makePayment.value(45)(12);
    //指定要使用的gas数
    s.makePayment.gas(895)(12);
    //发送Ether,并指定gas
    s.makePayment.value(4).gas(900)(12);
    //使用this关键字进行的调用称为外部调用。在函数中,this关键字代表当前合约实例。
    //如果是hello(),则是内部调用
    this.hello();
    //指定一个已经部署好的合约
    sample1 s2 = sample1(addressOfContract);
    s2.makePayment(112);
}

}

请问,怎么在外部调用智能合约里面返回值是结构体的方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【区块链】智能合约字符串拼接
智能合约字符串拼接 string是数组,solidity不支持动态扩容,只能写个for循环一个个加,此处采用的做法是转成bytes function stringAdd(string a, string b) returns(string){ bytes memory _a = bytes(a); bytes memory _b = bytes(b); bytes ...
区块链实现智能合约
         区块链实现智能合约一、制定生成智能合约1、首先参与智能合约的用户必须先注册成为区块链的用户,区块链返回给用户一对公钥和私钥。公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙。2、两个以两个以上的用户根据需要,共同商定了一份承诺合约。合约中包含了双方的权利和义务;这些权利和义务以电子化的方式设计记录下来。参与者分别用各自私钥进行签名,以确保合约的有效性。3、签名后的智...
区块链视频-智能合约
区块链视频,密码学。 感兴趣的可以下载看看,
[CS] 区块链-智能合约
Gas 和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用。 以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多Gas。 Gas价格由运行合约的人在提交运行合约请求的时候规定,以确定他为这次交易付出的费用:Gas价格(用以太币计价) * Gas数量。 矿工...
区块链智能合约开发
1、eos环境搭建rnrn2、创建钱包和账户rnrn3、部署合约操作合约rnrn4、eos学习资料网站rnrn5、演示一个项目
区块链2.0 智能合约
结合案例,通俗易懂为大家剖析什么是比特币,什么是区块链。n比特币和区块链究竟有哪些价值,有着怎样的发展趋势,各国态度如何,给我们普通人带来了怎样的职业发展机遇。
区块链与智能合约
区块链与智能合约 联盟链场景中的智能合约应用 solidity 语言的常见问题
区块链智能合约
智能合约代码!
区块链 之 部署和调用以太坊智能合约
区块链 之 部署和调用以太坊智能合约 作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2018.03.04 01:18 转载请注明来自”祁峰”的CSDN博客 1 引言 智能合约就像我们业务的后台逻辑, 其运行在以太坊平台上. 以太坊就像操作系统, 其天然的提...
智能合约内部调用另一个智能合约
最近在看以太坊,顺便记录一下,这篇文章的目的是一个智能合约调用另一个智能合约的方法,写个demo记录一下 pragma solidity ^0.4.18; contract DataContract { mapping (address => uint256) public balanceOf; function setBlance(address _addres...
(五)区块链开发之智能合约
1、创建项目 npm install truffle mkdir truffletest cd truffletest 2、初始化项目 truffle init 3、编写智能合约 vim contracts/test.sol   1 pragma solidity ^0.4.25   2 contract Simple{   3 function add(uint a,uint b...
区块链-solidity智能合约架构探索
solidity语言教程:http://www.tryblockchain.org/ 官方文档翻译:https://solidity-cn.readthedocs.io/zh/develop/ == 说明:通过本文的工厂模式、合约注册表、合约调用外部合约几种模式,可以实现合约的解耦,合约调用,合约升级,可以开发类似java中的大型dapp。 == 工厂模式 工程模式:一个合约可以创建并管理多个合约...
区块链-web3与智能合约交互
web3js Web3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使用HTTP或者IPC与本地的或者远程的以太坊节点交互。实际上就是一个库的集合,主要包括下面几个库: web3-eth用来与以太坊区块链和智能合约交互 web3-shh用来控制whisper协...
区块链智能合约重点讲解
solidity special variables and functions correspond with EVM Execution Context. block.blockhash(uint blockNumber) returns (bytes32): hash of the given block - only works for 256 most recent, exclud...
区块链智能合约相关网站
一个故事告诉你比特币的原理及运作机制 以太坊完整工作原理和运行机制 通过僵尸游戏学习solidity 以太坊白皮书 solidity api 文档 web3中文文档 solidity进阶之路  ...
区块链系列4-智能合约
区块链与智能合约 实际上是区块链的程序,多方同意按照智能合约的代码执行,并对资产进行处置和分配。 复制代码 区块链的状态信息 账户状态 账号,用户信息,当前余额 交易:改变了状态 交易(顺序不能乱)->多账户状态 日志信息(交易系统)的总和就得到了状态信息 相当于excel表的操作 状态信息相当于当前整个系统快照,提供快速访问状态的能力 例如账户信息可以快速获得账户余额,而不需要重新计...
区块链、智能合约和以太坊
Vitalik-在台湾的演讲:区块链、智能合约和以太坊 讲述关于区块链、智能合约和以太坊的关系
区块链之搭建区块链平台及智能合约的编写
区块链技术:智能合约入门 https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/doc/manual/README.md ubuntu 16.04 安装git的方法 https://blog.csdn.net/qq282330332/article/details/51855252 区块链环境要求的硬件配置 https://github...
区块链-4:区块链的基本类型和智能合约
一、公有链 公有链是指全世界任何人都可读取、任何人都能发送交易且交易能获得有效确认,任何 人都能参与共识过程的区块链 有如下几个特点: 保护用户免受开发者的影响 在公有链中程序开发者无权干涉用户,区块链可以保护其用户。 访问门槛低 任何人都可以访问,只要有一台能够联网的计算机就能够满足基本的访问条件。 所有数据默认公开 公有链中的每个参与者可以看到整个分布式账本中的所有交易记录。 ...
『区块链智能合约』从零构建Ethereum智能合约到实战开发
为什么说现在学习区块链才是最好的时机?区块链技术不只是能开发数字货币,不只是能进行ICO。当我分享一些区块链文章的时候,偶尔总会有人艾特我说,春哥,现在国家都不让炒币了,还弄个毛的区块链啊。我一般会很平静的告诉他,数字货币只是区块链落地产品类型之一,严格来讲,交易所关闭,国家不让ICO是好事,大家会发现,现在国家禁止ICO后,币圈瞬间清净多了,我觉得是好事,因为现在暴露了很多打着ICO牌子裸泳的人,
智能合约部署及调用
想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!! 以太坊区块链技术2.0版本对于行业应用的开发最主要特性就是实现了智能合约,本质上讲智能合约是由事件驱动的、 具有状态的、运行在一个复制的、分享的账本之上的、且能够保管账本上资产的程序。 它是一个可以被信任,总是按照事先的规则执行的操作。但与此同时,智能合约部署完之后无法修改也会带来其他问题,这是另一个议题。下面直...
web3调用智能合约
本季视频课程是区块链系列:第一季:区块链与比特币;第二季:Solidity智能合约编程;第三季:Truffle框架与DAPP实战;第四季:HyperLedger Fabric 架构设计;第五季:区块链3.0 EOS项目实践。
智能合约调用篇--通过地址实例化智能合约调用
通过地址实例化智能合约调用 很多时候,我们都是在刚部署好智能合约的时候就对智能合约开始调用,此时的实例可以使用部署时候的实例,但很多时候,我们需要通过地址来调用智能合约,下面我们简单说说怎么使用合约的地址对合约进行调用。 首先知道合约的地址,将合约的地址赋值给address address = "合约的地址" 然后在本地取得合约代码的abi编码 其中Token.tol用solidity语言...
鹅厂之区块链(6)-智能合约调用(实例化)
智能合约的部署之后需要记住abi和合约地址,方便以后调用。定义合约的abivar abi = [ { "constant": false, "inputs": [ { "name": "s", "type": "uint256" } ], "name": "getSum", "outputs": [ { "name&qu
怎样理解区块链和智能合约的关系
自比特币诞生以来其底层技术区块链就一直得到广泛的关注。区块链的发展进程也一直被人们说为继蒸汽、电气、互联网后的人类的第四次生产革命。可是,现今的区块链技术发展仍处于初级阶段,就像城市化进程的道路等基础设施建设一样。在整体发展中起着关键作用。 当然,如果说区块链作为像公路一样的底层基础设施,那么搭载在区块链上的智能合约,就像是汽车,在将来的实际应用中,起到链接产业和基础设施的作用。就像当前社会的互...
区块链-web3与智能合约交互实例
其它相关知识在以下链接博客。 https://blog.csdn.net/qq_40452317/article/details/87988463 搭建测试链 我们选择的Ganache(在此之前使用的是testrpc,Ganache属于它的升级版),一个图形化测试软件(也有命令行版本),可以一键在本地搭建以太坊区块链测试环境...
在区块链上开发可更新的智能合约
由于区块链不可篡改的特性,智能合约一旦部署在区块链上,其执行的逻辑就无法再更改。长期来看,这个重要的特性反而限制了智能合约的弹性和发展。 接下来要介绍如何设计及部署合约才能让合约在需要时可以更新。但这里的更新意思不是修改已经部署的合约,而是部署新的合约、新的执行逻辑但同时能继续利用已经存在的资料。 首先要知道...
区块链学堂(2):最简单的智能合约
最简单的智能合约 最简单的一个智能合约 pragma solidity 0.4.9; contract DemoTypes { function f(uint a) returns (uint b) { uint result = a * 8; return result; } } 以上就是一个最简单的一个智能合约, 该智能合约实现了一个最基本的功能
区块链智能合约入门:Hello world(1)
Hello world 是最简单的程序之一,也是大部分程序员编写的第一个程序。区块链入门也从最基础的Hello world智能合约开始。 在正式部署执行Hello world智能合约之前,我们需要在电脑上安装MetaMask for CMT。这是一个安装在Chrome 浏览器的钱包工具,它的主要功能是管理 CyberMiles 帐号私钥,...
Python:不同区块链智能合约开发语言的选择
在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约的编程,并提供你进一步学习的资源链接。​我先介绍一下,我从事Python近9年,接下来我介绍一下我对于区块链的见解,如果对于Python有不懂得可以骚扰我:1547251666。。或者关注微信公众号:Python从程序猿到程序员比特币说起比特币,可能大家以为,不就是一种货币嘛!但是比特币的意义却不...
区块链知识 - 智能合约(普及篇)
本PPT讲解区块链智能合约的知识。 主要面向所有想了解区块链领域的人员。本PPT主要讲区块链领域的一个重要知识:智能合约。 …… 本PPT的重点内容:智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。智能合约使得区块链技术如虎添翼 相关的区块链知识请参考我们的一系列培训PPT
【区块链】使用Oraclize让智能合约调用外部数据
简介 Oraclize对于以太坊来说,是一份智能合约,继承它之后,自定义的合约可以通过api访问外部的数据。但需要给一定的费用。 Orcalize的数据源有: URL (合约外部的API接口) WolframAlpha (新一代的搜索引擎,能根据问题直接给出答案,如London的天气) IPFS (星际文件系统,一个分布式的存储系统) random (随机数引擎,能产生一个安全的随...
SAP云平台,区块链,超级账本和智能合约
前一篇文章《Hyperledger Fabric on SAP Cloud Platform》,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概要知识。Fabric是超级账本5个并行项目中的其中之一,因为发展较为成熟,SAP云平台对Fabric也提供了较好的支持。 学完了前一篇文章的理论知识后,今天我们来动手实践一下。 我们做的这个练习的范围很窄,就是学...
开源|基于区块链的智能合约快速上手
[云框架]基于区块链的智能合约 v1.0https://github.com/cloudframeworks-blockchain/user-guide-fabric-smart-contract本篇云框架通过Fabric Hyperledger
区块链学习日记———智能合约部署(二)
区块连学习日记———智能合约部署(二) 记录学习的过程以及所遇到的问题 truffle 3.0在上次说明truffle3.0以上的目录结构与2.0初始化后不同,缺少了app目录,而且自带的测试metacoin也无法在localhost:8080打开。 所以我把truffle 重新安装到2.1.0。初始化后,如愿以偿的得到app目录,但是在安装testrpc时出现了错误。 这里当时没有截图,但是
区块链安全-以太坊智能合约静态分析
Gao Feng of Qihoo 360 IceSword Lab Huang Shao Mang of Qihoo 360 IceSword Lab 概述 目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急。本文主要讲解了如何通过对智能合约的静态分析进而发现智能合约中的漏洞。由于...
区块链、以太坊与智能合约专题
包括DApp、比特币、以太坊、超级账本、IPFS、Dash、51%攻击等概念,geth安装、建立私有链,挖矿的基本操作,Solidity语言基础、Solidity语言的数据类型、Solidity语言表达式和控制结构、Solidity语言计量单位,异常处理、智能合约事件、智能合约继承,Web3.js等
区块链智能合约自动化安全审计介绍
区块链智能合约自动化安全审计介绍   近期,区块链技术比较火,并在不同的行业有所应用,如金融、游戏、版权、溯源等,其中出现过不少的安全问题,尤其是区块链的智能合约发展至今,暴露出的问题不少,智能合约的正确性和安全性面临着巨大的问题。市场上有安全公司,也推出各自的智能合约自动化安全审计平台。   我参与大有诚安科技公司的smartchainpeck安全团队的智能合约自动化安全审计系统(简称:SCA...
AntShares 区块链的智能合约(FunctionCode)外传数据
上篇说到了部署智能合约,可以部署可以调用,但是现阶段官方没有提供查询FunctionCode返回值的方法,不过不要紧,AntShares是个不错的开源区块链项目,要自己加入获取FunctionCode结果值的方法不难。改开源项目不难,但是改了之后还要兼容以后的升级,那就有点麻烦,所以我这篇文章是尽量最小程度修改AntShares项目,读者愿意大改也可以。 本文修改的重点在于AntShares.dl
区块链游戏FOMO3D智能合约核心分析
最近做一个区块链的项目,需要彻底分析FOMO3D的智能合约,顺便熟悉一下区块链的开发流程。 首先为了能跑FOMO3D的智能合约我尝试了truffle+galanche,对我来说不太理想,我就自己用python+solc做了一个类似的框架。 可以编译部署发布合约,自动生成前端的JS合约对象以及跑一个aiohttp的测试环境,该环境已经开源https://github.com/blueho...
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件