区块链泰山众筹互助商城dapp系统开发合约定制(代币分红模式)技术分析

简介: 区块链泰山众筹互助商城dapp系统开发合约定制(代币分红模式)技术分析

智能合约也是一个以太坊帐户,我们称之为合约帐户。 这意味着它们有余额,可以成为交易的对象。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,您无法删除智能合约,与它们的交互是不可逆的。

配置文件

配置文件位于项目根目录下,文件名为 truffle-config.js。

配置文件内容如下:

module.exports = {

networks: {

development: {

  host: "127.0.0.1",     // Localhost (default: none)

  port: 7545,            // Standard Ethereum port (default: none)

  network_id: "*",         // Any network (default: none)

}

},

compilers: {

solc: {

  version: "0.8.13",      // Fetch exact version from solc-bin

}

}

};

这个配置文件中,development 是我们要部署的区块链配置,这里指我们本地的 Ganache 区块链节点。如果需要部署到其它区块链节点,请修改此配置文件。

智能合约

合约源码

我们来看一下合约的源码,文件名是 MetaCoin.sol。

pragma solidity ^0.8.13;

import "./ConvertLib.sol";

contract MetaCoin {

mapping (address => uint) balances;



event Transfer(address indexed _from, address indexed _to, uint256 _value);

constructor() {

    balances[tx.origin] = 10000;

}



function sendCoin(address receiver, uint amount) public returns(bool sufficient) {

    if (balances[msg.sender] < amount) return false;

    balances[msg.sender] -= amount;

    balances[receiver] += amount;

    emit Transfer(msg.sender, receiver, amount);

    return true;

}


function getBalanceInEth(address addr) public view returns(uint){

    return ConvertLib.convert(getBalance(addr),2);

}



function getBalance(address addr) public view returns(uint) {

    return balances[addr];

}

}

这个合约包含一个构造函数、还定义了一个事件和三个函数。

constructor():合约的构造函数,在合约部署时自动存入一些 token 到发起者的账户。

event Transfer(...):事件。转账交易时触发。

sendCoin(...):将 token 从一个账户转账到另一个账户。

getBalanceInEth(...):取经转换后的账户余额(账户余额*2)。

getBalance(...):取账户余额(单位:1wei)。

测试合约

这个示例定义了两个测试文件,保存在 test 目录下:

metacoin.js 用 JavaScript 编写的测试脚本

TestMetaCoin.sol:用 Solidity 编写的测试脚本

Truffle 自带一个自动化测试框架,可以轻松测试合约,而不需要我们事先部署合约。

相关文章
|
3天前
|
供应链 安全 物联网
区块链技术的未来展望:重塑信任与价值传递
区块链技术的未来展望:重塑信任与价值传递
16 1
|
3天前
|
人工智能 供应链 算法
区块链技术的未来:重塑信任与价值传递
区块链技术的未来:重塑信任与价值传递
|
3天前
|
存储 供应链 安全
区块链技术:重塑金融行业的未来
区块链技术:重塑金融行业的未来
|
8天前
|
存储 运维 区块链
区块链技术对数据中心的潜在影响
区块链技术对数据中心的潜在影响
|
4天前
|
存储 传感器 物联网
未来已来:区块链、物联网与虚拟现实技术融合的新篇章
【10月更文挑战第38天】本文旨在探索新兴技术区块链、物联网(IoT)和虚拟现实(VR)在未来社会的应用前景。通过分析这些技术的发展趋势,我们将揭示它们如何相互交织,共同塑造一个更智能、更互联的世界。文章将不包含传统意义上的摘要内容,而是直接深入主题,展开讨论。
|
5天前
|
供应链 物联网 区块链
探索未来:区块链、物联网与虚拟现实技术的融合与创新
【10月更文挑战第37天】在技术不断进步的今天,新兴技术如区块链、物联网和虚拟现实正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,并提供代码示例来说明它们是如何相互融合和创新的。我们将从区块链技术的基础开始,介绍其在金融领域的应用;然后探讨物联网技术的发展及其在智能家居中的应用;最后,我们将讨论虚拟现实技术的进步以及它在游戏和教育领域的应用。通过这些技术的融合与创新,我们可以更好地理解和预测未来的发展趋势。
|
5天前
|
供应链 算法 区块链
深入浅出区块链技术:从原理到应用
【10月更文挑战第21天】 本文旨在为读者提供一个关于区块链技术的全面概述,包括其工作原理、关键技术特点以及在现实世界中的应用案例。通过本文,您将能够理解区块链如何在不依赖中心化机构的情况下确保数据的安全性和不可篡改性,并探讨这项技术如何被应用于金融、供应链管理等多个领域,以提高效率和透明度。
16 1
|
8天前
|
供应链 安全 中间件
深度探索区块链技术在供应链管理中的应用与挑战###
本文聚焦于区块链技术在现代供应链管理中的创新应用及其面临的挑战。通过分析区块链的去中心化、透明性和不可篡改性如何重塑供应链结构,提升效率与信任度,本文进一步探讨了实施过程中的技术融合难题、数据隐私保护、标准化缺失及成本控制等关键问题,为相关企业和技术开发者提供策略指导与未来趋势洞察。 ###
|
8天前
|
供应链 区块链
探索区块链技术在供应链管理中的应用与挑战
本文深入探讨了区块链技术在现代供应链管理中的创新应用及其面临的挑战。通过分析区块链的去中心化特性、不可篡改性以及透明度,阐述了如何利用这一技术优化供应链流程,提高数据共享的安全性与效率。同时,文章也指出了实施过程中的技术难题、成本考量及法规限制等挑战,为读者提供了对区块链技术在供应链领域应用前景的全面认识。
|
8天前
|
供应链 物联网 区块链
未来已来:探索区块链、物联网与虚拟现实技术的融合趋势与实践应用
【10月更文挑战第34天】随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐步渗透到我们的生活中,不仅改变着我们的生活方式,还在重塑全球的经济结构。本文将深入探讨这些技术的发展现状、相互之间的融合趋势以及在实际应用中的创新场景。我们将通过具体案例分析,揭示这些技术如何共同作用,推动社会向更加智能、互联的方向发展。
24 3