@originvault/ov-id-sdk
Version:
A TypeScript SDK for managing decentralized identities (DIDs) and verifiable credentials (VCs)
61 lines • 2.48 kB
JavaScript
import axios from 'axios';
import { userAgent } from './userAgent.js';
import { storePrivateKey, retrievePrivateKey } from './storePrivateKeys.js';
import { convertPrivateKeyToRecovery } from './encryption.js';
// Function to prompt for Cosmos payer seed if not in environment
async function getCosmosPayerSeed() {
const primaryDid = await userAgent?.getPrimaryDID();
if (!primaryDid) {
console.warn("Primary DID not found. Cannot retrieve Cosmos payer seed.");
return null;
}
const COSMOS_SEED = `${primaryDid}-cosmos-payer`;
const seed = await retrievePrivateKey(COSMOS_SEED);
if (!seed) {
console.warn("Cosmos payer seed not found. Cannot retrieve Cosmos payer seed.");
return null;
}
// Convert the seed to a base64 string
const seedBase64 = Buffer.from(seed).toString('base64');
const mnemonic = await convertPrivateKeyToRecovery(seedBase64);
return mnemonic;
}
async function storeCosmosPayerSeed(seed) {
const primaryDid = await userAgent?.getPrimaryDID();
if (!primaryDid) {
console.warn("Primary DID not found. Cannot store Cosmos payer seed.");
return;
}
const COSMOS_SEED = `${primaryDid}-cosmos-payer`;
const privateKey = await convertPrivateKeyToRecovery(seed);
if (!privateKey) {
console.warn("Failed to convert private key to recovery.");
return;
}
const privateKeyBuffer = Buffer.from(privateKey, 'base64');
await storePrivateKey(COSMOS_SEED, privateKeyBuffer, "default");
console.log("Cosmos payer seed stored successfully.");
return;
}
// Function to check wallet balance
async function checkBalance(address) {
try {
const response = await axios.get(`https://api.cosmos.network/bank/balances/${address}`);
const balance = response.data.result[0]?.amount || 0;
return parseFloat(balance);
}
catch (error) {
console.error("❌ Error fetching balance:", error);
return 0;
}
}
// Function to show recovery phrase
async function showRecoveryPhrase() {
let recoveryPhrase = process.env.RECOVERY_PHRASE || null; // Attempt to get recovery phrase from environment
if (!recoveryPhrase) {
console.warn("A cosmos wallet is required to proceed with Cheqd blockchain transactions.");
}
return recoveryPhrase;
}
export { getCosmosPayerSeed, checkBalance, showRecoveryPhrase, storeCosmosPayerSeed };
//# sourceMappingURL=walletManager.js.map