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

}

}

熱點內容
挖礦原理效益 發布:2024-11-17 21:12:20 瀏覽:959
哈希值算力 發布:2024-11-17 21:06:23 瀏覽:40
區塊鏈和虛擬貨幣區別 發布:2024-11-17 20:15:04 瀏覽:656
雲尊幣最新挖礦 發布:2024-11-17 19:51:35 瀏覽:670
比特幣感恩節 發布:2024-11-17 19:45:24 瀏覽:147
全球擁有比特幣最多的人 發布:2024-11-17 19:44:35 瀏覽:989
有macd的幣圈看盤軟體 發布:2024-11-17 19:44:27 瀏覽:189
一btc多少人民幣 發布:2024-11-17 19:30:26 瀏覽:382
區塊雲super挖礦 發布:2024-11-17 19:30:25 瀏覽:869
usdt怎麼那麼便宜 發布:2024-11-17 19:23:18 瀏覽:436