Skip to content

Release #2012

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 177 commits into
base: master
Choose a base branch
from
Draft

Release #2012

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
2bffa61
chore: shutter script experiment
jaybuidl Mar 15, 2025
3570b46
feat(shutter): added decryption logic
jaybuidl Mar 19, 2025
ddae29a
fix: better error handling
jaybuidl Mar 19, 2025
04e3f5c
feat: naive shutterized dispute kit and auto-voting bot
jaybuidl Apr 24, 2025
be6e1ce
feat: commitment hashing and verification onchain
jaybuidl Apr 29, 2025
020dbab
chore: cleanup
jaybuidl Apr 29, 2025
30804a8
feat: support for multiple voteIDs at once, fixed salt handling by bot
jaybuidl Apr 30, 2025
1a9b72d
chore: cleanup before integration into a fully fletched dispute kit
jaybuidl Apr 30, 2025
b580556
feat: fully fletched DisputeKitShutter
jaybuidl Apr 30, 2025
8819241
chore: removed redundant node-fetch
jaybuidl Apr 30, 2025
cd016b3
chore: cleanup
jaybuidl Apr 30, 2025
8e46e05
feat: fully fletched DisputeKitShutter
jaybuidl Apr 30, 2025
98ec3ba
chore: deployment of DisputeKitShutter in devnet
jaybuidl Apr 30, 2025
74d1506
fix: missing parameter, upgraded DisputeKitShutter
jaybuidl Apr 30, 2025
b40abc2
chore: upgraded DisputeKitClassic
jaybuidl Apr 30, 2025
cb7997f
fix: external call to castCommit() changes msg.sender, fixed by extra…
jaybuidl May 1, 2025
ee2ceb6
chore: enable shutter DK on the devnet general court
jaybuidl May 2, 2025
317aed6
feat: support for shutter disputekit in devnet
kemuru May 6, 2025
05dcdb0
fix: create new classic dispute entity correctly with correct round i…
kemuru May 8, 2025
44ea55e
fix: correct round check
kemuru May 8, 2025
a995e1e
chore: subgraph update scripts now relies on a template and removes d…
jaybuidl May 8, 2025
ca14ada
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl May 8, 2025
f3f235c
Merge branch 'feat/shutter-dispute-kit' into feat(subgraph)/support-f…
kemuru May 9, 2025
4b85135
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl May 9, 2025
edc4a7d
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl May 12, 2025
78b2951
chore: fix to support deployment to Alchemy
jaybuidl May 13, 2025
6b32fc3
chore: lock file
jaybuidl May 13, 2025
74625e1
Merge pull request #1966 from kleros/feat(subgraph)/support-for-multi…
jaybuidl May 14, 2025
0dad7c4
Merge branch 'dev' into feat/shutter-dispute-kit
kemuru May 15, 2025
5ac64f5
feat: shutter support in dispute commiting
kemuru May 15, 2025
6cd4369
Merge branch 'dev' into feat/shutter-dispute-kit
kemuru May 15, 2025
724a949
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 15, 2025
8a5b2f4
feat: shutter appeal support
kemuru May 15, 2025
14994db
fix: bug fix in subgraph
kemuru May 15, 2025
142273c
Merge pull request #1995 from kleros/fix(subgraph)/localrounds-fix
kemuru May 15, 2025
6b240a6
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 15, 2025
5989928
chore: subgraphs version bump
jaybuidl May 16, 2025
1ff55f8
docs: natspec for KlerosCore view functions
jaybuidl May 14, 2025
036e897
chore: style and button changes
kemuru May 19, 2025
f20c9d4
chore: remove unused code
kemuru May 19, 2025
54d83a7
fix: avoid unnecessary calls draw() when no juror is available, requi…
jaybuidl May 19, 2025
9e8aa9e
fix: reinitializer and version for KlerosCore
jaybuidl May 19, 2025
7a5466b
chore: retrigger deploy preview
kemuru May 20, 2025
1ca9066
Merge pull request #2001 from kleros/chore(web)/style-and-button-changes
alcercu May 20, 2025
df98319
Merge branch 'dev' into feat/shutter-dispute-kit
kemuru May 20, 2025
05711fe
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 20, 2025
729777d
feat: postinstall script, use correct commit function
kemuru May 20, 2025
8bf3772
fix: vote hashing during commitment must follow DisputeKitShutter.has…
jaybuidl May 20, 2025
8c74d4a
feat: decryption delay is the remaining of the commit period
kemuru May 22, 2025
29ef9a1
Fix: Update isCurrentRound for previous round on appeal
google-labs-jules[bot] May 22, 2025
b1d3fa9
chore: shutter event tweak, extra dispute kit views
jaybuidl May 22, 2025
47049eb
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
jaybuidl May 22, 2025
3925b6f
Fix: Update isCurrentRound for previous round on appeal
google-labs-jules[bot] May 23, 2025
bae8db4
chore: remove postinstall script, tell vite where to find it
kemuru May 23, 2025
aa01874
feat: keeper bot for shutter auto-reveal (wip)
jaybuidl May 26, 2025
e983fdd
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 26, 2025
2e5d2a7
feat: support for revealing shutter commit from the frontend
kemuru May 26, 2025
ad47783
chore: timeline clarify remaining time
kemuru May 26, 2025
bf7a3c0
chore: remove console logs, few code smells
kemuru May 26, 2025
349783f
Merge pull request #2009 from kleros/chore/timeline-clarify-remaining…
alcercu May 26, 2025
f370669
fix(subgraph): handle-batched-disputes-request-events
tractorss May 26, 2025
3f532d2
Merge pull request #2010 from kleros/fix/subgraph-batch-dispute-handling
jaybuidl May 27, 2025
20ee602
fix: bug in color loading text in file viewer
kemuru May 27, 2025
282b91d
Merge pull request #2011 from kleros/fix(web)/color-text-loading-bug-…
alcercu May 28, 2025
411b384
Merge branch 'dev' into fix/update-iscurrentround
jaybuidl May 28, 2025
367549c
chore: subgraph version bump
jaybuidl May 28, 2025
30382a0
Merge pull request #2007 from kleros/fix/update-iscurrentround
jaybuidl May 28, 2025
bafbd14
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl May 28, 2025
c8bf188
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 28, 2025
e5cf1df
Merge pull request #2002 from kleros/fix/keeper-bot-useless-draws
jaybuidl May 28, 2025
e7a0759
fix: allow return in case evidence was opened in new tab
kemuru May 28, 2025
dde0dc7
fix: few more links handling
kemuru May 28, 2025
4e95c72
Merge pull request #2013 from kleros/fix/file-viewer-return-button-link
alcercu May 28, 2025
2b51d5e
chore: find-initializer-versions utility
jaybuidl May 28, 2025
e52d59b
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl May 28, 2025
99f9852
feat: shutter auto-reveal logic integrated into the main bot, improve…
jaybuidl May 28, 2025
4adedb5
chore: find-initializer-versions utility
jaybuidl May 28, 2025
04605db
chore: extra 5 min decryptiondelay
kemuru May 29, 2025
b3817bd
fix: trycatch in case voting fails
kemuru May 29, 2025
f816ca3
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 29, 2025
fe7eb85
Merge branch 'dev' into feat/shutter-dispute-kit
kemuru May 29, 2025
4e2dea9
Merge branch 'feat/shutter-dispute-kit' into feat(web)/shutter-fronte…
kemuru May 29, 2025
469039a
Merge pull request #1994 from kleros/feat(web)/shutter-frontend-rende…
alcercu May 29, 2025
7bbe6df
chore: upgrade-all support for Shutter DK
jaybuidl May 28, 2025
1fd3526
chore: shutter env variables
kemuru May 30, 2025
c3f6611
feat: keeper bot passes the period to Voting before auto-revealing
jaybuidl May 30, 2025
959b765
chore: keeper bot logging
jaybuidl May 30, 2025
d43e68e
Merge branch 'chore/shutter-env-variables' into feat/shutter-dispute-kit
jaybuidl May 30, 2025
dd9f9c3
fix(kleros-app): add-state-for-confirm-email
jaybuidl Jun 4, 2025
bfd18da
chore(kleros-app): release @kleros/[email protected]
jaybuidl Jun 4, 2025
47aaca4
feat: new overview design
kemuru Jun 10, 2025
78508f5
feat: add card labels to the overview
kemuru Jun 11, 2025
f5f2530
chore: tweak
kemuru Jun 11, 2025
929955c
fix: add where to the key
kemuru Jun 11, 2025
0b75799
Merge pull request #2022 from kleros/feat/new-overview-design
alcercu Jun 11, 2025
411560e
Merge branch 'dev' into fix/profile-page-not-loading
kemuru Jun 11, 2025
2925a4e
feat(kleros-sdk): predefined-lambdas-for-mustache
tractorss Jun 13, 2025
33a47a9
chore: address-rabbit-feedback
tractorss Jun 13, 2025
10294ce
feat: ens in evidence
kemuru Jun 17, 2025
7449259
fix: bug in profile loading fix, dispute stats fix too
kemuru Jun 18, 2025
a35ceb0
chore: commify juror rewards
kemuru Jun 19, 2025
b38c702
Merge pull request #2023 from kleros/fix/profile-page-not-loading
alcercu Jun 20, 2025
70b21f9
Merge branch 'dev' into feat/ens-in-evidence
alcercu Jun 20, 2025
2542150
Merge pull request #2027 from kleros/feat/ens-in-evidence
alcercu Jun 20, 2025
a3742fa
Merge branch 'hotfix-deployment-artifacts' into dev
jaybuidl Jun 23, 2025
2a1edb7
deprecated var
jaybuidl Jul 5, 2025
70e4b7c
update reality DisputeMappings.json
jaybuidl Jul 5, 2025
5ac93ef
fix(DisputeKit): check that dispute belongs to DK
unknownunknown1 Jul 9, 2025
85f01b6
fix: changed mapping to a boolean, reset dispute.jumped
jaybuidl Jul 15, 2025
e99f3e6
Merge pull request #2039 from kleros/fix/dk-vote-bug
jaybuidl Jul 15, 2025
a3b8470
fix(SortitionModule): fix staking logic and remove instant staking
unknownunknown1 May 20, 2025
585ef60
fix(KC): update the state after transfer
unknownunknown1 May 30, 2025
f30d327
chore: removed the handlers for the instant staking events
jaybuidl Jun 5, 2025
c193e48
fix: removed the unused _alreadyTransferred parameter
jaybuidl Jul 15, 2025
8c5b67d
refactor: renamed SM.setStake() into SM.validateStake(), SM.updateSta…
jaybuidl Jul 15, 2025
e8c529e
fix: natspec
jaybuidl Jul 15, 2025
6c31770
fix: university contracts aligned with the base ones
jaybuidl Jul 15, 2025
d50b8a4
fix: removal of the unused instant staking events
jaybuidl Jul 15, 2025
2e71da9
feat: emit event LeftoverPNK when PNK becomes available for withdrawa…
jaybuidl Jul 16, 2025
62fd505
fix: invisible disputekitm dropdown if no court selected
kemuru Jul 16, 2025
4449e04
Merge pull request #2040 from kleros/fix/invisible-disputekit-dropdow…
jaybuidl Jul 16, 2025
55e762c
chore: add-shutter-api-token
tractorss Jul 16, 2025
16af2f7
chore: remove-bearer-token
tractorss Jul 16, 2025
aadc2d4
fix(KC): staking test update
unknownunknown1 Jul 18, 2025
29ab108
docs: custom natspec cleanup
jaybuidl Jul 18, 2025
277992c
feat: dynamic popup text if shutter dispute kit
kemuru Jul 18, 2025
d9c7ec6
fix: subgraph abi migrations update
jaybuidl Jul 18, 2025
f999611
feat: support for Shutter API token at the bot level
jaybuidl Jul 18, 2025
01dca90
fix: rabbit review
jaybuidl Jul 18, 2025
02def13
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl Jul 18, 2025
2174fc2
refactor: env var rename SHUTTER_API_TOKEN to SHUTTER_API_KEY
jaybuidl Jul 18, 2025
d6b7495
Merge branch 'dev' into fix/staking-fix
jaybuidl Jul 18, 2025
392e1c0
Merge pull request #2004 from kleros/fix/staking-fix
jaybuidl Jul 18, 2025
3e8a2f8
Merge pull request #2024 from kleros/feat/predefined-lambdas-for-must…
jaybuidl Jul 18, 2025
e4a2562
test: support shutter DK initialization
jaybuidl Jul 18, 2025
f1320fb
Merge branch 'dev' into feat/shutter-dispute-kit
jaybuidl Jul 18, 2025
321a9a5
test: revert message fix
jaybuidl Jul 18, 2025
f39e4ee
Merge pull request #1965 from kleros/feat/shutter-dispute-kit
jaybuidl Jul 18, 2025
2b11e6d
Merge pull request #2019 from kleros/fix/kleros-app-confirm-email-state
jaybuidl Jul 18, 2025
2116239
docs: custom natspec cleanup
jaybuidl Jul 19, 2025
9d19c70
feat: gated dispute kit with dynamic token gate, shutter gated dk, te…
jaybuidl Jul 19, 2025
3bca47c
test: dispute kit gated
jaybuidl Jul 19, 2025
358a621
Merge pull request #2045 from kleros/feat/universal-gated-dk
jaybuidl Jul 19, 2025
6e535cc
chore: contract dependencies update, bumped node to v20, solidity to …
jaybuidl Jul 19, 2025
b8a2a15
chore: devnet contracts redeploy, tooling migration to etherscan v2 API
jaybuidl Jul 19, 2025
5ef5f23
chore: artifacts refresh, contract getters to include the new dispute…
jaybuidl Jul 19, 2025
b5c639c
fix: implementation version
jaybuidl Jul 19, 2025
1b9cc64
chore: devnet subgraphs redeployed to Alchemy
jaybuidl Jul 19, 2025
222b832
chore: published @kleros/[email protected]
jaybuidl Jul 20, 2025
60a0a75
chore: rolling back shutter-sdk to v0.0.1 due to BLST issue in browser
jaybuidl Jul 20, 2025
e2e6412
Merge pull request #2046 from kleros/chore/devnet-redeploy-jul2025
jaybuidl Jul 20, 2025
dace35e
fix: blst error shutter v0.0.2
kemuru Jul 20, 2025
2b67654
chore: bumped shutter sdk in contracts/
jaybuidl Jul 21, 2025
88f0a3e
Merge pull request #2049 from kleros/fix/blst-error-shutter-v0.0.2
jaybuidl Jul 21, 2025
032f38c
fix(subgraph): total-leaderboard-jurors-count
tractorss Jul 20, 2025
f36904e
chore: core subgraph redeploy on Alchemy
jaybuidl Jul 21, 2025
f4ed9a0
Merge pull request #2048 from kleros/fix/leaderboard-juror-count
jaybuidl Jul 21, 2025
1ff6beb
feat: recognise the new dispute kits, matching by address, resolver UX
jaybuidl Jul 21, 2025
f5c1d67
feat: gated dispute kit extra data input, extra data encoding refactor
jaybuidl Jul 22, 2025
bc76907
chore: dispute-kit-gated-subgraph-support
tractorss Jul 22, 2025
8818c80
fix(web): dispute-kit-input-persistence
tractorss Jul 22, 2025
4d0c513
feat(web): fetch-dispute-kit-data-in-duplication
tractorss Jul 22, 2025
38030e1
Merge branch 'web/dk-support-improvement' into chore/token-gated-disp…
tractorss Jul 22, 2025
008bd22
fix(subgraph): update-dispute-kit-extraction
tractorss Jul 22, 2025
fe7419c
feat(web): support-vote-commit-fund-calls-for-gated-dispute-kit
tractorss Jul 22, 2025
7912160
Merge branch 'web/dk-support-improvement' into chore/token-gated-disp…
tractorss Jul 22, 2025
434e608
Merge pull request #2051 from kleros/chore/token-gated-dispute-kit-su…
tractorss Jul 22, 2025
168740b
chore: bumped core subgraph version
jaybuidl Jul 22, 2025
6eb5bc6
chore: more aggressive draw iterations to account for ineligible jurors
jaybuidl Jul 22, 2025
fa2520c
fix: cosmetic and rabbit review
jaybuidl Jul 22, 2025
c6562bb
fix(web): update-fund-hook
tractorss Jul 22, 2025
c6b51c1
fix(web): jurors-count-input-crash
tractorss Jul 23, 2025
ce63962
fix(web): fix-shutter-commit-call
tractorss Jul 23, 2025
b5fff19
fix(web): reveal-shutter-gated
tractorss Jul 23, 2025
2166ee0
test: contracts getter tests with new dispute kits
jaybuidl Jul 28, 2025
026fe83
feat(bot): keeper bot support gated and gated shutter dk
jaybuidl Jul 28, 2025
bff4f10
Merge pull request #2050 from kleros/web/dk-support-improvement
jaybuidl Jul 28, 2025
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
935 changes: 0 additions & 935 deletions .yarn/releases/yarn-4.8.1.cjs

