另外,你还需要一点以太币,大多数合约只需要价值不要1毛钱的以太币。如果你没有以太币,又不想到国外交易所折腾,可以选择用微信扫描下面的二维码直接在微信中购买:" A4 \! r; t- _$ ^; o
" @! v/ r4 C6 I; Y7 P7 y P2 d
创建账户并购买到1个以太币以后,钱包界面如下,创建新币合约我们要创建的第一个合约是一个代币合约。; X) ]& H }: ?$ y0 W4 N& |2 q
! u6 F( k" h8 u' d6 u% v5 s: O
以太坊生态系统中的代币可以代表任何可以交易的东西:币(coin)、积分、黄金证券、欠条(IOU)等。3 X2 {/ R/ z m) u4 e
因为所有的代币都以标准化的方式实现一些基本的特性,这样意味着你自己创建的代币将于以太坊钱包、使用相同标准的任何其它客户端或者合约相兼容。点击红框中的Contract(合约)。) A5 P/ T$ V1 ]: x n5 y6 O
将红框中原有的代码删除,将下面的代码粘贴到里面。0 z U7 o* E, ~9 } g* p
- /*( n6 q1 k$ q8 M/ Z9 l
- This creates a public tradeable fungible token in the Ethereum Blockchain.0 Q, O- \9 {0 m( G+ \
- https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs
- Unmodified this will create a cryptoasset with a fixed market cap
- wholly owned by the contract creator. You can create any function8 x, o5 b4 w5 S* ?5 h, j) C
- to change this contract, like allowing specific rules for the issuance,
- destruction and freezing of any assets. This contract is intended for
- educational purposes, you are fully responsible for compliance with
- present or future regulations of finance, communications and the
- universal rights of digital beings." D, Z4 h3 S+ E" I$ r
- Anyone is free to copy, modify, publish, use, compile, sell, or
- distribute this software, either in source code form or as a compiled: y8 r8 N( V6 Z$ G
- binary, for any purpose, commercial or non-commercial, and by any
- means.( V7 E8 `/ v& B+ \5 @, I o
- In jurisdictions that recognize copyright laws, the author or authors" B- `" ]. m2 t; R8 i2 U2 k( X* ~
- of this software dedicate any and all copyright interest in the
- software to the public domain. We make this dedication for the benefit
- of the public at large and to the detriment of our heirs and
- successors. We intend this dedication to be an overt act of
- relinquishment in perpetuity of all present and future rights to this
- software under copyright law.8 y7 v' V( E4 a: `( Z2 T5 B
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,0 L! s) m, m% R, b5 \# Q
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF0 @) x# _, _# Z) Q) }9 A" y
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- 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; h6 { u. V: K) o# k8 I
- OTHER DEALINGS IN THE SOFTWARE.! W( M, a* C- i8 v( ?$ O: [0 G% O# w
- For more information, please refer to
- */
- contract MyToken {0 H9 w/ |- J% C9 k; [, \
- /* Public variables of the token */
- string public name;
- string public symbol;0 @+ |. J' y$ K# d- _
- uint8 public decimals;5 d% q! a- q: W5 G9 l+ y1 A$ Z
- /* This creates an array with all balances */4 ?; \( R0 w* ?7 b3 D' U: z. ?
- mapping (address => uint256) public balanceOf;( b: A! q( Y9 }9 Y6 s+ i0 d6 p. n5 p
- /* This generates a public event on the blockchain that will notify clients */- J$ p+ i: }, T3 e
- event Transfer(address indexed from, address indexed to, uint256 value);
- /* Initializes contract with initial supply tokens to the creator of the contract */
- 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 */9 p4 E5 j: x% z4 o9 `/ e
- balanceOf[msg.sender] = _supply;$ m/ V% Q* @& Q' @/ k$ T# x
- name = _name;, X8 m# f4 Y& K1 A* d
- symbol = _symbol;+ r; Q- b3 A' ?2 ?1 L X
- /* If you want a divisible token then add the amount of decimals the base unit has */2 L7 o6 U: I Z! ?9 b
- decimals = _decimals;
- }0 e' T+ n ?: }8 i; x8 R4 n
- /* Send coins */9 a6 Z% Q9 B4 m# c: m
- function transfer(address _to, uint256 _value) {
- /* if the sender doenst have enough balance then stop */" y% j1 m C# h) _5 b( J, ^
- if (balanceOf[msg.sender] 2 k4 z& ?$ P6 J4 r& F$ Q$ f* I
- if (balanceOf[_to] + _value
- /* Add and subtract new balances */; w8 E- V) @' N1 G4 m4 R) @, Y
- balanceOf[msg.sender] -= _value;
- balanceOf[_to] += _value;
- /* Notifiy anyone listening that this transfer took place */
- Transfer(msg.sender, _to, _value);
- }9 p2 [: [' {' X) _* r; J' W. q
- }
如果代码编译成功,在左边将看到Pick contract,如下图:4 w1 `+ i& L9 c1 I& E
+ _+ P3 T3 y4 E* |* q5 R) S. a
然后,选择MyToken选项,如下图:
然后,在右边更改系数,定制自己的货币。supply: 货币总量,name: 货币名字,symbol:货币符号,decimals:货币单位精确到小数点后几位。
下图定制的Shaopingcoin(少平币),总量10000个,货币符号:WL,货币单位精确到小数点后八位。根据自己的喜好,填写即可。 SELECT FEE(选择费用),左右拖动横轴选择支付多少手续费(这里就需要用到前面购买到的以太币了),越靠近右边,费用越高,完成合约的速度越快。例如,我选择了0.016131个以太币,大约需要30秒完成合约。完成后,点击DEPLOY(部署)。/ W' q% }9 f( T6 r, w8 u
1 m: k3 K* Q/ T4 @+ z* n2 H& Y
点击DEPLOY后,自动转到如下界面,输入密码(即创建账户时设置的 密码),点击SEND TRANSACTION(发送交易)。
然后,会跳转到钱包主界面,你会看到下面红色方框中的信息,大约需要3-4分钟的确认时间,完成12个确认就可以了。6 y: ~9 [3 F e: |5 t
显示新创建的货币。确认完毕,然后再进入CONTRACTS(合约)页面,你将看到刚才创建的货币,例如下图中的ShaopingCoin。; C; P. G. R; k. a5 w. {
! Z& o7 M) t* {# E' t/ Z7 g0 |
点击创建的货币,转到以下界面,复制红色方框中的合约地址,下面的步骤中要用到。7 K, i- G& ]& x
再次回到CONTRACTS(合约)页面,点击WATCH TOKEN(查看代币)。( ?9 ~' n" l9 o1 g
弹出如下界面,将刚才复制的地址粘贴到红色方框中,会看到货币的名字、符号等信息。点击OK。
完成以后,在合约页面就可以看到新创建的货币了。) b; R6 [5 D; N
/ e7 ~: ?" k1 L' c
发送新创建的新货币进入SEND(发送)页面,在右上角的红色方框中输入收款者的账户地址。在AMOUT中填写发送的数量,在右边的红色方框中选择要发送的货币。左右拖动横轴选择费用,越靠近右边费用越高,处理速度越快。下图表示向0xba960dbedc4c2e0774729b2def16764592ced454地址发送10个ShaopingCoin,交易费用是0.00253625个以太币。点击SEND(发送)。
) b) D+ M4 @, u/ [( k, I, w" B3 h/ a" I
跳转到如下确认界面,输入密码(即创建账户时设置的密码)。点击SEND TRANSACTION(发送交易)。5 T: q% G; I4 f$ o, }6 `
+ x2 G( [* h) w. v, v; \8 ~
回到WALLETS(钱包)界面,会看到刚刚发出的记录信息。
6 H" O3 a6 z, `9 Z/ a1 {2 q, Q9 l
收款者需要将新创建的币的添加到WATCH Token中才可以看到收到的币。收款者进入CONTRACT(合约)页面,点击WATCH TOKEN。发送者将创建的新币的合约地址通过聊天工具发给收款者。. L6 f, W, K) d9 X9 h$ E3 z1 H2 f
5 a. B- C; T0 g" X; t, j" o
将发送者新创建币的合约地址复制到红色方框中,点击OK。
收款者在WALLETS(钱包)页面将看到收到的币。下图显示收到了10个ShaopingCoin。2 `- s6 G1 w t