foundry icon indicating copy to clipboard operation
foundry copied to clipboard

Using cast wallet account in forge test

Open ericywl opened this issue 1 year ago • 0 comments

Component

Forge, Cast

Describe the feature you would like

Given that cast supports wallet imports: https://github.com/foundry-rs/foundry/issues/1869, is it possible to get the wallet private key using forge when running tests, instead of putting them in the .env file? For example, via some cheatcode that enables us to get the wallet and obtain the private key?

For reference, deploying via forge script already supports this:

$ forge script script/DeploySimpleStorage.s.sol --rpc-url $SEPOLIA_RPC_URL --broadcast --account <some_account>

But forge test does not. Maybe something like the following would be great:

$ forge test --fork-url $SEPOLIA_RPC_URL --account <some_account>

And then in tests, we can use:

vm.getAccount().privateKey

instead of

vm.envUint("PRIVATE_KEY")

to obtain the private key for deploying onto testnet fork for testing.

Additional context

Original discussion: https://github.com/Cyfrin/foundry-full-course-f23/discussions/1733 Reference: https://github.com/foundry-rs/foundry/issues/6034

ericywl avatar May 20 '24 12:05 ericywl