比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

接入去中心化預言機Chainlink喂價開發DeFi看漲期權交易平臺實例-ODAILY_LINK

Author:

Time:1900/1/1 0:00:00

DeFi這個大類下包含許多智能合約應用場景,如區塊鏈投票、去中心化彩票、流動性挖礦以及去中心化交易平臺。本文將教大家如何使用Chainlink喂價預言機在以太坊主網上用Solidity開發簡單的看漲期權DeFi交易平臺。當然,你也可以將這個實例稍作修改,開發一個看跌期權交易平臺。這個平臺擁有一個強大的功能,那就是所有價值轉移都通過智能合約進行,交易雙方可以繞過中間方直接展開交易。因此,這個過程不包含任何第三方,只包含智能合約和去中心化的Chainlink喂價,這就是最典型的DeFi應用。開發一個去中心化期權交易平臺將涵蓋以下內容:

在Solidity中對比字符串

將整數轉換成固定位數的小數

創建并初始化一個通證接口,比如LINK

在用戶/智能合約之間轉移通證

批準通證轉移

SafeMath

智能合約ABI接口

用require()執行交易狀態

以太坊msg.Value及其與通證價值交易的區別

在int和uint之間進行轉換

應付的地址

最后,用Chainlink數據聚合商的接口獲取DeFi價格數據

各位可以去GitHub和Remix上查看相關代碼。在我們正式開始前,先來簡單介紹一下什么是期權合約。期權合約讓你有權選擇在某個期限前以約定的價格執行交易。具體而言,如果期權合約內容是買入股票或通證等資產,則被稱為看漲期權。另外,本文的示例代碼可以稍作修成看跌期權。看跌期權與看漲期權正好相反,其內容不是買入資產而是賣出資產。以下是期權相關的一些專有名詞:

行權價格:約定的資產買進/賣出價格

期權費用:購買合約時支付給賣家的費用

到期日:合約終止的時間

行權:買家行使其權利以行權價格買賣資產的行為

無論是開發看漲期權還是看跌期權,都需要導入、構造函數和全局變量這些基本元素。

pragmasolidity^0.6.7;

import"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol";

import"https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

import"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/SafeMath.sol";

contractchainlinkOptions{

//溢出安全操作符

usingSafeMathforuint;

//喂價接口

AggregatorV3InterfaceinternalethFeed;

AggregatorV3InterfaceinternallinkFeed;

//LINK通證接口

LinkTokenInterfaceinternalLINK;

uintethPrice;

uintlinkPrice;

NFT交易平臺Magic Eden已接入OKX Web3錢包:4月26日消息,據官方消息,OKX Web3 錢包與 NFT 交易平臺 Magic Eden 達成官方合作,用戶可通過連接 OKX Web3 插件錢包在 Magic Eden 交易 NFT。同時 OKX Web3 錢包的 Discover 板塊也收錄了 Magic Eden,用戶可在 OKX Web3 錢包內進入 Magic Eden 探索、鑄造和交易 NFT 等。

據悉,OKX Web3 錢包是最全面的異構多鏈錢包,已支持近 60 條公鏈,App、插件、網頁三端統一。[2023/4/26 14:28:18]

//預計算字符串哈希值

bytes32ethHash=keccak256(abi.encodePacked("ETH"));

bytes32linkHash=keccak256(abi.encodePacked("LINK"));

addresspayablecontractAddr;

//期權以結構數組形式儲存

structoption{

uintstrike;//PriceinUSD(18decimalplaces)optionallowsbuyertopurchasetokensat

uintpremium;//Feeincontracttokenthatoptionwritercharges

uintexpiry;//Unixtimestampofexpirationtime

uintamount;//Amountoftokenstheoptioncontractisfor

boolexercised;//Hasoptionbeenexercised

boolcanceled;//Hasoptionbeencanceled

uintid;//UniqueIDofoption,alsoarrayindex

uintlatestCost;//Helpertoshowlastupdatedcosttoexercise

addresspayablewriter;//Issuerofoption

addresspayablebuyer;//Buyerofoption

}

optionpublicethOpts;

optionpubliclinkOpts;

//Kovan喂價:https://docs.chain.link/docs/reference-contracts

constructor()public{

//以太幣/美元的Kovan喂價

ethFeed=AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);

//LINK/美元的Kovan喂價

linkFeed=AggregatorV3Interface(0x396c5E36DD0a0F5a5D33dae44368D4193f69a1F0);

//Kovan上的LINK通證地址

LINK=LinkTokenInterface(0xa36085F69e2889c224210F603D836748e7dC0088);

contractAddr=payable(address(this));

}

