| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- rust 기초
- cloud hsm 사용하기
- 계정추상화
- 스마트컨트렉트 예약어 함수이름 중복
- ethers type
- Vue
- erc4337 contract
- 머신러닝기초
- 컨트렉트 동일한 함수이름 호출
- redux toolkit 설명
- 오블완
- 체인의정석
- git rebase
- 러스트기초
- 스마트 컨트렉트 함수이름 중복
- Vue.js
- 러스트 기초 학습
- cloud hsm
- redux 기초
- cloud hsm 서명
- 러스트 기초
- erc4337
- ethers typescript
- ethers websocket
- 티스토리챌린지
- SBT표준
- 스마트컨트렉트 함수이름 중복 호출
- ethers v6
- vue기초
- ambiguous function description
- Today
- Total
목록분류 전체보기 (531)
체인의정석
들어가기에 앞서 지난 시간에 우리는 러스트의 주요 컨셉인 statement와 Expression에 대해서 살펴보았다. 이번 시간에는 rust의 주요 개념인 ownership에 대해서 알아보도록 하겠다. rust의 ownership을 사용하면 가비지 콜렉터 없이도 메모리의 안정성을 보장 받을 수 있다고 한다. Ownership은 뭘까? 오너쉽은 러스트 프로그램이 메모리를 관리하는 규칙이라고 할 수 있다. 모든 프로그램들은 해당 프로그램이 컴퓨터의 메모리를 관리하는 법을 알아야 한다. 몇몇 언어들은 가비지 콜렉션이 지원되어서 더이상 안사용되는 메모리들을 정리해준다. 또는 유저들이 직접 할당을 하고 free 시켜주고 있다. 러스트는 제3의 길을 선택하였다! 그것은 바로 메모리를 오너쉽 시스템을 통해 관리하고 ..
Control Flow 조건이 참일때 코드를 반복적으로 돌리는 행위는 가장 기본적인 프로그래밍 기법으로서 러스트에서는 if와 loop가 가장 대표적이다. IF 표현 if 표현은 조건이 맞으면 코드가 돌아가고 안맞으면 안돌아가는 기초적인 프로그래밍이다. branches라는 경로를 만들고 한번 진행해보도록 하겠다. ➜ functions (master) ✗ cargo new branches Created binary (application) `branches` package 기본적인 if 문은 다음과 같이 만들면 된다. fn main() { let number = 3; if number < 5 { println!("condition was true"); } else { println!("condition wa..
기본 함수 기본 함수는 다음과 같이 정의한다. fn main() { another_function(5); } fn another_function(x: i32) { println!("The value of x is: {x}"); } 이런 식으로 정의를 하게 되면 ➜ functions (master) ✗ cargo run Compiling functions v0.1.0 (/Users/chohk/Desktop/git/rust/functions) Finished dev [unoptimized + debuginfo] target(s) in 0.84s Running `target/debug/functions` The value of x is: 5 이런 결과가 나오게 된다. 여러 변수의 정의는 그냥 일반적인 함수와 ..
기본 데이터 타입 러스트의 모든 값들은 데이터 타입을 가지고 있다. 컴파일 하는 시점에서 타입들에 대한 정의가 이루어지지 않는다면 모두 에러가 나게 되는 것이다. let guess: u32 = "42".parse().expect("Not a number!"); 요런 식으로 : 뒤에 타입을 쓰면 타입이 지정된다. 타입스크립트와 똑같이 생겨서 익히기 쉬웠다. 타입지정을 안하면 다음과 같은 에러가 나오게 된다. $ cargo build Compiling no_type_annotations v0.1.0 (file:///projects/no_type_annotations) error[E0282]: type annotations needed --> src/main.rs:2:9 | 2 | let guess = "42..
변수와 가변성 그리고 mut 먼저 변수를 한번 테스트 해보겠다. ➜ rust cargo new variables Created binary (application) `variables` package 이런식으로 명령어를 내리게 되면 variables라는 경로가 나오게 된다. fn main() { let x = 5; println!("The value of x is: {x}"); x = 6; println!("The value of x is: {x}"); } 이런식으로 let으로 선언한 후 다시 접근하여 변수를 변경하려 할 경우 error[E0384]: cannot assign twice to immutable variable `x` --> src/main.rs:4:5 | 2 | let x = 5; | -..
컨트렉트 개발자로서 이제 Rust도 학습해보고자 한다. 이에 따라서 기본적인 학습을 진행하였다. mac 환경에서 설치 공식 도큐먼트 사용 https://doc.rust-lang.org/book/ch01-01-installation.html Installation - The Rust Programming Language The first step is to install Rust. We’ll download Rust through rustup, a command line tool for managing Rust versions and associated tools. You’ll need an internet connection for the download. Note: If you prefer not to..
https://www.npmjs.com/package/solidity-docgen solidity-docgen Documentation generator for Solidity smart contracts.. Latest version: 0.6.0-beta.34, last published: 13 days ago. Start using solidity-docgen in your project by running `npm i solidity-docgen`. There are 27 other projects in the npm registry using solidit www.npmjs.com 오픈제플린에서 만들었으며, 주석을 잘 달아놓을 시에 문서도 잘 나오는 것을 확인할 수 있었다. 1. 설치 npm i ..
https://tech.elysia.land/hardhat%EA%B3%BC-typechain%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8-%EA%B0%9C%EB%B0%9C-d7e8fc66d1d2 hardhat과 typechain을 사용한 컨트랙트 개발 많은 dApp 프로젝트는 Truffle을 사용한다. Elysia에서도 기존의 스마트 컨트랙트 개발을 Truffle로 진행했다. Truffle은 solidity를 비롯한 블록체인 개발에 있어서 테스트 환경 구축, 배포 등 다양한 기능 tech.elysia.land 1. 타입스크립트를 사용하면 테스트 코드에서 타입을 가져와서 사용할 수 있다. 2. ethers에서 함수를 사..