区块链募捐应用开发与合约安全保障
1. 募捐应用功能完善
1.1 合约资金提取功能实现
为了让募捐活动的所有者能够从合约中提取资金,我们需要添加一个只有合约所有者可见的按钮。具体步骤如下:
1. 验证合约所有者 :在 useEffect
函数中添加代码,检查当前账户是否为合约所有者。
const isUser = accounts[0]
const isOwner = await instance.methods.owner().call()
if (isOwner === accounts[0]) {
setIsOwner(true)
}
同时,添加 useState
来管理 isOwner
状态:
const [ userDonations, setUserDonations ] = useState(null)
const [ isOwner, setIsOwner ] = useState(false)
- 添加提取资金按钮 :打开
FundraiserCard.js
文件,在DialogActions
中添加一个按钮,并使用状态条件包裹,确保只有合约所有者能看到该按钮