0xFacet / facet-vm

This app implements the Facet Protocol. It processes Dumb Contract interactions and makes the results available via an HTTP API.
https://docs.facet.org
104 stars 18 forks source link

Add multi sender for erc20 tokens #237

Closed hyppocritez closed 7 months ago

hyppocritez commented 7 months ago

Right now, there is no gas efficient way to send existing multiple erc20 tokens. You have to send them one at a time.

In order to enable low gas airdrops, please find the code attached here in this commit

If we can raise the limit to above 25, that would be great. Not sure how to performance test that, for now I have raised from 10 to 25.

The method requires you to approve the contract to move tokens on your behalf, this way with one approval you are able to get the contract to pull tokens from your account and send it to a list of addresses. Any one can approve and use this contract to airdrop without needing to deploy themselves.

Withdraw multiple was also added, this is a fail safe, so that the owner, whoever deploys it, is able to pick up donations or assets erc20 tokens that were mistakenly sent to the contract.

Also, please take a look at my formatting as I wasn't sure which syntax formatter to use..