μκ°
μ΄ νλ‘μ νΈμ λν μμΈν λ¬Έμλ μ¬κΈ°μμ νμΈνμΈμ.
Truffle μ μ΄μ©ν μ μΆκΈ κ°λ₯ν μ΄λ리μ μνμ λλ€.
μ€λΉλ¬Ό
- Node.js
- Truffle
- Ganache
μ¬μ©λ²
λ¨Όμ Ganache
λ₯Ό 7545
ν¬νΈμ κ°λμν΅λλ€.
μ°λ¦¬λ νλ‘ νΈμλ μμ΄ μ½μ νκ²½ μ€μ΅ν©λλ€.
> truffle console
truffle(development)>
μ΄μ Deploy
ν Contract
μ μΈμ€ν΄μ€λ₯Ό λ³μμ μ μ₯ν©λλ€:
truffle(development)> Bank.deployed().then(instance => bank = instance)
Bank.deployed()
λ Contract
μ μΈμ€ν΄μ€ νκ°νλ νλ‘λ―Έμ€(Promise
)λ₯Ό λ°νν©λλ€. then
μ μ΄μ©νμ¬ μ°λ¦¬λ μ΄λ₯Ό bank
μ bind
ν©λλ€.
owner
λ©€λ² λ³μλ₯Ό νμΈν΄λ΄
μλ€:
> bank.owner()
'0xdaf72fcee99c3ed561b5f91a83b69c6f3d6b02e8'
Ganache
μ 첫 λ²μ§Έ κ³μ κ³Ό address
κ° λμΌν©λλ€!
μ΄μ μνμ 10 ETH
λ§νΌ μ
κΈμ ν΄λ΄
μλ€:
> bank.deposit({value: web3.toWei(10, 'ether')})
deposit
μ payable
ν¨μμ
λλ€. λλ¬Έμ μ ν¬λ value
λ₯Ό λ§€κ° λ³μλ‘ λ΄μ μ μμ΅λλ€. value
λ ETH
μ μ΅μ λ¨μμΈ Wei
λ₯Ό κ°μ§λλ€. λ°λΌμ web3.toWei
λ₯Ό ν΅ν΄ 10 ETH
λ₯Ό Wei
λ‘ λ³νν΄μΌν©λλ€.
μ΄μ Ganache
μ 첫 λ²μ§Έ κ³μ μ μμ‘(balance
)μ νμΈν©λλ€:
89.94 ETH
κ° λ¨μμ΅λλ€. μ 90.00 ETH
κ° μλκΉμ? μ΄λ Contract
μ ν¨μλ₯Ό μ€νμν€λ μμλ£(Gas
) λλ¬Έμ
λλ€. Gas
μ λν μμΈν λ΄μ©μ μ¬κΈ°λ₯Ό μ°Έκ³ νμΈμ.
μ΄μ μΆκΈν μ°¨λ‘μ λλ€:
> bank.withdraw()
첫 λ²μ§Έ κ³μ μ 10 ETH
κ° λ€μ λ€μ΄μμ΅λλ€!