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

留言
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
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
比特幣區塊鏈為了滿足各種不同的需求與技術,目前衍生出四種不同型態的地址形式,主要是針對安全性、靈活性與新版本兼容性的改革。
Thumbnail
比特幣區塊鏈為了滿足各種不同的需求與技術,目前衍生出四種不同型態的地址形式,主要是針對安全性、靈活性與新版本兼容性的改革。
Thumbnail
上一篇我們談到「【開發智能合約 — Solidity系列】實作篇Ep.1 — 看懂智能合約的脈絡」,大致上理解每個檔案的每份合約都是一個個的區塊,而這一個篇章主要著重於合約中的每個區塊的組成元素進行分項說明。 今天的範例會以簡單的銀行存款與提款流程進行示範,過程中將一步步的使用上述7種元素完成功能,
Thumbnail
上一篇我們談到「【開發智能合約 — Solidity系列】實作篇Ep.1 — 看懂智能合約的脈絡」,大致上理解每個檔案的每份合約都是一個個的區塊,而這一個篇章主要著重於合約中的每個區塊的組成元素進行分項說明。 今天的範例會以簡單的銀行存款與提款流程進行示範,過程中將一步步的使用上述7種元素完成功能,
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
Staking也可以稱為質押,但與傳統意義的質押Pledge不同,虛擬貨幣的質押可以被簡單說明為「將持有的虛擬貨幣鎖倉提供鏈上驗證的挖礦行為」,即第一章提到的POS權益證明。
Thumbnail
Staking也可以稱為質押,但與傳統意義的質押Pledge不同,虛擬貨幣的質押可以被簡單說明為「將持有的虛擬貨幣鎖倉提供鏈上驗證的挖礦行為」,即第一章提到的POS權益證明。
Thumbnail
介紹: DOP 是一種區塊鏈隱私協議,在以太坊上運行,使用戶能夠精確管理他們希望分享的資訊(資產持有、交易信息等),主打『您的數據,您的選擇』 項目無融資資料,但推特有大佬追蹤,Kevin Susanto、nftguyy和哥吉拉聯合創辦人shan
Thumbnail
介紹: DOP 是一種區塊鏈隱私協議,在以太坊上運行,使用戶能夠精確管理他們希望分享的資訊(資產持有、交易信息等),主打『您的數據,您的選擇』 項目無融資資料,但推特有大佬追蹤,Kevin Susanto、nftguyy和哥吉拉聯合創辦人shan
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文概述了加密貨幣和區塊鏈項目中常見的協議功能和技術元素,包括Distribution, Emission Schedule, Utility/Value Capture等。通過瞭解這些概念,投資者和開發者可以更好地理解市場和技術動態,作出更明智的決策。
Thumbnail
本文概述了加密貨幣和區塊鏈項目中常見的協議功能和技術元素,包括Distribution, Emission Schedule, Utility/Value Capture等。通過瞭解這些概念,投資者和開發者可以更好地理解市場和技術動態,作出更明智的決策。
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
Dynamic Metadata NFTs 是區塊鏈技術中的一大創新,特別是在遊戲領域,能提供更大的靈活性
Thumbnail
介紹: 很突然的空投,推特第一篇發文在2023/12/30,主打以太坊gas之高,希望大家之後改到SOL鏈更便宜快速,此幣即Less Fees &Gas的意思,網站沒有白皮書,所有訊息都在推特,包含代幣分配。官方推特說有許多詐騙網站出現,大家可從官方推特進入連結,此幣真無實用性,純推廣SOL鏈的迷
Thumbnail
介紹: 很突然的空投,推特第一篇發文在2023/12/30,主打以太坊gas之高,希望大家之後改到SOL鏈更便宜快速,此幣即Less Fees &Gas的意思,網站沒有白皮書,所有訊息都在推特,包含代幣分配。官方推特說有許多詐騙網站出現,大家可從官方推特進入連結,此幣真無實用性,純推廣SOL鏈的迷
Thumbnail
進入區塊鏈/Web3的世界,首先需要擁有一個錢包或帳號。本文從重要名詞和觀念入手,介紹公鑰和私鑰的重要性,以及助記詞的作用。探討加密錢包的種類,從私鑰控制權和網路連接的角度進行分類。同時提醒了私鑰保管的重要性,以及在交易所和網路交互中的安全提醒。最後透過實際案例介紹了社交工程和釣魚的危害。
Thumbnail
進入區塊鏈/Web3的世界,首先需要擁有一個錢包或帳號。本文從重要名詞和觀念入手,介紹公鑰和私鑰的重要性,以及助記詞的作用。探討加密錢包的種類,從私鑰控制權和網路連接的角度進行分類。同時提醒了私鑰保管的重要性,以及在交易所和網路交互中的安全提醒。最後透過實際案例介紹了社交工程和釣魚的危害。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News