65. The Lottery Contract - 66. Lottery Design
enter = send a transaction
pickWinner = picks a winner randomly
68. Basic Solidity Types
UINT & INT
*cannot store any decimals ; only whole numbers
address
주소 저장하는 타입
69. Starting the Lottery Contract - 70.The Message GLobal Variable
Global Variable = message object (MSG)
-> available when creating a new contract
-> available with any function invocation
msg.sender 주목
71. Overview of Arrays
fixed array = no change in length
*our project(Lottery contract) = dynamic array
*whenever we have an array in solidity, the function that gets generated does not return the entire Array
73. Big Solidity Gotcha
74. Entering the Lottery
75. Validation with Require Statements
1. click Deploy btn
*require() = make sure that some requirement has been satisfied before allowing the rest of the function to be executed
did not make this min requirement
=> get kicked right of the function
76. The Remix Debugger - 77.Pseudo Random Number Generator
78. Selecting a Winner
random() = return random num that is probably going to be very large
function pickWinner() public{
uint index = random() % players.length; //how we can use this index to send the winner some money
}
79. Sending Ether from Contracts
transfer() = attempt to take some amount of money from the current contract and send it to given address(players[index])
function pickWinner() public{
uint index = random() % players.length; //how we can use this index to send the winner some money
players[index].transfer(this.balance);
}
80. Resetting Contract State
emptying out the list of players
= we can reset the state of our contract and automatically get it ready for another round
= redeploy 없이 가능
80. Requiring managers
pickwinner() 안에 require() 선언=> only the manager is able to call the pick winner function
function pickWinner() public{
require(msg.sender == manager);
...}
82. Fuction Modifiers
modifier() = used as reducing the amount of code that I have to write
83. Returning Players Array
function getPlayers() public view returns (address[]){
return players;
}
84. Contract Review
85.- 86. New Test setup
87. Test project updates
88. Test helper Review - 89. Asserting Deployment
1. $npm run test
90. Entering the Lottery - 94. End to End Test
'PBL Ⅲ > Ethereum and Solidity' 카테고리의 다른 글
Section5 : Real Projects with Ethereum (0) | 2022.09.09 |
---|---|
Section4 : Building Interative Front-Ends (0) | 2022.08.28 |
Section2 : Smartcontracts with solidity (0) | 2022.08.16 |
Section1 : 20. Our First Contract~ (0) | 2022.08.15 |
Section1 : 17. smart contracts ~ (0) | 2022.08.15 |