Skip to content

Commit

Permalink
Merge pull request #229 from ArbitrumFoundation/sepolia-deployment-1
Browse files Browse the repository at this point in the history
sepolia deployment
  • Loading branch information
DZGoldman authored Mar 19, 2024
2 parents ab0f674 + 9dcf0eb commit 45a178f
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 2 deletions.
34 changes: 34 additions & 0 deletions files/sepolia/.env-sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## governance deployment
# should be set to "false" when deploying to production!
DEPLOY_TO_LOCAL_ENVIRONMENT="false"
# governance is deployed to Nova when set to 'true'
DEPLOY_GOVERNANCE_TO_NOVA="false"

## RPCs to use
# ARB_URL=""
# NOVA_URL=""
# ETH_URL=""

## Deployer keys
# ARB_KEY=""
# ETH_KEY=""
# NOVA_KEY=""

DEPLOY_CONFIG_FILE_LOCATION="./files/sepolia/deployConfig.json"
CLAIM_RECIPIENTS_FILE_LOCATION="./files/sepolia/claimRecipients.json"
DEPLOYED_CONTRACTS_FILE_LOCATION="./files/sepolia/deployedContracts.json"

ARB_L1_PROTOCOL_TRANSFER_TXS_FILE_LOCATION="./files/sepolia/l1ArbProtocolTransferTXs.json"
ARB_L1_TOKEN_BRIDGE_TRANSFER_TXS_FILE_LOCATION="./files/sepolia/l1ArbTokenBridgeTransferTXs.json"
ARB_L2_TXS_FILE_LOCATION="./files/sepolia/arbTransferAssetsTXs.json"
NOVA_L1_PROTOCOL_TRANSFER_TXS_FILE_LOCATION="./files/sepolia/l1NovaProtocolTransferTXs.json"
NOVA_L1_TOKEN_BRIDGE_TRANSFER_TXS_FILE_LOCATION="./files/sepolia/l1NovaTokenBridgeTransferTXs.json"
NOVA_L2_TXS_FILE_LOCATION="./files/sepolia/novaTransferAssetsTXs.json"

# only required for distributing to dao recipients
# DAO_RECIPIENTS_KEY=""
# DAO_RECIPIENTS_FILE_LOCATION=""

# required for deploying vested wallets
VESTED_RECIPIENTS_FILE_LOCATION="./files/sepolia/vestingWalletRecipients.json"
DEPLOYED_WALLETS_FILE_LOCATION="./files/sepolia/deployedWallets.json"
34 changes: 34 additions & 0 deletions files/sepolia/deployConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"L1_TIMELOCK_DELAY": 259200,
"L1_9_OF_12_SECURITY_COUNCIL": "0x391611E7bba966000AC6c78aFc673C4AE46f8BCa",

"L2_TIMELOCK_DELAY": 259200,
"L2_9_OF_12_SECURITY_COUNCIL": "0x2328a8566fc4608dDae5e50FA9db55ca7928e4E8",
"L2_7_OF_12_SECURITY_COUNCIL": "0xebC3e5C8Af79f3449096649A322ecF1bF1316612",
"L2_CORE_QUORUM_THRESHOLD": 500,
"L2_TREASURY_QUORUM_THRESHOLD": 300,
"L2_PROPOSAL_THRESHOLD": 5000000,
"L2_VOTING_DELAY": 21600,
"L2_VOTING_PERIOD": 100800,
"L2_MIN_PERIOD_AFTER_QUORUM": 14400,
"L2_TREASURY_TIMELOCK_DELAY": 259200,

