Deploying the escrow contract
1.1 Set up project
Clone project:
$ git clone
https://github.com/tashigg/tce-escrow-contract.git
Build:
$ npm i
$ forge build
Test:
$ forge test
Create file .env:
$ cd tce-escrow-contract
$ cp .env.example .env
1.2 Set up wallet
1.2.1 Create wallet
You must have an account in the EVM platform to deploy smart contracts. To have an account, you need to create a wallet. There are many E-Wallet Apps that allow you to create an account:
Metamask
Phantom
AgentX
But the most popular is metamask. We will use metamask in this tutorial.
Steps:
Install: https://metamask.io/download/
Add extension to your browser
Create a new wallet. Accept agreements, follow prompts and create a password.
Secure wallet
Show Secret Recovery Phrase
Take a screenshot to save the secret recovery phrase. Any party who knows this recovery phrase can control the account, and can withdraw or transfer all tokens in the account, so keep the recovery phrase secret. Follow prompts to confirm that you have saved the secret recovery phrase.
You have successfully created a Metamask wallet with a new account. You should pin the Metamask wallet to your web browser.
1.2.2 Get Private Key
You will need the account's private key to deploy smart contracts. Like the secret recovery phrase, any party who knows this private key can control the account, so keep it secret.
Steps:
Open Metamask, select the desired account
Open account details
Show private key. Enter your wallet password and follow prompts to show the key.
Copy the private key
1.2.3 Get Public Key
Open Metamask and copy the public key:
1.2.4 Faucet
Your account balance must be sufficient to pay the smart contract deployment fee. If your balance account is sufficient, you can skip this section.
Network
Faucet Link
Polygon
Bsc
Base
Blast
Avalanche
Arbitrum
Optimism
ImmutableX
Ronin
We will use the Polygon network in this tutorial. The faucet for the polygon network can be found here: https://faucet.polygon.technology/
1.3 RPC Endpoints
Different networks have different RPC endpoints. We've listed them here, but you shouldn't need to manually input any of these because we've provided user-friendly aliases to these endpoints in the foundry.toml
file. For more info, see section 1.6
Network
Mainnet
Testnet
Polygon
Bsc
Base
Blast
Avalanche
Arbitrum
Optimism
ImmutableX
Ronin
1.4 Set Up API Scan Key
You will need an API key to verify smart contracts.
Network
Scan
Polygon
Bsc
Base
Blast
Avalanche
Arbitrum
Optimism
ImmutableX
Ronin
In this tutorial we will use the Polygon network. If you already have an API key or don’t need to verify your smart contract, you can skip this section.
Steps:
Login: https://polygonscan.com -> Sign In
Create API Key:
Generate API key. You need to enter your app name.
Get API Key
1.5 Config
Configure the .env
file:
.env
file:API_KEY_POLYGONSCAN = "Your_PolygonScan_API_Key"
PRIVATE_KEY = "Your_Private_Key"
API_KEY_POLYGONSCAN
: Your Polygon scan API Key.PRIVATE_KEY
: Your account private key. Copy and Paste private key. (Note: you may need to add "0x
" to head of string)
1.6 Deploy & Verify Smart Contract
The foundry.toml
file provides user-friendly aliases for the RPC endpoints of various networks. This means you won't need to manually type the endpoint URL in any commands.
Network
Mainnet Alias
Testnet Alias
Polygon
polygon
polygon_amoy
Bsc
bsc
bsc_testnet
Base
base
base_sepolia
Blast
blast
blase_sepolia
Avalanche
avalanche
avalanche_fuji
Arbitrum
arbitrum
arbitrum_sepolia
Optimism
optimism
optimism_sepolia
ImmutableX
immutableX
immutable_testnet
Ronin
ronin
ronin_saigon
Deploy:
$ forge script script/SessionManager.s.sol:SessionManagerScript --broadcast --rpc-url <network alias>
Deploy and Verify:
$ forge script script/SessionManager.s.sol:SessionManagerScript --broadcast --rpc-url <alias network> --verify
Example:
Deploy:
$ forge script script/SessionManager.s.sol:SessionManagerScript --broadcast --rpc-url polygon_amoy
Deploy & verify
$ forge script script/SessionManager.s.sol:SessionManagerScript --broadcast --rpc-url polygon_amoy --verify
Last updated