This file was deleted.

942 changes: 942 additions & 0 deletions .yarn/releases/yarn-4.9.2.cjs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .yarnrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ logFilters:

nodeLinker: node-modules

yarnPath: .yarn/releases/yarn-4.8.1.cjs
yarnPath: .yarn/releases/yarn-4.9.2.cjs
18 changes: 6 additions & 12 deletions contracts/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,14 @@ GNOSISSCAN_API_KEY=ABC123ABC123ABC123ABC123ABC123ABC1
# For the bots
LOG_LEVEL=debug
SUBGRAPH_URL=https://api.studio.thegraph.com/query/61738/kleros-v2-core-devnet/version/latest
LOGTAIL_TOKEN_KEEPER_BOT=cqPqBofVC8nmA8EZdZGqqvUV
LOGTAIL_TOKEN_RELAYER_BOT=41h8q5Z4gnz5yDx215eqcQ4r
LOGTAIL_TOKEN_DISPUTOR_BOT=mSryyvYubviaMqKDWfBKAGsi
HEARTBEAT_URL_KEEPER_BOT=https://uptime.betterstack.com/api/v1/heartbeat/jc23S8ZZzpf8KbzwxL1hoBp9
HEARTBEAT_URL_RELAYER_BOT=https://uptime.betterstack.com/api/v1/heartbeat/eT6Trk6CddJV6fFBbqZNzyqC
LOGTAIL_TOKEN_KEEPER_BOT=ABC123ABC123ABC123ABC
LOGTAIL_TOKEN_RELAYER_BOT=ABC123ABC123ABC123ABC
LOGTAIL_TOKEN_DISPUTOR_BOT=ABC123ABC123ABC123ABC
HEARTBEAT_URL_KEEPER_BOT=https://uptime.betterstack.com/api/v1/heartbeat/ABC123ABC123ABC123ABC
SHUTTER_API=testnet
SHUTTER_API_KEY=
DISPUTES_TO_SKIP=

