defi의 현재 실제 수익률 계산(3)

in hive-101145 •  4 years ago  (edited)

참여하는 defi가 많아지다보니 token의 현재 가격을 받아와야하는 경우가 늘어납니다.
기존에는 아래와 같은 방식으로 그동안 사용했던 모든 토큰에 대하여 현재가를 가져왔습니다.

        CUR_PRICE['PANTHER'] = get_bsc_token_price(sc_addr['panther-bnb'], sc_tokens['panther'], sc_tokens['bnb'], 1)

그런데 더 이상 사용하지 않는 토큰들이 늘어나다보니 처음 시작할 때 프로그램이 너무 느려지는 문제가 생겼습니다. 그래서 사용하는 토큰에 한하여 현재 가격을 가져온 적이 없는 경우에만 현재가를 가져오도록 수정했습니다.
xxx-usdt pair에 대해서도 가격을 가져올 수 있도록 추가하였습니다.

def get_defi_token_price(name=None) :
    if name != None :
        cap_name = name.upper()
        low_name = name.lower()
        if cap_name in CUR_PRICE :
            return CUR_PRICE[name]
        else :
            target = low_name+'-busd'
            busd_bnb = 'busd'
            bnb = 0
            if low_name+'-bnb' in sc_addr :
                bnb = 1
                target = low_name+'-bnb'
                busd_bnb = 'bnb'
            elif low_name+'-usdt' in sc_addr :
                target = low_name+'-usdt'
                busd_bnb = 'usdt'

            CUR_PRICE[cap_name] = get_bsc_token_price(sc_addr[target], sc_tokens[low_name], sc_tokens[busd_bnb], bnb)
            return CUR_PRICE[cap_name]

CUR_PRICE[token_name]으로 사용하던 코드도 모두 바꾸다보니, 여기 저기 수정할 곳이 많군요. 개발하면서 항상 느끼는 것이지만 자료 구조를 바로 access하면 향후 코드 수정사항이 생겼을 때 일이 많군요. 조금 비효율적일지라도 함수를 이용하여 값을 가져오는 구조가 좋은 것 같습니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Excellent post, thanks dear.

[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★

WWW.QOO10.COM

start success go! go! go!

@tradingideas transfered 45 KRWP to @krwp.burn. voting percent : 72.41%, voting power : 64.32%, steem power : 1776767.14, STU KRW : 1200.
@tradingideas staking status : 11000 KRWP
@tradingideas limit for KRWP voting service : 22 KRWP (rate : 0.002)
What you sent : 45 KRWP
Refund balance : 23 KRWP [54109867 - a2b4a9ef1575098c65b500b23a2ea6c27ce9b634]

그것을 사랑해