[1/13] It may be initially confusing to fully grasp how deposits and withdrawals from L1 to @optimismPBC are actually implemented, and it helps to see the on-chain action of what is happening behind the scenes.

[2/13] Initial setup (simplified): on L1 we have SyntheticBridgeToOptimism from Synthetic and OVM_L1CrossDomainManager from Optimism contracts. On L2 we have SynthetixBridgeToBase and OVM_L2_CrossDomainManager contracts.
[3/13] Additionally we have Sequencer (L2 mining node) that verifies all L2 transactions and submits them in batches to L1 for future reference and Relayer that is responsible for relaying messages from L2 —> L1
[4/13] Step 1 - Alice wants to deposit $SNX to L2. To do that she calls initiateDeposit() method on the L1 SyntheticBridgeToOptimism which takes her $SNX, puts it in the escrow and calls OVM_L1CrossDomainManager sendMessage() method.
[5/13] The CrossDomainManager puts this request to CanonicalTransactionChain (this is an “official” and “unmutable” list of all L2 transactions on L1). As a consequence the Sequencer (L2 mining node) will need to execute this transaction on L2.
[6/13] This will result in invoking completeDeposit() method of SyntheticBridgeToBase on L2. This method will simply mint L2 $SNX tokens for Alice. See the trace below: https://t.co/VKFgJFyOWw
[7/13] Step 2 - Enjoy cheap L2 life. This trace below shows the L2 Sequencer submitting a batch of 346 L2 transactions issueMaxSynths(), burntSynth(), initiateWithdrawal(), updateRates(), etc… to L1.
[8/13] With no gas optimisation, on average, gas used per L2 tx was 26,138 or 3$ per transaction. All transactions are put in the CanonicalTransactionChain, the same used by CrossDomainManager before. https://t.co/vZK32LjJTn
[9/13] Step 3 - Alice wants do withdraw her $SNX from L2. To this end she calls initiateWithdrawal() on SynthetixBridgeToBase on L2 which sends the msg to L1 through OVM_L2_CrossDomainManager.
[10/13] CrossDomainManager changes its state which forces the Sequencer to commit this new L2 state to L1. You can see this in the next trace, with the inititateWithdraw() method being present in the Sequencer’s batch of 6 L2 transactions https://t.co/J2GeauWFRN
[11/13] Step 4 - Now we wait to make sure that the state root commitment submitted by the Sequencer is indeed valid. If nobody submits Fraud Proof that the state is incorrect, we can assume that it is indeed OK and it will never be rolled back
[12/13] Step 5 - after the FraudProofWindow has passed, the Relayer can finally relay message from L2 to SynthetixBridgeToOptimism contract. It constructs proof that convinces OVML1CrossDomainManager that this message was indeed submitted by Sequencer to CanonicalTransactionChain
[13/13] As a result L1CrossDomainManager will call completeWithdrawal() method on SynthetixBridgeToOptimism which will release escrowed L1 $SNX tokens kept there. https://t.co/1O3E78f0Sp
https://t.co/m2H1lCMDzB
https://t.co/KSUmMWFNeG

More from Crypto

I'm sure someone else has explained this, but it is just so cool and I want to explain how this works.


So Curve is awesome for swaps between similar assets, right? The fact that they trade very close to each other is a key part about how Curve works, using it's custom swap invariant function.

That's step 1

Step 2 is that Synthetix is awesome for creating "synthetic assets" (aka synths) which are assets that trade like other assets, that are backed by another, entirely different asset. Basically, a plastic banana that I can buy and sell like a real banana.

Synthetix has a feature that lets you swap between any two synths with zero slippage and a flat fee. That's because it is simply converting the sythentic asset into another synthetic asset, the backing for the synth doesn't change it just uses a different price oracle now.

This is important. Absolutely no slippage, at any size

Swap $1m sUSD for $1m sBTC? flat 0.3% fee

Swap $10m sUSD for $10m sBTC? flat 0.3% fee

swap $100m sUSD for $100m sBTC? Well, there isn't that many synths in Curve, yet but you get the point. The only limit is the pool depth
Quick Thread on #Altcoins/ #Altseason

Step 1: $BTC has a huge correction. Every range starts with either a pump (or dump) and then follows with a dump (or pump). In this case, #Bitcoin pumped and is now pulling back. This is


Step 2: $BTC ranges big once it finds a bottom. This will allow it to reaccumulate for a big summer run in 2021. This is HEALTHY IMO.


Step 3: Once $BTC finds a bottom and starts to grind up again, I expect $ALTS to do very very well in both alt/usd and alt/btc pairs. ALTSZN is almost always characterized by strong alt/btc pairs moving- I've already accumulated most and have done my final buying today and more.

$BTC.D typically has a very nice time during this time of the year. I was off on December prediction bc I thought $BTC was going to pull back by then but oh well! #Altcoins will start their pumping time VERY soon now.


More information on what #Altseason is and $ALTS market

You May Also Like