일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 스마트컨트렉트 함수이름 중복 호출
- 프록시배포구조
- ethers v6
- 티스토리챌린지
- ethers websocket
- 오블완
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트프록시
- 스마트컨트렉트테스트
- ethers type
- 컨트렉트 배포 자동화
- 러스트 기초 학습
- 러스트 기초
- Vue
- 스마트컨트렉트 예약어 함수이름 중복
- 체인의정석
- 컨트렉트 동일한 함수이름 호출
- rust 기초
- vue기초
- 머신러닝기초
- ambiguous function description
- chainlink 설명
- multicall
- ethers typescript
- nest.js설명
- ethers
- git rebase
- 러스트기초
- SBT표준
- Vue.js
Archives
- Today
- Total
체인의정석
SyntaxError: Identifier expected. 'const' is a reserved word that cannot be used here. 에러 해결 본문
블록체인/Solidity
SyntaxError: Identifier expected. 'const' is a reserved word that cannot be used here. 에러 해결
체인의정석 2024. 1. 8. 17:11728x90
반응형
원래 하드햇 기본 세팅대로 자동 생성된 hardhat confing.ts는 다음과 같다.
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
const config: HardhatUserConfig = {
solidity: "0.8.19",
};
export default config;
하지만 만약 ethers v6 를 사용할 경우 type-chain과정에서 다음과 같은 에러가 발생한다.
Generating typings for: 19 artifacts in dir: typechain-types for target: ethers-v6
An unexpected error occurred:
SyntaxError: Identifier expected. 'const' is a reserved word that cannot be used here. (4:18)
2 | /* tslint:disable */
3 | /* eslint-disable */
> 4 | import type * as const from './const';
| ^
5 | export type { const };
6 | import type * as interfaces from './interfaces';
7 | export type { interfaces };
at v (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/parser-typescript.js:1:14679)
at _H (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/parser-typescript.js:49:10722)
at Object.cH [as parse] (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/parser-typescript.js:49:11028)
at Object.parse (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/index.js:7515:23)
at coreFormat (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/index.js:8829:18)
at formatWithCursor2 (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/index.js:9021:18)
at /Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/index.js:38183:12
at Object.format (/Users/chohk/Desktop/git/web2x-vote/node_modules/prettier/index.js:38197:12)
at prettierOutputTransformer (/Users/chohk/Desktop/git/web2x-vote/node_modules/typechain/src/codegen/outputTransformers/prettier.ts:8:19)
at /Users/chohk/Desktop/git/web2x-vote/node_modules/typechain/src/typechain/io.ts:22:33 {
loc: { start: { line: 4, column: 18 } },
codeFrame: '\x1B[0m \x1B[90m 2 |\x1B[39m \x1B[90m/* tslint:disable */\x1B[39m\x1B[0m\n' +
'\x1B[0m \x1B[90m 3 |\x1B[39m \x1B[90m/* eslint-disable */\x1B[39m\x1B[0m\n' +
"\x1B[0m\x1B[31m\x1B[1m>\x1B[22m\x1B[39m\x1B[90m 4 |\x1B[39m \x1B[36mimport\x1B[39m type \x1B[33m*\x1B[39m \x1B[36mas\x1B[39m \x1B[36mconst\x1B[39m \x1B[36mfrom\x1B[39m \x1B[32m'./const'\x1B[39m\x1B[33m;\x1B[39m\x1B[0m\n" +
'\x1B[0m \x1B[90m |\x1B[39m \x1B[31m\x1B[1m^\x1B[22m\x1B[39m\x1B[0m\n' +
'\x1B[0m \x1B[90m 5 |\x1B[39m \x1B[36mexport\x1B[39m type { \x1B[36mconst\x1B[39m }\x1B[33m;\x1B[39m\x1B[0m\n' +
"\x1B[0m \x1B[90m 6 |\x1B[39m \x1B[36mimport\x1B[39m type \x1B[33m*\x1B[39m \x1B[36mas\x1B[39m interfaces \x1B[36mfrom\x1B[39m \x1B[32m'./interfaces'\x1B[39m\x1B[33m;\x1B[39m\x1B[0m\n" +
'\x1B[0m \x1B[90m 7 |\x1B[39m \x1B[36mexport\x1B[39m type { interfaces }\x1B[33m;\x1B[39m\x1B[0m'
}
해당 오류는 린터와 관련된 오류 같은데 아무리 찾아도 검색이 안된다. 다만 "typechain-types for target: ethers-v6" 해당 문구를 보았을때 ethers v6 그리고 type-chain이 키워드인 오류인 것을 볼 수 있었다.
최근
"@nomicfoundation/hardhat-toolbox"
해당 모듈이 잘 안먹히는 케이스가 많기 때문에 따로 ethers와 typechain을 받아와 보면 해결이 가능할까 싶어서
다음과 같이 ethers-v6 모듈을 따로 받아서 하니까 컴파일이 되었다.
import "ethers";
import "@typechain/ethers-v6";
export default {
solidity: "0.8.23",
};
해당 모듈의 경우 다음 링크를 통해 설치가 가능하다.
https://www.npmjs.com/package/@typechain/ethers-v6
실제로 위와 같이 해본 결과 사용할 수 있는 코드의 양이 너무 제한적이였다.
그리고 위의 에러는 결국 타입체인에서의 오류가 아닌 파일 경로에 const가 들어가 있어서 린터에서 잡는 에러였다.
*해결방안
경로에 const를 제거하고 다른 이름을 쓰니 오류가 풀렸다. => 오류 메세지가 위와 같이 린터일 경우 경로에 해당 단어가 있는지 살펴보자!
728x90
반응형
'블록체인 > Solidity' 카테고리의 다른 글
Solidity에서 bytes, bytes32 console.log로 찍는법 (0) | 2024.02.26 |
---|---|
solidity error : reverted with panic code 0x32, 동적 배열 사용시 발생하는에러 (0) | 2024.01.12 |
Solidity Create와 Create2 (0) | 2024.01.08 |
Types in storage containing (nested) mappings cannot be assigned to. (0) | 2023.12.29 |
VS코드 Solidity 필수 플러그인 모음(작성중) (0) | 2023.10.17 |
Comments