mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-17 11:51:32 +03:00
BTC base58check @uc odour v1
This commit is contained in:
parent
d5b51d1842
commit
82f89036e2
@ -1151,6 +1151,30 @@
|
|||||||
++ tos ~/ %tos :: fetch suffix
|
++ tos ~/ %tos :: fetch suffix
|
||||||
|=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
|
|=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
|
||||||
--
|
--
|
||||||
|
::
|
||||||
|
++ fa :: base58check
|
||||||
|
=+ key='123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
|
||||||
|
=+ ^- yek=@ux ~+
|
||||||
|
=- yek:(roll (trip key) -)
|
||||||
|
|= [a=char b=@ yek=_`@ux`(fil 3 256 0xff)]
|
||||||
|
[+(b) (mix yek (lsh 3 `@u`a (~(inv fe 3) b)))]
|
||||||
|
|%
|
||||||
|
++ cha |=(a=char `(unit ,@uF)`=+(b=(cut 3 [`@`a 1] yek) ?:(=(b 0xff) ~ `b)))
|
||||||
|
++ tok
|
||||||
|
|= a=@ux ^- @ux
|
||||||
|
=+ b=(pad a)
|
||||||
|
=- (~(net fe 5) (end 3 4 (shay 32 -)))
|
||||||
|
(shay (add b (met 3 a)) (lsh 3 b (swap 3 a)))
|
||||||
|
::
|
||||||
|
++ pad |=(a=@ =+(b=(met 3 a) ?:((gte b 21) 0 (sub 21 b))))
|
||||||
|
++ enc |=(a=@ux `@ux`(mix (lsh 3 4 a) (tok a)))
|
||||||
|
++ den
|
||||||
|
|= a=@ux ^- (unit ,@ux)
|
||||||
|
=+ b=(rsh 3 4 a)
|
||||||
|
?. =((tok b) (end 3 4 a))
|
||||||
|
~
|
||||||
|
`b
|
||||||
|
--
|
||||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
:: section 2cF, signed and modular ints ::
|
:: section 2cF, signed and modular ints ::
|
||||||
::
|
::
|
||||||
@ -3208,6 +3232,7 @@
|
|||||||
++ ab
|
++ ab
|
||||||
|%
|
|%
|
||||||
++ bix (bass 16 (stun [2 2] six))
|
++ bix (bass 16 (stun [2 2] six))
|
||||||
|
++ fem (sear |=(a=@ (cha:fa a)) aln)
|
||||||
++ hif (boss 256 ;~(plug tip tiq (easy ~)))
|
++ hif (boss 256 ;~(plug tip tiq (easy ~)))
|
||||||
++ huf %+ cook
|
++ huf %+ cook
|
||||||
|=([a=@ b=@] (wred:un ~(zug mu ~(zag mu [a b]))))
|
|=([a=@ b=@] (wred:un ~(zug mu ~(zag mu [a b]))))
|
||||||
@ -3267,6 +3292,7 @@
|
|||||||
hif:ab
|
hif:ab
|
||||||
tiq:ab
|
tiq:ab
|
||||||
==
|
==
|
||||||
|
++ fim (sear den:fa (bass 58 (plus fem:ab)))
|
||||||
++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
|
++ hex (ape (bass 0x1.0000 ;~(plug qex:ab (star ;~(pfix dog qix:ab)))))
|
||||||
++ lip =+ tod=(ape ted:ab)
|
++ lip =+ tod=(ape ted:ab)
|
||||||
(bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
|
(bass 256 ;~(plug tod (stun [3 3] ;~(pfix dog tod))))
|
||||||
@ -3388,6 +3414,7 @@
|
|||||||
^= gam ^- [p=tape q=tape]
|
^= gam ^- [p=tape q=tape]
|
||||||
?+ hay [~ ((ox-co [10 3] |=(a=@ ~(d ne a))) q.p.lot)]
|
?+ hay [~ ((ox-co [10 3] |=(a=@ ~(d ne a))) q.p.lot)]
|
||||||
%b [['0' 'b' ~] ((ox-co [2 4] |=(a=@ ~(d ne a))) q.p.lot)]
|
%b [['0' 'b' ~] ((ox-co [2 4] |=(a=@ ~(d ne a))) q.p.lot)]
|
||||||
|
%c [['0' 'c' (reap (pad:fa q.p.lot) '1')] (c-co (enc:fa q.p.lot))]
|
||||||
%i [['0' 'i' ~] ((d-co 1) q.p.lot)]
|
%i [['0' 'i' ~] ((d-co 1) q.p.lot)]
|
||||||
%x [['0' 'x' ~] ((ox-co [16 4] |=(a=@ ~(x ne a))) q.p.lot)]
|
%x [['0' 'x' ~] ((ox-co [16 4] |=(a=@ ~(x ne a))) q.p.lot)]
|
||||||
%v [['0' 'v' ~] ((ox-co [32 5] |=(a=@ ~(x ne a))) q.p.lot)]
|
%v [['0' 'v' ~] ((ox-co [32 5] |=(a=@ ~(x ne a))) q.p.lot)]
|
||||||
@ -3410,6 +3437,7 @@
|
|||||||
=+ rex=*tape
|
=+ rex=*tape
|
||||||
=< |%
|
=< |%
|
||||||
++ a-co |=(dat=@ ((d-co 1) dat))
|
++ a-co |=(dat=@ ((d-co 1) dat))
|
||||||
|
++ c-co (em-co [58 1] |=([? b=@ c=tape] [~(c ne b) c]))
|
||||||
++ d-co |=(min=@ (em-co [10 min] |=([? b=@ c=tape] [~(d ne b) c])))
|
++ d-co |=(min=@ (em-co [10 min] |=([? b=@ c=tape] [~(d ne b) c])))
|
||||||
++ r-co
|
++ r-co
|
||||||
|= [syn=? nub=@ der=@ ign=(unit tape) ne=?]
|
|= [syn=? nub=@ der=@ ign=(unit tape) ne=?]
|
||||||
@ -3474,6 +3502,7 @@
|
|||||||
::
|
::
|
||||||
++ ne
|
++ ne
|
||||||
|_ tig=@
|
|_ tig=@
|
||||||
|
++ c (cut 3 [tig 1] key:fa)
|
||||||
++ d (add tig '0')
|
++ d (add tig '0')
|
||||||
++ x ?:((gte tig 10) (add tig 87) d)
|
++ x ?:((gte tig 10) (add tig 87) d)
|
||||||
++ v ?:((gte tig 10) (add tig 87) d)
|
++ v ?:((gte tig 10) (add tig 87) d)
|
||||||
@ -3495,6 +3524,7 @@
|
|||||||
;~ pfix (just '0')
|
;~ pfix (just '0')
|
||||||
;~ pose
|
;~ pose
|
||||||
(stag %ub ;~(pfix (just 'b') bay:ag))
|
(stag %ub ;~(pfix (just 'b') bay:ag))
|
||||||
|
(stag %uc ;~(pfix (just 'c') fim:ag))
|
||||||
(stag %ui ;~(pfix (just 'i') dim:ag))
|
(stag %ui ;~(pfix (just 'i') dim:ag))
|
||||||
(stag %ux ;~(pfix (just 'x') hex:ag))
|
(stag %ux ;~(pfix (just 'x') hex:ag))
|
||||||
(stag %uv ;~(pfix (just 'v') viz:ag))
|
(stag %uv ;~(pfix (just 'v') viz:ag))
|
||||||
@ -5329,10 +5359,16 @@
|
|||||||
++ shax :: sha-256
|
++ shax :: sha-256
|
||||||
~/ %shax
|
~/ %shax
|
||||||
|= ruz=@ ^- @
|
|= ruz=@ ^- @
|
||||||
|
(shay [(met 3 ruz) ruz])
|
||||||
|
::
|
||||||
|
++ shay :: sha-256 with length
|
||||||
|
~/ %shay
|
||||||
|
|= [len=@u ruz=@] ^- @
|
||||||
~| %sha
|
~| %sha
|
||||||
|
=> .(ruz (cut 3 [0 len] ruz))
|
||||||
=+ [few==>(fe .(a 5)) wac=|=([a=@ b=@] (cut 5 [a 1] b))]
|
=+ [few==>(fe .(a 5)) wac=|=([a=@ b=@] (cut 5 [a 1] b))]
|
||||||
=+ [sum=sum.few ror=ror.few net=net.few inv=inv.few]
|
=+ [sum=sum.few ror=ror.few net=net.few inv=inv.few]
|
||||||
=+ ral=(lsh 0 3 (met 3 ruz))
|
=+ ral=(lsh 0 3 len)
|
||||||
=+ ^= ful
|
=+ ^= ful
|
||||||
%+ can 0
|
%+ can 0
|
||||||
:~ [ral ruz]
|
:~ [ral ruz]
|
||||||
|
Loading…
Reference in New Issue
Block a user