@ajna-finance/sdk
Version:
A typescript SDK that can be used to create Dapps in Ajna ecosystem.
81 lines • 4.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getErc721PoolContractMulti = exports.getErc721PoolContract = void 0;
exports.approve = approve;
exports.approveAll = approveAll;
exports.addCollateral = addCollateral;
exports.removeCollateral = removeCollateral;
exports.drawDebt = drawDebt;
exports.repayDebt = repayDebt;
exports.mergeOrRemoveCollateral = mergeOrRemoveCollateral;
exports.isSubset = isSubset;
const tslib_1 = require("tslib");
const ethers_1 = require("ethers");
const ethcall_1 = require("ethcall");
const erc721_1 = require("./erc721");
const ERC721Pool_json_1 = tslib_1.__importDefault(require("../abis/ERC721Pool.json"));
const transactions_1 = require("../utils/transactions");
const getErc721PoolContract = (poolAddress, provider) => {
return new ethers_1.ethers.Contract(poolAddress, ERC721Pool_json_1.default, provider);
};
exports.getErc721PoolContract = getErc721PoolContract;
const getErc721PoolContractMulti = (poolAddress) => {
return new ethcall_1.Contract(poolAddress, ERC721Pool_json_1.default);
};
exports.getErc721PoolContractMulti = getErc721PoolContractMulti;
function approve(signer, poolAddress, tokenAddress, tokenId, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const contract = (0, erc721_1.getNftContract)(tokenAddress, signer);
return yield (0, transactions_1.createTransaction)(contract, { methodName: 'approve', args: [poolAddress, tokenId] }, overrides);
});
}
function approveAll(signer, poolAddress, tokenAddress, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const contract = (0, erc721_1.getNftContract)(tokenAddress, signer);
return yield (0, transactions_1.createTransaction)(contract, { methodName: 'setApprovalForAll', args: [poolAddress, true] }, overrides);
});
}
function addCollateral(contract, tokenIds, bucketIndex, expiry, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield (0, transactions_1.createTransaction)(contract, { methodName: 'addCollateral', args: [tokenIds, bucketIndex, expiry] }, overrides);
});
}
function removeCollateral(contract, noOfNFTsToRemove, bucketIndex, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield (0, transactions_1.createTransaction)(contract, { methodName: 'removeCollateral', args: [noOfNFTsToRemove, bucketIndex] }, overrides);
});
}
function drawDebt(contract, borrowerAddress, amountToBorrow, limitIndex, tokenIdsToPledge, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield (0, transactions_1.createTransaction)(contract, {
methodName: 'drawDebt',
args: [borrowerAddress, amountToBorrow, limitIndex, tokenIdsToPledge],
}, overrides);
});
}
function repayDebt(contract, borrowerAddress, maxQuoteTokenAmountToRepay, noOfNFTsToPull, collateralReceiver, limitIndex, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield (0, transactions_1.createTransaction)(contract, {
methodName: 'repayDebt',
args: [
borrowerAddress,
maxQuoteTokenAmountToRepay,
noOfNFTsToPull,
collateralReceiver,
limitIndex,
],
}, overrides);
});
}
function mergeOrRemoveCollateral(contract, removalIndexes, noOfNFTsToRemove, // whole number of NFTs to remove, converted to WAD by the contract
toIndex, overrides) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield (0, transactions_1.createTransaction)(contract, { methodName: 'mergeOrRemoveCollateral', args: [removalIndexes, noOfNFTsToRemove, toIndex] }, overrides);
});
}
function isSubset(contract) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return yield contract.isSubset();
});
}
//# sourceMappingURL=erc721-pool.js.map