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

Permissionless deployment #332

Closed
wants to merge 22 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
feat: reduce chain config updates
  • Loading branch information
ameeshaagrawal committed Oct 24, 2023
commit 8440582648e19f892bb95a6bc5d1c42336b2a1f1
2 changes: 1 addition & 1 deletion hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ const config: HardhatUserConfig = {
},
networks: {
hardhat: {
chainId: hardhatChainNameToSlug.hardhat,
chainId: hardhatChainNameToSlug(HardhatChainName.HARDHAT),
},
...liveNetworks,
},
Expand Down
14 changes: 14 additions & 0 deletions scripts/constants/chainConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"31337": {
"chainSlug": 31337,
"chainName": "hardhat",
"timeout": 7200,
"rpc": "http://127.0.0.1:8545/",
"msgValueMaxThreshold": 10000000000000000,
"overrides": {
"type": 1,
"gasLimit": 20000000,
"gasPrice": 1000000000000
}
}
}
34 changes: 9 additions & 25 deletions scripts/constants/config.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,15 @@
import {
ChainSlug,
IntegrationTypes,
NativeSwitchboard,
} from "../../src/types";
import { ChainSlug, IntegrationTypes, NativeSwitchboard } from "../../src";
import chainConfig from "./chainConfig.json";

export const maxAllowedPacketLength = 10;

