Skip to content

Commit

Permalink
feat: change import paths and all deployments working
Browse files Browse the repository at this point in the history
  • Loading branch information
jatZama committed Nov 29, 2024
1 parent 332e337 commit a4e087d
Show file tree
Hide file tree
Showing 17 changed files with 70 additions and 116 deletions.
2 changes: 1 addition & 1 deletion contracts/addresses/.env.acl
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ACL_CONTRACT_ADDRESS=0x339EcE85B9E11a3A3AA557582784a15d7F82AAf2
ACL_CONTRACT_ADDRESS=0x27FFa4b57D619aDF9821A82AD01b434DE25BCC71
2 changes: 1 addition & 1 deletion contracts/addresses/.env.exec
Original file line number Diff line number Diff line change
@@ -1 +1 @@
TFHE_EXECUTOR_CONTRACT_ADDRESS=0x596E6682c72946AF006B27C131793F2b62527A4b
TFHE_EXECUTOR_CONTRACT_ADDRESS=0x556C1C45316Db2372f9b1b6b288D095709574705
2 changes: 1 addition & 1 deletion contracts/addresses/.env.fhepayment
Original file line number Diff line number Diff line change
@@ -1 +1 @@
FHE_PAYMENT_CONTRACT_ADDRESS=0x6d5A11aC509C707c00bc3A0a113ACcC26c532547
FHE_PAYMENT_CONTRACT_ADDRESS=0x2262E4d00777b46846aA7E502Ec43DD592F932e9
2 changes: 1 addition & 1 deletion contracts/addresses/.env.inputverifier
Original file line number Diff line number Diff line change
@@ -1 +1 @@
INPUT_VERIFIER_CONTRACT_ADDRESS=0x69dE3158643e738a0724418b21a35FAA20CBb1c5
INPUT_VERIFIER_CONTRACT_ADDRESS=0xa50829aC46Ed11158D969334def5e362E5e54Dca
2 changes: 1 addition & 1 deletion contracts/addresses/.env.kmsverifier
Original file line number Diff line number Diff line change
@@ -1 +1 @@
KMS_VERIFIER_CONTRACT_ADDRESS=0x208De73316E44722e16f6dDFF40881A3e4F86104
KMS_VERIFIER_CONTRACT_ADDRESS=0x3DBB223F4b5b5Ce62d3c959Cbea57584F314a713
2 changes: 1 addition & 1 deletion contracts/addresses/ACLAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant aclAdd = 0x339EcE85B9E11a3A3AA557582784a15d7F82AAf2;
address constant aclAdd = 0x27FFa4b57D619aDF9821A82AD01b434DE25BCC71;
2 changes: 1 addition & 1 deletion contracts/addresses/FHEPaymentAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant fhePaymentAdd = 0x6d5A11aC509C707c00bc3A0a113ACcC26c532547;
address constant fhePaymentAdd = 0x2262E4d00777b46846aA7E502Ec43DD592F932e9;
2 changes: 1 addition & 1 deletion contracts/addresses/InputVerifierAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant inputVerifierAdd = 0x69dE3158643e738a0724418b21a35FAA20CBb1c5;
address constant inputVerifierAdd = 0xa50829aC46Ed11158D969334def5e362E5e54Dca;
2 changes: 1 addition & 1 deletion contracts/addresses/KMSVerifierAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant kmsVerifierAdd = 0x208De73316E44722e16f6dDFF40881A3e4F86104;
address constant kmsVerifierAdd = 0x3DBB223F4b5b5Ce62d3c959Cbea57584F314a713;
2 changes: 1 addition & 1 deletion contracts/addresses/TFHEExecutorAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant tfheExecutorAdd = 0x596E6682c72946AF006B27C131793F2b62527A4b;
address constant tfheExecutorAdd = 0x556C1C45316Db2372f9b1b6b288D095709574705;
2 changes: 1 addition & 1 deletion contracts/gateway/.env.gateway
Original file line number Diff line number Diff line change
@@ -1 +1 @@
GATEWAY_CONTRACT_PREDEPLOY_ADDRESS=0x096b4679d45fB675d4e2c1E4565009Cec99A12B1
GATEWAY_CONTRACT_PREDEPLOY_ADDRESS=0xF2251f93B168a1f49329976efF8615bDB8e24d80
2 changes: 1 addition & 1 deletion contracts/gateway/lib/GatewayContractAddress.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

