當前位置:首頁 » 以太坊知識 » 以太坊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-02-24 17:37:00 瀏覽:941
以太坊轉賬手續費查詢 發布:2025-02-24 17:27:00 瀏覽:137
怎麼查有沒有這個usdt地址 發布:2025-02-24 17:26:13 瀏覽:592
幣圈的k線是什麼線 發布:2025-02-24 17:19:21 瀏覽:995
幣圈直播江濤老師 發布:2025-02-24 17:02:57 瀏覽:381
以太坊創始人呢 發布:2025-02-24 17:02:56 瀏覽:380
各種數字貨幣名稱 發布:2025-02-24 16:58:02 瀏覽:47
區塊鏈可轉債 發布:2025-02-24 16:57:14 瀏覽:900
農產品數字貨幣交易平台 發布:2025-02-24 16:45:57 瀏覽:275
網卡eth0變成了eth1 發布:2025-02-24 16:42:29 瀏覽:864