Author

Topic: [HIRING] Nodejs programmer to integrate new wallet APIs (Read 117 times)

MCR
sr. member
Activity: 266
Merit: 250
Bump
MCR
sr. member
Activity: 266
Merit: 250
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:

Code:

/*

------------------------------ 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();

Jump to: