Hardhat=framework (개발환경)근데 뭔가 해보려던 게 무산되었는데왜 설치가 제대로 실행 된건지 모르겠음수업에서 hardhat v2를 이용한다며 해당 코드를 줌. (v3와 큰 차이는없으나 처음 hardhat을 사용하는 학생 입장에서는 여러 오류가 발생할 수

Hardhat Document tsconfig.json hardhat.config.ts 이 필요하다고 하는데 이전 설정으로 인해 일단 파일은 생김.

(=와 태초마을이야~!)
= 자동인증..?지갑 만들 때 ecdsa 알고리즘 사용함타원곡선 알고리즘?orrsa 암호화 알고리즘? 유명하다고 함...==> 공개키&개인키가 나옴github에 공개키 등록, 개인키는 내 로컬에 가지고 있다가 인증함.키 위치 지정할 때 폴더 + 이름까지 포함해서 적어줘

Hardhat test파일 만들기여기에 있던 파일 중 contracts&test에 있는 Lock파일 지우기 + node_modules를 제외한 회색 폴더는 Lock파일에 의해 생성된 것이므로 지우기 (새로운 거 만들면 다시 생김..)node.js 파일을 만들어서 web
hardhat-ethers로 transaction 만들고 node 전송, 실행해보기 그냥 ethers로는 어떻게 하는지 1. hardhat-ethers에서 transaction 생성&실행 코드1 해당 코드1 작성 후 아래 코드 터미널에 작성하면 결과가 보인다 터

Solidity(솔리디티), smart contract(스마트 컨트랙트) prettier(프리티어) 적용하기 (prettier-plugin-solidity) (설명 비교적 자세함)Solidity Prettier 설정 (첫 글 참고해서 쓴 글)github (원본) :

contract 폴더 > MyToken.sol 파일 생성 Token : smart contract based ( - native token과는 다르지만 비슷하게 기능하는 것을 구현한다?) BTC, ETH.. : native token 해당 네트워크에서 발생한 수수료는
이전에 블록체인 공부를 하다가 네이티브 토큰과 스마트컨트랙트 기반 토큰이 있다고 배웠는데4-3. Token Contract 만들어보기무슨 차이인지 잘 모르겠어서 더 찾아봤다.찾아보니 저 두 개념을 부르는 명칭에도 꽤 차이가 있고, 토큰에도 생각보다 더 자세한 구분이 있
1\. Mytoken에 총 토큰/개인 토큰 파악 기능 더해보기2\. 테스트 해보기이전 코드에다가토큰 총 발행 개수와, 소유자-토큰 개수를 map타입으로 지정.. (?)\+@.map타입에 대해서는 따로 더 알아볼 예정 (typescript, javascript..등에서

git commit (변경사항 기록하기)토큰 발행 (mint)테스트\* git..이 처음이라 코드에 붙는 설명이 모호~할 수 있음...git commit에 대해 찾아본 내용 정리(추후첨부)쓰다보니 길어져서 따로 정리해두었다.일단 git 상태를 보고 확인할 수 있고..지
** 토큰 전송 (transfer) 함수 테스트 1. 토큰 전송 (transfer) 함수 코드1 transfer 함수만 추가 보내는 사람의 잔고가 충분한지 확인하고, (부족할 시 생기는 overflow를 보기 좋게 다른 오류로 보여줌) 보내는 사람 / 받는 사람 잔
** 함수 테스트 1. 코드1 설명 ㅇㅇ ㅇㅇ 터미널1 2. 테스트 코드2 "should have 0.5MT" signer1을 가져왔고, hre.ethers.parseUnits (또는 그냥 parseUnits)를 이용해 잔고를 확인했다. (이전 mint
** 이벤트 발생&확인 이벤트 활용 1. 이벤트 발생&확인 contracts 코드 event 만들기 필드에 (event 이름 + 매개변수)로 정의하는 함수와 유사한 구조.. event 발생 발생시키려는 곳에 (emit 이름 + 인자) 로 작성 test 코드 이
approve다른 사람이 내 토큰을 보낼 수 있게 허용하는 것 (allow spender address to send my token)잘 사용하면 편리하지만, 신뢰하지 못하는 사람에게 위임할 경우 매우 위험\[디센트] 지갑 UX 스토리 : “approve” 그 특별한
(이번에는 목차 아니고 내용)1\. TinyBank 구조 (인터페이스로 MyToken 사용 설정하기)2\. Stake 기능 구현하고, 작동 테스트MyToken : token balance managementthe balabce of TinyBank addressTiny
0\. 입금(withdraw) 기능1\. 보상 로직 (비효율ver.)2\. 보상 로직 (권장)어렵지 않아서 설명은 생략.. 나중에 봐도 충분히 이해할 것 같다마지막 코드 줄 제외하고 it 내부가 Staking 부분과 동일하다.해당 코드대로면 사용자가 많을수록 매번 계산

간단한 정리 함수의 동작을 변경할 수 있는 기능으로, 함수 전/후에 특정 행동을 넣어줄 수 있다. 정의할 때는 function @@ 대신 modifier @@으로 작성하고, 클래스 상속이나 인터페이스 구현처럼 함수 옆에 표시하여 사용한다. 본문에서 함수의 실행 위치를
Todo : 0-1) Rename distributeReward to updateReward 0-2) Division or modulo division by zero 오류 수정 1) 테스트 코드 작성 2) updateReward를 함수에서 modifier로 변경

