목록분류 전체보기 (40)
EPguy
아래 내용은 OpenZepplin 에서 설명하는 내용중 일부를 가져왔습니다. https://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-iii-the-function-selector-6a9b6886ea49/ Funstion Selector 란? Function Selector는 함수가 호출 됐을 때 EVM에서 호출된 함수가 어떤 함수인지 판단하고 그 함수를 실행시키는 역할을 합니다. 아래 BasicToken 컨트랙트 코드가 존재합니다. remix에서 totalSupply 메소드를 호출해보면 calldata로 0x18160ddd 가 들어간 것을 볼 수 있습니다. 여기서 0x18160ddd는 function signature 라고 불리는데요...
원인 아래 공식문서에 있는 내용을 따라하지 않으면 에러가 발생합니다. 해결방법 1. react-native-screens react-native-safe-area-context 라이브러리 설치 npm install react-native-screens react-native-safe-area-context 2. MainActivity.java 수정 아래 경로에 있는 MainActivity.java를 수정해야합니다. android/app/src/main/java//MainActivity.java 아래 코드를 추가해주세요. import android.os.Bundle;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(n..
uint8, uint32, uint256 등 해당 타입들은 최대 저장될 수 있는 비트의 수가 존재합니다. uint8 balance = 255;만약 위 balance 변수에 1을 더하게 된다면 어떻게 될까요? balance를 2진수로 표현하면 11111111 입니다. 여기서 1을 더하게 되면 비트의 수가 초과 되어 balance의 2진수 값은 00000000, 즉 0이 됩니다. 이것은 마치 오래된 차의 주행계가 최대 측정할 수 있는 주행거리를 넘어가게 되면 다시 0이 되는것과 비슷합니다. 우리는 이 현상을 overflow라고 부릅니다. uint8 balance = 0;그러면 반대로 위 balance 변수에 1을 뺀다면 어떤 값이 나올까요? uint는 unsigned int의 약자 즉 부호가 없기 때문에 양..
컨트랙트가 이더리움을 받기 위해서는 fallback 혹은 receive 함수가 있어야 합니다. 만약에 존재하지 않는다면 EVM 에서 에러를 던져 해당 트랜젝션을 revert 시킬 것 입니다. 그럼에도 불구하고 강제로 이더를 넣는 2가지 방법이 존재합니다. 저는 이 2가지 방법에 대해서 소개해 드릴려고 합니다. 혹시 이 글에 틀린 내용 혹은 추가 설명해야 할 내용이 있다면 댓글 부탁드리겠습니다 ! 1. selfdestruct 메소드 사용 selfdestruct 블록체인 내에 존재하는 해당 컨트랙트의 데이터들을 지워주는 메소드입니다. 이 때 컨트랙트에 이더리움이 있는경우 해당 컨트랙트가 지워지면 이더가 영구적으로 손실이 될 수 있습니다. 그런 실수가 벌어지지 않도록 이 메소드는 주소를 파라미터를 받고 그 주..
ObjectMapper를 사용할 때 클래스안에 클래스(이너 클래스)가 있는경우 해당 에러가 발생할 수 있습니다. 해결방법은 아래와 같습니다. Inner class에 Static 키워드를 추가한다 Inner class에 @NoArgsConstructor 어노테이션 혹은 파라미터가 없는 빈 생성자를 추가한다. 아래는 예시코드 입니다. import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.math.BigDecimal; @Getter @Setter public class Human { private Job job; private String name; private String age; @Getter @Se..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dgUirj/btsvncD7JoY/yLxsGGMM4WeFvZjvMQm6Dk/img.png)
1. 컨테이너 생성 docker run -d -it -p 8181:8181 -p 50001:21 -p 30001:30001 --name testFtp tomcat:8.5 먼저 원하는 이미지로 컨테이너를 생성합니다. 이 때 FTP에 필요한 포트도 개방해야합니다. 참고로 저는 톰캣서버도 올릴거라 톰캣이미지로 생성했습니다. 여기서 8181 포트는 톰캣서버로 연결될 포트, 50001번은 21번 포트로 연결되는 Command 포트, 30001포트는 Data 포트 입니다. 패시브 모드를 사용할 것이기 때문에 Data포트는 20번이 아닌 임시로 지정하였습니다. 이렇게 FTP에서 사용될 포트는 Command 포트 및 Data 포트로 총 2개입니다. 2. vsftpd 설치 docker exec -it testFtp ba..