Skip to content
Merged
54 changes: 54 additions & 0 deletions .github/workflows/set-callback-gas.yml
Original file line number Diff line number Diff line change
@@ -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 }}
19 changes: 10 additions & 9 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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';
Expand Down Expand Up @@ -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,
},
Expand All @@ -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,
},
Expand All @@ -200,17 +201,17 @@ 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,
},
bellecour: {
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: {
Expand Down
3 changes: 2 additions & 1 deletion scripts/set-callback-gas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.`);
Expand Down