摘要:智能合約之間的調(diào)用在區(qū)塊鏈上,有些功能往往無(wú)法通過(guò)一個(gè)智能合約完成,此時(shí)便會(huì)用到智能合約之間的調(diào)用。本篇文章帶大家通過(guò)具體示例來(lái)了解一下智能合約之間的調(diào)用。在智能合約的編譯過(guò)程中,有兩種情況調(diào)用者和被調(diào)用者在一個(gè)文件中和分別在不同的文件中。
智能合約之間的調(diào)用
在區(qū)塊鏈上,有些功能往往無(wú)法通過(guò)一個(gè)智能合約完成,此時(shí)便會(huì)用到智能合約之間的調(diào)用。本篇文章帶大家通過(guò)具體示例來(lái)了解一下智能合約之間的調(diào)用。
在智能合約的編譯過(guò)程中,有兩種情況:調(diào)用者和被調(diào)用者在一個(gè)sol文件中和分別在不同的文件中。
同sol文件的智能合約調(diào)用在下面的智能合約中,Demo1和Demo在同一個(gè)文件中,可進(jìn)行同時(shí)編譯,然后逐個(gè)發(fā)布。
pragma solidity ^0.5.10; contract Demo1{ uint public data; function setData(uint _data) public { data = _data; } } contract Demo2{ function toSetData(Demo1 demo1,uint _data) public { demo1.setData(_data); } }
當(dāng)發(fā)布完成,可通過(guò)第Demo2的toSetData方法進(jìn)行Demo1方法的調(diào)用。傳遞的第一個(gè)參數(shù)為Demo1的智能合約地址,第二個(gè)參數(shù)為要設(shè)置的值。
不同sol文件的智能合約調(diào)用在大多數(shù)情況下,兩個(gè)智能合約不存在于同一個(gè)sol文件中,那么就需要使用另外一種形式來(lái)進(jìn)行調(diào)用。還拿調(diào)用Demo1方法來(lái)舉例,用另外一個(gè)sol文件中的Demo3來(lái)調(diào)用Demo1。
首先需要聲明接口,然后在Demo3中直接調(diào)用對(duì)應(yīng)的接口。
pragma solidity ^0.5.10; contract Demo1{ function setData(uint _data) public; } contract Demo3{ function toSetData(Demo1 demo1,uint _data) public { demo1.setData(_data); } }
調(diào)用接口是傳遞的參數(shù)依舊同第一種情況。
原文鏈接:https://www.choupangxia.com/2...
公眾號(hào)文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75679.html
摘要:狀態(tài)變量合約內(nèi)聲明的公有變量還有一個(gè)存儲(chǔ)位置是,用來(lái)存儲(chǔ)函數(shù)參數(shù),是只讀的,不會(huì)永久存儲(chǔ)的一個(gè)數(shù)據(jù)位置。稱這個(gè)為狀態(tài)改變,這也是合約級(jí)變量稱為狀態(tài)變量的原因。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語(yǔ)言 Solidity 教程系列4 - 數(shù)據(jù)存儲(chǔ)位置分析原文已更新,請(qǐng)讀者前往原文閱讀 Solidity教程系列第4篇 - Solidity數(shù)據(jù)位置分析。 寫在前面 Solidity...
摘要:目前通常指代基于以太坊或者上的智能合約開發(fā)的相關(guān)應(yīng)用。引入以太坊通過(guò)的交互流程大致如下總結(jié)隨著區(qū)塊鏈近些年的大紅大紫,被推上了風(fēng)口浪尖,本文從技術(shù)的角度大致介紹了一下所涉及的技術(shù)要點(diǎn)。 當(dāng)你開始探索區(qū)塊鏈開發(fā),需要了解到這些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...
摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接智能合約語(yǔ)言教程系列完全理解函數(shù)修改器原文已更新,請(qǐng)讀者前往原文閱讀這是教程系列文章第篇,帶大家完全理解的函數(shù)修改器。在此上下文中,所有的函數(shù)中引入的符號(hào),在修改器中均可見。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語(yǔ)言 Solidity 教程系列10 - 完全理解函數(shù)修改器原文已更新,請(qǐng)讀者前往原文閱讀 這是Solidity教程系列文章第10...
摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營(yíng)了一個(gè)公開的區(qū)塊鏈平臺(tái)以太坊網(wǎng)絡(luò)。主要特點(diǎn)以太坊區(qū)塊鏈底層也是一個(gè)類似比特幣網(wǎng)絡(luò)的網(wǎng)絡(luò)平臺(tái),智能合約運(yùn)行在網(wǎng)絡(luò)中的以太坊虛擬機(jī)里。以太坊采用交易作為執(zhí)行操作的最小單位。 以太坊將比特幣針對(duì)數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場(chǎng)景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡(jiǎn)介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個(gè)智能合約的平臺(tái),該平臺(tái)支持...
摘要:所以,在設(shè)計(jì)時(shí),要了解區(qū)塊鏈相關(guān)知識(shí),這些是出于安全考慮。通過(guò)一個(gè)智能合約能夠管理所有模塊,這個(gè)是不變的,相當(dāng)于一個(gè)不變的點(diǎn),用來(lái)鏈接各個(gè)模塊,保證穩(wěn)定,相當(dāng)于在區(qū)塊鏈上一直會(huì)有一個(gè)穩(wěn)定的地址長(zhǎng)期進(jìn)行服務(wù)。 智能合約的設(shè)計(jì)和傳統(tǒng)的應(yīng)用設(shè)計(jì)有點(diǎn)不同。傳統(tǒng)應(yīng)用一般為了快速迭代是在產(chǎn)品之后考慮安全,但是 DApp 則需要在產(chǎn)品出來(lái)之前就考慮安全問(wèn)題,它將會(huì)關(guān)系到賬戶資產(chǎn)、用戶數(shù)據(jù)等問(wèn)題,而且...
閱讀 3214·2023-04-25 20:43
閱讀 1797·2021-09-30 09:54
閱讀 1656·2021-09-24 09:47
閱讀 2970·2021-09-06 15:02
閱讀 3573·2021-02-22 17:09
閱讀 1325·2019-08-30 15:53
閱讀 1514·2019-08-29 17:04
閱讀 2031·2019-08-28 18:22