Skip to content

Commit af72b59

Browse files
authored
Merge pull request #867 from graphprotocol/mde/sepolia-testnet
feat: sepolia testnet
2 parents cfff549 + 4a1896b commit af72b59

File tree

9 files changed

+1204
-30
lines changed

9 files changed

+1204
-30
lines changed

addresses.json

Lines changed: 427 additions & 0 deletions
Large diffs are not rendered by default.

arbitrum-addresses.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,18 @@
3838
"L2GatewayRouter": {
3939
"address": "0xE5B9d8d42d656d1DcB8065A6c012FE3780246041"
4040
}
41+
},
42+
"421614": {
43+
"L2GatewayRouter": {
44+
"address": "0x9fDD1C4E4AA24EEc1d913FABea925594a20d43C7"
45+
}
46+
},
47+
"11155111": {
48+
"L1GatewayRouter": {
49+
"address": "0xcE18836b233C83325Cc8848CA4487e94C6288264"
50+
},
51+
"IInbox": {
52+
"address": "0xaAe29B0366299461418F5324a79Afc425BE5ae21"
53+
}
4154
}
4255
}

cli/cross-chain.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const l1ToL2ChainIdMap = {
1111
'4': '421611',
1212
'5': '421613',
1313
'1337': '412346',
14+
'11155111': '421614',
1415
}
1516

1617
export const l2ChainIds = Object.values(l1ToL2ChainIdMap).map(Number)

