Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Multichain API
  • java
  • 니어프로토콜
  • 블록체인 서버설계
  • 멋사 중앙대
  • 비트코인
  • 국비지원
  • 신입개발자
  • 멋쟁이 사자처럼 서류
  • 멋쟁이 사자처럼 면접
  • 자바스크립트
  • Luniverse
  • 글리치해커톤
  • 블록체인정보가공
  • 초보개발자
  • 멋쟁이 사자처럼
  • 국비교육
  • 디프만16기
  • 컴퓨터학원
  • 국비
  • 멋쟁이사자처럼 중앙대
  • Near Scan
  • 면접준비
  • 프로젝트
  • 구글소셜로그인
  • 취업준비
  • 해커톤
  • DEPROMEET
  • Near Explorer
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

[Hackathon] 삽질 일대기😰
블록체인

[Hackathon] 삽질 일대기😰

2023. 5. 11. 07:28
 입사하기 전에 할 수 있는 삽질은 뭐든 해보자.
모든 삽질은 의미가 있다.

#1

🚨문제 발생 상황 

Node.js 서버 → 블록체인 으로 지갑주소를 보내면 계정의 balance를 반환받는 로직을 짜고 있었다.

NEAR에서 제공하는 [near-api-js] 의 지갑연동 프로세스가 프론트단에 최적화 되어 있음.
예) 브라우저 Local Storage 에 있는 Address 와 Keypair를 담아서 특정 형태로 묶어서 블록체인과 connection을 함

지금 [near-api-js] 제공하는 함수 그대로를 사용할 수 없는 상황!!! 

 

async function getUserbalance(address) {
  const near = await nearApi.connect({
  deps: {
    keyStore: new nearApi.keyStores.BrowserLocalStorageKeyStore(),
  },
  ...nearConfig,
  });

 

 

✅어떻게 해결 할까?

나는 프론트에서 넘어온 address로만 가능할거라고 생각했는데, 그렇지 않고 keypair 정보도 얻어야 겠다고 생각함.
1. 일단 프론트에서 찍히는 KeyStore 의 데이터 구조를 출력해보고 
2. 그 데이터 구조대로 프론트에서 정보를 넘겨받아 내가 데이터 구조를 만들어서 위의 코드를 수정할 것임.
async function getUserbalance(address) {
  const near = await nearApi.connect({
  deps:
// 이 부분을 넘어온 정보로 양식에 맞게 가공할 예정!!!
{
    keyStore: new nearApi.keyStores.BrowserLocalStorageKeyStore(),
  },
//
  ...nearConfig,
  });

 

 


#2

🚨문제 발생 상황 

이 페이지에서 Often Used DAPP 부분을 구현하려고 한다.

구현하기 위해 필요한 정보
- 특정 유저가 날린 transaction 묶음
- 그 transaction의 정보 안에  Action : FUNCTION_CALL 에 해당하는 부분
이 정보에 해당하는 API url = https://api.nearblocks.io/v1/account/{account_address}/txns?action=FUNCTION_CALL&page=1&per_page=25&order=desc
{
      "receipt_id": "8StoA9tM78C8FriGppym83zLqFTDTmgFbWu6KeiyBuY1",
      "predecessor_account_id": "jakaichickman.near",
      "receiver_account_id": "x.paras.near",
      "transaction_hash": "6gH9SjAnd7akRxYZCnsZDnvYYGnfFJgR5AFMZEfLxT45",
      "included_in_block_hash": "CWepT1NDu88gf9Xu8QQBaVe3cm5vNBqwFkcC3AeimsWQ",
      "block_timestamp": "1664816746823229008",
      "block": {
        "block_height": 75452156
      },
      "actions": [
        {
          "action": "FUNCTION_CALL",
          "method": "nft_create_series"
        }
      ],
      "actions_agg": {
        "deposit": 8.54e+21
      },
      "outcomes": {
        "status": true
      },
      "outcomes_agg": {
        "transaction_fee": 813551216706200000000
      },
      "logs": [
        "{\\\"type\\\":\\\"nft_create_series\\\",\\\"params\\\":{\\\"token_series_id\\\":\\\"469201\\\",\\\"token_metadata\\\":{\\\"title\\\":\\\"Super Fan - Krub Pen #55\\\",\\\"description\\\":null,\\\"media\\\":\\\"bafybeicpqwrogrwkkceug3c4ftzexzatuk4m4vqbpmmx2lob4bhpil2jtq\\\",\\\"media_hash\\\":null,\\\"copies\\\":1,\\\"issued_at\\\":null,\\\"expires_at\\\":null,\\\"starts_at\\\":null,\\\"updated_at\\\":null,\\\"extra\\\":null,\\\"reference\\\":\\\"bafkreia6ww3lapoj4kgyofbpzlxflulzg5v77c4khspmzbp4oiy4tgkpz4\\\",\\\"reference_hash\\\":null},\\\"creator_id\\\":\\\"jakaichickman.near\\\",\\\"price\\\":\\\"600000000000000000000000\\\",\\\"royalty\\\":{\\\"jakaichickman.near\\\":1000},\\\"transaction_fee\\\":\\\"200\\\"}}"
      ]
    },

여기서 필요한 정보는 "predecessor_account_id", "receiver_account_id" 두가지!

이 두가지 정보 중, user_address와 일치하지 않는 정보가 바로 사용자가 사용한 dapp의 주소가 되겠다!

 

 

#3

지갑로그인 후 , 사용자에게 newbie라는 칭호를 발급해야 하는데,발급이 안되네 문제를 고쳐보자.

 

 

#4

특명 프론트를 도와라!

<Link to="http://localhost:5173/">
                    <Nico src="src/assets/layout/nico_icon.svg" />
                </Link>

 

 

 

 

 

'블록체인' 카테고리의 다른 글

[Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)  (0) 2023.05.22
[Hackathon] Backend DashBoard is underway👾  (2) 2023.05.14
[Hackathon] Web3 프로젝트 구조 설계에 관한 깊은 고찰🤔  (0) 2023.05.09
[Hackathon] 📚프로젝트 구조화 + 우선순위 설정 (feat. NEAR Protocol)  (0) 2023.05.03
왜 성능 좋은 3세대 체인들은 이더리움의 인기를 뛰어넘지 못할까요?🙄🙄  (0) 2023.05.03
    '블록체인' 카테고리의 다른 글
    • [Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)
    • [Hackathon] Backend DashBoard is underway👾
    • [Hackathon] Web3 프로젝트 구조 설계에 관한 깊은 고찰🤔
    • [Hackathon] 📚프로젝트 구조화 + 우선순위 설정 (feat. NEAR Protocol)
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바