Migrating from hardhat-deploy v1 to v2
Changes in Deploy Scripts
In v1:
typescript
// deploy/00_deploy_my_contract.js
module.exports = async ({getNamedAccounts, deployments}) => {
const {deploy} = deployments;
const {deployer} = await getNamedAccounts();
await deploy('MyContract', {
from: deployer,
args: ['Hello'],
log: true,
});
};
module.exports.tags = ['MyContract'];In v2:
typescript
// deploy/00_deploy_my_contract.ts
import {deployScript, artifacts} from '../rocketh/deploy.js';
export default deployScript(
async ({deploy, namedAccounts}) => {
const {deployer} = namedAccounts;
await deploy('MyContract', {
account: deployer,
artifact: artifacts.MyContract,
args: ['Hello'],
});
},
{tags: ['MyContract']},
);Changes in Configuration
In v1, configuration was in hardhat.config.ts:
typescript
namedAccounts: {
deployer: 0,
...
},In v2, configuration is in rocketh/config.ts:
typescript
export const config = {
accounts: {
deployer: {
default: 0,
},
...
},
} as const satisfies UserConfig;