diff --git a/.github/workflows/set-callback-gas.yml b/.github/workflows/set-callback-gas.yml new file mode 100644 index 00000000..bf27f8a6 --- /dev/null +++ b/.github/workflows/set-callback-gas.yml @@ -0,0 +1,54 @@ +name: Set Callback Gas + +on: + workflow_dispatch: + inputs: + network: + description: 'Network' + required: true + type: choice + options: + - arbitrumSepolia + - arbitrum + - bellecour + default: 'arbitrumSepolia' + callback_gas-value: + description: 'Callback Gas Value' + required: true + type: string + +jobs: + set-callback-gas: + runs-on: ubuntu-latest + permissions: + contents: read + environment: ${{ inputs.network }} # Use the selected environment + steps: + - name: Validate callback gas input + run: | + if ! [[ "${{ inputs.callback_gas-value }}" =~ ^[0-9]+$ ]]; then + echo "Error: Callback gas must be a positive integer" + exit 1 + fi + + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Nodejs + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' # Cache dependencies + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Set callback gas on ${{ inputs.network }} + env: + ADMIN_PRIVATE_KEY: ${{ secrets.ADMIN_PRIVATE_KEY }} + RPC_URL: ${{ secrets.RPC_URL }} + CALLBACK_GAS: ${{ inputs.callback_gas-value }} + run: npx hardhat run scripts/set-callback-gas.ts --network ${{ inputs.network }} diff --git a/hardhat.config.ts b/hardhat.config.ts index 596c37a4..8fed0920 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,7 +1,6 @@ import '@nomicfoundation/hardhat-toolbox'; import 'dotenv/config'; import * as fs from 'fs'; -import * as path from 'path'; import 'hardhat-dependency-compiler'; import 'hardhat-deploy'; import { HardhatUserConfig, task } from 'hardhat/config'; @@ -10,10 +9,12 @@ import { defaultHardhatNetworkParams, defaultLocalhostNetworkParams, } from 'hardhat/internal/core/config/default-config'; +import * as path from 'path'; import 'solidity-docgen'; import { cleanupDeployments, copyDeployments } from './scripts/tools/copy-deployments'; import chainConfig from './utils/config'; +const ZERO_PRIVATE_KEY = '0x0000000000000000000000000000000000000000000000000000000000000000'; const isNativeChainType = chainConfig.isNativeChain(); const isLocalFork = process.env.LOCAL_FORK == 'true'; const isFujiFork = process.env.FUJI_FORK == 'true'; @@ -178,8 +179,8 @@ const config: HardhatUserConfig = { process.env.RPC_URL || // Defined in Github Actions environments 'https://api.avax-test.network/ext/bc/C/rpc', accounts: [ - process.env.DEPLOYER_PRIVATE_KEY || - '0x0000000000000000000000000000000000000000000000000000000000000000', + process.env.DEPLOYER_PRIVATE_KEY || ZERO_PRIVATE_KEY, + process.env.ADMIN_PRIVATE_KEY || ZERO_PRIVATE_KEY, ], ...fujiBaseConfig, }, @@ -189,8 +190,8 @@ const config: HardhatUserConfig = { process.env.RPC_URL || // Defined in Github Actions environments 'https://arbitrum.gateway.tenderly.co', accounts: [ - process.env.DEPLOYER_PRIVATE_KEY || - '0x0000000000000000000000000000000000000000000000000000000000000000', + process.env.DEPLOYER_PRIVATE_KEY || ZERO_PRIVATE_KEY, + process.env.ADMIN_PRIVATE_KEY || ZERO_PRIVATE_KEY, ], ...arbitrumBaseConfig, }, @@ -200,8 +201,8 @@ const config: HardhatUserConfig = { process.env.RPC_URL || // Defined in Github Actions environments 'https://sepolia-rollup.arbitrum.io/rpc', accounts: [ - process.env.DEPLOYER_PRIVATE_KEY || - '0x0000000000000000000000000000000000000000000000000000000000000000', + process.env.DEPLOYER_PRIVATE_KEY || ZERO_PRIVATE_KEY, + process.env.ADMIN_PRIVATE_KEY || ZERO_PRIVATE_KEY, ], ...arbitrumSepoliaBaseConfig, }, @@ -209,8 +210,8 @@ const config: HardhatUserConfig = { chainId: 134, url: 'https://bellecour.iex.ec', accounts: [ - process.env.DEPLOYER_PRIVATE_KEY || - '0x0000000000000000000000000000000000000000000000000000000000000000', + process.env.DEPLOYER_PRIVATE_KEY || ZERO_PRIVATE_KEY, + process.env.ADMIN_PRIVATE_KEY || ZERO_PRIVATE_KEY, ], ...bellecourBaseConfig, verify: { diff --git a/scripts/set-callback-gas.ts b/scripts/set-callback-gas.ts index 5bed8bf0..a6898910 100644 --- a/scripts/set-callback-gas.ts +++ b/scripts/set-callback-gas.ts @@ -19,7 +19,8 @@ import config from '../utils/config'; throw new Error('Diamond proxy address is required'); } console.log(`Diamond proxy address: ${proxyAddress}`); - const [owner] = await ethers.getSigners(); + // TODO: update here to use getNamedAccounts + const [, owner] = await ethers.getSigners(); const iexecPoCo = IexecInterfaceToken__factory.connect(proxyAddress, owner); if ((await iexecPoCo.owner()) !== owner.address) { throw new Error(`Sender account ${owner.address} is not the PoCo owner.`);