0
0
Blockchain / Solidityprogramming~20 mins

Deploying to L2 networks in Blockchain / Solidity - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
L2 Deployment Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of L2 Deployment Script
What is the output of this simplified deployment script snippet for an L2 network?
Blockchain / Solidity
const deployContract = async () => {
  const network = 'Optimism';
  const gasLimit = 1500000;
  const contractAddress = '0x123abc';
  console.log(`Deploying to ${network} with gas limit ${gasLimit}`);
  return contractAddress;
};

(async () => {
  const address = await deployContract();
  console.log(`Contract deployed at ${address}`);
})();
A
Deploying to Optimism with gas limit undefined
Contract deployed at 0x123abc
B
Deploying to Optimism with gas limit 1500000
Contract deployed at 0x123abc
C
Deploying to Optimism with gas limit 1500000
Contract deployed at undefined
DSyntaxError: Unexpected token
Attempts:
2 left
💡 Hint
Look at the values passed to the console.log statements and the returned contract address.
🧠 Conceptual
intermediate
1:30remaining
Gas Cost Differences in L1 vs L2
Which statement correctly explains why deploying contracts on L2 networks is generally cheaper than on L1?
AL2 networks charge the same gas fees as L1 but process transactions faster.
BL2 networks have higher gas fees because they run on separate blockchains.
CL2 networks batch transactions and use rollups, reducing gas fees compared to L1.
DL2 networks do not require gas fees at all for deployments.
Attempts:
2 left
💡 Hint
Think about how L2 networks handle transactions differently from L1.
🔧 Debug
advanced
2:30remaining
Identify the Error in L2 Deployment Script
What error will this deployment script produce when run on an L2 network?
Blockchain / Solidity
async function deploy() {
  const provider = new ethers.providers.JsonRpcProvider('https://l2network.rpc');
  const wallet = new ethers.Wallet('0xabc123', provider);
  const factory = new ethers.ContractFactory(abi, bytecode, wallet);
  const contract = await factory.deploy({ gasPrice: 1000000000 });
  await contract.deployed();
  console.log('Contract deployed at:', contract.address);
}
deploy();
ATypeError: gasPrice must be a BigNumber or number, not string
BSyntaxError: Unexpected token 'await'
CReferenceError: ethers is not defined
DNo error, contract deploys successfully
Attempts:
2 left
💡 Hint
Check the type of the gasPrice value passed in the deploy options.
📝 Syntax
advanced
1:30remaining
Correct Syntax for L2 Contract Deployment
Which option shows the correct syntax to deploy a contract on an L2 network using ethers.js with a custom gas limit?
Aconst contract = await factory.deploy({ gas_limit: 2000000 });
Bconst contract = await factory.deploy(gasLimit: 2000000);
Cconst contract = await factory.deploy({ gaslimit: 2000000 });
Dconst contract = await factory.deploy({ gasLimit: 2000000 });
Attempts:
2 left
💡 Hint
Check the correct property name and object syntax for deploy options.
🚀 Application
expert
3:00remaining
Calculate Total Gas Cost for L2 Deployment
Given a contract deployment on an L2 network with gas limit 1,200,000 and gas price 0.000000002 ETH, what is the total gas cost in ETH?
A0.0024 ETH
B2.4 ETH
C0.0000024 ETH
D0.024 ETH
Attempts:
2 left
💡 Hint
Multiply gas limit by gas price: 1,200,000 * 0.000000002 ETH.