快速入门
本文将简要介绍配置开发环境,及编写和部署合约的流程。
开发环境准备
如需接入安顺链,可直接接入官方节点或参考全节点接入教程。
IDE
示例中我们使用 Hardhat 进行开发演示。请参考 Hardhat 的详细使用教程。
Hardat 配置
在hardhat.config.js
中配置本地或远程 network,填入url、chainId 和部署账户地址。
require("@nomiclabs/hardhat-waffle");
task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
const accounts = await hre.ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
module.exports = {
solidity: "0.8.4",
networks: {
local: {
url: "http://127.0.0.1:8545/",
chainId: 1088,
accounts: [""] //fill in your account address
}
}
};
编写合约
这里我们使用 Hardhat 的示例合约Greeter.sol
。
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
import "hardhat/console.sol";
contract Greeter {
string private greeting;
constructor(string memory _greeting) {
console.log("Deploying a Greeter with greeting:", _greeting);
greeting = _greeting;
}
function greet() public view returns (string memory) {
return greeting;
}
function setGreeting(string memory _greeting) public {
console.log("Changing greeting from '%s' to '%s'", greeting, _greeting);
greeting = _greeting;
}
}
编写部署脚本
编写部署脚本 sample-script.js。
const hre = require("hardhat");
async function main() {
const Greeter = await hre.ethers.getContractFactory("Greeter");
const greeter = await Greeter.deploy("Hello, Hardhat!");
await greeter.deployed();
console.log("Greeter deployed to:", greeter.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
运行脚本部署合约
运行之前请先确认部署账户中有足够的 Gas 燃料。
$ npx hardhat run --network local .\scripts\sample-script.js
调用成功后可以看到合约地址的打印。
示例源码
Last updated