"L2_TOKEN_INITIAL_SUPPLY": "10000000000",
"L2_NUM_OF_TOKENS_FOR_TREASURY": "0",
"L2_ADDRESS_FOR_FOUNDATION": "0xb71f9759FB6416E952F314b5FB422c902F3D8613",
"L2_NUM_OF_TOKENS_FOR_FOUNDATION": "0",
"L2_ADDRESS_FOR_TEAM": "0xb71f9759FB6416E952F314b5FB422c902F3D8613",
"L2_NUM_OF_TOKENS_FOR_TEAM": "10000000000",
"L2_ADDRESS_FOR_DAO_RECIPIENTS": "0xb71f9759FB6416E952F314b5FB422c902F3D8613",
"L2_NUM_OF_TOKENS_FOR_DAO_RECIPIENTS": "0",
"L2_ADDRESS_FOR_INVESTORS": "0xb71f9759FB6416E952F314b5FB422c902F3D8613",
"L2_NUM_OF_TOKENS_FOR_INVESTORS": "0",
"L2_CLAIM_PERIOD_START": 16890400,
"L2_CLAIM_PERIOD_END": 18208000,
"RECIPIENTS_BATCH_SIZE": 100,
"GET_LOGS_BLOCK_RANGE": 100,
"SLEEP_TIME_BETWEEN_RECIPIENT_BATCHES_IN_MS": 2000,
"BASE_L2_GAS_PRICE_LIMIT": 100000000,
"BASE_L1_GAS_PRICE_LIMIT": 50000000000,
"ARBITRUM_DAO_CONSTITUTION_HASH": "0x5e5d9153e6d9b0c1e88187d31468f0a7fa096aff9f4d538d27619798db6522e7"
}
30 changes: 30 additions & 0 deletions files/sepolia/deployedContracts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"l1UpgradeExecutorLogic": "0x89737E9835e2BB8df238e2513EfB68D6a9C2A31D",
"l2TimelockLogic": "0xB07a3671e2E8a35Ebf15CC8A14052d8400df73aE",
"l2GovernorLogic": "0x410758658Fe8e8b2551027DC8EdbC7A37a5e6bDe",
"l2FixedDelegateLogic": "0xf09860cdF8a19540087D91C1996df6727c5B1Cf2",
"l2TokenLogic": "0x089626f854380B7CbfDc4e25876698C99814b468",
"l2UpgradeExecutorLogic": "0x3bcD2f013CAd36c111B4a72c9F61F89e55fd4113",
"l1GovernanceFactory": "0x27Df6722a7D5E0c84091fA3a46825659915A2a94",
"l2GovernanceFactory": "0x436FD460a32f71C718cEf6412B3Cf8da871B5CDF",
"l1ReverseCustomGatewayLogic": "0x8566073cC09C38eAcdE04Ab69d4BDf8B26a81c49",
"l1ReverseCustomGatewayProxy": "0xfD7F7039978B582C23a29B6ab615a073e42Ed963",
"l2ReverseCustomGatewayLogic": "0xb1487C83eB7DE744d218b69BA4cacf7056c83433",
"l2ReverseCustomGatewayProxy": "0x17C7B7018E519e5a058ED51Fec2F886Ff4044587",
"l1TokenLogic": "0x3d2BEE7E8ef53EefDD6C9a3b08447178EDeaA134",
"l1TokenProxy": "0xfa898E8d38B008F3bAc64dce019A9480d4F06863",
"l2CoreGoverner": "0x646E1f64847322EDf01039eF484759b6990dA4e1",
"l2CoreTimelock": "0x3B2FaB0b7612BE18dF58b1A6c66BebCc7A3B668a",
"l2Executor": "0x059EF6e2CaA4d779e087273646EfF49ef45dBD81",
"l2ProxyAdmin": "0x5EF9916A2C7caBB5c083C1a36072A6263Fc39fCD",
"l2Token": "0xc275B23C035a9d4EC8867b47f55427E0bDCe14cB",
"l2TreasuryGoverner": "0x8C904fffDCc0F9fD5Afdc6B6fDDd76b082e5023D",
"l2ArbTreasury": "0xa3Fb4BCe66B57cdeF92F643682337A1349A5a541",
"arbitrumDAOConstitution": "0x0A6a358249aDcFeD4280a286150524C8a3334d26",
"l2TreasuryTimelock": "0xf934A14707bFc09871EF61E9a9F552828776cF7C",
"l1Executor": "0x5FEe78FE9AD96c1d8557C6D6BB22Eb5A61eeD315",
"l1ProxyAdmin": "0x3729B0B3999fb46AA71386d1016e155D55CcD282",
"l1Timelock": "0x6EC62D826aDc24AeA360be9cF2647c42b9Cdb19b",
"l1AddressRegistry": "0xCfD5406C165eEe9f4AB43CCD48b1b85bBE0dba97",
"l2AddressRegistry": "0x56292522bB94C9f6ff01dCcE14177024ce3E74F0"
}
3 changes: 3 additions & 0 deletions scripts/governanceDeployer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ async function deployAndInitL1Token(
await l1GovernanceFactory.proxyAdminAddress(),
"0x"
);
await proxy.deployed();
const token = L1ArbitrumToken__factory.connect(proxy.address, ethDeployer);
await (
await token.initialize(
Expand All @@ -434,6 +435,8 @@ async function deployAndInitL1Token(
}
);

await l1Token.deployed();

return { l1Token };
}

Expand Down
8 changes: 6 additions & 2 deletions scripts/providerSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ const ARBITRUM_NOVA_CHAIN_ID = 42170;
const GOERLI_CHAIN_ID = 5;
const ARBITRUM_GOERLI_CHAIN_ID = 421613;

// sepolia
const SEPOLIA_CHAIN_ID = 11155111;
const ARBITRUM_SEPOLIA_CHAIN_ID = 421614;

// dotenv config used in case of deploying to production
// in case of local env testing, config is extracted in `testSetup()`
export const envVars = {
Expand Down Expand Up @@ -344,11 +348,11 @@ export const getDeployersAndConfig = async (): Promise<{

// check that production chain IDs are used in production mode
const ethChainId = (await ethProvider.getNetwork()).chainId;
if (ethChainId != ETH_CHAIN_ID && ethChainId != GOERLI_CHAIN_ID) {
if (ethChainId != ETH_CHAIN_ID && ethChainId != GOERLI_CHAIN_ID && ethChainId != SEPOLIA_CHAIN_ID) {
throw new Error("Production chain ID should be used in production mode for L1");
}
const arbChainId = (await arbProvider.getNetwork()).chainId;
if (arbChainId != ARBITRUM_ONE_CHAIN_ID && arbChainId != ARBITRUM_GOERLI_CHAIN_ID) {
if (arbChainId != ARBITRUM_ONE_CHAIN_ID && arbChainId != ARBITRUM_GOERLI_CHAIN_ID && arbChainId != ARBITRUM_SEPOLIA_CHAIN_ID) {
throw new Error("Production chain ID should be used in production mode for L2");
}
const novaChainId = (await novaProvider.getNetwork()).chainId;
Expand Down

0 comments on commit 45a178f

Please sign in to comment.