Skip to main content

Contract Deployment

How to deploy a new contract using ethers.js

Install ethers.js to interact with Ethereum

With our Finnie wallet properly set and initialized, it's time to create our collectiblesContract
an exemplary contract that can be used to mint NFTs.
In the following example, we will use ethers.js library to interact with the Ethereum blockchain. You can install it by running:

npm install --save ethers

Check their documentation for more details.

// First, lets import the ethers.js
import { ethers } from "ethers";

// Sets previously injected ethereum object as provider
// Additionaly, we must specify the network as 'any' for ethers to allow network changes
const ethersProvider = new ethers.providers.Web3Provider(
window.ethereum,
"any"
);
// creates contract factory
const collectiblesFactory = new ethers.ContractFactory(
collectiblesAbi,
collectiblesBytecode,
ethersProvider.getSigner() // gets the signer
);

const deploy = async () => {
try {
// deploy the contract
const contract = await collectiblesFactory.deploy();
// wait until the deployment transaction is finished
await contract.deployTransaction.wait();

return contract;
} catch (error) {
console.error(error);
}
};

Now, we can use our newly created to mint our first NFT in the Mint NFT section.