일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SBT표준
- chainlink 설명
- 러스트기초
- multicall
- 러스트 기초 학습
- 체인의정석
- 오블완
- ethers
- vue기초
- erc4337 contract
- 티스토리챌린지
- erc4337
- ethers type
- rust 기초
- 계정추상화
- ethers websocket
- 스마트컨트렉트 함수이름 중복 호출
- Vue
- 스마트 컨트렉트 함수이름 중복
- ethers v6
- 스마트컨트렉트테스트
- 컨트렉트 동일한 함수이름 호출
- ethers typescript
- 러스트 기초
- ambiguous function description
- 머신러닝기초
- Vue.js
- 컨트렉트 배포 자동화
- 스마트컨트렉트 예약어 함수이름 중복
- git rebase
- Today
- Total
목록분류 전체보기 (496)
체인의정석
평가 기준 1. Completness (완전성) : 출발에서 목표까지 항상 가는가 2. Optimal(최적) : 최적이냐 항상 최소 비용을 보장하는가? 3. Time Complexity : 시간 복잡도, 노드의 개수가 몇개나 생성되는가? 4. Space Complexity : 탐색 시 사용하는 메모리 (몇개의 노드나 메모리에 들고 있는가?) 탐색 방법 BFS : 너비 우선 탐색, 선입선출인 큐를 써서 구현한다. =>> IDS 너비 우선이지만 제한을 두고 찾는 것 - BFS의 평가 척도 , - 완전성 - 노드의 수가 유한하기 때문에 완전하다. 하나의 너비에 무한개가 있는 것은 너무 극단적이므로 예외 - 최적 - 최적이다. 무조건 하나의 너비에 대해서 다 찾기 때문에 최적을 찾는다. DFS는 깊이가 우선이므..
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) 핵심 설계 & 사용 문법 💯 총정리 인덱스의 개념 인덱스..
이번에 살펴볼 내용은 ERC-5484 이다. https://eips.ethereum.org/EIPS/eip-5484 ERC-5484: Consensual Soulbound Tokens Interface for special NFTs with immutable ownership and pre-determined immutable burn authorization eips.ethereum.org 먼저 해당 표준이 나온 동기부터 살펴보도록 하자 "소울바운드 토큰에 대한 아이디어는 출판 이후 상당한 주목을 받았습니다. 그러나 표준 인터페이스가 없으면 소울바운드 토큰은 호환되지 않습니다. 토큰 구현에 대한 최소한의 합의 없이 소울바운드 토큰을 대상으로 하는 보편적인 서비스를 개발하는 것은 어렵습니다. 이 EIP는..
1. 들어가며 먼저 SoulBoundToken이란 전송 불가능한 토큰으로서 최근 메타버스 분야를 비롯하여 많은 곳에서 인증의 수단이나 활용의 수단으로 쓰이고 있다. 필자는 서강대 메타버스전문대학원 과정의 학생으로서 SBT에 대한 공부를 좀 살펴보려는 취지에서 따로 조사를 진행하기 위하여 글로 정리하는 것이며 대략적으로 SBT는 전송이 불가능하다는 특징 외에는 아는 것이 없었는데 SBT와 관련된 공식 표준을 통해서 어떤 내용이 있는지 살펴보도록 하겠다. 필자도 처음 살펴보는 내용이므로 해당 내용은 투자정보 또는 100% 자세한 내용임은 보장할 수 없지만 더 전문적이고 자세한 연구글이 나오기 전까지 처음 SBT의 구현체를 접근하려는 사람들에게 도움을 주기 위하여 해당 글을 작성한다. 사실 SBT의 표준에 대..
예전에 컨트렉트 테스트를 할 때는 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..