텍스트파일을 불러와서 배열에 넣을수있을까요

화이트리스트 설정하는 함수를 만들고 있는데 텍스트 파일에 있는 주소를
address배열로 집어넣을수있나요? 어떻게 하면 될지 모르겠습니다.

일달 array보다는 mapping 을 사용하시는것을 권장드립니다.

solidity contract 내부에
mapping(address => bool) private whitelisted
형태로 넣어주시고

컨트랙트에 addWhitelist 함수를 만드신다고 가정하면

function addWhitelist(address user) public onlyOwner {
whitelisted[user] = true;
}

이런식으로 구현하시면 되고, 내부에서 체크할때는

if 문이나 require 등으로 true 여부 확인하시면됩니다.

위의 addWhitelist 함수를 컨트랙트에 만들어서 발행하신 경우 node.js에서 텍스트파일에 있는 주소값을 string으로 불러와서 caver 로 컨트랙트 인스턴스 생성하신다음에 위의 메소드를 불러서 주소 하나씩 넣어주시면 됩니다.

질문에 답변되셨길 바랍니다. 감사합니다.

1 Like

@lorance.call

답변감사드립니다

그러면 array 보다 mapping을 권장하는 이유가 무엇인가요?

Array는 index를 이용해야하기때문에 주소로 화이트리스트 여부를 알기위해서는 루프를 돌려서 데이터에서 확인하셔야되는 반면 mapping을 쓰시면 주소가 화이트리스트 되어있는지 boolean 형태로 지정가능해 차후 수정도쉽고 검색도 용이합니다.

답변되셨길바랍니다.

1 Like