knowledge / ethereum-contracts

Knowledge Ethereum Smart Contracts
https://knowledge.io
MIT License
41 stars 14 forks source link

handle payments with no gas cost for the sender ( or refilling sender ) #21

Open gaboesquivel opened 6 years ago

gaboesquivel commented 6 years ago

Ethereum gas is always charged to the sender and is always payed in ether.

  1. We need to find a way to relay that tx so that gas is payed by us or refill the sender address with enough gas.

    Option txRelay References

  2. We need to transfer that cost to the seller or the user in form a Knowledge fee. This is also challenging, how can we get a exchange rate ? Perhaps in the form of pull oracle that always return the same exchange rate for all node for a given tx. eg. GET knowledgeapi.io/v1/exchange-rate?orderId=KNW872892LU8 . This involves risks and complexities that need to be properly assessed.

We need to SUPER careful not to open up a potential vulnerability.

diestrin commented 6 years ago

About point 2, this is most probably going to be a back-end task, to pull the exchange rates and do all the conversions, not something the contract should care.

diestrin commented 6 years ago

I also think refilling the accounts will have the worst UX, since we need to wait for the refill to be processed before doing the Knowledge tx

gaboesquivel commented 6 years ago

Your are right, duh. Payment contract doesn't need to know the exchange rate. it simply receives the total amount. And yeah, txRelay seems the way to go so far. Refill is funky.