ERC20과 프론트엔드 연결 테스트 코드 질문입니다.
안녕하세요! 강의 너무 유익하게 잘 수강하고 있습니다!
다름이 아니라 ERC20과 프론트엔드 연결에서 3번째 테스트 코드 관련 질문입니다.
openzeppelin 레포지토리에서 ERC20 코드를 보면 transfer 함수의 인자로는 to와 amount, 2개가 있음을 확인할 수 있습니다.
그런데 강의에서 사용하신 테스트 코드에는 {from : accounts[0]}와 같은 3번째 인자가 있어서 의문이 들었습니다.
공식문서를 찾아봤는데도 3번째 인자에 관해서는 보이지 않는데 혹시 이 3번째 인자의 정체를 알 수 있을까요?
Answer 1
1
안녕하세요 :)
강의가 유익하다고 하시니 감사합니다 :))
간다하게 말씀드리면, 어떤 주소가 트랜잭션을 줄것인지를 나타 냅니다. 즉 {from : accounts[0]} 는 accounts 배열의 0번째 인덱스 주소가 트랜잭션을 보내게 됩니다.
사실 {from : accounts[0]} 을 따로 안써주셔도, 기본값으로 accounts[0] 이 트랜잭션을 보내개 됩니다. 그런데 {from : accounts[1]} , {from : accounts[2]} 와 같이 쓸 날이 있을거 같아서, 위와 같이 따로 명시를 해주었습니다.
좀 더 자세히 볼게요,
여기 테스트 코드를 보시면,
contract("Erc20Token Test", async (accounts) => {
...
}
accounts 가 보이시죠,
저희가 가나슈와 연동해 테스트를 하면, 10개의 주소를 부여 받게됩니다. 그 10개의 주소가 accounts 안에 있다고 생각하시면 됩니다.
배열 형태와 같이 있게 되겠죠 , 예를 들어 [주소1, 주소2, 주소3..., 주소 10] 와 같은 형태로 있게 됩니다.
저희가 테스트넷에서 배포를 할 때,
contract("Erc20Token Test", async (accounts) => {
...
erc20TokenInstance = await Erc20Token.new( tokenName, tokenSymbol, totalSupply );
...
}
와 같이 한다면, {from:accounts[0]}을 명시 안해도, 자동적으로 account[0]이 배포를 하게 됩니다.
만약에,
contract("Erc20Token Test", async (accounts) => {
...
erc20TokenInstance = await Erc20Token.new( tokenName, tokenSymbol, totalSupply
,{accounts[1]} );//<- accounts의 인덱스1번째 주소가 배포
...
}
와 같이 {accounts[1]} 한다면, accounts의 인덱스 1번째에있는 주소가 배포하게 됩니다.
이와 같이,
await erc20TokenInstance.transfer( accounts[1], web3.utils.toWei("1", "ether"), { from: accounts[0] } );
accounts의 0번째 인덱스가 transfer이라는 트랜잭션을 보내게 됩니다. 그러나,
await erc20TokenInstance.transfer( accounts[1], web3.utils.toWei("1", "ether") );
아래와 같이 { from: accounts[0] }를 안써주셔도 기본값으로 accounts[0]이 트랜잭션을 보내게 됩니다. 저는 일부러 여러분들이 이러한 기능이 있는것을 인지하도록 계속 강의에서 썼습니다 :)
그래서, 만약에 accounts[9]로 transfer함수를 보내고 싶다면,
await erc20TokenInstance.transfer( accounts[1], web3.utils.toWei("1", "ether"),{accounts[9]} );
를 해주시면되겠죠 :)
궁금한점이 해결되었으면 합니다 :)))
2025년으로 업데이트된 이더리움 마스터링 강의 내용에 대한 문의
0
51
2
실습하는 영상은 없는 건가요?
0
78
3
ova 구글 드라이브 404
0
45
1
LAYER2
0
92
1
Web3.js1
0
125
2
컴파일 및 배포
0
175
1
컴파일 및 배포
0
190
4
rinkeby testnet 사용
0
134
1
강의 업데이트 문의
1
498
1
fallback
1
443
1
pure view
1
450
1
SafeMath 함수
1
560
1
솔리디티
1
445
1
안녕하세요 강사님 질문이 있습니다
1
312
1
function 매개변수에 관한 질문이 있습니다
1
326
2
가스비 질문이 있습니다
1
357
2
Ownable에 대해서 질문이 있습니다
1
350
1
ERC20과 프론트엔드연결 지갑 변경 관련 질문 입니다!
1
367
2
migration 질문
0
560
1
Chai와 Chai BN강의 부분이 50분 강의로 되어 있습니다.
0
231
1
강의가 일부분 누락되어 있습니다(해결)
0
226
1
truffle react box 질문입니다
0
309
1
expect 테스트가 정상적으로 동작하지 않습니다
1
192
1
솔리디티 깨부수기 강의 순서
1
198
1

