Solidity

如何繼承 github 上的聯繫人?

  • March 8, 2022

github上有一個契約。我需要繼承它/那我該怎麼做?使用導入不可用我如何理解..

https://github.com/Uniswap/v2-periphery/blob/master/contracts/interfaces/IUniswapV2Router01.sol

您可以只從 GitHub 連結導入,但在您的情況下,已經有一個 nom 包包含該契約,因此您可以:

  1. npm i @uniswap/v2-periphery在您的項目上執行。
  2. 在 .sol 文件中像這樣導入它:import '@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol';

再會

一個可以在您的編譯指示語句下方執行以下操作

添加以下內容

import "./interfaces/IUniswapV2Router01.sol";

或者

import '@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol';

在您的建構子上方聲明以下內容

address public routerContract;

在建構子中,您可以執行以下操作

constructor(address routerContractAddr){
       routerContract= routerContractAddr;
   }

為了使用介面功能,可以執行以下操作

IUniswapV2Router01(routerContract).swapExactTokensForTokens(....);

請記住使用正確的Uniswap路由器地址部署您的合約

使用安全帽的部署腳本範例如下所示

module.exports = async ({ ethers, getNamedAccounts, deployments }) => {
 const { deploy } = deployments;
 const { deployer } = await getNamedAccounts();
 await deploy("YourContract", {
   from: deployer,
   args: ["UNISWAP_CONTRACT_ADDRESS"],
   deterministicDeployment: false,
   log: true,
 });

};

module.exports.tags = ["YourContract"]; 

我真的希望我的回答能提供清晰的資訊

謝謝你

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