1.11 Interface 學校圖書館系統

更新於 發佈於 閱讀時間約 3 分鐘
interface

interface

  • interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。

學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。

  1. Library合約:這個合約負責管理圖書館的書籍,包括書籍的借閱、歸還和查詢功能。
  2. Student合約:這個合約代表了學生,學生可以借閱圖書並查詢圖書館的書籍。
  • 我們有兩個合約:LibraryContractStudentContract,分別實現了 LibraryStudent 這兩個interface。這樣,其他合約可以通過interface與這兩個合約進行互動,從而實現合約之間的互操作性。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// 圖書館合約的interface
interface Library {
function borrowBook(uint256 bookId) external returns (bool);
function returnBook(uint256 bookId) external returns (bool);
function getBookInfo(uint256 bookId) external view returns (string memory);
}

// 學生合約的interface
interface Student {
function borrowBook(uint256 bookId) external returns (bool);
function returnBook(uint256 bookId) external returns (bool);
function searchBook(uint256 bookId) external view returns (string memory);
}

// 實現Library接口的合約
contract LibraryContract is Library {
function borrowBook(uint256 bookId) external returns (bool) {
// 實現借閱書籍功能的代碼
}

function returnBook(uint256 bookId) external returns (bool) {
// 實現歸還書籍功能的代碼
}

function getBookInfo(uint256 bookId) external view returns (string memory) {
// 實現查詢書籍信息功能的代碼
}
}

// 實現Student接口的合約
contract StudentContract is Student {
function borrowBook(uint256 bookId) external returns (bool) {
// 實現學生借閱書籍功能的代碼
}

function returnBook(uint256 bookId) external returns (bool) {
// 實現學生歸還書籍功能的代碼
}

function searchBook(uint256 bookId) external view returns (string memory) {
// 實現學生查詢書籍信息功能的代碼
}
}
尋大神腳印, 亦步亦趨。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract TuitionPayment { address public school; uint public tuitionFee; mapping(
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SchoolGreetings { address public principal; event GreetingReceived(string g
一個智能合約,名為 UniformShop,它用於販售學校制服。 我們希望合約在收到以太幣後自動處理購買制服的操作。 UniformShop 合約定義了一個 fallback 函式,用於接收以太幣並購買制服。 當有人向合約地址轉帳時,如果轉帳金額足夠支付制服的價格,則 fallback 函式將
try-catch 語句用於處理外部函數調用或合約創建過程中可能發生的錯誤 以下是一個使用小朋友睡著作為例子的簡單程式碼 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Child { bool publ
ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract TuitionPayment { address public school; uint public tuitionFee; mapping(
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SchoolGreetings { address public principal; event GreetingReceived(string g
一個智能合約,名為 UniformShop,它用於販售學校制服。 我們希望合約在收到以太幣後自動處理購買制服的操作。 UniformShop 合約定義了一個 fallback 函式,用於接收以太幣並購買制服。 當有人向合約地址轉帳時,如果轉帳金額足夠支付制服的價格,則 fallback 函式將
try-catch 語句用於處理外部函數調用或合約創建過程中可能發生的錯誤 以下是一個使用小朋友睡著作為例子的簡單程式碼 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Child { bool publ
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
臨時請假一天,繼續崩潰。 知道作業趕不完,不敢睡到九點了,一大早七點就跟老公一起出門,那麼早常去的咖啡廳沒開,只能去星巴克報到。
▍盤勢分析 加權難得開高走高 終場上漲 79 點,收 17545.32,站回五日線 櫃買也是開高走高,一舉收復十日線 ▍籌碼分析 現貨: 外資買超 36 E => 多 期貨: 空單增加 754 口,來到 -25,309 口 => 空 小台散戶做多
Thumbnail
今天24/1/11臺灣時間19:57,即將迎來本年度第一次的新月,摩羯座的新月對於制定一年計劃是一個好的時機。在這個新月的日子裡,可以明確自己的目標,並且想像未來充滿信心的自己,更容易實現目標,可以幫助改變人生。
大盤熱錢資金目前流往通路 網通 航運 資安 
Thumbnail
很開心遇到《整理想法的技術》這本書,它的言簡意賅,讓我閱讀中有了不少啟發,對我而言,如果問我看這本書,最大的收獲是什麼?我要說的整理就是「捨」,書中很多道理相近,我自己「分類」後,我覺得就是「捨的力量」!而這個捨的力量,運用在日常生活中竟是出奇的有意思,今天就來分享一下我把這本書運用在生活中的例子,
Thumbnail
1/10 今日加權指數在平盤附近震盪,震幅縮小到剩下60點,收下影線的小黑K,下跌69點,收17465,成交量縮2579億。 1/10 今日otc在平盤附近震盪,震幅縮小留比較長下影線的十字線,下跌0.07點,收229.41,成交量577.91億。 今天三大法人,外資賣超31億、投信買超24
Thumbnail
客戶的岳父有台老corolla , 快30年老車只開11萬多公里 這種車的通病 : "時速表不準 , 轉速表抖動" 轉速表恢復正常 時速表路試正常
Thumbnail
烏俄戰爭更新,美國班機延誤,世界銀行下修預期,老鮑的獨立性
Thumbnail
2022.01.11 願 新的一年裡 第一聲鐘響 : 一元復始 一生健康 快樂平安
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
臨時請假一天,繼續崩潰。 知道作業趕不完,不敢睡到九點了,一大早七點就跟老公一起出門,那麼早常去的咖啡廳沒開,只能去星巴克報到。
▍盤勢分析 加權難得開高走高 終場上漲 79 點,收 17545.32,站回五日線 櫃買也是開高走高,一舉收復十日線 ▍籌碼分析 現貨: 外資買超 36 E => 多 期貨: 空單增加 754 口,來到 -25,309 口 => 空 小台散戶做多
Thumbnail
今天24/1/11臺灣時間19:57,即將迎來本年度第一次的新月,摩羯座的新月對於制定一年計劃是一個好的時機。在這個新月的日子裡,可以明確自己的目標,並且想像未來充滿信心的自己,更容易實現目標,可以幫助改變人生。
大盤熱錢資金目前流往通路 網通 航運 資安 
Thumbnail
很開心遇到《整理想法的技術》這本書,它的言簡意賅,讓我閱讀中有了不少啟發,對我而言,如果問我看這本書,最大的收獲是什麼?我要說的整理就是「捨」,書中很多道理相近,我自己「分類」後,我覺得就是「捨的力量」!而這個捨的力量,運用在日常生活中竟是出奇的有意思,今天就來分享一下我把這本書運用在生活中的例子,
Thumbnail
1/10 今日加權指數在平盤附近震盪,震幅縮小到剩下60點,收下影線的小黑K,下跌69點,收17465,成交量縮2579億。 1/10 今日otc在平盤附近震盪,震幅縮小留比較長下影線的十字線,下跌0.07點,收229.41,成交量577.91億。 今天三大法人,外資賣超31億、投信買超24
Thumbnail
客戶的岳父有台老corolla , 快30年老車只開11萬多公里 這種車的通病 : "時速表不準 , 轉速表抖動" 轉速表恢復正常 時速表路試正常
Thumbnail
烏俄戰爭更新,美國班機延誤,世界銀行下修預期,老鮑的獨立性
Thumbnail
2022.01.11 願 新的一年裡 第一聲鐘響 : 一元復始 一生健康 快樂平安