0.3.2 • Published 6 months ago

fhenix-hardhat-plugin v0.3.2

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

Fhenix Hardhat Plugin NPM Package Github Actions License: MIT

Fhenix Hardhat Plugin is designed to extend your Hardhat environment with additional capabilities focused on Fhenix. It integrates seamlessly with your Hardhat projects to provide a local Fhenix environment, including customized network configuration and utilities for managing funds and permits within your blockchain applications.

See also fhenix-hardhat-docker and fhenix-hardhat-network for the full experience of Fhenix-compatible extensions.

Features

  • Faucet Integration: Enables developers to easily obtain funds for testing purposes through a simple API call to a local faucet.
  • Permit Management: Simplifies the process of creating and storing permit signatures required for transactions, reducing the complexity of interacting with contracts that require permissions.
  • Contract Security Checks: Checks for Fhenix-related potential vulnerabilities in your contracts.

If you want to see a full example in action, check out our Hardhat Example Template!

Installation

To use FhenixJS in your Hardhat project, first install the plugin via npm (or your favorite package manager):

pnpm install fhenix-hardhat-plugin

Setup

After installation, import the plugin in your Hardhat configuration file (e.g., hardhat.config.js):

require("fhenix-hardhat-plugin");

or if you are using TypeScript, in your hardhat.config.ts:

import "fhenix-hardhat-plugin";

Configuration

Using FhenixJS from Hardhat Runtime Environment

After importing fhenix-hardhat-plugin hardhat will automatically extend the Hardhat Runtime Environment (HRE) with a fhenixjs object, providing access to Fhenix-specific functionality:

  • Use the fhenixjs object directly to encrypt, unseal or manage permits.
  • getFunds(address: string): Request funds from the local faucet for the specified address.
  • createPermit(contractAddress: string, provider?: SupportedProvider): Create and store a permit for interacting with a contract.

Requesting Funds

To request funds from the local faucet for an address, use the getFunds method:

await hre.fhenixjs.getFunds("your_wallet_address");

Or use the usefaucet task. Omitting the address will send to the first account in the configured wallet:

pnpm hardhat run task:fhenix:usefaucet [--address <address>]

Or you can specify the account number if you want to specify more than one account for the mnemonic specified

pnpm task:fhenix:usefaucet --account <number>

If you're not using localfhenix, you have to specify the faucet url yourself:

pnpm task:fhenix:usefaucet --url <faucet-url>

Encryption

const encyrptedAmount = await fhenixjs.encrypt_uint32(15);

Creating a Permit

To create a permit for a contract, use the createPermit method:

const permit = await hre.fhenixjs.createPermit("contract_address");

See FhenixJs documentation for more on using the fhenixjs object.

Support

For issues, suggestions, or contributions, please open an issue or pull request in the GitHub repository.

0.3.3-alpha.1

6 months ago

0.3.3-alpha.0

7 months ago

0.3.2

8 months ago

0.2.2-alpha.0

11 months ago

0.3.2-alpha.3

9 months ago

0.3.2-alpha.1

9 months ago

0.3.2-alpha.0

9 months ago

0.3.0-alpha.3

9 months ago

0.3.2-alpha.5

9 months ago

0.3.2-alpha.4

9 months ago

0.3.1-alpha.0

9 months ago

0.2.2

9 months ago

0.3.0-alpha.2

11 months ago

0.3.0-alpha.1

11 months ago

0.2.1

1 year ago

0.2.0

1 year ago

0.2.0-beta.0

1 year ago

0.1.1

1 year ago

0.1.0-beta.12

1 year ago

0.1.0-beta.14

1 year ago

0.1.0-beta.13

1 year ago

0.1.0-beta.15

1 year ago

0.1.0-beta.10

1 year ago

0.1.0-beta.11

1 year ago

0.1.0-beta.9

1 year ago

0.1.0-beta.8

1 year ago

0.1.0-beta.5

1 year ago

0.1.0-beta.4

1 year ago

0.1.0-beta.3

1 year ago

0.1.0-beta.2

1 year ago