在導入時,我們需要接入Chainlink的數據聚合商接口實現喂價功能,并接入LINK通證接口。最后,我們導入OpenZeppelin的SafeMath?合約,這是執行內置溢出檢查運算的標準庫,而Solidity的內置操作符中不包含溢出檢查。

得物App接入數字人民幣支付:金色財經報道,據中國網科技頻道1月14日消息,得物App已正式接入數字人民幣支付,據悉,得物App與交通銀行、工商銀行等數字人民幣運營機構達成合作,首先在得物App線下店接入數字人民幣,用戶下載數字人民幣App并成功開戶后,在線下門店購物時也可直接使用數字人民幣支付。[2022/1/14 8:49:36]

接下來,我們重新定義運算類型和uint,使用導入的SafeMath,定義我們的喂價、LINK接口、價格變量,計算以太幣和LINK字符串的keccak256哈希值,以及地址變量來儲存我們的合約地址。要注意一點,地址被定義為“應付”,因為我們的合約需要用這個地址收款。接著,在構建完成后將接口初始化成Kovan合約地址,這樣就可以調用合約函數,并用“address(this)”設置合約地址。我們再將地址轉換成“應付”,因為否則address()會返回無法支付的地址類型。至于期權本身的數據類型,可以用一個結構數組,也可以用結構鏈表。使用標準數組的好處是我們可以直接訪問期權,這是鏈表無法做到的,但同時,刪除標準數組中的值計算成本非常高。因此,我們不對期權做刪除操作,而只將它們標記為“到期”或“取消”,這樣就能犧牲儲存空間以換取計算速度和簡便性。最后,期權的買賣和行權可以通過O(1)operations降低gas費用。

Chainlink喂價

//返回最新的LINK價格

functiongetLinkPrice()publicviewreturns(uint){

(

uint80roundID,

intprice,

uintstartedAt,

uinttimeStamp,

uint80answeredInRound

)=linkFeed.latestRoundData();

//如果這輪還沒有結束,則timestamp是0

require(timeStamp>0,"Roundnotcomplete");

//價格永遠不會是負數,因此可以將int轉換成uint

//價格小數點后有8位,之后需要增加10位變成18位。

returnuint(price);

}

我們首先實現的是兩個getter函數,獲取以太幣和LINK喂價。以太幣的函數與上方LINK函數一樣,唯一不同的是接入以太幣喂價。這會調用latestRoundData()函數查看我們初始化的喂價,并且會自動返回最新的去中心化市場聚合價格數據。因為這是一個view函數,所以甚至連gas費也用不著!我們對默認喂價getter函數做了一個調整,將價格從int轉換成uint,以匹配之后使用uint的函數。這里要注意一點,這樣轉換是ok的,因為價格永遠不可能是負數,所以不會用到int的符號位。在類型之間轉換的時候需要考慮到這些細節。

寫一個看漲期權合約

//允許用戶寫保持看漲期權

//接收的通證類型,行權價格,期權費用,到期日,合約中的通證數量

functionwriteOption(stringmemorytoken,uintstrike,uintpremium,uintexpiry,uinttknAmt)publicpayable{

bytes32tokenHash=keccak256(abi.encodePacked(token));

require(tokenHash==ethHash||tokenHash==linkHash,"OnlyETHandLINKtokensaresupported");

updatePrices();

if(tokenHash==ethHash){

穩定幣TUSD現已接入PancakeSwap:據官方最新消息,高度合規透明的穩定幣TUSD現已接入部署在幣安智能鏈上的PancakeSwap,提供TUSD-BUSD流動性即可獲得CAKE代幣挖礦獎勵,前48小時享兩倍收益。此外,TUSD還在Syrup Pool糖漿池提供了100萬枚TUSD獎勵,用戶可通過質押CAKE代幣獲取TUSD獎勵,獎勵將于60天內釋放完畢。每個錢包地址前 48小時最大質押量為100枚CAKE, 此后則不限制數量。

PancakeSwap采用自動做市商(“AMM”)機制,可以在Binance智能鏈上進行兌換。速度快,費用低,并且允許任何人參與。TUSD是全球最透明,完全抵押并經鏈上實時驗證的美元穩定幣。目前已上線幣安、火幣、Poloniex等70+中心化交易所,基本覆蓋頭部交易所,并在數十個DeFi交易及借貸平臺中流通。TUSD流通量與美元儲備比例達到1:1, 實現100%儲備,并經全美最大的會計公司之一Armanino實時審計,用戶可隨時通過官網trueusd.com 獲取公開的審計結果。[2021/5/31 22:59:30]

require(msg.value==tknAmt,"IncorrectamountofETHsupplied");

uintlatestCost=strike.mul(tknAmt).div(ethPrice.mul(10**10));//以以太幣計價的行權費用,小數點位數調整

ethOpts.push(option(strike,premium,expiry,tknAmt,false,false,ethOpts.length,latestCost,msg.sender,address(0)));

}else{

require(LINK.transferFrom(msg.sender,contractAddr,tknAmt),"IncorrectamountofLINKsupplied");

uintlatestCost=strike.mul(tknAmt).div(linkPrice.mul(10**10));

linkOpts.push(option(strike,premium,expiry,tknAmt,false,false,linkOpts.length,latestCost,msg.sender,address(0)));

}

}

