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

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:

主站蜘蛛池模板: 邵阳县| 汉源县| 江陵县| 大宁县| 兰西县| 望江县| 东港市| 克东县| 海阳市| 丰城市| 郴州市| 南平市| 林口县| 静安区| 密山市| 华池县| 麻城市| 会昌县| 新民市| 湟源县| 丽水市| 永宁县| 奉贤区| 保靖县| 南安市| 墨玉县| 海盐县| 乌海市| 金塔县| 海伦市| 安阳市| 冷水江市| 高邑县| 蒙城县| 临澧县| 洪江市| 永川市| 策勒县| 楚雄市| 贵阳市| 镇安县|