Solidity
我可以將 Solidity 程式碼(或 ABI)導入 vyper 嗎?
假設我有一份契約
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