Skip to content

Commit

Permalink
feat: roninscan, deploy, relayer ccip, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
artemwoofsoftware committed Jan 25, 2025
1 parent 51c2ad5 commit 0e2bcac
Show file tree
Hide file tree
Showing 16 changed files with 474 additions and 9 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/deploy-market.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ on:
- mantle
- scroll-goerli
- scroll
- ronin-saigon
deployment:
description: Deployment Name (e.g. "usdc")
required: true
Expand Down Expand Up @@ -50,7 +51,7 @@ jobs:
with:
wallet_connect_project_id: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
requested_network: "${{ inputs.network }}"
ethereum_url: "${{ fromJSON('{\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
ethereum_url: "${{ fromJSON('{\"ronin-saigon\":\"https://saigon-testnet.roninchain.com/rpc\",\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
port: 8585
if: github.event.inputs.eth_pk == ''

Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/enact-migration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ on:
- mantle
- scroll-goerli
- scroll
- ronin-saigon
deployment:
description: Deployment Name (e.g. "usdc")
required: true
Expand Down Expand Up @@ -78,7 +79,7 @@ jobs:
with:
wallet_connect_project_id: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
requested_network: "${{ inputs.network }}"
ethereum_url: "${{ fromJSON('{\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
ethereum_url: "${{ fromJSON('{\"ronin-saigon\":\"https://saigon-testnet.roninchain.com/rpc\",\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
port: 8585
if: github.event.inputs.eth_pk == ''