pragma solidity ^0.8.24;

address constant GATEWAY_CONTRACT_PREDEPLOY_ADDRESS = 0x096b4679d45fB675d4e2c1E4565009Cec99A12B1;
address constant GATEWAY_CONTRACT_PREDEPLOY_ADDRESS = 0xF2251f93B168a1f49329976efF8615bDB8e24d80;
35 changes: 4 additions & 31 deletions contracts/hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,39 +40,19 @@ if (!mnemonic) {
}

const chainIds = {
zama: 8009,
local: 9000,
localNative: 8009,
devnetNative: 9000,
localCoprocessor: 12345,
localNetwork1: 9000,
multipleValidatorTestnet: 8009,
sepolia: 11155111,
mainnet: 1,
};

function getChainConfig(chain: keyof typeof chainIds): NetworkUserConfig {
let jsonRpcUrl: string;
switch (chain) {
case 'local':
jsonRpcUrl = 'http://localhost:8545';
break;
case 'localCoprocessor':
jsonRpcUrl = 'http://localhost:8745';
break;
case 'localNetwork1':
jsonRpcUrl = 'http://127.0.0.1:9650/ext/bc/fhevm/rpc';
break;
case 'multipleValidatorTestnet':
jsonRpcUrl = 'https://rpc.fhe-ethermint.zama.ai';
break;
case 'zama':
jsonRpcUrl = 'https://devnet.zama.ai';
break;
case 'sepolia':
jsonRpcUrl = process.env.SEPOLIA_RPC_URL!;
break;
case 'mainnet':
jsonRpcUrl = process.env.MAINNET_RPC_URL!;
break;
default:
throw new Error(`unsupported chain: ${chain}`);
}
Expand Down Expand Up @@ -128,7 +108,7 @@ task('test', async (taskArgs, hre, runSuper) => {
});

const config: HardhatUserConfig = {
defaultNetwork: 'local',
defaultNetwork: 'sepolia',
namedAccounts: {
deployer: 0,
},
Expand All @@ -150,18 +130,11 @@ const config: HardhatUserConfig = {
},
},
sepolia: getChainConfig('sepolia'),
mainnet: getChainConfig('mainnet'),
zama: getChainConfig('zama'),
localDev: getChainConfig('local'),
local: getChainConfig('local'),
localCoprocessor: getChainConfig('localCoprocessor'),
localNetwork1: getChainConfig('localNetwork1'),
multipleValidatorTestnet: getChainConfig('multipleValidatorTestnet'),
},
paths: {
artifacts: './artifacts',
cache: './cache',
sources: './examples',
sources: './contracts',
tests: './test',
},
solidity: {
Expand Down
6 changes: 1 addition & 5 deletions contracts/launch-fhevm-sepolia.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ npx hardhat clean
PRIVATE_KEY_FHEVM_DEPLOYER=$(grep PRIVATE_KEY_FHEVM_DEPLOYER .env | cut -d '"' -f 2)
NUM_KMS_SIGNERS=$(grep NUM_KMS_SIGNERS .env | cut -d '"' -f 2)

rm -rf fhevmTemp/
mkdir -p fhevmTemp
cp -L -r node_modules/fhevm-core-contracts/. fhevmTemp/
npx hardhat compile:specific --contract fhevmTemp
npx hardhat compile:specific --contract lib
npx hardhat compile
npx hardhat compile:specific --contract gateway

npx hardhat task:deployACL --private-key "$PRIVATE_KEY_FHEVM_DEPLOYER" --network sepolia
Expand Down
16 changes: 5 additions & 11 deletions contracts/tasks/etherscanVerify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import fs from 'fs';
import { task } from 'hardhat/config';

task('task:verifyACL').setAction(async function (taskArguments, { upgrades, run }) {
const parsedEnvACL = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.acl'));
const parsedEnvACL = dotenv.parse(fs.readFileSync('addresses/.env.acl'));
const proxyACLAddress = parsedEnvACL.ACL_CONTRACT_ADDRESS;
const implementationACLAddress = await upgrades.erc1967.getImplementationAddress(proxyACLAddress);
await run('verify:verify', {
Expand All @@ -17,7 +17,7 @@ task('task:verifyACL').setAction(async function (taskArguments, { upgrades, run
});

task('task:verifyTFHEExecutor').setAction(async function (taskArguments, { upgrades, run }) {
const parsedEnvTFHEExecutor = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.exec'));
const parsedEnvTFHEExecutor = dotenv.parse(fs.readFileSync('addresses/.env.exec'));
const proxyTFHEExecutorAddress = parsedEnvTFHEExecutor.TFHE_EXECUTOR_CONTRACT_ADDRESS;
const implementationTFHEExecutorAddress = await upgrades.erc1967.getImplementationAddress(proxyTFHEExecutorAddress);
await run('verify:verify', {
Expand All @@ -31,9 +31,7 @@ task('task:verifyTFHEExecutor').setAction(async function (taskArguments, { upgra
});

task('task:verifyKMSVerifier').setAction(async function (taskArguments, { upgrades, run }) {
const parsedEnvKMSVerifier = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.kmsverifier'),
);
const parsedEnvKMSVerifier = dotenv.parse(fs.readFileSync('addresses/.env.kmsverifier'));
const proxyKMSVerifier = parsedEnvKMSVerifier.KMS_VERIFIER_CONTRACT_ADDRESS;
const implementationKMSVerifierAddress = await upgrades.erc1967.getImplementationAddress(proxyKMSVerifier);
await run('verify:verify', {
Expand All @@ -47,9 +45,7 @@ task('task:verifyKMSVerifier').setAction(async function (taskArguments, { upgrad
});

task('task:verifyInputVerifier').setAction(async function (taskArguments, { upgrades, run }) {
const parsedEnvInputVerifier = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.inputverifier'),
);
const parsedEnvInputVerifier = dotenv.parse(fs.readFileSync('addresses/.env.inputverifier'));
const proxyInputVerifier = parsedEnvInputVerifier.INPUT_VERIFIER_CONTRACT_ADDRESS;
const implementationInputVerifierAddress = await upgrades.erc1967.getImplementationAddress(proxyInputVerifier);
await run('verify:verify', {
Expand All @@ -63,9 +59,7 @@ task('task:verifyInputVerifier').setAction(async function (taskArguments, { upgr
});

task('task:verifyFHEPayment').setAction(async function (taskArguments, { upgrades, run }) {
const parsedEnvFHEPayment = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.fhepayment'),
);
const parsedEnvFHEPayment = dotenv.parse(fs.readFileSync('addresses/.env.fhepayment'));
const proxyFHEPayment = parsedEnvFHEPayment.FHE_PAYMENT_CONTRACT_ADDRESS;
const implementationFHEPaymentAddress = await upgrades.erc1967.getImplementationAddress(proxyFHEPayment);
await run('verify:verify', {
Expand Down
48 changes: 21 additions & 27 deletions contracts/tasks/taskDeploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ task('task:deployACL')
.addParam('privateKey', 'The deployer private key')
.setAction(async function (taskArguments: TaskArguments, { ethers, upgrades }) {
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
const factory = await ethers.getContractFactory('fhevmTemp/contracts/ACL.sol:ACL', deployer);
const factory = await ethers.getContractFactory('./contracts/ACL.sol:ACL', deployer);
const acl = await upgrades.deployProxy(factory, [deployer.address], { initializer: 'initialize', kind: 'uups' });
await acl.waitForDeployment();
const address = await acl.getAddress();
const envConfigAcl = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.acl'));
const envConfigAcl = dotenv.parse(fs.readFileSync('addresses/.env.acl'));
if (address !== envConfigAcl.ACL_CONTRACT_ADDRESS) {
throw new Error(
`The nonce of the deployer account is not correct. Please relaunch a clean instance of the fhEVM`,
Expand All @@ -49,14 +49,17 @@ task('task:deployTFHEExecutor')
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
let factory;
if (process.env.HARDHAT_TFHEEXECUTOR_EVENTS !== '1') {
factory = await ethers.getContractFactory('fhevmTemp/contracts/TFHEExecutor.sol:TFHEExecutor', deployer);
factory = await ethers.getContractFactory('./contracts/TFHEExecutor.sol:TFHEExecutor', deployer);
} else {
factory = await ethers.getContractFactory('contracts/TFHEExecutorWithEvents.sol:TFHEExecutorWithEvents', deployer);
factory = await ethers.getContractFactory(
'./contracts/TFHEExecutorWithEvents.sol:TFHEExecutorWithEvents',
deployer,
);
}
const exec = await upgrades.deployProxy(factory, [deployer.address], { initializer: 'initialize', kind: 'uups' });
await exec.waitForDeployment();
const address = await exec.getAddress();
const envConfig = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.exec'));
const envConfig = dotenv.parse(fs.readFileSync('addresses/.env.exec'));
if (address !== envConfig.TFHE_EXECUTOR_CONTRACT_ADDRESS) {
throw new Error(
`The nonce of the deployer account is not correct. Please relaunch a clean instance of the fhEVM`,
Expand All @@ -69,11 +72,11 @@ task('task:deployKMSVerifier')
.addParam('privateKey', 'The deployer private key')
.setAction(async function (taskArguments: TaskArguments, { ethers, upgrades }) {
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
const factory = await ethers.getContractFactory('fhevmTemp/contracts/KMSVerifier.sol:KMSVerifier', deployer);
const factory = await ethers.getContractFactory('./contracts/KMSVerifier.sol:KMSVerifier', deployer);
const kms = await upgrades.deployProxy(factory, [deployer.address], { initializer: 'initialize', kind: 'uups' });
await kms.waitForDeployment();
const address = await kms.getAddress();
const envConfig = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.kmsverifier'));
const envConfig = dotenv.parse(fs.readFileSync('addresses/.env.kmsverifier'));
if (address !== envConfig.KMS_VERIFIER_CONTRACT_ADDRESS) {
throw new Error(
`The nonce of the deployer account is not correct. Please relaunch a clean instance of the fhEVM`,
Expand All @@ -88,17 +91,14 @@ task('task:deployInputVerifier')
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
let factory;
if (process.env.IS_COPROCESSOR === 'true') {
factory = await ethers.getContractFactory(
'fhevmTemp/contracts/InputVerifier.coprocessor.sol:InputVerifier',
deployer,
);
factory = await ethers.getContractFactory('./contracts/InputVerifier.coprocessor.sol:InputVerifier', deployer);
} else {
factory = await ethers.getContractFactory('fhevmTemp/contracts/InputVerifier.native.sol:InputVerifier', deployer);
factory = await ethers.getContractFactory('./contracts/InputVerifier.native.sol:InputVerifier', deployer);
}
const kms = await upgrades.deployProxy(factory, [deployer.address], { initializer: 'initialize', kind: 'uups' });
await kms.waitForDeployment();
const address = await kms.getAddress();
const envConfig = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.inputverifier'));
const envConfig = dotenv.parse(fs.readFileSync('addresses/.env.inputverifier'));
if (address !== envConfig.INPUT_VERIFIER_CONTRACT_ADDRESS) {
throw new Error(
`The nonce of the deployer account is not correct. Please relaunch a clean instance of the fhEVM`,
Expand All @@ -111,14 +111,14 @@ task('task:deployFHEPayment')
.addParam('privateKey', 'The deployer private key')
.setAction(async function (taskArguments: TaskArguments, { ethers, upgrades }) {
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
const factory = await ethers.getContractFactory('fhevmTemp/contracts/FHEPayment.sol:FHEPayment', deployer);
const factory = await ethers.getContractFactory('./contracts/FHEPayment.sol:FHEPayment', deployer);
const payment = await upgrades.deployProxy(factory, [deployer.address], {
initializer: 'initialize',
kind: 'uups',
});
await payment.waitForDeployment();
const address = await payment.getAddress();
const envConfig = dotenv.parse(fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.fhepayment'));
const envConfig = dotenv.parse(fs.readFileSync('addresses/.env.fhepayment'));
if (address !== envConfig.FHE_PAYMENT_CONTRACT_ADDRESS) {
throw new Error(
`The nonce of the deployer account is not correct. Please relaunch a clean instance of the fhEVM`,
Expand All @@ -142,14 +142,12 @@ task('task:addSigners')
)
.setAction(async function (taskArguments: TaskArguments, { ethers }) {
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
const factory = await ethers.getContractFactory('fhevmTemp/contracts/KMSVerifier.sol:KMSVerifier', deployer);
const factory = await ethers.getContractFactory('./contracts/KMSVerifier.sol:KMSVerifier', deployer);
let kmsAdd;
if (taskArguments.customKmsVerifierAddress) {
kmsAdd = taskArguments.customKmsVerifierAddress;
} else {
kmsAdd = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.kmsverifier'),
).KMS_VERIFIER_CONTRACT_ADDRESS;
kmsAdd = dotenv.parse(fs.readFileSync('addresses/.env.kmsverifier')).KMS_VERIFIER_CONTRACT_ADDRESS;
}
const kmsVerifier = await factory.attach(kmsAdd);
for (let idx = 0; idx < taskArguments.numSigners; idx++) {
Expand All @@ -174,14 +172,12 @@ task('task:getAllSigners')
'Use a custom address for the KMSVerifier contract instead of the default one - ie stored inside .env.kmsverifier',
)
.setAction(async function (taskArguments: TaskArguments, { ethers }) {
const factory = await ethers.getContractFactory('fhevmTemp/contracts/KMSVerifier.sol:KMSVerifier');
const factory = await ethers.getContractFactory('./contracts/KMSVerifier.sol:KMSVerifier');
let kmsAdd;
if (taskArguments.customKmsVerifierAddress) {
kmsAdd = taskArguments.customKmsVerifierAddress;
} else {
kmsAdd = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.kmsverifier'),
).KMS_VERIFIER_CONTRACT_ADDRESS;
kmsAdd = dotenv.parse(fs.readFileSync('addresses/.env.kmsverifier')).KMS_VERIFIER_CONTRACT_ADDRESS;
}
const kmsVerifier = (await factory.attach(kmsAdd).connect(ethers.provider)) as KMSVerifier;
const listCurrentKMSSigners = await kmsVerifier.getSigners();
Expand All @@ -197,14 +193,12 @@ task('task:removeSigner')
)
.setAction(async function (taskArguments: TaskArguments, { ethers }) {
const deployer = new ethers.Wallet(taskArguments.privateKey).connect(ethers.provider);
const factory = await ethers.getContractFactory('fhevmTemp/contracts/KMSVerifier.sol:KMSVerifier', deployer);
const factory = await ethers.getContractFactory('./contracts/KMSVerifier.sol:KMSVerifier', deployer);
let kmsAdd;
if (taskArguments.customKmsVerifierAddress) {
kmsAdd = taskArguments.customKmsVerifierAddress;
} else {
kmsAdd = dotenv.parse(
fs.readFileSync('node_modules/fhevm-core-contracts/addresses/.env.kmsverifier'),
).KMS_VERIFIER_CONTRACT_ADDRESS;
kmsAdd = dotenv.parse(fs.readFileSync('addresses/.env.kmsverifier')).KMS_VERIFIER_CONTRACT_ADDRESS;
}
const kmsVerifier = (await factory.attach(kmsAdd)) as KMSVerifier;
const tx = await kmsVerifier.removeSigner(taskArguments.kmsSignerAddress);
Expand Down
Loading

0 comments on commit a4e087d

Please sign in to comment.