일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트테스트
- ethers v6
- ambiguous function description
- SBT표준
- git rebase
- ethers typescript
- 티스토리챌린지
- rust 기초
- erc4337
- Vue.js
- ethers websocket
- chainlink 설명
- 러스트 기초 학습
- 컨트렉트 배포 자동화
- multicall
- 오블완
- 스마트 컨트렉트 함수이름 중복
- erc4337 contract
- vue기초
- 컨트렉트 동일한 함수이름 호출
- Vue
- ethers type
- 머신러닝기초
- ethers
- 체인의정석
- 러스트 기초
- 러스트기초
- 계정추상화
- 스마트컨트렉트 예약어 함수이름 중복
- Today
- Total
체인의정석
Solidity 0.5.0 version) 오류 해결 NomicLabsHardhatPluginError: You are trying to create a contract factory for the contract, which is abstract and can't be deployed. 본문
Solidity 0.5.0 version) 오류 해결 NomicLabsHardhatPluginError: You are trying to create a contract factory for the contract, which is abstract and can't be deployed.
체인의정석 2022. 1. 27. 14:26다음과 같이 오류가 나서 한참을 해메었다.
You are trying to create a contract factory for the contract, which is abstract and can't be deployed
Hello @mansijoshi17 if the compiler forces the contract to be marked as an abstract contract, that is because there are function that are defined and not implemented OR that you inherit from contract that have constructors with arguments, and that are not
forum.openzeppelin.com
해당 글을 보니 이는 상속받은 컨트렉트에 대한 생성자를 다 넣지 않는것과 같이 상속등을 잘 해결하지 않으면 컴파일러가 추상화된 컨트렉트로 여기는 증상이였다.
여기서 힌트를 얻어 상속받은 인터페이스를 보니 관리자 권한으로 실행이 되도록 만든 퍼블릭 함수가 인터페이스로 되어 있는 것을 볼 수 있었다. 인터페이스에서는 가져와서 바꾸고 회부에서 호출할 함수만 선택하여 남기도록 하였다.
이전에 퍼블릭 함수를 인터페이스에서 정의한 적이 있었는데. 인터페이스에서는 다른곳에서 상속에서 덮어쓸 함수 또는 다른곳에서 import해와서 조회 할 수 있는 view 계열의 함수만 있으면 된다. 이런식으로 인터페이스에서 필요한 항목들만 넣어야 하며 관리자 권한을 내부적으로 사용하고 관리자 개인 권한으로 사용할 경우 public 이더라도 인터페이스에는 추가하지 않는것이 좋은것 같다.