inflearn logo
강의

講義

知識共有

リアクトで実装するブロックチェーンイーサリアムDapp

コンパイル

현 시점에서 HelloWorld.sol 컴파일이 실행되지 않습니다.

353

ffulk11594918

投稿した質問数 1

0

'''

pragma solidity ^0.4.24;

contract HelloWorld {

string public greeting;

constructor(string _greeting) public{

greeting = _greeting;

}

function setGreeting(string _greeting) public{

greeting = _greeting;

}

function say() public constant returns(string) {

return greeting;

}

}

'''

위의 문법대로 하게 되면 컴파일 시 constant 부분에서 에러를 뱉어내어 컴파일 실습을 진행할 수 없습니다. Solidity 공식 문서에 가보게 되면 constant 부분에 view 로 대체하고, 변수자체를 string 이 아닌 uint를 사용하고 있습니다. 이와 같은 에러가 발생했을 시 어떻게 대처해야하는지 알고싶습니다.

react Ethereum truffle dapp

回答 2

3

papaya93499455

2년 뒤에 댓글을 달아봅니다. 최신 버전으로 설치해서 따라하시는 분들은 조금더 변경되는 게 있으니 이렇게 올려보세요.

pragma solidity ^0.8.0;

contract HelloWorld {
    string public greeting;

    constructor(string memory _greeting) {
        greeting = _greeting;
    }

    function setGreeting(string memory _greeting ) public {
        greeting = _greeting;
    }

    function say() public view returns(string memory) {
        return greeting;
    }
}

0

coldmind

  감사합니다!

0

coldmind

강좌 내용에도 있지만 솔리디티는 처음에 버전 프라그마라고 해서 컴파일러 버전이 지정되어 있습니다. 예제에 solidity ^0.4.24로 되어 있습니다. 그런데 트러플을 최근에 설치했다면 솔리디티 컴파일러가 0.5.x가 설치될 것입니다.
0.5로 바뀌면서 몇 가지 변경 사항이 발생하였습니다. 따라서 컴파일러 버전을 0.4.24로 바꾸거나 아니면 0.5.x로 바꾸면 현재 오류가 발생하지 않을 것입니다. 컴파일러 버전을 바꾸기 보다는 HelloWorld.sol을 0.5.x에 맞게 수정하는 것이 좋을 듯 하여 아래와 같이 수정하면 될 것 같습니다.
이미 수정하신 것처럼 constant는 view를 쓰는 것으로 바뀌었습니다. 잘 하셨습니다. 아마 에러 메시지를 보고 수정하신 것 같은데 그와 같이 문제를 하나씩 해결하는 자세가 중요합니다.

pragma solidity ^0.5.0;

contract HelloWorld {

    string public greeting;

    constructor(string memory _greeting) public{
        greeting = _greeting;
    }

    function setGreeting(string memory _greeting ) public{
        greeting = _greeting;
    }

    function say() public view returns(string memory) {
        return greeting;
    }
}

0.5로 바뀌면서 변경된 사항은 다음 링크를 참조하면 되는데 솔리디티를 처음 접하는 분들에게는 어려울 수 있습니다만 참고적으로 살펴보는 수준으로 알아두면 좋겠습니다. 강좌 소개글에 있는 것처첨 동전던지기 컨트랙트는 0.5에 맞추어 새롭게 작성되어 깃허브에 공개되어 있으므로 이를 활용하시면 되겠습니다.
https://solidity.readthedocs.io/en/v0.5.0/050-breaking-changes.html

outputStyle 설정하는데 어디서 문제일까요?

0

7

2

test.txt파일 삭제시 rm명령어이니 클로드의 질문이 있어야 한다고 하셨는데

0

5

1

검은화면

0

11

2

강의교환링크안열려요.....

0

12

1

영상재생에러 [확인부탁드려요!!!]

0

12

1

클로드 채팅에서 코드로 넘어가기

0

15

1

Context API vs Zustand 그리고 Auth

0

18

2

110강부터 따라가기가 힘듭니다...

0

33

1

커서에서 붙여넣기

0

17

1

깃허브 사용시 폴더경로 관련질문

0

14

1

[reducer] 기능별 폴더 구조 설계/ 파일 분리로 유지 보수 가능한 아키텍처 구축

0

13

2

순수 함수 / 순수 컴포넌트

0

15

1

스니펫이 이상해요

0

27

2

/output-style 명령어는 폐기 되었다고 나오네요.

0

36

1

프롬프트 작성시 html, css, javascript

0

29

1

truffle migrate --network development 입력했더니

1

562

1

truffle init을 하면 truffle.js파일이 만들어지지 않습니다.

1

385

2

파워쉘에서는 truffle unbox react가 안됩니다 ㅠㅠ

1

541

5

플립함수 구현관련 심화 문의드립니다.

1

315

2

리액트 상자에 트러플 의존성이 없습니다.

1

269

1

Mac 개발 환경 세팅 관련 문의

0

262

1

슬랙에 초대해주세요

0

245

1

hello.say() is not a function

2

332

3

deploy에러입니다

0

224

1