另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:
创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。2 L, V- [7 b1 e+ J5 N4 F, Q) a
1 L6 @4 x% f) a i3 c! f
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。& E! L% T3 m5 Q5 m
因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。
将红框中原有的代码删除,将下面的代码粘贴到里面。8 H3 R! r* c+ r" ^- s
- /*
- This creates a public tradeable fungible token in the Ethereum Blockchain.' t. h+ D, \. @4 e1 q
- https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs7 M5 H3 s \- M; s
- Unmodified this will create a cryptoasset with a fixed market cap- a, q6 k" V8 L6 s" y
- wholly owned by the contract creator. You can create any function) e# ^8 V% c$ X$ Y( ~% I9 e
- to change this contract, like allowing specific rules for the issuance,% T9 q' V T7 i& i d
- destruction and freezing of any assets. This contract is intended for' G* U b- M. }% X9 z9 x# L1 Y
- educational purposes, you are fully responsible for compliance with
- present or future regulations of finance, communications and the# g9 a0 J/ ^: W# k$ l/ ]
- universal rights of digital beings.
- Anyone is free to copy, modify, publish, use, compile, sell, or# ~8 a& z5 m7 H' h
- distribute this software, either in source code form or as a compiled
- binary, for any purpose, commercial or non-commercial, and by any) C# l4 R+ r8 D3 u# h2 ?7 J0 q6 z
- means.
- In jurisdictions that recognize copyright laws, the author or authors
- of this software dedicate any and all copyright interest in the# `- a! V$ \9 G: u* `6 T; ]
- software to the public domain. We make this dedication for the benefit, A% Z/ [- f; `$ U! s
- of the public at large and to the detriment of our heirs and3 s5 W6 @7 @$ `& W# L7 D. \
- successors. We intend this dedication to be an overt act of
- relinquishment in perpetuity of all present and future rights to this# l8 P1 C7 V+ d G
- software under copyright law.6 q8 Q* g% o5 J4 A9 w! O
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,. F8 R( @- x% p- S( R) G+ r
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF0 ?9 C; U) i2 j: I2 o0 {9 u
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.% G' ]1 I# q4 C# c# S
- IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR/ S( d5 `- T* m+ L! w/ h/ F
- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
- For more information, please refer to - m8 `. K1 |! \# M: W9 e/ g
- */
- contract MyToken {
- /* Public variables of the token */" b2 A7 ~& j6 a* R- o
- string public name;
- string public symbol;2 n h O$ h& s# W6 x% y6 U
- uint8 public decimals;
- /* This creates an array with all balances */. P n0 J" c) g1 W
- mapping (address => uint256) public balanceOf;: G0 j+ Q) v) i' G/ l, k+ G
- /* This generates a public event on the blockchain that will notify clients *// {" Q' H2 t9 V( H `: A+ f
- event Transfer(address indexed from, address indexed to, uint256 value);# y1 G: m( M: o" q$ R! n3 l3 F0 J! i
- /* Initializes contract with initial supply tokens to the creator of the contract */- |4 N1 r) Z. L/ d
- function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {
- /* if supply not given then generate 1 million of the smallest unit of the token */
- if (_supply == 0) _supply = 1000000;
- /* Unless you add other functions these variables will never change */
- balanceOf[msg.sender] = _supply;, Y' [9 p" q$ T4 A( l
- name = _name;8 b+ y. q( }! {/ m; L
- symbol = _symbol;
- /* If you want a divisible token then add the amount of decimals the base unit has */* B! p. }+ O5 g5 F
- decimals = _decimals;
- }
- /* Send coins */0 ?; v% h: H. v% {5 W( a6 m8 O
- function transfer(address _to, uint256 _value) {
- /* if the sender doenst have enough balance then stop */' c8 H% n7 [. o0 ?+ P" m" G
- if (balanceOf[msg.sender] , T$ R& M+ \8 Y; b! k' I
- if (balanceOf[_to] + _value 7 F Y* M( h+ ?
- /* Add and subtract new balances */
- balanceOf[msg.sender] -= _value;. C7 g, O7 O% x
- balanceOf[_to] += _value;
- /* Notifiy anyone listening that this transfer took place */
- Transfer(msg.sender, _to, _value);5 t" Y- M: @, q0 b& I/ \; k# r! G
- }
- }
如果代码编译成功,在左边将看到Pick contract,如下图:
然后,选择MyToken选项,如下图:$ @/ G$ l8 J0 L! f6 x! `
4 [3 B: A! K0 e1 E& v
然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。/ e$ z; v- r% S" F) J! x) t" Y# Z+ Y
下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。
1 V; |3 r! O) g. ^6 \
点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。9 l( y3 y) M7 P E3 }1 h
9 y! p. ^, X! a% [
然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。7 K# D( e& W t X/ t: u1 I# `% \
显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。
& _2 J% [1 }( _ \7 o0 q
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。
& e: `5 P- G% Y
再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。) N9 h8 O1 Q. ^; z: N* T+ V
弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。2 P2 _$ F. G' R! \% C* }
; S0 l2 h; ^+ {9 M
完成以后,在合约页面就可以看到新创建的货币了。
发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。
7 |+ U7 _/ t, z6 ^- ]
跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。
回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
& T: J# A8 \) U/ q( {
收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。, [( u& ~) w& _
将发送者新创建币的合约地址复制到红色方框中,点击OK。3 O, A0 q3 h+ y1 V. K2 g
收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。