function PetChangeTransaction( address _PETSITTER, address _master, uint _ownerpirce ) PetSitterModifyInfo(_PETSITTER) public payable {
// var Owner = Owners[_seller];
require(PetSitters[msg.sender].petsitterwallet >= _ownerpirce);
require(_ownerpirce == msg.value);
PetSitters[msg.sender].petsitterwallet -= _ownerpirce;
require(PetSitters[msg.sender].petsitterwallet + _ownerpirce >= PetSitters[msg.sender].petsitterwallet);
require(LovePeter[_master].lovepetwallet + _ownerpirce >= LovePeter[_master].lovepetwallet);
LovePeter[_master].lovepetwallet += msg.value;
}
function PetChange(address _ownerseller, address _petsitter, address _MASTER, uint _ownerpirce) MasterInfo(_MASTER) public {
LovePeter[msg.sender].lovepetwallet -= _ownerpirce;
require(Owners[_ownerseller].ownerwallet + _ownerpirce >= Owners[_ownerseller].ownerwallet);
Owners[_ownerseller].ownerwallet += _ownerpirce;
Owners[_ownerseller].owner = PetSitters[_petsitter].petsitter;
}
이부분만 보면 Waring이 없는데요
function PetChange(address _ownerseller, address _petsitter, address _MASTER, uint _ownerpirce) MasterInfo(_MASTER) public {
require(_ownerpirce == msg.value);
LovePeter[msg.sender].lovepetwallet -= _ownerpirce;
require(Owners[_ownerseller].ownerwallet + _ownerpirce >= Owners[_ownerseller].ownerwallet);
Owners[_ownerseller].ownerwallet += msg.value;
Owners[_ownerseller].owner = PetSitters[_petsitter].petsitter;
}
PetChange 이부분을 저런식으로 바꾸면 Warning이 생깁니다.
Warning 내용은
- Warning is browser/ballot.sol:178:33: Warning: "msg.value" used in non-payable function. Do you want to add the "payable" modifier to this function?
인데요
PetChangeTransaction 에서 쓰이는 msg.value 랑 차이가 없는데 여기서는 왜 Warning이 생기나요?
-------------------------------------
꼬리말
* 게시글 내용 삭제시 레벨 강등
* 질문은 각 주제별 게시판에 적어주세요.
비트코인 암호화화폐 커뮤니티 땡글~ 땡글~
-------------------------------------
함수에 payable modifier 를 안쓴 함수는 ether 를 받을수 없음으로 msg.value 값이 무조건 0이 됩니다.
그러므로 function funcname() payable { } 형태처럼 payable modifier 를 붙여주시면 되겠네요.