@descent-protocol/sdk
Version:
A Typescript library for interacting with the Descent Protocol
81 lines (80 loc) • 4.3 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var utility_exports = {};
__export(utility_exports, {
approveCollateralToken: () => approveCollateralToken,
approveCurrencyToken: () => approveCurrencyToken,
getCollateralTokenAllowance: () => getCollateralTokenAllowance,
getCollateralTokenBalance: () => getCollateralTokenBalance,
getCurrencyTokenBalance: () => getCurrencyTokenBalance
});
module.exports = __toCommonJS(utility_exports);
var import_ethers = require("ethers");
var import_getContractAddresses = require("../contracts/getContractAddresses");
var import_generated = require("../generated");
var import_contracts = require("../contracts");
const approveCollateralToken = async (collateral, owner, amount, chainId, internal, transaction) => {
const collateralAddress = (0, import_getContractAddresses.getContractAddress)(collateral, chainId);
const vaultAddress = (0, import_getContractAddresses.getContractAddress)("Vault", chainId);
const _amount = (0, import_ethers.parseUnits)(amount, 6);
let iface = internal.getInterface(import_generated.USDC__factory.abi);
const data = iface.encodeFunctionData("approve", [vaultAddress, _amount]);
const txConfig = await internal.getTransactionConfig({
from: owner,
to: collateralAddress,
data
});
const result = await transaction.send(txConfig, {});
return result;
};
const approveCurrencyToken = async (owner, amount, chainId, internal, transaction) => {
const currnecyAddress = (0, import_getContractAddresses.getContractAddress)("Currency", chainId);
const vaultAddress = (0, import_getContractAddresses.getContractAddress)("Vault", chainId);
const _amount = (0, import_ethers.parseEther)(amount);
let iface = internal.getInterface(import_generated.Currency__factory.abi);
const data = iface.encodeFunctionData("approve", [vaultAddress, _amount]);
const txConfig = await internal.getTransactionConfig({
from: owner,
to: currnecyAddress,
data
});
const result = await transaction.send(txConfig, {});
return result;
};
const getCurrencyTokenBalance = async (owner, chainId, signer) => {
const currencyContractAddress = (0, import_getContractAddresses.getContractAddress)("Currency", chainId);
const currencyContract = (0, import_contracts.Contract)(currencyContractAddress, import_generated.Currency__factory.abi, signer);
const balance = await currencyContract.balanceOf(owner);
const formattedBalance = (0, import_ethers.formatEther)(balance);
return formattedBalance;
};
const getCollateralTokenBalance = async (collateral, owner, chainId, signer) => {
const collateralAddress = (0, import_getContractAddresses.getContractAddress)(collateral, chainId);
const collateralContract = (0, import_contracts.Contract)(collateralAddress, import_generated.USDC__factory.abi, signer);
const balance = await collateralContract.balanceOf(owner);
const formattedBalance = (0, import_ethers.formatUnits)(balance, 6);
return formattedBalance;
};
const getCollateralTokenAllowance = async (collateral, owner, chainId, signer) => {
const collateralAddress = (0, import_getContractAddresses.getContractAddress)(collateral, chainId);
const vaultAddress = (0, import_getContractAddresses.getContractAddress)("Vault", chainId);
const collateralContract = (0, import_contracts.Contract)(collateralAddress, import_generated.USDC__factory.abi, signer);
const allowance = await collateralContract.allowance(owner, vaultAddress);
const formattedAllowance = (0, import_ethers.formatUnits)(allowance, 6);
return formattedAllowance;
};