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
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
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