Files
Fuma Nama 0fb792d6f8 refactor(fhe): unify API - reveal() replaces getDecryptResult()
- Update to unified FHE decryption API
- Add foundry.toml for testing
- Update dependencies to @luxfi/contracts
2025-12-31 21:11:02 -08:00

55 lines
2.1 KiB
TypeScript

import { DeployFunction } from "hardhat-deploy/types";
import { HardhatRuntimeEnvironment } from "hardhat/types";
/**
* Deploys a contract named "RngBinaryGame" using the deployer account and
* constructor arguments set to the deployer address
*
* @param hre HardhatRuntimeEnvironment object.
*/
const deployRngBinaryGame: DeployFunction = async function (
hre: HardhatRuntimeEnvironment,
) {
/*
On localhost, the deployer account is the one that comes with Hardhat, which is already funded.
When deploying to live networks (e.g `yarn deploy --network goerli`), the deployer account
should have sufficient balance to pay for the gas fees for contract creation.
You can generate a random account with `yarn generate` which will fill DEPLOYER_PRIVATE_KEY
with a random private key in the .env file (then used on hardhat.config.ts)
You can run the `yarn account` command to check your balance in every network.
*/
const { deployer } = await hre.getNamedAccounts();
const { deploy } = hre.deployments;
if (hre.network.name === "hardhat" && process.argv.includes("deploy")) {
console.warn(
"Warning: you are deploying to the in-process Hardhat network, but this network gets destroyed right after the deployment task ends.",
);
}
// Fund the account before deploying.
if (hre.network.name === "localluxfhe") {
if ((await hre.ethers.provider.getBalance(deployer)) === 0n) {
await hre.luxfhe.getFunds(deployer);
console.log("Received tokens from the local faucet. Ready to deploy...");
}
}
await deploy("RngBinaryGame", {
from: deployer,
// Contract constructor arguments
args: [],
log: true,
// autoMine: can be passed to the deploy function to make the deployment process faster on local networks by
// automatically mining the contract deployment transaction. There is no effect on live networks.
autoMine: true,
});
};
export default deployRngBinaryGame;
// Tags are useful if you have multiple deploy files and only want to run one of them.
// e.g. yarn deploy --tags RngBinaryGame
deployRngBinaryGame.tags = ["RngBinaryGame"];