Как мне изменить поведение конкретных вызовов платных функций с помощью моего токена в Solidity?

Скажем, я хочу сделать так, чтобы определенные кошельки никогда не могли получить мой токен, или, может быть, чтобы взаимодействие с конкретным известным вредоносным контрактом или нарушенными функциями в другом рабочем контракте в цепочке всегда возвращалось. Как мне это сделать?

В моем конкретном случае я хотел бы сделать так, чтобы в течение периода после развертывания, но до жестко запрограммированной временной метки unix, люди могли добавлять или удалять ликвидность в пуле uniswap, но свопы не могут происходить, так что цена остается постоянной, пока каждый добавляет ликвидность до тех пор, пока не пройдет временная метка и не станут возможными свопы, чтобы все они могли безопасно удалить свою ликвидность из пула, если что-то пойдет не так до того, как пройдет временная метка, без непостоянных потерь.


person idunnowhatimdoing    schedule 28.08.2020    source источник


Ответы (1)


Для функции черного списка вы можете поддерживать отображение, содержащее учетные записи в черном списке. Затем всякий раз, когда происходит передача вашего токена, вы можете require, чтобы адрес не был в черном списке, в противном случае передача будет отменена. Вы также можете добавить функцию для удаления учетной записи из черного списка, если хотите.

Что касается второго пункта - мне любопытно, как вы определяете «цену» своего токена, если свопы невозможны, и что побуждает кого-либо добавлять ликвидность в рамках этой договоренности?

person SimonR    schedule 29.08.2020
comment
Предполагая, что я развертываю токен и являюсь единственным держателем, я могу изначально добавить токен в uniswap с определенным соотношением токен: ETH, и любой, кто добавит ликвидность перед покупкой и продажей, должен будет добавить его в том же соотношении или по той же цене. - person idunnowhatimdoing; 30.08.2020