量化對沖搬磚系統開發詳細需求方案丨量化對沖搬磚開發原始碼模式
隨著區塊鏈架構體系的不斷髮展,越來越多的研究對區塊進行改造從而實現了對空間屬性的支援。因此,區塊鏈技術可以為資料打上時空標籤,透過在區塊中加入資料的時間和空間資訊,將同樣內容的資料集標識為不同的資料集個體,從而解決了資料要素流通中資料集可以被無限複製而無法辨識的難題,實現資料來源可確認。
區塊鏈的可追溯性來源於區塊鏈資料結構的特殊性。在區塊鏈系統中,它的鏈式結構是從創世區塊開始的,其後系統產生的所有區塊都透過父區塊的雜湊值前後相連,並最終能追溯到創世區塊。
關於區塊鏈專案技術開發唯:MrsFu123,代幣發行、dapp智慧合約開發、鏈遊開發、單雙幣質押、多鏈錢包開發、NFT盲盒遊戲、公鏈、鏈上游戲開發
Uniswap博餅、 交易所開發、量化合約開發、合約對沖、互助遊戲開發、Nft數字藏品開發、眾籌互助開發、元宇宙開發、swap開發、DAO智慧合約、
夾子合約、 鏈上合約開發、ido開發、商城開發等,開發過各種各樣的系統模式,更有多種模式、制度、案例、後臺等,成熟技術團隊,歡迎實體參考。
由於每個區塊都包含一段時間內系統進行的所有交易資料,因此完整的區塊鏈資料包含了自創世區塊以來,系統所有進行的交易及交易前後的關聯資訊。同時,得益於區塊鏈資訊的不可篡改特性,使得這種可追溯性是可靠可信的。
區塊鏈透過時間戳保證每個區塊依次順序相連,而這個時間戳就像資料的生產日期,證明這個資料在什麼時間點就已經存在,時間戳是區塊後設資料的一部分,這使得區塊具有天然的時間屬性。
function _checkContractOnERC721Received(
address from,
address to,
uint256 tokenId,
bytes memory _data
)private returns(bool){
try ERC721A__IERC721Receiver(to).onERC721Received(_msgSenderERC721A(),from,tokenId,_data)returns(
bytes4 retval
){
return retval==ERC721A__IERC721Receiver(to).onERC721Received.selector;
}catch(bytes memory reason){
if(reason.length==0){
_revert(TransferToNonERC721ReceiverImplementer.selector);
}
assembly{
revert(add(32,reason),mload(reason))
}
}
}
我們在深入解析Safe多籤錢包智慧合約:Fallback合約內已經對onERC721Received的相關內容進行了分析,讀者可自行閱讀理解。此處,我們主要對try/catch這一少見的solidity關鍵詞進行分析。
try關鍵詞後必須為一個外部函式呼叫,在此處為
ERC721A__IERC721Receiver(to).onERC721Received(_msgSenderERC721A(),from,tokenId,_data),即呼叫了外部ERC721A__IERC721Receiver的onERC721Received函式。return會將外部呼叫的返回值封裝為特定的函式名,此處為retval。
如果外部呼叫和返回值封裝沒有出現錯誤,就會執行第一個語句塊的語句,此處為
return retval==ERC721A__IERC721Receiver(to).onERC721Received.selector;
該語句塊較為簡單,不再具體分析。
catch用來捕獲錯誤,solidity提供了以下catch語句:
catch Error(string memory reason){...}用於捕獲revert("reasonString")或require(false,"reasonString")等語句造成的錯誤
catch Panic(uint errorCode){...}用於捕獲panic型別錯誤,如assert、除以0等錯誤
catch(bytes memory lowLevelData){...}用於直接捕獲底層錯誤資訊,涵蓋所有型別錯誤
在真實場景下,顯然我們無法保證呼叫的合約使用solidity編寫,所以使用最後一張catch方法是有必要的。
顯然,此處使用的是最後一種catch語句。在捕獲到底層錯誤後,我們首先使用if語句判斷此錯誤資訊是否長度為0,如果長度為0,則意味著我們沒有具體的錯誤資訊,採取直接丟擲TransferToNonERC721ReceiverImplementer.selector的策略。
此處使用了_revert函式,此函式是對revert包裝,定義如下:
function _revert(bytes4 errorSelector)internal pure{
assembly{
mstore(0x00,errorSelector)
revert(0x00,0x04)
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2943947/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 量化交易對沖搬磚開發正式版丨量化交易對沖搬磚系統開發(方案詳細)丨原始碼案例原始碼
- 量化對沖搬磚交易系統開發(開發策略)丨量化對沖搬磚交易系統開發原始碼原始碼
- 量化合約/合約量化對沖搬磚系統開發詳細及策略
- 量化對沖搬磚交易策略系統開發行情分析
- 多平臺量化搬磚交易系統開發,對沖系統開發
- 量化系統開發方案,比特幣對沖搬磚平臺搭建比特幣
- 量化搬磚交易平臺搭建,自動對沖系統開發
- 量化策略交易系統開發,自動對沖搬磚交易平臺搭建
- 量化自動對沖搬磚平臺搭建,交易機器人系統開發機器人
- 量化合約/合約量化/合約跟單/對沖搬磚/交易所繫統開發成熟及方案丨原始碼案例原始碼
- 智慧量化搬磚交易系統開發,多平臺搬磚系統開發
- 自動交易量化搬磚系統開發高頻量化搭建
- 量化機器人系統開發運營版丨量化交易對沖模式開發示例機器人模式
- Techfinger遊戲搬磚系統開發技術詳細/功能詳情/原始碼方案遊戲原始碼
- 數字貨幣量化策略系統開發,搬磚平臺搭建
- BSC鏈合約量化對沖交易原始碼系統開發部署原始碼
- 合約量化跟單對沖交易策略系統模式開發詳情模式
- 量化交易系統開發需求丨量化交易原始碼模式原始碼模式
- 高頻量化對沖合約交易模式系統開發模式搭建模式
- 合約現貨量化交易開發系統原始碼|量化交易機器人對沖策略原始碼機器人
- 現貨量化/量化合約/系統技術開發/原始碼/現貨合約對沖交易功能/方案原始碼
- 量化現貨合約交易系統開發/量化合約對沖策略系統開發搭建
- 量化合約對沖交易策略系統開發與應用(原始碼演示)原始碼
- 量化合約開發(專案)丨量化合約系統開發(方案詳細)丨量化合約系統原始碼版原始碼
- 合約量化系統開發(詳細方案)丨合約量化系統開發(Python原始碼)Python原始碼
- TechFinger遊戲搬磚系統開發demo遊戲
- 合約量化交易對沖策略系統開發應用程式
- TechFinger遊戲搬磚平臺開發系統搭建方案遊戲
- “量化交易”系統開發技術詳細丨“量化交易”原始碼原始碼
- 量化對沖交易系統開發,比特幣交易機器人系統開發比特幣機器人
- 深圳量化對沖自動交易系統價效比高開發公司
- 量化機器人系統開發詳細案例丨量化機器人原始碼模式機器人原始碼模式
- 量化現貨/合約量化跟單對沖機器人系統開發/Python程式碼機器人Python
- 量化交易現貨合約對沖跟單app系統開發案例演示(原始碼搭建)APP原始碼
- TechFinger遊戲搬磚系統搭建開發技術遊戲
- 量化現貨合約對沖交易app開發原始碼出售(實體公司)APP原始碼
- 量化合約丨合約量化開發原始碼版,合約量化丨量化合約系統開發(成熟案例)及詳細策略原始碼
- 量化合約開發需求版丨量化合約系統開發(開發方案及邏輯)丨量化合約原始碼及功能分析原始碼