solidity中transfer异常"send" and "transfer" are only available for objects of type address

简介: solidity中transfer异常"send" and "transfer" are only available for objects of type address

在solidity只能合约中,正常情况下我们可以使用transfer方法来进行转账操作,具体使用如下:


msg.sender.transfer(_value);


这样,就可以将指定的金额转到msg.sender的账户内。但是,还有一些情况时,ETH的接收者并不是msg.sender。那么该如何处理呢?使用下面这一种方式?


function transfer(address _to, uint256 _value) public {

       _to.transfer(_value);

       return;

}


如果真的使用此方法,你会发现在编译时会报如下异常:


browser/***: TypeError: "send" and "transfer" are only available for objects of type "address payable", not "address".

_to.transfer(_value);


针对此异常需要将地址转换为payable的。可通过两种形式,如果该地址是作为属性设置好的,比如通过set方法进行设置的,那么在定义该属性时需要定义为如下形式:


address payable receiver;


如果是像上面的示例方法中一样,是传递进来的参数,则可使用如下方式解决:


function transfer(address _to, uint256 _value) public {

       address(uint160(_to)).transfer(_value);

       return;

}


目录
相关文章
Rejected request from RFC1918 IP to public server address
Rejected request from RFC1918 IP to public server address
4588 0
|
2月前
|
消息中间件 Java
connection error;reply-code=503;unknown exchange type ‘x-delayed-message‘
connection error;reply-code=503;unknown exchange type ‘x-delayed-message‘
51 0
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
|
11月前
|
机器学习/深度学习 自然语言处理 算法
TABs(Type Abstraction,类型抽象):Open Relation and Event Type Discovery with Type Abstraction论文解读
传统的“封闭世界”信息提取(IE)方法依赖于人类本体来定义抽取范围。因此,当应用到新的领域时,这种方法就不适用了。这就要求系统能够从给定的语料库中自动推断出新的类型
50 0
|
12月前
|
程序员 Go API
Jmeter问题之:解决 Cannot send data to network connection
Jmeter问题之:解决 Cannot send data to network connection
189 0
Jmeter问题之:解决 Cannot send data to network connection
SAP WM Storage Type Capacity Check Method 5 (Usage check based on SUT)
SAP WM Storage Type Capacity Check Method 5 (Usage check based on SUT)
SAP WM Storage Type Capacity Check Method 5 (Usage check based on SUT)
is transfer = C ( only read dynamically) not supported in one order scenario
is transfer = C ( only read dynamically) not supported in one order scenario
105 0
is transfer = C ( only read dynamically) not supported in one order scenario
什么是ABAP的STATE_READ_ACCESS
订阅专栏 我们做POC的时候,也经常见到STATE_READ_ACCESS, or STATE_WRITE_ACCESS in class CL_SEND_REQUEST_BCS, CL_CRM_PML_OS_HEAD(Mail form), 以CL_CRM_PML_OS_HEAD为例,这个CLASS主要是获取MAIL FORM TEMPLATE创建时的相关信息,例如CHANGED_AT, MAIL_USAGE等等,
什么是ABAP的STATE_READ_ACCESS
transfer = C only read dynamically - why it fails to work
transfer = C only read dynamically - why it fails to work
107 0
transfer = C only read dynamically - why it fails to work