export const timeout: {
[key: string]: number;
} = {
[ChainSlug.BSC_TESTNET]: 7200,
[ChainSlug.POLYGON_MAINNET]: 7200,
[ChainSlug.BSC]: 7200,
[ChainSlug.POLYGON_MUMBAI]: 7200,
[ChainSlug.ARBITRUM_GOERLI]: 7200,
[ChainSlug.OPTIMISM_GOERLI]: 7200,
[ChainSlug.GOERLI]: 7200,
[ChainSlug.HARDHAT]: 7200,
[ChainSlug.ARBITRUM]: 7200,
[ChainSlug.OPTIMISM]: 7200,
[ChainSlug.MAINNET]: 7200,
[ChainSlug.SEPOLIA]: 7200,
[ChainSlug.AEVO_TESTNET]: 7200,
[ChainSlug.AEVO]: 7200,
[ChainSlug.LYRA_TESTNET]: 7200,
[ChainSlug.LYRA]: 7200,
[ChainSlug.XAI_TESTNET]: 7200,
const TIMEOUT = 7200;

// return chain specific timeout if present else default value
export const timeout = (chain: number): number => {
if (chainConfig[chain] && chainConfig[chain].timeout)
return chainConfig[chain].timeout;
return TIMEOUT;
};

export const getDefaultIntegrationType = (
Expand Down
9 changes: 5 additions & 4 deletions scripts/constants/networks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@ import {
ChainSlug,
ChainSlugToKey,
} from "../../src";
import chainConfig from "./chainConfig.json";

const dotenvConfigPath: string = process.env.DOTENV_CONFIG_PATH || "./.env";
dotenvConfig({ path: resolve(__dirname, dotenvConfigPath) });

export const chainSlugKeys: string[] = Object.values(ChainSlugToKey);

export function getJsonRpcUrl(chain: HardhatChainName | ChainId): string {
let jsonRpcUrl: string;
switch (chain) {
Expand Down Expand Up @@ -107,7 +106,9 @@ export function getJsonRpcUrl(chain: HardhatChainName | ChainId): string {
break;

default:
throw new Error("JSON RPC URL not found!!");
if (chainConfig[chain] && chainConfig[chain].rpc) {
jsonRpcUrl = chainConfig[chain].rpc;
} else throw new Error("JSON RPC URL not found!!");
}

return jsonRpcUrl;
Expand All @@ -119,5 +120,5 @@ const getProviderFromChainName = (hardhatChainName: HardhatChainName) => {
};

export const getProviderFromChainSlug = (chainSlug: ChainSlug) => {
return getProviderFromChainName(ChainSlugToKey[chainSlug]);
return getProviderFromChainName(ChainSlugToKey(chainSlug));
};
126 changes: 20 additions & 106 deletions scripts/deploy/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ dotenvConfig();

import { ChainSlug, DeploymentMode, CORE_CONTRACTS, version } from "../../src";
import { BigNumberish, utils } from "ethers";
import chainConfig from "../constants/chainConfig.json";

export const mode = process.env.DEPLOYMENT_MODE as
| DeploymentMode
| DeploymentMode.DEV;
Expand All @@ -28,22 +30,22 @@ console.log(
);

export const chains: Array<ChainSlug> = [
// ChainSlug.GOERLI,
ChainSlug.GOERLI,
ChainSlug.ARBITRUM_GOERLI,
ChainSlug.OPTIMISM_GOERLI,
ChainSlug.POLYGON_MUMBAI,
ChainSlug.BSC_TESTNET,
ChainSlug.AEVO_TESTNET,
ChainSlug.LYRA_TESTNET,
ChainSlug.SEPOLIA,
ChainSlug.XAI_TESTNET,
ChainSlug.AEVO,
ChainSlug.MAINNET,
ChainSlug.ARBITRUM,
ChainSlug.OPTIMISM,
ChainSlug.LYRA,
ChainSlug.BSC,
ChainSlug.POLYGON_MAINNET,
ChainSlug.XAI_TESTNET,
];

export const executionManagerVersion = CORE_CONTRACTS.ExecutionManager;
Expand All @@ -59,23 +61,11 @@ export const gasLimit = undefined;
export const gasPrice = undefined;
export const type = 0;

export const msgValueMaxThreshold: { [chain in ChainSlug]?: BigNumberish } = {
[ChainSlug.ARBITRUM_GOERLI]: utils.parseEther("0.001"),
[ChainSlug.OPTIMISM_GOERLI]: utils.parseEther("0.001"),
[ChainSlug.POLYGON_MUMBAI]: utils.parseEther("0.1"),
[ChainSlug.BSC_TESTNET]: utils.parseEther("0.001"),
[ChainSlug.GOERLI]: utils.parseEther("0.001"),
[ChainSlug.SEPOLIA]: utils.parseEther("0.001"),
[ChainSlug.ARBITRUM]: utils.parseEther("0.001"),
[ChainSlug.OPTIMISM]: utils.parseEther("0.001"),
[ChainSlug.POLYGON_MAINNET]: utils.parseEther("0.1"),
[ChainSlug.BSC]: utils.parseEther("0.001"),
[ChainSlug.MAINNET]: utils.parseEther("0.001"),
[ChainSlug.AEVO_TESTNET]: utils.parseEther("0.001"),
[ChainSlug.AEVO]: utils.parseEther("0.001"),
[ChainSlug.LYRA_TESTNET]: utils.parseEther("0.001"),
[ChainSlug.LYRA]: utils.parseEther("0.001"),
[ChainSlug.XAI_TESTNET]: utils.parseEther("0.001"),
const MSG_VALUE_MAX_THRESHOLD = utils.parseEther("0.001");
export const msgValueMaxThreshold = (chain: ChainSlug): BigNumberish => {
if (chainConfig[chain] && chainConfig[chain].msgValueMaxThreshold)
return chainConfig[chain].msgValueMaxThreshold;
return MSG_VALUE_MAX_THRESHOLD;
};

export const transmitterAddresses = {
Expand All @@ -97,91 +87,15 @@ export const executorAddresses = {
[DeploymentMode.PROD]: "0x42639d8fd154b72472e149a7d5ac13fa280303d9",
};

export const overrides: {
[chain in ChainSlug | number]?: {
type?: number | undefined;
gasLimit?: BigNumberish | undefined;
gasPrice?: BigNumberish | undefined;
};
} = {
[ChainSlug.ARBITRUM]: {
type,
gasLimit: 20_000_000,
gasPrice,
},
[ChainSlug.ARBITRUM_GOERLI]: {
// type,
// gasLimit: 20_000_000,
// gasPrice,
},
[ChainSlug.OPTIMISM]: {
type,
gasLimit: 2_000_000,
gasPrice,
},
[ChainSlug.OPTIMISM_GOERLI]: {
// type,
// gasLimit: 20_000_000,
// gasPrice,
},
[ChainSlug.BSC]: {
type,
gasLimit,
gasPrice,
},
[ChainSlug.BSC_TESTNET]: {
type,
gasLimit,
gasPrice,
},
[ChainSlug.MAINNET]: {
type,
gasLimit,
gasPrice,
},
[ChainSlug.GOERLI]: {
type,
gasLimit: 3_000_000,
gasPrice,
},
[ChainSlug.POLYGON_MAINNET]: {
type,
gasLimit,
gasPrice: 250_000_000_000,
},
[ChainSlug.POLYGON_MUMBAI]: {
type: 0,
gasLimit: 2_000_000,
gasPrice,
},
[ChainSlug.SEPOLIA]: {
type,
gasLimit,
gasPrice,
},
[ChainSlug.AEVO_TESTNET]: {
type: 2,
// gasLimit,
// gasPrice,
},
[ChainSlug.AEVO]: {
type: 1,
// gasLimit,
gasPrice: 100_000_000,
},
[ChainSlug.LYRA_TESTNET]: {
type: 2,
// gasLimit,
// gasPrice: 100_000_000,
},
[ChainSlug.LYRA]: {
// type: 1,
// gasLimit,
// gasPrice: 100_000_000,
},
[ChainSlug.XAI_TESTNET]: {
// type: 1,
// gasLimit,
// gasPrice: 100_000_000,
},
export const overrides = (
chain: ChainSlug | number
): {
type?: number | undefined;
gasLimit?: BigNumberish | undefined;
gasPrice?: BigNumberish | undefined;
} => {
if (chainConfig[chain] && chainConfig[chain].overrides)
return chainConfig[chain].overrides;

return { type, gasLimit, gasPrice };
};
2 changes: 1 addition & 1 deletion scripts/limits-updater/utils/relayer.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export const loadRelayerConfigs = (): Map<number, RelayerConfig> => {
const relayerConfigs: Map<number, RelayerConfig> = loadRelayerConfigs();

export const getRpcProvider = (chainSlug: number) => {
return new StaticJsonRpcProvider(getJsonRpcUrl(ChainSlugToKey[chainSlug]));
return new StaticJsonRpcProvider(getJsonRpcUrl(ChainSlugToKey(chainSlug)));
};

export const getSigner = (chainSlug: number) => {
Expand Down
2 changes: 1 addition & 1 deletion src/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
DeploymentMode,
IntegrationTypes,
DeploymentAddresses,
} from "./types";
} from "./";

import dev_addresses from "../deployments/dev_addresses.json";
import prod_addresses from "../deployments/prod_addresses.json";
Expand Down
91 changes: 91 additions & 0 deletions src/chain-types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/***********************************************
* *
* Update below values when new chain is added *
* *
***********************************************/

export enum HardhatChainName {
ARBITRUM = "arbitrum",
ARBITRUM_GOERLI = "arbitrum-goerli",
OPTIMISM = "optimism",
OPTIMISM_GOERLI = "optimism-goerli",
AVALANCHE = "avalanche",
AVALANCHE_TESTNET = "avalanche-testnet",
BSC = "bsc",
BSC_TESTNET = "bsc-testnet",
MAINNET = "mainnet",
GOERLI = "goerli",
SEPOLIA = "sepolia",
POLYGON_MAINNET = "polygon-mainnet",
POLYGON_MUMBAI = "polygon-mumbai",
AEVO_TESTNET = "aevo-testnet",
AEVO = "aevo",
LYRA_TESTNET = "lyra-testnet",
LYRA = "lyra",
XAI_TESTNET = "xai_testnet",
HARDHAT = "hardhat",
}

export enum ChainId {
ARBITRUM = 42161,
ARBITRUM_GOERLI = 421613,
OPTIMISM = 10,
OPTIMISM_GOERLI = 420,
BSC = 56,
BSC_TESTNET = 97,
MAINNET = 1,
GOERLI = 5,
SEPOLIA = 11155111,
POLYGON_MAINNET = 137,
POLYGON_MUMBAI = 80001,
AEVO_TESTNET = 11155112,
AEVO = 2999,
HARDHAT = 31337,
AVALANCHE = 43114,
LYRA_TESTNET = 901,
LYRA = 0, // update this
XAI_TESTNET = 47279324479,
}

export enum ChainSlug {
ARBITRUM = ChainId.ARBITRUM,
ARBITRUM_GOERLI = ChainId.ARBITRUM_GOERLI,
OPTIMISM = ChainId.OPTIMISM,
OPTIMISM_GOERLI = ChainId.OPTIMISM_GOERLI,
BSC = ChainId.BSC,
BSC_TESTNET = ChainId.BSC_TESTNET,
MAINNET = ChainId.MAINNET,
GOERLI = ChainId.GOERLI,
SEPOLIA = ChainId.SEPOLIA,
POLYGON_MAINNET = ChainId.POLYGON_MAINNET,
POLYGON_MUMBAI = ChainId.POLYGON_MUMBAI,
AEVO_TESTNET = ChainId.AEVO_TESTNET,
AEVO = ChainId.AEVO,
HARDHAT = ChainId.HARDHAT,
AVALANCHE = ChainId.AVALANCHE,
LYRA_TESTNET = ChainId.LYRA_TESTNET,
LYRA = ChainId.LYRA,
XAI_TESTNET = 1399904803,
}

export const TestnetIds: ChainSlug[] = [
ChainSlug.GOERLI,
ChainSlug.SEPOLIA,
ChainSlug.POLYGON_MUMBAI,
ChainSlug.ARBITRUM_GOERLI,
ChainSlug.OPTIMISM_GOERLI,
ChainSlug.BSC_TESTNET,
ChainSlug.AEVO_TESTNET,
ChainSlug.LYRA_TESTNET,
ChainSlug.XAI_TESTNET,
];

export const MainnetIds: ChainSlug[] = [
ChainSlug.MAINNET,
ChainSlug.POLYGON_MAINNET,
ChainSlug.ARBITRUM,
ChainSlug.OPTIMISM,
ChainSlug.BSC,
ChainSlug.AEVO,
ChainSlug.LYRA,
];
5 changes: 3 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { DeploymentMode } from "./types";
import { DeploymentMode } from "./socket-types";

export * from "./types";
export * from "./socket-types";
export * from "./chain-types";
export * from "./addresses";

export const version = {
Expand Down
Loading