UNPKG

@descent-protocol/sdk

Version:

A Typescript library for interacting with the Descent Protocol

81 lines (80 loc) 4.3 kB
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; };