智能合約怎么進(jìn)行打賞捐贈(zèng)?

智能合約怎么進(jìn)行打賞功能把介?在互聯(lián)網(wǎng)和開(kāi)源平臺(tái)上分享經(jīng)驗(yàn)或者代碼后勤讽,網(wǎng)站通常有一個(gè)打賞功能,用于對(duì)閱讀者對(duì)分享者的感謝拗踢,使用solidity編寫(xiě)一個(gè)智能合約打賞功能:

1.任何人可以像合約賬號(hào)打賞捐贈(zèng)
2.任何人可以查看歷史捐贈(zèng)總額
3.合約擁有者可以設(shè)置余額提醒金額
4.合約擁有者可以進(jìn)行提現(xiàn)

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

contract Donator {
    // 事件脚牍,用于記錄打賞行為
    event Donated(address indexed donator, uint256 amount);
    // 事件,用于記錄提現(xiàn)行為
    event Withdrawn(address indexed withdrawer, uint256 amount);
    // 事件巢墅,用于記錄提醒金額設(shè)置
    event AlertAmountSet(uint256 alertAmount);
    // 事件诸狭,用于觸發(fā)余額超過(guò)提醒金額的提醒
    event AlertTriggered(uint256 balance);

    // 合約擁有者地址
    address private owner;
    // 提醒金額
    uint256 private alertAmount;
    // 捐贈(zèng)總額
    uint256 private totalDonations;

    // 構(gòu)造函數(shù),設(shè)置合約的擁有者
    constructor() {
        owner = msg.sender;
    }

    // 打賞函數(shù)君纫,任何人都可以調(diào)用作谚,向合約發(fā)送ETH
    function donate() public payable {
        require(msg.value > 0, "Donation amount must be greater than 0");
        totalDonations += msg.value;
        emit Donated(msg.sender, msg.value);
        _checkAlert();
    }

    // 設(shè)置提醒金額,只有合約的擁有者可以調(diào)用
    function setAlertAmount(uint256 _alertAmount) public {
        require(msg.sender == owner, "Only the owner can set alert amount");
        require(_alertAmount > 0, "Alert amount must be greater than 0");
        alertAmount = _alertAmount;
        emit AlertAmountSet(alertAmount);
    }

    // 提現(xiàn)函數(shù)庵芭,只有合約的擁有者可以調(diào)用
    function withdraw() public {
        require(msg.sender == owner, "Only the owner can withdraw");
        uint256 amount = address(this).balance;
        emit Withdrawn(msg.sender, amount);
        payable(msg.sender).transfer(amount);
    }

    // 獲取所有捐贈(zèng)總數(shù)的函數(shù)
    function getTotalDonations() public view returns (uint256) {
        return totalDonations;
    }

    // 獲取合約余額的函數(shù)妹懒,只有合約的擁有者可以調(diào)用
    function getBalance() public view returns (uint256) {
        require(msg.sender == owner, "Only the owner can view the balance");
        return address(this).balance;
    }

    // 檢查是否達(dá)到提醒金額,如果達(dá)到則觸發(fā)提醒事件
    function _checkAlert() private {
        if (address(this).balance >= alertAmount) {
            emit AlertTriggered(address(this).balance);
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末双吆,一起剝皮案震驚了整個(gè)濱河市眨唬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌好乐,老刑警劉巖匾竿,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蔚万,居然都是意外死亡岭妖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)反璃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昵慌,“玉大人,你說(shuō)我怎么就攤上這事淮蜈≌剩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵梧田,是天一觀的道長(zhǎng)淳蔼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)裁眯,這世上最難降的妖魔是什么鹉梨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮穿稳,結(jié)果婚禮上存皂,老公的妹妹穿的比我還像新娘。我一直安慰自己司草,他們只是感情好艰垂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布泡仗。 她就那樣靜靜地躺著,像睡著了一般猜憎。 火紅的嫁衣襯著肌膚如雪娩怎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天胰柑,我揣著相機(jī)與錄音截亦,去河邊找鬼。 笑死柬讨,一個(gè)胖子當(dāng)著我的面吹牛崩瓤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踩官,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼却桶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蔗牡?” 一聲冷哼從身側(cè)響起颖系,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辩越,沒(méi)想到半個(gè)月后嘁扼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡黔攒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年趁啸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片督惰。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡不傅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姑丑,到底是詐尸還是另有隱情蛤签,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布栅哀,位于F島的核電站,受9級(jí)特大地震影響称龙,放射性物質(zhì)發(fā)生泄漏留拾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一鲫尊、第九天 我趴在偏房一處隱蔽的房頂上張望痴柔。 院中可真熱鬧,春花似錦疫向、人聲如沸咳蔚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谈火。三九已至侈询,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糯耍,已是汗流浹背扔字。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留温技,地道東北人革为。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舵鳞,于是被迫代替她去往敵國(guó)和親震檩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容