您可以在 Solidity 中导入本地和外部文件。 You can import local and external files in Solidity.

Here is our folder structure.

这是我们的文件夹结构。

├── Import.sol
└── Foo.sol

foo.sol

<code class="language-solidity">// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
struct Point {
uint x;
uint y;
}
error Unauthorized(address caller);
function add(uint x, uint y) pure returns (uint) {
return x + y;
}
contract Foo {
string public name = &quot;Foo&quot;;
}

import.sol

<code class="language-solidity">// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// import Foo.sol from current directory
import &quot;./Foo.sol&quot;;
// import {symbol1 as alias, symbol2} from &quot;filename&quot;;
import {Unauthorized, add as func, Point} from &quot;./Foo.sol&quot;;
contract Import {
// Initialize Foo.sol
Foo public foo = new Foo();
// Test Foo.sol by getting it&#39;s name.
function getFooName() public view returns (string memory) {
return foo.name();
}
}

外部的

您也可以 GitHub 通过简单地复制 url

// https://github.com/owner/repo/blob/branch/path/to/Contract.sol
import "https://github.com/owner/repo/blob/branch/path/to/Contract.sol";

// Example import ECDSA.sol from openzeppelin-contract repo, release-v4.5 branch
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.5/contracts/utils/cryptography/ECDSA.sol
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.5/contracts/utils/cryptography/ECDSA.sol";