질문있습니다.
289
작성한 질문수 1
세일종료후 컨트랙트에 남은 토큰은 어떻게 빼내나요?
답변 1
0
안녕하세요 ana teanon 님 !
세일 종료후 CA(Contract Account) 어드레스에서 돈을 뺄 수 있는 방법을 질문 해주셨는데요..
질문의 소스가 만약 제 강의의 CrowdSale이라고 한다면 최초의 Constructor 에서 wallet으로 설정되어있는 크라우드 세일 모금 지갑 주소로 자동으로 보내지기 때문에 별도의 CA에서 출금을 할 필요는 없습니다. 토큰을 유저가 사는 순간 초기에 설정되어있는 wallet으로 가니까요~ 해당 소스에서 보시면
constructor(uint256 _rate, address _wallet, ERC20 _token) public { require(_rate > 0);
require(_wallet != address(0));
require(_token != address(0));
rate = _rate;
wallet = _wallet;
token = _token;
}
Constructor 선언부에 토큰을 구매했을 때 바로 wallet 주소에 들어갈 거구요... 해당 wallet은 사용자가 buyTokens 를 했을 때
function _forwardFunds() internal { wallet.transfer(msg.value);
}
위의 wallet 주소로 transfer 됩니다. 고로 CA 에는 ether가 남아있지 않을 것입니다. 바로바로 보내주기 때문에...
다른 한편으로, 질문이 CrowdSale이 저 형식이 아닌 다른 형식으로 CA에 ether를 보관한다면 향후 CA를 만든 Owner의 EOA 주소를 상태 변수에 setting을 해주고 Owner만이 출금을 할 수 있도록 아래와 같이 function을 추가해주시면 될것같습니다.
function withdrawFund() public { require(msg.sender == owner); // 이 require는 OpenZeppelin에서 배포한 Ownable.sol을 참조하면 좋을듯합니다.
owner.transfer(this.value); // owner는 EOA 계정이여야합니다
}
위의 방법이 가장 적합한 방법일 것 같습니다. 답변이 제대로 되었는지 모르겠는데요
궁금한 거 있으시면 다시 질문주세요!
ova 구글 드라이브 404
0
45
1
질문이요
0
84
1
질문이요
0
91
1
가상머신에서 메타마스크 실행 안됨
0
419
0
9분30초대에 ip.info.value(msg.value) 부분이요 왜100이리턴되는건지 다시한번 설명 부탁드립니다. info에서 100이 리턴되고 100.value(msg.sender) 이렇게될텐데 이해가 안됩니다
0
174
0
라이트닝 네트워크란
0
252
0
geth 네트워크 구성 후 이더 채굴중인데 속도가 너무 느립니다.
0
281
0
https://cryptokiwi.kr/currency?id=btc&category=3&content_id=228
0
225
0
sourceCompiled가 정의되지 않았다고 나옵니다.
0
300
1
BlockChain.ova.zip 파일이 열리지 않습니다.
0
389
1
Windows PowerShell로 실습하시는 분은 다음의 curl 명령어를 써 주세요
0
771
0
우분투 버전
0
324
1
머클 트리 자료주소 Error 404
0
271
1
감사합니다. 환경세팅을 마쳤습니다.
0
252
1
이더 전송시 콘솔창에서 다음과 같은 에러가 납니다.
0
351
1
4.geth 환경 설치 및 구동 문서(?)는 어디있나요
0
247
0
질문드립니다.
0
352
2
부탁드려요~!
0
339
4
Blockchain.ova가 안열립니다.
0
630
7
질문이 있습니다~
0
754
12
영상이 안나와요~
0
259
3
주문후 입금했습니다. 입금확인부탁드립니다.
0
235
1
주문후 입금했습니다. 입금확인부탁드립니다.
0
181
0
스마트 건트랙트는 무엇인가요?
0
271
2





