1.12 Receive 收學費

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

Receive

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract TuitionPayment {
address public school;
uint public tuitionFee;
mapping(address => uint) public studentBalances;

event TuitionReceived(address payer, uint amount);

constructor(uint _tuitionFee) {
school = msg.sender;
tuitionFee = _tuitionFee;
}

// 定義 receive 函式來接收學費
receive() external payable {
require(msg.sender != school, "School cannot pay tuition");
require(msg.value == tuitionFee, "Incorrect tuition fee amount");

studentBalances[msg.sender] += msg.value;
emit TuitionReceived(msg.sender, msg.value);
}

// 提取合約中的以太幣
function withdraw(uint amount) public {
require(msg.sender == school, "Only school can withdraw");
require(amount <= address(this).balance, "Insufficient balance");

payable(school).transfer(amount);
}
}
  • 當我們想要在 Solidity 合約中接收以太幣,例如收取學費,可以使用 receive 函式來實現這一功能。
  • TuitionPayment 合約用於收取學費。在合約創建時,設定了學校的地址和學費的金額
  • receive 函式被定義為外部函式,用於接收以太幣。
  • 當有人向合約地址轉帳時,如果轉帳金額等於學費金額,則該函式將被自動調用。
  • 如果轉帳者不是學校,且轉帳金額正確,則學費將被記錄到相應的學生帳戶中。
  • 當學費被成功接收時,將觸發一個事件 TuitionReceived,用於通知外部觀察者。
  • 合約還包含一個 withdraw 函式,用於將合約中的以太幣提取到學校地址。
留言
avatar-img
留言分享你的想法!
avatar-img
Follow the Rainmaker 🌧️
5會員
91內容數
尋大神腳印, 亦步亦趨。
2024/06/12
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
2024/06/12
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
2024/05/29
Overview 1. Request Wallet Connection from Metamask get account function get account function 2. Set your smart contract address injected provide
2024/05/29
Overview 1. Request Wallet Connection from Metamask get account function get account function 2. Set your smart contract address injected provide
2024/05/28
在 Solidity 中,constant 變量用於定義不可變的常數值。這些常數在合約的生命週期內不會改變,並且它們的值必須在宣告時設定。使用 constant 關鍵字可以節省 gas,因為它們在編譯時就已經被嵌入到字節碼中,不需要在運行時讀取存儲。 用法 定義常數: 常數變量必須在宣告時初始
2024/05/28
在 Solidity 中,constant 變量用於定義不可變的常數值。這些常數在合約的生命週期內不會改變,並且它們的值必須在宣告時設定。使用 constant 關鍵字可以節省 gas,因為它們在編譯時就已經被嵌入到字節碼中,不需要在運行時讀取存儲。 用法 定義常數: 常數變量必須在宣告時初始
看更多
你可能也想看
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
連請兩天假不能再請了,恢復正常上班。
Thumbnail
連請兩天假不能再請了,恢復正常上班。
Thumbnail
昨日大盤開盤小漲 盤勢緩步拉升 收場上漲79點 量增至成交量3000億 收了一根紅K 受NVIDIA股價
Thumbnail
昨日大盤開盤小漲 盤勢緩步拉升 收場上漲79點 量增至成交量3000億 收了一根紅K 受NVIDIA股價
Thumbnail
昨天來回超過300點 但要能來回做很難 我們能做單邊做對就不錯了 昨天群組更新壓力區滿足 那根據606滿足點為新壓力 只要拉上來不超過606先做空 所以昨天夜盤我分別在590 已經CPI 後下殺拉回的瞬間 540(五日線)放空 也順利來到講義後的442、425、397/ 這些
Thumbnail
昨天來回超過300點 但要能來回做很難 我們能做單邊做對就不錯了 昨天群組更新壓力區滿足 那根據606滿足點為新壓力 只要拉上來不超過606先做空 所以昨天夜盤我分別在590 已經CPI 後下殺拉回的瞬間 540(五日線)放空 也順利來到講義後的442、425、397/ 這些
Thumbnail
1/11 今日加權指數在平盤附近盤中走高,震幅大約100點,收小紅K,上漲79點,收17545,成交量3075億。 1/11 今日otc開高走高收最高,收長紅K,上漲2.3點,收231.71,成交量689.9億。 今天三大法人,外資買超36億、投信買超13億、自營商買超8億,融資2440億(
Thumbnail
1/11 今日加權指數在平盤附近盤中走高,震幅大約100點,收小紅K,上漲79點,收17545,成交量3075億。 1/11 今日otc開高走高收最高,收長紅K,上漲2.3點,收231.71,成交量689.9億。 今天三大法人,外資買超36億、投信買超13億、自營商買超8億,融資2440億(
Thumbnail
通膨數據之日、拜登藏秘密、俄國繼續凹單
Thumbnail
通膨數據之日、拜登藏秘密、俄國繼續凹單
Thumbnail
車主剛入手wish一週 , 網路上好車不多 , 便宜的車回來都要花錢了 駕駛座車門有共震異音 中扶手也破皮了 原廠新品 感謝車主來結緣
Thumbnail
車主剛入手wish一週 , 網路上好車不多 , 便宜的車回來都要花錢了 駕駛座車門有共震異音 中扶手也破皮了 原廠新品 感謝車主來結緣
Thumbnail
連哥年前來巡車況和更換後箱膠條 原廠新品已停止供應 , 只剩材料行還可以問得到 有料當思無料之苦 年前最後一洗 打蠟交車 , 感謝連哥捧場
Thumbnail
連哥年前來巡車況和更換後箱膠條 原廠新品已停止供應 , 只剩材料行還可以問得到 有料當思無料之苦 年前最後一洗 打蠟交車 , 感謝連哥捧場
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News