ref: 941fd1d0b8ec8903635302d849f339d72f601fa2
parent: 42c466c2812510fbaa74fc25db150cc99ffa537b
parent: 2fe166155f40f53c877ac734216e98b286e1c997
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Sat Jun 8 19:54:47 EDT 2013
merge
--- a/sys/src/cmd/btc/dat.h
+++ b/sys/src/cmd/btc/dat.h
@@ -4,6 +4,7 @@
enum
{TROOT,
+ TBLOCKS,
TADDR,
TADDRSUB,
TADDRTX,
--- a/sys/src/cmd/btc/fs.c
+++ b/sys/src/cmd/btc/fs.c
@@ -10,6 +10,7 @@
static char *addrwalk(Fid *, char *, Qid *);
char *balancestr(DirEntry *, Aux *);
char *txstr(DirEntry *, Aux *);
+char *blocksstr(DirEntry *, Aux *);
DirEntry entr[] = { [TROOT] = {@@ -16,7 +17,13 @@
.name = "",
.qid = {TROOT, 0, QTDIR},.par = TROOT,
- .sub = {TADDR},+ .sub = {TADDR, TBLOCKS},+ },
+ [TBLOCKS] = {+ .name = "blocks",
+ .qid = {TBLOCKS, 0, 0},+ .par = TROOT,
+ .str = blocksstr,
},
[TADDR] = {.name = "addr",
--- a/sys/src/cmd/btc/httpfs.c
+++ b/sys/src/cmd/btc/httpfs.c
@@ -74,14 +74,16 @@
char *
balancestr(DirEntry *, Aux *a)
{- char *s;
char buf[512];
sprint(buf, "http://blockchain.info/q/addressbalance/%s", a->addr);
- s = graburl(buf);
- if(s == nil)
- return nil;
- return s;
+ return graburl(buf);
+}
+
+char *
+blocksstr(DirEntry *, Aux *)
+{+ return graburl("http://blockchain.info/q/getblockcount");}
char *
--- /dev/null
+++ b/sys/src/cmd/btc/status
@@ -1,0 +1,31 @@
+#!/bin/rc
+wallet=$home/lib/wallet
+btc=/mnt/btc
+addr=`{awk ' { print $1 } ' < $wallet}+last=`{cat $btc/blocks}+cat $btc/addr/$addr/tx | sort +0n | uniq | tail -n 10 | awk '
+ BEGIN {+ split("'^$"addr^'", addrs)+ for(x in addrs)
+ my[addrs[x]] = 1
+ last='^$last^'
+ }
+ {+ f = -1
+ bal = 0
+ for(i = 4; i <= NF; i++){+ if($i == "|")
+ f = 1
+ else if(my[$i]){+ i++
+ bal += f*$i
+ }else
+ i++
+ }
+ d = last - $3
+ printf "%s %+15.4f %c %s\n", $1, bal/1e8, (d > 9) ? 32 : (d + 48), $2
+ }
+'
+echo '================================================================================================'
+cat $btc/addr/$addr/balance | awk ' { a += $1 } END { printf "balance %18.4f BTC\n", a/1e8 } '+
--
⑨