[나만의 SCT #3] 보팅 금액 (SCT), 글 리스트에서 보팅자 확인, 보팅자 Limit 풀기

in #sct5 years ago (edited)

안녕하세요 @realmankwon입니다.

회사에서 문서 작업과 회의 등으로 바쁜 시간을 보내고 퇴근 후부터 소스 변경을 했는데 일이 꼬이는 바람에 벌써 자정을 넘겼네요 ㅜㅜ
이전에 변경한 기능들에 많은 관심과 성원을 해 주시고 조언도 해 주셔서 금일부터 clone으로 받아서 하던 소스를 놔두고 fork를 받은 다음 변경하기 시작했습니다.
하지만 이때부터 문제가 생기기 시작했습니다.
원래 잘 돌아가던 소스가 특정 상황에서 동작하지 않는 현상이 발생한 것이죠.
그래서 그걸 해결해 보고자 몇시간의 사투를 벌렸지만 끝내는 무릎을 꿇고 말았습니다 ㅜㅜ
일단은 이전 소스에서 기능을 변경하고 내일 다시 소스 merge를 해 볼려고 합니다.

1. 보팅 금액(SCT) 추가

해당 기능은 suggest의 글 중에 비율과 함께 보팅 금액을 봤으면 하는 글들이 있어서 한번 해 보았습니다.
그림과 같이 이전 기능에서 추가한 보팅 비율에 SCT기준 보팅 금액을 계산하여 출력하도록 변경하였습니다.
기존에는 다음과 같은 공식으로 보팅 금액을 계산했었습니다.

Price of voter = payout price * (voter's rshares / posting net_rshares)

하지만 제 생각대로 결과값이 나오지 않아 for 문을 돌면서 합을 구해주었습니다.
일단 결과는 나오지만 이 부분은 api를 더 분석해서 for 문을 제외 시켜주어야 속도가 더 빨라질 것 같습니다.
변경 소스는 다음과 같습니다.

       let total_rshares = 0;
        
       // sum of rshares
        for (
            let v = 0;
            v < avotes.length ;
            ++v
        ) {
            const { rshares } = avotes[v];
            total_rshares += rshares;
        }

        for (
            let v = 0;
            v < avotes.length && voters.length < MAX_VOTES_DISPLAY;
            ++v
        ) {
            const { percent, voter, rshares } = avotes[v];
            const sign = Math.sign(percent);
            if (sign === 0) continue;
            voters.push({
                value: (sign > 0 ? '+ ' : '- ') + voter + ' (' + percent / 100 + '%) ' + 
                               // price of voter
                               (payout * rshares / total_rshares).toFixed(2) + LIQUID_TOKEN_UPPERCASE,
                link: '/@' + voter,
            });
        }

fork한 소스와 어제 작성한 소스를 merge했을 때 결과값이 좀 다르게 나와서 이부분도 계속 보았었는데 기존 소스로 하니 이상없이 동작합니다.
하지만 어쩌다가 한번씩 새로고침을 해 주어야 동작을 할때가 있네요...ㅜㅜ
이 부분은 해결할 수 있을지 모르겠지만 시간을 내서 찬찬히 소스를 확인해 봐야할 것 같습니다.

2. 글 리스트에서 보팅자 확인

이 기능은 제가 불편해서 한번 추가해 보았습니다. ^^
위의 1번에서 이미 보셨겠지만 기존 스코판에서는 리스트 상에서는 보팅 리스트를 볼 수 없어서 글을 클릭하고 스크롤을 해서 보아야만 했습니다.
이 부분은 생각보다 간단하게 변경이 가능했습니다.

src/app/components/cards/PostSummary.jsx

빨간색 부분을 showList = true 로만 변경시켜주면 바로 적용이 됩니다.

3. 보팅 리스트 20개 제한 늘리기

보팅 리스트가 20개로 제한이 되어 있으니 누가 보팅을 했는지 다 볼 수가 없어서 불편했습니다.
그래서 이것도 제한을 늘려보니 간편하게 적용이 되었습니다.

이 변수의 값을 200으로 변경하니 바로 적용이 되네요.
이것은 추후에는 스크롤이 생기거나 제한을 두되 하단의 영역을 클릭하면 전체가 보이도록 하는 방향으로 변경해 보아야겠습니다.


저도 밑줄을 한번 그어보고 싶었습니다. ^^
SCT에 개발 관련 글을 연재를 하면서 마음에 부담을 좀 느끼기는 합니다.
코인 위주의 글을 써야 하고 너무 SCT에 대한 글이다 보니 느끼는 감정이겠지요.
또 누군가는 소각을 한다지만 홍보를 위해서 한다는 분들도 계시구요.
그래도 SCT 운영진에 조금이라도 도움이 되지 않을까라는 생각에 소스를 투고하는 마음으로 글을 쓰고 있는 것이니 좋게 봐 주셨으면 합니다.
좀 더 복잡한 기능에 도전을 해 보고 싶은데 아직은 분석이나 공부를 좀 더 해봐야하기에 즉흥적으로 바로 할 수 있겠다 싶은 것이나 제가 불편한 기능을 위주로 하고 있습니다.
앞으로도 더 좋은 기능을 탑재할 수 있도록 노력해 보겠습니다. ^^

그리고 소스는 merge를 잘 한 다음 조만간 주소를 올리도록 하겠습니다.
이크 시간이 벌써 1시 30분인군요...ㅜㅜ
내일 수영을 갈 수 있어야 할텐데..
얼른 잠자리로 가야겠습니다 ^^

* 이전글

Intro 내 컴퓨터에서 나만의 sct를 실행해 보자
1. [나만의 SCT #1] 보팅 비율 보기
2. [나만의 SCT #2] SCT 보상액과 Steem 보상액 함께 보기

Sort:  

스테이킹 sct 1000개로 100% 보팅하면 얼마가 찍히나여~^^

저도 보팅금액 확인되었으면 했었는데
sct에 얼릉 적용되었으면 좋겠네요.

와우~ 완전 기대되네요~

역시 저는 줄을 잘 섰습니다.
이런 꿀팁도 공짜로 배울 수 있고^^
감사합니다.

너무너무너무 궁금한 보팅금액. 이거 언제 적용할 수 있을까요? ㅠㅠ

안녕하세요 realmankwon님

좋은 하루 보내세요!!

Turtle-lv1.gif

Coin Marketplace

STEEM 0.32
TRX 0.11
JST 0.034
BTC 66004.40
ETH 3243.40
USDT 1.00
SBD 4.19