剛學(xué)完solidity的基礎(chǔ)開發(fā),想寫一個眾籌項目,在使用msg.value的時候,發(fā)現(xiàn)只要函數(shù)中使用到msg.value,就會自動轉(zhuǎn)走賬戶的錢到該合約賬戶里。這讓我非常疑惑,那怎么轉(zhuǎn)出來呢?我寫了一個demo來測試。文章來源:http://www.zghlxwxcb.cn/news/detail-503788.html
pragma solidity ^0.4.26;
contract sendmoney{
uint a;
//用于獲取當(dāng)前合約賬戶的錢
function getBalance() returns(uint){
return this.balance;
}
function transfer() payable {
a = msg.value; //用于接收sender轉(zhuǎn)的eth
}
function sendMoney() {
address add = 0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db;//這是我的一個測試賬戶
add.transfer(a); //將eth從合約賬戶轉(zhuǎn)到指定賬戶里
}
}
測試結(jié)果是:當(dāng)我調(diào)用transfer()時,會扣除sender的eth,轉(zhuǎn)到當(dāng)前合約賬戶中,而再調(diào)用sendMoney()之后,eth會從合約賬戶里轉(zhuǎn)到測試賬戶里。
我的理解是,msg.value里攜帶的就是sender的eth的信息(簡單理解為msg.value就是一筆錢),在上面代碼里sender的eth的信息由a攜帶(a就是這筆錢),a在被轉(zhuǎn)入其他賬戶之前都是被放在合約賬戶里。文章來源地址http://www.zghlxwxcb.cn/news/detail-503788.html
到了這里,關(guān)于solidity開發(fā) msg.value的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!