@frakt-protocol/frakt-sdk
Version:
Frakt SDK for interacting with frakt.xyz protocols
100 lines (99 loc) • 5.14 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.decodedLoan = exports.decodedDeposit = exports.decodedLiquidityPool = exports.decodedCollectionInfo = void 0;
const anchor = __importStar(require("@project-serum/anchor"));
function decodedCollectionInfo(decodedCollection, address) {
return {
collectionInfoPubkey: address.toBase58(),
creator: decodedCollection.creator.toBase58(),
liquidityPool: decodedCollection.liquidityPool.toBase58(),
pricingLookupAddress: decodedCollection.pricingLookupAddress.toBase58(),
royaltyAddress: decodedCollection.royaltyAddress.toBase58(),
royaltyFeeTime: decodedCollection.royaltyFeeTime.toNumber(),
royaltyFeePrice: decodedCollection.royaltyFeePrice.toNumber(),
loanToValue: decodedCollection.loanToValue.toNumber(),
collaterizationRate: decodedCollection.collaterizationRate.toNumber(),
availableLoanTypes: Object.keys(decodedCollection.availableLoanTypes)[0],
expirationTime: decodedCollection.expirationTime.toNumber()
};
}
exports.decodedCollectionInfo = decodedCollectionInfo;
function decodedLiquidityPool(decodedLiquidityPool, address) {
return {
liquidityPoolPubkey: address.toBase58(),
id: decodedLiquidityPool.id.toNumber(),
rewardInterestRateTime: decodedLiquidityPool.rewardInterestRateTime.toNumber(),
feeInterestRateTime: decodedLiquidityPool.feeInterestRateTime.toNumber(),
rewardInterestRatePrice: decodedLiquidityPool.rewardInterestRatePrice.toNumber(),
feeInterestRatePrice: decodedLiquidityPool.feeInterestRatePrice.toNumber(),
liquidityAmount: decodedLiquidityPool.liquidityAmount.toNumber(),
liqOwner: decodedLiquidityPool.liqOwner.toBase58(),
amountOfStaked: decodedLiquidityPool.amountOfStaked.toNumber(),
userRewardsAmount: decodedLiquidityPool.userRewardsAmount.toNumber(),
apr: decodedLiquidityPool.apr.toNumber(),
cumulative: decodedLiquidityPool.cumulative.toNumber(),
lastTime: decodedLiquidityPool.lastTime.toNumber(),
oldCumulative: decodedLiquidityPool.oldCumulative.toNumber(),
period: decodedLiquidityPool.period.toNumber(),
};
}
exports.decodedLiquidityPool = decodedLiquidityPool;
function decodedDeposit(decodedDeposit, address) {
return {
depositPubkey: address.toBase58(),
liquidityPool: decodedDeposit.liquidityPool.toBase58(),
user: decodedDeposit.user.toBase58(),
amount: decodedDeposit.amount.toNumber(),
stakedAt: decodedDeposit.stakedAt.toNumber(),
stakedAtCumulative: decodedDeposit.stakedAtCumulative.toNumber(),
};
}
exports.decodedDeposit = decodedDeposit;
function decodedLoan(decodedLoan, address) {
return {
loanPubkey: address.toBase58(),
user: decodedLoan.user.toBase58(),
nftMint: decodedLoan.nftMint.toBase58(),
nftUserTokenAccount: decodedLoan.nftUserTokenAccount.toBase58(),
liquidityPool: decodedLoan.liquidityPool.toBase58(),
collectionInfo: decodedLoan.collectionInfo.toBase58(),
startedAt: decodedLoan.startedAt.toNumber(),
expiredAt: new anchor.BN(decodedLoan.expiredAt || 0).toNumber(),
finishedAt: decodedLoan.finishedAt.toNumber(),
originalPrice: decodedLoan.originalPrice.toNumber(),
amountToGet: decodedLoan.amountToGet.toNumber(),
// amountToReturn: decodedLoan.amountToReturn.toNumber(),
rewardAmount: decodedLoan.rewardAmount.toNumber(),
feeAmount: decodedLoan.feeAmount.toNumber(),
royaltyAmount: decodedLoan.royaltyAmount.toNumber(),
rewardInterestRate: new anchor.BN(decodedLoan.rewardInterestRate || 0).toNumber(),
feeInterestRate: new anchor.BN(decodedLoan.feeInterestRate || 0).toNumber(),
royaltyInterestRate: new anchor.BN(decodedLoan.royaltyInterestRate || 0).toNumber(),
loanStatus: Object.keys(decodedLoan.loanStatus)[0],
loanType: Object.keys(decodedLoan.loanType)[0],
};
}
exports.decodedLoan = decodedLoan;