dogecoin-gatewayd-plugin
Version:
Three unix processes designed to automate the integration between a ripple gateway using gatewayd and a dogecoind server.
72 lines (63 loc) • 2.41 kB
JavaScript
// Generated by CoffeeScript 1.7.1
var config, getNewDogecoinAddress, getNewGatewayAccount, loopAndSetNewGatewayExternalAccount, request, setDogecoinAddress;
loopAndSetNewGatewayExternalAccount = function(callback) {
return getNewGatewayAccount(function(error, gatewayExternalAccount) {
if (error) {
console.log("ERROR", error);
return callback(callback);
} else if (gatewayExternalAccount) {
return setDogecoinAddress(gatewayExternalAccount.id, function(error, gatewayExternalAccount) {
if (error) {
callback(callback);
return console.log("ERROR", error);
} else {
console.log("UPDATED", gatewayExternalAccount);
return callback(callback);
}
});
} else {
return callback(callback);
}
});
};
getNewGatewayAccount = function(callback) {
return request.get(config.get("gatewaydDomain") + "/v1/external_accounts?name=default").auth(config.get("adminEmail"), config.get("apiKey")).end(function(error, response) {
var account;
if (error) {
return callback(error, null);
} else {
try {
account = response.body.external_accounts[0];
return callback(null, account);
} catch (_error) {
error = _error;
return callback(error, null);
}
}
});
};
getNewDogecoinAddress = function(callback) {
return request.get(config.get("dogecoinExpressDomain") + "/v1/getnewaddress").auth("admin", config.get("dogecoinExpressApiKey")).end(function(error, response) {
return callback(error, response.body.address);
});
};
setDogecoinAddress = function(externalAccountId, callback) {
return getNewDogecoinAddress(function(error, dogecoinAddress) {
return request.put(config.get("gatewaydDomain") + "/v1/external_accounts/" + externalAccountId).send({
name: dogecoinAddress
}).auth(config.get("adminEmail"), config.get("apiKey")).end(function(error, response) {
if (error) {
return callback(error, null);
} else {
console.log(error, response.body);
return callback(null, response.body.external_account);
}
});
});
};
request = require("superagent");
config = require(__dirname + "/config/config.js");
if (process.env.NODE_ENV !== "production") {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}
loopAndSetNewGatewayExternalAccount(loopAndSetNewGatewayExternalAccount);