当前位置:   article > 正文

Solidity 充值,提现及转账操作(2023版)_solidity合约向外转账

solidity合约向外转账

充值

  • 函数+payable;
  • msg.value大于0;

提现

  • 地址+payable;
  • address.transfer(uint256 amount);

示例代码如下:

  1. // SPDX-License-Identifier: GPL-3.0
  2. pragma solidity ^0.8.7;
  3. contract money_demo{
  4. address public admin;
  5. address payable public user;
  6. uint256 totalAmount;
  7. constructor(address _owner){
  8. admin = _owner; //决定一个值成为管理员
  9. }
  10. function deposit(uint256 _amount)public payable{ //充值函数
  11. if(_amount!=msg.value)return;
  12. user=payable(msg.sender); //记录是谁充值的
  13. totalAmount=_amount; //记录数值,表面记账
  14. //address(this).balance+= _amount;
  15. }
  16. function getBalance()public view returns(uint256,uint256){ //查看合约账户余额
  17. //this代表合约本身
  18. return (address(this).balance,totalAmount);
  19. }
  20. function withdraw(uint256 _amount)public payable{ //提现函数
  21. user.transfer(_amount); //这里的操作者并没有获得钱,而是将钱提现到了user账户
  22. }
  23. }

运行该合约的账户向外部account账户进行转账:

  1. // SPDX-License-Identifier: GPL-3.0
  2. pragma solidity >0.4.0;
  3. contract arrayTest2{
  4. function transfer() public payable{
  5. address account=0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
  6. payable(account).transfer(msg.value);
  7. }
  8. //在 Solidity 0.8之后,address就不是默认payable类型了。所以要在address前面加上payable的强制类型转换

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/369224
推荐阅读
相关标签
  

闽ICP备14008679号