@@ -3,6 +3,16 @@ import { randomValues } from '@exodus/crypto/randomBytes'
33import { test } from 'node:test'
44import bs58 from 'bs58'
55
6+ test ( 'zeros' , ( t ) => {
7+ for ( let size = 0 ; size <= 1024 ; size ++ ) {
8+ const zeros = new Uint8Array ( size )
9+ const expected = '1' . repeat ( size )
10+ t . assert . strictEqual ( toBase58 ( zeros ) , expected , `[0] x${ size } toBase58` )
11+ t . assert . strictEqual ( bs58 . encode ( zeros ) , expected , `[0] x${ size } bs58.encode` ) // matches bs58
12+ t . assert . deepStrictEqual ( fromBase58 ( expected ) , zeros , `[0] x${ size } fromBase58` )
13+ }
14+ } )
15+
616test ( 'toBase58 matches bs58, static data' , ( t ) => {
717 for ( let size = 0 ; size < 180 ; size ++ ) {
818 const zeros = new Uint8Array ( size )
@@ -16,6 +26,16 @@ test('toBase58 matches bs58, static data', (t) => {
1626 }
1727} )
1828
29+ test ( 'toBase58 matches bs58, maximum char repeated' , ( t ) => {
30+ const maxChar = 'z'
31+ for ( let size = 0 ; size < 300 ; size ++ ) {
32+ const encoded = maxChar . repeat ( size )
33+ const decoded = fromBase58 ( encoded )
34+ t . assert . strictEqual ( toBase58 ( decoded ) , encoded , `${ maxChar } x${ size } toBase58` )
35+ t . assert . strictEqual ( bs58 . encode ( decoded ) , encoded , `${ maxChar } x${ size } ` ) // matches bs58
36+ }
37+ } )
38+
1939test ( 'sizes roundtrip, static data' , ( t ) => {
2040 for ( let size = 0 ; size < 260 ; size ++ ) {
2141 const zeros = new Uint8Array ( size )
0 commit comments