Merge pull request #70 from LedgerHQ/master

Add support for Ripple
This commit is contained in:
iancoleman
2017-06-05 13:55:44 +10:00
committed by GitHub
6 changed files with 4097 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -674,6 +674,7 @@
</tr>
</script>
<script src="js/polyfill.es6.js"></script>
<script src="js/basex.js"></script>
<script src="js/unorm.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
@@ -682,6 +683,7 @@
<script src="js/bitcoinjs-1-5-7.js"></script>
<script src="js/bitcoinjs-extensions.js"></script>
<script src="js/ethereumjs-util.js"></script>
<script src="js/ripple-util.js"></script>
<script src="js/sjcl-bip39.js"></script>
<script src="js/translate.js"></script>
<script src="js/phrases_en.js"></script>

2010
src/js/basex.js Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -593,6 +593,11 @@
var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
address = ethUtil.addHexPrefix(checksumAddress);
}
// Ripple values are different
if (networks[DOM.network.val()].name == "Ripple") {
privkey = convertRipplePriv(privkey);
address = convertRippleAdrr(address);
}
addAddressToList(indexText, address, pubkey, privkey);
}, 50)
}
@@ -1148,6 +1153,13 @@
DOM.bip44coin.val(6);
},
},
{
name: "Ripple",
onSelect: function() {
network = bitcoin.networks.bitcoin;
DOM.bip44coin.val(144);
},
},
{
name: "ShadowCash",
onSelect: function() {

10
src/js/ripple-util.js Normal file
View File

@@ -0,0 +1,10 @@
function convertRippleAdrr(address) {
return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
window.basex('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
)
}
function convertRipplePriv(priv) {
return window.basex('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(2)
}

View File

@@ -331,6 +331,36 @@ page.open(url, function(status) {
});
},
// Network can be set to ripple
function() {
page.open(url, function(status) {
// set the phrase and coin
var expected = "rLTFnqbmCVPGx6VfaygdtuKWJgcN4v1zRS";
page.evaluate(function() {
$(".phrase").val("ill clump only blind unit burden thing track silver cloth review awake useful craft whale all satisfy else trophy sunset walk vanish hope valve");
$(".phrase").trigger("input");
$(".network option[selected]").removeAttr("selected");
$(".network option").filter(function() {
return $(this).html() == "Ripple";
}).prop("selected", true);
$(".network").trigger("change");
});
// check the address is generated correctly
waitForGenerate(function() {
var actual = page.evaluate(function() {
return $(".address:first").text();
});
if (actual != expected) {
console.log("Litecoin address is incorrect");
console.log("Expected: " + expected);
console.log("Actual: " + actual);
fail();
}
next();
});
});
},
// Network can be set to dogecoin
function() {
page.open(url, function(status) {