# Optionally for debugging
# TENDERLY_USERNAME=your_username
# TENDERLY_PROJECT=your_project

# Used by the "hardhat.config.ts" file and important to set them for the "scripts/simulations" tasks
ARB_GOERLI_PRIVATE_KEY_WALLET_1=
ARB_GOERLI_PRIVATE_KEY_WALLET_2=
ARB_GOERLI_PRIVATE_KEY_WALLET_3=
ARB_GOERLI_PRIVATE_KEY_WALLET_4=
ARB_GOERLI_PRIVATE_KEY_WALLET_5=
109 changes: 109 additions & 0 deletions contracts/DEVNET_REDEPLOY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
## Clean up of the old artifacts

The following contracts have been preserved:

- The University contracts (out-of-scope for now)
- The ERC20 tokens and their faucets (unchanged): PinakionV2, PNK, PNKFaucet, DAI, DAIFaucet, WETH, WETHFaucet
- The RNG contracts (unchanged): RandomizerOracle, BlockHashRNG, ChainlinkRNG, ChainlinkVRFCoordinator (mock)
- KlerosV2NeoEarlyUser (unchanged, for Neo devnet)

```shell
rm deployments/arbitrumSepoliaDevnet/DisputeKitClassic.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitClassic_Implementation.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitClassic_Proxy.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGated_Implementation.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGated_Proxy.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGated.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGatedShutter_Implementation.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGatedShutter_Proxy.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitGatedShutter.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitShutter.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitShutter_Implementation.json
rm deployments/arbitrumSepoliaDevnet/DisputeKitShutter_Proxy.json
rm deployments/arbitrumSepoliaDevnet/DisputeResolver.json
rm deployments/arbitrumSepoliaDevnet/DisputeResolverRuler.json
rm deployments/arbitrumSepoliaDevnet/DisputeTemplateRegistry.json
rm deployments/arbitrumSepoliaDevnet/DisputeTemplateRegistry_Implementation.json
rm deployments/arbitrumSepoliaDevnet/DisputeTemplateRegistry_Proxy.json
rm deployments/arbitrumSepoliaDevnet/EvidenceModule.json
rm deployments/arbitrumSepoliaDevnet/EvidenceModule_Implementation.json
rm deployments/arbitrumSepoliaDevnet/EvidenceModule_Proxy.json
rm deployments/arbitrumSepoliaDevnet/KlerosCore.json
rm deployments/arbitrumSepoliaDevnet/KlerosCoreRuler.json
rm deployments/arbitrumSepoliaDevnet/KlerosCoreRuler_Implementation.json
rm deployments/arbitrumSepoliaDevnet/KlerosCoreRuler_Proxy.json
rm deployments/arbitrumSepoliaDevnet/KlerosCoreSnapshotProxy.json
rm deployments/arbitrumSepoliaDevnet/KlerosCore_Implementation.json
rm deployments/arbitrumSepoliaDevnet/KlerosCore_Proxy.json
rm deployments/arbitrumSepoliaDevnet/PolicyRegistry.json
rm deployments/arbitrumSepoliaDevnet/PolicyRegistry_Implementation.json
rm deployments/arbitrumSepoliaDevnet/PolicyRegistry_Proxy.json
rm deployments/arbitrumSepoliaDevnet/SortitionModule.json
rm deployments/arbitrumSepoliaDevnet/SortitionModule_Implementation.json
rm deployments/arbitrumSepoliaDevnet/SortitionModule_Proxy.json
```

