Contract Deployment Tutorial
Scroll Alpha Testnet is now deprecated.
Note: Before you start deploying the contract, you need to request test tokens from a Goerli faucet and use the bridge to transfer some test
ETH
from Goerli to Scroll Alpha.git clone https://github.com/scroll-tech/scroll-guides.git
cd scroll-guides/contract-deploy-demo
yarn install
3. Create a
.env
file following the example .env.example
in the root directory. Change PRIVATE_KEY
to your own account private key in the .env
.4. Run
yarn compile
to compile the contract.5. Run
yarn deploy:scrollTestnet
to deploy the contract on the Scroll Alpha Testnet.6. Run
yarn test
for hardhat tests.- 1.Clone the repo.
git clone https://github.com/scroll-tech/scroll-guides.git
cd scroll-guides/contract-deploy-demo
2. Install Foundry.
curl -L https://foundry.paradigm.xyz | bash
foundryup
3. Run
forge build
to build the project.4. Deploy your contract with Foundry
forge create --rpc-url https://alpha-rpc.scroll.io/l2 \
--value <lock_amount> \
--constructor-args <unlock_time> \
--private-key <your_private_key> \
--legacy \
contracts/Lock.sol:Lock
<lock_amount>
is the amount of testETH
to be locked in the contract. Try setting this to some small amount, like0.0000001ether
.<unlock_time>
is the Unix timestamp after which the funds locked in the contract will become available for withdrawal. Try setting this to some Unix timestamp in the future, like1696118400
(this Unix timestamp corresponds to October 1, 2023).
For example:
forge create --rpc-url https://alpha-rpc.scroll.io/l2 \
--value 0.00000000002ether \
--constructor-args 1696118400 \
--private-key 0xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc1 \
--legacy contracts/Lock.sol:Lock
Thank you for participating in and developing on the Scroll Alpha Testnet. If you encounter any issues, join our Discord and ask us in the
developers
channels.- 1.The
SELFDESTRUCT
opcode is disabled and will not be supported in Scroll, as it is slated to be removed from the EVM at a later date. - 2.For now, we have set Layer 2 gas prices to be the same as on Ethereum Layer 1. However, these gas prices are subject to change and will be set in the future to match proving costs. We will endeavor to minimize these changes, primarily applying them to ZK-unfriendly precompiles when necessary for security.
- 3.For now, we recommend using
london
as a target EVM version for compiling. You can read more on that in the Ethereum & Alpha Testnet differences section. - 4.
CREATE
andCREATE2
opcodes will yield the same behaviour as on Ethereum mainnet. Computation and address calculation is done in the same manner as on Ethereum.