Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion contracts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
"deploy-local": "hardhat deploy --tags Arbitration,HomeArbitrable --network localhost",
"simulate": "hardhat simulate:all",
"simulate-local": "hardhat simulate:all --network localhost",
"viem:generate-devnet": "NODE_NO_WARNINGS=1 wagmi generate -c wagmi.config.devnet.ts",
"viem:generate-testnet": "NODE_NO_WARNINGS=1 wagmi generate -c wagmi.config.testnet.ts",
"viem:generate-mainnet": "NODE_NO_WARNINGS=1 wagmi generate -c wagmi.config.mainnet.ts",
"viem:generate-hardhat": "NODE_NO_WARNINGS=1 wagmi generate -c wagmi.config.hardhat.ts",
"viem:test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-fetch ts-node ./scripts/viem-test.ts",
"bot:keeper": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-fetch hardhat run ./scripts/keeperBot.ts",
"bot:relayer-from-chiado": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-fetch hardhat run ./scripts/disputeRelayerBotFromChiado.ts",
"bot:relayer-from-sepolia": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-fetch hardhat run ./scripts/disputeRelayerBotFromSepolia.ts",
Expand Down Expand Up @@ -55,6 +60,7 @@
"@types/chai": "^4.3.11",
"@types/mocha": "^10.0.6",
"@types/node": "^16.18.68",
"@wagmi/cli": "^1.5.2",
"chai": "^4.3.10",
"dotenv": "^16.3.1",
"ethereumjs-util": "^7.1.5",
Expand All @@ -78,7 +84,7 @@
"solidity-coverage": "0.8.2",
"ts-node": "^10.9.2",
"typechain": "^8.3.2",
"typescript": "^4.9.5"
"typescript": "^5.3.3"
},
"dependencies": {
"@kleros/vea-contracts": "^0.3.2"
Expand Down
25 changes: 25 additions & 0 deletions contracts/scripts/viem-test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { createPublicClient, http, getContract } from "viem";
import { arbitrumSepolia } from "viem/chains";
import { disputeKitClassicConfig } from "../viem/generated";

const main = async () => {
const client = createPublicClient({
chain: arbitrumSepolia,
transport: http(),
});

const disputeKit = getContract({
address: disputeKitClassicConfig.address[arbitrumSepolia.id],
abi: disputeKitClassicConfig.abi,
publicClient: client,
});

await disputeKit.read.governor().then(console.log);
};

main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
12 changes: 6 additions & 6 deletions contracts/src/libraries/Constants.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
/// @title Constants
library Constants {
// Courts
uint96 public constant FORKING_COURT = 0; // Index of the forking court.
uint96 public constant GENERAL_COURT = 1; // Index of the default (general) court.
uint96 internal constant FORKING_COURT = 0; // Index of the forking court.
uint96 internal constant GENERAL_COURT = 1; // Index of the default (general) court.

// Dispute Kits
uint256 public constant NULL_DISPUTE_KIT = 0; // Null pattern to indicate a top-level DK which has no parent.
uint256 public constant DISPUTE_KIT_CLASSIC = 1; // Index of the default DK. 0 index is skipped.
uint256 internal constant NULL_DISPUTE_KIT = 0; // Null pattern to indicate a top-level DK which has no parent.
uint256 internal constant DISPUTE_KIT_CLASSIC = 1; // Index of the default DK. 0 index is skipped.

// Defaults
uint256 public constant DEFAULT_NB_OF_JURORS = 3; // The default number of jurors in a dispute.
IERC20 public constant NATIVE_CURRENCY = IERC20(address(0)); // The native currency, such as ETH on Arbitrum, Optimism and Ethereum L1.
uint256 internal constant DEFAULT_NB_OF_JURORS = 3; // The default number of jurors in a dispute.
IERC20 internal constant NATIVE_CURRENCY = IERC20(address(0)); // The native currency, such as ETH on Arbitrum, Optimism and Ethereum L1.
}
3 changes: 2 additions & 1 deletion contracts/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"./scripts",
"./test",
"./typechain-types",
"./deploy"
"./deploy",
"./viem"
],
"files": [
"./hardhat.config.ts"
Expand Down
30 changes: 30 additions & 0 deletions contracts/wagmi.config.devnet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Config, defineConfig } from "@wagmi/cli";
import IHomeGateway from "@kleros/kleros-v2-contracts/artifacts/src/gateway/interfaces/IHomeGateway.sol/IHomeGateway.json" assert { type: "json" };
import { getAbi, readArtifacts, merge } from "./scripts/wagmiHelpers";

