일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 솔리디티
- ETH
- 카카오홈페이지클론
- Klaytn
- 페이지클론
- 카카오페이지클론
- ERC721
- 정보처리기사
- solidity
- npm
- 비트코인
- React
- Non-Blocking
- 정보처리기사실기요약
- it5
- node.js
- web3.js
- ERC-721
- it5분잡학사전
- git
- 2021정보처리기사실기
- 이더리움
- 콜백함수this
- 노개북
- 노마드코더
- github
- 클레이튼
- 블록체인
- 정보처리기사실기
- blockchain
- Today
- Total
목록BlockChain (26)
Be lazy, Be crazy
런치패드 가상자산 투자자가 비전 있는 블록체인 프로젝트를 초기 단계에 발굴해 해당 프로젝트의 에어드랍을 받을 수 있는 기회가 주어지는 것을 뜻한다. 이전에 벤처 자본가와 기타 대규모 투자자에게만 제공됐던 기회를 일반 투자자에게도 제공하는 것이 가장 큰 특징이다. http://www.engjournal.co.kr/news/articleView.html?idxno=1723 요즘 뜨는 가상자산, 블록체인 프로젝트 ‘런치패드’는 무엇? - 공학저널 [공학저널 전찬민 기자] 가상자산과 블록체인 프로젝트에 관심이 많은 사람들은 한번쯤 들어봤을 법한 용어가 바로 ‘런치패드(LaunchPad)’다. 현재 런치패드가 업계에서 뜨거운 감자로 떠오르며 www.engjournal.co.kr 참조자료
오늘은 Solidity에서 사용되는 struct 구조체에대해서 간단하게 정리해 보려고합니다. 구조체라고 하면 사실 못알아 먹는 사람들이 더 많을 것 같다고 생각이됩니다. 예를 들어서 설명하는 습관은 나쁘다고 생각하지만 저 같은 초보자들에게는 처음에는 예시가 있어야 추상적인 개념들이 좀더 이해가 쉽기 때문에 예를 들어서 설명해보도록 하겠습니다. 우선적으로 타입스크립트를 공부해 보신분들이라면 Type을 만들어주는 작업이라고 생각하면 될것같습니다. --- typeScript --- type Person = { name:string, age : number } 이런식으로 작성하게 되면 Person이라는 타입으로 명시하게되면 위와같은 것만 사용해야 합니다. Person이라는 타입을 만들게되면 나중에 100명의 사..
저번시간에는 반복문과 반복문에서 값을 제거하는 방식을 공부했습니다. 전 post를 참고하시면 됩니다. 이번 post에서는 간단하게 자주사용하는 mapping과 이 mapping을 읽어오는 방식에 대해서 공부를 해보았습니다. // Mapping // How to declare a mapping (simple and nested); // Set, get, delete contract Mapping { mapping(address => uint) public balances; mapping (address => mapping(address => bool)) public isFriend; function examples() external { balances[msg.sender] = 123; uint bal =..
💡 오늘은 저번 post에 이어서 배열을 삭제하는 방법에 대해서 공부한 내용을 정리해 보려고합니다. 잠깐 저번시간에 작성한 solidity 코드를 자세히 보면 delete라는 부분이 있었습니다. [1,2,3] 이렇게 작성되어있는 코드에 delete[0]을 하게 되면 [0,2,3] 이런식으로 변경됩니다. 즉 배열을 삭제하고 길이을 줄이는 것이 아니라 해당되는 index의 값을 default값(solidity에서 uint의 default값은 0입니다.)으로 변경해줍니다. 이번 post에서는 [1,2,3] => [2,3] 이렇게 공간자체를 삭제하는 방법에 대해서 기록해보겠습니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; contract ArrayShi..

솔리디티에서 Array는 어떤형식으로 작성되는지 간단하게 알아보는 글이다. ### 내가생각하기에 중요한 점은 어떻게 memory 배열에 크기를 설정하고 값을 담는지가 중요한것 같다. ### 기본적으로 동적으로 배열크기를 만들 수 있고 VS 고정적으로 배열의 크기를 지정할 수있다. ### 다른 언어와 마찬가지로 배열 크기를 설정하고 값을 집어넣는 방식은 어렵지 않다. ### 배열변수이름.push(인자) 다른 언어에서 보는것과 마찬가지로 비슷한 형태 배열변수이름.pop() 맨 마지막 인자가 사라진다. ### 다른 언어와 다르게 delete 라는 함수를 사용할 수 있고 할당되어 있는 값을 0으로 초기화 시킨다. ### 보통배열은 storage에 저장이 되는데 함수안에서 memory형태로 배열을 선언할 수 있다..

💡 솔리디티에서 return은 어떤 형식으로 될까?? FunctionOutputs 말그대로 솔리디티 문법에서 return을 사용할 때 어떻게 return이 되고 어떤 형식으로 되는지 알아봅시다. // 대략적으로 3가지 형식이 있다. // 보통 언어와 비슷하게 function returnOne () public pure returns(uint){return 1;} 이런형식으로 1개를 리턴 // 조금 신기하게 여러개를 return 할 수도 있다. function returnMany() public returns(uint, bool){ return (1, true);} 이와같은형식으로 2개를 리턴 주의할점은 ## returns (타입,타입) 을입력해줌으로써 이함수는 어떤 타입을 return 할 것인지에 대해서..
modifier함수를 사용하는 이유는 무엇일까? 일단 자주 사용하는 조건문에대한 반복을 막을 수 있다. A,B,C 함수에 x=10이면 함수사용을 거부한다라는 조건을 각각에 넣기 보다는 x=10이면 거부해주는 함수 하나를 만들어서 재사용하는 것이 훨씬 좋다고 생각이 든다. 밑에 코드를 참조하면 더 쉽게 이해가 가겠지만, 1. Basic은 modifier을 만들고 사용되어야하는 함수부분에 추가해주는것이다. 이때 인자값이 필요가없는 경우다. 2. input은 위 1번과 같은경우지만 modifier에 인자가들어가야 하는 부분이다. function incBy(uint _x) external whenNotPause cap(_x) modifier을 연달아 사용가능하며 필요하다면 인자값도 전달해줄 수 있다. 3. sa..
솔리디티에서 error을 작성할 수 있는 몇가지에 대해서 코드로 봐보자! 여기서 나도 처음 보았던 것은 error를 커스텀 할 수 있다는것이다. error MyError(address caller, uint value); 이런식으로 말이다. 자세한 내용은 밑에 코드를 보고 remix에서 실행시켜보면 이해가 될 것이다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; //require, revert, assert // gas refund, state updates are reverted // custom error - save gas contract Error { function testRequire(uint _i) public pure{ require(..
간단하게 솔리디티언어로 반복문을 작성해보았습니다. js나 파이썬 등에서는 100만번을 돌려도 상관없지만. 솔리디티는 가스비가 나가기 때문에 최대한 불피요한 반복을 줄여서 가스비 절감합시다~~ continue는 i 값이 3일때 코드실행안하고 i=4로 바로 넘어가게 됩니다. break는 i=5일때 반복문을 끝낸다는 말입니다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; contract ForAndWhileLoops { function loops() external pure { for(uint i=0; i< 10; i++){ if( i == 3){ continue; } if( i == 5 ){ break; } } uint j = 0; while (j < ..