.build
.config
index.ts
tsconfig.json
yarn-error.log
Packager files
package.json
yarn.lock
Config files
.replit
replit.nix
//Imports
import { Client, defaultBTCParams } from "@xchainjs/xchain-bitcoin"
import { baseToAsset } from "@xchainjs/xchain-util"
import { Network, TxHistoryParams } from "@xchainjs/xchain-client"
// Query a given address
const queryWalletBalance = async (client: Client, address: string) => {
if (client.validateAddress(address) === false) {
console.log(`Address: ${address} is invalid`);
return;
}
try {
const balances = await client.getBalance(address)
if (balances[0] !== undefined) {
const assetAmount = baseToAsset(balances[0].amount).amount()
console.log(`Asset address balance is : ${assetAmount} \n`)
} else {
console.log(`Address has not balance \n`)
}
} catch (error) {
console.log(`Caught ${error}`)
}
}
// Query a given transaction hash
const queryTransactionData = async (client: Client, txId: string) => {
try {
console.log(`Urls for tx is: ${client.getExplorerTxUrl(txId)}`)
const txData = await client.getTransactionData(txId)
console.log(txData)
// console.log(`\n ${JSON.stringify(txData)}`)
} catch (error) {
console.log(`Caught ${error}`)
}
}
const queryTransactionHistory = async (client: Client, address: string) => {
try {
const txHistoryParams: TxHistoryParams = {
address: address, // Address to get history for
// offset?: number // Optional Offset
limit: 5 // Optional Limit of transactions
// startTime?: Date // Optional start time
// asset?: string // Optional asset. Result transactions will be filtered by this asset
}
const txHistory = await client.getTransactions(txHistoryParams)
console.log(`The address has ${txHistory.total.toString()} transactions`)
if ((txHistory).total > 0) {
txHistory.txs.forEach(tx => console.log(tx.hash)) // printing the hashs
//console.log((txHistory).txs[0]) // print tx
}
} catch (error) {
console.log(`Caught ${error}`)
}
}
const getTransactionHistory = async (client: Client) => {
let address = client.getAddress()
console.log(`Address is: ${address}`)
try {
await queryWalletBalance(client, address)
await queryTransactionHistory(client, address)
} catch (error) {
console.log(`Caught ${error}`)
}
}
const getFeeData = async () => {
let btcClient = new Client()
try {
const fee = await btcClient.getFeeRates()
console.log(fee)
const { fast, fastest, average } = await btcClient.getFees()
console.log(`Fees Fast: ${baseToAsset(fast).amount()} Fastest: ${baseToAsset(fastest).amount()} Average: ${baseToAsset(average).amount()}`)
} catch (e) {
console.log(e)
}
}
// Show the query functions of a client.
const main = async () => {
// See https://replit.com/@thorchain/Config-and-Set-Up#index.ts for wallet set up examples
const btcClientEmpty = new Client() // blank client can be used to query
const address = 'bc1qpmx6747ua83y3mgkgat56ax3dtdx4skpu2f0ta'
const txId = '88739693538c42d75ed239f62a7d0318f073eea216966786bf57838d6454e8eb'
await queryWalletBalance(btcClientEmpty, address)
await queryTransactionData(btcClientEmpty, txId)
await queryTransactionHistory(btcClientEmpty, address)
// await getFeeData()
console.log(`--------------------------------------------------------------------- \n`)
const phrase = "army van defense carry jealous true garbage claim echo media make crunch"
const btcInitParams = {
...defaultBTCParams,
phrase: phrase,
network: Network.Mainnet,
}
const btcClient = new Client(btcInitParams)
await getTransactionHistory(btcClient)
}
main()
.then(() => process.exit(0))
.catch((err) => console.error(err))