const getConfig = async (): Promise<Config> => {
const arbitrumSepoliaContracts = await readArtifacts("arbitrumSepolia", "arbitrumSepoliaDevnet");
arbitrumSepoliaContracts.forEach((c) => console.log("✔ Found arbitrumSepolia artifact: %s", c.name));
let contracts = arbitrumSepoliaContracts;

const chiadoContracts = await readArtifacts("gnosisChiado", "chiadoDevnet"); // renaming the Hardhat network improves this but breaks many other scripts
chiadoContracts.forEach((c) => console.log("✔ Found chiado artifact: %s", c.name));
contracts = merge(contracts, chiadoContracts);

const sepoliaContracts = await readArtifacts("sepolia", "sepoliaDevnet");
sepoliaContracts.forEach((c) => console.log("✔ Found sepolia artifact: %s", c.name));
contracts = merge(contracts, sepoliaContracts);

return {
out: "viem/generated.devnet.ts",
contracts: [
...contracts,
{
name: "IHomeGateway",
abi: getAbi(IHomeGateway),
},
],
};
};

export default defineConfig(getConfig);
14 changes: 14 additions & 0 deletions contracts/wagmi.config.hardhat.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { defineConfig } from "@wagmi/cli";
import { hardhat } from "@wagmi/cli/plugins";

// Useful for contracts which are not deployed yet
export default defineConfig({
out: "viem/generated.hardhat.ts",
plugins: [
hardhat({
project: ".",
namePrefix: "Hardhat",
exclude: ["Initializable.json", "UpgradedByRewrite.json"], // These artifacts crash the wagmi cli name generator
}),
],
});
30 changes: 30 additions & 0 deletions contracts/wagmi.config.mainnet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Config, defineConfig } from "@wagmi/cli";
import IHomeGateway from "@kleros/kleros-v2-contracts/artifacts/src/gateway/interfaces/IHomeGateway.sol/IHomeGateway.json" assert { type: "json" };
import { getAbi, readArtifacts, merge } from "./scripts/wagmiHelpers";

const getConfig = async (): Promise<Config> => {
const arbitrumContracts = await readArtifacts("arbitrum");
arbitrumContracts.forEach((c) => console.log("✔ Found arbitrum artifact: %s", c.name));
let contracts = arbitrumContracts;

const gnosisContracts = await readArtifacts("gnosis", "gnosischain");
gnosisContracts.forEach((c) => console.log("✔ Found gnosis artifact: %s", c.name));
contracts = merge(contracts, gnosisContracts);

const mainnetContracts = await readArtifacts("mainnet");
mainnetContracts.forEach((c) => console.log("✔ Found mainnet artifact: %s", c.name));
contracts = merge(contracts, mainnetContracts);

return {
out: "viem/generated.mainnet.ts",
contracts: [
...contracts,
{
name: "IHomeGateway",
abi: getAbi(IHomeGateway),
},
],
};
};

export default defineConfig(getConfig);
30 changes: 30 additions & 0 deletions contracts/wagmi.config.testnet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Config, defineConfig } from "@wagmi/cli";
import IHomeGateway from "@kleros/kleros-v2-contracts/artifacts/src/gateway/interfaces/IHomeGateway.sol/IHomeGateway.json" assert { type: "json" };
import { getAbi, readArtifacts, merge } from "./scripts/wagmiHelpers";

const getConfig = async (): Promise<Config> => {
const arbitrumSepoliaContracts = await readArtifacts("arbitrumSepolia");
arbitrumSepoliaContracts.forEach((c) => console.log("✔ Found arbitrumSepolia artifact: %s", c.name));
let contracts = arbitrumSepoliaContracts;

const chiadoContracts = await readArtifacts("gnosisChiado", "chiado"); // renaming the Hardhat network improves this but breaks many other scripts
chiadoContracts.forEach((c) => console.log("✔ Found chiado artifact: %s", c.name));
contracts = merge(contracts, chiadoContracts);

const sepoliaContracts = await readArtifacts("sepolia");
sepoliaContracts.forEach((c) => console.log("✔ Found sepolia artifact: %s", c.name));
contracts = merge(contracts, sepoliaContracts);

return {
out: "viem/generated.testnet.ts",
contracts: [
...contracts,
{
name: "IHomeGateway",
abi: getAbi(IHomeGateway),
},
],
};
};

