摘要:智能合約之間的調(diào)用在區(qū)塊鏈上,有些功能往往無法通過一個(gè)智能合約完成,此時(shí)便會(huì)用到智能合約之間的調(diào)用。本篇文章帶大家通過具體示例來了解一下智能合約之間的調(diào)用。在智能合約的編譯過程中,有兩種情況調(diào)用者和被調(diào)用者在一個(gè)文件中和分別在不同的文件中。
智能合約之間的調(diào)用
在區(qū)塊鏈上,有些功能往往無法通過一個(gè)智能合約完成,此時(shí)便會(huì)用到智能合約之間的調(diào)用。本篇文章帶大家通過具體示例來了解一下智能合約之間的調(diào)用。
在智能合約的編譯過程中,有兩種情況:調(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ā)布完成,可通過第Demo2的toSetData方法進(jìn)行Demo1方法的調(diào)用。傳遞的第一個(gè)參數(shù)為Demo1的智能合約地址,第二個(gè)參數(shù)為要設(shè)置的值。
不同sol文件的智能合約調(diào)用在大多數(shù)情況下,兩個(gè)智能合約不存在于同一個(gè)sol文件中,那么就需要使用另外一種形式來進(jìn)行調(diào)用。還拿調(diào)用Demo1方法來舉例,用另外一個(gè)sol文件中的Demo3來調(diào)用Demo1。
首先需要聲明接口,然后在Demo3中直接調(diào)用對應(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75679.html
摘要:所以,在設(shè)計(jì)時(shí),要了解區(qū)塊鏈相關(guān)知識(shí),這些是出于安全考慮。通過一個(gè)智能合約能夠管理所有模塊,這個(gè)是不變的,相當(dāng)于一個(gè)不變的點(diǎn),用來鏈接各個(gè)模塊,保證穩(wěn)定,相當(dāng)于在區(qū)塊鏈上一直會(huì)有一個(gè)穩(wěn)定的地址長期進(jìn)行服務(wù)。 智能合約的設(shè)計(jì)和傳統(tǒng)的應(yīng)用設(shè)計(jì)有點(diǎn)不同。傳統(tǒng)應(yīng)用一般為了快速迭代是在產(chǎn)品之后考慮安全,但是 DApp 則需要在產(chǎn)品出來之前就考慮安全問題,它將會(huì)關(guān)系到賬戶資產(chǎn)、用戶數(shù)據(jù)等問題,而且...
摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營了一個(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í)行操作的最小單位。 以太坊將比特幣針對數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個(gè)智能合約的平臺(tái),該平臺(tái)支持...
摘要:狀態(tài)變量合約內(nèi)聲明的公有變量還有一個(gè)存儲(chǔ)位置是,用來存儲(chǔ)函數(shù)參數(shù),是只讀的,不會(huì)永久存儲(chǔ)的一個(gè)數(shù)據(jù)位置。稱這個(gè)為狀態(tài)改變,這也是合約級(jí)變量稱為狀態(tài)變量的原因。 本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接:智能合約語言 Solidity 教程系列4 - 數(shù)據(jù)存儲(chǔ)位置分析原文已更新,請讀者前往原文閱讀 Solidity教程系列第4篇 - Solidity數(shù)據(jù)位置分析。 寫在前面 Solidity...
摘要:所以最簡單的智能合約只需實(shí)現(xiàn)文件。我們看到文件中已經(jīng)聲明了這個(gè),并說明了這個(gè)的李嘉圖合約,大概意思是本合約的輸入為一串字符,本合約意圖是打印輸出,沒有其他效果。 Hello World! 稍微了解 EOS 系統(tǒng),你就會(huì)知道 EOS 的智能合約基于 WebAssembly(WASM) 技術(shù),這種技術(shù)在性能和跨平臺(tái)兼容性之間取得了很好的平衡,通過將原始代碼編譯成字節(jié)碼,使得代碼可以在多種平...
摘要:接上篇合約升級(jí)模式介紹筆者改寫了一個(gè)可用于實(shí)踐生產(chǎn)的升級(jí)框架,需要自取。在介紹合約升級(jí)模式中提到了一個(gè)可以解決這個(gè)問題的方法。深度理解注意為中的低階方法下文中出現(xiàn)的方法,是我在智能合約中寫的一個(gè)方法名稱,不要混淆。 接上篇:合約升級(jí)模式介紹筆者改寫了一個(gè)可用于實(shí)踐生產(chǎn)的升級(jí)框架,需要自取。https://github.com/hammewang/... 同時(shí)歡迎討論,微信xiuxiu1...
閱讀 3094·2023-04-25 20:43
閱讀 1727·2021-09-30 09:54
閱讀 1600·2021-09-24 09:47
閱讀 2888·2021-09-06 15:02
閱讀 3522·2021-02-22 17:09
閱讀 1245·2019-08-30 15:53
閱讀 1448·2019-08-29 17:04
閱讀 1969·2019-08-28 18:22