實(shí)現(xiàn)一個(gè)真正可用的艾西歐(上)

艾西歐在去年火遍了大江南北。各種艾西歐也是層出不窮,作為韭菜的我也隨波逐流的參加了一些艾西歐夯到,結(jié)果可想而知,現(xiàn)在已經(jīng)腿斬了屡久,回本遙遙無期啊。艾西歐有風(fēng)險(xiǎn)爱榔,參加需謹(jǐn)慎啊被环。

在參加艾西歐的過程中,我們應(yīng)該也聽過很多新鮮名詞详幽,什么“軟頂”筛欢,“硬頂”。這對(duì)于剛進(jìn)來的新韭菜來說完全不懂啊唇聘,我也是網(wǎng)上查了下版姑,才明白什么意思。那么什么是“軟頂”迟郎,什么是“硬頂”呢剥险? 其實(shí)用代碼來理解是非常簡單的。

上一篇我們簡單的實(shí)現(xiàn)了一個(gè)艾西歐宪肖,那個(gè)艾西歐肯定是不能上線用的表制,token的數(shù)量都沒有限制(當(dāng)然也不會(huì)有人給這樣的艾西歐轉(zhuǎn)ETH吧)可以無限增發(fā),也沒有測(cè)試控乾。那么一個(gè)可以用的艾西歐應(yīng)該要如何來寫呢么介?

首先對(duì)于一個(gè)可以真正使用的艾西歐應(yīng)該滿足什么條件呢?我覺得應(yīng)該要滿足下面幾點(diǎn):

  1. 要根據(jù)籌集到的ETH增發(fā)相應(yīng)的Token阱持,當(dāng)然可以設(shè)定籌集的最小值和最大值。當(dāng)籌集的ETH沒有達(dá)到最小值的時(shí)候魔熏,退還給參與艾西歐的投資者衷咽。當(dāng)籌集的ETH達(dá)到最大值得時(shí)候,不再接受ETH蒜绽。
  2. 支持預(yù)售镶骗。
  3. 可以給參與預(yù)售的人一定的折扣。
  4. 安全躲雅,沒有bug鼎姊。

在實(shí)現(xiàn)這么一個(gè)艾西歐的智能合約之前,我們需要使用到的工具:

  1. nodejs 8 和 npm
  2. Truffle 框架
  3. Ganache
  4. Open Zeppelin
  5. MetaMask

安裝 Node js

這個(gè)應(yīng)該很簡單了,就不在介紹相寇。

安裝Truffle

Truffle 給我們提供了一種非常方便的方式來構(gòu)建我們的智能合約慰于。npm install -g truffle 直接安裝就可以。

安裝 Ganache

Ganache可以讓你在自己的電腦上運(yùn)行一個(gè)私有以太坊唤衫。這也是我們后面會(huì)發(fā)布合約運(yùn)行測(cè)試用例要用到的鏈婆赠。上篇文章我們提到 Ganache-cli,這次我們使用的Ganache的客戶端佳励,Truffle默認(rèn)的也是Truffle客戶端休里,當(dāng)然要使用Ganache-cli 也是可以的,只需修改下端口就行赃承。直接到Ganache官網(wǎng)下載安裝即可妙黍。安裝后運(yùn)行,一個(gè)私有的以太坊就在內(nèi)存中運(yùn)行起來了瞧剖。

初始化項(xiàng)目

首先給我的艾西歐項(xiàng)目取一個(gè)名字拭嫁,我就隨便取了叫WebCrowdsale,同時(shí)發(fā)布的Token叫WebCoin

現(xiàn)在在我們的電腦上新建一個(gè)文件夾叫WebCrowdsale筒繁, 打開命令行噩凹,進(jìn)入WebCrowdsale

在命令行執(zhí)行 truffle init 初始化我們的項(xiàng)目毡咏。命令執(zhí)行成功后驮宴,會(huì)看到生成了幾個(gè)文件夾和一些文件:

WebCrowdsale/
     contracts/
     migrations/
     test/
     truffle.js
     truffle-config.js

其中 contracts是我們編寫智能合約的目錄, migrations是我們編寫發(fā)布智能合約的目錄呕缭, test 是測(cè)試目錄堵泽,truffle.js 是truffle的配置文件。當(dāng)我們編譯我們的智能合約后恢总,會(huì)生成一個(gè)build目錄迎罗,就是放我們編譯后文件的目錄。

安裝 Open Zeppelin

我們不應(yīng)該重復(fù)造輪子片仿,特別是涉及到錢的時(shí)候纹安。重新造的輪子可能會(huì)存在一些未知的bug,導(dǎo)致程序出問題砂豌,而引起不必要的損失厢岂。在寫智能合約的時(shí)候,要保持代碼的簡潔阳距,代碼越少越好塔粒。代碼越少bug也會(huì)減少。

OpenZeppelin提供了ERC20 Token和 Crowdsale的模板給大家用筐摘,同時(shí)它為這些模板編寫了測(cè)試完備的測(cè)試用例卒茬,這在很大程度上保證了代碼的安全船老。所以我會(huì)在基于OpenZeppelin的基礎(chǔ)上編寫我們的艾西歐代碼。

安裝OpenZepplin圃酵。 命令行執(zhí)行npm install zeppelin-solidity@1.5.0

我使用的是OpenZepplin的1.5.0的版本柳畔,在安裝成功后,我們可以在node_modules/zeppelin-solidity 目錄中查看提供的模板代碼辜昵。

這次就寫到這了荸镊,所有的都寫出來,文章會(huì)很長堪置,大家看的也累躬存,所以決定分開三篇來寫。這篇算是準(zhǔn)備舀锨,下一篇寫代碼岭洲,最后一篇寫如何發(fā)布到Ropsten測(cè)試網(wǎng)。

在繼續(xù)之前坎匿,建議大家先去看下OpenZepplin中的合約代碼盾剩,這對(duì)于后面編寫自己的智能合約會(huì)有很大幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末替蔬,一起剝皮案震驚了整個(gè)濱河市告私,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌承桥,老刑警劉巖驻粟,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凶异,居然都是意外死亡蜀撑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門剩彬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酷麦,“玉大人,你說我怎么就攤上這事喉恋∥秩模” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵轻黑,是天一觀的道長糊肤。 經(jīng)常有香客問我,道長苔悦,這世上最難降的妖魔是什么轩褐? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任椎咧,我火速辦了婚禮玖详,結(jié)果婚禮上把介,老公的妹妹穿的比我還像新娘。我一直安慰自己蟋座,他們只是感情好拗踢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著向臀,像睡著了一般巢墅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上券膀,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天君纫,我揣著相機(jī)與錄音,去河邊找鬼芹彬。 笑死蓄髓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的舒帮。 我是一名探鬼主播会喝,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼玩郊!你這毒婦竟也來了肢执?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤译红,失蹤者是張志新(化名)和其女友劉穎预茄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體临庇,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡反璃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了假夺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淮蜈。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖已卷,靈堂內(nèi)的尸體忽然破棺而出梧田,到底是詐尸還是另有隱情,我是刑警寧澤侧蘸,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布裁眯,位于F島的核電站,受9級(jí)特大地震影響讳癌,放射性物質(zhì)發(fā)生泄漏穿稳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一晌坤、第九天 我趴在偏房一處隱蔽的房頂上張望逢艘。 院中可真熱鬧旦袋,春花似錦、人聲如沸它改。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽央拖。三九已至祭阀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鲜戒,已是汗流浹背专控。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遏餐,地道東北人踩官。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像境输,于是被迫代替她去往敵國和親蔗牡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容