目前 ERC 代幣標准在前 100-1000 個最活躍的代幣合約中的分佈是什麼?
動機
ERC20 需要一個多步驟的過程才能將代幣轉移到合約中。必須在代幣合約上呼叫第一個批准,使合約能夠撤回代幣。接下來,需要通知合約它已被批准提取代幣。最後,合約必須實際提取代幣,並執行與接收代幣相關的任何程式碼。這個過程通常需要兩到三個步驟,效率低,使用者體驗差。
針對這個問題已經提出了其他解決方案,包括:ERC 223和ERC 777。
這導致了我提出問題的動機。
據推測,有活躍的代幣合約可以實現這些代幣標準中的任何一種,包括ERC 20。我想創建一個可以處理所有這些標準的 PaymentReceiver 合約,然後在 paymentRecieved(address payer, address token, uint amount, bytes data); 上呼叫我的其他合約。
實現我的目標的最佳方式是什麼?支持所有代幣標準是否值得?有人可以指出我已經這樣做了嗎?
謝謝
好吧,你們都很懶所以我自己做的。這是一個超級粗略的估計。
這是我的腳本的要點,用於獲取 etherscan 上前 1000 個“已驗證合約”中的所有函式名稱。
該腳本下載所有頂級合約的 abis 並檢查是否存在具有以下列表中名稱的函式:
['transfer(with bytes)', 'transferandcall', 'approveandcall', 'operatorsend']
這涵蓋了erc223、erc677、erc 777和非標準approveAndCall。我不確定所有其他標準。
結果:
- 非標準 - 批准和呼叫,計數:180
- erc223 - 傳輸字節數,計數:31
- erc677 - transferandcall,計數:12
更新:
稍微修改了腳本(也更新了要點)。我對 erc20 兼容性做了最少的檢查,尋找
approve
並transferFrom
在同一個契約中。結果:
- erc20兼容:887
- 非標準 - 批准和呼叫:180
- erc223 - 傳輸字節數:31
- erc677 - 轉移和呼叫:12
179 個approvalandcall 代幣兼容erc20
掃描909 個合約