前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈泰山众筹系统开发技术说明及dapp链上众筹系统开发分析

浅谈泰山众筹系统开发技术说明及dapp链上众筹系统开发分析

原创
作者头像
I357O98O7I8
发布2022-08-10 16:23:23
1K0
发布2022-08-10 16:23:23
举报
文章被收录于专栏:dapp系统开发dapp系统开发

什么是DAPP

根据David Johnston在文章DavidJohnstonCEO/DecentralizedApplications里的定义,只有当满足以下所有条件时,一个应用才可以称之为DAPP。

应用必须完全开源、自治并且没有一个实体控制着该应用的大部分代币(Token)。该应用必须能够根据市场的反馈及技术要求进行升级,但是升级必须由应用的用户达成共识之后才可以进行;

应用的数据必须加密后存储在公开的区块链上;

应用必须拥有代币机制(可以使用已存在的代币或者新发行一种内置代币),矿工或者应用维护节点需要得到代币奖励;

应用代币的产生必须依据标准的加密算法,有价值的节点可以根据该算法获取应用的代币奖励。

泰山众筹的基本概念

1、四进一出:当众筹活动到第四期成功的时候,第一期参与众筹的粉丝就会出局,从而获的奖励,当第五期众筹成功的时候,第二期参与的粉丝出局,获得出局奖励,以此类推,直至众筹活动结束或失败。

2、倍利复增:每完成一期众筹活动的时候,下一期将增长30%的众筹资产

3、爆仓重生:众筹活动时间内,无法完成众筹,则会众筹失败,那就视为爆仓,将重新开启第一期循环。

与from表单交互

  定义表单项的onchange事件函数,该函数把表单项的值设置到状态变量中

  handleChange=(e,{name,value})=>this.setState({[name]:value})

  然后写一个函数来看看是否触发了按钮:

  handleCreate=()=>{

  let{active,projectName,targetMoney,supportMoney,duration}=this.state

  console.log('projectName:',projectName)

  console.log('targetMoney:',supportMoney)

  }

  定义表单提交函数

  handleCreate=async()=>{

  let{active,projectName,targetMoney,supportMoney,duration}=this.state

  console.log('projectName:',projectName)

  console.log('targetMoney:',supportMoney)

  this.setState({active:true})

  try{

  let res=await createFunding(projectName,targetMoney,supportMoney,duration)

  alert('创建合约成功!n')

  this.setState({active:false})

  }catch(e){

  this.setState({active:false})

  console.log(e)

  }

  }

  在interaction.js文件中定义createFunding方法,并导出该方法。

  let createFunding=(projectName,targetMoney,supportMoney,duration)=>{

  return new Promise(async(resolve,reject)=>{

  try{//调用创建方法

  let accounts=await web3.eth.getAccounts()

  let res=await fundingFactoryInstance.methods.createFunding(projectName,targetMoney,supportMoney,duration).send({

  from:accounts[0],

  })

  resolve(res)

  }catch(e){

  reject(e)

  }

  })

  }

5.在AllFundingTab添加表单项,在render方法中把状态变量的数据结构出来

render(){

return(

<div>

<CardList details={this.state.allFundingDetails}/>

<div>

<h3>参与众筹</h3>

<Dimmer.Dimmable as={Segment} dimmed={this.state.active}>

<Dimmer active={this.state.active} inverted>

<Loader>支持中</Loader>

</Dimmer>

<Form onSubmit={this.handleInvest}>

<Form.Input type='text' value={''} label='项目名称:'/>

<Form.Input type='text' value={''} label='项目地址:'/>

<Form.Input type='text' value={''} label='支持金额:'

labelPosition='left'>

<Label basic>¥</Label>

<input/>

</Form.Input>

<Form.Button primary content='参与众筹'/>

</Form>

</Dimmer.Dimmable>

</div>

</div>

)

}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档