]> gitweb.factorcode.org Git - factor.git/commitdiff
base58: adding base58-check.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 4 Dec 2020 18:56:22 +0000 (10:56 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 4 Dec 2020 18:56:22 +0000 (10:56 -0800)
extra/base58/base58.factor

index ee2124e001a2483c87cc7b660b4b735005db30fe..122a5c50462d7b9e40bd8b93fc0bbbbbb01a3635 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2020 John Benediktsson.
 ! See http://factorcode.org/license.txt for BSD license.
 
-USING: base64.private byte-arrays io.binary kernel
-kernel.private literals math sequences ;
+USING: base64.private byte-arrays checksums checksums.sha
+io.binary kernel kernel.private literals math sequences ;
 
 IN: base58
 
@@ -42,3 +42,16 @@ PRIVATE>
     [ dup zero? ] [ 256 /mod accum push ] until drop
     i [ 0 accum push ] times
     accum reverse! B{ } like ;
+
+<PRIVATE
+
+: base58-check ( base58 -- base58-check )
+    2 [ sha-256 checksum-bytes ] times ;
+
+PRIVATE>
+
+: >base58-check ( seq -- base58-check )
+    dup base58-check 4 head-slice append >base58 ;
+
+: base58-check> ( base58-check -- seq )
+    base58> 4 cut* [ dup base58-check 4 head-slice ] [ assert-sequence= ] bi* ;