Skip to content
This repository was archived by the owner on Mar 19, 2019. It is now read-only.
This repository was archived by the owner on Mar 19, 2019. It is now read-only.

Settle multiple rings in a single transaction #351

@Brechtpd

Description

@Brechtpd

I changed submitRing to take a single bytes array in PR #350 which makes it pretty easy to send data for multiple rings to submitRing. I was planning to test this out, but I'm not completely sure if this should even be done.

I see two possible options:

  • Do the complete logic of submitRing for the different rings. Bad thing about this is that if even one ring fails everything will be reverted.
  • Do the validation checks and scaling for all rings first. Then only settle the rings that passed the validation/scaling. I think this should work fine though there shouldn't be any dependencies between the different rings, otherwise the validation checks (e.g. available balances) would not be valid anymore.

There should be some significant gas savings if multiple rings could be settled in a single transaction:

  • Fixed transaction cost of 21.000 gas
  • Reentry lock costing ~10.000 gas
  • Some data that only needs to be send once (e.g. feeRecipient)
  • ....

Or this could be a bad idea. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions