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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

[Polygon Hackathon] Backend Dashboard (5.30 ~ 6.4)
블록체인

[Polygon Hackathon] Backend Dashboard (5.30 ~ 6.4)

2023. 5. 30. 07:28
So, if you're ready to take on the challenge and showcase your skills, join us for the Luniverse NOVA Hackathon and let's build the future of Web3 together!
 

Polygon [APAC] DevX Hackathon X DoraHacks - Submit Now! | Hackathon | DoraHacks

# [Click here to register your info!](https://airtable.com/shrgYjgVHzyxfqVyn) # About Polygon Labs is excited to invite you to participate in our upcoming DevX Tour APAC Hackathon, and **online virtual hackathon** where developers can showcase their skills

dorahacks.io

 

이번에는 서버에서 야무지게 조회 API 날려서 정보 가공 후, 프론트에게 넘겨줄 예정!


[6/4] D-Day

🔲오늘 해야할 것

  • API 화면처리
  • 프론트 배포 (HTTP)
  • 프로젝트 설계 사진
  • 데모영상 찍어야함.
IERC20 public immutable stakingToken;
IERC20 public immutable rewardsToken;


function lastTimeRewardApplicable() public view returns (uint) {
        return _min(finishAt, block.timestamp);
    }


function rewardPerToken() public view returns (uint) {
        if (totalSupply == 0) {
            return rewardPerTokenStored;
        }

        return
            rewardPerTokenStored +
            (rewardRate * (lastTimeRewardApplicable() - updatedAt) * 1e18) /
            totalSupply;
    }

   function stake(uint _amount) external updateReward(msg.sender) {
        require(_amount > 0, "amount = 0");
        stakingToken.transferFrom(msg.sender, address(this), _amount);
        balanceOf[msg.sender] += _amount;
        totalSupply += _amount;
    }

    function withdraw(uint _amount) external updateReward(msg.sender) {
        require(_amount > 0, "amount = 0");
        balanceOf[msg.sender] -= _amount;
        totalSupply -= _amount;
        stakingToken.transfer(msg.sender, _amount);
    }

    function earned(address _account) public view returns (uint) {
        return
            ((balanceOf[_account] *
                (rewardPerToken() - userRewardPerTokenPaid[_account])) / 1e18) +
            rewards[_account];
    }

    function getReward() external updateReward(msg.sender) {
        uint reward = rewards[msg.sender];
        if (reward > 0) {
            rewards[msg.sender] = 0;
            rewardsToken.transfer(msg.sender, reward);
        }
    }

    function setRewardsDuration(uint _duration) external onlyOwner {
        require(finishAt < block.timestamp, "reward duration not finished");
        duration = _duration;
    }

    function notifyRewardAmount(
        uint _amount
    ) external onlyOwner updateReward(address(0)) {
        if (block.timestamp >= finishAt) {
            rewardRate = _amount / duration;
        } else {
            uint remainingRewards = (finishAt - block.timestamp) * rewardRate;
            rewardRate = (_amount + remainingRewards) / duration;
        }

        require(rewardRate > 0, "reward rate = 0");
        require(
            rewardRate * duration <= rewardsToken.balanceOf(address(this)),
            "reward amount > balance"
        );

        finishAt = block.timestamp + duration;
        updatedAt = block.timestamp;
    }

    function _min(uint x, uint y) private pure returns (uint) {
        return x <= y ? x : y;
    }

[6/3] 

🔲오늘 해야할 것

showDailyGasfeeInCalendarView( userAddress ) : 
- 일별 가스비 사용량을 달력뷰로 보여줍니다.

🔲지금 한 것

@GetMapping("/main")
public ResponseEntity<Object> getMain(HttpServletRequest request) throws IOException {
    // 헤더에서 토큰 값 추출
    //String address = (Jwts.parser().setSigningKey(secretKey).parseClaimsJws((request.getHeader("Authorization")).substring(7)).getBody()).getSubject();

    //사용자의 트랜잭션을 luniverse api 호출을 통해 db에 저장합니다.
    transactionService.saveRecentTransactionList("0xa41478514D57F828323E514dbf7D483646032f0A");

    //사용자의 월별통계에 들어갈 정보를 반환합니다.

    Map<String,Object> response=new HashMap<>();
    //사용자의 달력에 노출될 정보를 반환합니다.
    response.put("DailyGasfeeInCalendar",transactionService.getDailyGasfeeInCalendarView("0xa41478514D57F828323E514dbf7D483646032f0A"));

    return new ResponseEntity<>(response, HttpStatus.OK);
}
//달력view에서 특정 일을 클릭하면 반환되는 dailyTnxsList입니다.
@GetMapping("/{date}")
public ResponseEntity<Object> getDailyTnxsList(HttpServletRequest request,@PathVariable LocalDate date){
    //요청 헤더에서 jwt를 가져와 유저의 주소를 추출합니다.
    String userAddress = (Jwts.parser().setSigningKey(secretKey).parseClaimsJws((request.getHeader("Authorization")).substring(7)).getBody()).getSubject();

    Map<String,Object> response=new HashMap<>();
    response.put("DailyTnxsList",transactionService.getDailyTransactionList(userAddress,date));

    return new ResponseEntity<>(response, HttpStatus.OK);
}

[6/1]

🔲오늘 해야할 것

컨트랙트 사용회의
- SBT 어떤식으로 기획 입힐지?

 

🔲지금 한 것

saveRecentTransactionList( userAddress ) : 
- 중복제거 해서 트랜잭션 정보 db 저장

 

🔲남은 것

showDailyTransactionList( userAddress )
1.db 저장되어 있는거 dto에 담아서 반환하는 함수 만들기
   근데 이제 daily를 반환해야 하니까 daily를 판단할 수있게 하는 함수를 만들어서
   해당 값 사이에 있는 정보들만 반환 할 수 있게 코드를 짜자.
2.회원가입이후 정보만 저장할 수 있게끔 로직 추가.

 

mapTnxsWithActivity( tnxsHash ) : 
- 사용자가 직접 tnxs를 활동(swap, transfer, others ..)을 선택해서 저장하는 함수
-> 안해도 됌!!!!
배포  

[5/30]

  • 프로젝트 환경설정, 세팅
  • DB 짜기
    • domain class 작성
  • API 구현을 위해 필요한 자료 조사
    • tnsx을 보고 method를 알아낼 수 있는가?
  • 사용해야 하는 API에서 필요한 준비물
    • 토큰
    • 어떤 함수를 날리는지
    • 반환하는 결과물에서 어느 정보를 추출해야 하는지

 

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

[Hackathon](후기: 대회 1등을 했습니다😉) KYC dApp Project ( Multichain API, Webhook, Json RPC)  (0) 2023.06.05
Tnxs 정보를 가공해서 "분기별 트렌드 리포트"를 제공해보자📒 (feat. dApp killing feature)  (0) 2023.05.27
[Digital Signiture] 암호화의 원리🔐  (0) 2023.05.24
[Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)  (0) 2023.05.22
[Hackathon] Backend DashBoard is underway👾  (2) 2023.05.14
    '블록체인' 카테고리의 다른 글
    • [Hackathon](후기: 대회 1등을 했습니다😉) KYC dApp Project ( Multichain API, Webhook, Json RPC)
    • Tnxs 정보를 가공해서 "분기별 트렌드 리포트"를 제공해보자📒 (feat. dApp killing feature)
    • [Digital Signiture] 암호화의 원리🔐
    • [Hackathon] NICO dApp Project (feat. Block Explorer, SBT, Community)
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바