Brownie

在布朗尼項目的版本中添加帶有“@”的依賴項

  • July 16, 2022

我正在嘗試將 superfluid-finance/protocol-monorepo@ethereum_contracts@v1.3.0 添加到我的巧克力蛋糕項目中。

布朗尼-config.yaml:

dependencies:
 - superfluid-finance/protocol-monorepo@ethereum_contracts@v1.3.0

compiler:
 solc:
   remappings:
     - '@superfluid-finance=superfluid-finance/protocol-monorepo@ethereum_contracts@v1.3.0'

但是,由於版本中有“@”,我得到:

ValueError: Invalid package ID. Must be given as [ORG]/[REPO]@[VERSION]

如何添加版本中包含“@”的依賴項?

正如我在 brownie 的實現中看到的,在提取依賴包 ID 時,它只是簡單地用@字元拆分以獲得如下版本:

path, version = package_id.split("@")

因此,如果依賴路徑的版本部分包含@,則會出錯,並且 brownie 無法從 Github 獲取它。

在正常情況下,您可以通過使用ethereum-contracts相同的其他版本的 repo 來簡單地解決此問題。但是使用superfluid-finance/protocol-monoreporepo 是不可能的,因為它的所有版本ethereum_contracts@v1.3.0仍然包含@.

如果您仍想使用此依賴項,您可以對其進行複製並將發布版本設置為1.0.0. Brownie 也可以使用ethPM導入依賴項,但我沒有這方面的經驗,如果需要,可以在此處了解更多資訊。

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