区块链泰山众筹互助商城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 自带一个自动化测试框架,可以轻松测试合约,而不需要我们事先部署合约。

相关文章
|
1月前
|
安全 区块链
区块链积分商城系统开发详细指南//需求功能/指南教程/源码流程
Developing a blockchain points mall system involves multiple aspects such as blockchain technology, smart contracts, front-end development, and business logic design. The following is the general process for developing a blockchain points mall system
|
1月前
|
供应链 区块链 数据安全/隐私保护
探索区块链技术在金融领域的应用与前景分析
本文将深入探讨区块链技术在金融领域的具体应用场景,分析其优势与挑战,并展望未来发展趋势。通过案例分析和技术解析,揭示区块链技术在金融行业中的革新意义及前景。
|
1月前
|
监控 前端开发 安全
区块链积分商城系统开发详细步骤及源码
区块链积分商城系统涉及到多个方面的技术和流程。以下是一般开发流程的简要概述
|
1月前
|
供应链 区块链
区块链DAPP质押合约代币系统开发|模式方案
智能合约是一种数字化的合约,它将合约内容写入区块链中,保证了合约的公开透明
|
2月前
|
自然语言处理 安全 AndFix
区块链商城系统开发步骤指南/详细需求/源码功能/多语言/海外版
When developing a blockchain mall system, the following steps and requirements are usually required:
|
3月前
|
安全 数据挖掘 区块链
区块链商城源码搭建开发技术方案丨成熟讲解
区块链积分商城系统开发技术丨成熟方案
103 0
|
3月前
|
算法 区块链 Python
区块链代币DAPP逻辑系统开发技术方案丨单边上扬模式开发逻辑
区块链代币DAPP逻辑系统开发技术方案丨单边上扬模式开发逻辑
|
4月前
|
算法 数据管理 区块链
区块链合约代币质押项目系统开发模式详情
多链是一种新兴的区块链技术,其分片技术被称为“多链分片”
|
5月前
|
供应链 安全 区块链
区块链钱包合约代币质押系统开发(模式详情)
一组条件在时间的推移中不可能一直正确的,而智能合约是不可变的,更新当前的预编程条件几乎是不可能的
|
6月前
|
存储 算法 安全
数字货币区块链合约系统开发指南与方案
区块链的工作原理是通过共识算法来解决网络中的节点之间的信任问题

热门文章

最新文章