Skip to content

Commit ca342ac

Browse files
update scripts
1 parent de5b09a commit ca342ac

File tree

5 files changed

+117
-100
lines changed

5 files changed

+117
-100
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"@openzeppelin/contracts": "4.7.3",
1313
"@openzeppelin/contracts-upgradeable": "4.7.3",
1414
"@thirdweb-dev/dynamic-contracts": "^1.1.2",
15-
"@thirdweb-dev/sdk": "^3.10.64",
15+
"@thirdweb-dev/sdk": "^4",
16+
"@thirdweb-dev/chains": "^0.1.54",
1617
"@typechain/ethers-v5": "^10.0.0",
1718
"@types/fs-extra": "^9.0.13",
1819
"@types/mocha": "^9.1.0",

scripts/deploy-prebuilt-deterministic/constants.ts

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,45 @@
1+
import {
2+
Arbitrum,
3+
ArbitrumGoerli,
4+
Avalanche,
5+
AvalancheFuji,
6+
Base,
7+
BaseGoerli,
8+
CeloAlfajoresTestnet,
9+
Ethereum,
10+
Goerli,
11+
Linea,
12+
LineaTestnet,
13+
Mumbai,
14+
Optimism,
15+
OptimismGoerli,
16+
Polygon,
17+
Sepolia,
18+
} from "@thirdweb-dev/chains";
119
import { ChainId } from "@thirdweb-dev/sdk";
220
import dotenv from "dotenv";
321

422
dotenv.config();
523