初始設置完成并接入喂價后,我們接下來就可以調用函數了,先來寫一個期權合約。賣家調用writeOption函數,并填入期權具體的參數,小數點后保留18位。這里必須要明確小數點位數,以確保合約中使用的所有參數都格式統一。比如,整數777沒有小數點,但是如果我們規定的邏輯是保留兩位小數,則表示成7.77。我們這里的規則是小數點后保留18位,因為以太幣和LINK都是18位小數。如果小數點后不到18位,則可以添加0變成18位。接下來,我們就可以第一次使用之前計算出的以太幣和LINK字符串哈希值。為了明確賣家的期權合約針對的是什么通證,我們需要比較字符串。然而Solidity不支持在字符串之間進行==操作,因為其長度是動態的。我們不需要寫一個函數一個個字節地比較字符串,而只需用keccak256哈希函數計算每個字符串的32位哈希值,并直接對比。只要哈希值一樣,字符串就一樣。現在我們知道賣家用的是哪種通證,就可以有的放矢了。如果是以太幣,我們就可以用msg.value確認轉賬到期權合約的以太幣數量是否正確。我們可以用require()函數嚴格執行。如果require的第一個字段為false,則交易會被拒絕,無法進行下去。這樣一來,我們可以確保所有期權合約的轉賬都完全符合之前約定的金額。檢查通過后,我們就可以創建期權合約,提供所有必須的字段生成結構。基于當前以太幣價格,使用SafeMath函數而非內置操作符計算當前行使期權的費用。使用Chainlink的updatePrices()helper函數獲取當前價格,這個函數會更新全局以太幣和LINK價格。注意ethPrice要乘以10的10次方。這樣做是因為Chainlink喂價返回的是8位小數的美元價格,但正如上文所述,我們現在的標準是18位小數。所以添加10個零可以將其調整成18位小數,符合以太幣和LINK通證的格式。最后,我們將期權的結構壓入ethOpts的數組中,這樣期權合約就寫完了,而且里面有足夠的資金。

波卡周報:Rococo已接入11條平行鏈,還有21條平行鏈等待申請接入:根據PolkaWorld最新發布的波卡周報,本周重要事件包括:

1.PolkaBTC的公測測試網上線,同時獲得了1300個DOT的國庫資助,用于激勵開發者使用測試網;

2.Compound公布了基于Compound chain白皮書的原型產品Gateway,這是一個由COMP代幣持有者管理的Substrate區塊鏈;

3.Ledger已經集成了波卡;

4.ONTOWallet現在集成了波卡作為他們支持的11條鏈之一;

5.Polkadot 0.8.29 已經發布,升級優先級低;

6.波卡的第16號公投,提議將波卡的驗證人提高到599個,沒有通過;

7.18號公投目前正在投票,提案人是一個技術問題的受害者,正在尋求償還;

8.Staking率在過去幾天保持相對穩定,但可以提名的最低DOT數量高達120 DOT;

9.波卡網絡在era 1951 slash懲罰了9個驗證人;

10.目前波卡平行鏈測試網Rococo已經接入11條平行鏈,還有21條平行鏈等待申請接入。目前因為有些平行鏈的驗證人不在線,所以導致出塊比較慢,預計Rococo在下周還有一次重啟,以優化網絡出塊較慢的問題。[2021/3/7 18:22:50]

