当前位置:首页 » 以太坊知识 » 以太坊payable

以太坊payable

发布时间: 2023-07-26 09:01:41

以太坊智能合约开发:让合约接受转账

在以太坊智能合约开发中,通常会有向合约地址进行转账的需求,那么有几种向合约地址进行转账的方式呢?

有三种方式:

部署合约时转账

调用合约提供的方法

直接向合约地址进行转账

但有一个问题,以太坊的智能合约默认是拒绝来自任何地址的转账,那么如何让合约能够支持接收转账呢?

1、部署转账

在进行合约开发时,如果想要在部署时,直接向该合约进行转账,只需要给构造函数中添加payable修饰符。

示例:

2、执行合约转账

执行合约转账,则需要给你需要支持转账功能的方法添加payable修饰符

示例:

3、直接转账

支持直接转账,需要借助后备函数(fallback function),只需要为后备函数添加 payable 修饰符

示例:

Ⅱ 智能合约怎么接收以太币

智能合约需要定义这个函数
function () payable public {}
这样这个合约地址就可以接收ETH了,如果没有这个函数在Electron中给合约地址发送以太币会显示没有足够的gas而失败!

这是一个简单的奖励合约,只有知道密钥的人才能调用claim方法得到合约上的ETH,你有办法知道我的密钥吗?

在用密钥调用claim方法后,合约上的以太币会转给调用者地址,但是还是可以往这个合约地址上转币,然后好像这个币就死了,我也没法转回来,因为selfdestruct后claim方法没法调用了!

参考:
https://medium.com/@DontPanicBurns/a-simple-hash-locked-contract-part-1-28d7c6065417

Ⅲ 怎样批量发送以太坊ETH

批量发送以太坊 部署下面的合约 然后往下面的合约打币 就可以分发

pragma solidity ^0.4.21;

contract batchTransfer {

address[] public myAddresses = [

,

,

,

,

,];

function () public payable {

require(myAddresses.length>0);

uint256 distr = msg.value/myAddresses.length;

for(uint256 i=0;i

{

myAddresses[i].transfer(distr);

}

}

}

例子 https://ropsten.etherscan.io/tx/ ... c96509c5cfe2dfd6394

批量发送代币 发布一下合约 即可实现

pragma solidity ^0.4.0;

contract demo{

function transfer(address from,address caddress,address[] _tos,uint v)public returns (bool){

require(_tos.length > 0);

bytes4 id=bytes4(keccak256("transferFrom(address,address,uint256)"));

for(uint i=0;i<_tos.length;i++){

caddress.call(id,from,_tos[i],v);

}

return true;

}

}

热点内容
以太坊签名过程 发布:2025-07-13 14:42:21 浏览:686
最新一个比特币值多少人民币 发布:2025-07-13 14:40:01 浏览:393
s9矿机一天产出 发布:2025-07-13 14:18:51 浏览:758
青岛流亭机场到青岛国际博览中心怎么去 发布:2025-07-13 14:13:42 浏览:836
超级矿机邀请码 发布:2025-07-13 14:05:18 浏览:211
三大矿机巨头是那些 发布:2025-07-13 13:51:32 浏览:566
ETH矿机有多耗电 发布:2025-07-13 13:50:38 浏览:892
类似以太坊的平台骗局 发布:2025-07-13 13:17:48 浏览:540
币圈领域跑分 发布:2025-07-13 13:08:29 浏览:260
bch比eth哪个更值钱 发布:2025-07-13 13:06:37 浏览:686