일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- multicall
- 러스트 기초 학습
- ethers type
- vue기초
- ambiguous function description
- 체인의정석
- Vue
- ethers v6
- 계정추상화
- 스마트컨트렉트 예약어 함수이름 중복
- ethers websocket
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- 러스트 기초
- erc4337 contract
- erc4337
- ethers typescript
- SBT표준
- 컨트렉트 배포 자동화
- 스마트컨트렉트테스트
- ethers
- 스마트 컨트렉트 함수이름 중복
- chainlink 설명
- 컨트렉트 동일한 함수이름 호출
- 오블완
- git rebase
- rust 기초
- 러스트기초
- 머신러닝기초
- 티스토리챌린지
- Today
- Total
목록개발 (254)
체인의정석

1. Nest.js 설치코드 1. Nest 설치 npm install -g @nestjs/cli 2. 설치확인 nest --version 3. netst new "프로젝트이름" 해당 명령어를 쓰게 되면 express generator 처럼 알아서 기본 틀이 만들어지게 된다. nest new cassandra-server ⚡ We will scaffold your app in a few seconds.. ? Which package manager would you ❤️ to use? (Use arrow keys) ❯ npm yarn pnpm 생성된 파일구조는 다음과 같음을 확인할 수 있었다. src/: 소스 코드가 위치하는 주 디렉토리. app.controller.ts: 애플리케이션의 컨트롤러. 요청을 처..
명령어 1. brew 로 카산드라 설치 brew install cassandra 2. cassandra 시작 brew services start cassandra 3. 카산드라의 쿼리 언어인 CQL 사용 Cassandra Query Language (CQL): Cassandra uses CQL for queries. You can interact with Cassandra using the CQL shell (cqlsh). cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5] Use HELP for help. cqlsh> 4. 콘솔에 들어가졌다면..
zsh: command not found: nvm 오류는 nvm (Node Version Manager)이 시스템에 설치되어 있지 않거나 zsh 쉘 설정에서 제대로 로드되지 않았음을 나타냅니다. 설치: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 2. 파일 에디터 열기 vi ~/.zshrc 3. 다음 줄을 추가한 후 wq를 써서 저장 export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR..
1. 인덱싱 체크하기 먼저 인덱싱은 조건 절에 들어가는 칼럼들 위주로 넣었다. 인덱싱을 다중 키로 넣는 경우 여러개도 가능하지만 블로그들을 찾아보니 5개 정도가 적당하다고 한다. 나는 아래 블로그를 학습하고 나서 인덱스를 걸었는데 매우 잘 나와있는 포스팅이다. https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%EC%9D%B8%EB%8D%B1%EC%8A%A4index-%ED%95%B5%EC%8B%AC-%EC%84%A4%EA%B3%84-%EC%82%AC%EC%9A%A9-%EB%AC%B8%EB%B2%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC [MYSQL] 📚 인덱스(index) 핵심 설계 & 사용 문법 💯 총정리 인덱스의 개념 인덱스..
예전에 컨트렉트 테스트를 할 때는 web3나 ethers의 단위 변환 특히 parseUnits(amount,decimal) 을 많이 썼었는데 사실 백엔드에서 소수점 계산등을 하려고 하면 잘 안된다. 따라서 예전부터 많이 쓰이는 bignumber.js를 사용해서 계산하는 것이 좋다. 물론 web3나 ethers의 최신 버전에서는 bignumber 없이도 bigint 형태로 모두 처리가 되지만 기존 코드들을 모두 업데이트 하는 것은 쉬운 일이 아니므로 bignumber.js를 사용할 경우가 더 많다. 일단 먼저 계산하기에 앞서서 10진수 숫자형으로 바꾸는 작업부터 해주고 const price0 = parseInt(data.price0, 10); const price1 = parseInt(data.price1..
시퀄라이즈를 이용하게 되면 기본적으로 created at, updated at을 만들어 준다. 다만 이렇게 할 경우 raw query 대신에 시퀄라이즈의 문법을 써주어야 한다. 내가 이번에 작업했던 쿼리는 upsert() 라는 시퀄라이즈 함수를 사용하면 되었는데 나는 raw query로 작업을 하였다. 그러다 보니 raw query로 Update, create를 하는 방법을 찾게 되었다. const table = sequelize.define(table_name, { createdAt: { type: DataTypes.DATE, field: 'created_at', defaultValue: sequelize.literal('CURRENT_TIMESTAMP'), }, updatedAt: { type: Da..
tickSpace 맞추기 tick별로 계산할 때 모든 틱을 다 관리할 수 없기에 uniswap V3에서 tick Space 단위로 맞출 때 올림 내림 처리를 해주어야 한다. 각 풀마다 tick이 다르다보니 각 풀별 기본 tickSpace를 컨트렉트 콜로 불러와서 사용해주어야 한다. function adjustedStartTick(tick, tickSpace) { return Math.floor(tick / tickSpace) * tickSpace; } function adjustedEndTick(tick, tickSpace) { return Math.ceil(tick / tickSpace) * tickSpace; } // Test console.log(adjustedStartTick(14, 10)); /..
현재 데이터의 상태를 업데이트 하는 쿼리를 만들다가 데이터가 있는지 DB접근 1 번 그리고 데이터가 없다면 삽입 있다면 업데이트를 하는 로직을 따로 만들었다. 그러나 이를 한번에 할 수 있는 방법이 있을거 같아 찾아보니 "MySQL에서는 INSERT ... ON DUPLICATE KEY UPDATE를 사용하여 레코드가 존재하면 업데이트하고, 존재하지 않으면 삽입하는 동작을 한 번의 쿼리로 수행할 수 있습니다. 그러나 먼저 이를 사용하려면 해당 테이블에 기본 키나 유니크 키 제약 조건이 있어야 합니다." 라고 챗 GPT가 알려줬다. const query = ` INSERT INTO DBNAME.${table_name} (A, B) VALUES ('${a}', '${b}') ON DUPLICATE KEY U..