以太坊合约简单部署和使用

摘要:
Abi=〔{constant:type:'function'}〕//创建合同>MultilyContract=web3.eth。合同(abi)//解锁帐户>帐户密码。第三个参数:data:miner。启动(4);我的合同=eth。合同(abi)//实例合同>

1.准备一个已编写的合约:

——该合约是用solidity语言编写

pragma solidity ^0.4.0;

contract test {

    function multiply(uint a) returns(uint d) { 

        return a * 7;

    }

}    
  1. 编译合约

想要部署合约需要得到合约代码的ABIEVM code

一个编译合约的在线编译网站:

http://chriseth.github.io/browser-solidity/#version=soljson-latest.js

图中Bytecodeinterface就是我们需要的结果。

  1. 部署合约

在部署合约前,我们要明确需要以下几项条件:

一个有的账户;

该账户已解锁;

编译合约得到的abi(interface)code(bytecode)

//定义abi

>abi=[{constant:false,inputs:[{name:'a',type:'uint256'}],name:'multiply',outputs:[{name:'d',type:'uint256'}],type:'function'}]

//创建合约 

>multiplyContract = web3.eth.contract(abi)

//解锁账户

>personal.unlockAccount(eth.coinbase, '123', 10000)

第一个参数是账户地址.

        第二个参数:账户密码.

        第三个参数:账户解锁持续的时间, 以毫秒为单位

 

//部署合约。data为上述编译得到的Bytecode

>multiply=multiplyContract.new({from:eth.coinbase,data:"0x60606040523415600b57fe5b5b60788061001a6000396000f300606060405263ffffffff60e060020a600035041663c6888fa181146020575bfe5b3415602757fe5b60306004356042565b60408051918252519081900360200190f35b600781025b9190505600a165627a7a7230582007a6259ba3d57941abda2e261e9a67958a3eda78b779d9dd8d42518791fddd590029"})

//我们知道部署合约的过程实际也是由创建合约的账户发送的一笔交易(即eth.coinbase账户)。需要挖矿进行确认。

>miner.start(4);admin.sleepBlocks(2);miner.stop();

  1. 与合约交互

//获取合约对象

>MyContract = eth.contract(abi)

//实例化合约

>myContract = MyContract.at(multiply.address)

//调用合约

>myContract.multiply.call(5)

免责声明:文章转载自《以太坊合约简单部署和使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇hash函数的选择Windows 服务器上的 WordPress 站点优化笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EOSIO开发区块链DApp之智能合约

这是一步步的用EOSIO开发区块链DApp的第二部分,这部分将主要是为EOSIO平台开发智能合约。 示例智能合约的目的是模拟选举。我创建了一个EOSIO用户来托管智能合约。创建了两个公民用户来投票给候选人。投票记录保存在EOSIO区块链中。在此示例中,所有操作都在命令模式下运行。让我们开始吧。 开发智能合约 EOSIO执行以WebAssembly标准开发的...

Foxmail忘了帐户访问密码咋办?

我们为防止别人偷看Foxmail邮箱,通常会为Foxmail帐户设一个访问密码。要一不小心把这个密码搞丢了怎么办?下面系统之家介绍一些方法可以解一时之急:1.给Account.stg 文件更名或删除   其实,可以更简单进入忘记口令的账户,浏览自己以前的信件。方法是:进入Mail 文件夹下以你的账户名为目录名的目录下,将其中的Account.stg 文件...

本地Git配置绑定远程Github账户

(背景是本地环境以前没有绑定过github,即没有残余文件) 本地设置用户名和链接远程账户(引号内修改为自己的用户名和账号) git config --global user.name"wangqinghe95"git config --global user.email"675072584@qq.com" 配置密钥 ssh-keygen -t rsa -...

Application.mk文件官方使用说明

本文档介绍了 ndk-build 所使用的 Application.mk 编译文件。 我们建议先阅读概念页面,然后再阅读本页面。 概览 Application.mk 指定了 ndk-build 的项目范围设置。默认情况下,它位于应用项目目录中的 jni/Application.mk下。 注意:其中许多参数也具有模块等效项。例如,APP_CFLAGS 对应...

libffi

This is libffi.info, produced by makeinfo version 5.1 from libffi.texi. This manual is for Libffi, a portable foreign-function interfacelibrary. Copyright (C) 2008, 2010, 2011 Red...

Android.mk文件官方使用说明

本页介绍了 ndk-build 所使用的 Android.mk 编译文件的语法。 概览 Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库。它实际上是编译系统解析一次或多次的微小 GNU makefile 片段。Android.mk 文件用于定义 Application.mk、编译系统和环境变量所未定义的项目范...