NFT質押交易系統開發功能實現(原始碼示例)

v_ch3nguang發表於2023-04-18

NFT(非同質化代幣)是一種基於區塊鏈的數字資產,可以用於代表任何型別的資產(如藝術品、音樂作品、房地產等),並提供了極高的所有權和交易透明度。NFT質押借貸則是將NFT作為質押物,以獲取安全、低利率的借款。


借方將抵押品存入智慧合約,鑄造一種原生代幣$paprMEME,並透過Uniswap V3賣出,兌換成ETH等資產。借款的利息會直接計入$paprMEME的目標價格,理論上,隨著時間的推移,$paprMEME的價格會逐漸上升。借方在歸還貸款時只需要支付和借入數量相等的$paprMEME,但因為價格上升,也就實現了利息的支付。


LP需要自行在Uniswap V3中提供$paprMEME和ETH的流動性。如果要使$paprMEME的價格位於流動性區間內,那麼就需要同時擁有$paprMEME和ETH這兩種資產。目前官方推薦的交易手續費比例為1%,且在已上線的借貸產品中,所有LP均選擇了這一檔手續費。

貸方也就是$paprMEME的買方。同理,貸方買入$paprMEME後持有,隨著時間的推移價格上升,也就獲得了利息收入。


NFT借貸質押交易平臺開發原始碼示例

pragma solidity ^0.5.16;

/**

* @title Compound's InterestRateModel Interface

* @author Compound

*/

contract InterestRateModel {

/// @notice Indicator that this is an InterestRateModel contract (for inspection)

bool public constant isInterestRateModel = true;

function getBorrowRate(uint cash, uint borrows, uint reserves) external view returns (uint);

function getSupplyRate(uint cash, uint borrows, uint reserves, uint reserveFactorMantissa) external view returns (uint);

}

constructor(uint baseRatePerYear, uint multiplierPerYear) public {

baseRatePerBlock = baseRatePerYear.div(blocksPerYear);

multiplierPerBlock = multiplierPerYear.div(blocksPerYear);

emit NewInterestParams(baseRatePerBlock, multiplierPerBlock);

}

function getSupplyRate(uint cash, uint borrows, uint reserves, uint reserveFactorMantissa) public view returns (uint) {

uint >

uint borrowRate = getBorrowRate(cash, borrows, reserves);

uint rateToPool = borrowRate.mul(oneMinusReserveFactor).div(1e18);

return utilizationRate(cash, borrows, reserves).mul(rateToPool).div(1e18);

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028290/viewspace-2946536/,如需轉載,請註明出處,否則將追究法律責任。

相關文章