Skip to content

Instantly share code, notes, and snippets.

@AnthonyAkentiev
Last active June 22, 2018 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save AnthonyAkentiev/23652768acf7dc6c28f19a256146ad4f to your computer and use it in GitHub Desktop.
Save AnthonyAkentiev/23652768acf7dc6c28f19a256146ad4f to your computer and use it in GitHub Desktop.

Use Cases

  1. У меня есть компания, которая продает майки. Каждая майка стоит $1. На вход посылаются каждый раз деньги по $1. В месяц текущие траты компании составляют $3000.
  2. У меня есть компания, бюджет которой составляет 12 эфиров в месяц.... TODO
  3. У меня есть roadmap. Если мы собираем 100 ETH -> делаем базовую версию backend. Если мы собираем 500 ETH -> делаем базовую версию backend + мобильное приложение. Все что собрано больше - бонусы команде.
  4. Если мы собираем 100 ETH -> делаем базовую версию backend. Если мы собираем 500 ETH -> делаем базовую версию backend + мобильное приложение. Все что собрано больше - возвращаем или не берем.

Requirements

Клиент

  1. Если клиент посылает больше денег на вход -> revert()

Админ

  1. Хотим уметь изменить схему (то есть addChild(), связи элементов)
  2. Мы не хотим удалять элементы, но хотим делать open()/close()
  3. Мы хотим перечислять children'ов: getChildrenCount(), getChild(index);
  4. Мы хотим иметь возможность понять, сколько минимально ср-в НУЖНО послать
  5. Мы хотим иметь возможность понять, сколько ср-в МОЖНО послать
  6. Если элемент хранит ср-ва, то нужно понимать, сколько текущий баланс и сколько еще требуется

Relative Exp

  1. У relate exp меньше или равно 100%
  2. У relate exp не может быть 0%

Abs exp

  1. У abs exp не может быть 0 ETH

Splitter

  1. Сплиттер не должен хранили деньги никогда
  2. Чтобы у сплиттера было всегда 100% в output'ах

Дополнительные НЕфункциональные требования

  1. Кол-во ручной работы с элементами и индексами (у пользователя) должно быть минимальное (чтобы не ошибиться) -> "ID элементов создаются автоматически, но не задаются руками"

Варианты реализации (подходы)

Реализация 1 (как было ранее)

Описание: Не поточная модель. Берет только сколько требуют все элементы

Pros:

  1. не берет денег, больше чем ему требуется

Реализация 2 (новая)

Описание: Поточная модель. TODO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment