caver를 통해 contract를 여러개 배포할 수 있나요?
273
5 asked
직원 정보를 블록체인에 저장하는 bapp을 실습하고 있는데요
사장마다 smart contract를 하나 갖고 있어, 이 contract에 직원들의 정보를 저장하고 싶은데요...
여기서 여러 smart contract를 만들고 싶은데,
caver를 이용해서 사장마다 고유의 smart contract를 갖게 하는 방법이 있는지 궁금합니다.
Answer 2
0
안녕하세요. 이 방법보다 좀 더 효율적으로 솔리디티를 활용하시는 방법을 추천합니다. 사장마다 여러개의 컨트랙을 소유하기 보다 한 컨트랙에서 특정 계정(CEO)만이 직원정보를 추가하거나 볼 수 있게 해야하지 않을까요?
예를들어 매핑을 써서
struct Employee { string name;
uint age; }
mapping(address => Employee[]) ceoEmployees;
function addEmployee(string _name, uint _age) public { ceoEmployees[msg.sender].push(Employee (_name, _age));
}
function getEmployeeCount(address _ceo) public view returns (uint) {
return ceoEmployees[_ceo].length;
}function getEmployees(address _ceo) public view returns (string[], uint[]) {}
uint count = getEmployeeCount(_ceo);
address[] memory names = new address[](count.length);
uint[] memory ages = new uint[](count.length);
for (uint i = 0; i < count.length; i++) {
Employee storage employee = ceoEmployees[_ceo][i];
names[i] = employee.name;
ages[i] = employee.age;
}
return (names, ages);
매핑을 통해서 키값을 사장 계정으로 지정하고 값으로 직원정보 리스트를 불러오는 구조입니다.
getEmployees함수에서 직원이름과 나이 배열을 따로따로 불러와서 리턴하는 이유는 솔리디티에서 아직 struct를 리턴할 수 없기 때문입니다.
효율성을 높이기위해 한 컨트랙에서 진행해보세요. 솔리디티를 더 공부해보시는것도 좋은 방법입니다.
p.s. 위 코드 테스팅해보지는 않았습니다.
npm install 에러
0
507
0
truffle deploy --network klaytn
0
242
0
컴파일 에러
0
347
0
npm install 에러 납니다.
0
1026
1
npm install 삼일 내내 검색했는데 해결 못했습니다...
0
367
1
npm run dev 했는데
0
1051
2
deploy 실행파일
0
369
1
솔리디티 4.1.15 이상의 버전은 안되나요?
0
248
0
함수를 async를 사용하여 비동기로 작성한 이유가 궁금합니다.
2
335
0
truffle deploy에러 문의입니다 : >
0
428
0
IDE 인터페이스가 달라져 강좌를 계속하기 어렵습니다
3
451
3
실행이 안 됩니다.
0
304
2
truffle deploy --network klaytn 오류
0
291
2
아니..지금 쓰는거랑 아예 인터페이스가 다른데 강좌를 내리던가 해야할듯요
0
209
1
송금 이후 once transactionHash 쪽에서 에러 나는데 도움 부탁드려요.
0
201
0
유니티에서도 사용이 가능한가요?
0
256
1
강의 잘들었습니다. then은 되는데 on이 안되네요..
0
203
1
checkValidKeystore 함수 수정
1
189
0
invalid or does not take any parameters 오류 해결방법
1
454
1
컨트랙트 재배포 문의
0
362
1
정답 제출 및 클레이 받기 부분에서 질문있습니다.
0
167
1
npm install 에러 뜹니다. 방법 있으실까요?
0
719
1
truffle deploy --network klaytn 오류
0
209
1
상급강좌 설문조사
0
156
0

