Skip to content

Commit

Permalink
Fixing the babel, scrypt, and base58 issues
Browse files Browse the repository at this point in the history
  • Loading branch information
bwhitn committed Oct 22, 2018
1 parent 5155d0e commit f4de4de
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"node": "6.5"
},
"modules": false,
"useBuiltIns": "usage"
"useBuiltIns": "entry"
}]
],
"plugins": [
Expand Down
10 changes: 10 additions & 0 deletions src/core/operations/FromBase58.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ class FromBase58 extends Operation {

if (input.length === 0) return [];

let zeroPrefix = 0;
for (let i = 0; i < input.length && input[i] === alphabet[0]; i++) {
zeroPrefix++;
}

[].forEach.call(input, function(c, charIndex) {
const index = alphabet.indexOf(c);

Expand Down Expand Up @@ -98,6 +103,11 @@ class FromBase58 extends Operation {
}
});

while (zeroPrefix > 0) {
result.push(0);
zeroPrefix--;
}

return result.reverse();
}

Expand Down
2 changes: 1 addition & 1 deletion src/core/operations/Scrypt.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class Scrypt extends Operation {
* @returns {string}
*/
run(input, args) {
const salt = Utils.convertToByteString(args[0].string || "", args[0].option),
const salt = Buffer.from(Utils.convertToByteArray(args[0].string || "", args[0].option)),
iterations = args[1],
memFactor = args[2],
parallelFactor = args[3],
Expand Down
7 changes: 6 additions & 1 deletion src/core/operations/ToBase58.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ class ToBase58 extends Operation {

if (input.length === 0) return "";

let zeroPrefix = 0;
for (let i = 0; i < input.length && input[i] === 0; i++) {
zeroPrefix++;
}

input.forEach(function(b) {
let carry = (result[0] << 8) + b;
result[0] = carry % 58;
Expand All @@ -74,7 +79,7 @@ class ToBase58 extends Operation {
return alphabet[b];
}).reverse().join("");

while (result.length < input.length) {
while (zeroPrefix--) {
result = alphabet[0] + result;
}

Expand Down
22 changes: 22 additions & 0 deletions test/tests/operations/Base58.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,28 @@ TestRegister.addTests([
},
],
},
{
name: "To Base58 with null prefix and suffix",
input: "\0\0\0Hello\0\0\0",
expectedOutput: "111D7LMXYjHjTu",
recipeConfig: [
{
op: "To Base58",
args: ["123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],
},
],
},
{
name: "From Base58 with null prefix and suffix",
input: "111D7LMXYjHjTu",
expectedOutput: "\0\0\0Hello\0\0\0",
recipeConfig: [
{
op: "From Base58",
args: ["123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],
},
],
},
{
name: "From Base58 (Bitcoin): 'StV1DL6CwTryKyV'",
input: "StV1DL6CwTryKyV",
Expand Down

0 comments on commit f4de4de

Please sign in to comment.