Skip to content
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

☀️ Graph Horizon and Subgraph Service ☀️ #944

Open
wants to merge 459 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
459 commits
Select commit Hold shift + click to select a range
d8bce8c
fix: encode _rav.metadata as keccak256 hash (OZ H-08)
Maikol Aug 27, 2024
58ba769
fix: remove unused import (OZ L-06)
Maikol Aug 27, 2024
ddbc4d2
fix: remove if conditions (OZ H-02)
Maikol Aug 28, 2024
63d2ba4
Subgraph Service - Unit tests (#1022)
Maikol Sep 9, 2024
4387c6c
test: wip refactor unit tests for staking fns (#1021)
tmigone Sep 9, 2024
282ea51
fix: add security contact to DisputeManager.sol
MoonBoi9001 Sep 17, 2024
491041b
fix: add security contact to GraphPayments.sol
MoonBoi9001 Sep 17, 2024
86fd039
fix: add security contact to HorizonStaking.sol
MoonBoi9001 Sep 17, 2024
5ea1fe9
fix: add security contact to HorizonStakingExtension.sol
MoonBoi9001 Sep 17, 2024
c269117
fix: add security contact to PaymentsEscrow.sol
MoonBoi9001 Sep 17, 2024
61a1544
fix: add security contact to SubgraphService.sol + add NatSpec before…
MoonBoi9001 Sep 17, 2024
d52be6d
fix: add security contact to TAPCollector.sol
MoonBoi9001 Sep 17, 2024
a58f807
fix: change EIP712_ALLOCATION_PROOF_TYPEHASH from variable to constan…
MoonBoi9001 Sep 18, 2024
516a4e3
fix: add override keyword in functions
MoonBoi9001 Sep 18, 2024
9dfb8b0
fix: remove unused return value. (OZ N-10)
MoonBoi9001 Sep 18, 2024
bd62e95
fix: remove unused return values from the Allocation library. (OZ N-10)
MoonBoi9001 Sep 18, 2024
ffe9b89
fix: address magic number use. (OZ N-11)
MoonBoi9001 Sep 18, 2024
374f57d
fix: typographical errors throughout codebase. (OZ N-07)
MoonBoi9001 Sep 19, 2024
79f7828
fix: reorder parameter use in mulPPM function call in mulPPMRoundUp. …
MoonBoi9001 Sep 19, 2024
54286e3
Merge pull request #1040 from graphprotocol/fix_oz_n-10
MoonBoi9001 Sep 19, 2024
0438f62
Merge pull request #1037 from graphprotocol/fix_oz_n-07
MoonBoi9001 Sep 19, 2024
613d7f3
Merge pull request #1043 from graphprotocol/fix_oz_n-12
MoonBoi9001 Sep 19, 2024
4354737
fix: only add to delegation pool if shares is greater than 0 (#1031)
Maikol Sep 19, 2024
fe380e4
fix(SubgraphService): use correct payment type for collect indexing r…
Maikol Sep 19, 2024
95b3f83
fix(Horizon): only allow addToDelegationPool if provision exists and …
Maikol Sep 19, 2024
f2a5498
Merge pull request #1039 from graphprotocol/fix_oz_n-09
MoonBoi9001 Sep 20, 2024
ff7a0ed
Merge pull request #1035 from graphprotocol/fix_oz_n-06
MoonBoi9001 Sep 20, 2024
76e4940
fix: update constant names. (OZ N-11)
MoonBoi9001 Sep 20, 2024
3bdaec6
chore: add stakeToFeesRatio to SubgraphService initialize (#1027)
Maikol Sep 20, 2024
51dd7a8
chore(SubgraphService): add Multicall to SubgraphService (#1030)
Maikol Sep 20, 2024
08539af
fix(SubgraphService): allow collecting rewards when delegation fee cu…
Maikol Sep 20, 2024
3e57ba3
chore(SubgraphService): add current epoch to IndexingRewardsCollected…
Maikol Sep 20, 2024
8912125
Update packages/horizon/contracts/data-service/utilities/ProvisionMan…
MoonBoi9001 Sep 20, 2024
cf2109f
fix: remove unused errors, use LegacyAllocationAlreadyMigrated to pre…
MoonBoi9001 Sep 24, 2024
4ad1ccd
fix: releaseStake n parameter changed to numClaimsToRelease.
MoonBoi9001 Sep 20, 2024
d90b971
fix: function _setPartialPaused(bool _toPause) chnaged to function _s…
MoonBoi9001 Sep 20, 2024
9d819ef
fix: lastPausePartialTime now lastPartialPauseTime..
MoonBoi9001 Sep 20, 2024
2d69d2a
fix: acceptProvision updated to acceptProvisionPendingParameters
MoonBoi9001 Sep 20, 2024
a4ba0ab
fix: rename staged to pending.
MoonBoi9001 Sep 20, 2024
76bedb3
fix: rename maxVerifierCut to newMaxVerifierCut and thawingPeriod to …
MoonBoi9001 Sep 20, 2024
faafe82
fix: onlyProvisionAuthorized now onlyAuthorizedForProvision.
MoonBoi9001 Sep 20, 2024
e73cb44
fix: ProvisionAccepted now ProvisionPendingParametersAccepted.
MoonBoi9001 Sep 20, 2024
69e1971
fix: releaseAt updated to releasableAt
MoonBoi9001 Sep 20, 2024
78821ab
fix: "Resolve the conflicting dispute" updated to "Draw the conflicti…
MoonBoi9001 Sep 20, 2024
99d9bba
fix: MAX_THAWING_PERIOD rename to MAX_WAIT_PERIOD in PaymentsEscrow a…
MoonBoi9001 Sep 20, 2024
9503f1d
fix: challenger and submitter updated to fisherman.
MoonBoi9001 Sep 20, 2024
2729a37
fix: use new constants in subgraphservice.sol
MoonBoi9001 Sep 30, 2024
f8e39df
Merge branch 'horizon' into fix_oz_n-11
MoonBoi9001 Sep 30, 2024
aa27c54
fix: emit amount authorized + rescuded token in AuthorizedCollector/T…
MoonBoi9001 Sep 30, 2024
8ce493f
fix: direct bugs to new security contact email address.
MoonBoi9001 Oct 1, 2024
b721f72
fix: set _verifyAllocationProof visability private.
MoonBoi9001 Oct 1, 2024
fbc6654
fix: set _getDelegatedTokensAvailable visability private.
MoonBoi9001 Oct 1, 2024
decde7f
fix: set _receiveIndexerStake _receiveDelegation visability private.
MoonBoi9001 Oct 1, 2024
b5d3a7d
fix: set _deposit visability private.
MoonBoi9001 Oct 1, 2024
32b3965
fix: set drawDispute visability external.
MoonBoi9001 Oct 1, 2024
157216a
Merge pull request #1028 from graphprotocol/fix_oz_n-03
MoonBoi9001 Oct 1, 2024
96b5c3c
fix: emit both amount authorized and total authorized
MoonBoi9001 Sep 30, 2024
a598eca
fix: set all ProvisionManager constants internal.
MoonBoi9001 Oct 1, 2024
de6c822
fix: remove ProvisionManager inheritance.
MoonBoi9001 Oct 1, 2024
ffd1f79
fix: remove whitespace.
MoonBoi9001 Oct 1, 2024
3a51379
Merge pull request #1041 from graphprotocol/fix_oz_n-11
MoonBoi9001 Oct 1, 2024
f86b12a
feat(horizon): deploy horizon with Hardhat Ignition (#1025)
tmigone Oct 1, 2024
2f3a5e0
chore(Horizon): reprovision only tokens thawed (#1046)
Maikol Oct 1, 2024
fe9d605
chore(SubgraphService): allow force closing over allocated allocation…
Maikol Oct 1, 2024
41f85c8
Merge pull request #1051 from graphprotocol/fix_oz_n-16
MoonBoi9001 Oct 2, 2024
e33bf12
fix: revert DisputeManager.sol to previous state
MoonBoi9001 Oct 2, 2024
2b79a69
fix(Horizon): graph directory test (#1054)
Maikol Oct 2, 2024
31d57b2
Merge pull request #1047 from graphprotocol/fix_oz_n-13
MoonBoi9001 Oct 2, 2024
dcbcf7e
fix: fix broken test
MoonBoi9001 Oct 2, 2024
d459928
Update packages/horizon/contracts/data-service/interfaces/IDataServic…
MoonBoi9001 Oct 2, 2024
8be58f9
Merge pull request #1049 from graphprotocol/fix_oz_n-14
MoonBoi9001 Oct 2, 2024
570b21e
chore(Horizon): add a beneficiary address to undelegate (#1052)
Maikol Oct 2, 2024
4e41890
feat: remove transfer tools from horizon (#1053)
tmigone Oct 3, 2024
2284a3d
fix(Horizon): add input validation for set provision parameters (#1055)
Maikol Oct 3, 2024
f88f335
feat: add rav collected event (#1056)
tmigone Oct 4, 2024
e40c8fe
fix(Horizon): withdraw delegation with beneficiary test fix (#1057)
Maikol Oct 7, 2024
8b3a86b
fix: apply consistent mapping order HorizonStakingNotAuthorized (OZ_N…
MoonBoi9001 Oct 3, 2024
fa9da60
fix: apply consistent mapping order ProvisionManagerNotAuthorized (OZ…
MoonBoi9001 Oct 4, 2024
b75154c
fix: apply consistent mapping order isAuthorized (OZ_N-05)
MoonBoi9001 Oct 4, 2024
cc14383
fix: apply consistent mapping order _isAuthorized (OZ_N-05)
MoonBoi9001 Oct 4, 2024
6af9e66
fix: apply consistent mapping order isAuthorized (OZ_N-05)
MoonBoi9001 Oct 4, 2024
ac965cd
fix: apply consistent mapping order _operatorAuth (OZ_N-05)
MoonBoi9001 Oct 3, 2024
68157c0
fix: swap peram order _getStorage_OperatorAuth
MoonBoi9001 Oct 4, 2024
1693d76
fix: set new peram order various functions (OZ_N-05)
MoonBoi9001 Oct 7, 2024
0f1522d
Update packages/horizon/contracts/data-service/utilities/ProvisionMan…
MoonBoi9001 Oct 7, 2024
a76a0d6
feat: separate escrow accounts for each collector (#1058)
tmigone Oct 8, 2024
f0294b0
Merge pull request #1034 from graphprotocol/fix_oz_n-05
MoonBoi9001 Oct 9, 2024
7035403
fix: tweaks to thawing pool management (#1048)
tmigone Oct 9, 2024
0f5ba68
chore(Horizon): add redelegate option (#1059)
Maikol Oct 9, 2024
36b81e3
fix: delegation withdraw test and typo in subgraph test name
Maikol Oct 10, 2024
516ac3c
chore: added unit tests for PPMMath
Maikol Oct 10, 2024
971a5c5
chore: added unit tests for TAPCollector
Maikol Oct 10, 2024
504fff1
chore(Horizon): add signers to TAPCollector (#1060)
Maikol Oct 11, 2024
0c0d090
fix: lint errors
Maikol Oct 11, 2024
5876cd5
fix: added missing parameters to deploy script and reduced runs to 50…
Maikol Oct 17, 2024
a256d74
fix: change foundry to use 50 runs for optimization
Maikol Oct 17, 2024
ba40a74
chore: bump ignition version to 0.15.7
tmigone Nov 14, 2024
4f0a479
chore: bump ignition in subgraph service package
tmigone Nov 14, 2024
9ae3410
chore: use hardhat-secure-accounts for non local chains
tmigone Nov 15, 2024
13ea6ca
feat: add gre/sdk with support for horizon
tmigone Nov 20, 2024
4111600
feat(gre): working version for horizon with legacy contracts
tmigone Nov 21, 2024
42b43b6
feat: gre now loads all horizon contracts
tmigone Nov 22, 2024
a99e216
fix: couple fixes and tweaks
tmigone Nov 22, 2024
6f67600
chore: bump hardhat ignition to 0.15.8
tmigone Nov 22, 2024
b234104
chore: remove deploy files
tmigone Nov 22, 2024
a475c4a
chore: move files and fix test
tmigone Nov 22, 2024
cdf3fb4
feat: add subgraph service to gre
tmigone Nov 22, 2024
4fa4f57
chore: hardcode ignition config
tmigone Nov 25, 2024
e5dc797
fix: update all ignition packages
tmigone Nov 26, 2024
1ce1a17
ci: fix circular dependency in build stage
tmigone Nov 26, 2024
5026fbb
fix: build scripts
tmigone Nov 26, 2024
8f3e0f1
fix: build steps
tmigone Nov 26, 2024
c8efe89
fix: prevent payers from being able to bypass escrow mechanism (TRST-…
tmigone Nov 26, 2024
ce749be
fix: separate delegation and provision thaw request lists (TRST-H02)
Maikol Nov 28, 2024
9dc58d0
fix: disallow signers to be authorized for different payers (TRST-M10)
tmigone Nov 27, 2024
65f4d68
fix: remove collector allowance feature from payments escrow (TRST-CL1)
tmigone Nov 27, 2024
86b998b
fix: make getBalance return 0 if balance is less than thawing amount …
tmigone Nov 27, 2024
a9bf99c
fix: allow partially collecting RAVs (TRST-M05)
tmigone Nov 27, 2024
670fba7
fix: subgraph service test broke after rebase
tmigone Nov 28, 2024
7efedcc
fix: overallocated condition no longer allows force closing (TRST-H05)
tmigone Nov 28, 2024
9a9f53b
fix: use staking contract to check for allo collision (TRST-M06)
tmigone Nov 29, 2024
d02f410
fix: separate delegation and delegationWithBeneficiary thaw requests …
Maikol Nov 29, 2024
167055a
fix: round down tokens thawing when slashing (TRST-H04)
Maikol Dec 2, 2024
4d75947
fix: dispute manager refactor (TRST-M07 / TRST-M08)
tmigone Nov 29, 2024
def8026
fix: ignore thawing tokens on provision token check (TRST-L13)
tmigone Dec 3, 2024
2e10813
fix: clarify data service initialization modes (TRST-L01)
tmigone Dec 3, 2024
2bf4456
fix: verify state transition for tap collector thawing signers (TRST-…
tmigone Dec 3, 2024
abe3321
fix: add legacy slasher for transition period (TRST-H06)
Maikol Dec 3, 2024
63ee9ed
fix: verify state transition for pause guardian (TRST-R03)
tmigone Dec 3, 2024
194b603
fix: add storage gap to upgradeable contract (TRST-R04)
tmigone Dec 4, 2024
29ed2e6
fix: allow setting pause guardian when paused (TRST-R05)
tmigone Dec 4, 2024
c8ede7a
fix: clarify initialization needs for data service extensions (TRST-R06)
tmigone Dec 4, 2024
f254897
fix: add missing legacy withdraw delegated (TRST-H07)
Maikol Dec 4, 2024
91cda56
fix: added minimum delegation for provisions (TRST-M03)
Maikol Dec 4, 2024
07ef418
fix: operator check in closeAllocation (TRST-M12)
Maikol Dec 4, 2024
26e4dc7
fix: getThawedTokens calculation (TRST-L03)
Maikol Dec 4, 2024
c9f8a2f
fix: documentation on unstake (TRST-M11)
Maikol Dec 4, 2024
9271b99
fix: remove unused value from event (TRST-R01)
Maikol Dec 4, 2024
151e63a
fix: round thawing shares up (TRST-R07)
Maikol Dec 5, 2024
4d62209
fix: remove redundant non-zero check (TRST-R09)
Maikol Dec 5, 2024
6e5a295
fix: check shares are not zero when creating a thaw request (TRST-R14)
Maikol Dec 5, 2024
d9c6190
fix: move legacyWithdrawDelegated to withdrawDelegated (TRST-H07)
Maikol Dec 6, 2024
161f8a2
fix: added comment for stack too deep solution
Maikol Dec 6, 2024
43bc72b
fix: added comment to explain minimum delegation (TRST-M03)
Maikol Dec 6, 2024
c59c186
fix: new event for minimum delegation not met (TRST-M03)
Maikol Dec 6, 2024
d1c5cc7
fix: add a new mapping instead of splitting thaw requests (TRST-H02)
Maikol Dec 6, 2024
0a31b58
fix: ensure subgraph service is set before using it (TRST-R10)
tmigone Dec 9, 2024
85de5bd
fix: documentation error (TRST-R09)
tmigone Dec 9, 2024
6ec9710
docs: add missing return value documentation (TRST-R)
tmigone Dec 9, 2024
6e00d17
docs: fix documentation errors (TRST-R09)
tmigone Dec 9, 2024
a065804
fix: refactor payments cut distribution (TRST-L12)
tmigone Dec 10, 2024
25d22e4
fix: added new function for accept dispute in conflict that includes …
Maikol Dec 13, 2024
dc79bd4
fix: add payer to EIP712 rav type hash (TRST-M15)
Maikol Dec 13, 2024
4ba215c
fix: accept dispute documentation
Maikol Dec 16, 2024
d6d376c
fix: legacy slashing underflow (TRST-H08)
Maikol Dec 12, 2024
7d90ad2
fix: underflow in getIdleStake (TRST-L14)
Maikol Dec 12, 2024
57aea44
fix: added thaw request type to thaw request fulfilled event (TRST-R15)
Maikol Dec 12, 2024
bbd23f5
fix: add minimum tokens amount for undelegate with beneficiary (TRST-…
Maikol Dec 13, 2024
399b7a9
fix: natspec for new undelegate error
Maikol Dec 13, 2024
032e4a4
Merge pull request #1073 from graphprotocol/mde/trust-staking-fixes
tmigone Dec 17, 2024
0542ab7
Merge branch 'horizon' into tmigone/trust-fixes-payments
tmigone Dec 17, 2024
1109537
Merge pull request #1072 from graphprotocol/tmigone/trust-fixes-payments
tmigone Dec 17, 2024
4a25bab
Merge branch 'horizon' into tmigone/trust-fixes-data-service
tmigone Dec 17, 2024
8e1144c
Merge pull request #1076 from graphprotocol/tmigone/trust-fixes-data-…
tmigone Dec 17, 2024
ac8a071
Merge branch 'horizon' into tmigone/trust-fixes-subgraph-service
tmigone Dec 17, 2024
2fbe0e1
Merge pull request #1074 from graphprotocol/tmigone/trust-fixes-subgr…
tmigone Dec 17, 2024
8aa05c4
Merge branch 'horizon' into tmigone/trust-fixes-dispute-manager
tmigone Dec 17, 2024
a228e0e
Merge pull request #1075 from graphprotocol/tmigone/trust-fixes-dispu…
tmigone Dec 17, 2024
2b03618
Merge branch 'horizon' into mde/horizon-and-subgrah-service-deploy-fix
tmigone Dec 17, 2024
0f2100d
Merge pull request #1062 from graphprotocol/mde/horizon-and-subgrah-s…
tmigone Dec 17, 2024
b1c1f8e
Merge branch 'horizon' into tmigone/update-hsa
tmigone Dec 17, 2024
27afeb8
Merge pull request #1070 from graphprotocol/tmigone/update-hsa
tmigone Dec 17, 2024
cd24658
Merge branch 'horizon' into tmigone/ignition-v0.15.7
tmigone Dec 17, 2024
170572f
Merge pull request #1069 from graphprotocol/tmigone/ignition-v0.15.7
tmigone Dec 17, 2024
58c518c
Merge branch 'horizon' into horizon-gre
tmigone Dec 17, 2024
468ed2c
Merge pull request #1071 from graphprotocol/horizon-gre
tmigone Dec 17, 2024
1038cf4
fix: use min delegation for SubgraphService tests (#1080)
Maikol Dec 17, 2024
a800d09
fix: cleanup IPaymentCollector + TAPCollector docs
matiasedgeandnode Jan 8, 2025
e1d173d
chore: added script to migrate protocol contracts to Horizon
Maikol Jan 9, 2025
1d097de
Merge pull request #1083 from graphprotocol/ma/horizon-ipayment-colle…
matiasedgeandnode Jan 13, 2025
51d0f7f
fix: add whenNotPaused to closeStaleAllocation (#1081)
Maikol Jan 15, 2025
ca2ef4f
chore: add over delegated test for SubgraphService (#1082)
Maikol Jan 15, 2025
9556549
fix: cleanup IPaymentCollector + TAPCollector docs
matiasedgeandnode Jan 8, 2025
4266a81
chore: update ignition to v0.15.9
tmigone Jan 14, 2025
c615fb0
chore: temp dirty fix for contract size
tmigone Jan 14, 2025
297b08d
feat: add script to patch ignition verification command
tmigone Jan 16, 2025
c21e43f
fix: merge fixes
tmigone Jan 22, 2025
6494bf8
chore: revert contract comments to reduce size
tmigone Jan 22, 2025
bfb85ca
chore: refactor ignition deployment modules
tmigone Jan 23, 2025
406c1fd
fix: merge HorizonStaking and HorizonStakingExtension abis
Maikol Jan 23, 2025
65b6d26
feat: add migrate ignition modules
tmigone Jan 24, 2025
3260bd2
fix: remove rpc
tmigone Jan 24, 2025
5e16b7e
feat: add more improvements to ignition deployment system
tmigone Jan 24, 2025
ea7fb75
Merge pull request #1091 from graphprotocol/mde/merge-horizon-staking…
tmigone Jan 27, 2025
83a3ec6
Merge branch 'horizon' into mde/horizon-migrate-scripts
tmigone Jan 27, 2025
17692b7
Merge pull request #1084 from graphprotocol/mde/horizon-migrate-scripts
tmigone Jan 27, 2025
353902e
Merge branch 'horizon' into tmigone/ignition-v0.15.9
tmigone Jan 27, 2025
519c5d8
Merge pull request #1087 from graphprotocol/tmigone/ignition-v0.15.9
tmigone Jan 27, 2025
835519f
Merge branch 'horizon' into tmigone/ignition-refactor
tmigone Jan 27, 2025
c3c94ca
Merge pull request #1093 from graphprotocol/tmigone/ignition-refactor
tmigone Jan 27, 2025
e8e2e9f
feat: create a base hardhat config
tmigone Jan 27, 2025
e7b02ae
feat: ensure ignition deploy script handles contract ownership
tmigone Jan 27, 2025
07aa0a2
chore: move ownership calls for payments contract to their modules
tmigone Jan 28, 2025
ea21739
fix: transfer payments contracts ownership to governor in migrate script
tmigone Jan 28, 2025
4799228
Merge pull request #1094 from graphprotocol/tmigone/tooling-improvements
tmigone Jan 28, 2025
5711907
feat: breakout ignition migration script by runner
tmigone Jan 28, 2025
a12bb20
fix: ensure governor account is not loaded in any non-governor module
tmigone Jan 28, 2025
7db331d
chore: reduce contract sizes to fit 24kb HorizonStaking and SubgraphS…
Maikol Jan 28, 2025
8c29d86
fix: further decouple governor modules from deployer modules
tmigone Jan 28, 2025
768bc83
chore: add contract address to signer proof message
Maikol Jan 28, 2025
fbdb3f1
feat: create migration scripts for subgraph service
tmigone Jan 28, 2025
5e58c8e
chore: changes to horizon events
Maikol Jan 28, 2025
7e10b2e
fix: add Horizon prefix to stake events
Maikol Jan 29, 2025
e2ea28c
fix: Horizon migration script fixes (#1100)
Maikol Feb 6, 2025
c75a0a4
Merge pull request #1095 from graphprotocol/tmigone/horizon-deploymen…
tmigone Feb 6, 2025
ccfaedc
fix: make legacy allos internal, bump optimizer runs to 100
tmigone Feb 6, 2025
859debf
fix: set optimizer runs on foundry config
tmigone Feb 6, 2025
11a993b
Merge pull request #1096 from graphprotocol/mde/reduce-contract-sizes
tmigone Feb 6, 2025
a4cb2d4
Merge pull request #1099 from graphprotocol/mde/horizon-event-changes
tmigone Feb 6, 2025
dfc6c97
Merge pull request #1098 from graphprotocol/mde/add-contract-address-…
tmigone Feb 6, 2025
6d64b7e
fix: rework base config file
tmigone Feb 6, 2025
88498d1
test: fix test using previously public variable
tmigone Feb 6, 2025
2872fd3
chore: fix linting issues
tmigone Feb 7, 2025
83dae89
ci: build all required packages for subgraph service ci
tmigone Feb 7, 2025
6e8335d
Merge pull request #1101 from graphprotocol/tmigone/horizon-fix-ci
tmigone Feb 7, 2025
33557eb
Merge branch 'main' into horizon
tmigone Feb 7, 2025
8f922a1
chore: remove e2e scenarios tests from contracts package
tmigone Feb 7, 2025
09a6fa8
chore: add paymentId to TAPCollector tokens tracking
Maikol Jan 28, 2025
fe025c3
fix: rename to collectorId and use collectorId on subgraph service
Maikol Feb 7, 2025
2af2e68
chore: rename collectorId to collectionId
tmigone Feb 10, 2025
3dc3140
Merge pull request #1097 from graphprotocol/mde/add-unique-id-to-coll…
tmigone Feb 10, 2025
6d1afc0
feat: extract cancel thaw escrow to its own function
tmigone Dec 11, 2024
74645a2
feat: add collector address to the RAV
tmigone Dec 11, 2024
744bc85
test: improve coverage for GraphPayments
tmigone Dec 13, 2024
eaec959
chore: some minor improvements to GraphPayments and tests
tmigone Dec 13, 2024
9b79fdb
fix: couple minor improvments to PaymentsEscrow and some new tests
tmigone Dec 13, 2024
90978a9
chore: revert adding collector address to RAV
tmigone Feb 6, 2025
20396ba
chore: revert adding collector address to RAV in SubgraphService
tmigone Feb 6, 2025
51976ec
Merge pull request #1078 from graphprotocol/tmigone/post-trust-change…
tmigone Feb 10, 2025
01db6e5
feat: dont issue rewards to allos less than one epoch old
tmigone Feb 10, 2025
7cd08cb
chore: ensure contract size is below 24kB
tmigone Feb 10, 2025
f6923b9
test: fix rewards manager tests
tmigone Feb 10, 2025
d0060b1
Merge pull request #1103 from graphprotocol/tmigone/allo-min-duration
tmigone Feb 11, 2025
dd2e735
chore: rename TAPCollector to GraphTallyCollector
tmigone Feb 11, 2025
94d541a
chore: rename TAPCollector in hardhat-graph-protocol package
tmigone Feb 11, 2025
010277e
Merge pull request #1106 from graphprotocol/tmigone/graph-tally
tmigone Feb 11, 2025
57c5acc
fix: ignition modules to output correct name of contracts
tmigone Feb 11, 2025
25376af
chore: modify build script to allow building only horizon packages
tmigone Feb 12, 2025
e9b72a7
test: add test for delegation on a non existing provision
tmigone Feb 13, 2025
0e9f9d3
Merge pull request #1107 from graphprotocol/tmigone/gre-alias
tmigone Feb 13, 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
12 changes: 12 additions & 0 deletions packages/horizon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

Graph Horizon is the next evolution of the Graph Protocol.

## Configuration

The following environment variables might be required:

- `ETHERSCAN_API_KEY`: Etherscan API key

You can set them using Hardhat:

```bash
npx hardhat vars set ETHERSCAN_API_KEY
```

## Deployment

We use Hardhat Ignition to deploy the contracts. To build and deploy Graph Horizon run the following commands:
Expand Down
7 changes: 7 additions & 0 deletions packages/horizon/contracts/mocks/imports.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later

// We import these here to force Hardhat to compile them.
// This ensures that their artifacts are available for Hardhat Ignition to use.
pragma solidity 0.8.27;

import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
15 changes: 9 additions & 6 deletions packages/horizon/hardhat.config.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import { vars } from 'hardhat/config'
import type { HardhatUserConfig } from 'hardhat/config'

// Hardhat plugins
import '@nomicfoundation/hardhat-foundry'
import '@nomicfoundation/hardhat-toolbox'
import '@nomicfoundation/hardhat-ignition-ethers'
import '@tenderly/hardhat-tenderly'
import 'hardhat-storage-layout'
import 'hardhat-contract-sizer'
import 'hardhat-secure-accounts'
import * as dotenv from 'dotenv'

import type { HardhatUserConfig } from 'hardhat/config'

dotenv.config()
// Environment variables
const ETHERSCAN_API_KEY = vars.get('ETHERSCAN_API_KEY', '')
const ARBITRUM_VIRTUAL_TESTNET_URL = vars.get('ARBITRUM_VIRTUAL_TESTNET_URL', '')

const getNetworkAccounts = () => {
const accounts: string[] = []
Expand Down Expand Up @@ -57,7 +60,7 @@ const config: HardhatUserConfig = {
enabled: false,
},
chainId: 421615,
url: process.env.ARBITRUM_VIRTUAL_TESTNET_URL || '',
url: ARBITRUM_VIRTUAL_TESTNET_URL,
accounts: getNetworkAccounts(),
},
},
Expand All @@ -74,7 +77,7 @@ const config: HardhatUserConfig = {
},
etherscan: {
apiKey: {
arbitrumSepolia: process.env.ETHERSCAN_API_KEY ?? '',
arbitrumSepolia: ETHERSCAN_API_KEY,
},
customChains: [
{
Expand Down
4 changes: 2 additions & 2 deletions packages/horizon/ignition/configs/horizon.hardhat.json5
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
"EpochManager": {
"epochLength": 60
},
"Curation": {
"L2Curation": {
"curationTaxPercentage": 10000,
"minimumCurationDeposit": 1
},
"GraphToken": {
"L2GraphToken": {
"initialSupply": "10000000000000000000000000000n"
},
"HorizonStaking": {
Expand Down
6 changes: 3 additions & 3 deletions packages/horizon/ignition/modules/core/GraphPayments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import GraphPaymentsArtifact from '../../../build/contracts/contracts/payments/G

// TODO: transfer ownership of ProxyAdmin???
export default buildModule('GraphPayments', (m) => {
const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { GraphPaymentsProxyAdmin, GraphPaymentsProxy, HorizonRegistered } = m.useModule(HorizonProxiesModule)
const { Controller } = m.useModule(GraphPeripheryModule)
const { GraphPaymentsProxyAdmin, GraphPaymentsProxy } = m.useModule(HorizonProxiesModule)

const protocolPaymentCut = m.getParameter('protocolPaymentCut')

Expand All @@ -17,7 +17,7 @@ export default buildModule('GraphPayments', (m) => {
GraphPaymentsArtifact,
[Controller, protocolPaymentCut],
{
after: [PeripheryRegistered, HorizonRegistered],
after: [GraphPeripheryModule, HorizonProxiesModule],
},
)

Expand Down
28 changes: 8 additions & 20 deletions packages/horizon/ignition/modules/core/HorizonProxies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,26 @@ import { ethers } from 'ethers'
import GraphPeripheryModule from '../periphery'
import GraphProxyAdminModule from '../periphery/GraphProxyAdmin'

import DummyArtifact from '../../../build/contracts/contracts/mocks/Dummy.sol/Dummy.json'
import GraphProxyArtifact from '@graphprotocol/contracts/build/contracts/contracts/upgrades/GraphProxy.sol/GraphProxy.json'

const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'

// HorizonStaking, GraphPayments and PaymentsEscrow use GraphDirectory but they also in the directory.
// So we need to deploy their proxies, register them in the controller before being able to deploy the implementations
export default buildModule('HorizonProxies', (m) => {
const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { Controller } = m.useModule(GraphPeripheryModule)
const { GraphProxyAdmin } = m.useModule(GraphProxyAdminModule)

const isMigrate = m.getParameter('isMigrate', false)

// Deploy HorizonStaking proxy without an implementation
let HorizonStakingProxy, setProxyHorizonStaking
let HorizonStakingProxy
if (isMigrate) {
const horizonStakingProxyAddress = m.getParameter('horizonStakingProxyAddress')
HorizonStakingProxy = m.contractAt('GraphProxy', GraphProxyArtifact, horizonStakingProxyAddress, { id: 'GraphProxy_HorizonStaking' })
setProxyHorizonStaking = HorizonStakingProxy
} else {
HorizonStakingProxy = m.contract('GraphProxy', GraphProxyArtifact, [ZERO_ADDRESS, GraphProxyAdmin], { after: [PeripheryRegistered], id: 'GraphProxy_HorizonStaking' })
setProxyHorizonStaking = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('Staking')), HorizonStakingProxy], { id: 'setContractProxy_HorizonStaking' })
HorizonStakingProxy = m.contract('GraphProxy', GraphProxyArtifact, [ZERO_ADDRESS, GraphProxyAdmin], { id: 'GraphProxy_HorizonStaking' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('Staking')), HorizonStakingProxy], { id: 'setContractProxy_HorizonStaking' })
}

// Deploy proxies for payments contracts using OZ TransparentUpgradeableProxy
Expand All @@ -36,18 +34,8 @@ export default buildModule('HorizonProxies', (m) => {
// Register the proxies in the controller
// if isMigrate then use from: governor
const options = isMigrate ? { from: m.getAccount(1) } : {}
const setProxyGraphPayments = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphPayments')), GraphPaymentsProxy], { ...options, id: 'setContractProxy_GraphPayments' })
const setProxyPaymentsEscrow = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('PaymentsEscrow')), PaymentsEscrowProxy], { ...options, id: 'setContractProxy_PaymentsEscrow' })

// Deploy dummy contract to signal that all periphery contracts are registered
const HorizonRegistered = m.contract('Dummy', DummyArtifact, [], {
id: 'RegisteredDummy',
after: [
setProxyHorizonStaking,
setProxyGraphPayments,
setProxyPaymentsEscrow,
],
})

return { HorizonStakingProxy, GraphPaymentsProxy, PaymentsEscrowProxy, HorizonRegistered, GraphPaymentsProxyAdmin, PaymentsEscrowProxyAdmin }
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphPayments')), GraphPaymentsProxy], { ...options, id: 'setContractProxy_GraphPayments' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('PaymentsEscrow')), PaymentsEscrowProxy], { ...options, id: 'setContractProxy_PaymentsEscrow' })

return { HorizonStakingProxy, GraphPaymentsProxy, PaymentsEscrowProxy, GraphPaymentsProxyAdmin, PaymentsEscrowProxyAdmin }
})
6 changes: 3 additions & 3 deletions packages/horizon/ignition/modules/core/HorizonStaking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import HorizonStakingExtensionModule from './HorizonStakingExtension'
import HorizonStakingArtifact from '../../../build/contracts/contracts/staking/HorizonStaking.sol/HorizonStaking.json'

export default buildModule('HorizonStaking', (m) => {
const { Controller, GraphProxyAdmin, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { HorizonStakingProxy, HorizonRegistered } = m.useModule(HorizonProxiesModule)
const { Controller, GraphProxyAdmin } = m.useModule(GraphPeripheryModule)
const { HorizonStakingProxy } = m.useModule(HorizonProxiesModule)
const { HorizonStakingExtension } = m.useModule(HorizonStakingExtensionModule)

const subgraphServiceAddress = m.getParameter('subgraphServiceAddress')
Expand All @@ -22,7 +22,7 @@ export default buildModule('HorizonStaking', (m) => {
subgraphServiceAddress,
],
{
after: [PeripheryRegistered, HorizonRegistered],
after: [GraphPeripheryModule, HorizonProxiesModule],
},
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ import ExponentialRebatesArtifact from '../../../build/contracts/contracts/staki
import HorizonStakingExtensionArtifact from '../../../build/contracts/contracts/staking/HorizonStakingExtension.sol/HorizonStakingExtension.json'

export default buildModule('HorizonStakingExtension', (m) => {
const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { HorizonRegistered } = m.useModule(HorizonProxiesModule)
const { Controller } = m.useModule(GraphPeripheryModule)

const subgraphServiceAddress = m.getParameter('subgraphServiceAddress')

Expand All @@ -19,7 +18,7 @@ export default buildModule('HorizonStakingExtension', (m) => {
libraries: {
ExponentialRebates: ExponentialRebates,
},
after: [PeripheryRegistered, HorizonRegistered],
after: [GraphPeripheryModule, HorizonProxiesModule],
})

return { HorizonStakingExtension }
Expand Down
6 changes: 3 additions & 3 deletions packages/horizon/ignition/modules/core/PaymentsEscrow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import PaymentsEscrowArtifact from '../../../build/contracts/contracts/payments/

// TODO: transfer ownership of ProxyAdmin???
export default buildModule('PaymentsEscrow', (m) => {
const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { PaymentsEscrowProxyAdmin, PaymentsEscrowProxy, HorizonRegistered } = m.useModule(HorizonProxiesModule)
const { Controller } = m.useModule(GraphPeripheryModule)
const { PaymentsEscrowProxyAdmin, PaymentsEscrowProxy } = m.useModule(HorizonProxiesModule)

const withdrawEscrowThawingPeriod = m.getParameter('withdrawEscrowThawingPeriod')

Expand All @@ -17,7 +17,7 @@ export default buildModule('PaymentsEscrow', (m) => {
PaymentsEscrowArtifact,
[Controller, withdrawEscrowThawingPeriod],
{
after: [PeripheryRegistered, HorizonRegistered],
after: [GraphPeripheryModule, HorizonProxiesModule],
},
)

Expand Down
10 changes: 7 additions & 3 deletions packages/horizon/ignition/modules/core/TAPCollector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@ import HorizonProxiesModule from './HorizonProxies'
import TAPCollectorArtifact from '../../../build/contracts/contracts/payments/collectors/TAPCollector.sol/TAPCollector.json'

export default buildModule('TAPCollector', (m) => {
const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule)
const { HorizonRegistered } = m.useModule(HorizonProxiesModule)
const { Controller } = m.useModule(GraphPeripheryModule)

const name = m.getParameter('eip712Name')
const version = m.getParameter('eip712Version')
const revokeSignerThawingPeriod = m.getParameter('revokeSignerThawingPeriod')

const TAPCollector = m.contract('TAPCollector', TAPCollectorArtifact, [name, version, Controller, revokeSignerThawingPeriod], { after: [PeripheryRegistered, HorizonRegistered] })
const TAPCollector = m.contract(
'TAPCollector',
TAPCollectorArtifact,
[name, version, Controller, revokeSignerThawingPeriod],
{ after: [GraphPeripheryModule, HorizonProxiesModule] },
)

return { TAPCollector }
})
31 changes: 7 additions & 24 deletions packages/horizon/ignition/modules/periphery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import GraphTokenGatewayModule from './periphery/GraphTokenGateway'
import GraphTokenModule from './periphery/GraphToken'
import RewardsManagerModule from './periphery/RewardsManager'

import DummyArtifact from '../../build/contracts/contracts/mocks/Dummy.sol/Dummy.json'

export default buildModule('GraphHorizon_Periphery', (m) => {
const { BridgeEscrow } = m.useModule(BridgeEscrowModule)
const { Controller } = m.useModule(ControllerModule)
Expand All @@ -25,34 +23,20 @@ export default buildModule('GraphHorizon_Periphery', (m) => {

const isMigrate = m.getParameter('isMigrate', false)

let PeripheryRegistered
if (!isMigrate) {
// Register contracts in the Controller
const setProxyEpochManager = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('EpochManager')), EpochManager], { id: 'setContractProxy_EpochManager' })
const setProxyRewardsManager = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('RewardsManager')), RewardsManager], { id: 'setContractProxy_RewardsManager' })
const setProxyGraphToken = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphToken')), GraphToken], { id: 'setContractProxy_GraphToken' })
const setProxyGraphTokenGateway = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphTokenGateway')), GraphTokenGateway], { id: 'setContractProxy_GraphTokenGateway' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('EpochManager')), EpochManager], { id: 'setContractProxy_EpochManager' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('RewardsManager')), RewardsManager], { id: 'setContractProxy_RewardsManager' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphToken')), GraphToken], { id: 'setContractProxy_GraphToken' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphTokenGateway')), GraphTokenGateway], { id: 'setContractProxy_GraphTokenGateway' })
// eslint-disable-next-line no-secrets/no-secrets
const setProxyGraphProxyAdmin = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphProxyAdmin')), GraphProxyAdmin], { id: 'setContractProxy_GraphProxyAdmin' })
const setProxyCuration = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('Curation')), Curation], { id: 'setContractProxy_Curation' })

// Deploy dummy contract to signal that all periphery contracts are registered
PeripheryRegistered = m.contract('Dummy', DummyArtifact, [], {
after: [
setProxyEpochManager,
setProxyRewardsManager,
setProxyGraphToken,
setProxyGraphTokenGateway,
setProxyGraphProxyAdmin,
setProxyCuration,
],
})
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphProxyAdmin')), GraphProxyAdmin], { id: 'setContractProxy_GraphProxyAdmin' })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('Curation')), Curation], { id: 'setContractProxy_Curation' })
} else {
// TODO: Remove if not needed
const governor = m.getAccount(1)
// eslint-disable-next-line no-secrets/no-secrets
const setProxyGraphProxyAdmin = m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphProxyAdmin')), GraphProxyAdmin], { id: 'setContractProxy_GraphProxyAdmin', from: governor })
PeripheryRegistered = m.contract('Dummy', DummyArtifact, [], { after: [setProxyGraphProxyAdmin] })
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GraphProxyAdmin')), GraphProxyAdmin], { id: 'setContractProxy_GraphProxyAdmin', from: governor })
}

return {
Expand All @@ -64,6 +48,5 @@ export default buildModule('GraphHorizon_Periphery', (m) => {
GraphToken,
GraphTokenGateway,
RewardsManager,
PeripheryRegistered,
}
})
6 changes: 3 additions & 3 deletions packages/horizon/ignition/modules/periphery/Curation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import CurationArtifact from '@graphprotocol/contracts/build/contracts/contracts
import GraphCurationTokenArtifact from '@graphprotocol/contracts/build/contracts/contracts/curation/GraphCurationToken.sol/GraphCurationToken.json'
import GraphProxyArtifact from '@graphprotocol/contracts/build/contracts/contracts/upgrades/GraphProxy.sol/GraphProxy.json'

export default buildModule('Curation', (m) => {
export default buildModule('L2Curation', (m) => {
const isMigrate = m.getParameter('isMigrate')

if (isMigrate) {
Expand All @@ -25,7 +25,7 @@ function upgradeCuration(m: IgnitionModuleBuilder) {

const GraphProxy = m.contractAt('GraphProxy', GraphProxyArtifact, graphCurationProxyAddress)
const { instance: Curation, implementation: CurationImplementation } = upgradeWithGraphProxy(m, {
name: 'Curation',
name: 'L2Curation',
artifact: CurationArtifact,
proxyContract: GraphProxy,
}, { from: governor })
Expand All @@ -43,7 +43,7 @@ function deployCuration(m: IgnitionModuleBuilder) {
const GraphCurationToken = m.contract('GraphCurationToken', GraphCurationTokenArtifact, [])

const { instance: Curation, implementation: CurationImplementation } = deployWithGraphProxy(m, {
name: 'Curation',
name: 'L2Curation',
artifact: CurationArtifact,
args: [Controller, GraphCurationToken, curationTaxPercentage, minimumCurationDeposit],
})
Expand Down
4 changes: 2 additions & 2 deletions packages/horizon/ignition/modules/periphery/GraphToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import RewardsManagerModule from '../periphery/RewardsManager'
import GraphTokenArtifact from '@graphprotocol/contracts/build/contracts/contracts/l2/token/L2GraphToken.sol/L2GraphToken.json'

// TODO: Ownership transfer is a two step process, the new owner needs to accept it by calling acceptOwnership
export default buildModule('GraphToken', (m) => {
export default buildModule('L2GraphToken', (m) => {
const isMigrate = m.getParameter('isMigrate', false)

let GraphToken
Expand All @@ -23,7 +23,7 @@ export default buildModule('GraphToken', (m) => {
const initialSupply = m.getParameter('initialSupply')

GraphToken = deployWithGraphProxy(m, {
name: 'GraphToken',
name: 'L2GraphToken',
artifact: GraphTokenArtifact,
args: [deployer],
}).instance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { deployWithGraphProxy } from '../proxy/GraphProxy'
import ControllerModule from '../periphery/Controller'
import GraphTokenGatewayArtifact from '@graphprotocol/contracts/build/contracts/contracts/l2/gateway/L2GraphTokenGateway.sol/L2GraphTokenGateway.json'

export default buildModule('GraphTokenGateway', (m) => {
export default buildModule('L2GraphTokenGateway', (m) => {
const isMigrate = m.getParameter('isMigrate', false)

let GraphTokenGateway
Expand All @@ -18,7 +18,7 @@ export default buildModule('GraphTokenGateway', (m) => {
const pauseGuardian = m.getParameter('pauseGuardian')

GraphTokenGateway = deployWithGraphProxy(m, {
name: 'GraphTokenGateway',
name: 'L2GraphTokenGateway',
artifact: GraphTokenGatewayArtifact,
args: [Controller],
}).instance
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IgnitionModuleBuilder } from '@nomicfoundation/ignition-core'

import DummyArtifact from '../../../build/contracts/contracts/mocks/Dummy.sol/Dummy.json'
import ProxyAdminArtifact from '@openzeppelin/contracts/build/contracts/ProxyAdmin.json'
import TransparentUpgradeableProxyArtifact from '@openzeppelin/contracts/build/contracts/TransparentUpgradeableProxy.json'
import ProxyAdminArtifact from '../../../build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json'
import TransparentUpgradeableProxyArtifact from '../../../build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json'

// Deploy a TransparentUpgradeableProxy
// Note that this module uses a dummy contract as the implementation as the proxy requires a valid contract
Expand Down
Loading
Loading