๋ธ”๋ก์ฒด์ธ/๋ธ”๋ก์ฒด์ธ ๊ฐœ๋ฐœ

[์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์ฒด์ธ ๊ฐœ๋ฐœ] Solidity_Simple Variables

HHRR 2022. 8. 1. 18:13

๊ฐ•์˜์ž๋ฃŒ : https://ethereum-blockchain-developer.com/010-solidity-basics/01-integers/

(Unsigned) Integers

myUint -> 0

 

- ๋ชจ๋“  ๋ณ€์ˆ˜ ์œ ํ˜•๊ณผ ์ƒ๊ด€์—†์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”

- ์˜ค๋ฅ˜๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์ด๋‚˜ null๊ฐ’ ์–ป์„ ์ˆ˜ ์—†์Œ

- uint = uint256

setMyUint ํ•จ์ˆ˜

- setMyuint ์—์„œ ์„ค์ • ํ•œ ๊ฐ’ myUint์— ๋ฐ˜์˜ / ex.5


Boolean

- Boolean ๊ฐ’์œผ๋กœ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ ์—ฐ์žฅ

- Boolean : true or false ๋‘๊ฐ€์ง€ ๊ฐ’๋งŒ ๊ฐ€์ง

- ์žฌ๊ณ„์•ฝ

setMyBool ํ•จ์ˆ˜

- ๊ธฐ๋ณธ๊ฐ’ : false

- setMyBool : true ์ž…๋ ฅ -> myBool : true๋กœ ๊ฐ’ ๋ณ€ํ™˜


Overflow and Underflow , ์ •์ˆ˜ ์ˆœํ™˜

- uint8 : 0~255

incrementUint ํ•จ์ˆ˜, decrementUint ํ•จ์ˆ˜

- ๊ณ„์•ฝ ๋ฐฐํฌ(deploy) 

- incrementUint : uint8๊ฐ’ 1์”ฉ ์ฆ๊ฐ€

- decrementUint : uint8๊ฐ’ 1์”ฉ ๊ฐ์†Œ

- 0 ์—์„œ decrementUint ํด๋ฆญ : uint8 ๊ฐ’ 255

=> ์ •์ˆ˜๋Š” ์ˆœํ™˜ํ•จ, ๋”ฐ๋กœ ์˜ค๋ฅ˜ ์•ˆ๋‚จ


Address Types

setAddress ํ•จ์ˆ˜


[ ์ฃผ์†Œ ๊ณ„์ •์— ์ €์žฅ ]

- myAddress : ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ฃผ์†Œ๋Š” 0, ๊ฐ’์œผ๋กœ 20byte ๋“ค์–ด์žˆ์Œ

setAddress ์— ๊ณ„์ • ์ฃผ์†Œ ๋ณต๋ถ™ 

- setAddress์— ์œ„์—์„œ ์„ ํƒํ•œ ๊ณ„์ •(account) ๋ณต์‚ฌ ํ›„ ๋ถ™์—ฌ๋„ฃ๊ธฐ

-> transact -> myAddress ๋ˆ„๋ฅด๋ฉด ์ฃผ์†Œ๊ฐ€ ๋ชฉ๋ก์— ๋‚˜์™€์žˆ๋Š” ๊ณ„์ •์— ์ €์žฅ๋จ


 

Unit Wei Value Wei
wei 1wei 1
Kwei (babbage) 1e3 wei 1,000
Mwei (lovelace) 1e6 wei 1,000,000
Gwei (shannon) 1e9 wei 1,000,000,000
microether (szabo) 1e15 wei 1,000,000,000,000
milliether (finney) 1e15 wei 1,000,000,000,000,000
ether 1e18 wei 1,000,000,000,000,000,000

- ์†”๋ฆฌ๋””ํ‹ฐ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ผ์— ๋Œ€ํ•œ ๋‹จ์œ„ : wei

address public myAddress;

    function setAddress(address _address) public {
        myAddress = _address;
    }

    function getBalanceOfAddress() public view returns(uint){
        return myAddress.balance;
    }

- ์œ ํ˜•์ด address ์ธ ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” ๋ฉค๋ฒ„๊ฐ€ ์ ์–ด๋„ ํ•˜๋‚˜ ์žˆ์–ด์•ผํ•จ

 

- balance : ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ธ”๋ก์ฒด์ธ์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์„œ

 ์–ธ์ œ๋“  ์ฃผ์†Œ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ž๊ธˆ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ

# ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ํ•จ์ˆ˜

- ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ์—์„œ ํŠน์ • ์ˆ˜๋Ÿ‰์˜ wei๋ฅผ ์ฃผ์†Œ๋กœ ์ „์†ก ํ•  ์ˆ˜ ์žˆ์Œ : ๊ณ„์•ฝ์— ์ด๋” ๋ณด๋‚ด๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฐ€๋Šฅ 

 