export default defineConfig(getConfig);
2 changes: 1 addition & 1 deletion eslint-config/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"eslint-utils": "^3.0.0"
},
"devDependencies": {
"typescript": "^4.9.5"
"typescript": "^5.3.3"
},
"peerDependencies": {
"eslint": "8.x"
Expand Down
4 changes: 2 additions & 2 deletions web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"lru-cache": "^7.18.3",
"parcel": "2.8.3",
"supabase": "^1.102.2",
"typescript": "^4.9.5"
"typescript": "^5.3.3"
},
"dependencies": {
"@filebase/client": "^0.0.5",
Expand Down Expand Up @@ -104,7 +104,7 @@
"react-toastify": "^9.1.3",
"react-use": "^17.4.0",
"styled-components": "^5.3.9",
"viem": "^1.20.3",
"viem": "^1.21.1",
"wagmi": "^1.4.12"
},
"volta": {
Expand Down
39 changes: 20 additions & 19 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5363,6 +5363,7 @@ __metadata:
"@types/chai": ^4.3.11
"@types/mocha": ^10.0.6
"@types/node": ^16.18.68
"@wagmi/cli": ^1.5.2
chai: ^4.3.10
dotenv: ^16.3.1
ethereumjs-util: ^7.1.5
Expand All @@ -5386,7 +5387,7 @@ __metadata:
solidity-coverage: 0.8.2
ts-node: ^10.9.2
typechain: ^8.3.2
typescript: ^4.9.5
typescript: ^5.3.3
languageName: unknown
linkType: soft

Expand All @@ -5405,7 +5406,7 @@ __metadata:
eslint-plugin-promise: ^5.2.0
eslint-plugin-security: ^1.7.1
eslint-utils: ^3.0.0
typescript: ^4.9.5
typescript: ^5.3.3
peerDependencies:
eslint: 8.x
languageName: unknown
Expand Down Expand Up @@ -5505,8 +5506,8 @@ __metadata:
react-use: ^17.4.0
styled-components: ^5.3.9
supabase: ^1.102.2
typescript: ^4.9.5
viem: ^1.20.3
typescript: ^5.3.3
viem: ^1.21.1
wagmi: ^1.4.12
languageName: unknown
linkType: soft
Expand Down Expand Up @@ -13028,9 +13029,9 @@ __metadata:
linkType: hard

"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001503":
version: 1.0.30001506
resolution: "caniuse-lite@npm:1.0.30001506"
checksum: 0a090745824622df146e2f6dde79c7f7920a899dec1b3a599d2ef9acf41cef5e179fd133bb59f2030286a4ea935f4230e05438d7394694c414e8ada345eb5268
version: 1.0.30001572
resolution: "caniuse-lite@npm:1.0.30001572"
checksum: 7d017a99a38e29ccee4ed3fc0ef1eb90cf082fcd3a7909c5c536c4ba1d55c5b26ecc1e4ad82c1caa6bfadce526764b354608710c9b61a75bdc7ce8ca15c5fcf2
languageName: node
linkType: hard

Expand Down Expand Up @@ -31729,13 +31730,13 @@ __metadata:
languageName: node
linkType: hard

"typescript@npm:^4.9.5":
version: 4.9.5
resolution: "typescript@npm:4.9.5"
"typescript@npm:^5.3.3":
version: 5.3.3
resolution: "typescript@npm:5.3.3"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db
checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2
languageName: node
linkType: hard

Expand All @@ -31749,13 +31750,13 @@ __metadata:
languageName: node
linkType: hard

"typescript@patch:typescript@^4.9.5#~builtin<compat/typescript>":
version: 4.9.5
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=ad5954"
"typescript@patch:typescript@^5.3.3#~builtin<compat/typescript>":
version: 5.3.3
resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin<compat/typescript>::version=5.3.3&hash=ad5954"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 8f6260acc86b56bfdda6004bc53f32ea548f543e8baef7071c8e34d29d292f3e375c8416556c8de10b24deef6933cd1c16a8233dc84a3dd43a13a13265d0faab
checksum: f61375590b3162599f0f0d5b8737877ac0a7bc52761dbb585d67e7b8753a3a4c42d9a554c4cc929f591ffcf3a2b0602f65ae3ce74714fd5652623a816862b610
languageName: node
linkType: hard

Expand Down Expand Up @@ -32468,9 +32469,9 @@ __metadata:
languageName: node
linkType: hard

"viem@npm:^1.20.3":
version: 1.20.3
resolution: "viem@npm:1.20.3"
"viem@npm:^1.21.1":
version: 1.21.1
resolution: "viem@npm:1.21.1"
dependencies:
"@adraffy/ens-normalize": 1.10.0
"@noble/curves": 1.2.0
Expand All @@ -32485,7 +32486,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 92fffbc1715482969b6af7ac6df51cbd4cfe4e6d55226562eb0658a16b9a9b3df743c1ec1aebb63221b5117d4956fb2f71788bc06f6316d054ac402406614b31
checksum: ba6d296ce271e8068d0dd3cecfbe254cc046cda4acf9393f36045d1a60aa6c669b259dc82a09a3a100c8cb0930142906280782181f341b43496789239332cd9b
languageName: node
linkType: hard

Expand Down