Comment rendre une fonction uniquement disponible pour le fondateur?

Alan Li

Comment rendre une fonction uniquement disponible pour le fondateur?


J’ai créé un contrat qui permet un problème de fonction, le code comme suit;

 function   Issue ( uint256 _value )   public    { balanceOf [ msg . sender ]   +=  _value ;              // Subtract from the sender totalSupply +=  _value ;                        // Updates totalSupply 

  } 

Je souhaite modifier que seul le créateur du contrat peut émettre plus de jetons. J’ai essayé de changer le public en interne, mais après avoir changé cela, je ne trouve pas la fonction Issue.

Ma question est de savoir comment puis-je modifier cela pour rendre le problème uniquement accessible au fondateur?

Réponses


 smarx

Vous devez garder une trace du compte qui a déployé le contrat, puis vous devez vérifier msg.sender dans votre fonction pour vous assurer qu’il s’agit du même compte.

Voici un exemple de https://programtheblockchain.com/posts/2017/12/26/checking-the-sender-in-a-smart-contract/ :

 pragma solidity ^ 0.4 . 19 ; contract TipJar   { address owner ;      // current owner of the contract 

     function   TipJar ()   public   {    // contract's constructor function owner =  msg . sender ; 
     } 

     function  withdraw ()   public   { 
         require ( owner ==  msg . sender ); msg . sender . transfer ( this . balance ); 
     } 

     // unchanged code omitted 
 } 

Alan Li

Merci mon pote! J’ai compris à partir de votre exemple! très utile!

Alan Li

une autre question rapide, comment exécuter la fonction TipJar () public {// constructeur de la fonction constructeur owner = msg.sender; } à la création du contrat

smarx

Le constructeur est par définition exécuté lorsque vous créez le contrat. C’est la fonction du même nom que le contrat.

 

#(une, #pour, comment, disponible, fonction, fondateur, Le, Rendre, uniquement

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *