Follow these steps to deploy and run the EVMx Read tests.
Run the following command to deploy the EVMx Read tests script:
forge script script/read/RunEVMxRead.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the ReadAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/read/ReadAppGateway.sol:ReadAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Run the script to pay fees in Arbitrum ETH:
forge script lib/socket-protocol/script/helpers/PayFeesInArbitrumETH.s.sol --broadcast --skip-simulation
Deploy the onchain contracts using the following script:
forge script script/read/RunEVMxRead.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployOnchainContracts()"
Verify the ReadMultichain
contract on Arbitrum Sepolia Blockscout:
forge verify-contract --rpc-url https://rpc.ankr.com/arbitrum_sepolia --verifier-url https://arbitrum-sepolia.blockscout.com/api --verifier blockscout <ONCHAIN_ADDRESS> src/read/ReadMultichain.sol:ReadMultichain
Finally, run the EVMx Read script:
forge script script/read/RunEVMxRead.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy
forge script script/read/RunEVMxRead.s.sol --broadcast --sig "withdrawAppFees()" --legacy --with-gas-price 0
Follow these steps to deploy and run the EVMx OnchainTrigger tests.
Run the following command to deploy the EVMx OnchainTrigger tests script:
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the OnchainTriggerAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/trigger-appgateway-onchain/OnchainTriggerAppGateway.sol:OnchainTriggerAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Run the script to pay fees in Arbitrum ETH:
forge script lib/socket-protocol/script/helpers/PayFeesInArbitrumETH.s.sol --broadcast --skip-simulation
Deploy the onchain contracts using the following script:
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployOnchainContracts()"
Verify the OnchainTrigger
contract on Arbitrum Sepolia Blockscout:
forge verify-contract --rpc-url https://rpc.ankr.com/arbitrum_sepolia --verifier-url https://arbitrum-sepolia.blockscout.com/api --verifier blockscout <ONCHAIN_ADDRESS> src/trigger-appgateway-onchain/OnchainTrigger.sol:OnchainTrigger
Finally, run the EVMx OnchainTrigger script:
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --sig "onchainToEVMx()"
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --legacy --with-gas-price 0 --sig "eVMxToOnchain()"
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --sig "onchainToOnchain()"
forge script script/trigger-appgateway-onchain/RunEVMxOnchainTrigger.s.sol --broadcast --sig "withdrawAppFees()" --legacy --with-gas-price 0
Follow these steps to deploy and run the EVMx Write tests.
Run the following command to deploy the EVMx Write tests script:
forge script script/write/RunEVMxWrite.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the WriteAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/write/WriteAppGateway.sol:WriteAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Run the script to pay fees in Arbitrum ETH:
forge script lib/socket-protocol/script/helpers/PayFeesInArbitrumETH.s.sol --broadcast --skip-simulation
Deploy the onchain contracts using the following script:
forge script script/write/RunEVMxWrite.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployOnchainContracts()"
Verify the WriteMultichain
contract on Arbitrum Sepolia Blockscout:
forge verify-contract --rpc-url https://rpc.ankr.com/arbitrum_sepolia --verifier-url https://arbitrum-sepolia.blockscout.com/api --verifier blockscout <ONCHAIN_ADDRESS> src/write/WriteMultichain.sol:WriteMultichain
Finally, run the EVMx Write script:
forge script script/write/RunEVMxWrite.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "runTriggers()"
forge script script/write/RunEVMxWrite.s.sol --broadcast --sig "withdrawAppFees()" --legacy --with-gas-price 0
Follow these steps to deploy and run the EVMx Write tests.
Run the following command to deploy the EVMx Deploy tests script:
forge script script/deploy/RunEVMxDeploy.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the DeployAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/deploy/DeploymentAppGateway.sol:DeploymentAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Run the script to pay fees in Arbitrum ETH:
forge script lib/socket-protocol/script/helpers/PayFeesInArbitrumETH.s.sol --broadcast --skip-simulation
Deploy the onchain contracts using the following script:
forge script script/deploy/RunEVMxDeploy.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployOnchainContracts()"
Verify the DeployOnchain
contract on Arbitrum Sepolia Blockscout:
forge verify-contract --rpc-url https://rpc.ankr.com/arbitrum_sepolia --verifier-url https://arbitrum-sepolia.blockscout.com/api --verifier blockscout <ONCHAIN_ADDRESS> src/deploy/DeployOnchain.sol:NoPlugNoInitialize
Finally, run the EVMx Deploy script:
forge script script/deploy/RunEVMxDeploy.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "runTests()"
forge script script/deploy/RunEVMxDeploy.s.sol --broadcast --sig "withdrawAppFees()" --legacy --with-gas-price 0
Follow these steps to deploy and run the EVMx Write tests.
Run the following command to deploy the EVMx Schedule tests script:
forge script script/schedule/RunEVMxSchedule.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the ScheduleAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/schedule/ScheduleAppGateway.sol:ScheduleAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Finally, run the EVMx Schedule script:
forge script script/schedule/RunEVMxSchedule.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "createTimers()"
Follow these steps to deploy and run the EVMx Forwarder.
Run the following command to deploy the UploadAppGateway
contract:
forge script script/forwarder-on-evmx/RunEVMxForwarder.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "deployAppGateway()"
Verify the UploadAppGateway
contract on Blockscout:
forge verify-contract --rpc-url https://rpc-evmx-devnet.socket.tech/ --verifier blockscout --verifier-url https://evmx.cloud.blockscout.com/api <APP_GATEWAY_ADDRESS> src/forwarder-on-evmx/UploadAppGateway.sol:UploadAppGateway
Make sure to update the APP_GATEWAY
address in your .env
file.
Deploy the Counter contract on Arbitrum Sepolia:
forge script script/forwarder-on-evmx/RunEVMxForwarder.s.sol --broadcast --skip-simulation --sig "deployOnchainContract()"
Verify the Counter
contract on Arbitrum Sepolia Blockscout:
forge verify-contract --rpc-url https://rpc.ankr.com/arbitrum_sepolia --verifier-url https://arbitrum-sepolia.blockscout.com/api --verifier blockscout <COUNTER_ADDRESS> src/forwarder-on-evmx/Counter.sol:Counter
Run the script to pay fees in Arbitrum ETH:
forge script lib/socket-protocol/script/helpers/PayFeesInArbitrumETH.s.sol --broadcast --skip-simulation
Run the following command to upload the Counter contract to EVMx and read its value:
forge script script/forwarder-on-evmx/RunEVMxForwarder.s.sol --broadcast --skip-simulation --with-gas-price 0 --legacy --sig "uploadAndRead(address)" <COUNTER_ADDRESS>
To withdraw the accumulated fees:
forge script script/forwarder-on-evmx/RunEVMxForwarder.s.sol --broadcast --sig "withdrawAppFees()" --legacy --with-gas-price 0