import logging
import requests
from tipbot . db import User
from tipbot . helpers . decorators import wallet_rpc_required , log_event , check_debug
from tipbot import wownero
from tipbot import config
@log_event
@check_debug
def mine ( update , context ) :
# Check that enough arguments were provided
if len ( context . args ) < 1 :
update . message . reply_text ( ' Not enough arguments passed. Include hash rate per second to estimate. ' )
return False
# Check that hash rate arg is an actual number
try :
hr = float ( context . args [ 0 ] )
except :
update . message . reply_text ( ' Invalid hashrate provided ' )
return False
# Run the numbers, tell the user
try :
payload = { ' jsonrpc ' : ' 2.0 ' , ' id ' : ' 0 ' , ' method ' : ' getlastblockheader ' }
headers = { ' Content-Type ' : ' application/json ' }
r = requests . post ( config . DAEMON_URI + ' /json_rpc ' , json = payload , headers = headers , timeout = 5 )
r . raise_for_status ( )
j = r . json ( )
diff = float ( j [ ' result ' ] [ ' block_header ' ] [ ' difficulty ' ] )
lbr = float ( j [ ' result ' ] [ ' block_header ' ] [ ' reward ' ] )
ttb = diff / hr
update . message . reply_text ( ' The estimated time to find a block with {0:.2f} kH/s at diff {1:.2e} is {2:.2f} days. On average you will earn {3:.2f} WOW per day ' . format (
hr / 1e3 , diff , ttb / ( 60 * 60 * 24 ) , ( lbr / 1e11 ) / ( ttb / ( 60 * 60 * 24 ) )
) )
except :
update . message . reply_text ( ' Something b0rked -_- ' )
return False
@log_event
@check_debug
def mempool ( update , context ) :
try :
payload = { ' jsonrpc ' : ' 2.0 ' , ' id ' : ' 0 ' , ' method ' : ' get_info ' }
headers = { ' Content-Type ' : ' application/json ' }
r = requests . post ( config . DAEMON_URI + ' /json_rpc ' , json = payload , headers = headers , timeout = 5 )
r . raise_for_status ( )
j = r . json ( )
txs = j [ ' result ' ] [ ' tx_pool_size ' ]
update . message . reply_text ( ' The current number of transactions in mempool is: {0} ' . format ( txs ) )
except :
update . message . reply_text ( ' Something borked -_- ' )