当前位置:首页 » 《随便一记》 » 正文

solidity 0.8.0 以上版本:冲提ht、bnb_chen

4 人参与  2021年11月16日 08:23  分类 : 《随便一记》  评论

点击全文阅读


 // SPDX-License-Identifier: MIT
 pragma solidity ^0.8.3;
 
 contract ContractBalanceTest {
     address public owner;
 
     constructor() public payable {
         owner = msg.sender;
     }
 
     modifier onlyOwner () {
       require(msg.sender == owner, "This can only be called by the contract owner!");
       _;
     }
 
     function deposit() payable public {
     }
 
     function depositAmount(uint256 amount) payable public {
         require(msg.value == amount);
     }
 
     function withdraw() payable onlyOwner public {
         payable(msg.sender).transfer(address(this).balance);
     }
 
     function withdrawAmount(uint256 amount) onlyOwner payable public {
         require(msg.value == amount);
         require(amount <= getBalance());
         payable(msg.sender).transfer(amount); //this not work
         //msg.sender.transfer(getBalance()); // this ok
     }
 
     function getBalance() public view returns (uint256) {
         return address(this).balance;
     }
 }

 

 // SPDX-License-Identifier: MIT
 pragma solidity ^0.8.3;
 
 contract ContractBalanceTest {
     address public owner;
 
     constructor() public payable {
         owner = msg.sender;
     }
 
     modifier onlyOwner () {
       require(msg.sender == owner, "This can only be called by the contract owner!");
       _;
     }
 
     function deposit() payable public {
     }
 
     function depositAmount(uint256 amount) payable public {
         require(msg.value == amount);
     }
 
     function withdraw(uint256 amount)  onlyOwner public {
         //payable(msg.sender).transfer(address(this).balance);
         (bool success, ) = msg.sender.call{value: amount}(new bytes(0));
     }
 
     function withdrawAmount(uint256 amount) payable public {
         //require(msg.value == amount);
         require(amount <= getBalance());
         //payable(msg.sender).transfer(amount); //this not work
        (bool success, ) = msg.sender.call{value: amount}(new bytes(0));
         //msg.sender.transfer(getBalance()); // this ok
     }
 
     function getBalance() public view returns (uint256) {
         return address(this).balance;
     }
 }


点击全文阅读


本文链接:http://zhangshiyu.com/post/30917.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1