From aac788d4705824838f57e634e5adc9bf9df64a16 Mon Sep 17 00:00:00 2001 From: Kikyou Akino Date: Mon, 18 Apr 2022 14:16:50 +0900 Subject: [PATCH] Support BitZeny --- LICENSE.md | 2 +- README.md | 6 +++--- server/methods/block.py | 14 +++++++------- server/methods/general.py | 10 +++++----- server/rest.py | 8 ++++---- server/static/favicon.ico | Bin 17542 -> 9662 bytes server/static/logo_s.png | Bin 1066 -> 1635 bytes server/templates/index.html | 34 +++++++++++++++++----------------- server/utils.py | 13 +++++-------- 9 files changed, 42 insertions(+), 45 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index efa782b..f674128 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright: (c) 2022 The Bellcoin Core developers +Copyright: (c) 2022 The BitZeny Core developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 1519ce8..d43ea07 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Getting started -This is RESTful API which will allow you to interact with Bellcoin blockchain. +This is RESTful API which will allow you to interact with BitZeny blockchain. # How to use it? @@ -10,7 +10,7 @@ First of all you have to create `config.py` file in root of project directory wi rid = "api-server" cache = 3600 # Cache request for 1 hour secret = 'YOU SHOULD HAVE A VERY STRONG PASSWORD HERE' -endpoint = "http://rpcuser:rpcpassword@127.0.0.1:25252/" # RPC 25252 or 35252 +endpoint = "http://rpcuser:rpcpassword@127.0.0.1:9252/" # RPC 9252 or 19252 host = "0.0.0.0" port = 1234 debug = False @@ -29,7 +29,7 @@ $ pip3 install -r requirements.txt $ python3 app.py ``` -All request should be send to this endpoint: `https://api.bellcoin.web4u.jp/` +All request should be send to this endpoint: `https://api.bitzeny.web4u.jp/` Responce have following fields: diff --git a/server/methods/block.py b/server/methods/block.py index 562feb6..498d146 100644 --- a/server/methods/block.py +++ b/server/methods/block.py @@ -12,8 +12,8 @@ def height(cls, height: int): txid = data["result"] data.pop("result") data["result"] = utils.make_request("getblock", [txid])["result"] - data["result"]["txcount"] = data["result"]["nTx"] - data["result"].pop("nTx") + #data["result"]["txcount"] = data["result"]["nTx"] + #data["result"].pop("nTx") return data @@ -21,9 +21,9 @@ def height(cls, height: int): def hash(cls, bhash: str): data = utils.make_request("getblock", [bhash]) - if data["error"] is None: - data["result"]["txcount"] = data["result"]["nTx"] - data["result"].pop("nTx") + #if data["error"] is None: + # data["result"]["txcount"] = data["result"]["nTx"] + # data["result"].pop("nTx") return data @@ -49,8 +49,8 @@ def range(cls, height: int, offset: int): data["result"] = block["result"] data["result"]["nethash"] = int(nethash["result"]) - data["result"]["txcount"] = data["result"]["nTx"] - data["result"].pop("nTx") + #data["result"]["txcount"] = data["result"]["nTx"] + #data["result"].pop("nTx") result.append(data["result"]) diff --git a/server/methods/general.py b/server/methods/general.py index 5a66381..ce0c1f0 100644 --- a/server/methods/general.py +++ b/server/methods/general.py @@ -12,12 +12,12 @@ def info(cls): data["result"]["supply"] = utils.supply(data["result"]["blocks"])["supply"] data["result"]["reward"] = utils.reward(data["result"]["blocks"]) data["result"].pop("verificationprogress") - data["result"].pop("initialblockdownload") + #data["result"].pop("initialblockdownload") data["result"].pop("pruned") data["result"].pop("softforks") data["result"].pop("bip9_softforks") - data["result"].pop("warnings") - data["result"].pop("size_on_disk") + #data["result"].pop("warnings") + #data["result"].pop("size_on_disk") nethash = utils.make_request("getnetworkhashps", [120, data["result"]["blocks"]]) if nethash["error"] is None: @@ -48,7 +48,7 @@ def fee(cls): # return data return utils.response({ - "feerate": utils.satoshis(0.00001), + "feerate": utils.satoshis(0.0002), "blocks": 6 }) @@ -68,5 +68,5 @@ def mempool(cls): @classmethod @cache.memoize(timeout=600) def price(cls): - link = "https://api.coingecko.com/api/v3/simple/price?ids=bellcoin&vs_currencies=btc,usd,jpy" + link = "https://api.coingecko.com/api/v3/simple/price?ids=bitzeny&vs_currencies=btc,usd,jpy" return requests.get(link).json() diff --git a/server/rest.py b/server/rest.py index f6f6735..52e213b 100644 --- a/server/rest.py +++ b/server/rest.py @@ -68,9 +68,9 @@ def block_by_hash(args, bhash): @blueprint.route("/header/", methods=["GET"]) def block_header(bhash): data = utils.make_request("getblockheader", [bhash]) - if data["error"] is None: - data["result"]["txcount"] = data["result"]["nTx"] - data["result"].pop("nTx") + #if data["error"] is None: + # data["result"]["txcount"] = data["result"]["nTx"] + # data["result"].pop("nTx") return jsonify(data) @@ -145,7 +145,7 @@ def supply_plain(): @blueprint.route("/price", methods=["GET"]) def price(): data = General().price() - return jsonify(utils.response(data["bellcoin"])) + return jsonify(utils.response(data["bitzeny"])) def init(app): app.register_blueprint(blueprint, url_prefix="/") diff --git a/server/static/favicon.ico b/server/static/favicon.ico index 4aaab1018e1b29374d78303ec2db60bc219fa3d1..f8cadf7f41f817d3e794065e8e35339fc3700dc3 100644 GIT binary patch literal 9662 zcmeI1ZD>C}Ol*_T z7A>_Daiz|7jIo6=_CaI>KNJxeGDQ3!W1pl95fLe&gd!z8`=7Qq-kzM~w$01FtmW79 z+;gAvoc}$!xzBTMRjLg99y_MO-%nLPA5p13QmIs*19Yh_0@ferCu7xxxowlNv9Zk2 z(NP0hANUPC1^tpA9>%M!pJ6|%!jf{-!866pIhL(A-0%(h{F%J-<1+hL% zhNjKL7#<$p=ka*Pyk74jpd=AwFxyfq%jLGY-B%Z{y020yV6icW6?5&_ zj>cGH1_uTYI|rSAIGs*P3xm!_nDbC9JzMGT@9Wpw`|XQ>6tUZ1IP4BTa6251Mu%hI z9H^4Pj*T2OIF?g~V-v>f5og=a6n2f>w(iEB?w%DuvFTmt?df&*_Vyj^>+4HszOAgQ zl5dyA+HCEzh5?DWyl~lSGutlPb}Ge6_xX;tj*a{u$y#=XXK#t`0&H9%oNs+*fiP zyzO*;lQ}pz_!_yGID!L?frzf^%4%D6!V}2_LXP;6N1NLgW1$zZ!;?B|E zZ?~cbAOUTXma`R=e^yph6345`GgZ4JAHK!BUo!1XbAqsIILgPDj(fU$ccTt?1Bl}x z^QkbLIS5F=h!jKAYEEm%0VN5aXb!0lwZKG|rHeSimd>tyhO)2g011eDZ|10T{eY6h z50X|<+tJ=}vc0W?1XPvj%clTwye=;-k6VN5v^qZ^Ik{Th%Uq4_$GB*9ujFIa?YR0| zTiSM@E?5M_aZO)bIuD5Bu4oQ%s z6!lk~t#$(9c&pRqEdV?RH!vyJDzY2QjebBJiu&On;Kr~RiuzF_OatQh8_((ofH>}p zG|T(iTigABI2856KfsM)F%oZX$e}^>#oXtx>p(5y=jstwpDf}% z#p8IuCny*fSATh_VV9xQ5CX(8q0P=Q0}`N-uQzYweb!HalEn9XeED%{Nm*f8Nf`++ zLiZsp>ad9Z_x3G$4Bqy6y&j*>M@hl!b@K7$$ND1utiA{}!bZZV89s*Y4AhX%1a)Lk zlcmj+$C2CP(>v;W6SO0f|7k81ZV?=C66UPXt%4gw5a2wxFY$8 z+UekpXV)O$o%)ozN}3~8 zE$V=p9F1-T&>GmIzPF#kj`>c3X~H`1hxQXOIF9ov`7R*e?*MKP2BLlS68gVL)w(4T z7dhw%n2+Sp=z1WGb7{MOH+wC}`v<_J_H@p>INDJgXf2zKnQA}vX>BI*O%>W-kvHE7 z^1l3?QW)nG(vEp{ujl6>w5uRbZ^ib&e*$BFLHisn-r23?dDxMhFR+&|cT(;d#Afdb zpM%xsY8qNrk0tfH3eD`C`o8{?g=$4jJ~x30Bx|j4S^xk1S1a%@9mYqy literal 17542 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∾54CYC%*w_J6m=Bmw^o5)QwLScwkNV(- zG-a<-=AB~K=Fnxm&M$&-=*4kx-)g*;N3?4KeWtuXDey9XfMSEyRzt8?zG$UJH@E* zv9_-Y@9Kpal{ub6Ue4+Dsu!GbcwLouYHb!5zlr}_nPQd=8E8gy?Fzkz|J$ka7Vi+h zOAL%SQgtBu2wIKrh&JFad)OF*BFIsS-wV*M9mr*G31!$2`Tu9WTfjQ3 Ti*ggBhPXe2Zv6lGsWk9E4E(~K diff --git a/server/static/logo_s.png b/server/static/logo_s.png index 76f59e144d0be859c5c520a64beadad75fc02c2b..b20236f1ffba6cbc94eb5b8fef4dddec73342900 100644 GIT binary patch delta 1618 zcmV-Y2Cez32;&TpB!3BTNLh0L01FcU01FcV0GgZ_000IRNkl z)gnIlP@`>WM6eG9E75Ai1|os7bP36t-JP9DcJADB&(DW@XMgw3{-Ns+4$M90cYfdB zzwt+xFria25Ck z@O_}Yo08dOeiHZ|&;effKR^LK3VaLr5Aft}N_Lm|DPRov0dNh_9dxwZ-vT}XoB$e? z^=aUxa{fzu1%F-uzCMJaJ7I5%h)e;G0bd2~t1LZ3(GRDq`pNz~KDL`J3yh0M8bTmV zQ&g2a&xb|`fh^1D^?JP+^`Fk!vm&wzJXo=H2)F|{w^PKYfHURqQQ(${e7@J~tvTnI zot2m4PC9Yh#f-wf~{e7x>q2gzt z=%1T|RKEaxwgURKEX&TSM()1*Fs)W=5a~z=p%y~!Ldad7=PrccLdbjwnGGR?Mq`S4 zz0T6oe}9QFUbWV~4?J2rXhftYBIjj(?u03$ohWfHsp{c0O}Xo?k25nf!}|LAl=rn? z8Ds7TwQTQl0m);`-_Ek^$$EYK#=^n^moHz&dyk0x4ftfKn*x&-c%T9b@a-%MG@Da2 z8VzpTSSH5!ifU)R=xkwUQAFfn5&3<$+dV!pF@Hg`*`(cWv%0!Un)VwaGG7g{I9Z!c$dE5`OjY-J?{7HgFvdX9R7(_R8{k1p!My`{4IoJp zvMkW)bcr!{WqN9=V2u1!#JsJlQh1?U+(3#^*_on?NV?q)ARFg+tFEeI zj2YB;$Tk$rwF=bB?+;Zs?jnmt2?kLWbAMZvVvHDLu+|Q2H7m;sl0+$;M z!`J623J#Y|RsBq5-2f)Wh=|~v9hB^7)p;u-?*Mb<#6wWjIL~ub6%h$+@-4t~<=9Ou z5MqoZNrLw^LdX%}R7K~aF~+8J6#+T@*ypNV|9@OnpBa3s z>Y9i=?wotIR`VpuFyBGjfdZEdaH>2z{q zl6+)jBsa#C`Ud&p=`RdN1%f{@Pl*+-y!UIy$<+|J$CoF)GHGuQ=!45-~pn-B(HJtg6m#-LqASOpFj?d@+Q) zA7f;Bc?DS6Xv`ho)g{nN&e?O;+UG%@0{!qF-qwJ0L4O%Sc(LE_FH4r}hjVU7cee-q zfU8$T1R=qnU7BcgHWN|Fk6mvW~ zITmOp7qdSwrmEr&fUfWAZDIGbGm9CW{>H8{=D25!#++jy>w5~f;0ykVfMvdHg%uSA zAoBY9mf}0|_9M&qrKP`?|9>S@BHJ;+stE5$jBTMxw(L&3oNqb;kDpv}B&2C?#A+nG z4KfK3Ykyhiif=waPj&TPgo=t{$gy_|;k_4pL~(Qz8RHkv=a@T}ZLXAoU%ht1l4!mx zcvuq+UsIe5W%WBWFa@z#g54t{G_Ja~l3mM93{g(ihaLSnnYnG$vUR28WsCJIKv6J( zmMHsoRMF6<&#thm-FQ*=DywN-+PPfgD=QZvXn)Yc{7;F?{nGahU`uDs!FYCh5q2Ue zUAF+^Ar6~*{`k5vc4KD%n+6BMCkIHjX=4PzUF}Oq#cwGES@CUN^V#eO> zI13kOgQ&1&FUrmKI@iM_k+y_#9J4widNm&6L83}6NB3h_LPfzk7Cjovsjj}tS@Xkl z#((`vwQpdCRis!rmGZmGh4fsp)c>S zS46>sM3D{y%z)yI0n6W4Sxgb!%dqEZyhYY{o(3c*n3wSubI3m2D|rU`PWu-G9&LD% zi9-c>Vb@DKtAQmF1?<_*Crp@ww{GzhCL&|$8F(8XZP*1PUOw9X3orn-Sc;Yz+73@| P00000NkvXXu0mjfQ- API Documentation - +