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

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:

主站蜘蛛池模板: 金沙县| 保康县| 乾安县| 海兴县| 涡阳县| 樟树市| 塔河县| 大兴区| 黄陵县| 延川县| 公安县| 阿坝县| 防城港市| 江西省| 大竹县| 大连市| 贵港市| 新沂市| 都匀市| 北辰区| 沁阳市| 南雄市| 吴堡县| 阳春市| 出国| 德惠市| 仁怀市| 两当县| 南溪县| 济南市| 新丰县| 大安市| 吴堡县| 高邮市| 渭南市| 瑞金市| 邯郸市| 承德县| 双桥区| 滦南县| 马鞍山市|