Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/deploy_and_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:
result-encoding: string
script: |
const tag = process.env.GITHUB_REF_NAME;
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|ip|tip|plasma|tplasma|kavaevm|tkavaevm|plume|tplume|zksyncera|tzksyncera|tog|og|flow|tflow|megaeth|tmegaeth|hbarevm|thbarevm|fluenteth|tfluenteth|mantle|tmantle|dogeos|tdogeos|opBNB|topBNB|jovayeth|tjovayeth|okb|tokb|ftm|morpheth|tmorpheth|arcusdc|tarcusdc|chiliz|tchiliz|unichain|tunichain|hpp|thpp|hoodeth|thoodeth|inketh|tinketh|h|th|usdt0|tusdt0|xtzevm|txtzevm|hemieth|themieth|abstracteth|tabstracteth|katanaeth|tkatanaeth|tbobaeth|bobaeth|gasevm|tgasevm)$/;
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|ip|tip|plasma|tplasma|kavaevm|tkavaevm|plume|tplume|zksyncera|tzksyncera|tog|og|flow|tflow|megaeth|tmegaeth|hbarevm|thbarevm|fluenteth|tfluenteth|mantle|tmantle|dogeos|tdogeos|opBNB|topBNB|jovayeth|tjovayeth|okb|tokb|ftm|morpheth|tmorpheth|arcusdc|tarcusdc|chiliz|tchiliz|unichain|tunichain|hpp|thpp|hoodeth|thoodeth|inketh|tinketh|h|th|usdt0|tusdt0|xtzevm|txtzevm|hemieth|themieth|abstracteth|tabstracteth|katanaeth|tkatanaeth|tbobaeth|bobaeth|gasevm|tgasevm|sepeth)$/;
const network = tag.match(regex);
return network ? network[1] : "hteth";
preview:
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:
deploy-to-test:
runs-on: ubuntu-latest
needs: [lint-and-test, get-network, preview]
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' ) || (needs.get-network.outputs.network == 'tip' ) || (needs.get-network.outputs.network == 'tplasma' ) || (needs.get-network.outputs.network == 'tog' ) || (needs.get-network.outputs.network == 'tkavaevm' ) || (needs.get-network.outputs.network == 'tplume') || (needs.get-network.outputs.network == 'tzksyncera') || (needs.get-network.outputs.network == 'tflow') || (needs.get-network.outputs.network == 'tmegaeth') || (needs.get-network.outputs.network == 'thbarevm') || (needs.get-network.outputs.network == 'tfluenteth') || (needs.get-network.outputs.network == 'tmantle') || (needs.get-network.outputs.network == 'tdogeos') || (needs.get-network.outputs.network == 'topBNB') || (needs.get-network.outputs.network == 'tjovayeth') || (needs.get-network.outputs.network == 'tokb') || (needs.get-network.outputs.network == 'tarcusdc') || (needs.get-network.outputs.network == 'tmorpheth') || (needs.get-network.outputs.network == 'tchiliz') || (needs.get-network.outputs.network == 'tunichain') || (needs.get-network.outputs.network == 'thpp') || (needs.get-network.outputs.network == 'th') || (needs.get-network.outputs.network == 'thoodeth') || (needs.get-network.outputs.network == 'tinketh') || (needs.get-network.outputs.network == 'tusdt0' ) || (needs.get-network.outputs.network == 'txtzevm' ) || (needs.get-network.outputs.network == 'themieth' ) || (needs.get-network.outputs.network == 'tabstracteth' ) || (needs.get-network.outputs.network == 'tkatanaeth' ) || (needs.get-network.outputs.network == 'tbobaeth' ) || (needs.get-network.outputs.network == 'tgasevm' )}}
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' ) || (needs.get-network.outputs.network == 'tip' ) || (needs.get-network.outputs.network == 'tplasma' ) || (needs.get-network.outputs.network == 'tog' ) || (needs.get-network.outputs.network == 'tkavaevm' ) || (needs.get-network.outputs.network == 'tplume') || (needs.get-network.outputs.network == 'tzksyncera') || (needs.get-network.outputs.network == 'tflow') || (needs.get-network.outputs.network == 'tmegaeth') || (needs.get-network.outputs.network == 'thbarevm') || (needs.get-network.outputs.network == 'tfluenteth') || (needs.get-network.outputs.network == 'tmantle') || (needs.get-network.outputs.network == 'tdogeos') || (needs.get-network.outputs.network == 'topBNB') || (needs.get-network.outputs.network == 'tjovayeth') || (needs.get-network.outputs.network == 'tokb') || (needs.get-network.outputs.network == 'tarcusdc') || (needs.get-network.outputs.network == 'tmorpheth') || (needs.get-network.outputs.network == 'tchiliz') || (needs.get-network.outputs.network == 'tunichain') || (needs.get-network.outputs.network == 'thpp') || (needs.get-network.outputs.network == 'th') || (needs.get-network.outputs.network == 'thoodeth') || (needs.get-network.outputs.network == 'tinketh') || (needs.get-network.outputs.network == 'tusdt0' ) || (needs.get-network.outputs.network == 'txtzevm' ) || (needs.get-network.outputs.network == 'themieth' ) || (needs.get-network.outputs.network == 'tabstracteth' ) || (needs.get-network.outputs.network == 'tkatanaeth' ) || (needs.get-network.outputs.network == 'tbobaeth' ) || (needs.get-network.outputs.network == 'tgasevm' ) || (needs.get-network.outputs.network == 'sepeth' )}}
environment: testnet
steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy_batcher_contract.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
result-encoding: string
script: |
const tag = process.env.GITHUB_REF_NAME;
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|tip|ip|tplasma|plasma|kavaevm|tkavaevm|plume|tplume|zksyncera|tzksyncera|tog|og|tflow|flow|megaeth|tmegaeth|hbarevm|thbarevm|fluenteth|tfluenteth|mantle|tmantle|dogeos|tdogeos|jovayeth|tjovayeth|okb|tokb|morpheth|tmorpheth|arcusdc|tarcusdc|chiliz|tchiliz|unichain|tunichain|hpp|thpp|hoodeth|thoodeth|inketh|tinketh|h|th|usdt0|tusdt0|xtzevm|txtzevm|hemieth|themieth|abstracteth|tabstracteth|katanaeth|tkatanaeth|tbobaeth|bobaeth|gasevm|tgasevm)$/;
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|tip|ip|tplasma|plasma|kavaevm|tkavaevm|plume|tplume|zksyncera|tzksyncera|tog|og|tflow|flow|megaeth|tmegaeth|hbarevm|thbarevm|fluenteth|tfluenteth|mantle|tmantle|dogeos|tdogeos|jovayeth|tjovayeth|okb|tokb|morpheth|tmorpheth|arcusdc|tarcusdc|chiliz|tchiliz|unichain|tunichain|hpp|thpp|hoodeth|thoodeth|inketh|tinketh|h|th|usdt0|tusdt0|xtzevm|txtzevm|hemieth|themieth|abstracteth|tabstracteth|katanaeth|tkatanaeth|tbobaeth|bobaeth|gasevm|tgasevm|sepeth)$/;
const matchedNetwork = tag.match(regex);
if (!matchedNetwork) {
console.log("No match found for the network name, defaulting to 'hteth'.");
Expand Down Expand Up @@ -113,7 +113,7 @@ jobs:
deploy-batcher-contract-to-test:
runs-on: ubuntu-latest
needs: [lint-and-test, get-network, preview]
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' ) || (needs.get-network.outputs.network == 'tip' ) || (needs.get-network.outputs.network == 'tplasma' ) || (needs.get-network.outputs.network == 'tog' ) || (needs.get-network.outputs.network == 'tkavaevm' ) || (needs.get-network.outputs.network == 'tplume') || (needs.get-network.outputs.network == 'tzksyncera') || (needs.get-network.outputs.network == 'tflow' ) || (needs.get-network.outputs.network == 'tmegaeth' ) || (needs.get-network.outputs.network == 'thbarevm' ) || (needs.get-network.outputs.network == 'tfluenteth' ) || (needs.get-network.outputs.network == 'tmantle' ) || (needs.get-network.outputs.network == 'tdogeos') || (needs.get-network.outputs.network == 'tjovayeth') || (needs.get-network.outputs.network == 'tokb') || (needs.get-network.outputs.network == 'tmorpheth') || (needs.get-network.outputs.network == 'tarcusdc') || (needs.get-network.outputs.network == 'tchiliz') || (needs.get-network.outputs.network == 'tunichain') || (needs.get-network.outputs.network == 'thpp') || (needs.get-network.outputs.network == 'th') || (needs.get-network.outputs.network == 'thoodeth') || (needs.get-network.outputs.network == 'tinketh') || (needs.get-network.outputs.network == 'tusdt0') || (needs.get-network.outputs.network == 'txtzevm' ) || (needs.get-network.outputs.network == 'themieth' ) || (needs.get-network.outputs.network == 'tabstracteth' ) || (needs.get-network.outputs.network == 'tkatanaeth' ) || (needs.get-network.outputs.network == 'tbobaeth' ) || (needs.get-network.outputs.network == 'tgasevm' )}}
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' ) || (needs.get-network.outputs.network == 'tip' ) || (needs.get-network.outputs.network == 'tplasma' ) || (needs.get-network.outputs.network == 'tog' ) || (needs.get-network.outputs.network == 'tkavaevm' ) || (needs.get-network.outputs.network == 'tplume') || (needs.get-network.outputs.network == 'tzksyncera') || (needs.get-network.outputs.network == 'tflow' ) || (needs.get-network.outputs.network == 'tmegaeth' ) || (needs.get-network.outputs.network == 'thbarevm' ) || (needs.get-network.outputs.network == 'tfluenteth' ) || (needs.get-network.outputs.network == 'tmantle' ) || (needs.get-network.outputs.network == 'tdogeos') || (needs.get-network.outputs.network == 'tjovayeth') || (needs.get-network.outputs.network == 'tokb') || (needs.get-network.outputs.network == 'tmorpheth') || (needs.get-network.outputs.network == 'tarcusdc') || (needs.get-network.outputs.network == 'tchiliz') || (needs.get-network.outputs.network == 'tunichain') || (needs.get-network.outputs.network == 'thpp') || (needs.get-network.outputs.network == 'th') || (needs.get-network.outputs.network == 'thoodeth') || (needs.get-network.outputs.network == 'tinketh') || (needs.get-network.outputs.network == 'tusdt0') || (needs.get-network.outputs.network == 'txtzevm' ) || (needs.get-network.outputs.network == 'themieth' ) || (needs.get-network.outputs.network == 'tabstracteth' ) || (needs.get-network.outputs.network == 'tkatanaeth' ) || (needs.get-network.outputs.network == 'tbobaeth' ) || (needs.get-network.outputs.network == 'tgasevm' ) || (needs.get-network.outputs.network == 'sepeth' )}}
environment: testnet
steps:
- uses: actions/checkout@v4
Expand Down
1 change: 1 addition & 0 deletions config/chainIds.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export const CHAIN_IDS = {
// Mainnet Networks
HOODI: 560048,
SEPETH: 11155111,
ARBITRUM_SEPOLIA: 421614,
OPTIMISM_SEPOLIA: 11155420,
POLYGON_AMOY: 80002,
Expand Down
17 changes: 17 additions & 0 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,14 @@ const config: HardhatUserConfig = {
`${PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT}`
]
},
sepeth: {
url: `https://ethereum-sepolia-rpc.publicnode.com`,
accounts: [
`${PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT}`,
`${PLACEHOLDER_KEY}`,
`${PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT}`
]
},
matic: {
url: `https://polygon-rpc.com/`,
accounts: [
Expand Down Expand Up @@ -1081,6 +1089,7 @@ const config: HardhatUserConfig = {
mainnet: `${ETHERSCAN_API_KEY}`,
goerli: `${ETHERSCAN_API_KEY}`,
hoodi: `${ETHERSCAN_API_KEY}`,
sepolia: `${ETHERSCAN_API_KEY}`,
//polygon
polygon: `${POLYGONSCAN_API_KEY}`,
polygonAmoy: `${POLYGONSCAN_API_KEY}`,
Expand Down Expand Up @@ -1281,6 +1290,14 @@ const config: HardhatUserConfig = {
browserURL: 'https://hoodi.etherscan.io'
}
},
{
network: 'sepolia',
chainId: CHAIN_IDS.SEPETH,
urls: {
apiURL: 'https://api-sepolia.etherscan.io/api',
browserURL: 'https://sepolia.etherscan.io'
}
},
{
network: 'arbitrumSepolia',
chainId: CHAIN_IDS.ARBITRUM_SEPOLIA,
Expand Down
1 change: 1 addition & 0 deletions scripts/chainConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export async function getChainConfig(chainId: number): Promise<ChainConfig> {
contractPath = `contracts/${walletImplementationContractName}.sol:${walletImplementationContractName}`;
break;
case CHAIN_IDS.HOODI:
case CHAIN_IDS.SEPETH:
forwarderContractName = 'ForwarderV4';
forwarderFactoryContractName = 'ForwarderFactoryV4';
contractPath = `contracts/${walletImplementationContractName}.sol:${walletImplementationContractName}`;
Expand Down
Loading