[ ์ฃผ์†Œ ์ž”์•ก ์•Œ์•„๋ณด๊ธฐ ]

getBalanceOfAddress ํ•จ์ˆ˜ : ์ž”๊ณ  ๋‚ด๋ณด๋‚ด๊ธฐ

- getBalanceOfAddress : ๋‹จ์œ„ wei

- ์ฃผ์†Œ ๋ณต์‚ฌํ•ด์„œ setAddress์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๊ณ„์ •์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์›จ์ด์˜ ์–‘์œผ๋กœ ๊ฐ’์ด ์ถœ๋ ฅ๋จ

- getBalanceOfAddress => ๊ณ„์ •์— ์žˆ๋Š” ๊ฐ’๊ณผ ๋˜‘๊ฐ™์Œ

 


Strings

- ๋ฐ”์ดํŠธ ๋ฐฐ์—ด

[ ์˜ค๋ฅ˜ ]

string public myString = 'hello world';

    function setMyString(string _myString) public {
        
    }

- ๋ฐ์ดํ„ฐ ์ €์žฅ๋œ ์œ„์น˜๋ฅผ ํŒŒ์•… ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋œธ -> string ์ธ์ˆ˜๊ฐ€ ๋ฐ์ดํ„ฐ ์œ„์น˜ ์ •ํ™•ํžˆ ์ง€์ •ํ•ด์•ผํ•จ

setMyString ํ•จ์ˆ˜

- ๋ฌธ์ž์—ด์ด๋‚˜ ๋‹ค๋ฅธ ์ฐธ์กฐ์œ ํ˜• ์žˆ์œผ๋ฉด {memory} ํ‚ค์›Œ๋“œ ์ž…๋ ฅํ•ด์•ผํ•จ

  -> ์†”๋ฆฌ๋””ํ‹ฐ์—๊ฒŒ ์ด ์ธ์ˆ˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋  ๊ฑฐ๋ผ๋Š” ๊ฑฐ ์•Œ๋ ค์คŒ (ํ›จ์”ฌ ์Œˆ)

- string public; ๋ฐฐํฌ -> ๋นˆ ๋ฌธ์ž์—ด ์ถœ๋ ฅ

setMyString -> myString

- ๋ฌธ์ž์—ด์€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐ”์ดํŠธ ๋ฐฐ์—ด๋กœ ์ €์žฅ๋จ

- ์†”๋ฆฌ๋””ํ‹ฐ์—์„œ ๋ฌธ์ž์—ด๋กœ ์ž‘์—… : ๊ฝค ๋น„์šฉ์ด ๋“ค์–ด๊ฐ (๊ฐ€์Šค ๋•Œ๋ฌธ) , ์‹ค์ œ ๋ธ”๋ก์ฒด์ธ์œผ๋กœ ์ž‘์—…ํ•˜๋ ค๋ฉด ์ด๋”๊ฐ€ ๋งŽ์ด ๋“ค์–ด๊ฐ

 

 

[ ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•] ๋‹ค์Œ๊ฐ•์˜

- ์†”๋ฆฌ๋””ํ‹ฐ ์™ธ๋ถ€์˜ ์ด๋ฒคํŠธ, ๋ธ”๋ก์ฒด์ธ ์ž์ฒด์˜ ์™ธ๋ถ€์— ์ €์žฅ, ๋ธ”๋ก์ฒด์ธ์— ๋ฌธ์ž์—ด๋งŒ ์ €์žฅํ•ด์„œ ์™ธ๋ถ€์˜ ๋ฌธ์ž์—ด์ด ๋งž๋Š”์ง€ ํ™•์ธ

 

27. ๋žฉ ๋ณ€์ˆ˜ - ์†”๋ฆฌ๋””ํ‹ฐ ๋‚ด ๋ฌธ์ž์—ด ๊นŒ์ง€ ํ•™์Šต

 

[ ์†”๋ฆฌ๋””ํ‹ฐ ์ „์ฒด ์ฝ”๋“œ ]

pragma solidity ^0.5.13;

contract WorkingWithVariables {
    uint256 public myUint;

    function setMyUint(uint _myUint) public {
        myUint = _myUint;
    }

    bool public myBool;

    function setMyBool(bool _myBool) public {
        myBool = _myBool;
    }

    uint8 public myUint8;

    function incrementUint() public {
        myUint8++;
    }

    function decrementUint() public {
        myUint8--;
    }

    address public myAddress;

    function setAddress(address _address) public {
        myAddress = _address;
    }

    function getBalanceOfAddress() public view returns(uint){
        return myAddress.balance;
    }

    string public myString = 'hello world';

    function setMyString(string memory _myString) public {
        myString = _myString;
    }

}