Aragon DAO 智慧型合約一覽

2021-10-01 19:21:34 字數 2656 閱讀 8735

近年來,區塊鏈技術的快速發展催生了去中心化自治組織(dao)。目前比較典型的dao有the dao、steemit、digix dao、aragon 等。其中建立在 aragon上的智慧型合約系統被稱為 aragonos。

acl/iacl.sol 乙個介面,只定義了初始化和是否有許可權這兩個函式

acl/iacloracle.sol 乙個介面,只有乙個是否能執行的函式

acl/aclsyntaxsugar.sol 語法糖 就是快速將bytes32、uint、或者address轉換後放入乙個uint陣列並返回

acl/aclhelpers.sol 用來解碼一些資料

common/iforwarder.sol 乙個介面,用來進行forwarder相關的判定

common/iforwarderfee.sol 乙個定義forward費用的介面

common/uint256helpers.sol 將乙個uint256轉化為uint64的庫,當溢位時會報錯

common/timehelpers.sol 獲得當前塊高度和當前塊建立時間,返回uint256和uint64兩個版本

common/unstructuredstorage.sol 乙個庫,使用內聯彙編來獲取或者設定某個位址的資料,根據資料型別分成多個方法

common/initializable.sol 繼承timehelper,初始化繼承時間,語義上怪怪的。用來判斷是否初始化和進行初始化,使用blocknumber判斷,而不是平常使用乙個變數判斷(也許是因為有延時初始化功能)

common/iscontract.sol 很簡單的通過位址的**長度用來決定是不是合約賬號

common/petrifiable.sol 使用uint256最大值來設定延時初始化的blocknuber,永遠也不會達到,一般用來石化合約

common/autopetrified.sol 在部署時石化petrifiable合約例項,使之不能初始化

common/conversionhelpers.sol 乙個庫,用來uint256和bytes 的相互轉換

common/depositablestorage.sol 讀取或設定是否可以存款(傳送eth到某個合約)

common/ethertokenconstant.sol 用位址0代表eth,非位址0代表erc20代幣

common/ivaultrecoverable.sol 乙個介面,用來指明資產保險箱合約

common/vaultrecoverable.sol 用來轉移資產(eth和erc20代幣)注意該合約包含未實現方法,因此為乙個抽象的合約(0.6.0才有abstract關鍵字),不能部署

common/safeerc20.sol 乙個用來安全轉移erc20代幣的庫

common/reentrancyguard.sol 防止重入攻擊,類似執行緒鎖的方式,轉移前設定變數為true,轉移全部完成後設定變數為false

comon/delegateproxy.sol 委託呼叫並且返回執行環境

common/depositabledelegateproxy.sol 向合約傳送eth並進行驗證和委託呼叫

lib/ens/abstractens.sol 以太坊上的網域名稱系統(ens)介面

lib/ens/ens.sol ens的實現

lib/ens/publicresolver.sol 乙個簡單的使用ens的實現

lib/math/math.sol 乙個進行比較的數學庫

lib/math/safemath.sol 對兩個uint256進行防溢位算術操作(除法其實沒有用處,為了統一還是存在庫中)

lib/math/safemath8.sol 同上,適用於uint8

lib/math/safemath64.sol 同上,適用於uint64

lib/misc/ercproxy.sol 用來定義erc**的一些常量和介面

lib/misc/migrations.sol truffle自帶的管理合約…?

lib/token/erc20.sol erc20代幣介面定義

kernel/kernelproxy.sol 核心**的實現

factory/daofactory.sol dao工廠,用來產生dao

factory/apmregisteryfactory.sol 用來註冊apm,aragon package manager(dao)

ens工廠,注意它的警告,僅測試apm使用

以太坊虛擬機器指令碼註冊工廠,注意返回的是乙個合約型別。

apm/apmregistry.sol 用來註冊apm,apmregisteryfactory的底層實現

根據apm的名字返回編碼後的雜湊值(bytes32型別)

evmscript/executors/baseevmscriptexecutor.sol 定義指令碼開始位置

evmscript/executors/callsscript.sol 執行指令碼的實現

evmscript/evmscriptregistry.sol 指令碼執行管理功能

evmscript/evmscriptrunner.sol 執行指令碼

evmscript/ievmscriptexecutor.sol 定義執行指令碼的介面

evmscript/ievmscriptregistry.sol 定義指令碼註冊的常量和介面

evmscript/scripthelpers.sol 乙個指令碼幫助庫

此資料夾內容為測試合約(略)

HTML標記一覽

標記 型別譯名或意義 作 用備註 檔案標記 檔案宣告 讓瀏覽器知道這是 html 檔案 開頭 提供檔案整體資訊 標題 定義檔案標題,將顯示於瀏覽頂端 本文 設計檔案格式及內文所在 排版標記 說明標記 為檔案加上說明,但不被顯示 段落標記 為字 畫 等之間留一空白行 換行標記 令字 畫 等顯示於下一行...

HTML 標記一覽

html 標記一覽 標記 型別譯名或意義 作 用備註 檔案標記 檔案宣告 讓瀏覽器知道這是 html 檔案 開頭 提供檔案整體資訊 標題 定義檔案標題,將顯示於瀏覽頂端 本文 設計檔案格式及內文所在 排版標記 說明標記 為檔案加上說明,但不被顯示 段落標記 為字 畫 等之間留一空白行 換行標記 令字...

sql語句一覽

select 從資料庫表中檢索資料行和列 insert 向資料庫表新增新資料行 delete 從資料庫表中刪除資料行 update 更新資料庫表中的資料 資料定義 create table 建立乙個資料庫表 drop table 從資料庫中刪除表 alter table 修改資料庫表結構 creat...