@dojima-wallet/connection
Version:
Initialise and connection for layer 1&2 blockchain
117 lines (111 loc) • 3.18 kB
text/typescript
import { TxType } from "../client";
import axios from "axios";
import { AddressInfo, TransactionInfo, TransactionOperation } from "./types";
/**
* Get address information.
*
* @see https://github.com/EverexIO/Ethplorer/wiki/Ethplorer-API#get-address-info
*
* @param {string} baseUrl The ethplorer api url.
* @param {string} address
* @param {string} apiKey The ethplorer API key. (optional)
* @returns {AddressInfo} The address information.
*/
export const getAddress = async (
baseUrl: string,
address: string,
apiKey?: string
): Promise<AddressInfo> => {
const response = await axios.get(`${baseUrl}/getAddressInfo/${address}`, {
params: {
apiKey: apiKey || "freekey",
},
});
return response.data;
};
/**
* Get transaction by hash.
*
* @see https://github.com/EverexIO/Ethplorer/wiki/Ethplorer-API#get-transaction-info
*
* @param {string} baseUrl The ethplorer api url.
* @param {string} hash The transaction hash.
* @param {string} apiKey The ethplorer API key. (optional)
* @returns {Transactions} The transaction result.
*/
export const getTxInfo = async (
baseUrl: string,
hash: string,
apiKey?: string
): Promise<TransactionInfo> => {
const response = await axios.get(`${baseUrl}/getTxInfo/${hash}`, {
params: {
apiKey: apiKey || "freekey",
},
});
return response.data;
};
/**
* Get ETH transactions.
*
* @see https://github.com/EverexIO/Ethplorer/wiki/Ethplorer-API#get-address-transactions
*
* @param {string} baseUrl The ethplorer api url.
* @param {string} address The transaction hash.
* @param {number} limit The maximum number of transactions.
* @param {number} timestamp The start timestamp.
* @param {string} apiKey The ethplorer API key. (optional)
* @returns {Transactions} The transaction result.
*/
export const getAddressTransactions = async (
baseUrl: string,
address: string,
limit?: number,
timestamp?: number,
apiKey?: string
): Promise<TransactionInfo[]> => {
const response = await axios.get(
`${baseUrl}/getAddressTransactions/${address}`,
{
params: {
apiKey: apiKey || "freekey",
limit,
timestamp,
},
}
);
return response.data;
};
/**
* Get token transactions.
*
* @see https://github.com/EverexIO/Ethplorer/wiki/Ethplorer-API#get-last-address-operations
*
* @param {string} baseUrl The ethplorer api url.
* @param {string} address The transaction hash.
* @param {string} token The token address.
* @param {number} limit The maximum number of transactions.
* @param {number} timestamp The start timestamp.
* @param {string} apiKey The ethplorer API key. (optional)
* @returns {Transactions} The transaction result.
*/
export const getAddressHistory = async (
baseUrl: string,
address: string,
token: string,
limit?: number,
timestamp?: number,
apiKey?: string
): Promise<TransactionOperation[]> => {
const response = await axios.get(`${baseUrl}/getAddressHistory/${address}`, {
params: {
apiKey: apiKey || "freekey",
token,
limit,
timestamp,
showZeroValues: true,
type: TxType.Transfer,
},
});
return response.data.operations;
};