more btc stuff
This commit is contained in:
parent
a715d9ec94
commit
964b86fcd9
|
@ -153,6 +153,14 @@ doscript(char **args, int n, uchar *script, int *len, TxIn *ti)
|
||||||
free(b);
|
free(b);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(args[i][0] == '['){
|
||||||
|
k = strtol(args[i] + 1, &s, 0);
|
||||||
|
b = mallocz(k, 1);
|
||||||
|
hexdec(s+1, b, k);
|
||||||
|
pushdat(&scr, b, k);
|
||||||
|
free(b);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
sysfatal("invalid word %s", args[i]);
|
sysfatal("invalid word %s", args[i]);
|
||||||
next: ;
|
next: ;
|
||||||
}
|
}
|
||||||
|
@ -183,6 +191,7 @@ serialize(uchar *buf, int sig)
|
||||||
s += ti->sclen;
|
s += ti->sclen;
|
||||||
}
|
}
|
||||||
if(sig == i){
|
if(sig == i){
|
||||||
|
varenc(ti->scoldlen, &s);
|
||||||
memcpy(s, ti->scold, ti->scoldlen);
|
memcpy(s, ti->scold, ti->scoldlen);
|
||||||
s += ti->scoldlen;
|
s += ti->scoldlen;
|
||||||
}
|
}
|
||||||
|
@ -211,7 +220,7 @@ serialize(uchar *buf, int sig)
|
||||||
*s++ = 0;
|
*s++ = 0;
|
||||||
*s++ = 0;
|
*s++ = 0;
|
||||||
if(sig != -1){
|
if(sig != -1){
|
||||||
*s++ = 0;
|
*s++ = 1;
|
||||||
*s++ = 0;
|
*s++ = 0;
|
||||||
*s++ = 0;
|
*s++ = 0;
|
||||||
*s++ = 0;
|
*s++ = 0;
|
||||||
|
@ -254,7 +263,7 @@ main()
|
||||||
TxIn *ti;
|
TxIn *ti;
|
||||||
Sig *si;
|
Sig *si;
|
||||||
uchar hash[32];
|
uchar hash[32];
|
||||||
uchar sig[100];
|
uchar sig[100], c;
|
||||||
|
|
||||||
afd = open("/mnt/factotum/rpc", ORDWR);
|
afd = open("/mnt/factotum/rpc", ORDWR);
|
||||||
if(afd < 0)
|
if(afd < 0)
|
||||||
|
@ -276,6 +285,11 @@ main()
|
||||||
if(tokenize(line, args, nelem(args)) != 2)
|
if(tokenize(line, args, nelem(args)) != 2)
|
||||||
sysfatal("line %d: invalid data", linenum);
|
sysfatal("line %d: invalid data", linenum);
|
||||||
hexdec(args[0], ti->prev, 32);
|
hexdec(args[0], ti->prev, 32);
|
||||||
|
for(n = 0; n < 16; n++){
|
||||||
|
c = ti->prev[n];
|
||||||
|
ti->prev[n] = ti->prev[31-n];
|
||||||
|
ti->prev[31-n] = c;
|
||||||
|
}
|
||||||
i = atoi(args[1]);
|
i = atoi(args[1]);
|
||||||
ti->prev[32] = i;
|
ti->prev[32] = i;
|
||||||
ti->prev[33] = i >> 8;
|
ti->prev[33] = i >> 8;
|
||||||
|
@ -314,8 +328,8 @@ main()
|
||||||
sha2_256(hash, 32, hash, nil);
|
sha2_256(hash, 32, hash, nil);
|
||||||
for(si = ti->sig; si != nil; si = si->n){
|
for(si = ti->sig; si != nil; si = si->n){
|
||||||
sign(hash, ti->sig->priv, sig + 1, &n);
|
sign(hash, ti->sig->priv, sig + 1, &n);
|
||||||
print("%d\n", n);
|
sig[0] = ++n;
|
||||||
sig[0] = n++;
|
sig[n++] = 1;
|
||||||
memmove(ti->sc + si->loc + n, ti->sc + si->loc, ti->sclen - si->loc);
|
memmove(ti->sc + si->loc + n, ti->sc + si->loc, ti->sclen - si->loc);
|
||||||
memmove(ti->sc + si->loc, sig, n);
|
memmove(ti->sc + si->loc, sig, n);
|
||||||
ti->sclen += n;
|
ti->sclen += n;
|
||||||
|
@ -329,7 +343,7 @@ main()
|
||||||
if((i%32)==31)
|
if((i%32)==31)
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
if((i%16)!=0)
|
if((i%32)!=0)
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -514,6 +514,7 @@ base58dec(char *src, uchar *dst, int len)
|
||||||
{
|
{
|
||||||
mpint *n, *b, *r;
|
mpint *n, *b, *r;
|
||||||
char *t;
|
char *t;
|
||||||
|
int l;
|
||||||
|
|
||||||
n = mpnew(0);
|
n = mpnew(0);
|
||||||
r = mpnew(0);
|
r = mpnew(0);
|
||||||
|
@ -531,7 +532,9 @@ base58dec(char *src, uchar *dst, int len)
|
||||||
mpmul(n, b, n);
|
mpmul(n, b, n);
|
||||||
mpadd(n, r, n);
|
mpadd(n, r, n);
|
||||||
}
|
}
|
||||||
mptobe(n, dst, len, nil);
|
memset(dst, 0, len);
|
||||||
|
l = (mpsignif(n) + 7) / 8;
|
||||||
|
mptobe(n, dst + (len - l), l, nil);
|
||||||
mpfree(n);
|
mpfree(n);
|
||||||
mpfree(r);
|
mpfree(r);
|
||||||
mpfree(b);
|
mpfree(b);
|
||||||
|
|
Loading…
Reference in a new issue