SIP 19: Depricate Transfer Fee logic Source

AuthorClinton Ennis, Jackson Chan
Discussions-Tohttps://discord.gg/CDTvjHY
StatusImplemented
Created2019-09-23

Simple Summary

Remove all Synth token transfer fee logic from the Synthetix smart contracts.

Abstract

Transfer fees on Synth transfers was removed in February 2019 by setting the transferFeeRate to 0. [See the announcement here] (https://blog.synthetix.io/q1-release-sbtc-and-more/)

This proposal is to remove all transfer fee code from the system to get back code size needed for new logic. It’s safe to say transfer fees can be deprecated and the code removed.

Motivation

Ethereum is limited to deploying smart contracts with compiled bytecode size of 1024kb. Any unused bytecode is taking up precious space so the motivation to remove the transfer fee logic as it is not being used anymore and and wont be re-introduced in the foreseeable future.

Synth transfer fees were initially implemented on the Synth sUSD as a fee for providing the utility of stability. It was found that the transfer fee was a) not generating sufficient revenue to the system and b) creating technical blockers integrating with 3rd party systems.

If a Synth Transfer fees become a requirement in the future, the code is in the github history and the feature could be restored with some code refactoring.

Specification

Removal of all transfer fee code, supplementing functions and events emitted from Synthetix.sol, Synth.sol, FeePool.sol

All tests updated to generate fees from exchanges and remove all tests generating fees from transfers.

Test Cases

[https://github.com/Synthetixio/synthetix/pull/248/files]

Implementation

[https://github.com/Synthetixio/synthetix/commit/05c42daefb282a49f791e7e626e10cf1f8352f36]

Copyright and related rights waived via CC0.