1/5
## Account Abstraction Lesson 17: Live Demo on Arbitrum The time has come for us to deploy our code base. Let's run our deploy script - `DeployMinimal`. --- > ❗ **IMPORTANT** This demo is run on a real network, which requires real money. It's recommended just to follow along with the video, and focus more on the code and learning how to deploy to the mainnet. > ❗ **NOTE** The hardcoded values are from the instructor. Your actual values may vary. As always, you can see up-to-date code in the repo. 🔥🔥🔥[Cyfrin Minimal Account Abstraction Repo](https://github.com/Cyfrin/minimal-account-abstraction)🔥🔥🔥 --- Run the following in your terminal. ```js forge script script/DeployMinimal.s.sol --rpc-url $ARBITRUM_RPC_URL --account smallmoney --broadcast --verify ``` We forgot to complete the `run` function in our `SendPackedUserOp` script. Let's do that now. --- **<span style="color:red">SendPackedUserOp.s.sol</span>** ```js // Add these imports import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {MinimalAccount} from "src/ethereum/MinimalAccount.sol"; // run function function run() public { // Setup HelperConfig helperConfig = new HelperConfig(); address dest = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831; // Arbitrum mainnet USDC address uint256 value = 0; bytes memory functionData = abi.encodeWithSelector( IERC20.approve.selector, 0x9EA9b0cc1919def1A3CfAEF4F7A66eE3c36F86fC, 1e18 ); bytes memory executeCalldata = abi.encodeWithSelector( MinimalAccount.execute.selector, dest, value, functionData ); PackedUserOperation memory userOp = generateSignedUserOperation( executeCalldata, helperConfig.getConfig(), 0x03Ad95a54f02A40180D45D76789C448024145aaF ); PackedUserOperation[] memory ops = new PackedUserOperation[](1); ops[0] = userOp; // Send transaction vm.startBroadcast(); IEntryPoint(helperConfig.getConfig().entryPoint).handleOps( ops, payable(helperConfig.getConfig().account) ); vm.stopBroadcast(); } ``` --- > ❗ **NOTE** HelperConfig for arbitrum has already been set up off screen. --- Now that we've got it set up, let's deploy our `SendPackedUserOp.s.sol` to Arbitrum. Run the following in your terminal. ```js forge script script/SendPackedUserOp.s.sol --rpc-url $ARBITRUM_RPC_URL --account smallmoney --broadcast -vvv ``` Congratulations! We've successfully made our first **account abstraction user operation call!** When you are ready, move on to the next lesson.
Deploying and sending a UserOp on Arbitrum using the Ethereum smart contract account
Previous lesson
Previous
Next lesson
Next
Give us feedback
Course Overview
About the course
Advanced smart contract development
How to develop a stablecoin
How to develop a DeFi protocol
How to develop a DAO
Advanced smart contracts testing
Fuzz testing
Manual verification
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Security researcher
$49,999 - $120,000 (avg. salary)
Guest lecturers:
Juliette Chevalier
Lead Developer relations at Aragon
Nader Dabit
Director of developer relations at Avara
Ally Haire
Developer relations at Protocol Labs
Harrison
Founder at GasliteGG
Last updated on November 29, 2024
Solidity Developer
Advanced FoundryDuration: 36min
Duration: 3h 06min
Duration: 5h 02min
Duration: 2h 47min
Duration: 1h 23min
Duration: 4h 28min
Duration: 1h 19min
Duration: 58min
Course Overview
About the course
Advanced smart contract development
How to develop a stablecoin
How to develop a DeFi protocol
How to develop a DAO
Advanced smart contracts testing
Fuzz testing
Manual verification
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
Security researcher
$49,999 - $120,000 (avg. salary)
Guest lecturers:
Juliette Chevalier
Lead Developer relations at Aragon
Nader Dabit
Director of developer relations at Avara
Ally Haire
Developer relations at Protocol Labs
Harrison
Founder at GasliteGG
Last updated on November 29, 2024
Testimonials
Read what our students have to say about this course.
Chainlink
Chainlink
Gustavo Gonzalez
Solutions Engineer at OpenZeppelin
Francesco Andreoli
Lead Devrel at Metamask
Albert Hu
DeForm Founding Engineer
Radek
Senior Developer Advocate at Ceramic
Boidushya
WalletConnect
Idris
Developer Relations Engineer at Axelar