import
import
导包在声明版本号后,在合约代码前import {contractName} from '...'
- 导入合约后,相当于引入了完整的合约文件
import 导包
- 导入本地文件 >import {Address} from ‘./Address.sol’;
- 从网页导入
import {Address} from “https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-contracts/refs/heads/master/contracts/utils/Address.sol”;
- 通过npm 本地包导入
import “@openzeppelin/contracts/utils/Address.sol”;
包内函数
- 直接使用:通过合约名直接调用引入的合约函数
- 继承使用:除library外的合约,继承后可以直接使用包内函数、状态变量
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {IERC20} from "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-contracts/refs/heads/master/contracts/token/ERC20/IERC20.sol";
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
contract sendValue {
function tokenAllowance(
address token,
address owner,
address spender
) public view returns (uint256) {
return IERC20(token).allowance(owner, spender); //Interface contracts
}
function transferValue(address beneficiary, uint256 value) public payable {
Address.sendValue(payable(beneficiary), value); //Library contracts
}
function allowance(address owner, address spender)
external
view
returns (uint256)
{}
}