量化對沖搬磚交易系統開發(開發策略)丨量化對沖搬磚交易系統開發原始碼
區塊鏈是分散式資料儲存、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
區塊鏈(Blockchain),它本質上是一個去中心化的資料庫,
關於區塊鏈專案技術開發唯:MrsFu123,代幣發行、dapp智慧合約開發、鏈遊開發、單雙幣質押、多鏈錢包開發、NFT盲盒遊戲、公鏈、鏈上游戲開發
Uniswap博餅、交易所開發、量化合約開發、合約對沖、互助遊戲開發、Nft數字藏品開發、眾籌互助開發、元宇宙開發、swap開發、DAO智慧合約、
夾子合約、鏈上合約開發、ido開發、商城開發等,開發過各種各樣的系統模式,更有多種模式、制度、案例、後臺等,成熟技術團隊,歡迎實體參考。
是一串使用密碼學方法相關聯產生的資料塊,每一個資料塊中包含了一批次BTC幣網路交易的資訊,用於驗證其資訊的有效性(防偽)和生成下一個區塊。
uint256 prevOwnershipPacked=_packedOwnershipOf(tokenId);
from=address(uint160(uint256(uint160(from))&_BITMASK_ADDRESS));
if(address(uint160(prevOwnershipPacked))!=from)_revert(TransferFromIncorrectOwner.selector);
透過_packedOwnershipOf函式獲得NFT擁有者地址,使用address(uint160(uint256(uint160(from))&_BITMASK_ADDRESS))進行資料型別轉化。如果我們發現呼叫引數中的from與NFT擁有者不同,則直接丟擲錯誤。
接下來,我們使用以下程式碼校驗NFT轉移的相關許可權問題:
(uint256 approvedAddressSlot,address approvedAddress)=_getApprovedSlotAndAddress(tokenId);
if(!_isSenderApprovedOrOwner(approvedAddress,from,_msgSenderERC721A()))
if(!isApprovedForAll(from,_msgSenderERC721A()))_revert(TransferCallerNotOwnerNorApproved.selector);
滿足以下條件則繼續執行:
函式呼叫者為NFT擁有者或被授權者或函式呼叫者存在isApprovedForAll許可權。
如果上述條件全不滿足,則丟擲異常。
該部分中最複雜的函式為_getApprovedSlotAndAddress:
function _getApprovedSlotAndAddress(uint256 tokenId)
private
view
returns(uint256 approvedAddressSlot,address approvedAddress)
{
TokenApprovalRef storage tokenApproval=_tokenApprovals[tokenId];
assembly{
approvedAddressSlot:=tokenApproval.slot
approvedAddress:=sload(approvedAddressSlot)
}
}
該函式會返回兩個底層資料,即授權地址在storage中的位置approvedAddressSlot和授權地址的值approvedAddress。
理解此程式碼需要對EVM的儲存結構有一定了解,推薦閱讀Understanding Ethereum Smart Contract Storage
當函式呼叫者滿足條件後,我們進入真正的NFT轉移程式。首先清除待轉移NFT的原有授權,程式碼如下:
assembly{
if approvedAddress{
sstore(approvedAddressSlot,0)
}
}
直接將_tokenApprovals中NFT對應的值清空。
接下來,我們進入了最複雜的NFT轉移階段,該階段的邏輯大致如下:
修正轉移雙方的balance引數
--_packedAddressData[from];
++_packedAddressData[to];
1
2
更新tokenId對應的_packedOwnerships資料:
_packedOwnerships[tokenId]=_packOwnershipData(
to,
_BITMASK_NEXT_INITIALIZED|_nextExtraData(from,to,prevOwnershipPacked)
);
由於轉移過程必須進行初始化,所以此處將轉移的NFT的nextInitialized設定為True
考慮下一個NFT是否被初始化,
如轉移下圖中tokenId=3的NFT:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-wKsxnwNP-1675684640935)()]
該NFT轉移後,由於破壞了擁有者0x2的連續性,所以我們需要重寫tokenId=4的對應資料,程式碼如下:
if(prevOwnershipPacked&_BITMASK_NEXT_INITIALIZED==0){
uint256 nextTokenId=tokenId+1;
if(_packedOwnerships[nextTokenId]==0){
if(nextTokenId!=_currentIndex){
_packedOwnerships[nextTokenId]=prevOwnershipPacked;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2943943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 量化交易對沖搬磚開發正式版丨量化交易對沖搬磚系統開發(方案詳細)丨原始碼案例原始碼
- 量化對沖搬磚系統開發詳細需求方案丨量化對沖搬磚開發原始碼模式原始碼模式
- 量化對沖搬磚交易策略系統開發行情分析
- 多平臺量化搬磚交易系統開發,對沖系統開發
- 量化策略交易系統開發,自動對沖搬磚交易平臺搭建
- 量化搬磚交易平臺搭建,自動對沖系統開發
- 智慧量化搬磚交易系統開發,多平臺搬磚系統開發
- 量化合約/合約量化對沖搬磚系統開發詳細及策略
- 量化自動對沖搬磚平臺搭建,交易機器人系統開發機器人
- 量化系統開發方案,比特幣對沖搬磚平臺搭建比特幣
- 量化合約/合約量化/合約跟單/對沖搬磚/交易所繫統開發成熟及方案丨原始碼案例原始碼
- 自動交易量化搬磚系統開發高頻量化搭建
- 合約現貨量化交易開發系統原始碼|量化交易機器人對沖策略原始碼機器人
- 量化現貨合約交易系統開發/量化合約對沖策略系統開發搭建
- 量化對沖交易系統開發,比特幣交易機器人系統開發比特幣機器人
- 合約量化交易對沖策略系統開發應用程式
- 合約交易/量化交易/對沖交易策略/系統技術開發/應用
- 量化合約對沖交易策略系統開發與應用(原始碼演示)原始碼
- BSC鏈合約量化對沖交易原始碼系統開發部署原始碼
- 量化機器人系統開發運營版丨量化交易對沖模式開發示例機器人模式
- 合約量化跟單對沖交易策略系統模式開發詳情模式
- 數字貨幣量化策略系統開發,搬磚平臺搭建
- 量化交易系統開發需求丨量化交易原始碼模式原始碼模式
- 高頻量化對沖合約交易模式系統開發模式搭建模式
- 深圳量化對沖自動交易系統價效比高開發公司
- 量化交易系統開發技術闡述丨量化交易原始碼開發原始碼
- 【跟單交易開發】量化合約跟單對沖策略交易系統專案開發技術設計
- 量化跟單系統對沖交易策略Python系統程式設計開發技術語言Python程式設計
- “量化交易”系統開發技術詳細丨“量化交易”原始碼原始碼
- 現貨量化/量化合約/系統技術開發/原始碼/現貨合約對沖交易功能/方案原始碼
- 量化交易現貨合約對沖跟單app系統開發案例演示(原始碼搭建)APP原始碼
- 量化交易機器人開發現貨合約對沖策略機器人
- 智慧AI量化交易合約對沖機器人app系統開發(交易所對接)AI機器人APP
- 數字貨幣量化交易機器人搬磚/交易所繫統開發策略方案與步驟機器人
- 數字貨幣合約交易所開發,量化交易搬磚制度錢包app開發APP
- AI合約量化交易對沖策略/系統開發/永續合約槓桿量化技術/應用AI
- 數字貨幣交易平臺開發,虛擬幣自動搬磚量化交易平臺開發
- 智慧AI量化合約對沖交易機器人系統開發功能介紹AI機器人