Solidity 4

여러개의 modifier 적용 시 순서

솔리디티의 modifier는 한 함수에 여러개 적용이 가능한데 그 순서를 알아보자 아래의 예시를 살펴보겠습니다 contract Test { address owner; modifier onlyOwner { require(msg.sender == owner); _; } modifier costs(uint price) { if (msg.value >= price) { _; } } constructor() public { owner = msg.sender; } function changeOwner(address newOwner) public onlyOwner costs(10) { owner = newOwner; } } 여기서 먼저 앞에 나온 onlyOwner부터 적용이 됩니다 고로 [ onlyOwner의 _; ..

Solidity 2023.06.15

[오류 / Solidity] 크기가 정해진 배열에 push

uint256[3] public ageArray; function agePush(uint256 age) public{ ageArray.push(age); } 위와 같은 상황에서 agePush를 실행하면 오류가 날 것이다! 물론 배열 크기를 지정하지 않았다면 오류가 안 난다 TypeError: Member "push" not found or not visible after argument-dependent lookup in uint256[10] storage ref. --> infrun/lec1.sol:8:9: | 8 | ageArray.push(_age); | ^^^^^^^^^^^^^ ??? : 않이 크기는 지정했는데 아무것도 안 넣었거든여 빈 배열에 push 하는데 왜 오류가 남? 응 아니야, 크기를 ..

Solidity 2022.11.23

[오류 / Solidity] remixd : 이 시스템에서 스크립트를 실행할 수 없으므로 ...

vsc와 remix의 연동 과정 중에 이런 오류가 발생했다 windows에서 신뢰하지 않는 스크립트로부터 사용자를 보호하기 위한 실행 정책이라는 게 있나보다 그래서 리믹스 설치 이외에도 자주 발생하는 오류인 것 같다 해결방법 1. 먼저 실행 정책을 변경하려면 관리자권한이 있는 터미널을 켜줘야한다 start-process powershell ?verb runAs 위의 스크립트를 작업을 진행중이던 터미널에 복붙하면 관리자권한의 새로운 터미널이 뜬다 2. 새 터미널에 Get-ExecutionPolicy를 치면 Restricted 라고 뜨는데 이게 제한된 상태인 것 같다 3. 제한을 해제하기 위해 Set-ExecutionPolicy RemoteSigned 를 입력해서 터미널에 혼쭐을 내주자 4. 위의 사진처럼 ..

Solidity 2022.10.17