Aztec V2 Ejector

Requirements

Ejecting

To exit your funds from the old.zk.money, you will have to run a few commands on your device to get an instance of the rollup running so you can interact with it to withdraw funds. First, open the command-line interface on your device. Then, copy the following command directly into the CLI and press enter:

docker run -ti --rm -p8081:8081 -p3001:3001 -e PRIVATE_KEY=<funded-key-to-pay-rollup-fee> aztecprotocol/a2-ejector

This launches a container exposing the rollup (we call it Falafel) on port 8081, and zk.money the website, on port 3001. The private key associated with your account must have enough funds to pay the cost of a rollup. Once Falafel has bootstrapped, zk-money will be served on your device, at http://localhost:3001 You can now use zk.money as usual. You will need to wait for your account to sync in the browser.

Specifying gas limit and max fee:

The ejector defaults to a gas limit of 2,000,000 and a max price of 100,000,000,000 (100 gwei). This requires your account to have a minimum of 0.2 ETH available to eject, and that it's probably only economically viable to eject if the amount is greater than ~0.1 ETH. If needed you could override as follows (but might require a higher balance on your account).

docker run -ti --rm -p8081:8081 -p3001:3001 -e GAS_LIMIT=3000000 -e MAX_PROVIDER_GAS_PRICE=200000000000 -e PRIVATE_KEY=<funded-key-to-pay-rollup-fee> aztecprotocol/a2-ejector

Example container output

[2024-01-22T18:46:22.581Z] Database is local sqlite.
[2024-01-22T18:46:22.582Z] Gas limit: 6000000
[2024-01-22T18:46:22.582Z] Rollup contract address: 0x737901bea3eeb88459df9ef1BE8fF3Ae1B42A2ba
[2024-01-22T18:46:22.583Z] Ethereum host: http://10.1.0.35:8545
[2024-01-22T18:46:22.669Z] Signing address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
[2024-01-22T18:46:23.256Z] Ethereum blockchain initialized with assets: ETH,DAI,renBTC
[2024-01-22T18:46:35.828Z] Db cache loaded 4326 rollups and 523744 nullifiers from db...
[2024-01-22T18:46:35.958Z] Refreshed db cache in 128ms.
[2024-01-22T18:46:36.009Z] Server listening on port 8081.
[2024-01-22T18:46:36.009Z] Server initializing...
[2024-01-22T18:46:36.009Z] Waiting until proof generator is ready...
[2024-01-22T18:46:36.009Z] Downloading 4194304 points from transcript00.dat...
[2024-01-22T18:46:39.585Z] Waiting for rollup_cli to bootstrap...
[2024-01-22T18:46:39.589Z] rollup_cli: Loading crs...
[2024-01-22T18:46:39.589Z] rollup_cli: Generating account circuit keys...
[2024-01-22T18:46:40.147Z] rollup_cli: Circuit size: 25084
[2024-01-22T18:46:40.944Z] rollup_cli: Done.
[2024-01-22T18:46:40.980Z] rollup_cli: Generating join-split circuit keys...
[2024-01-22T18:46:41.208Z] rollup_cli: Circuit size: 63398
[2024-01-22T18:46:42.069Z] rollup_cli: Done.
[2024-01-22T18:46:42.148Z] rollup_cli: Reading rollups from standard input...
[2024-01-22T18:46:42.148Z] rollup_cli: Ping... Pong...
[2024-01-22T18:46:42.149Z] Proof generator initialized.
[2024-01-22T18:46:42.876Z] Data size: 937472
[2024-01-22T18:46:42.877Z] Data root: 13c6f18fb0450ca461085a85c2bc2cedaadb5a90e34eac2c3f13f614a89e8ac8
[2024-01-22T18:46:42.877Z] Null root: 09b0bf97679ce36bff9c5a0890db9fe649b43b045c5848a7d7aee28a44852734
[2024-01-22T18:46:42.877Z] Root root: 1acfb5af615ac4e369b784e4d992a095d97182d8fd80ef01140880b83e25fc12
[2024-01-22T18:46:42.877Z] Syncing state from rollup 4326...
[2024-01-22T18:46:42.978Z] Fetched blocks in 0.101s.
[2024-01-22T18:46:43.113Z] Refreshed db cache in 108ms.
[2024-01-22T18:46:43.114Z] Database synched in 0.136s.
[2024-01-22T18:46:43.114Z] Pipeline inner_txs/outer_txs/rollup_size: 2/1/2
[2024-01-22T18:46:43.115Z] Ethereum blockchain starting from rollup: 4326
[2024-01-22T18:46:43.239Z] Refreshed db cache in 106ms.
[2024-01-22T18:46:43.406Z] rollup_cli: Serving join split vk...
[2024-01-22T18:46:43.409Z] rollup_cli: Serving account vk...
[2024-01-22T18:46:43.411Z] Server ready to receive txs.
yarn run v1.22.19
$ serve -p 3001 ./dist
INFO Accepting connections at http://localhost:3001