針對一枚LINK通證寫一個LINK期權合約,設定Unix到期時間,行權價格為10美元,期權費用為0.1個LINK。

如果是LINK期權合約,那么就需要做一些修改了。Msg.value只提供交易中以太幣的金額。因此如果要確保LINK的金額充足,我們需要直接接入LINK通證合約。我們之前已經導入并初始化了LINK通證接口,因此可以訪問所有LINK通證函數,其中一個是transferFrom(),這個函數可以將LINK從一個地址轉移到另一個地址。當然,我們不能讓任何合約都可以隨便轉移你的LINK資產,所以必須首先調用LINK的approve()函數,并具體說明允許轉移的LINK數量以及轉移到的合約地址。

合約ABI接口

當你在Etherscan上查看合約時,會出現兩個tab,即:ReadContract和WriteContract。你可以用這兩個tab與合約進行交互。比如:LINK通證主網合約。Etherscan知道這些函數是什么以及如何通過合約的ABI調用函數。使用JSON格式調用ABI,規定函數調用參數。在主網上可以直接調用,但是在Kovan上的LINK合約需要導入這個模塊。各位可以在LinkToken的Github上查看ABI。所幸,在生產系統中,這些都可以用web3js的界面來處理,用戶可以用一個簡單的MetaMask請求來進行批準。但在我們這個開發實例中,暫時需要手動操作。

用導入的ABI通過MEW與Kovan上的LINK合約交互。

批準Kovan上的LINK合約轉入/轉出100個LINK通證。

購買看漲期權

//購買看漲期權,需要通證,期權ID和付款

functionbuyOption(stringmemorytoken,uintID)publicpayable{

bytes32tokenHash=keccak256(abi.encodePacked(token));

require(tokenHash==ethHash||tokenHash==linkHash,"OnlyETHandLINKtokensaresupported");

動態 | 北京互聯網法院召開“天平鏈”應用接入技術及管理規范新聞發布會:據官方消息,12月2日,北京互聯網法院召開“天平鏈”應用接入技術及管理規范新聞發布會。互聯網法院副院長佘貴清發布《天平鏈應用接入技術規范》與《天平鏈應用接入管理規范》。北互堅持中立、開放、安全、可控的建設理念,大力推進區塊鏈技術和司法創新的深度融合,探索出“一鏈、兩用、三規、四管”的“天平鏈模式”。[2019/12/2]

updatePrices();

if(tokenHash==ethHash){

require(!ethOpts.canceled&&ethOpts.expiry>now,"Optioniscanceled/expiredandcannotbebought");

//買家支付期權費

require(msg.value==ethOpts.premium,"IncorrectamountofETHsentforpremium");

//賣家收到期權費

ethOpts.writer.transfer(ethOpts.premium);

ethOpts.buyer=msg.sender;

}else{

require(!linkOpts.canceled&&linkOpts.expiry>now,"Optioniscanceled/expiredandcannotbebought");

//將期權費從買家轉給賣家

require(LINK.transferFrom(msg.sender,linkOpts.writer,linkOpts.premium),"IncorrectamountofLINKsentforpremium");

linkOpts.buyer=msg.sender;

}

}

現在期權合約創建完成且資金充足。接下來就等人來買了!買家只需表明購買以太幣或LINK期權的意愿以及期權ID即可。由于期權數組被定義成公開的,因此可以直接查看,無需支付gas費,買家可以查看所有期權合約及其ID字段。選擇完期權合約后,我們再次調用require()函數驗證期權費用的支付金額是否正確。這次,我們不僅需要確認msg.value,還需要將期權費用轉給賣家。Solidity中的所有以太幣地址都有一個address.transfer()函數,我們調用這個函數將期權費用從合約轉賬給賣家。然后設置期權合約的買家地址字段,就完成購買了!如果是LINK的話,操作就稍微簡單一些。可以用transferFrom函數直接將買家的期權費轉賬給賣家。如果是以太幣的話,期權費則需要先經過合約再到賣家地址。

行使期權

//行使看漲期權,需要通證,期權ID和付款