Todo :0\. 기존 문제상황1\. access control (modifier 사용)2\. access control modulemint function 이전 7-2. TinyBank) 입금(withdraw) & 보상(reward) 기능에서 다뤘듯이,Staking
Todo :0\. 추가하려는 내용1\. access control module 사용2\. 기타 수정사항사용자의 증가, 시장 상황 변화 등으로 인해 rewardPerBlock을 변경해야 하는 상황에 필요한 setRewardPerBlock 기능을 만드려고 한다. 이렇게 코

Todo :0\. 기존의 access control 방식1\. access control module 추가2\. test코드 작성기존코드기존 코드를 보면owner, manager는 단 하나의 주소이고, 이 주소에게 토큰 발행부터 리워드 변경까지 모든 권한이 집중되는 것
| | 초기화 위치 | 가변 여부 | |:----------:|:----------:|:----------:| |constant | 선언 시 초기화 필수 | x | |immutable | constructor 에서 값 지정 필수 | x | 예시
Todo :0\. npx hardhat 명령어1\. Native Bank 2\. Withdraw 기능hardhat 설치 시 자동으로 test/node_modules/.bin 에 해당 기능이 설치가 된다고 한다.이렇게 쓸 수 있다는데....나는 안됨....이전의 MyTo
Todo :1\. Reentrancy Attack 방법2\. Reentrancy Attack 결과 (테스트)3\. 방어 방법참고\* balance = 블록체인 네트워크에서 관리하는 잔액\* balanceOf = 해당 컨트랙트 내의 잔액→exploit() 실행→ nb로
지금까지 solidity 프로그래밍으로 bank를 만들고, 여러 기능(입출금 및 staking..)을 구현해봤다.그리고 후반부로 갈수록 여러 기능들의 취약점과 보완법을 다루는 보안관련 내용을 배웠는데, 배우고 나서 느낀 점을 잊지 않도록 간략히 적어두려고 한다.사실 보

Todo :0\. vyper 환경 설정1\. compile 확인2\. MyToken 기본 기능 구현우분투 환경이라 hardhat-test 아래에 mkdir로 archived-Sol 이라는 파일 새로 만들어주고, 기존 contracts 파일 전부 옮김.근데 일단.. 다른

Todo :1\. Mint 함수 구현2\. 이벤트 구현3\. modifier 기능 구현기존의 "should retrun 100 totalSupply"와 동일하던 테스트코드를"should retrun initial supply + 1MT balance for signer

Todo :0\. 배포 확인1\. Stake & Withdraw 기능 구현2\. 이벤트 구현3\. reawrd & rewardPerBlock 변경 기능 구현3-1. Decentralized access control (분산형 접근 제어)로 변경 nonpayable찾아보

Todo :0\. 파일 정리1\. API 콜을 이용한 데이터 요청2\. Block explorer3\. 배포git mv 사용해서 사용하지 않을 파일 archived 폴더로 옮겨주고 (+이름변경)git checkout 사용해서 Decentralized access con

Todo :0\. 코드 수정 & 재배포1\. MetaMask2\. UI 연동 및 사용3\. 다음에 할 내용 :UI 기능에 맞춰서 코드를 일부 수정(추가)한 부분= 현재 리워드 확인하는 기능 추가= 테스트를 위해 mint함수를 실행하는 기능 추가= TinyBank 가 M