NFT质押挖矿DAPP系统开发详情(现成案例搭建)

简介: 智能合约代码

现在我们来开始编写第一个智能合约代码,solidity代码如下:

p`js
ragma solidity ^0.4.2;
contract hello {

string greeting;

function hello(string _greeting) public {
    greeting = _greeting;
}

function say() constant public returns (string) {
    return greeting;
}

}

在编写完成代码,IDE进行编译时会出现错误,注意要选择正确的编译器版本,如图:
简单解释下,我们定义了一个名为hello的合约,在合约初始化时保存了一个字符串(我们会传入hello world),每次调用say返回字符串。
把这段代码写(拷贝)到Browser-Solidity,如果没有错误,点击Details获取部署代码,如:
部署合约
Browser-Solidity生成的代码,拷贝到编辑器里修改后的代码如下:

var _greeting = "Hello World";
var helloContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"say","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function","stateMutability":"view"},{"inputs":[{"name":"_greeting","type":"string"}],"type":"constructor","payable":true,"stateMutability":"payable"}]);
var hello = helloContract.new(
_greeting,
{

 from: web3.eth.accounts[2], 
 data: '0x6060604052604051610250380380610250833981016040528080518201919060200150505b8060006000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10607157805160ff1916838001178555609f565b82800160010185558215609f579182015b82811115609e5782518260005055916020019190600101906082565b5b50905060c6919060aa565b8082111560c2576000818150600090555060010160aa565b5090565b50505b50610178806100d86000396000f360606040526000357c010000000000000000000000000000000000000000000000000000000090048063954ab4b21461003c57610037565b610002565b346100025761004e60048050506100bc565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b602060405190810160405280600081526020015060006000508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156101695780601f1061013e57610100808354040283529160200191610169565b820191906000526020600020905b81548152906001019060200180831161014c57829003601f168201915b50505050509050610175565b9056', 
 gas: '4700000'

}, function (e, contract){

console.log(e, contract);
if (typeof contract.address !== 'undefined') {
     console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
}

})

相关文章
|
关系型数据库 MySQL 数据安全/隐私保护
关于Navicat Premium连接MySQL出现2059错误解决方法
关于Navicat Premium连接MySQL出现2059错误解决方法
|
9月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
372 10
|
11月前
|
人工智能 UED
VersaGen:生成式 AI 代理,基于 Stable Diffusion 生成图像,专注于控制一至多个视觉主体等生成细节
VersaGen 是一款生成式 AI 代理,专注于文本到图像合成中的视觉控制能力,支持多种视觉控制类型,并通过优化策略提升图像生成质量和用户体验。
239 8
VersaGen:生成式 AI 代理,基于 Stable Diffusion 生成图像,专注于控制一至多个视觉主体等生成细节
|
存储 缓存 负载均衡
从零到一:分布式缓存技术初探
分布式缓存通过将数据存储在多个节点上,利用负载均衡算法提高访问速度、降低数据库负载并增强系统可用性。常见产品有Redis、Memcached等。其优势包括性能扩展、高可用性、负载均衡和容错性,适用于页面缓存、应用对象缓存、状态缓存、并行处理、事件处理及极限事务处理等多种场景。
721 1
|
存储 项目管理 开发工具
|
负载均衡 Kubernetes 网络协议
kubernetes--kube-proxy组件深入理解
每台机器上都运行一个kube-proxy服务’它监听API server中service和endpoint的变化情 况,并通过iptables等来为服务配置负载均衡(仅支持TCP和UDP)
739 0
|
API 数据库 Python
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
841 1
|
存储 Windows
基于flutter3.22+getx手机端os系统管理FlutterOSX
flutter3-osx原创研发手机桌面式OA管理系统新解决方案模式。
272 5
|
Java Spring
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
解决Springboot集成ElasticSearch 报错:A bean with that name has already been defined in null and overriding
493 2
ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字
当我们使用 ElementUI 构建表单页面的时候,经常需要使用到复合型输入框,可前置或后置元素,一般为标签或按钮,作为该输入框的说明性文字。
1509 0
ElementUI 为 DatePicker 日期选择器组件添加前缀说明文字