Vampire Attack V2

EnsoFinance
EnsoFinance
Published in
5 min readJan 4, 2022

V2 Liquidity Migration

Thank you for the incredible feedback on the gamification of a 6 protocol liquidity migration. We have further improved the contracts for better gas optimization for the migration, enabling withdrawals for depositors, and claiming of the strategy tokens on the Enso platform after the migration has taken place.

This article is for general information for the community, and does not require current stakers to take any action — we want to build trust along every step of the way, which is why we have chosen to be transparent.

Initiation

The initiation function will be called first prior to the migration, in order to set correct addresses for the migration. The migration will take place when gas costs are lower as we’re moving state and will be done in batches depending upon gas costs. During this time, new stakeswill be made to the new V2 liquidity migration contract.

Contract: MigrationCoordinator

When the initiation function has been called, staking on the V1 contract will no longer be possible through blocking stakes as the adapters been revoked. If a user attempts to stake on V1, they will get reverted Claimable#onlyState: not registered adapter

The Frontend will be pointing to V2 for buying and staking, so a user won’t encounter revertions unless he manually calls the V1 contract. Since the migration will take place at a later point when the gas costs are lower, the Frontend is pulling staked info from both contracts, hence the user will still see his stakes from both V1 and V2.

If you wish to withdraw your funds from V1 prior to the migration to V2, you can call withdraw on MigrationCoordinator.

Contract: MigrationCoordinator

Migration V1 > V2

We have made the active decision to move the state from V1 to V2, which costs us an additional “few — more like- 15 ETH” instead of simply doing a MerkleProof of the previous stakers on V1 and then storing MerkleProof in V2 for withdrawals.

Contract: MigrationCoordinator

The reasoning behind this is as follows:

  1. Trust for moving 1 for 1 state
  2. Migration TX users can trace staked event emitted on V2 through setStake after migrate is called
  3. No need for subgraph update, can point to same entity for V2
  4. Atomic transaction for all traceability of migration

Migration Victims > Enso

We have optimized migration (burning index, withdrawing underlying, depositing on Enso strategy) to batch all the burning in 1 transaction instead of looping through each balance of each user (which works when users are doing themselves, however, not for us in relation to gas costs when migrating all users at once). Previously we mentioned January 11th for the migration to occur, and we now will migrate on estimate January 28th — which is why we have enabled withdrawals.

Contract: LiquidityMigrationV2

Claiming Strategy Token

We have made the decision to include the strategies that will be created on Enso to have the same denominations as the indexes that are being migrated - allowing clear claiming.

Contract: LiquidityMigrationV2

Additional Features:

There are a few, we recommend checking the full PR diff of V1 to V2 . Below are a few to be highlighted:

  1. Pausing from multisig: Used for the migration to ensure no attempted prevention techniques during migration.
  2. Emergency migrate: Migrate individual LP to an address controlled by multisig in the event of issues occurring during migration from victims to Enso.
  3. Withdrawing: Withdraw staked balance from LiquidityMigrationV2.
  4. Assets: We will be adding more indexes available for migration after V2 stabilizes.
  5. Proof of burn: Do you want this for the platforms that don’t allow transferrals of their index/strategy tokens? We could expand from 6 protocols to many more through this method 👀

If you have staked on V1 and have not claimed your NFT yet, you will get reversions until migration from V1 to V2 occurs(this week when cheaper gas). You can view here to see if your address is affected.NFTs are safu.

Addresses

Continued Addresses

Adapters
IndexCoopAdapter : 0x9c9326C521895c78414BD3C2945e47AFC4Ef16cc
IndexedAdapter
: 0x8F516c0FB0bcF44CFc8D42D60dAD3E4cdb35Ce26 PowerPoolAdapter: 0x0a883a62660328EAd442EB6c2311668ba9c12e57
TokenSetAdapter: 0x5F2C716D912Ce400a8A49fB87DB722e8257257A7
DHedgeAdapter: 0xaE6859311c341bAc4E0BcEcA0242247c16718FF1
PieDaoAdapter
: 0xe149B1f2Ef564A289dc094215835f3c8Df1695aa

NFTs
ERC1155 : 0x3a1c88addeC56e725ba2a432bC89eeaA5D068753
Claimable
: 0xE39d9712F3749b9663627331d9BCa15Ac69b6170

New Addresses
LiquidityMigrationV2 : 0x0c6D898ac945E493D25751Ea43BE2c8Beb881D8C
MigrationAdapter : 0xAf8d0523660A94494c56d5445e7BfE8C61802B59
MigrationCoordinator : 0x6CD0df59370B38261E251Bd786B2f320595005d1

