diff --git a/src/base58.coffee b/src/base58.coffee index 6fff825..aeeddf3 100644 --- a/src/base58.coffee +++ b/src/base58.coffee @@ -5,6 +5,7 @@ class Base58Builder encode: (num) -> throw new Error('Value passed is not an integer.') unless /^\d+$/.test num + num = parseInt(num) unless typeof num == 'number' str = '' while num >= @base mod = num % @base diff --git a/test/base58_test.coffee b/test/base58_test.coffee index 3af1d9a..78a0eb7 100644 --- a/test/base58_test.coffee +++ b/test/base58_test.coffee @@ -10,6 +10,11 @@ describe 'Base58', -> for str, num of examples Base58.encode(num).should.eql(str) + describe 'when passed a string only containing numbers', -> + it 'encodes string after first converting it to an integer', -> + for str, num of examples + Base58.encode(num.toString()).should.eql(str) + describe 'when passed a float', -> it 'throws an error', -> (-> Base58.encode(3.14)).should