當前位置:首頁 » 以太坊知識 » 以太坊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;

}

}

熱點內容
調研組在調研btc天 發布:2025-05-18 04:19:18 瀏覽:556
數字貨幣ddm是什麼意思 發布:2025-05-18 04:14:59 瀏覽:266
怎麼算摩擦力的能量 發布:2025-05-18 04:13:26 瀏覽:694
幣印礦池dcr算力驟減 發布:2025-05-18 04:11:52 瀏覽:646
虛擬貨幣唯有茅台和比特幣 發布:2025-05-18 03:56:07 瀏覽:944
比特幣挖礦不是浪費錢 發布:2025-05-18 03:51:32 瀏覽:403
usdt如何賣出人民幣 發布:2025-05-18 03:43:08 瀏覽:417
元宇宙區塊鏈代幣yyz 發布:2025-05-18 03:42:28 瀏覽:419
測繪次新元宇宙 發布:2025-05-18 02:37:55 瀏覽:970
比特幣轉讓幣手續 發布:2025-05-18 02:37:53 瀏覽:204