Skip to content

Commit 1af39d6

Browse files
Merge pull request #244 from BitGo/WIN-6569
feat: add config of LINEAETH for contract deployment
2 parents ccf99e1 + ede7743 commit 1af39d6

File tree

5 files changed

+48
-9
lines changed

5 files changed

+48
-9
lines changed

.github/workflows/deploy_and_release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ jobs:
7171
result-encoding: string
7272
script: |
7373
const tag = process.env.GITHUB_REF_NAME;
74-
const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao|tflr|flr|tsgb|sgb|txdc|xdc|twemix|wemix|tmon|mon|tstt|stt|tsoneium|soneium|world|tworld|tctc|ctc|tapechain|apechain|tphrs|phrs|thypeevm|hypeevm|tsonic|sonic|seievm|tseievm|kaia|tkaia|irys|tirys)$/;
74+
const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao|tflr|flr|tsgb|sgb|txdc|xdc|twemix|wemix|tmon|mon|tstt|stt|tsoneium|soneium|world|tworld|tctc|ctc|tapechain|apechain|tphrs|phrs|thypeevm|hypeevm|tsonic|sonic|seievm|tseievm|kaia|tkaia|irys|tirys|tlineaeth|lineaeth)$/;
7575
const network = tag.match(regex);
7676
return network ? network[1] : "hteth";
7777
deploy-to-test:
7878
runs-on: ubuntu-latest
7979
needs: [lint-and-test, get-network]
80-
if: ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'toas' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'tflr' ) || (needs.get-network.outputs.network == 'tsgb' ) || (needs.get-network.outputs.network == 'txdc' ) || (needs.get-network.outputs.network == 'twemix' ) || (needs.get-network.outputs.network == 'tmon' ) || (needs.get-network.outputs.network == 'tstt' ) || (needs.get-network.outputs.network == 'tsoneium' ) || (needs.get-network.outputs.network == 'tworld' ) || (needs.get-network.outputs.network == 'tctc' ) || (needs.get-network.outputs.network == 'tapechain' ) || (needs.get-network.outputs.network == 'tphrs' ) || (needs.get-network.outputs.network == 'thypeevm' ) || (needs.get-network.outputs.network == 'tsonic' )|| (needs.get-network.outputs.network == 'tseievm' ) || (needs.get-network.outputs.network == 'tkaia' ) || (needs.get-network.outputs.network == 'tirys' )}}
80+
if: ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'toas' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'tflr' ) || (needs.get-network.outputs.network == 'tsgb' ) || (needs.get-network.outputs.network == 'txdc' ) || (needs.get-network.outputs.network == 'twemix' ) || (needs.get-network.outputs.network == 'tmon' ) || (needs.get-network.outputs.network == 'tstt' ) || (needs.get-network.outputs.network == 'tsoneium' ) || (needs.get-network.outputs.network == 'tworld' ) || (needs.get-network.outputs.network == 'tctc' ) || (needs.get-network.outputs.network == 'tapechain' ) || (needs.get-network.outputs.network == 'tphrs' ) || (needs.get-network.outputs.network == 'thypeevm' ) || (needs.get-network.outputs.network == 'tsonic' )|| (needs.get-network.outputs.network == 'tseievm' ) || (needs.get-network.outputs.network == 'tkaia' ) || (needs.get-network.outputs.network == 'tirys' ) || (needs.get-network.outputs.network == 'tlineaeth' )}}
8181
environment: testnet
8282
steps:
8383
- uses: actions/checkout@v2
@@ -160,7 +160,7 @@ jobs:
160160
deploy-to-prod:
161161
runs-on: ubuntu-latest
162162
needs: [lint-and-test, get-network]
163-
if: ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) || (needs.get-network.outputs.network == 'flr' ) || (needs.get-network.outputs.network == 'sgb' ) || (needs.get-network.outputs.network == 'xdc' ) || (needs.get-network.outputs.network == 'wemix' ) || (needs.get-network.outputs.network == 'mon' ) || (needs.get-network.outputs.network == 'stt' ) || (needs.get-network.outputs.network == 'soneium' ) || (needs.get-network.outputs.network == 'world' ) || (needs.get-network.outputs.network == 'ctc' ) || (needs.get-network.outputs.network == 'apechain' ) || (needs.get-network.outputs.network == 'phrs' ) || (needs.get-network.outputs.network == 'hypeevm' ) || (needs.get-network.outputs.network == 'sonic' ) || (needs.get-network.outputs.network == 'seievm' ) || (needs.get-network.outputs.network == 'kaia' ) || (needs.get-network.outputs.network == 'irys' )}}
163+
if: ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) || (needs.get-network.outputs.network == 'flr' ) || (needs.get-network.outputs.network == 'sgb' ) || (needs.get-network.outputs.network == 'xdc' ) || (needs.get-network.outputs.network == 'wemix' ) || (needs.get-network.outputs.network == 'mon' ) || (needs.get-network.outputs.network == 'stt' ) || (needs.get-network.outputs.network == 'soneium' ) || (needs.get-network.outputs.network == 'world' ) || (needs.get-network.outputs.network == 'ctc' ) || (needs.get-network.outputs.network == 'apechain' ) || (needs.get-network.outputs.network == 'phrs' ) || (needs.get-network.outputs.network == 'hypeevm' ) || (needs.get-network.outputs.network == 'sonic' ) || (needs.get-network.outputs.network == 'seievm' ) || (needs.get-network.outputs.network == 'kaia' ) || (needs.get-network.outputs.network == 'irys' ) || (needs.get-network.outputs.network == 'lineaeth' )}}
164164
environment: mainnet
165165
steps:
166166
- uses: actions/checkout@v2