Expand All @@ -87,7 +88,7 @@ jobs:
with:
wallet_connect_project_id: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
requested_network: "${{ env.GOV_NETWORK }}"
ethereum_url: "${{ fromJSON('{\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\"}')[env.GOV_NETWORK] }}"
ethereum_url: "${{ fromJSON('{\"ronin-saigon\":\"https://saigon-testnet.roninchain.com/rpc\",\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\"}')[env.GOV_NETWORK] }}"
port: 8685
if: github.event.inputs.eth_pk == '' && env.GOV_NETWORK != '' && github.event.inputs.impersonateAccount == ''

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/prepare-migration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ on:
- base-goerli
- optimism
- mantle
- ronin-saigon
deployment:
description: Deployment Name (e.g. "usdc")
required: true
Expand Down Expand Up @@ -50,7 +51,7 @@ jobs:
with:
wallet_connect_project_id: ${{ secrets.WALLET_CONNECT_PROJECT_ID }}
requested_network: "${{ inputs.network }}"
ethereum_url: "${{ fromJSON('{\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
ethereum_url: "${{ fromJSON('{\"ronin-saigon\":\"https://saigon-testnet.roninchain.com/rpc\",\"mantle\":\"https://mantle-mainnet.infura.io/v3/$INFURA_KEY\",\"optimism\":\"https://rpc.ankr.com/optimism/$ANKR_KEY\",\"fuji\":\"https://api.avax-test.network/ext/bc/C/rpc\",\"mainnet\":\"https://mainnet.infura.io/v3/$INFURA_KEY\",\"goerli\":\"https://goerli.infura.io/v3/$INFURA_KEY\",\"sepolia\":\"https://sepolia.infura.io/v3/$INFURA_KEY\",\"mumbai\":\"https://polygon-mumbai.infura.io/v3/$INFURA_KEY\",\"polygon\":\"https://polygon-mainnet.infura.io/v3/$INFURA_KEY\",\"arbitrum-goerli\":\"https://arbitrum-goerli.infura.io/v3/$INFURA_KEY\",\"arbitrum\":\"https://arbitrum-mainnet.infura.io/v3/$INFURA_KEY\",\"base\":\"https://rpc.ankr.com/base/$ANKR_KEY\",\"base-goerli\":\"https://base-goerli.infura.io/v3/$INFURA_KEY\",\"linea-goerli\":\"https://linea-goerli.infura.io/v3/$INFURA_KEY\",\"scroll-goerli\":\"https://alpha-rpc.scroll.io/l2\",\"scroll\":\"https://rpc.scroll.io\"}')[inputs.network] }}"
port: 8585
if: github.event.inputs.eth_pk == ''

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run-scenarios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
fail-fast: false
matrix:
bases: [ development, mainnet, mainnet-weth, mainnet-usdt, mainnet-wsteth, mainnet-usds, goerli, goerli-weth, sepolia-usdc, sepolia-weth, fuji, mumbai, polygon, polygon-usdt, arbitrum-usdc.e, arbitrum-usdc, arbitrum-weth, arbitrum-usdt, arbitrum-goerli-usdc, arbitrum-goerli-usdc.e, base-usdbc, base-weth, base-usdc, base-aero, base-goerli, base-goerli-weth, linea-goerli, optimism-usdc, optimism-usdt, optimism-weth, mantle-usde, scroll-goerli, scroll-usdc]
bases: [ development, mainnet, mainnet-weth, mainnet-usdt, mainnet-wsteth, mainnet-usds, goerli, goerli-weth, sepolia-usdc, sepolia-weth, fuji, mumbai, polygon, polygon-usdt, arbitrum-usdc.e, arbitrum-usdc, arbitrum-weth, arbitrum-usdt, arbitrum-goerli-usdc, arbitrum-goerli-usdc.e, base-usdbc, base-weth, base-usdc, base-aero, base-goerli, base-goerli-weth, linea-goerli, optimism-usdc, optimism-usdt, optimism-weth, mantle-usde, scroll-goerli, scroll-usdc, ronin-saigon]
name: Run scenarios
env:
ETHERSCAN_KEY: ${{ secrets.ETHERSCAN_KEY }}
Expand Down
36 changes: 36 additions & 0 deletions deployments/ronin-saigon/usdc/configuration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"name": "Compound USDC",
"symbol": "cUSDCv3",
"baseToken": "USDC",
"baseTokenAddress": "0x067fbff8990c58ab90bae3c97241c5d736053f77",
"borrowMin": "100e6",
"storeFrontPriceFactor": 0.6,
"targetReserves": "5_000_000e6",
"pauseGuardian": "",
"rates": {
"borrowBase": 0.015,
"borrowSlopeLow": 0.0333,
"borrowKink": 0.9,
"borrowSlopeHigh": 4.0,
"supplyBase": 0,
"supplySlopeLow": 0.039,
"supplyKink": 0.9,
"supplySlopeHigh": 3.6
},
"tracking": {
"indexScale": "1e15",
"baseSupplySpeed": "46296296296e0",
"baseBorrowSpeed": "46296296296e0",
"baseMinForRewards": "1000e6"
},
"assets": {
"WRON": {
"address": "0xA959726154953bAe111746E265E6d754F48570E6",
"decimals": "18",
"borrowCF": 0.82,
"liquidateCF": 0.87,
"liquidationFactor": 0.93,
"supplyCap": "2800e18"
}
}
}
112 changes: 112 additions & 0 deletions deployments/ronin-saigon/usdc/deploy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
import {
Deployed,
DeploymentManager,
} from '../../../plugins/deployment_manager';
import { DeploySpec, deployComet } from '../../../src/deploy';

const HOUR = 60 * 60;
const DAY = 24 * HOUR;

const MAINNET_TIMELOCK = '0x6d903f6003cca6255d85cca4d3b5e5146dc33925';

export default async function deploy(
deploymentManager: DeploymentManager,
deploySpec: DeploySpec
): Promise<Deployed | void> {
const deployed = await deployContracts(deploymentManager, deploySpec);
return deployed;
}

