UNPKG

base-58

Version:

Base58 encoding & decoding for Node.js & web agent windows.

109 lines (104 loc) 2.8 kB
module.exports = (tape, Base58) -> tape "Base58", (test) -> test.same Base58.encode.constructor, Function test.same Base58.decode.constructor, Function test.end() tape "encode valid string input", (test) -> test.plan FIXTURES.valid.length for fixture in FIXTURES.valid actual = Base58.encode(new Buffer(fixture.hex, 'hex')) test.same actual, fixture.string test.end() tape "decode valid hex input", (test) -> test.plan FIXTURES.valid.length for fixture in FIXTURES.valid actual = new Buffer(Base58.decode(fixture.string)).toString('hex') test.same actual, fixture.hex test.end() tape "can’t decode invalid input", (test) -> test.plan FIXTURES.invalid.length for fixture in FIXTURES.invalid impossible = -> Base58.decode(fixture.string) test.throws impossible, /decode received unacceptable input/ test.end() FIXTURES = "valid": [ { "hex": "", "string": "" }, { "hex": "61", "string": "2g" }, { "hex": "626262", "string": "a3gV" }, { "hex": "636363", "string": "aPEr" }, { "hex": "73696d706c792061206c6f6e6720737472696e67", "string": "2cFupjhnEsSn59qHXstmK2ffpLv2" }, { "hex": "00eb15231dfceb60925886b67d065299925915aeb172c06647", "string": "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L" }, { "hex": "516b6fcd0f", "string": "ABnLTmg" }, { "hex": "bf4f89001e670274dd", "string": "3SEo3LWLoPntC" }, { "hex": "572e4794", "string": "3EFU7m" }, { "hex": "ecac89cad93923c02321", "string": "EJDM8drfXA6uyA" }, { "hex": "10c8511e", "string": "Rt5zm" }, { "hex": "00000000000000000000", "string": "1111111111" }, { "hex": "801184cd2cdd640ca42cfc3a091c51d549b2f016d454b2774019c2b2d2e08529fd206ec97e", "string": "5Hx15HFGyep2CfPxsJKe2fXJsCVn5DEiyoeGGF6JZjGbTRnqfiD" }, { "hex": "003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187", "string": "16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS" } ], "invalid": [ { "description": "non-base58 string", "string": "invalid" }, { "description": "non-base58 alphabet", "string": "c2F0b3NoaQo=" }, { "description": "leading whitespace", "string": " 1111111111" }, { "description": "trailing whitespace", "string": "1111111111 " }, { "description": "unexpected character after whitespace", "string": " \t\n\u000b\f\r skip \r\f\u000b\n\t a" } ]