-
Notifications
You must be signed in to change notification settings - Fork 2
/
checkAccountBalance.js
48 lines (36 loc) · 1.49 KB
/
checkAccountBalance.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const algosdk = require('algosdk');
const algodToken =
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
const algodServer = 'http://localhost';
const algodPort = '4001';
const algodClient = new algosdk.Algodv2(algodToken, algodServer, algodPort);
const MINIMAL_BALANCE = 100000;
(async () => {
// The same credentials are used across all code examples.
// Avoid using them in production code.
const addr1 = 'A7B3YODYRUP24PWUT45JL4G7EQA72FHY4KVL3A7CI6EXGGVD5O7SM6MAIQ';
const addr2 = 'S6YJQLGRUSCKG5PVFW77PE7SKTU6AELITMCVXPQBE7EMLG5224KNQ4WH2A';
const transferAmount = algosdk.algosToMicroalgos(0.001);
await checkExpectedBalance(addr1, transferAmount);
await checkExpectedBalance(addr2, transferAmount);
})().catch((error) => {
console.error(error);
});
async function checkExpectedBalance(address, transferAmount) {
console.log(`Cheking ${address} balance:`);
const amount = algosdk.microalgosToAlgos(transferAmount);
// Current account balance
const { amount: currentAmount } = await algodClient
.accountInformation(address)
.do();
const expectedBalance = currentAmount + transferAmount;
if (expectedBalance < MINIMAL_BALANCE) {
const minimalAmount = algosdk.microalgosToAlgos(
MINIMAL_BALANCE - transferAmount
);
console.log(`Insufficient balance to receive ${amount} Algo`);
console.log(`Minimal transfer amount is ${minimalAmount} Algo\n`);
} else {
console.log(`Balance is sufficient to receive ${amount} ALgo\n`);
}
}