2.0新版佛薩奇開發系統|佛薩奇開發DAPP原始碼搭建
合約依賴與呼叫
依賴引入:合約可以透過import引入依賴的外部合約,抽象合約,Interface或者庫。通常,我們使用npm管理合約的外部依賴,管理合約的依賴也有其他辦法(例如git submodule)這會在工作流章節中詳細敘述。
呼叫:合約可以呼叫其他合約,只需知道地址和ABI,我們就可以在合約內部呼叫其他合約,需要注意的是,呼叫合約也是事務性操作,因此,你不需要透過手動管理非同步操作的方式來等待返回結果。在合約內部呼叫其他合約需要消耗額外的Gas費用。呼叫合約可能由於ABI錯誤或者不支援某個函式方法而導致失敗,但Gas費用並不會返還,我們需要確保在呼叫其他第三方合約前理解對方合約的介面(包括引數型別,順序,返回結構)
如果你試圖除錯本地合約呼叫某個生產環境的線上合約,佛薩奇13z開4z77發z558,可以使用fork的方式將某個高度的區塊鏈下載到本地執行,這會在工作流章節中詳細敘述。
ABI:也叫應用程式二進位制介面(Application Binary Interface)ABI是我們理解如何操作一個合約的具體方法的描述,通常在Interface檔案中被定義(如果合約命名為Membership.sol,那麼它的Interface檔案通常叫做IMembership.sol)
注意:透過這種方式定義可以讓任意合約透過引用interface的方式來呼叫你的合約,但如果你不在Interface中檔案定義它,編譯器也能幫助你編譯出ABI。
我們可以依賴完整的ABI來呼叫合約(對外部呼叫者來說,ABI通常被編譯成一個JSON檔案),也可以使用它其中的一部分來呼叫,只要它滿足真實合約所宣告的函式(包括引數,引數型別,返回值,返回值型別都一致)後者通常被成為human-readable ABI,例如:
calldatas[0]=abi.encodeWithSignature(
‘execTransfer(uint256,address,address[],uint256[])’,
memberId,
memberWallet,
payroll.tokens.addresses,
payroll.tokens.amounts
);
合約事件:由於合約的函式呼叫是事務性的,並且無法為外部呼叫者(指代DApp或錢包使用者)提供返回值,合約引入了事件的概念。
事件透過向日志系統中寫入特定資料的方式來實現函式修改的記錄。我們可以透過監聽和查詢的方式列出一個合約註冊的所有事件,實現對函式非同步結果的查詢和前端UI狀態變更。合約事件以某個單一合約為key來進行索引,同時,在宣告事件時,我們可以指定不多於三個index key來確保DApp前端對這些索引key的查詢效率,例如:
event ModuleProposalCreated(
address indexed module,
bytes32 indexed id,
address indexed sender,
uint256 timestamp
);
如果你期望的查詢是非常複雜的,包括一系列相關聯的合約事件,更好的方法是採用Relay提供的graph/webhook來進行查詢。
建立合約:我們可以透過合約建立其他合約,這意味著,合約可以成為其他合約的工廠合約或者代理合約。我們也可以透過外部呼叫者(錢包賬戶)向0x00地址傳送合約建立操作來新建網路上的合約,這是我們進行測試和依賴工作流建立合約的方法。
建立合約需要消耗大量Gas費用,通常,我們會使用特定工具在建立合約前預估並計算費用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020115/viewspace-2934993/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FORSAGE(佛薩奇)系統開發,公排佛薩奇2.0原始碼開發搭建原始碼
- 佛薩奇2.0系統丨佛薩奇2.0系統開發(功能版)丨佛薩奇2.0開發原始碼案例部署原始碼
- 佛薩奇2.0互助分紅開發丨佛薩奇系統開發原始碼丨佛薩奇2.0運營版原始碼
- 智慧合約佛薩奇2.0開發,佛薩奇系統原始碼鏈上搭建原始碼
- 佛薩奇原始碼|佛薩奇2.0合約|佛薩奇矩陣公排模式開發系統原始碼矩陣模式
- 馬蹄鏈佛薩奇系統開發2.0佛薩奇系統開發原始碼部署原始碼
- 佛薩奇2.0開發參考版丨佛薩奇2.0系統開發(成熟及專案)丨佛薩奇2.0系統原始碼部署原始碼
- 佛薩奇2.0系統DAPP開發丨原始碼丨佛薩奇Solidity開發編寫示例APP原始碼Solid
- 佛薩奇公排互助系統開發丨佛薩奇原始碼丨佛薩奇程式碼分析原始碼
- 佛薩奇原始碼/互助矩陣/佛薩奇2.0聊天/系統開發技術原始碼矩陣
- 佛薩奇開發原始碼丨佛薩奇系統開發案例丨智慧合約佛薩奇開發技術程式碼原始碼
- Force佛薩奇2.0系統開發(成熟原始碼)原力佛薩奇系統開發專案方案原始碼
- 佛薩奇metaforce原始碼系統開發搭建原始碼
- 佛薩奇2.0聊天交友/系統開發技術/佛薩奇原始碼/互助矩陣原始碼矩陣
- Metaforce佛薩奇2.0開發詳細版丨Metaforce佛薩奇2.0系統開發(開發功能及原始碼)原始碼
- 佛薩奇(Forsage)系統開發/技術原始碼/佛薩奇開發詳情分析原始碼
- Matic佛薩奇2.0系統開發現成原始碼搭建原始碼
- metaforce2.0佛薩奇DAPP系統開發搭建(現成原始碼)APP原始碼
- Meta Force佛薩奇2.0系統開發的邏輯需求 | Meta Force佛薩奇2.0系統開發原始碼示例原始碼
- Polygon馬蹄鏈佛薩奇2.0開發|佛薩奇原始碼合約部署Go原始碼
- MetaForce佛薩奇系統開發技術流程(成熟程式碼)佛薩奇2.0原始碼部署教程原始碼
- MetaForce佛薩奇開發原理丨MetaForce佛薩奇系統開發(2.0智慧合約開發)
- Forsage佛薩奇2.0魔豹聯盟系統技術開發分析(佛薩奇2.0原始碼版)原始碼
- 佛薩奇2.0開發原理丨佛薩奇2.0智慧合約系統開發詳情版丨(原始碼部署)原始碼
- 佛薩奇系統開發(原始碼部署)丨META FORCE佛薩奇2.0系統開發技術詳細版本原始碼
- 佛薩奇2.0開發升級版,metaforce佛薩奇2.0系統開發(開發方案及詳細)
- MetaForce佛薩奇2.0系統丨MetaForce佛薩奇2.0系統開發(方案及詳細)
- 佛薩奇2.0系統開發專案原始碼方案原始碼
- 現成metaforce佛薩奇2.0系統原始碼搭建(開發案例)原始碼
- DAPP佛薩奇合約系統技術開發/原始碼/佛薩奇分紅矩陣開發詳情APP原始碼矩陣
- DAPP馬蹄鏈佛薩奇2.0智慧合約系統開發(規則及玩法)丨DAPP佛薩奇2.0原始碼成品APP原始碼
- 【DAPP】佛薩奇2.0矩陣互助開發詳情丨佛薩奇制度系統開發細節講解APP矩陣
- 佛薩奇2.0運營版系統開發程式碼示例丨佛薩奇Forsage合約開發demo
- 馬蹄鏈佛薩奇2.0系統開發詳情原始碼搭建原始碼
- 佛薩奇2.0(Meta force)矩陣系統開發原始碼矩陣原始碼
- Forsage佛薩奇2.0智慧合約系統設計開發(佛薩奇升級版)
- 佛薩奇2.0MetaForce系統技術開發DAPPAPP
- 佛薩奇原始碼丨Force佛薩奇2.0系統合約開發講解丨Python技術原始碼Python