dharmaprotocol / excluded-uni-airdrop-users

28 stars 48 forks source link

Add DeFi Saver application #6

Closed Jay-Prime closed 3 years ago

0age commented 3 years ago

Hey @Jay-Prime — looks like all of these accounts are not present in the account superset. Any idea why this would be the case?

0age commented 3 years ago

The superset of accounts includes:

It seems like that should catch the submitter, the proxy, and the wrapper, no?

nklipa13 commented 3 years ago

Ok, so there is a couple of situations how DefiSaver users are able to communicate with Uniswap:

  1. User->DSProxy->UniswapWrapper->Uniswap
  2. DefisaverBot->DefisaverMonitor->UsersDSProxy->UniswapWrapper->Uniswap
  3. some special cases where DSProxy gives approval to the DefisaverContracts to do everything for them and then returns funds to the user at the end

As you can see in the repo from readme, I actually used Uniswap transactions that communicated with any of our four wrappers and then in traces found the DSProxy by looking for input data 0x1cff79cd which is the signature for the execute method on DSProxy. So I do understand how 2nd and 3rd options aren't in the account superset, but 1st should be as DSProxy is to address. Is it maybe because addresses arent checksummed?

EDIT: There is also a list with all accounts and transactions hashes where the Uniswap is used if that helps https://github.com/nklipa13/retroactive-query/blob/master/defisaver_accounts.json

0age commented 3 years ago

Checksumming shouldn't matter, they're all downcased anyway... the odd thing is that 1, 2, and 3 seem like they should all be in the superset. Can you share a tx hash from each type?

nklipa13 commented 3 years ago
  1. 0x4f182b8d8a676bdb4fe45aaec3c451660e4005bb28f1afdc0820e599ef867aa7 - Regular boost/repay
  2. 0x4f182b8d8a676bdb4fe45aaec3c451660e4005bb28f1afdc0820e599ef867aa7 - Automatic boost/repay
  3. 0xa6b81b06715cfb0f0a3feaf275209ff13cae576471227082db17cba8b1610076 - Using flash loans
Jay-Prime commented 3 years ago

I don't have much to add in technical terms personally, but just wanted to highlight that for all intents and purposes a DSProxy for a DeFi Saver user is equivalent to a Dharma or an Argent account to a Dharma or Argent user - all their funds that are being used (and swapped) within any platform provided feature is held by the DSProxy. And in order for a potential airdrop to be inclusive of both users that exercise Uniswap conversions exclusively by setting up DeFi Saver Automation triggers (of which there are many), as well as those that execute them manually, we believe this to be the desired option for this potential airdrop for previously excluded accounts, as we earlier highlighted both on the Uniswap forum discussion and in the readme submitted here.

We're available for any additional info and/or further discussion, of course.

Jay-Prime commented 3 years ago

Please excuse the follow up comment, but I also have to add that we're in the CEST timezone, so we'll only be online for another hour or so. We may have to reply to any additional requests or comments first thing in the morning. 😕

nadavhollander commented 3 years ago

@Jay-Prime merging in as it seems the issue was actually a light bug in the comparison script we had running in the tests, fixed here

Jay-Prime commented 3 years ago

Thanks @nadavhollander, very glad to hear that! We'll be following closely for any next steps of the process.