Solidity transfer 实现转账
使用 Solidity 智能合约转账可以使用 transfer 函数。智能合约里面需要有一定的以太,不然合约将无法给调用者发送以太,可以在创建合约时给合约发送一定的以太来测试。
具有转账功能的智能合约的 constructor 必须显式的指定为 payable。
// SPDX-License-Identifier: SimPL-3.0 pragma solidity ^0.7.0; contract cs{ constructor() payable{ } function getETH() public{ require(address(this).balance>=1 ether,"no money"); address payable _owner = msg.sender; _owner.transfer(1 ether); } fallback() external{ } receive() payable external{ } }
transfer、send、call都可以在合约之间相互转账,但是用法有很大的不同!1. transfer如果异常会转账失败,抛出异常(等价于require(send()) ...