Solidity
如何繼承 github 上的聯繫人?
github上有一個契約。我需要繼承它/那我該怎麼做?使用導入不可用我如何理解..
https://github.com/Uniswap/v2-periphery/blob/master/contracts/interfaces/IUniswapV2Router01.sol
您可以只從 GitHub 連結導入,但在您的情況下,已經有一個 nom 包包含該契約,因此您可以:
npm i @uniswap/v2-periphery
在您的項目上執行。- 在 .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"];
我真的希望我的回答能提供清晰的資訊
謝謝你