config/graph.arbitrum-sepolia.yml

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
general:
2+
arbitrator: &arbitrator "0x1726A5d52e279d02ff4732eCeB2D67BFE5Add328" # EOA (TODO: update to a multisig)
3+
governor: &governor "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3" # EOA (TODO: update to a multisig)
4+
authority: &authority "0x49D4CFC037430cA9355B422bAeA7E9391e1d3215" # Authority that signs payment vouchers
5+
availabilityOracle: &availabilityOracle "0x5e4e823Ed094c035133eEC5Ec0d08ae1Af04e9Fa" # Subgraph Availability Oracle
6+
pauseGuardian: &pauseGuardian "0xa0444508232dA3FA6C2f96a5f105f3f0cc0d20D7" # Protocol pause guardian
7+
allocationExchangeOwner: &allocationExchangeOwner "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3" # Allocation Exchange owner
8+
9+
contracts:
10+
Controller:
11+
calls:
12+
- fn: "setContractProxy"
13+
id: "0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f" # keccak256('Curation')
14+
contractAddress: "${{L2Curation.address}}"
15+
- fn: "setContractProxy"
16+
id: "0x39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea3" # keccak256('GNS')
17+
contractAddress: "${{L2GNS.address}}"
18+
- fn: "setContractProxy"
19+
id: "0xf942813d07d17b56de9a9afc8de0ced6e8c053bbfdcc87b7badea4ddcf27c307" # keccak256('DisputeManager')
20+
contractAddress: "${{DisputeManager.address}}"
21+
- fn: "setContractProxy"
22+
id: "0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063" # keccak256('EpochManager')
23+
contractAddress: "${{EpochManager.address}}"
24+
- fn: "setContractProxy"
25+
id: "0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761" # keccak256('RewardsManager')
26+
contractAddress: "${{RewardsManager.address}}"
27+
- fn: "setContractProxy"
28+
id: "0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034" # keccak256('Staking')
29+
contractAddress: "${{L2Staking.address}}"
30+
- fn: "setContractProxy"
31+
id: "0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247" # keccak256('GraphToken')
32+
contractAddress: "${{L2GraphToken.address}}"
33+
- fn: "setContractProxy"
34+
id: "0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0" # keccak256('GraphTokenGateway')
35+
contractAddress: "${{L2GraphTokenGateway.address}}"
36+
- fn: "setPauseGuardian"
37+
pauseGuardian: *pauseGuardian
38+
- fn: "transferOwnership"
39+
owner: *governor
40+
GraphProxyAdmin:
41+
calls:
42+
- fn: "transferOwnership"
43+
owner: *governor
44+
ServiceRegistry:
45+
proxy: true
46+
init:
47+
controller: "${{Controller.address}}"
48+
calls:
49+
- fn: "syncAllContracts"
50+
EpochManager:
51+
proxy: true
52+
init:
53+
controller: "${{Controller.address}}"
54+
lengthInBlocks: 554 # length in hours = lengthInBlocks*13/60/60 (~13 second blocks)
55+
L2GraphToken:
56+
proxy: true
57+
init:
58+
owner: "${{Env.deployer}}"
59+
calls:
60+
- fn: "addMinter"
61+
minter: "${{RewardsManager.address}}"
62+
- fn: "transferOwnership"
63+
owner: *governor
64+
L2Curation:
65+
proxy: true
66+
init:
67+
controller: "${{Controller.address}}"
68+
curationTokenMaster: "${{GraphCurationToken.address}}"
69+
curationTaxPercentage: 10000 # in parts per million
70+
minimumCurationDeposit: "1" # in wei
71+
calls:
72+
- fn: "syncAllContracts"
73+
DisputeManager:
74+
proxy: true
75+
init:
76+
controller: "${{Controller.address}}"
77+
arbitrator: *arbitrator
78+
minimumDeposit: "10000000000000000000000" # in wei
79+
fishermanRewardPercentage: 500000 # in parts per million
80+
idxSlashingPercentage: 25000 # in parts per million
81+
qrySlashingPercentage: 25000 # in parts per million
82+
calls:
83+
- fn: "syncAllContracts"
84+
L2GNS:
85+
proxy: true
86+
init:
87+
controller: "${{Controller.address}}"
88+
subgraphNFT: "${{SubgraphNFT.address}}"
89+
calls:
90+
- fn: "approveAll"
91+
- fn: "syncAllContracts"
92+
SubgraphNFT:
93+
init:
94+
governor: "${{Env.deployer}}"
95+
calls:
96+
- fn: "setTokenDescriptor"
97+
tokenDescriptor: "${{SubgraphNFTDescriptor.address}}"
98+
- fn: "setMinter"
99+
minter: "${{L2GNS.address}}"
100+
- fn: "transferOwnership"
101+
owner: *governor
102+
L2Staking:
103+
proxy: true
104+
init:
105+
controller: "${{Controller.address}}"
106+
minimumIndexerStake: "100000000000000000000000" # in wei
107+
thawingPeriod: 6646 # in blocks
108+
protocolPercentage: 10000 # in parts per million
109+
curationPercentage: 100000 # in parts per million
110+
maxAllocationEpochs: 8 # in epochs
111+
delegationUnbondingPeriod: 12 # in epochs
112+
delegationRatio: 16 # delegated stake to indexer stake multiplier
113+
rebateParameters:
114+
alphaNumerator: 100 # alphaNumerator / alphaDenominator
115+
alphaDenominator: 100 # alphaNumerator / alphaDenominator
116+
lambdaNumerator: 60 # lambdaNumerator / lambdaDenominator
117+
lambdaDenominator: 100 # lambdaNumerator / lambdaDenominator
118+
extensionImpl: "${{StakingExtension.address}}"
119+
calls:
120+
- fn: "setDelegationTaxPercentage"
121+
delegationTaxPercentage: 5000 # parts per million
122+
- fn: "setSlasher"
123+
slasher: "${{DisputeManager.address}}"
124+
allowed: true
125+
- fn: "setAssetHolder"
126+
assetHolder: "${{AllocationExchange.address}}"
127+
allowed: true
128+
- fn: "syncAllContracts"
129+
RewardsManager:
130+
proxy: true
131+
init:
132+
controller: "${{Controller.address}}"
133+
calls:
134+
- fn: "setIssuancePerBlock"
135+
issuancePerBlock: "6036500000000000000" # per block increase of total supply, blocks in a year = 365*60*60*24/12
136+
- fn: "setSubgraphAvailabilityOracle"
137+
subgraphAvailabilityOracle: *availabilityOracle
138+
- fn: "syncAllContracts"
139+
AllocationExchange:
140+
init:
141+
graphToken: "${{L2GraphToken.address}}"
142+
staking: "${{L2Staking.address}}"
143+
governor: *allocationExchangeOwner
144+
authority: *authority
145+
calls:
146+
- fn: "approveAll"
147+
L2GraphTokenGateway:
148+
proxy: true
149+
init:
150+
controller: "${{Controller.address}}"
151+
calls:
152+
- fn: "syncAllContracts"
153+
- fn: "setPauseGuardian"
154+
pauseGuardian: *pauseGuardian