24+
export const DEFAULT_CHAINS = [
25+
Ethereum,
26+
Goerli,
27+
Sepolia,
28+
Polygon,
29+
Mumbai,
30+
Optimism,
31+
OptimismGoerli,
32+
Arbitrum,
33+
ArbitrumGoerli,
34+
Avalanche,
35+
AvalancheFuji,
36+
Base,
37+
BaseGoerli,
38+
Linea,
39+
LineaTestnet,
40+
CeloAlfajoresTestnet,
41+
];
42+
643
export const chainIdToName: Record<number, string> = {
744
[ChainId.Mumbai]: "mumbai",
845
[ChainId.Goerli]: "goerli",
@@ -12,19 +49,16 @@ export const chainIdToName: Record<number, string> = {
1249
[ChainId.OptimismGoerli]: "optimism-goerli",
1350
[ChainId.Arbitrum]: "arbitrum",
1451
[ChainId.ArbitrumGoerli]: "arbitrum-goerli",
15-
[ChainId.Fantom]: "fantom",
16-
[ChainId.FantomTestnet]: "fantom-testnet",
1752
[ChainId.Avalanche]: "avalanche",
1853
[ChainId.AvalancheFujiTestnet]: "avalanche-testnet",
19-
[ChainId.BinanceSmartChainMainnet]: "binance",
20-
[ChainId.BinanceSmartChainTestnet]: "binance-testnet",
2154
[84531]: "base-goerli",
2255
[8453]: "base",
2356
};
2457

2558
export const chainIdApiKey: Record<number, string | undefined> = {
2659
[ChainId.Mumbai]: process.env.POLYGONSCAN_API_KEY || process.env.SCAN_API_KEY,
2760
[ChainId.Goerli]: process.env.ETHERSCAN_API_KEY || process.env.SCAN_API_KEY,
61+
[Sepolia.chainId]: process.env.ETHERSCAN_API_KEY || process.env.SCAN_API_KEY,
2862
[ChainId.Polygon]: process.env.POLYGONSCAN_API_KEY || process.env.SCAN_API_KEY,
2963
[ChainId.Mainnet]: process.env.ETHERSCAN_API_KEY || process.env.SCAN_API_KEY,
3064
[ChainId.Optimism]: process.env.OPTIMISM_SCAN_API_KEY || process.env.SCAN_API_KEY,
@@ -37,13 +71,16 @@ export const chainIdApiKey: Record<number, string | undefined> = {
3771
[ChainId.AvalancheFujiTestnet]: process.env.SNOWTRACE_API_KEY || process.env.SCAN_API_KEY,
3872
[ChainId.BinanceSmartChainMainnet]: process.env.BINANCE_SCAN_API_KEY || process.env.SCAN_API_KEY,
3973
[ChainId.BinanceSmartChainTestnet]: process.env.BINANCE_SCAN_API_KEY || process.env.SCAN_API_KEY,
40-
[84531]: "" as string,
41-
[8453]: process.env.BASE_SCAN_API_KEY || process.env.SCAN_API_KEY,
74+
[Base.chainId]: process.env.BASE_SCAN_API_KEY || process.env.SCAN_API_KEY,
75+
[BaseGoerli.chainId]: process.env.BASE_SCAN_API_KEY || process.env.SCAN_API_KEY,
76+
[Linea.chainId]: process.env.LINEA_SCAN_API_KEY || process.env.SCAN_API_KEY,
77+
[LineaTestnet.chainId]: process.env.LINEA_SCAN_API_KEY || process.env.SCAN_API_KEY,
4278
};
4379

4480
export const apiMap: Record<number, string> = {
4581
1: "https://api.etherscan.io/api",
4682
5: "https://api-goerli.etherscan.io/api",
83+
[Sepolia.chainId]: "https://api-sepolia.etherscan.io/api",
4784
10: "https://api-optimistic.etherscan.io/api",
4885
56: "https://api.bscscan.com/api",
4986
97: "https://api-testnet.bscscan.com/api",
@@ -58,6 +95,8 @@ export const apiMap: Record<number, string> = {
5895
80001: "https://api-testnet.polygonscan.com/api",
5996
84531: "https://api-goerli.basescan.org/api",
6097
8453: "https://api.basescan.org/api",
98+
[Linea.chainId]: "https://api.lineascan.build/api",
99+
[LineaTestnet.chainId]: "https://api-testnet.lineascan.build/api",
61100
};
62101

63102
export const contractsToDeploy = [

scripts/deploy-prebuilt-deterministic/deploy-deterministic-std-chains.ts

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,51 +13,53 @@ import {
1313
resolveAddress,
1414
} from "@thirdweb-dev/sdk";
1515
import { Signer } from "ethers";
16-
import { apiMap, chainIdApiKey, chainIdToName } from "./constants";
16+
import { DEFAULT_CHAINS, apiMap, chainIdApiKey } from "./constants";
1717

1818
////// To run this script: `npx ts-node scripts/deploy-prebuilt-deterministic/deploy-deterministic-std-chains.ts` //////
1919
///// MAKE SURE TO PUT IN THE RIGHT CONTRACT NAME HERE AFTER PUBLISHING IT /////
2020
//// THE CONTRACT SHOULD BE PUBLISHED WITH THE NEW PUBLISH FLOW ////
21-
const publishedContractName = "DropERC1155";
22-
const publisherKey: string = process.env.THIRDWEB_PUBLISHER_PRIVATE_KEY as string;
21+
const publishedContractName = "AccountExtension";
22+
const publisherAddress: string = "deployer.thirdweb.eth";
2323
const deployerKey: string = process.env.PRIVATE_KEY as string;
2424
const secretKey: string = process.env.THIRDWEB_SECRET_KEY as string;
2525

26-
const polygonSDK = ThirdwebSDK.fromPrivateKey(publisherKey, "polygon", { secretKey });
26+
const polygonSDK = new ThirdwebSDK("polygon", { secretKey });
2727

2828
async function main() {
29-
const publisher = await polygonSDK.wallet.getAddress();
30-
const latest = await polygonSDK.getPublisher().getLatest(publisher, publishedContractName);
29+
const latest = await polygonSDK.getPublisher().getLatest(publisherAddress, publishedContractName);
3130

3231
if (latest && latest.metadataUri) {
3332
const { extendedMetadata } = await fetchAndCacheDeployMetadata(latest?.metadataUri, polygonSDK.storage);
3433

35-
for (const [chainId, networkName] of Object.entries(chainIdToName)) {
34+
for (const chain of DEFAULT_CHAINS) {
3635
const isNetworkEnabled =
37-
extendedMetadata?.networksForDeployment?.networksEnabled.includes(parseInt(chainId)) ||
36+
extendedMetadata?.networksForDeployment?.networksEnabled.includes(chain.chainId) ||
3837
extendedMetadata?.networksForDeployment?.allNetworks;
3938

4039
if (extendedMetadata?.networksForDeployment && !isNetworkEnabled) {
41-
console.log(`Deployment of ${publishedContractName} disabled on ${networkName}\n`);
40+
console.log(`Deployment of ${publishedContractName} disabled on ${chain.slug}\n`);
4241
continue;
4342
}
4443

45-
console.log(`Deploying ${publishedContractName} on ${networkName}`);
46-
const sdk = ThirdwebSDK.fromPrivateKey(deployerKey, chainId, { secretKey }); // can also hardcode the chain here
44+
console.log(`Deploying ${publishedContractName} on ${chain.slug}`);
45+
const sdk = ThirdwebSDK.fromPrivateKey(deployerKey, chain, { secretKey }); // can also hardcode the chain here
4746
const signer = sdk.getSigner() as Signer;
4847
// const chainId = (await sdk.getProvider().getNetwork()).chainId;
4948

5049
try {
51-
const implAddr = await getThirdwebContractAddress(publishedContractName, parseInt(chainId), sdk.storage);
50+
const implAddr = await getThirdwebContractAddress(publishedContractName, chain.chainId, sdk.storage);
5251
if (implAddr) {
53-
console.log(`implementation ${implAddr} already deployed on chainId: ${chainId}`);
52+
console.log(`implementation ${implAddr} already deployed on chainId: ${chain.slug}`);
5453
console.log();
5554
continue;
5655
}
57-
} catch (error) {}
56+
} catch (error) {
57+
// no-op
58+
}
5859

5960
try {
60-
console.log("Deploying as", await signer?.getAddress());
61+
console.log("Deploying as", await sdk.wallet.getAddress());
62+
console.log("Balance", await sdk.wallet.balance().then(b => b.displayValue));
6163
// any evm deployment flow
6264

6365
// Deploy CREATE2 factory (if not already exists)
@@ -133,14 +135,16 @@ async function main() {
133135
console.log();
134136
console.log("---------- Verification ---------");
135137
console.log();
136-
for (const [chainId, networkName] of Object.entries(chainIdToName)) {
137-
const sdk = new ThirdwebSDK(chainId);
138-
console.log("Network: ", networkName);
138+
for (const chain of DEFAULT_CHAINS) {
139+
const sdk = new ThirdwebSDK(chain, {
140+
secretKey,
141+
});
142+
console.log("Verifying on: ", chain.slug);
139143
try {
140144
await sdk.verifier.verifyThirdwebContract(
141145
publishedContractName,
142-
apiMap[parseInt(chainId)],
143-
chainIdApiKey[parseInt(chainId)] as string,
146+
apiMap[chain.chainId],
147+
chainIdApiKey[chain.chainId] as string,
144148
);
145149
console.log();
146150
} catch (error) {

scripts/deploy-prebuilt-deterministic/verify.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
import { ThirdwebSDK } from "@thirdweb-dev/sdk";
22

3-
import { apiMap, chainIdApiKey, chainIdToName } from "./constants";
3+
import { DEFAULT_CHAINS, apiMap, chainIdApiKey } from "./constants";
44

55
////// To run this script: `npx ts-node scripts/deploy-prebuilt-deterministic/verify.ts` //////
6-
const deployedContractName = "VoteERC20";
6+
const deployedContractName = "AccountExtension";
7+
const secretKey: string = process.env.THIRDWEB_SECRET_KEY as string;
78

89
async function main() {
910
console.log("---------- Verification ---------");
1011
console.log();
11-
for (const [chainId, networkName] of Object.entries(chainIdToName)) {
12-
const sdk = new ThirdwebSDK(chainId);
13-
console.log("Network: ", networkName);
12+
for (const chain of DEFAULT_CHAINS) {
13+
const sdk = new ThirdwebSDK(chain, {
14+
secretKey,
15+
});
16+
console.log("Network: ", chain.slug);
1417
try {
1518
await sdk.verifier.verifyThirdwebContract(
1619
deployedContractName,
17-
apiMap[parseInt(chainId)],
18-
chainIdApiKey[parseInt(chainId)] as string,
20+
apiMap[chain.chainId],
21+
chainIdApiKey[chain.chainId] as string,
1922
);
2023
console.log();
2124
} catch (error) {
22-
console.log(error);
25+
if ((error as Error)?.message?.includes("already verified")) {
26+
console.log("Already verified");
27+
} else {
28+
console.log(error);
29+
}
2330
console.log();
2431
}
2532
}

0 commit comments

Comments
 (0)