본문 바로가기

반응형

All

(40)
팬텀 지갑 제공 정보 Metamask 연결시 연결된 네트워크를 확인할 수 있다. (mainnet-beta, rinkeby 등등...) window.ethereum.chainId '0x1' 솔라나 팬텀 지갑에서는 이런 기능이 없다. 보통 solana-web3 개발할 때 isConnected 또는 isPhantom 정도는 확인하지만 어떤 네트워크에 현재 팬텀이 접속되어있는지는 web3 코드로 분별할 수 없다. 이 검증을 하기 위해 오픈씨에서는 웹을 어떻게 구현했는지 확인해보았다. 링크비 네트워크에 현재 접속되어있다는 warning 이 표시된다. NFT 구매 요청을 하면 네트워크를 변경하라는 팝업이 뜬다. 그 팝업으로 인해 메타마스크에 네트워크 변경 요청도 호출할 수 있다. 반면 솔라나에서는 팬텀 지갑이 devnet..
(react) JSON array 를 setState array 로 관리하여 display 하기 https://dev.to/shareef/how-to-work-with-arrays-in-reactjs-usestate-4cmi API 호출을 통해 리턴된 json array 를 setState 로 관리(추가)하고, state 정보를 table 로 display 해보자. API 호출에 대한 응답값은 다음과 같다. [ { "associatedTokenAddress": "AgzKHLLVUSPQerWnGx7EUDEoU65WywTbRk8jgs57uCK2", "mint": "H6iaaQxQSWn8W68jDkVxtP9KuCZwK4a2bZtcaMjDfLpr" }, { "associatedTokenAddress": "36k1UoepVwUymusrphAVzYNe5NBKbUzy1u1TrQFk6Y4E", "mint": "8..
[react + nestjs] fetch cors 에러 로컬호스트에 띄워놓은 react 로부터 nestjs 으로 api 호출을 하려고 한다. fetch 함수를 사용한 POST 호출을 하는데 다음과 같은 에러를 마주할 수 있다. Access to fetch at 'http://localhost:3000/solana-nft/getAllNftsByAddress' from origin 'http://localhost:1234' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the respo..
Infura ipfs (get) vs (cat) Infura 서비스 중 IPFS 를 활용하면 NFT 의 metadata 를 IPFS 서버에 업로드 하는데 사용할 수 있다. 그리고 nodejs 서버를 통해 업로드한 json 데이터를 받아오기 위해 다음 코드처럼 사용하면 된다. const cid = 'QmTUy2xbUAjf3E79u4JztNP4JEbD8vh45kVVeM3n7rvWX8'; const options = { host: 'ipfs.infura.io', port: 5001, path: '/api/v0/cat?arg='+cid, method: 'POST', // auth: process.env.INFURA_PROJECT_ID + ':' + process.env.INFURA_PRO..
프론트에서 서버로 보내는 요청을 최소화 하라 CoinMarketCap 처럼 방대한 정보를 보여는 사이트의 개발자 도구를 열어보면 http 요청은 로그인을 위해 한번만 발생한다. 나머지는 웹소켓을 통해 주기적으로 데이터를 받아온다. 소켓 관리에 대한 로드가 발생하겠지만 생각해보면 이렇게 하는 방식이 옳다. 예를들어 프론트에서 join 된 정보가 필요하다면 서버에서 한번만 실행하고 1000 개의 클라이언트에게 보내는 방식이 http 요청에 의해 1000번 수행하는 것보다 낫다.
투자 내공 정리 필자는 개미다. 그리고 이 글에서는 투자라는 단어를 투기 대신에 사용하기로 한다. 2022-05-26 - 암호화폐는 허상이다. 암호화폐가 현재 거래소에서 형성하고 있는 금액은 현금화 가능한 가치가 맞지만, 암호화폐의 실체는 허상임에 분명하다. - 필자는 현재 STEPN 에서 채굴을 하고 있다. STEPN 을 평가하자면 암호화폐 위에 게임 요소를 잘 녹여낸 어플리케이션이라고 생각한다. 게임 요소가 있다는 말은 게임 회사가 존재하는 것처럼 값어치가 만들어졌다는 생각이다. 다만 채굴이 가능한 이유가 다단계 사업 모델을 가지고 있기 때문이라서 STEPN 신발과 채굴되는 코인 마저도 모두 허상인게 맞다. - 코인 판에 있으면서 수익을 경험하고 있다면 현금화해야 한다. - 그게 아니라면 허상에 대한 기쁨을 누리고 ..
서명 검증 함수 소개 솔라나 web3 개발 중에 키페어로 서버에서 서명하는 경우는 다음과 같은 코드를 활용한다. const keypair = Keypair.generate(); let tx = new Transaction(); tx.sign(keypair); keypair 객체는 public key / secret key 정보가 모두 있어 트랜잭션에 대한 서명을 만들 수 있다. 또는 Transaction 객체의 sign() 함수 대신 addSignature() 를 사용한다면 다음처럼 tweetnacl 함수를 사용해야 한다. const keypair = Keypair.generate(); let tx = new Transaction(); const buffer = tx.serializeMessage(); const signat..
nestjs dotenv 설정 공식 docs 에서는 @nestjs/config 객체를 활용할 것을 권장한다. provider로 등록하여 하나의 파일에서 환경변수들을 관리할 수 있다. @nestjs/config 를 사용하지 않더라고 기본적으로 nest 서버는 .env 파일들의 환경변수를 ConfigModule 을 통해 임포트 한다. @Controller, @Injectable 등으로 provider 로 생성된 객체 안에서는 process.env.NAME 식으로 사용할 수 있다. 출처 provider 로 생성되지 않는 영역에서는 다음 코드를 입력하면 process.env.NAME 접근에 대해 undefined 가 리턴되지 않는다. import * as dotenv from 'dotenv' dotenv.config(); 번외..