config/graph.sepolia.yml

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
general:
2+
arbitrator: &arbitrator "0xd6ff9e98F0Fd99ccB658832F586e23F4D8Cb8Bad" # Arbitration Council
3+
governor: &governor "0x4EBf30832eC2db76aE228D5d239083B59f530d1f" # Graph Council
4+
authority: &authority "0x840daec5dF962D49cf2EFd789c4E40A7b7e0117D" # Authority that signs payment vouchers
5+
availabilityOracle: &availabilityOracle "0x840daec5dF962D49cf2EFd789c4E40A7b7e0117D" # Subgraph Availability Oracle
6+
pauseGuardian: &pauseGuardian "0x382688E15Cc894D04cf3313b26a4F2c93C8fDe06" # Protocol pause guardian
7+
allocationExchangeOwner: &allocationExchangeOwner "0x4EBf30832eC2db76aE228D5d239083B59f530d1f" # Allocation Exchange owner
8+
9+
contracts:
10+
Controller:
11+
calls:
12+
- fn: "setContractProxy"
13+
id: "0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f" # keccak256('Curation')
14+
contractAddress: "${{Curation.address}}"
15+
- fn: "setContractProxy"
16+
id: "0x39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea3" # keccak256('GNS')
17+
contractAddress: "${{L1GNS.address}}"
18+
- fn: "setContractProxy"
19+
id: "0xf942813d07d17b56de9a9afc8de0ced6e8c053bbfdcc87b7badea4ddcf27c307" # keccak256('DisputeManager')
20+
contractAddress: "${{DisputeManager.address}}"
21+
- fn: "setContractProxy"
22+
id: "0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063" # keccak256('EpochManager')
23+
contractAddress: "${{EpochManager.address}}"
24+
- fn: "setContractProxy"
25+
id: "0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761" # keccak256('RewardsManager')
26+
contractAddress: "${{RewardsManager.address}}"
27+
- fn: "setContractProxy"
28+
id: "0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034" # keccak256('Staking')
29+
contractAddress: "${{L1Staking.address}}"
30+
- fn: "setContractProxy"
31+
id: "0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247" # keccak256('GraphToken')
32+
contractAddress: "${{GraphToken.address}}"
33+
- fn: "setContractProxy"
34+
id: "0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0" # keccak256('GraphTokenGateway')
35+
contractAddress: "${{L1GraphTokenGateway.address}}"
36+
- fn: "setPauseGuardian"
37+
pauseGuardian: *pauseGuardian
38+
- fn: "transferOwnership"
39+
owner: *governor
40+
GraphProxyAdmin:
41+
calls:
42+
- fn: "transferOwnership"
43+
owner: *governor
44+
ServiceRegistry:
45+
proxy: true
46+
init:
47+
controller: "${{Controller.address}}"
48+
calls:
49+
- fn: "syncAllContracts"
50+
EpochManager:
51+
proxy: true
52+
init:
53+
controller: "${{Controller.address}}"
54+
lengthInBlocks: 554 # length in hours = lengthInBlocks*13/60/60 (~13 second blocks)
55+
GraphToken:
56+
init:
57+
initialSupply: "10000000000000000000000000000" # in wei
58+
calls:
59+
- fn: "addMinter"
60+
minter: "${{RewardsManager.address}}"
61+
- fn: "addMinter"
62+
minter: "${{L1GraphTokenGateway.address}}"
63+
- fn: "renounceMinter"
64+
- fn: "transferOwnership"
65+
owner: *governor
66+
Curation:
67+
proxy: true
68+
init:
69+
controller: "${{Controller.address}}"
70+
bondingCurve: "${{BancorFormula.address}}"
71+
curationTokenMaster: "${{GraphCurationToken.address}}"
72+
reserveRatio: 500000 # in parts per million
73+
curationTaxPercentage: 10000 # in parts per million
74+
minimumCurationDeposit: "1000000000000000000" # in wei
75+
calls:
76+
- fn: "syncAllContracts"
77+
DisputeManager:
78+
proxy: true
79+
init:
80+
controller: "${{Controller.address}}"
81+
arbitrator: *arbitrator
82+
minimumDeposit: "10000000000000000000000" # in wei
83+
fishermanRewardPercentage: 500000 # in parts per million
84+
idxSlashingPercentage: 25000 # in parts per million
85+
qrySlashingPercentage: 25000 # in parts per million
86+
calls:
87+
- fn: "syncAllContracts"
88+
L1GNS:
89+
proxy: true
90+
init:
91+
controller: "${{Controller.address}}"
92+
subgraphNFT: "${{SubgraphNFT.address}}"
93+
calls:
94+
- fn: "approveAll"
95+
- fn: "syncAllContracts"
96+
SubgraphNFT:
97+
init:
98+
governor: "${{Env.deployer}}"
99+
calls:
100+
- fn: "setTokenDescriptor"
101+
tokenDescriptor: "${{SubgraphNFTDescriptor.address}}"
102+
- fn: "setMinter"
103+
minter: "${{L1GNS.address}}"
104+
- fn: "transferOwnership"
105+
owner: *governor
106+
L1Staking:
107+
proxy: true
108+
init:
109+
controller: "${{Controller.address}}"
110+
minimumIndexerStake: "100000000000000000000000" # in wei
111+
thawingPeriod: 6646 # in blocks
112+
protocolPercentage: 10000 # in parts per million
113+
curationPercentage: 100000 # in parts per million
114+
maxAllocationEpochs: 4 # in epochs
115+
delegationUnbondingPeriod: 12 # in epochs
116+
delegationRatio: 16 # delegated stake to indexer stake multiplier
117+
rebateParameters:
118+
alphaNumerator: 100 # alphaNumerator / alphaDenominator
119+
alphaDenominator: 100 # alphaNumerator / alphaDenominator
120+
lambdaNumerator: 60 # lambdaNumerator / lambdaDenominator
121+
lambdaDenominator: 100 # lambdaNumerator / lambdaDenominator
122+
extensionImpl: "${{StakingExtension.address}}"
123+
calls:
124+
- fn: "setDelegationTaxPercentage"
125+
delegationTaxPercentage: 5000 # parts per million
126+
- fn: "setSlasher"
127+
slasher: "${{DisputeManager.address}}"
128+
allowed: true
129+
- fn: "setAssetHolder"
130+
assetHolder: "${{AllocationExchange.address}}"
131+
allowed: true
132+
- fn: "syncAllContracts"
133+
RewardsManager:
134+
proxy: true
135+
init:
136+
controller: "${{Controller.address}}"
137+
calls:
138+
- fn: "setIssuancePerBlock"
139+
issuancePerBlock: "114693500000000000000" # per block increase of total supply, blocks in a year = 365*60*60*24/12
140+
- fn: "setSubgraphAvailabilityOracle"
141+
subgraphAvailabilityOracle: *availabilityOracle
142+
- fn: "syncAllContracts"
143+
AllocationExchange:
144+
init:
145+
graphToken: "${{GraphToken.address}}"
146+
staking: "${{L1Staking.address}}"
147+
governor: *allocationExchangeOwner
148+
authority: *authority
149+
calls:
150+
- fn: "approveAll"
151+
L1GraphTokenGateway:
152+
proxy: true
153+
init:
154+
controller: "${{Controller.address}}"
155+
calls:
156+
- fn: "syncAllContracts"
157+
- fn: "setPauseGuardian"
158+
pauseGuardian: *pauseGuardian
159+
BridgeEscrow:
160+
proxy: true
161+
init:
162+
controller: "${{Controller.address}}"
163+
calls:
164+
- fn: "syncAllContracts"

gre/helpers/chain.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const chainMap = new MapWithGetKey<number>([
1313
[1, 42161], // Ethereum Mainnet - Arbitrum One
1414
[4, 421611], // Ethereum Rinkeby - Arbitrum Rinkeby
1515
[5, 421613], // Ethereum Goerli - Arbitrum Goerli
16+
[11155111, 421614], // Ethereum Sepolia - Arbitrum Sepolia
1617
[1337, 412346], // Localhost - Arbitrum Localhost
1718
])
1819

@@ -21,6 +22,7 @@ const nameMap = new MapWithGetKey<string>([
2122
['mainnet', 'arbitrum-one'], // Ethereum Mainnet - Arbitrum One
2223
['rinkeby', 'arbitrum-rinkeby'], // Ethereum Rinkeby - Arbitrum Rinkeby
2324
['goerli', 'arbitrum-goerli'], // Ethereum Goerli - Arbitrum Goerli
25+
['sepolia', 'arbitrum-sepolia'], // Ethereum Sepolia - Arbitrum Sepolia
2426
['localnitrol1', 'localnitrol2'], // Arbitrum testnode L1 - Arbitrum testnode L2
2527
])
2628

0 commit comments

Comments
 (0)