Solidity

我可以將 Solidity 程式碼(或 ABI)導入 vyper 嗎?

  • June 8, 2022

假設我有一份契約solidity

pragma solidity 0.8.8;

contract MyContract{
   function getFive() public pure returns (uint256){
       return 5;
   }
} 

我可以導入,繼承等vyper嗎?或者用它的 ABI 做一些事情來導入 vyper?

即在 vyper 中:

from MyContract import getFive 

額外的:

  • 如果我只想與合約互動,最好的辦法是將合約重寫為 vyper 介面嗎?
  • 有什麼方法可以獲取函式的可靠字節碼並將其放入 vyper 中?(甚至是 vyper 字節碼……)

vyper 支持從 JSON ABI 文件導入介面。您可以使用 將 vyper 合約轉換為 JSON ABI 介面文件vyper -f abi foo.vy,並且可以使用 將solidity 合約轉換為 JSON ABI 介面文件solc --abi foo.sol。在 vyper 的最新版本 v0.3.3 中,您將foo.json使用以下語法導入:

import foo as Foo

my_foo: Foo  # an external contract which has the interface defined by foo.json

引用自:https://ethereum.stackexchange.com/questions/129745