超級稀有(Super Rare)系統合約開發技術丨dapp丨Defi
使用者可以使用ETH或其他相容的代幣向該合約傳送貢獻。一旦質押了足夠的Super Rare代幣,使用者就可以開始挖礦並領取他們的獎勵。在挖礦期結束後,使用者可以從合約中撤回他們之前質押的代幣和任何未領取的獎勵。
srAddress 變數:
用於定義Super Rare代幣的地址。
poolSize 變數:
用於定義可供質押的代幣數量。
miningReward 變數:
用於定義挖礦獎勵的總量。
miningStep 變數:
用於定義每塊的挖礦獎勵數量。
startDate 變數:
用於定義挖礦和質押開始日期。
endDate 變數:
用於定義挖礦和質押結束日期。
minimumStake 變數:
用於定義最小質押金額。
stake() 函式:
用於讓使用者向合約中質押代幣,並將其餘額新增到其賬戶餘額中。
withdraw() 函式:
用於讓使用者從合約中撤回他們之前質押的代幣。
claimReward() 函式:
用於讓使用者領取他們透過挖礦獲得的獎勵。
function stake(uint256 amount) public {
require(block.timestamp >= startDate && block.timestamp < endDate, "Staking period has ended");
require(amount >= minimumStake, "Amount is below minimum stake");
require(stakedAmount[msg.sender] == 0, "You have already staked");
IERC20(srAddress).transferFrom(msg.sender, address(this), amount);
stakedAmount[msg.sender] = amount;
lastClaim[msg.sender] = block.number;
emit Staked(msg.sender, amount);
}
function withdraw() public {
require(block.timestamp >= endDate, "Withdrawal period has not started");
require(stakedAmount[msg.sender] > 0, "You have not staked");
uint256 amount = stakedAmount[msg.sender];
stakedAmount[msg.sender] = 0;
IERC20(srAddress).transfer(msg.sender, amount);
emit Withdrawn(msg.sender, amount);
}
function claimReward() public {
require(block.timestamp >= endDate, "Claim period has not started");
require(stakedAmount[msg.sender] > 0, "You have not staked");
uint256 blocksSinceLastClaim = block.number - lastClaim[msg.sender];
uint256 reward =
(stakingBalance[msg.sender] * miningReward * blocksSinceLastClaim) / miningStep;
lastClaim[msg.sender] = block.number;
IERC20(srAddress).transfer(msg.sender, reward);
emit RewardPaid(msg.sender, reward);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027509/viewspace-2944318/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Super Rare超級稀有系統DAPP開發丨Solidity程式碼示例APPSolid
- DAPP系統開發邏輯丨DAPP系統開發功能丨合約DAPP系統開發技術APP
- Defi mmm合約互助(智慧合約)系統說明丨mmm互助合約dapp開發技術搭建原理APP
- 雲算力合約挖礦系統開發詳情丨dapp丨defi丨NFT丨LPAPP
- DAPP合約系統開發邏輯技術丨DAPP成熟系統開發技術方案APP
- Defi/nft泰山眾籌財系統合約開發丨NFT丨Defi丨NFT
- Defi 借貸挖礦丨 DAPP 智慧合約模式系統開發技術介紹APP模式
- LP智慧合約質押挖礦系統元件開發丨DAPP丨Defi丨LP丨IDO元件APP
- Magic Box雲萌魔盒系統技術開發分析丨DAPP丨DEFI丨NFTAPP
- DEFI借貸協議智慧合約開發技術丨dapp智慧合約系統開發應用詳情協議APP
- TOKTOK去中心化短影片系統技術開發丨DAPP丨DEFI丨nft中心化APP
- DAPP代幣智慧合約質押挖礦系統技術開發丨IDO丨DAPP丨LPAPP
- DAPP合約系統開發技術丨DAPP馬蹄鏈系統開發成熟DmeoAPP
- LP流動性挖礦丨DAPP丨DEFI智慧合約系統開發詳情APP
- NFT數字藏品開發丨NFT盲盒數藏系統技術開發丨DAPP丨Defi丨NFTAPP
- 量化跟單丨合約交易丨秒合約丨永續合約系統開發技術分析丨Python示例Python
- NFT質押借貸合約系統程式碼開發示例詳情丨DAPP丨defi丨NFTAPP
- 量化合約系統開發丨合約量化系統開發原始碼丨合約量化系統開發技術Demo原始碼
- WBID(智慧合約)流動性質押挖礦系統開發DAPP丨DeFi丨LP丨NFTAPP
- DAPP合約代幣燃燒挖礦系統開發丨智慧合約DAPP技術框架APP框架
- CeresDAO系統開發丨DAO智慧合約丨DAO借貸協議丨Defi丨NFT協議
- Defi/DAO代幣合約流動性挖礦系統開發模型丨NFT丨LP丨DAPP專案模型APP
- 淺談:合約2.0佛薩奇系統模式開發及功能講解丨DAPP丨DeFi模式APP
- 合約量化開發(案例版)丨合約量化系統開發(技術說明)丨合約量化系統原始碼規則原始碼
- NFT鏈遊功能開發丨DAPP智慧合約遊戲系統技術開發模式APP遊戲模式
- IDO代幣預售開發丨持幣生息質押挖礦系統開發技術丨DAPP丨LP丨Defi丨NFTAPP
- 智慧合約共享投票dapp系統開發(技術支援)丨dapp投票功能開發專案APP
- AI量化交易合約策略系統開發功能解析丨APP丨應用丨defiAIAPP
- LP/defi流動性質押挖礦開發功能丨DAPP系統丨defi丨NFT丨LPAPP
- NFT藝術數字藏品系統模式開發丨NFT丨dapp丨defi模式APP
- DEFI借貸協議系統開發技術支援丨DEFI智慧合約挖礦模式開發詳細方案協議模式
- Web3.0智慧合約DAPP系統開發技術介紹丨框架WebAPP框架
- 合約跟單開發需求丨合約跟單系統開發(技術方案)丨合約跟單原始碼及功能原始碼
- 拆盒玩家NFT盲盒系統模型開發丨dapp丨Defi丨NFT模型APP
- 數字藏品NFT系統設計開發模型丨NFT丨Defi丨DAPP模型APP
- DApp丨DeFi丨LP丨IDO丨DAO代幣質押模式系統開發APP模式
- 合約質押模式系統開發DAPP模組丨質押系統開發技術邏輯方案模式APP
- 馬蹄鏈Dapp智慧合約(系統開發)案例丨馬蹄鏈MATIC智慧合約技術開發原理APP