@silvana-one/mina-utils
Version:
Silvana Mina Utils
131 lines • 4.96 kB
JavaScript
const TIMEOUT = 10000; // 10 seconds timeout
export async function getZkAppTxsFromBlockBerry(params) {
const { account, chain, blockBerryApiKey } = params;
const options = {
method: "GET",
headers: {
accept: "application/json",
"x-api-key": blockBerryApiKey,
},
};
try {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), TIMEOUT); // 10 seconds timeout
const response = await fetch(`https://api.blockberry.one/mina-${chain}/v1/zkapps/accounts/${account}/txs?size=10&orderBy=DESC&sortBy=AGE`, {
...options,
signal: controller.signal,
});
clearTimeout(timeoutId); // Clear the timeout if the fetch completes successfully
if (!response.ok) {
console.error("Cannot fetch zkApp txs for account:", account, chain, response.statusText);
return undefined;
}
const result = await response.json();
//console.log("zkAppTxs", result);
return result;
}
catch (err) {
console.error("Cannot fetch zkApp txs for account - catch:", account, chain, err);
return undefined;
}
}
export async function getPaymentTxsFromBlockBerry(params) {
const { account, chain, blockBerryApiKey } = params;
const options = {
method: "GET",
headers: {
accept: "application/json",
"x-api-key": blockBerryApiKey,
},
};
try {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), TIMEOUT); // 10 seconds timeout
const response = await fetch(`https://api.blockberry.one/mina-${chain}/v1/accounts/` +
account +
"/txs?page=0&size=1&orderBy=DESC&sortBy=AGE&direction=OUT", {
...options,
signal: controller.signal,
});
clearTimeout(timeoutId); // Clear the timeout if the fetch completes successfully
if (!response.ok) {
console.error("Cannot fetch payment txs for account:", account, chain, response.statusText);
return undefined;
}
const result = await response.json();
//console.log("paymentTxs", result);
return result;
}
catch (err) {
console.error("Cannot fetch payment txs for account - catch:", account, chain, err);
return undefined;
}
}
export async function getZkAppTxFromBlockBerry(params) {
const { hash, chain, blockBerryApiKey } = params;
const options = {
method: "GET",
headers: {
accept: "application/json",
"x-api-key": blockBerryApiKey,
},
};
try {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), TIMEOUT); // 10 seconds timeout
const response = await fetch(`https://api.blockberry.one/mina-${chain}/v1/zkapps/txs/${hash}`, {
...options,
signal: controller.signal,
});
clearTimeout(timeoutId); // Clear the timeout if the fetch completes successfully
if (response.ok) {
const result = await response.json();
return result;
}
else {
console.error("getZkAppTxFromBlockBerry error while getting hash - not ok", { hash, chain, text: response.statusText, status: response.status });
return undefined;
}
}
catch (err) {
console.error("getZkAppTxFromBlockBerry error while getting mainnet hash - catch", hash, chain, err);
return undefined;
}
}
export async function getZkAppFromBlockBerry(params) {
const { account, chain, blockBerryApiKey } = params;
const options = {
method: "GET",
headers: {
accept: "application/json",
"x-api-key": blockBerryApiKey,
},
};
try {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), TIMEOUT); // 10 seconds timeout
const response = await fetch(`https://api.blockberry.one/mina-${chain}/v1/zkapps/${account}`, {
...options,
signal: controller.signal,
});
clearTimeout(timeoutId); // Clear the timeout if the fetch completes successfully
if (response.ok) {
const result = await response.json();
return result;
}
else {
console.error("getZkAppFromBlockBerry error while getting account", {
account,
chain,
text: response.statusText,
status: response.status,
});
return undefined;
}
}
catch (err) {
console.error("getZkAppFromBlockBerry error while getting account - catch", account, chain, err);
return undefined;
}
}
//# sourceMappingURL=blockberry.js.map