We are a cryptocurrency exchange looking for someone to help us with integrating new wallet APIs to our nodejs system.
You would be programming the implementation of our standard class/interface structure for new wallet APIs.
The work of course requires a lot of research and wallet installation (usually on ubuntu).
For some wallets it might be necessary to create a separate script f.e for the purposes of redirecting funds to a main address.
Pay depends on the possible complexity of each job but we are ready to give very good pay.
If you are interested in the job and/or have additional questions, don't hesitate to PM.
Here is the template:
/*
------------------------------ INFO ------------------------------
- This file is a template for making new wallet APIs.
------------------------------ GENERAL RULES ------------------------------
- General Rule 1:
All public methods must return (through callback) the data as a JSON object with the structure:
{
error: //Error code or info if error occured, empty string otherwise.
data: //The data to be returned
}
The return data of each method is specified under each method separately.
------------------------------ THE COIN OBJECT ------------------------------
All methods are given as first parameter a Coin object as an argument named 'coin'.
The coin object has the structure:
{
currency: //String, the ticker shorthand name of the coin
walletserver: //String, the server IP address of the coin wallet
walletport: //Integer, the server port of the coin wallet
}
------------------------------ METHODS ------------------------------
- getBalance:
Info: Fetches the total usable balance of the specified wallet.
Arguments: Coin coin, Function callback
Return Data: Float, accuracy of 8 decimals after zero.
- getInfo:
Info: Returns general info from the wallet (at the very least tells the current block count).
Arguments: Coin coin, Function callback
Return Data: Object with at least the following properties:
{
blocks: //Integer, block count
}
- withdraw:
Info: Makes a transaction from the wallet. The message is optional but always given (empty string if none).
Arguments: Coin coin, String address, Float amount, String message, Function callback
Return Data: String, unique transaction id.
- listTransactions:
Info: Lists all transactions up to a specified limit, starting from oldest.
Arguments: Coin coin, Integer limit, Function callback
Return Data: Array containing transaction objects:
{
address: //String, destination address
category: //String, either "receive" or "send"
amount: //Float, transaction amount
confirmations: //Integer, amount of confirmations transaction has
txid: //String, unique transaction id
time: //Integer, unix timestamp of when transaction occured
}
- validateAddress:
Info: Checks if the given address is valid.
Arguments: Coin coin, String address, Function callback
Return Data: Boolean, true if address is valid, otherwise false
- generateAddress:
Info: Generates a new address and returns it.
Arguments: Coin coin, Function callback
Return Data: String, the address that was generated
*/
var WalletAPI = function() {
"use strict";
this.getBalance = function(coin, callback) {
}
this.getInfo = function(coin, callback) {
}
this.withdraw = function(coin, address, amount, message, callback) {
}
this.listTransactions = function(coin, limit, callback) {
}
this.validateAddress = function(coin, address, callback) {
}
this.generateAddress = function(coin, callback) {
}
}
module.exports = new WalletAPI();