官术网_书友最值得收藏!

Sending ether to smart contracts

Now, let's send some ether to the smart contract. Let's use the second account for this. The second account wants to donate 5 ether using a smart contract as follows:

truffle(development)> Donation.deployed().then(function(instance) { return instance.donate({ from: "0x6d3eBC3000d112B70aaCA8F770B06f961C852014", value: 5000000000000000000 }); });

You would get the following output:

As well as the from field, you need to add a value field. In this value field, you input how much money you want to send to the smart contract. You may wonder why this number has so many zeros. When you transfer money in Ethereum blockchain, you must use the lowest currency unit (similarly to converting from dollars to cents), which is called wei. 1 ether is 1,000,000,000,000,000,000 wei (18 zeros). You want to send 5 ether, making it 5,000,000,000,000,000,000. Now, if you look at your Ganache screen, you will notice that the balance drops to 95 ether. So 5 ether is now held in the smart contract, as demonstrated in the following screenshot:

Let's withdraw this using the first account:

truffle(development)> Donation.deployed().then(function(instance) { return instance.receive_donation({ from: "0xb105F01Ce341Ef9282dc2201BDfdA2c26903da77" }); });

You will get the following output:

This execution has the same syntax as before, minus the value field. Now take a look at the Ganache screen. The first account has between 104 and 105 ether (such as 104.8 or 104.9 ether). It is not 105 ether because we already outlaid some money launching the smart contract using the first account, and for paying the transaction fee when executing some functions in the smart contract:

主站蜘蛛池模板: 浦东新区| 永年县| 黔东| 将乐县| 清河县| 五河县| 蒙山县| 庆阳市| 扎兰屯市| 高淳县| 罗山县| 资阳市| 横山县| 屯门区| 柳林县| 石台县| 蕲春县| 平泉县| 英吉沙县| 富裕县| 元朗区| 金塔县| 汉阴县| 彰化市| 华蓥市| 成都市| 上饶县| 建德市| 疏勒县| 将乐县| 锡林浩特市| 鄂伦春自治旗| 田阳县| 台北县| 抚州市| 韩城市| 湛江市| 隆尧县| 禹城市| 大埔区| 南通市|