async function deployContracts(
deploymentManager: DeploymentManager,
deploySpec: DeploySpec
): Promise<Deployed | void> {
const trace = deploymentManager.tracer();

// Pull in existing assets
const WRON = await deploymentManager.existing(
'WRON',
'0xA959726154953bAe111746E265E6d754F48570E6',
'ronin-saigon'
);

console.log(WRON);

console.log(await WRON.decimals());

// pre-deployed OptimismMintableERC20
const COMP = await deploymentManager.existing(
'COMP',
'0x52b7D8851d6CcBC6342ba0855Be65f7B82A3F17f',
'ronin-saigon'
);

const l2CCIPMessenger = await deploymentManager.existing(
'roninSaigonL2CCIPMessenger',
'0x0aCAe4e51D3DA12Dd3F45A66e8b660f740e6b820',
'ronin-saigon'
);

const l2CCIPBridge = await deploymentManager.existing(
'roninSaigonL2CCIPBridge',
'0x0aCAe4e51D3DA12Dd3F45A66e8b660f740e6b820',
'ronin-saigon'
);

// Deploy OptimismBridgeReceiver
const bridgeReceiver = await deploymentManager.deploy(
'bridgeReceiver',
'bridges/optimism/OptimismBridgeReceiver.sol',
[l2CCIPMessenger.address]
);

// Deploy Local Timelock
const localTimelock = await deploymentManager.deploy(
'timelock',
'vendor/Timelock.sol',
[
bridgeReceiver.address, // admin
1 * DAY, // delay
14 * DAY, // grace period
12 * HOUR, // minimum delay
30 * DAY, // maxiumum delay
]
);

// Initialize OptimismBridgeReceiver
await deploymentManager.idempotent(
async () => !(await bridgeReceiver.initialized()),
async () => {
trace(`Initializing BridgeReceiver`);
await bridgeReceiver.initialize(
MAINNET_TIMELOCK, // govTimelock
localTimelock.address // localTimelock
);
trace(`BridgeReceiver initialized`);
}
);

// Deploy Comet
const deployed = await deployComet(deploymentManager, deploySpec);
const { comet } = deployed;

// Deploy Bulker
// It won't be used, as we do not have MNT as a base and as a collateral
const bulker = await deploymentManager.deploy(
'bulker',
'bulkers/BaseBulker.sol',
[
await comet.governor(), // admin
WRON.address, // wrapped native token
]
);

return {
...deployed,
bridgeReceiver,
l2CCIPMessenger,
l2CCIPBridge,
bulker,
COMP,
};
}
36 changes: 36 additions & 0 deletions deployments/ronin-saigon/usdc/relations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import baseRelationConfig from '../../relations';

