以太坊abi在哪裡找
⑴ 以太坊的ABI編碼
ABI全稱Application Binary Interface, 是調用智能合約函數以及合約之間函數調用的消息編碼格式定義,也可以理解為智能合約函數調用的介面說明. 類似Webservice里的SOAP協議一樣;也就是定義操作函數簽名,參數編碼,返回結果編碼等。
使用ABI協議時必須要求在編譯時知道類型,即強類型相關.
當一個智能合約編譯出來後, 他的abi介面定義就確定了. 比如下面的智能合約:
生成的位元組碼:
生成的abi定義:
可以看出, 生成abi包含了2個定義: 函數 lotus , 事件 Log_lotus , 各個欄位含義見上. 根據該abi定義,就可以生成調用該智能合約函數的abi格式的數據了.
格式簡單的可以表示為: 函數選擇器+參數編碼
一個函數調用的前四個位元組數據指定了要調用的函數簽名。計算方式是使用函數簽名的 keccak256 的哈希,取4個位元組。
函數名如果有多個參數使用,隔開,要去掉表達式中的所有空格。在geth客戶端,通過命令可以得到hash:
由於前面的函數簽名使用了四個位元組,參數的數據將從第五個位元組開始。
根據參數類型,編碼規則有所區別:
除了bytes,和string, 其他類型的數據不足32位元組長度的需要加0補足32位元組. 動態長度的編碼在例子中介紹.
函數: function baz(uint32 x, bool y) :
調用: baz(69, true)
生成的數據如下:
返回結果是一個bool值,在這里,返回的是false:
函數: f(uint,uint32[],bytes10,bytes)
調用: (0x123, [0x456, 0x789], "1234567890", "Hello, world!")
函數選擇器: bytes4(sha3("f(uint256,uint32[],bytes10,bytes)"))
對於 固定大小的類型 值 uint256 和 bytes10 ,直接編碼值。
對於 動態內容類型 值 uint32[] 和 bytes ,我們先 編碼偏移值 ,偏移值是整個值編碼的開始到真正存這個數據的偏移值(這里不計算頭四個用於表示函數簽名的位元組)。
所以參數編碼數據依次為:
尾部部分的第一個動態參數, [0x456, 0x789] 編碼拆解如下:
最後我們來看看第二個動態參數的的編碼, Hello, world! 。
所以最終結果是:
⑵ 葉勝超空投打窩系列(004):Arbitrum刷空投教程
為了確保您能有效利用Arbitrum進行空投獲取,首先需要配置Arbitrum one網路。訪問chainlist.org/,搜索並添加「arbitrum one」網路,將您的ETH鏈資產轉移到Arbitrum主網。使用Arbitrum跨鏈橋bridge.arbitrum.io/,在以太坊鏈上將幣轉至Arbirum網路。若存入ETH,選擇並填寫數量後點擊deposit,建議留至少0.05ETH作為手續費。對於非ETH幣種,選擇ERC-20,完成添加合約和授權步驟。
在Arbitrum二層網路收到資產後,您可以在Uniswap上進行交互,選擇Abi生態項目,如UNI,體驗swap功能。Uniswap提供低延遲的絲滑交易體驗,我親自嘗試,發現其使用非常流暢,甚至多刷了幾次,比optimism更加便捷。為了獲得獎勵,嘗試在UNI上提供流動性,添加新倉位後授權操作即可。若需去除流動性,只需切換到流動性部分,找到並移除倉位。
將Arbitrum上的幣提現至以太坊鏈。官方跨鏈橋需7天時間,建議提前規劃。使用小狐狸保持在Arbitrum網路,打開跨鏈橋完成提現,之後7天後可返回頁面claim。若希望更快提現,可選擇其他跨鏈橋,如cBridge跨鏈橋cbridge.celer.network/,先在UNI將ETH轉換為WETH,然後跨鏈到以太坊鏈。
請注意,Abitrum是V神推薦的二層項目之一,包括Zksync、Optimism、Loopring和deversifi,但Loopring已發行代幣。Abitrum以其速度和野心領先。跨鏈橋涉及以太坊鏈,使用時需注意gas費和以太坊網路擁堵情況,選擇在gas費較低時操作,確保交易在承受范圍內,謹慎行事。
文章由葉勝超撰寫,如需轉載請保留出處。投資需謹慎,行情總在絕望中誕生,在半信半疑中成長,在憧憬中成熟,在希望中毀滅。作者葉勝超,一個終身學習者和踐行者,始終堅持5點起床跑步的生活方式。記住,幣圈生存法則在於:踏實工作、閑錢投資、底部買入,長線持有,按時吃飯睡覺。謹記這法則,幣圈一天,人間十年。
⑶ 如何用myetherwallet 來玩智能合約
在使用myetherwallet操作智能合約時,首先要確保安全。首先要明確合約所在的網路,ropsten、kovan或主網。例如,ropsten.etherscan.io/...是ropsten測試網,kovan.etherscan.io/...是kovan測試網,而沒有前綴的則是主網,如etherscan.io/address/0x...。
獲取合約地址非常簡單,如合約示例地址為。ABI(合約介面描述符)同樣在合約詳情頁中找到,復制其內容。如果找不到,說明合約是私有或未開源的。
打開myetherwallet時,選擇適合當前網路的選項,比如ropsten環境下的batchTransfer。輸入參數,gaslimit會自動計算,確保所有信息正確無誤後提交。例如,一次交易可能消耗大量以太坊,如6,447,277,680人民幣的gas limit。提交後,交易詳情可在ropsten.etherscan.io/tx/...查看。