Voting 사이트 - 2

Lumi·2022년 3월 10일
0
post-thumbnail

🔥 개요

09 ~ 18시 까지 수업도 따로 수강중이여서 한번에 많은 작업이 진행이 불가능하다보니.. 생각보다 시간이 조금 걸리는 것 같습니다.

이번에는 caver-js와 React를 연동시키는 작업을 하고 있습니다.

기본적인 Voting만들기, 진행중인 Voting보기,Voting상세보기 정도에 연동을 해 놓았고 이후에는 내가 진행했던 Voting보기, 종료된 Voting보기 정도 하면 마무리가 될 껏 같습니다.

이후에 할 작업은 일단 앞서 두개가 있고, 추가적으로는 Back_end에서 종료시간을 계속해서 갱신하면서 종료시간에 해당하면 찬성표가 성립되지 않아도 Voting을 종료시키는 작업을 하게 될 것 같습니다.

🔨 Unix -> 시간

코드를 살짝 수행해서 Solidity에서 block.timestamp을 활용하여 Voting은 하루정도 진행이 되게 구성을 하였습니다.

이떄 응답으로 오는 시간은 Unix시간으로 구성이 되어 있기 떄문에 이 부분을 명시적으로 확인이 가능하게 수정을 해 주었습니다.

export const Unix_timestamp = (time) =>{
  let date = new Date(time * 1000)
  let year = date.getFullYear();
  let month = "0" + (date.getMonth()+1);
    let day = "0" + date.getDate();
    let hour = "0" + date.getHours();
    let minute = "0" + date.getMinutes();
    let second = "0" + date.getSeconds();
    return year + "-" + month.substr(-2) + "-" + day.substr(-2) + " " + hour.substr(-2) + ":" + minute.substr(-2) + ":" + second.substr(-2)
}
  • 이 함수를 통해서 Unix가 들어오면 값을 수정해 줌으로써 동작을 시키고 있습니다.

🔨 Tx객체 만들기

또한 추가적으로 전송을 할떄마다 반복되는 Tx객체를 따로 함수를 통해서 만들어 주고 활용을 하고 있습니다.

export const make_Tx = async (data) => {
  // msg.sender로 동작시킬떄 Transaction객체를 만드는 함수
  const account = await get_Logined_Account().then((a) => {
    return a;
  });

  return {
    from: account,
    to: CA,
    gas: 5000000,
    data: data,
  };
};
  • 이 방식 말고 this, new 키워드를 활용해도 활용이 가능할것 같습니다.
const make_Tx = async (data) =>{
 const account = await get_Logined_Account().then((a) => {
    return a;
 });
 
 this.from  = account
 this.to = CA
 this.gas = 5000000
 data = data
}

// 이런 느낌으로 작성??

🔥 느낀점

사실 많은 작업은 하지 않아서 그렇게 많은 부분을 느끼지는 못하였습니다.

그래도 생각을 해보자면 일단 이전에는 tx를 하드코딩 한 느낌으로 작성을 하였는데 확실이 이렇게 반복되는 부분은 함수를 활용하는 것이 굉장히 가독성이 좋은 것 같습니다.

이외에도 Unix시간 변환하는 부분도 경험할수 있었습니다.

Golang부분도 공부를 해야 하고, 수업도 들어야하고... 굉장히 할 일이 많지만 그래도 천천히 해결해 나가보도록 하겠습니다.

감사합니다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글