functionexercise(stringmemorytoken,uintID)publicpayable{

//如果期權沒到期且還沒有被行使,則允許期權所有者行使

//要行使期權,買家需向賣家支付行權價格*數量的金額,并獲得合約中約定數量的通證

bytes32tokenHash=keccak256(abi.encodePacked(token));

require(tokenHash==ethHash||tokenHash==linkHash,"OnlyETHandLINKtokensaresupported");

if(tokenHash==ethHash){

require(ethOpts.buyer==msg.sender,"Youdonotownthisoption");

require(!ethOpts.exercised,"Optionhasalreadybeenexercised");

require(ethOpts.expiry>now,"Optionisexpired");

//符合條件,進行付款

updatePrices();

//行權費用

uintexerciseVal=ethOpts.strike*ethOpts.amount;

//接入Chainlink喂價換算成以太幣

uintequivEth=exerciseVal.div(ethPrice.mul(10**10));//將喂價的8位小數轉換成18位

//買家支付與行權價格*數量等值的以太幣,行使期權。

require(msg.value==equivEth,"IncorrectLINKamountsenttoexercise");

//向賣家支付行權費

ethOpts.writer.transfer(equivEth);

//向買家支付合約數量的以太幣

msg.sender.transfer(ethOpts.amount);

ethOpts.exercised=true;

}else{

require(linkOpts.buyer==msg.sender,"Youdonotownthisoption");

require(!linkOpts.exercised,"Optionhasalreadybeenexercised");

require(linkOpts.expiry>now,"Optionisexpired");

updatePrices();

uintexerciseVal=linkOpts.strike*linkOpts.amount;

uintequivLink=exerciseVal.div(linkPrice.mul(10**10));

//買家行權,向賣家支付行權費

require(LINK.transferFrom(msg.sender,linkOpts.writer,equivLink),"IncorrectLINKamountsenttoexercise");

//向賣家支付合約數量的LINK通證

require(LINK.transfer(msg.sender,linkOpts.amount),"Error:buyerwasnotpaid");

linkOpts.exercised=true;

}

}

對于期權所有者來說,以太幣或LINK的價格如果超過行權價格,就能獲利。這樣一來,他們便愿意行使期權,以行權價購買通證。這次我們必須先確認幾個條件,即:合約由消息發送者所有;合約還未行權;以及現在期權還沒到期。如果以上任何一個條件不滿足,則撤回交易。

示例:交易未滿足一個或以上條件時Remix輸出的結果。

如果條件都滿足,則向賣家支付行權費,并向買家支付合約數量的通證。行權時,買家需以行權價購買每一個通證。然而,行權價是以美元計價,而合約數量是以以太幣或LINK計價。因此我們需要接入Chainlink喂價計算與行權費等值的以太幣或LINK數量。換算成等值的以太幣或LINK后,我們就可以開始轉賬了。轉賬時需使用之前提過的方法,即以太幣會調用msg.value/address.transfer函數,LINK則調用transferFrom()函數。

以上就是成功行使期權的完整交易過程。LINK價格是11.56美元,合約行權價格是10美元,數量1個LINK。也就是說,買家只需要花10美元而不是11.56美元購便可購買一個LINK。10/11.56=0.86,即買家只需要花0.86個LINK就可以獲得1個LINK。算上0.1LINK的期權費用,總共獲利0.04LINK。

取消合約/刪除資金

//允許賣家取消合約或從沒有成功達成交易的期權中退回資金。

functioncancelOption(stringmemorytoken,uintID)publicpayable{

bytes32tokenHash=keccak256(abi.encodePacked(token));

require(tokenHash==ethHash||tokenHash==linkHash,"OnlyETHandLINKtokensaresupported");

if(tokenHash==ethHash){

require(msg.sender==ethOpts.writer,"Youdidnotwritethisoption");

//必須還沒有被取消或購買

require(!ethOpts.canceled&&ethOpts.buyer==address(0),"Thisoptioncannotbecanceled");

ethOpts.writer.transfer(ethOpts.amount);

ethOpts.canceled=true;

}else{

require(msg.sender==linkOpts.writer,"Youdidnotwritethisoption");

require(!linkOpts.canceled&&linkOpts.buyer==address(0),"Thisoptioncannotbecanceled");

require(LINK.transferFrom(address(this),linkOpts.writer,linkOpts.amount),"IncorrectamountofLINKsent");

linkOpts.canceled=true;

}

}

//允許賣家從到期、未行使以及未取消的期權中贖回資金。

