UNPKG

@ajna-finance/sdk

Version:

A typescript SDK that can be used to create Dapps in Ajna ecosystem.

81 lines 4.04 kB
"use strict"; 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