export default {
...baseRelationConfig,
governor: {
artifact:
'contracts/bridges/optimism/OptimismBridgeReceiver.sol:OptimismBridgeReceiver',
},

l2CrossDomainMessenger: {
delegates: {
field: {
slot:
'0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc',
},
},
},

l2StandardBridge: {
delegates: {
field: {
slot:
'0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc',
},
},
},

TransparentUpgradeableProxy: {
artifact: 'contracts/ERC20.sol:ERC20',
delegates: {
field: {
slot: '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc'
}
}
},
};
13 changes: 13 additions & 0 deletions deployments/sepolia/usdc/relations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,19 @@ export default {
}
}
},
roninSaigonL1CCIPMessenger: {
delegates: {
field: async () => '0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59'
}
},
roninSaigonL1CCIPBridge: {
delegates: {
field: {
slot:
'0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc'
}
}
},
lineaL1usdcBridge: {
delegates: {
field: {
Expand Down
4 changes: 3 additions & 1 deletion deployments/sepolia/usdc/roots.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,7 @@
"configurator": "0xc28aD44975C614EaBe0Ed090207314549e1c6624",
"rewards": "0x8bF5b658bdF0388E8b482ED51B14aef58f90abfD",
"fauceteer": "0x68793eA49297eB75DFB4610B68e076D2A5c7646C",
"bulker": "0x157c001bb1F8b33743B14483Be111C961d8e11dE"
"bulker": "0x157c001bb1F8b33743B14483Be111C961d8e11dE",
"roninSaigonL1CCIPMessenger": "0x0aCAe4e51D3DA12Dd3F45A66e8b660f740e6b820",
"roninSaigonL1CCIPBridge": "0x0aCAe4e51D3DA12Dd3F45A66e8b660f740e6b820"
}
19 changes: 17 additions & 2 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import optimismWethRelationConfigMap from './deployments/optimism/weth/relations
import mantleRelationConfigMap from './deployments/mantle/usde/relations';
import scrollGoerliRelationConfigMap from './deployments/scroll-goerli/usdc/relations';
import scrollRelationConfigMap from './deployments/scroll/usdc/relations';
import roninSaigonRelationConfigMap from './deployments/ronin-saigon/usdc/relations';

task('accounts', 'Prints the list of accounts', async (taskArgs, hre) => {
for (const account of await hre.ethers.getSigners()) console.log(account.address);
Expand Down Expand Up @@ -117,6 +118,11 @@ const networkConfigs: NetworkConfig[] = [
{ network: 'rinkeby', chainId: 4 },
{ network: 'goerli', chainId: 5 },
{ network: 'sepolia', chainId: 11155111 },
{
network: 'ronin-saigon',
chainId: 2021,
url: 'https://saigon-testnet.roninchain.com/rpc',
},
{
network: 'polygon',
chainId: 137,
Expand Down Expand Up @@ -242,8 +248,8 @@ const config: HardhatUserConfig = {
gasPrice: 'auto',
blockGasLimit: 120000000,
accounts: ETH_PK ?
[...deriveAccounts(ETH_PK)].map(privateKey => ({ privateKey, balance: (10n ** 36n).toString() }))
: { mnemonic: MNEMONIC, accountsBalance: (10n ** 36n).toString() },
[...deriveAccounts(ETH_PK)].map(privateKey => ({ privateKey, balance: (10n ** 36n).toString() }))
: { mnemonic: MNEMONIC, accountsBalance: (10n ** 36n).toString() },
// this should only be relied upon for test harnesses and coverage (which does not use viaIR flag)
allowUnlimitedContractSize: true,
hardfork: 'shanghai'
Expand Down Expand Up @@ -427,6 +433,9 @@ const config: HardhatUserConfig = {
},
'scroll': {
usdc: scrollRelationConfigMap
},
'ronin-saigon': {
usdc: roninSaigonRelationConfigMap
}
},
},
Expand Down Expand Up @@ -620,6 +629,12 @@ const config: HardhatUserConfig = {
network: 'scroll',
deployment: 'usdc',
auxiliaryBase: 'mainnet'
},
{
name: 'ronin-saigon',
network: 'ronin-saigon',
deployment: 'usdc',
auxiliaryBase: 'sepolia'
}
],
},
Expand Down
3 changes: 3 additions & 0 deletions plugins/deployment_manager/Import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ export async function importContract(
): Promise<BuildFile> {
try {
console.log(`Importing ${address} from ${network} etherscan`);
if(network === 'ronin-saigon') {
return (await loadContract('ronin-saigon', network, address)) as BuildFile;
}
return (await loadContract('etherscan', network, address)) as BuildFile;
} catch (e) {
if (retries === 0 || (e.message && e.message.includes('Contract source code not verified'))) {
Expand Down
7 changes: 7 additions & 0 deletions plugins/import/etherscan.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export function getEtherscanApiUrl(network: string): string {
'linea-goerli': 'api-goerli.lineascan.build',
optimism: 'api-optimistic.etherscan.io',
mantle: 'api.mantlescan.xyz',
'ronin-saigon': 'explorer-kintsugi.roninchain.com/v2/2021',
'scroll-goerli': 'alpha-blockscout.scroll.io',
scroll: 'api.scrollscan.com'
}[network];
Expand Down Expand Up @@ -53,6 +54,7 @@ export function getEtherscanUrl(network: string): string {
'linea-goerli': 'goerli.lineascan.build',
optimism: 'optimistic.etherscan.io',
mantle: 'mantlescan.xyz',
'ronin-saigon': 'explorer-kintsugi.roninchain.com/v2/2021',
'scroll-goerli': 'alpha-blockscout.scroll.io',
scroll: 'scrollscan.com'
}[network];
Expand Down Expand Up @@ -97,3 +99,8 @@ export async function get(url, data) {
const res = (await axios.get(url, { params: data }))['data'];
return res;
}

export async function post(url, data) {
const res = (await axios.post(url, data))['data'];
return res;
}
Loading

0 comments on commit 0e2bcac

Please sign in to comment.