.github/workflows/deploy_batcher_contract.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
result-encoding: string
7171
script: |
7272
const tag = process.env.GITHUB_REF_NAME;
73-
const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao|flr|tflr|sgb|tsgb|txdc|xdc|twemix|wemix|tmon|mon|tstt|stt|tsoneium|soneium|tworld|world|tctc|ctc|tapechain|apechain|tphrs|phrs|thypeevm|hypeevm|tsonic|sonic|seievm|tseievm|kaia|tkaia|irys|tirys)$/;
73+
const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao|flr|tflr|sgb|tsgb|txdc|xdc|twemix|wemix|tmon|mon|tstt|stt|tsoneium|soneium|tworld|world|tctc|ctc|tapechain|apechain|tphrs|phrs|thypeevm|hypeevm|tsonic|sonic|seievm|tseievm|kaia|tkaia|irys|tirys|lineaeth|tlineaeth)$/;
7474
const matchedNetwork = tag.match(regex);
7575
if (!matchedNetwork) {
7676
console.log("No match found for the network name, defaulting to 'hteth'.");
@@ -80,7 +80,7 @@ jobs:
8080
deploy-batcher-contract-to-test:
8181
runs-on: ubuntu-latest
8282
needs: [lint-and-test, get-network]
83-
if: ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'toas' ) || (needs.get-network.outputs.network == 'tflr' ) || (needs.get-network.outputs.network == 'tsgb' ) || (needs.get-network.outputs.network == 'txdc' ) || (needs.get-network.outputs.network == 'twemix' ) || (needs.get-network.outputs.network == 'tmon' ) || (needs.get-network.outputs.network == 'tstt' ) || (needs.get-network.outputs.network == 'tsoneium' ) || (needs.get-network.outputs.network == 'tworld' ) || (needs.get-network.outputs.network == 'tctc' ) || (needs.get-network.outputs.network == 'tapechain' ) || (needs.get-network.outputs.network == 'tphrs' ) || (needs.get-network.outputs.network == 'thypeevm' ) || (needs.get-network.outputs.network == 'tsonic' ) || (needs.get-network.outputs.network == 'tseievm' ) || (needs.get-network.outputs.network == 'tkaia' ) || (needs.get-network.outputs.network == 'tirys' )}}
83+
if: ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'toas' ) || (needs.get-network.outputs.network == 'tflr' ) || (needs.get-network.outputs.network == 'tsgb' ) || (needs.get-network.outputs.network == 'txdc' ) || (needs.get-network.outputs.network == 'twemix' ) || (needs.get-network.outputs.network == 'tmon' ) || (needs.get-network.outputs.network == 'tstt' ) || (needs.get-network.outputs.network == 'tsoneium' ) || (needs.get-network.outputs.network == 'tworld' ) || (needs.get-network.outputs.network == 'tctc' ) || (needs.get-network.outputs.network == 'tapechain' ) || (needs.get-network.outputs.network == 'tphrs' ) || (needs.get-network.outputs.network == 'thypeevm' ) || (needs.get-network.outputs.network == 'tsonic' ) || (needs.get-network.outputs.network == 'tseievm' ) || (needs.get-network.outputs.network == 'tkaia' ) || (needs.get-network.outputs.network == 'tirys' ) || (needs.get-network.outputs.network == 'tlineaeth' )}}
8484
environment: testnet
8585
steps:
8686
- uses: actions/checkout@v4
@@ -141,7 +141,7 @@ jobs:
141141
deploy-batcher-contract-to-prod:
142142
runs-on: ubuntu-latest
143143
needs: [lint-and-test, get-network]
144-
if: ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) || (needs.get-network.outputs.network == 'sgb' ) || (needs.get-network.outputs.network == 'flr' ) || (needs.get-network.outputs.network == 'xdc' ) || (needs.get-network.outputs.network == 'wemix' ) || (needs.get-network.outputs.network == 'mon' ) || (needs.get-network.outputs.network == 'stt' ) || (needs.get-network.outputs.network == 'soneium' ) || (needs.get-network.outputs.network == 'world' ) || (needs.get-network.outputs.network == 'ctc' ) || (needs.get-network.outputs.network == 'apechain' ) || (needs.get-network.outputs.network == 'phrs' ) || (needs.get-network.outputs.network == 'hypeevm' ) || (needs.get-network.outputs.network == 'sonic' ) || (needs.get-network.outputs.network == 'seievm' ) || (needs.get-network.outputs.network == 'kaia' ) || (needs.get-network.outputs.network == 'irys' )}}
144+
if: ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) || (needs.get-network.outputs.network == 'sgb' ) || (needs.get-network.outputs.network == 'flr' ) || (needs.get-network.outputs.network == 'xdc' ) || (needs.get-network.outputs.network == 'wemix' ) || (needs.get-network.outputs.network == 'mon' ) || (needs.get-network.outputs.network == 'stt' ) || (needs.get-network.outputs.network == 'soneium' ) || (needs.get-network.outputs.network == 'world' ) || (needs.get-network.outputs.network == 'ctc' ) || (needs.get-network.outputs.network == 'apechain' ) || (needs.get-network.outputs.network == 'phrs' ) || (needs.get-network.outputs.network == 'hypeevm' ) || (needs.get-network.outputs.network == 'sonic' ) || (needs.get-network.outputs.network == 'seievm' ) || (needs.get-network.outputs.network == 'kaia' ) || (needs.get-network.outputs.network == 'irys' ) || (needs.get-network.outputs.network == 'lineaeth' )}}
145145
environment: mainnet
146146
steps:
147147
- uses: actions/checkout@v4

