09 ~ 18
시 까지 수업도 따로 수강중이여서 한번에 많은 작업이 진행이 불가능하다보니.. 생각보다 시간이 조금 걸리는 것 같습니다.
이번에는 caver-js와 React를 연동시키는 작업을 하고 있습니다.
기본적인 Voting만들기
, 진행중인 Voting보기
,Voting상세보기
정도에 연동을 해 놓았고 이후에는 내가 진행했던 Voting보기
, 종료된 Voting보기
정도 하면 마무리가 될 껏 같습니다.
이후에 할 작업은 일단 앞서 두개가 있고, 추가적으로는 Back_end
에서 종료시간을 계속해서 갱신하면서 종료시간에 해당하면 찬성표가 성립되지 않아도 Voting을 종료시키는 작업을 하게 될 것 같습니다.
코드를 살짝 수행해서 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객체를 따로 함수를 통해서 만들어 주고 활용을 하고 있습니다.
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부분도 공부를 해야 하고, 수업도 들어야하고... 굉장히 할 일이 많지만 그래도 천천히 해결해 나가보도록 하겠습니다.
감사합니다.