일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러스트 기초 학습
- Vue.js
- ethers websocket
- 머신러닝기초
- 러스트기초
- redux toolkit 설명
- 티스토리챌린지
- ethers v6
- 러스트 기초
- ethers typescript
- 계정추상화
- 스마트컨트렉트 함수이름 중복 호출
- Vue
- vue기초
- 스마트 컨트렉트 함수이름 중복
- rust 기초
- cloud hsm 사용하기
- cloud hsm 서명
- 체인의정석
- 스마트컨트렉트 예약어 함수이름 중복
- git rebase
- 컨트렉트 동일한 함수이름 호출
- ethers type
- redux 기초
- 오블완
- ambiguous function description
- cloud hsm
- erc4337 contract
- erc4337
- SBT표준
- Today
- Total
목록분류 전체보기 (526)
체인의정석

1. 먼저 git을 설치해 주어야 한다. git 설치하기 https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98 Git - Git 설치 이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0 git-scm.com 2. SSH 키 등록 만약 Permission denied (publickey) 이런오류가 나왔다면 SSH 키 등록을 해야한다. https://confluence.atlassian.com/bbkb/permission-denied-publi..
사용한 상황 DB 정합성 체크를 받아야하는 상황 + 보안 문제로 DB에 접근이 어려운 상황에 따라서 필요한 부분만 DB에서 뽑아내서 받아오는 관리자 API를 만들어야 하는 상황이다. 여러 서버에 접근해서 DB값을 뽑아와야 하는 상황. 또한 테이블과 데이터베이스가 꾸준히 변동되는 구조이다. 그러나 sequalize를 사용중이므로 자동적으로 db에 대한 정보가 경로상의 폴더와 파일명으로 업데이트 되기 때문에 따라서 먼저 각 DB별로 db정보를 읽어와 파일을 생성해주는 api, path를 가져오는 함수를 만들어 두었으며, 이를 통해 특정 블록번호 기준으로 데이터를 조회하는 기능과 내부적으로 파일을 생성한 후 해당 파일 하나 또는 전체 데이터에 대해서 파일로 가져오는 부분을 구현하였다. 이러한 기능들을 이용하면..
web3의 getPastEvents를 ethers에서 하려면 "query filter"를 사용하면 된다고 한다. 이걸 못찾아서 노가다를 했었는데 앞으로 이걸써야지 https://docs.ethers.org/v5/api/contract/contract/#Contract-queryFilter Contract Documentation for ethers, a complete, tiny and simple Ethereum library. docs.ethers.org // Get the address of the Signer myAddress = await signer.getAddress() // '0x8ba1f109551bD432803012645Ac136ddd64DBA72' // Filter for all to..

데이터의 양이 많아지게 되면 블록체인 데이터를 데이터베이스에 저장하게 된다. 이번에는 해당 데이터베이스의 누락 여부를 점검하고 데이터베이스에 대한 관리 권한을 이전하고 나서도 검토를 계속 할 수 있는 프로그램을 제작중이다. 처음에는 간단하게 점검만 하려다 보니 자동화가 필요해져서 자동화를 했는데 팀회의 때 보니 이를 자동화 시키는 프로그램이 필요하다고 했다. 나는 중간에 들어왔다 보니 잘 몰랐지만 아직까지 db적재 데이터의 검토 모듈이 없었다고 하여 이번에 설계를 하게 되었다. 어차피 혼자 하는 작업이라 설계 과정 없이 진행하려 했지만 다음의 2가지 이유로 설계서를 작성하였다. 1. 추후 이관 시 설명을 해야 함 2. 팀원 내부의 사람들에게도 공유를 해야 함 3. 상당히 복잡한 프로그램이 나올 것으로 예..
Tree 설치 방법 코드 작성 후 산출물 작성을 위해 설계한 경로를 tree형태로 뽑으려 했다. brew install tree 근데 아래 오류가 발생했다. /usr/local/Homebrew/Library/Homebrew/global.rb:15:in `require': cannot load such file -- active_support/core_ext/object/blank (LoadError) 이 경우 해결방안을 찾아보니 brew update-reset 이걸 해주라고 한다. 다시 설치하니 설치가 잘 된다. 이제 원하는 경로에 들어가서 tree 명령어를 치면 경로의 폴더와 파일들이 다 나온다. tree 해당 프린트 된 값을 기준으로 각 경로에 대한 설명을 써서 산출물을 만들었다. Tree 기능 설명..
이번에는 블록체인 데이터가 누락없이 저장되고 dev의 환경을 로컬에 다시 구현했을때 제대로 구현이 되고 누락된 사항이 없는지 체크하는 프로그램을 설계하고 구현하였다. 일단 각 데이터를 테이블별로 가져와서 json파일로 경로 생성 후 만들고 두 배열을 비교하는 모듈을 작성해서 두 배열을 비교했다. 이 경우 fs모듈을 통해 자유자재로 파일을 만들고 경로를 만드는 코딩이 필요했다. 이때 사용한 문법들을 아래에 정리해 보았다. fs 모듈 가져오기 var fs = require('fs'); makeFolder기능 const makeFolder = (dir) => { if(!fs.existsSync(dir)){ console.log("make folder in : ", dir) fs.mkdirSync(dir); }..
만약 class를 이용하여 객체 지향 코딩을 할 경우 클래스를 모듈 형태로 보낼 수 있다. 이때 클래스 자체를 모듈로 보내도 되지만 클래스 객체를 생성시키면서 모듈로 보낼 수 있다. Class A {} module.exports = new A(); 이런식으로 new를 써서 클래스 를 객체로 만들어서 보내주게 되면 해당 모듈을 가져와서 사용하는 코드에서는 const classA = require("../classes/클래스가있는파일"); classA.내장함수(); 이런식으로 사용할 수 있다. 이번에는 테스트 모듈을 만들 때 위와 같은 방법으로 각 클래스 형태로 만든 후 실행 파일에서는 클래스를 위와 같이 가져와서 사용하는데 썼지만 그 외에도 백엔드 구조를 여러 Class로 만들고 다룰 때도 유용하다.
Object key값에 변수를 넣고 싶다면 다음과 같이 가능하다. const Obj = { [변수] : value } 따라서 받은 입력 값을 기준으로 변수를 만들고 싶다면 다음과 같이 활용 가능하다. const keyA = `keyType{변수1}`; const keyB = `keyType{변수2}`; const Obj = { [keyA] : value1, [keyB] : value2 } 또한 해당 객체를 배열로 넣을 때도 똑같이 사용가능하다. 배열.push({[`${keyA}`]: value1, [`${keyB}`]: value2}); 이런식으로 하면 다양한 환경에서 해당 함수가 사용가능하도록 만들 수 있다.