functionretrieveExpiredFunds(stringmemorytoken,uintID)publicpayable{

bytes32tokenHash=keccak256(abi.encodePacked(token));

require(tokenHash==ethHash||tokenHash==linkHash,"OnlyETHandLINKtokensaresupported");

if(tokenHash==ethHash){

require(msg.sender==ethOpts.writer,"Youdidnotwritethisoption");

//必須是到期、未行使且未取消的狀態。

require(ethOpts.expiry<=now&&!ethOpts.exercised&&!ethOpts.canceled,"Thisoptionisnoteligibleforwithdraw");

ethOpts.writer.transfer(ethOpts.amount);

//將取消標志修改為true,避免多次贖回

ethOpts.canceled=true;

}else{

require(msg.sender==linkOpts.writer,"Youdidnotwritethisoption");

require(linkOpts.expiry<=now&&!linkOpts.exercised&&!linkOpts.canceled,"Thisoptionisnoteligibleforwithdraw");

require(LINK.transferFrom(address(this),linkOpts.writer,linkOpts.amount),"IncorrectamountofLINKsent");

linkOpts.canceled=true;

}

}

隨著市場波動,如果期權還沒賣出去,賣家可能會取消期權合約并贖回資金。同樣地,期權如果一直未行使就到期了,賣家肯定會想要贖回合約中的資金。因此,我們添加了cancelOption()和retrieveExpiredFunds()函數

這兩個函數最關鍵的一點是必須滿足贖回條件才能調用成功。賣家要贖回資金必須滿足特定的條件,而且只能贖回一次。賣家不能取消已經被賣出的合約,因此我們要確認買家地址仍然是初始值0。另外,我們還要確認期權還未被取消,然后再退款。如果是期權到期后再贖回資金,那情況就會稍有不同。這種情況下,期權可能已經賣出去但沒有行使,資金仍應被退還給賣家。我們要確認合約已經到期并且還未被行使。然后也要將期權的取消標志設置為true,如果條件滿足則進行退款。

希望本文能幫助各位立刻在主網上開發Chainlink用例,并讓各位了解了Solidity獨特的功能。如果你想了解更多的Chainlink功能,請查看ChainlinkVRF,或查看Chainlink公允排序服務,了解Chainlink如何解決礦工搶跑問題。

如果你是一名開發者,并希望快速將智能合約連接至鏈下數據和系統,請查看?我們的開發者文檔并加入我們在Discord上的技術討論群。如果你希望透過電話具體討論集成細節,請點擊此處聯系我們。

Tags:LINKINKOPTQUOILINKstarlink幣1塊光影幣optcQUON

歐易交易所app下載
如何在去中心化生態系統中搭建優質項目-ODAILY_SER

近期Serum長期愿景文件發布,很多人過來問我們如何在Serum上創建自己的項目:應該創建什么項目?如何開始創建?需要和誰合作呢?所以我們整理了這個文件,給大家提供一些建議.

1900/1/1 0:00:00
Filecash全國行·三亞站-ODAILY_LEC

“三亞”處于海南的最南端,被蔚藍色的海水圍繞著,寒冬將至卻依然洋溢著濃濃的熱帶風情,一如浪潮翻涌的加密世界,在比特幣主升浪的引領下,市場一浪高過一浪,不斷刷新著我們的認知.

1900/1/1 0:00:00
社區力量 | 你的鳳霞你來定-ODAILY_BTC

還記得“好玩委員會”發起的陳鳳霞形象征集計劃嗎?據好玩委員會介紹,形象征集期間,共收到37件形象設計稿件.

1900/1/1 0:00:00
行情分析:盡管比特幣再創新高,但有一個點要特別注意-ODAILY_加密貨幣

行業要聞 1、比特大陸大分拆啟動,詹克團回歸吳忌寒退出2、全球性投資公司Jefferies正出售黃金買入比特幣3、尼日利亞點對點比特幣交易量持續上升.

1900/1/1 0:00:00
比特幣連續反彈受阻,支撐位上方仍看好反彈-ODAILY_買比特幣

隔日比特幣多頭的沖擊再次敗下陣來,經過晚間一波短線沖高,價格再次受阻于24100-24200,因此更加鞏固了此區域作為強阻的存在,隔日兩度的沖高回落也決定了短期的一個震蕩修正走勢;但是.

1900/1/1 0:00:00
比特幣千點來回,吃相難看的莊家該如何對抗?-ODAILY_比特幣

最近溝通的朋友都有一個共性對于一些在市場上已經虧損的不行,但是最后依舊在堅持著自己的做法不去改變,很多人在別人眼里,看起來總是怪怪的,曾經我碰到一個交易愛好者,我認為自己已經入魔,但看看人家.

1900/1/1 0:00:00
ads