'CryptoZombies' μ¬μ΄νΈλ₯Ό μ΄μ©νμ¬ λΈλ‘μ²΄μΈ νλ«νΌμμ μ¬μ©λλ κ°μ²΄ μ§ν₯ μΈμ΄μΈ 'Solidity'μ 곡λΆλ₯Ό μμνλ€!!!
μ리λν° μ½λλ 컨νΈλνΈ μμ μμ¬ μλ€.
컨νΈλνΈλ μ΄λ리μ μ ν리μΌμ΄μ μ κΈ°λ³Έμ μΈ κ΅¬μ± μμμ΄λ€.
λͺ¨λ λ³μμ ν¨μλ ν 컨νΈλνΈμ μνκ² λλ€.
pragma solidity ^0.4.19;
λͺ¨λ μ리λν° μμ€ μ½λμ μ²μ!
ν΄λΉ μ½λκ° μ΄μ©ν΄μΌ νλ μ리λν° λ²μ μ μ΄μ£ΌκΈ°
contract 컨νΈλνΈμ΄λ¦ {
컨νΈλνΈμ μ μΈμ μ΄λ κ²!
uint λ³μλͺ ;
λΆνΈ μλ μ μ. μμκ° μλμ΄μΌ νλ€!
- λ§μ :
x + y
- λΊμ :
x - y
- κ³±μ :
x * y
- λλμ :
x / y
- λλ¨Έμ§/λͺ¨λλ‘ :
x % y
- μ§μ μ°μ° :
uint x = 5 ** 2;
struct μ΄λ¦ {
μ’ λ 볡μ‘ν ꡬ쑰체.
string λ³μλͺ ;
μμμ κΈΈμ΄λ₯Ό κ°μ§ UTF-8 λ°μ΄ν°λ₯Ό μν΄ νμ©
μ μ λ°°μ΄
uint[2] fixedArray;
2κ°μ μμλ₯Ό λ΄μ μ μλ μ μ λ°°μ΄
string[5] fixedString;
5κ°μ μμλ₯Ό λ΄μ μ μλ μ μ (κ³ μ )λ°°μ΄
λμ λ°°μ΄
uint[ ] dynamicArray;
μμμ κ³ μ λ κΈΈμ΄κ° μλ λμ λ°°μ΄. κ³μ ν¬κΈ°κ° μ»€μ§ μ μλ€
Person[ ] people;
ꡬ쑰체μ λμ λ°°μ΄. λ°μ΄ν°λ² μ΄μ€μ²λΌ 컨νΈλνΈμ ꡬ쑰νλ λ°μ΄ν° μ μ₯νλ λ° μ μ©ν¨.
Public λ°°μ΄
Person[ ] public people;
λ€λ₯Έ 컨νΈλνΈλ€μ΄ μ΄ λ°°μ΄μ μ½μ μ μκ² λμ§λ§, μΈ μλ μμ. 컨νΈλνΈμ κ³΅κ° λ°μ΄ν° μ μ₯ν λ μ μ©!
- ν¨μ μ μΈμ μ΄λ»κ²?
function eatHamburgers(string_name, uint_amount) {
- ν¨μ νΈμΆμ μ΄λ»κ²?
eatHamburgers("vitalik", 100);
struct Person {
uint age;
string name;
}
Person[ ] public people;
/// μλ‘μ΄ μ¬λμ μμ±ν΄λ³΄μ!
Person satoshi = Person(172, "Satoshi");
/// λ°°μ΄μ μΆκ°ν΄λ³΄μ!
people.push(satoshi);
/// μ΄κ±Έ ν©μ³λ³΄λ©΄!
people.push(Person(172, "Satoshi"));
array.push()
무μΈκ°λ₯Ό λ°°μ΄μ λμ μΆκ°ν΄μ μμλ₯Ό μ μ§νλλ‘ ν¨
κΈ°λ³Έμ μΌλ‘ solidityμ ν¨μλ public.
νμ§λ§ μ΄λ 곡격μ μ·¨μ½ν μ μμΌλ―λ‘ κΈ°λ³Έμ μΌλ‘ ν¨μλ₯Ό privateμΌλ‘ μ μν λ€μ, 곡κ°ν ν¨μλ§ publicμΌλ‘ λ리λ κ² λ°λμ§ν¨!
function _addToArray(uint _number) private {
numbers.push(_number);
}
function sayHello() public returns (string) {
return greeting;
}
μ sayHello()λ μ리λν°μμ μνλ₯Ό λ³κ²½νμ§ μμ.
κ°μ λ³κ²½νκ±°λ, 무μΈκ°λ₯Ό μ°μ§ μλλ€.
μ΄μ κ°μ ν¨μλ₯Όviewν¨μ
λ‘ μ μΈ !
λ°μ΄ν°λ₯Ό λ³΄κΈ°λ§ νκ³ , λ³κ²½νμ§ μλλ€λ κ²μ μλ―Έ
fuction sayHello () public view returns (string) {
pureν¨μ
: ν¨μκ° μ±μμ μ΄λ€ λ°μ΄ν°μλ μ κ·Όνμ§ μμfunction _multiply(uint a, uint b) private pure returns (uint) {
return a*b;
}
μ ν¨μλ μ€μ§ λ°νκ°μ΄ ν¨μμ μ€μ λ μΈμκ°μ λ°λΌ λ¬λΌμ§.
keccak256
: μ΄λ리μμ λ΄μ₯ ν΄μν¨μ
κΈ°λ³Έμ μΌλ‘ μ
λ ₯ μ€νΈλ§μ λλ€ 256λΉνΈ 16μ§μλ‘ λ§€ν
ν λ°ννκΈ°
uint8 a = 6;
uint b = 5;
// μ€λ₯λ¨!
uint8 c = a*b;
uint8 c = a * uint8(b);
bλ₯Ό uint8νμΌλ‘ λ³νν΄μ μ λλ‘ λ°νλκ² ν΄μΌν¨
μ΄λ²€νΈ
: λ΄ μ»¨νΈλνΈκ° λΈλ‘μ²΄μΈ μμμ μ‘μ
μ΄ λ°μνμ λ μμ¬μν΅νλ λ°©λ² μ΄λ²€νΈ μ μΈ
function add(uint _x, uint _y) public { uint result = _x + _y; // μ΄λ²€νΈ μ€νν΄μ μ±μκ² add ν¨μκ° μ€νλμμμ μλ¦°λ€ IntegersAdded(_x, _y, result); return result; }
μμΌλ‘ 컨νΈλνΈμ μνΈμμ©νλ μ¬μ©μ λ¨μ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό λ§λ€μ΄μΌ νλ€!
μ΄λ리μμ Web3.js
λΌλ μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μ§κ³ μμ