config/chainIds.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ export const CHAIN_IDS = {
3434
SEIEVM: 1329,
3535
WORLD: 480,
3636
KAIA: 8217,
37-
IRYS: 1270, // TODO: Update when mainnet is available
37+
IRYS: 1270,
38+
LINEAETH: 59144, // TODO: Update when mainnet is available
3839

3940
// Testnet Networks
4041
BSC_TESTNET: 97,
@@ -59,5 +60,6 @@ export const CHAIN_IDS = {
5960
SEIEVM_TESTNET: 1328,
6061
WORLD_TESTNET: 4801,
6162
KAIA_TESTNET: 1001,
62-
IRYS_TESTNET: 1270
63+
IRYS_TESTNET: 1270,
64+
LINEAETH_TESTNET: 59141
6365
} as const;

hardhat.config.ts

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,22 @@ const config: HardhatUserConfig = {
521521
`${PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT}`
522522
]
523523
},
524+
lineaeth: {
525+
url: `https://rpc.linea.build/`,
526+
accounts: [
527+
`${PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT}`,
528+
`${PLACEHOLDER_KEY}`,
529+
`${PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT}`
530+
]
531+
},
532+
tlineaeth: {
533+
url: `https://rpc.sepolia.linea.build/`,
534+
accounts: [
535+
`${PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT}`,
536+
`${PLACEHOLDER_KEY}`,
537+
`${PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT}`
538+
]
539+
},
524540
tirys: {
525541
url: `https://inst-1.cloud.blockscout.com/api/eth-rpc`,
526542
accounts: [
@@ -624,7 +640,10 @@ const config: HardhatUserConfig = {
624640
kaiaMainnet: `${KAIA_EXPLORER_API_KEY}`,
625641
//IRYS
626642
irysTestnet: `${IRYS_EXPLORER_API_KEY}`,
627-
irysMainnet: `${IRYS_EXPLORER_API_KEY}`
643+
irysMainnet: `${IRYS_EXPLORER_API_KEY}`,
644+
//LINEA
645+
lineaethTestnet: `${ETHERSCAN_API_KEY}`,
646+
lineaethMainnet: `${ETHERSCAN_API_KEY}`
628647
},
629648
customChains: [
630649
{
@@ -1002,6 +1021,22 @@ const config: HardhatUserConfig = {
10021021
browserURL: 'https://kaiascan.io/'
10031022
}
10041023
},
1024+
{
1025+
network: 'lineaethMainnet',
1026+
chainId: CHAIN_IDS.LINEAETH,
1027+
urls: {
1028+
apiURL: `${ETHERSCAN_V2_URL}${CHAIN_IDS.LINEAETH}`,
1029+
browserURL: 'https://lineascan.build/'
1030+
}
1031+
},
1032+
{
1033+
network: 'lineaethTestnet',
1034+
chainId: CHAIN_IDS.LINEAETH_TESTNET,
1035+
urls: {
1036+
apiURL: `${ETHERSCAN_V2_URL}${CHAIN_IDS.LINEAETH_TESTNET}`,
1037+
browserURL: 'https://sepolia.lineascan.build/'
1038+
}
1039+
},
10051040
{
10061041
network: 'irysTestnet',
10071042
chainId: CHAIN_IDS.IRYS_TESTNET,

scripts/chainConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ export async function getChainConfig(chainId: number): Promise<ChainConfig> {
101101
case CHAIN_IDS.APECHAIN_TESTNET:
102102
case CHAIN_IDS.CORE_DAO:
103103
case CHAIN_IDS.CORE_DAO_TESTNET:
104+
case CHAIN_IDS.LINEAETH:
105+
case CHAIN_IDS.LINEAETH_TESTNET:
104106
gasParams = {
105107
maxFeePerGas: BigNumber.from('30000000000'),
106108
maxPriorityFeePerGas: BigNumber.from('30000000000'),

0 commit comments

Comments
 (0)