Discontinued Addresses
LiquidityMigrationV1: 0x0092DECCA5E2f26466289011ad41465763BeA4cE

Available for staking, and buy and stake

If symbol has E in brackets next to name then enabled for buy and stake. There are few with high liquidity, we chose with a minimum depth of 2% above $30k, liquidity and we noticed users would buy and stake with slippage as high as 80% even with high warnings 🐒

Tokensets
USDAPY : 0x23687d9d40f9ecc86e7666dddb820e700f954526
WBTCAPY
: 0xf059afa5239ed6463a00fc06a447c14fe26406e1
SCIFI : 0xfdc4a3fc36df16a78edcaf1b837d3acaaedb2cb4
sushiHOUSE :0x7b18913D945242A9c313573E6c99064cd940c6aF
NFTI
: 0xe5feeaC09D36B18b3FA757E5Cf3F8dA6B8e27F4C
MUG
: 0xFE05B972EAb7761B60b4A14558EAC3Fef78F306A
HUUB : 0xB1F66BC5867A329cFd0465A506c4ad96e6Be1aDC
TGF : 0xa188DA64fc4e212Cda65bD3406e0ce03a5323560
CMI : 0xBbA8120b355bC70E771F28e151a141A126843CdF
WEB3 : 0xe8e8486228753E01Dbc222dA262Aa706Bd67e601

IndexCoop
DPI(E) : 0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b
DATA(E) : 0x33d63ba1e57e54779f7ddaeaa7109349344cf5f1
ETH2xFLI(E) : 0xaa6e8127831c9de45ae56bb1b0d4d4da6e5665bd
BTC2xFLI(E) : 0x0b498ff89709d3838a063f1dfa463091f9801c2b
BED(E) : 0x2af1df3ab0ab157e1e2ad8f88a7d04fbea0c7dc6
MVI(E) : 0x72e364f2abdc788b7e918bc238b21f109cd634d7

dHedge
DTOP : 0x0f4c00139602ab502bc7c1c0e71d6cb72a9fb0e7
Convex : 0x63ae7457b8be660daaf308a07db6bccb733b92df
Jesse : 0xd076b9865feb49A43Aa38c06b0432dF6b6cBCA9E
SNXDebt : 0x3A4851597F36F459b58e65C55c8f3a8710313Fc7
Gutta : 0x391603b1C3b03A0133AD82E91692790e58f73570
Potato : 0x907FeB27f8cc5b003Db7e62dfc2f9B01ce3FADd6
Lion : 0x3781eA00ECBE98d1550806C1213FC7FEb4F88a42
ADAM : 0x0ac1DBa8252240589266194F9C27a42229E84B19

Indexed
DEGEN : 0x126c121f99e1e211df2e5f8de2d96fa36647c855
ORCL5 : 0xd6cb2adf47655b1babddc214d79257348cbc39a7
NFTP : 0x68bb81b3f67f7aab5fd1390ecb0b8e1a806f2465

PowerPool
PIPT(E) : 0x26607aC599266b21d13c7aCF7942c7701a8b699c
YETI : 0xb4bebD34f6DaaFd808f73De0d10235a92Fbb6c3D
YLA : 0x9ba60bA98413A60dB4C651D4afE5C937bbD8044B

PieDAO
USDPLUS : 0x9a48bd0ec040ea4f1d3147c025cd4076a2e71e3e
BTCPLUS : 0x0327112423f3a68efdf1fcf402f6c5cb9f7c33fd
DEFIS : 0xad6a626ae2b43dcb1b39430ce496d2fa0365ba9c

Note victims may decide to a token migration from previous tokens to new tokens as an attempt to block the migration, so these addresses may vary. There are measures in place to ensure a protective migration if prevention measures occur.

Join our community!

Please ask questions in our Discord, and provide feedback!

Twitter |Discord | Website

Welcome to Enso Finance — Social Trading Redefined.

LEGAL DISCLAIMER

This article is neither an offer of nor marketing material for financial instruments or financial services. Enso Finance is not regulated under any financial market laws in any jurisdiction. It is only the developer and provider of the ENSO platform and protocol. Due to its decentralized nature, the ENSO platform and protocol is neither controlled nor operated by Enso Finance. Enso Finance is neither providing financial services nor offering financial instruments. Any liability is excluded to the extent permitted by applicable law.

--

--