Bitcoin/address validation: Difference between revisions

Content added Content deleted
(→‎{{header|Factor}}: use map-reduce instead of map and reduce)
Line 448: Line 448:
CONSTANT: ALPHABET "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
CONSTANT: ALPHABET "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"


: base58>bigint ( digits -- n )
: base58>bigint ( str -- n )
[ ALPHABET index ]
[ ALPHABET index ]
[ [ 58 * ] [ + ] bi* ] map-reduce ;
[ [ 58 * ] [ + ] bi* ] map-reduce ;


: base58> ( str -- n ) base58>bigint 25 >be ;
: base58> ( str -- bytes ) base58>bigint 25 >be ;


: btc-checksum ( bytes -- checksum-bytes )
: btc-checksum ( bytes -- checksum-bytes )