libra-sdk-mol
Version:
Javascript SDK for Libra Network and Move Smart Contract powered by MoveOnLibra OpenAPI
147 lines (146 loc) • 7.66 kB
JavaScript
const BaseAPI = require('../base_api');
module.exports = class TransactionAPI extends BaseAPI {
/** Get a transaction by version id
* @param { number } version
* @return { SignedTransactionWithInfo } json object of 'SignedTransactionWithInfo'
*/
async getTransaction(version){
version = this.checkParam(version, "version", "number", true);
let url = "/v1/transactions/{version}";
url = url.replace("{version}", version);
let data = {};
return await this.client.call_api(url, data);
};
/** Get a list of transactions by start_version and limit
* @param { number } start_version
* @param { number } limit
* @return { SignedTransactionWithInfo } json object of 'List of SignedTransactionWithInfo'
*/
async getTransactions(start_version, limit){
start_version = this.checkParam(start_version, "start_version", "number", true);
limit = this.checkParam(limit, "limit", "number", false);
let url = "/v1/transactions";
let data = {};
data["start_version"] = start_version;
data["limit"] = limit;
return await this.client.call_api(url, data);
};
/** Get the latest version number of transactions in libra blockchain
* @return { LatestVersionResult } json object of 'Latest Version'
*/
async getLatestVersion(){
let url = "/v1/transactions/latest_version";
let data = {};
return await this.client.call_api(url, data);
};
/** Get a list of latest transactions, return <limit> number transactions
* @param { number } limit
* @return { SignedTransactionWithInfo } json object of 'List of SignedTransactionWithInfo'
*/
async getTransactionLatest(limit){
limit = this.checkParam(limit, "limit", "number", false);
let url = "/v1/transactions/latest";
let data = {};
data["limit"] = limit;
return await this.client.call_api(url, data);
};
/** Get transaction by account_address and account sequence_number
* @param { string } account_address
* @param { number } sequence_number
* @return { SignedTransactionWithInfo } json object of 'SignedTransactionWithInfo'
*/
async getByAccountSeq(account_address, sequence_number){
account_address = this.checkParam(account_address, "account_address", "string", true);
sequence_number = this.checkParam(sequence_number, "sequence_number", "number", true);
let url = "/v1/transactions/acc_seq";
let data = {};
data["account_address"] = account_address;
data["sequence_number"] = sequence_number;
return await this.client.call_api(url, data);
};
/** Wait transaction finish it's execution on blockchain
* @param { string } account_address
* @param { number } sequence_number
* @return { SignedTransactionWithInfo } json object of 'SignedTransactionWithInfo'
*/
async waitTransaction(account_address, sequence_number){
account_address = this.checkParam(account_address, "account_address", "string", true);
sequence_number = this.checkParam(sequence_number, "sequence_number", "number", true);
let url = "/v1/transactions/wait_for_transaction";
let data = {};
data["account_address"] = account_address;
data["sequence_number"] = sequence_number;
return await this.client.call_api(url, data);
};
/** Mint micro-libra coins to an account.
* @param { string } receiver_account_address
* @param { string } auth_key_prefix
* @param { number } number_of_micro_libra
* @param { number } force_offical
* @return { SignedTransactionWithInfo } json object of 'SignedTransaction'
*/
async mint(receiver_account_address, auth_key_prefix, number_of_micro_libra, force_offical){
receiver_account_address = this.checkParam(receiver_account_address, "receiver_account_address", "string", true);
auth_key_prefix = this.checkParam(auth_key_prefix, "auth_key_prefix", "string", true);
number_of_micro_libra = this.checkParam(number_of_micro_libra, "number_of_micro_libra", "number", true);
force_offical = this.checkParam(force_offical, "force_offical", "number", false);
let url = "/v1/transactions/mint";
let data = {};
data["receiver_account_address"] = receiver_account_address;
data["auth_key_prefix"] = auth_key_prefix;
data["number_of_micro_libra"] = number_of_micro_libra;
data["force_offical"] = force_offical;
return await this.client.call_api(url, data, 'POST');
};
/** Mol supported mint service to mint micro-libra coins to an account.
* @param { string } receiver_account_address
* @param { string } auth_key_prefix
* @param { number } number_of_micro_libra
* @return { SignedTransactionWithInfo } json object of 'SignedTransaction'
*/
async mintMol(receiver_account_address, auth_key_prefix, number_of_micro_libra){
receiver_account_address = this.checkParam(receiver_account_address, "receiver_account_address", "string", true);
auth_key_prefix = this.checkParam(auth_key_prefix, "auth_key_prefix", "string", true);
number_of_micro_libra = this.checkParam(number_of_micro_libra, "number_of_micro_libra", "number", true);
let url = "/v1/transactions/mint_mol";
let data = {};
data["receiver_account_address"] = receiver_account_address;
data["auth_key_prefix"] = auth_key_prefix;
data["number_of_micro_libra"] = number_of_micro_libra;
return await this.client.call_api(url, data, 'POST');
};
/** Create account on the blockchain.
* @param { string } account_address
* @param { string } auth_key_prefix
* @return { SignedTransactionWithInfo } json object of 'SignedTransaction'
*/
async createAccount(account_address, auth_key_prefix){
account_address = this.checkParam(account_address, "account_address", "string", true);
auth_key_prefix = this.checkParam(auth_key_prefix, "auth_key_prefix", "string", true);
let url = "/v1/transactions/create_account";
let data = {};
data["account_address"] = account_address;
data["auth_key_prefix"] = auth_key_prefix;
return await this.client.call_api(url, data, 'POST');
};
/** Transfer micro-libra coins from sender account to receiver_account_address.
* @param { number } wallet_id
* @param { string } sender_account_address
* @param { string } receiver_account_address
* @param { number } number_of_micro_libra
* @return { SignedTransactionWithInfo } json object of 'SignedTransaction'
*/
async p2pTransfer(wallet_id, sender_account_address, receiver_account_address, number_of_micro_libra){
wallet_id = this.checkParam(wallet_id, "wallet_id", "number", true);
sender_account_address = this.checkParam(sender_account_address, "sender_account_address", "string", true);
receiver_account_address = this.checkParam(receiver_account_address, "receiver_account_address", "string", true);
number_of_micro_libra = this.checkParam(number_of_micro_libra, "number_of_micro_libra", "number", true);
let url = "/v1/transactions/transfer";
let data = {};
data["wallet_id"] = wallet_id;
data["sender_account_address"] = sender_account_address;
data["receiver_account_address"] = receiver_account_address;
data["number_of_micro_libra"] = number_of_micro_libra;
return await this.client.call_api(url, data, 'POST');
};
}