## Contracts Deployment - DRY RUN

Shell 1: fork node

```shell
anvil --fork-url https://sepolia-rollup.arbitrum.io/rpc
```

Shell 2: deployer

```shell
export ARBITRUM_SEPOLIA_RPC=http://127.0.0.1:8545

yarn clean
yarn deploy --network arbitrumSepoliaDevnet --tags Resolver
yarn deploy --network arbitrumSepoliaDevnet --tags ArbitrationRuler

unset ARBITRUM_SEPOLIA_RPC
```

:warning: Remember to delete all the deployed artifacts after each dry run.

## Contracts Deployment - LIVE

```shell
yarn clean
yarn deploy --network arbitrumSepoliaDevnet --tags Resolver
yarn deploy --network arbitrumSepoliaDevnet --tags ArbitrationRuler

# Contracts verification, marking proxies
yarn etherscan-verify --network arbitrumSepoliaDevnet
yarn etherscan-verify-proxies

# Docs update
./scripts/populateReadme.sh
```

## Courts structure and policies configuration

```shell
yarn hardhat populate:courts --from v2_devnet --network arbitrumSepoliaDevnet

yarn hardhat populate:policy-registry --from v2_devnet --network arbitrumSepoliaDevnet
```

## Contracts SDK

### Refresh the artifacts

