DVILLA电商项目:一个推广健康生活的dApp
这是在 Stellar 上构建更好的智能合约挑战赛的提交内容:构建 dApp
目录
我建造了什么
Dvilla 本地食品商店项目是一款去中心化的电商应用,用户可以注册账户购买有机食品和水果,并向忠实用户奖励少量收益,鼓励人们坚持健康饮食,促进美好生活。该应用利用恒星智能合约管理安全交易,尤其是在无法使用信用卡的地区,通过在采购和配送过程中将资产存入保险库来实现安全交易。只有在安全送达后才会付款。买家可以放心,在食品安全送达后,款项才会支付或转入当地农场。它涵盖了可持续性主题,旨在融入公共产品应用的类别,并融入了有助于对现实世界产生积极影响的功能。它推广和销售来自当地农场可持续采购的产品。
演示
该 dApp 的前端基于 Next js,后端基于 Rust 编程语言,并集成了 Stellar SDK 的 Cli 命令与区块链交互,以及 Soroban 的钱包
注意:要访问公共网址,请务必安装 Freighter Wallet Chrome 扩展程序。目前,Freighter Wallet 不支持 Android 系统,因此请下载Freighter Chrome 扩展程序,创建钱包,然后在 Mac 或 Windows 系统上打开公共网址。
公开网址: DVILLA电子商务项目
我的代码
Github Repo: Github Repo
视频演示
Stella Expert 合同
Stellar Expert:在合约地址上完成的交易
我实现的另一个功能是“place_order”,用于支付或下订单,它将金额从用户转移到合约地址,然后保存订单并创建一个计算用户奖励的跟踪器
Rust 函数place_order的实现
然后在前端签署并提交交易,我们首先需要构建交易
旅行
在我的项目中,我设计并实现了一个基于恒星网络的智能合约,以促进当地一家食品店的无缝交易。这个项目的目的是创建一个去中心化的应用程序 (dApp),支持当地企业接受 XLM 支付,从而促进金融普惠和可持续发展。
我实现的一个函数是“transfer_xlm()”,它让我对区块链的概念有了更深的理解。这个函数用于在place_order函数和process_user_reward函数中转移代币。
学到的概念
-
源账户 (--source):这是调用合约进行交易的管理员。管理员账户应使用其密钥对生成,该密钥对包含公钥和密钥。只有使用密钥才能对交易进行签名。这意味着管理员会对交易进行签名。
-
id 或 contract_id (--id):这是合约部署后的地址。contract_id 包含该合约的所有函数。因此,如果您想要将代币从一个地址转移到另一个地址,则交易必须发生在包含“transfer”函数的合约上。
-
网络 (--network):这是构建或部署合约的网络,也是您调用“转账”交易的网络。该网络可以是“测试网”、“未来网”或“主网”。
-
transfer_xlm:这是我的localfoodstore合约id/地址中函数的名称。
-
From (--from):这仍然是管理员地址或源账户。对于转账交易,管理员必须拥有大量 XLM 代币才能发送到“to”地址。此处的地址必须由其密钥对(公钥和密钥)生成,并且由好友机器人或其他地址提供资金。值得注意的是,如果您没有此处公钥地址的密钥,交易将失败。这也可以称为发行人地址。
-
To (--to):用于存放代币发送至的地址。该地址可以是合约 ID/地址,也可以是个人公开地址。也可以称为接收地址。
-
金额 (--amount):这是要发送到公共地址或合约地址的代币数量。可以是原生 XLM 代币,也可以是任何非原生资产。
在这里你可以看到1000XLM已成功转移到我的合约地址
附加奖项类别:辉煌游戏和/或超级可持续发展
我的提交主要属于超级可持续 dApp 类别。
后续步骤
- 我希望添加一个功能,让用户可以选择将他们的奖励捐赠给慈善组织
- 我还需要改进用户界面
合作事宜请通过以下方式联系我:
LinkedIn
Gmail
Whatsapp