You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.2 KiB
8.2 KiB
管理员方法介紹
質押合約
質押狀態:關閉后無法進行質押 質押黑名單:添加地址為黑名單,如果是黑名單則無法進行質押提現、邀請體現、質押、銷毀等操作 質押白名單:儅質押狀態關閉是可以進行質押 設置邀請收益率:默認為1%;
Pool合約
狀態:關閉時無法進行資金提取操作(除管理員提現)
NFT合約
添加管理員:只供合約部署者操作 刪除管理員:只供合約部署者操作 NFT黑名單:添加NFT ID為黑名單后,無法進行轉移、質押提現、NFT回收
管理員方法
質押合約
setInvitationRate // 設置邀請收益率 setPledgeStatus //設置質押狀態 addBlackOrWhiteList //添加黑名單或白名單 delBlackOrWhiteList //刪除黑名單或白名單 setDayTime //設置分傭時間 默認一天 setProductInfo //設置產品信息 addNftBalcks //添加NFT ID為黑名單 修改質押信息isBlack 為true deleteNftBlacks //刪除NFT ID 黑名單 修改質押信息isBlack為false
Pool合約
setPledgeContractAddress 設置質押合約地址 setPoolStatus 設置池子狀態 withdrawTo 提現池子FIL
NFT合約
setPledgeAddress 設置質押合約地址 addAdmin 添加管理員 deleteAdmin 刪除管理員
Pledge合約方法
NFT nftContract;
Pool poolContract;
ProductInfo[] public productInfo;
mapping(uint256 => PledgeType) pledges; // 質押信息,用於計算質押收益
mapping(address => PledgeType[]) public pledgeRecords; //質押記錄
mapping(uint256 => PledgeType) public invitationPledges; // 被邀請人質押的信息,用於計算邀請收益
mapping(address => RecommendObjType) public recommendObj; // 用戶綁定記錄
mapping(address => uint256[]) public invitationTokens; // 所有下級貢獻收益tokenID
mapping(address => address[]) public invitationAddress; // 所有下級的地址
mapping(address => PledgeWithdrawRecordType[]) public pledgeWithdrawRecord; // 質押收益體現記錄
mapping(address => InvitationWithdrawRecordType[]) public invitationWithdrawRecord; // 邀請收益體現記錄
address[] public blackList; //黑名單
address[] public whiteList; //白名單
mapping(address => PledgeType[]) public pledgeDestoryRecords; // 質押銷毀記錄
uint256 public invitationRate; //邀請收益率
uint256 public nextTokenId;//NFTID
bool public pledgeStatus; //質押開關
uint256 public dayTime;
// 獲取質押記錄
function getPledgeRecords(address _owner) public view returns(PledgeType[] memory)
// 獲取質押提现記錄
function getPledgeWithdrawRecord(address _owner) public view returns(PledgeWithdrawRecordType[] memory)
// 獲取邀請提现記錄
function getInvitationWithdrawRecord(address _owner) public view returns(InvitationWithdrawRecordType[] memory)
// 獲取銷毀記錄
function getPledgeDestoryRecords(address _owner) public view returns(PledgeType[] memory)
// 獲取質押產品信息
function getProductInfo() public view returns (ProductInfo[] memory)
/ 獲取該地址的所有質押信息
function getOwnerAllPledgeInfo( address _ownerAddress ) public view returns (PledgeType[] memory result)
// 綁定推薦人
function bindRecommend(address _referrer) internal
// 設置推薦人的收益
function setInvitationIncomes(PledgeType memory _pledge) internal
// 質押
function pledge(uint256 amount, uint256 index, address _referrer) external onlyBlacks
// 獲取該地址所有NFT的tokenId
function getOwnerAllTokens( address _ownerAddress ) public view returns (uint256[] memory)
// 計算利息 1.計算可領取的質押收益 2.計算可領取的邀請收益
function calculateInterest( PledgeType memory _pledge ) public view returns (uint256)
// 獲取所有可提現的利息
function getWithdrawbleAmount( address _owner ) public view returns (uint256)
// 提取質押所有利息
function withdraAllInterest() external onlyBlacks
// 提取質押單個利息
function withdrawInterest(uint256 tokenId) external onlyBlacks
// 邀請: 獲取該地址所有下級的質押記錄
function getOwnerInvitationPledges( address addr ) public view returns (PledgeType[] memory result)
// 獲取邀請貢獻 當前所有可提取的收益
function getOwnerAllInvitationWithdrawAmout(address owner) public view returns(uint256)
// 提取所有邀請利息
function withdraInvitationAllInterest() external onlyBlacks
// 提取單個邀請利息
function withdrawInvitationInterest(uint256 tokenId) external onlyBlacks
// 獲取所有下級
function getAllInvitationMember( address addr ) public view returns (RecommendObjType[] memory result)
// 獲取當前時間
function getCurrentTime() public view returns (uint256)
// 銷毀NFT 退回本金
function destroyPledge(uint256 tokenId) external onlyBlacks
// 設置邀請收益率
function setInvitationRate(uint256 _rate) external onlyAdmin
// 設置質押和提現狀態
function setPledgeStatus(bool _status) external onlyAdmin
// 添加黑名單 1.黑名单 2.白名单
function addBlackOrWhiteList(address[] memory _blacks,uint256 _type) external onlyAdmin
// 删除黑名單 1.黑名单 2.白名单
function delBlackOrWhiteList(address[] memory _blacks,uint256 _type) external onlyAdmin
// 獲取黑名單 1.黑名单 2.白名单
function getBlackOrWhiteList(uint256 _type) public view returns (address[] memory)
// 設置分傭時間 默認為1天
function setDayTime(uint256 _time) external onlyAdmin
// 設置產品信息
function setProductInfo(uint256[] memory _days,uint256[] memory _rates) external onlyAdmin
// 获取单个质押或邀请信息 1.质押 2.邀请
function getDetails(uint256 tokenId,uint256 _type) public view returns(PledgeType memory)
// 添加NFT ID 為黑名單 并且修改NFT ID對應質押的狀態
function addNftBalcks(uint256[] memory _tokenIds) external onlyAdmin
// 刪除NFT ID 黑名單 并且修改NFT ID對應質押的狀態
function deleteNftBlacks(uint256[] memory _ids) external onlyAdmin
NFT 合約方法
address[] admins; 管理員地址
address public deployAddress; 部署人地址
bool first; 是否為第一次初始化
address public pledgeAddress; 質押合約地址
uint256[] public blacks; NFT ID 黑名單
鑄造NFT,只供質押合約條用
function mint(address to, uint256 tokenId) external
設置質押合約地址
function setPledgeAddress(address _pledgeAddr) external onlyAdmin
<!-- 添加管理員,只供部署者使用 -->
function addAdmin(address[] memory _adds) external onlyAdmin
<!-- 刪除管理員 ,只供部署者使用 -->
function deleteAdmin(address[] memory _dels) external onlyAdmin
<!-- 獲取管理員 -->
function getAdmin() public view returns(address[] memory)
<!-- 添加黑名單 管理員只用 -->
function addBlacks(uint256[] memory _tokenIds) external
<!-- 刪除黑名單 -->
function delBlacks(uint256[] memory _tokenIds) external
<!-- 獲取黑名單 -->
function getBlacks() public view returns(uint256[] memory)
<!-- 重寫_update, 轉賬時驗證黑名單進行斷言 -->
function _update(address to, uint256 tokenId, address auth) internal virtual override returns(address)
Pool合約
IERC20 tokenContract;
NFT nftContract;
address public _pledgeContractAddress; 質押合約地址
bool public poolStatus; 狀態
// 存款函数,允许用户向池中存入资金
function deposit(address from, uint256 amount) external
// 提款函数,允许用户从池中提取资金 只供質押合約使用
function withdraw(address to, uint256 amount) external
<!-- 設置質押合約地址 只供管理員使用 -->
function setPledgeContractAddress(address addr) external onlyAdmin
<!-- 設置狀態 只供管理員使用 -->
function setPoolStatus(bool _status) external onlyAdmin
<!-- 提取Pool合約的FIL 只供管理員使用 -->
function withdrawTo(uint256 amount) external onlyAdmin