Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,50 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "msgdigest.s7i";
|
||||
include "encoding.s7i";
|
||||
|
||||
const func boolean: validBitcoinAddress (in string: address) is func
|
||||
result
|
||||
var boolean: isValid is FALSE;
|
||||
local
|
||||
var string: decoded is "";
|
||||
begin
|
||||
if succeeds(decoded := fromBase58(address)) and
|
||||
length(decoded) = 25 and decoded[1] = '\0;' and
|
||||
sha256(sha256(decoded[.. 21]))[.. 4] = decoded[22 ..] then
|
||||
isValid := TRUE;
|
||||
end if;
|
||||
end func;
|
||||
|
||||
const proc: checkValidationFunction (in string: address, in boolean: expected) is func
|
||||
local
|
||||
var boolean: isValid is FALSE;
|
||||
begin
|
||||
isValid := validBitcoinAddress(address);
|
||||
writeln((address <& ": ") rpad 37 <& isValid);
|
||||
if isValid <> expected then
|
||||
writeln(" *** Expected " <& expected <& " for " <& address <& ", but got " <& isValid <& ".");
|
||||
end if;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
begin
|
||||
checkValidationFunction("1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nK9", TRUE); # okay
|
||||
checkValidationFunction("1Q1pE5vPGEEMqRcVRMbtBK842Y6Pzo6nJ9", FALSE); # bad digest
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", TRUE); # okay
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62j", FALSE); # bad digest
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62X", FALSE); # bad digest
|
||||
checkValidationFunction("1ANNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", FALSE); # bad digest
|
||||
checkValidationFunction("oMRDCDfyQhEerkaSmwCfSPqf3MLgBwNvs", FALSE); # not version 0
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62iz", FALSE); # wrong length
|
||||
checkValidationFunction("1BGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", FALSE); # bad digest
|
||||
checkValidationFunction("1A Na15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", FALSE); # bad char
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62I", FALSE); # bad char
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62!", FALSE); # bad char
|
||||
checkValidationFunction("1AGNa15ZQXAZUgFiqJ3i7Z2DPU2J6hW62i", FALSE); # bad digest
|
||||
checkValidationFunction("1111111111111111111114oLvT2", TRUE); # okay
|
||||
checkValidationFunction("17NdbrSGoUotzeGCcMMCqnFkEvLymoou9j", TRUE); # okay
|
||||
checkValidationFunction("1badbadbadbadbadbadbadbadbadbadbad", FALSE); # wrong length
|
||||
checkValidationFunction("BZbvjr", FALSE); # wrong length
|
||||
checkValidationFunction("i55j", FALSE); # wrong length
|
||||
checkValidationFunction("16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM", TRUE); # okay
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue