# Smartcontract
Node.js에 Smart Contract 연결하기
Remix IDE에서 스마트 계약을 배포했는데, 이 계정의 개인 키는 어디있는지.Node.js에서 배포한 계약을 어떻게 사용하는지.onlyOwner가 붙은 함수들은 어떻게 접근할 수 있는지.

TIL 36 - 스마트 컨트랙트란?
블록체인 네트워크에 호스팅되고 실행되는 프로그램이다.조건을 지정해두고, 해당 조건이 충족되면 미리 정해둔 계약을 이행하는 방식으로 코드를 작성한다.1994년 닉재보(Nick Szabo)에 의해 만들어졌다."계약 조건을 실행하는 전산화된 트랜잭션 프로토콜"은 "일반적인

DASP TOP 10 - Reentrancy
하나의 거래를 요청한 후 아직 그 거래가 완전히 처리되기 전에 다시 거래를 요청함으로써 다중 처리를 유도하는 공격 방법
[블록체인 부트캠프] 11주차 5일 정리노트
노트정리 규칙스마트 컨트랙트를 설명할 수 있다.비트코인에서의 스마트 컨트랙트를 설명할 수 있다.UTXO의 동작원리를 이해할 수 있다.비트코인 스마트 컨트랙트의 한계를 이해할 수 있다.이더리움에서의 스마트 컨트랙트를 설명할 수 있다.EVM과 솔리디티를 이해할 수 있다.스

메타마스크 연동 클라이언트에서 컨트랙트 이용해보기 [토이 프로젝트]
실제로 클라이언트에서 어떻게 컨트랙트와 상호작용할 수 있는지 살펴보려고 한다. 특히 이번에는 이더리움 기반 지갑으로 유명한 메타마스크를 사용해봤다. 메타마스크를 통해서 로컬 이더리움 테스트넷의 주소를 가져와 사용할 수 있어서 더욱더 클라이언트 사용 시나리오에 근접할 수

[Blockchain] solidity 기초 문법
변수 선언 주요 자료형 정수형 int: 부호있는 정수 uint: 부호없는 정수 uint는 기본적으로 256비트 자료형으로, 보다 작은 자료형은 uint32, uint64 등으로 선언가능 bool - true/false address(주소형) 20바이트 크기의 자료형 컨트랙트의 주소를 저장할 때 사용(주소는 40자리의...

Hardhat으로 스마트컨트랙트 테스트 하기
hardhat https://hardhat.org/ 설치 및 실행 필요사항 Node.js 설치 실행 node 에러 FATAL ERROR: wasm code commit Allocation failed - process out of memory mac m1
집금 기능 API 설계
"집금지갑 생성 생애주기를 변경!""발급 생애주기를 집금과 동일하게 만든다!"발급 - create생성 - deploy집금 - collect폐기 - destroy각 생애주기별로 요구사항 분석 후, api 설계

멀티콜(multiCall)
솔리디티의 DelegateCall을 이용하면 트랜잭션이 다른 트랜잭션을 만들 수 있는데, 이걸 for문으로 수차례 실행하면 한 트랜잭션이 다차례의 트랜잭션을 만들 수 있다.컴파운드(?)였나 어디서 멀티콜 컨트랙트를 메인넷 종류별로 다 배포해놓고 주소를 적어놔서 그 주소

Gas Fee? EOA? CA?
가스비란? 간단하게 정의하자면 자동차도 연료라는 것이 있어야 동작을 하듯이, 이더리움 블록체인 네트워크에서 코인을 다른 곳으로 전송할때 일어나는 수수료를 뜻한다. "가스는 스마트 계약의 코드 난이도가 높거나 저장 공간이 넓을 수록 더 많은 비용을 지불해야합니다. 그래
Create2 란?
애초에 블록체인 네트워크 세상에서 해쉬란 굉장히 중요하다. 모든 컨트랙트들도 하나의 고유의주소를 가져야 하기 때문에 고유값이란 매우 중요한 개념이다.먼저 기존에 많이 사용되는 "create"를 예로 들어보자.CREATE는 msg.sender의 address와 msg.s
[솔리디티] 블랙리스트, 캐시백
부정사용자는 거래 할 수 없도록 하는 기능 추가블랙리스트에 기록된 주소는 입출금 불가소유자만 블랙리스트에 추가 및 삭제 가능소유자 여부는 주소로 식별하며, 계약을 생성할 때의 주소를 소유자로 설정블랙리스트 관리용 변수 추가블랙리스트 추가/삭제 권한을 가진 소유자 주소용
[솔리디티] 이벤트 선언, 생성자
정보가 들어있는 특정 이벤트만 들고 와야하는데, 그럴때 쓰는게 indexed즉, indexed를 써줌으로써 블록들안에 출력된 이벤트들을 필터하여 저희가 원하는 이벤트만을 가지고 올 수 있다.트랜잭션의 로그를 출력이더리움 wallet 과 같은 클라이언트가 계약 중 발
[솔리디티] 가스(Gas)
솔리디티로 작성된 컨트랙트를 배포하거나, 컨트랙트 내 함수를 실행할 때마다 가스라고 불리는 화폐를 지불해야 함컨트랙트 또는 컨트랙트 내 함수가 얼마나 복잡한지에 따라 배포 및 실행에 필요한 가스의 양이 달라짐솔리디티의 각 연산이 요구하는 가스 비용이 있고, 그 연산을
[솔리디티] Payable, OpenZeppelin, onlyOwner
State Mutability를 결정하는 함수 제어자 중 하나함수 호출 시 이더(eth)를 송금해야 하는 경우 사용하는 키워드안전한 블록체인 애플리케이션을 목적으로 하는 표준 라이브러리를 제공OpenZeppelin 의 Ownable 컨트랙트 사용Ownable 컨트랙트는
[솔리디티] 상속, import, Data Location, Interface
객체 지향 언어에서 사용하는 개념과 동일상속, 추상화, 인터페이스, 함수오버로딩, 오버라이딩 지원contract 자식 컨트랙트 is 부모 컨트랙트 {} 형태로 선언하나의 솔리디티파일에 여러 컨트랙트를 정의 할 수 있음너무 긴 코드를 모듈 단위로 분리하거나 외부 라이브러
[솔리디티] 이벤트, Mapping, msg.sender, require
이벤트를 지정하고 특정 함수 내에서 이벤트를 발생시키면 앱의 사용자 단에서 해당 이벤트를 listen 할 수 있음event 이벤트명(매개변수, ...) 형태로 선언emit 이벤트명(매개변수, ...) 형태로 이벤트 발생Json과 같이 key:value 형태로 구조화된
[NFT]Remix 이용하여 Contract 설정
https://ide.klaytn.com 접속Compiler 버전 0.5.17 으로 설정KIP-17 의 표준 Solidity version은 5점대이기 때문cypress = constantinoplebaobab = istanbul