1.17 msg.sender跟owner最大的差異?

閱讀時間約 3 分鐘

msg.sender

  • 定義msg.sender 是 Solidity 中的一個全局變量,表示當前調用合約函數的外部地址。這個地址可以是普通用戶賬戶(EOA)或另一個智能合約。
  • 用途:用於識別誰在調用當前函數。在每次函數調用期間,msg.sender 都會動態地更新為當前調用該函數的賬戶地址。
  • 典型場景:驗證函數調用者的身份和權限,記錄操作人等。

owner

  • 定義owner 通常是智能合約中的一個狀態變量,用於存儲合約所有者的地址。這個地址通常在合約部署時由部署者設置,或者在合約運行期間通過特定函數更新。
  • 用途:用於實現合約的權限控制,確保只有特定地址(通常是合約的部署者或管理者)可以執行某些敏感操作。
  • 典型場景:限制只有合約所有者能調用某些函數,如更改合約配置、提取合約內的資金等。

範例

下面是一個簡單的智能合約範例,展示了 msg.senderowner 的不同用途:

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

contract MyContract {
address public owner;

// 構造函數,部署合約時設置合約所有者
constructor() {
owner = msg.sender;
}

// 只有合約所有者可以調用的修飾符
modifier onlyOwner() {
require(msg.sender == owner, "Not the contract owner");
_;
}

// 更改合約所有者的函數,只能由當前所有者調用
function changeOwner(address newOwner) public onlyOwner {
owner = newOwner;
}

// 任何人都可以調用的函數
function doSomething() public {
// 在這個函數中,msg.sender 表示當前調用者的地址
}

// 只有合約所有者才能調用的函數
function ownerOnlyFunction() public onlyOwner {
// 這個函數只能由合約所有者調用
}
}


主要區別

  1. 定義的性質
    • msg.sender:是一個全局變量,表示當前調用函數的發送者地址,每次函數調用時都會更新。
    • owner:是一個狀態變量,用於存儲特定地址,通常是合約的所有者或管理者。
  2. 使用目的
    • msg.sender:用於檢查和識別當前調用者的身份,通常在任何函數中都會用到。
    • owner:用於權限控制,限制只有特定地址可以執行某些操作,通常結合修飾符(如 onlyOwner)使用。
  3. 變化方式
    • msg.sender:隨每次函數調用而變化,表示當前調用該函數的地址。
    • owner:通常在合約的生命周期內很少變化,只在特定情況下(如更改所有者時)變化。


[Reference]

ChatGPT3.5

    尋大神腳印, 亦步亦趨。
    留言0
    查看全部
    發表第一個留言支持創作者!
    5.4
    閱讀時間約 1 分鐘
    5.5 Merkle Tree x Whitelist
    閱讀時間約 1 分鐘
    4.1
    閱讀時間約 1 分鐘
    4.4
    閱讀時間約 7 分鐘
    4.5
    閱讀時間約 1 分鐘
    KryptoCamp ERC20教學
    閱讀時間約 10 分鐘
    你可能也想看
    1/17(三),起床54.5kg,睡前55.3kg,總熱量1,855cal跑步停擺太久,今天不跑不行了。
    Thumbnail
    avatar
    中年婦女
    2024-01-18
    1/17 台股覆盤市場盤勢,步步為營的一天 ▍盤勢分析: 今日的加權指數,在開盤平穩後,似乎開始演繹一幕鈍刀割肉的戲碼,緩緩地下滑。最終下跌185.08點,以17161.79點作收,跌破了季線的支撐。櫃買指數表現更為劇烈,下挫3.61點,雖然仍守在季線之上,但風雲變色的跡象已隱隱在市。 ▍籌碼分析:
    Thumbnail
    avatar
    時間的朋友 Max
    2024-01-17
    1/17 盤中大盤熱錢資金目前流往儲能 資安 通路 AI
    avatar
    台股籌碼戰-金庸
    2024-01-17
    1/17盤前聊聊1/8怪怪分點籌碼3149正達續創短高價 周一神盾集團也多檔漲停
    Thumbnail
    avatar
    台股籌碼戰-金庸
    2024-01-16
    1/17 月結注意法人留倉動向、以及三月開始要降息大家早安 預言的季線支撐,就差不多快到了。 目前低283、季線224 昨天這樣大殺盤,都是能預測到的 而非事後論。 那今天怎麼走? 由於夜盤只有測試壓力, 在群組提到,反彈283+50~100點 然後360、380注意 果真高點落在370、收329 若300以上做多,至少短打50
    avatar
    哈老濕的期貨教學
    2024-01-16
    1/17 Allen 台股盤勢分享臺股指數及OTC低走,外資賣超,中共和伊朗等地緣風險增加投資不確定性,值得觀察AI相關產業和半導體行情。留意聯發科股價止跌,臺積電法說對半導體業的展望。近期波動市場將是選股機會。
    Thumbnail
    avatar
    Surfer Allen stock
    2024-01-16
    1/17日記 解決當沖留倉的榮成魯蛇如我又在處理做不好的部位了,還好順利解決。
    Thumbnail
    avatar
    Bo
    2023-01-17
    1/17-1/23 荷蘭生活週記散步時,婆西有感而發說在超市看到徵人啟事,突然發現,這輩子從來沒有應徵過。 我:「這輩子都是我去應徵,你要和我交換嗎?」 「不要。」 接著就聊到應徵工作很囧的往事,例如老闆會問:「可以接受加班嗎?」 「不可以。」 我這種應徵工作常碰壁的普通人,很想了解不用應徵工作,所謂贏家的人生。
    Thumbnail
    avatar
    irismuyu
    2022-01-24
    1-17 談談我認為財富自由可能的方式財富自由的基本公式 主動薪資收入+被動收入-投資金 -保險費-生活基本開銷=>還能有結餘 有結餘處可以存款,以應不時之需。生活基本開銷一班有房貸或租金、水、電費、網路費、房貸、買食物等。保險費是為了因應緊急情況的大筆支出。從上面的公式看起來照邏輯來說就是增加主動或被動收入,再來降低開銷。 可行的步驟
    avatar
    威利財經生活隨筆
    2021-11-10
    1/17 音樂五四三:The Doors首張專輯50周年特輯週二21:00-23:00首播、 週六22:00-00:00重播(CST)。 FM98.1 News98電台。www.news98.com.tw 點選「線上收聽」鏈結即可。 亦可利用 hiChannel 收聽。(小秘密:週六22:00重播有bonus track喔。) 1967是搖滾史瘋狂大豐收的
    Thumbnail
    avatar
    馬世芳
    2017-01-17