[steem-engine] 스팀엔진 조회용 유틸리티 with nodejs

in #steemengine11 months ago (edited)

참조 링크 : https://github.com/holgern/steemengine


1. HOLDER LIST

특정 아이디를 제외하여 현재 지분률을 확인 할 수도 있음

2. ORDER BOOK

특정 토큰의 현재 오더 북 정보 및 매물 정보를 볼 수 있다.

3. TRANSFER HISTORY

특정 토큰의 최근 거래 내역 정보를 확인할 수 있다. steemd의 거래내역 정보 또한 링크를 통해 확인 가능


4. SOURCE CODE

일부 누락된 부분도 있긴 하나 (넘 커져서 분량이) RPC 통신쪽이라 구현하는것에 있어 큰 어려움은 없을것이라 예상 됩니다 :)

////////////////////////////////////////////////////////////
//
// information
//

/*
    스팀 엔진용 RPC 통신

  LINKS

    https://github.com/holgern/steemengine
  https://github.com/harpagon210/sscjs

*/

////////////////////////////////////////////////////////////
//
// require
//

const wrpc = require('./wrpc');

////////////////////////////////////////////////////////////
//
// let
//

let fn = {};

////////////////////////////////////////////////////////////
//
// const
//

const URL_STEEM_ENGINE      = 'https://api.steem-engine.com/';
const URL_STEEM_ENGINE_RPC  = 'https://api.steem-engine.com/rpc/';
const BLOCKCHAIN_API    = 'blockchain';
const CONTRACTAPI       = 'contracts';

////////////////////////////////////////////////////////////
//
// default functions
//

fn.token_history = async function (account, symbol, limit = 1000, offset = 0, type='user'){

    // type = user, contract 등 있는것 같은데 동작않함
    const target_url = `${URL_STEEM_ENGINE}accounts/history?account=${account}&limit=${limit}&offset=${offset}&type=${type}&symbol=${symbol}`;
    return wrpc.send_get_body_json(target_url);
}

fn.token_book_sell = async function (symbol, limit = 1000, offset = 0, indexes = []){
    return fn.find('market', 'sellBook', {'symbol':symbol}, limit, offset, indexes );
}

fn.token_book_buy = async function (symbol, limit = 1000, offset = 0, indexes = []){
    return fn.find('market', 'buyBook', {'symbol':symbol}, limit, offset, indexes );
}

fn.token_info_list = async function (limit = 1000, offset = 0, indexes = []){
    return fn.find('tokens', 'tokens', {}, limit, offset, indexes );
}

fn.token_info = async function (symbol, limit = 1000, offset = 0, indexes = []){
    return fn.findOne('tokens', 'tokens', {'symbol':symbol});
}

fn.token_market_info = async function (symbol, limit = 1000, offset = 0, indexes = []){
    return fn.find('market', 'metrics', {'symbol':symbol}, limit, offset, indexes );
}

fn.token_holders = async function (symbol, limit = 1000, offset = 0, indexes = []){
    return fn.find('tokens', 'balances', {'symbol':symbol}, limit, offset, indexes );
}

////////////////////////////////////////////////////////////
//
// find functions 
//

fn.getContractInfo = async function (name){
    let params ={
        name
    }
    return wrpc.send_rpc('getContract', params, URL_STEEM_ENGINE_RPC + CONTRACTAPI );
}

fn.findOne = async function (contract, table, query){
    let params ={
        contract,
        table,
        query
    }
    return wrpc.send_rpc('findOne', params, URL_STEEM_ENGINE_RPC + CONTRACTAPI );
}

fn.find = async function (contract, table, query, limit = 1000, offset = 0, indexes = []){
    let params ={
        contract,
        table,
        query,
        limit,
        offset,
        indexes
    }
    return wrpc.send_rpc('find', params, URL_STEEM_ENGINE_RPC + CONTRACTAPI );
}

fn.getBlockInfo = async function (blockNumber){
    let params ={
        blockNumber
    }
    return wrpc.send_rpc('getBlockInfo', params, URL_STEEM_ENGINE_RPC + BLOCKCHAIN_API );
}

fn.getTransactionInfo = async function (txid){
    let params ={
        txid
    }
    return wrpc.send_rpc('getTransactionInfo', params, URL_STEEM_ENGINE_RPC + BLOCKCHAIN_API );
}

////////////////////////////////////////////////////////////
//
// module exports
//
module.exports = fn;

더 궁금하면 ... 500원 !

Sort:  

안녕하세요?
혹시 스팀,스팀달러 그리고 스팀엔진 토큰 앱 지갑을 만드는 것이 가능하실런지요?

시간만 있음 가능한데 ...

그리고 개인적으로도 만들 예정이기도 하지만 언제가 될지는 모르겠네요 ㅜㅜ ( 플러터 - iOS, android // 웹, 모바일 웹, 핀번호 및 aes256을 조합한 개인키 암호화 적용)

일 하면서 개발하는지라 ...

시간이 없는게 문제군요. ㅠㅠ
원사마님은 플러터 모바일앱을 포함하여 웹, 모바일 웹까지 개발하실 계획인가요?

사실 저도 스팀잇 지갑을 리액트 네이티브로 만들고 싶긴한데...
역시 시간이 부족하네요. 코딩 실력이 부족한 것도 있구요. ㅠㅠ

음... 저는 안궁금^^ ㅋㅋ 오늘도 수고하셨습니다^^

이런.. 이제 슬슬 궁금할 때도 되지 않으셨는지요 ? ㅋㅋ

이제 현금만 받나요? ㅋㅋ
원사마님 덕분에 스팀엔진에서 토큰 조회를 쉽게 할수 있겠어요. 감사합니다.

1스팀도 받지용 ㅋ

멋진 걸 만드셨군요.

음... 하나도 모르겠습니다. ㅋㅋㅋㅋㅋ