智能合约solidity:转账,打款,退款,销毁等?

120
okx
这个合约提供了一个完整的众筹平台,包括新建众筹项目、转账、打款以及退款等功能。你可以在线上编写和测试部署该合约。参与者只需记录他们的地址和捐赠金额,而发起者需要更多的属性,如受益地址、目标金额和募资进度等。我们使用funderMap(mapping)将捐赠者的ID与其捐赠的资金绑定在一起,从而得知是谁为受益人捐款。同时,使用neederMap(mapping)将受益人ID与募集金额绑定在一起,以强化对受益人的管理。

我们使用一个自增的序号来创建新的众筹项目。在创建项目时,我们需要使用“needer”结构体实例来为参数赋值。你可以根据众筹项目ID向该项目捐款(转账),在这个过程中我们必须使用关键字“payable”。在捐赠之前,需要检查捐赠者的钱包余额是否足够,并校验项目是否已经完成,只有在这两个条件都成立的情况下,才能将捐款金额直接转账到当前合约中,并记录捐赠者的数量和身份。

结束众筹项目的原因有很多,但在本合约中,我们以捐赠完成为例。捐赠完成后,合约发起人(受益者)可以请求将资金直接转到自己的钱包地址。这也将触发一笔交易,因此需要在调用该方法时使用关键字“payable”。在该方法中,还会使用修饰词“onlyOwner”,表示只有合约发起者才能执行该方法。

虽然众筹完成后合约没有被销毁,但仍然可以退款。该方法将根据捐赠者的请求将合约上的资金退还给捐赠者。

你可以在此处访问该合约的源代码:https://github.com/Jacky-MYD/Crowd-funding-solidity。

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

进群交流|欧易官网