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

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:

主站蜘蛛池模板: 平顺县| 开平市| 永登县| 临潭县| 新晃| 特克斯县| 灵丘县| 武鸣县| 玛沁县| 龙游县| 巴林右旗| 河东区| 彝良县| 孙吴县| 会宁县| 芜湖市| 大荔县| 秦皇岛市| 罗定市| 青神县| 诏安县| 嵊泗县| 北宁市| 张家港市| 新郑市| 阿尔山市| 大庆市| 富裕县| 衢州市| 喀喇沁旗| 德令哈市| 塔河县| 油尖旺区| 赞皇县| 遵义县| 龙海市| 金门县| 双柏县| 衡阳市| 惠水县| 靖宇县|