```shell
# Viem artifacts
yarn viem:generate-devnet

# Hardhat artifacts
yarn export:devnet
```

### Update the contract helpers

If there are new or removed contracts, edit the contract helpers in:

- `scripts/utils/contracts.ts` (Hardhat runtime)
- `deployments/contractsEthers.ts` (pure EthersJS)
- `deployments/contractsViem.ts` (pure Viem)
48 changes: 18 additions & 30 deletions contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,25 +74,28 @@ Refresh the list of deployed contracts by running `./scripts/generateDeployments

- [ArbitrableExample](https://sepolia.arbiscan.io/address/0x3Eae72F076c68F5c354C73abC33EAA291ef1b2Fa)
- [BlockHashRNG](https://sepolia.arbiscan.io/address/0x56d6d65Fe202232714794B5D5e4ed9894466Ee01)
- [ChainlinkRNG](https://sepolia.arbiscan.io/address/0x6c40D7F5d5bE3492fe9EF70e4eCb2BD773c12AF8)
- [ChainlinkRNG](https://sepolia.arbiscan.io/address/0x7e40f5aC809521654A9c17e442F2a0a5a4d890FA)
- [DAI](https://sepolia.arbiscan.io/address/0x593e89704D285B0c3fbF157c7CF2537456CE64b5)
- [DAIFaucet](https://sepolia.arbiscan.io/address/0xB5b39A1bcD2D7097A8824B3cC18Ebd2dFb0D9B5E)
- [DisputeKitClassic: proxy](https://sepolia.arbiscan.io/address/0x2246821E1313A93e2F8CdF7a3422d078f560b457), [implementation](https://sepolia.arbiscan.io/address/0x8Db69EE93365190FE9CA4d59Ae4Cdd4f3688f1Af)
- [DisputeKitClassic: proxy](https://sepolia.arbiscan.io/address/0xeEEbbbff8f377dCFc7d4F7876C531db0d22720e1), [implementation](https://sepolia.arbiscan.io/address/0xD76E74049003faCe2EBA0B6FB61DFC9941da959F)
- [DisputeKitClassicUniversity: proxy](https://sepolia.arbiscan.io/address/0xd6E96b7c993763B5CDDa1139C7387B82A7c8B8B5), [implementation](https://sepolia.arbiscan.io/address/0x87e863b94d2CB79A8aB53bD87Dc4A10E11C0918B)
- [DisputeResolver](https://sepolia.arbiscan.io/address/0x524C5541f440204E0B4577334c439277018F971f)
- [DisputeResolverRuler](https://sepolia.arbiscan.io/address/0x199893232ECC74cC7898B24b5Ff58d613029f6B7)
- [DisputeKitGated: proxy](https://sepolia.arbiscan.io/address/0x677dA30B4b27D129354DdA1e219Bcc86802132d1), [implementation](https://sepolia.arbiscan.io/address/0x4D5Eb5D5b6c270Be8050Cfe93f85324AFb914258)
- [DisputeKitGatedShutter: proxy](https://sepolia.arbiscan.io/address/0xd86b84eb36Cd48f3f384b4490F255b494385F429), [implementation](https://sepolia.arbiscan.io/address/0xC344C28493C51023E5504B6c7f1E86C0fB43C645)
- [DisputeKitShutter: proxy](https://sepolia.arbiscan.io/address/0xfE0a958bc744Bb9E224E1822625B53134ac5CB69), [implementation](https://sepolia.arbiscan.io/address/0x036d321AfD9Ca457Be9E523736bc9FbB79FA7efc)
- [DisputeResolver](https://sepolia.arbiscan.io/address/0x71f8537e925C753Fe88DA7e69Ae423f9f3a9A292)
- [DisputeResolverRuler](https://sepolia.arbiscan.io/address/0xAEB1bbaE58125BA5F32349c69e4274d15dfD6EC3)
- [DisputeResolverUniversity](https://sepolia.arbiscan.io/address/0x2Aa1a94307E772BeE42E9EfbD137b1053F1fCfd4)
- [DisputeTemplateRegistry: proxy](https://sepolia.arbiscan.io/address/0x45f0662ec4aA4164b187c1bd39D35D0E3168787a), [implementation](https://sepolia.arbiscan.io/address/0x0406ea6E28fAb9A23BF0d6f0f23f4352383A8592)
- [EvidenceModule: proxy](https://sepolia.arbiscan.io/address/0x990f44d19a5F46889801B31bf58e0536fBECf27C), [implementation](https://sepolia.arbiscan.io/address/0xf9f41910696DadF83a7B0b3e856a175D6aEEC8e8)
- [KlerosCore: proxy](https://sepolia.arbiscan.io/address/0x4838e31E0ea315232c431598110FE677cAF2D6E6), [implementation](https://sepolia.arbiscan.io/address/0xEff34d5b37F0bb4d32C563E21C9C56E971f420Bd)
- [KlerosCoreRuler: proxy](https://sepolia.arbiscan.io/address/0x7ffcd32A0521645E6fCFd071A68F0e26957775a5), [implementation](https://sepolia.arbiscan.io/address/0x97e30A3A940856A3913437912C746f1aF6ccC76c)
- [KlerosCoreSnapshotProxy](https://sepolia.arbiscan.io/address/0xa2425b724B32D40cbB85ea6e181cfb023CE9c014)
- [DisputeTemplateRegistry: proxy](https://sepolia.arbiscan.io/address/0xc852F94f90E3B06Da6eCfB61d76561ECfb94613f), [implementation](https://sepolia.arbiscan.io/address/0xBc9B5643C9B1C478DAe1b950e886CC50D8d868b1)
- [EvidenceModule: proxy](https://sepolia.arbiscan.io/address/0xA1F72e0445fc395A393247F5B8c958Ec9b7C0B49), [implementation](https://sepolia.arbiscan.io/address/0x450Aa35da0ad8B282C5d910254055651417C2200)
- [KlerosCore: proxy](https://sepolia.arbiscan.io/address/0x1Bd44c4a4511DbFa7DC1d5BC201635596E7200f9), [implementation](https://sepolia.arbiscan.io/address/0x0d91F523fA287A74698A0e6Cd6A2436E91b9BEB9)
- [KlerosCoreRuler: proxy](https://sepolia.arbiscan.io/address/0x0630e4248a17b506809009F5D88E2f5bEE584c83), [implementation](https://sepolia.arbiscan.io/address/0xb8bF3A32730cEc3B0a8516b87246ceE24ca2eaCF)
- [KlerosCoreSnapshotProxy](https://sepolia.arbiscan.io/address/0xF924ac62b20901914c101Fa089Da1FB6A0585138)
- [KlerosCoreUniversity: proxy](https://sepolia.arbiscan.io/address/0x5AB37F38778Bc175852fA353056591D91c744ce6), [implementation](https://sepolia.arbiscan.io/address/0xF74DaBfC5F5dbdBD07636637204d9C35326D2906)
- [KlerosV2NeoEarlyUser](https://sepolia.arbiscan.io/address/0x0d60Ff8bbCF49Bc5352328E7E28e141834d7750F)
- [PinakionV2](https://sepolia.arbiscan.io/address/0x34B944D42cAcfC8266955D07A80181D2054aa225)
- [PNKFaucet](https://sepolia.arbiscan.io/address/0x7EFE468003Ad6A858b5350CDE0A67bBED58739dD)
- [PolicyRegistry: proxy](https://sepolia.arbiscan.io/address/0x31d067405184d7FaA64b0834511cBcFAF32CdC4b), [implementation](https://sepolia.arbiscan.io/address/0x09ba3234B3aD786aE46EcDAF388C93D54c145DC0)
- [SortitionModule: proxy](https://sepolia.arbiscan.io/address/0xb34651b65A40553C444c6F0D27286C80ec34fbfD), [implementation](https://sepolia.arbiscan.io/address/0xB37919A50d3BddA9982e3c84aA47e501c454364B)
- [PolicyRegistry: proxy](https://sepolia.arbiscan.io/address/0xd8681dBF525ecBda2F799BFddB96840065075e8A), [implementation](https://sepolia.arbiscan.io/address/0x472846F88D1356bb483a88f97B55026654Fc5deD)
- [SortitionModule: proxy](https://sepolia.arbiscan.io/address/0x6F24A90fBBeabB2B4343Bb9c1eD8ee6AcAa50663), [implementation](https://sepolia.arbiscan.io/address/0x8a26445989c944C58503275ad87Ab4d7b17d4F1e)
- [SortitionModuleUniversity: proxy](https://sepolia.arbiscan.io/address/0x4B2c2d048921f694cCE3AEa35698c6B1f5fcbb79), [implementation](https://sepolia.arbiscan.io/address/0x5CAD621D69E0535422aCFaCC0017bC32beC7A486)
- [TransactionBatcher](https://sepolia.arbiscan.io/address/0x35f93986950804ac1F93519BF68C2a7Dd776db0E)
- [WETH](https://sepolia.arbiscan.io/address/0x3829A2486d53ee984a0ca2D76552715726b77138)
Expand Down Expand Up @@ -194,7 +197,7 @@ yarn deploy --network localhost --tags <Arbitration|VeaMock|ForeignGatewayOnEthe
```bash
# ArbitrumSepolia to Chiado
yarn deploy --network arbitrumSepolia --tags Arbitration
yarn deploy --network arbitrumSepolia --tags HomeArbitrable
yarn deploy --network arbitrumSepolia --tags Resolver
yarn deploy --network chiado --tags ForeignGatewayOnGnosis
yarn deploy --network chiado --tags KlerosLiquidOnGnosis
yarn deploy --network chiado --tags ForeignArbitrable
Expand Down Expand Up @@ -256,26 +259,11 @@ do
done
```

#### 2/ Import the data to V2 - Local Network

Shell 1:

```bash
yarn hardhat node --tags Arbitration
```

Shell 2:

```bash
yarn hardhat run scripts/populateCourts.ts --network localhost
yarn hardhat run scripts/populatePolicyRegistry.ts --network localhost
```

#### 3/ Import the data to V2 - Public Testnet
#### 2/ Import the data to V2 - Public Testnet

```bash
yarn hardhat run scripts/populateCourts.ts --network arbitrumSepolia
yarn hardhat run scripts/populatePolicyRegistry.ts --network arbitrumSepolia
yarn hardhat populate:courts --from v2_testnet --max-number-of-courts 3 --network arbitrumSepolia
yarn hardhat populate:policy-registry --from v2_testnet --network arbitrumSepolia
```

### Generate deployment artifacts for existing contracts
Expand Down
23 changes: 4 additions & 19 deletions contracts/README.md.template
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ yarn deploy --network localhost --tags <Arbitration|VeaMock|ForeignGatewayOnEthe
```bash
# ArbitrumSepolia to Chiado
yarn deploy --network arbitrumSepolia --tags Arbitration
yarn deploy --network arbitrumSepolia --tags HomeArbitrable
yarn deploy --network arbitrumSepolia --tags Resolver
yarn deploy --network chiado --tags ForeignGatewayOnGnosis
yarn deploy --network chiado --tags KlerosLiquidOnGnosis
yarn deploy --network chiado --tags ForeignArbitrable
Expand Down Expand Up @@ -151,26 +151,11 @@ do
done
```

#### 2/ Import the data to V2 - Local Network

Shell 1:

```bash
yarn hardhat node --tags Arbitration
```

Shell 2:

```bash
yarn hardhat run scripts/populateCourts.ts --network localhost
yarn hardhat run scripts/populatePolicyRegistry.ts --network localhost
```

#### 3/ Import the data to V2 - Public Testnet
#### 2/ Import the data to V2 - Public Testnet

```bash
yarn hardhat run scripts/populateCourts.ts --network arbitrumSepolia
yarn hardhat run scripts/populatePolicyRegistry.ts --network arbitrumSepolia
yarn hardhat populate:courts --from v2_testnet --max-number-of-courts 3 --network arbitrumSepolia
yarn hardhat populate:policy-registry --from v2_testnet --network arbitrumSepolia
```

### Generate deployment artifacts for existing contracts
Expand Down
34 changes: 33 additions & 1 deletion contracts/deploy/00-home-chain-arbitration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { DeployFunction } from "hardhat-deploy/types";
import { getContractAddress } from "./utils/getContractAddress";
import { deployUpgradable } from "./utils/deployUpgradable";
import { changeCurrencyRate } from "./utils/klerosCoreHelper";
import { HomeChains, isSkipped, isDevnet, PNK, ETH } from "./utils";
import { HomeChains, isSkipped, isDevnet, PNK, ETH, Courts } from "./utils";
import { getContractOrDeploy, getContractOrDeployUpgradable } from "./utils/getContractOrDeploy";
import { deployERC20AndFaucet } from "./utils/deployTokens";
import { ChainlinkRNG, DisputeKitClassic, KlerosCore } from "../typechain-types";
Expand All @@ -29,6 +29,12 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)

await getContractOrDeployUpgradable(hre, "EvidenceModule", { from: deployer, args: [deployer], log: true });

await deployUpgradable(deployments, "DisputeTemplateRegistry", {
from: deployer,
args: [deployer],
log: true,
});

const disputeKit = await deployUpgradable(deployments, "DisputeKitClassic", {
from: deployer,
args: [deployer, ZeroAddress],
Expand Down Expand Up @@ -96,6 +102,32 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
console.error("failed to change currency rates:", e);
}

// Extra dispute kits
const disputeKitShutter = await deployUpgradable(deployments, "DisputeKitShutter", {
from: deployer,
args: [deployer, core.target],
log: true,
});
await core.addNewDisputeKit(disputeKitShutter.address);
await core.enableDisputeKits(Courts.GENERAL, [2], true); // enable disputeKitShutter on the General Court

const disputeKitGated = await deployUpgradable(deployments, "DisputeKitGated", {
from: deployer,
args: [deployer, core.target],
log: true,
});
await core.addNewDisputeKit(disputeKitGated.address);
await core.enableDisputeKits(Courts.GENERAL, [3], true); // enable disputeKitGated on the General Court

const disputeKitGatedShutter = await deployUpgradable(deployments, "DisputeKitGatedShutter", {
from: deployer,
args: [deployer, core.target],
log: true,
});
await core.addNewDisputeKit(disputeKitGatedShutter.address);
await core.enableDisputeKits(Courts.GENERAL, [4], true); // enable disputeKitGatedShutter on the General Court

// Snapshot proxy
await deploy("KlerosCoreSnapshotProxy", {
from: deployer,
args: [deployer, core.target],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,7 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
console.log("deploying to %s with deployer %s", HomeChains[chainId], deployer);

const klerosCore = await deployments.get("KlerosCore");
const extraData =
"0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003"; // General court, 3 jurors
const weth = await deployments.get("WETH");

const disputeTemplateRegistry = await deployUpgradable(deployments, "DisputeTemplateRegistry", {
from: deployer,
args: [deployer],
log: true,
});

// await deploy("ArbitrableExample", {
// from: deployer,
// args: [
// klerosCore.address,
// disputeTemplate,
// "disputeTemplateMapping: TODO",
// extraData,
// disputeTemplateRegistry.address,
// weth.address,
// ],
// log: true,
// });
const disputeTemplateRegistry = await deployments.get("DisputeTemplateRegistry");

await deploy("DisputeResolver", {
from: deployer,
Expand All @@ -43,7 +22,7 @@ const deployArbitration: DeployFunction = async (hre: HardhatRuntimeEnvironment)
});
};

deployArbitration.tags = ["HomeArbitrable"];
deployArbitration.tags = ["Resolver"];
deployArbitration.dependencies = ["Arbitration"];
deployArbitration.skip = async ({ network }) => {
return isSkipped(network, !HomeChains[network.config.chainId ?? 0]);
Expand Down
27 changes: 22 additions & 5 deletions contracts/deploy/upgrade-all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,22 @@ const deployUpgradeAll: DeployFunction = async (hre: HardhatRuntimeEnvironment)
const chainId = Number(await getChainId());
console.log("upgrading on %s with deployer %s", HomeChains[chainId], deployer);

const { disputeKitClassic, disputeTemplateRegistry, evidence, core, policyRegistry, sortition } =
await getContractNamesFromNetwork(hre);
const {
disputeKitClassic,
disputeKitShutter,
disputeKitGated,
disputeKitGatedShutter,
disputeTemplateRegistry,
evidence,
core,
policyRegistry,
sortition,
} = await getContractNamesFromNetwork(hre);

console.log("disputeKitClassic", disputeKitClassic);
console.log("disputeKitShutter", disputeKitShutter);
console.log("disputeKitGated", disputeKitGated);
console.log("disputeKitGatedShutter", disputeKitGatedShutter);

const upgrade = async (contractName: string, initializer: string, args: any[]) => {
try {
Expand Down Expand Up @@ -78,12 +92,15 @@ const deployUpgradeAll: DeployFunction = async (hre: HardhatRuntimeEnvironment)
}
};

await upgrade(disputeKitClassic, "initialize6", []);
await upgrade(disputeKitClassic, "initialize7", []);
await upgrade(disputeKitShutter, "initialize8", []);
await upgrade(disputeKitGated, "initialize7", []);
await upgrade(disputeKitGatedShutter, "initialize7", []);
await upgrade(disputeTemplateRegistry, "initialize2", []);
await upgrade(evidence, "initialize2", []);
await upgrade(core, "initialize4", []);
await upgrade(core, "initialize5", []);
await upgrade(policyRegistry, "initialize2", []);
await upgrade(sortition, "initialize3", []);
await upgrade(sortition, "initialize4", []);
};

deployUpgradeAll.tags = ["UpgradeAll"];
Expand Down
Loading
Loading