timestamps 4:33:33 - 4:50:26
As an aside, I applied for the gitcoin grant program, and then pretty much immediately had to put this training on hiatus. I was launching my new website (Banned Books Art)[https://www.bannedbooks.art]. It's a VR art gallery that advocates for free speech, and I decided to make the VR from scratch using the A-Frame library. It was a lot of work, and there's still some cleanup, but overall the launch went well.
So this is more of a review than usual for me....
Anyways, the first thing we did was go to a previous version of Solidity to demonstrate what safe numbers are. It's a little wild that we could accidentally reset everything to zero before Solidity 8.
The unchecked keyword makes our code a little bit more gas efficient.
We instantiated a pretty standard for loop to reset the funders after we withdraw the funds.
for (uint256 i = 0; i < funders.length; i++) {}
which, I know how to do from basic javascript, but that's a little old school for JS, and we now favor forEach, entries, and mappings.
We also reset the array like this: funders = new address[](0);
Arrays can be tricky when you don't actually assign them as new objects, so this makes sense that we're setting it to a new array with 0 elements - which makes it empty.
Apparently we went over 3 ways to Ethereum to a wallet, but the third way is to use the call statement. Which is the preferred method in version 8+.
(bool callSuccess, ) = payable(msg.sender).call{value: address(this).balance}("");
require(callSuccess, "Call Failed");
I'm going to wind up rewatching this portion because I'm pretty sure the ("") is because we don't actually have a callback function that we want to use. We're only checking on the balance.
Top comments (0)