任意の期間に受け取ったnem:xemに対して、モザイクを返送するスクリプトです。
ICOっぽいこと(xemとモザイクの交換の自動化)を実現します。
全ての処理はチェーン上のトランザクションから判断するので、動作環境としてNodeJSとインターネットだけが必要です。
サーバの設定が不得手な方や秘密鍵をサーバに配置することが不安な場合でも、一般的なWindowsPCだけで簡易なICOを実現できます。
ユースケースとして、ICO受付期間を発表し、受付終了後に動作させてモザイクを配布というやり方を想定しています。
(終了後でなくても、期間中に実行することで、その時点までの対象アドレスへモザイクを配布することもできます)
トランザクションを監視した即時のモザイク返送や常駐への対応はあまり考えていません。
cronやタスクスケジューラなどの機能を用いてポーリングすることで十分対応できると思います。
あまり複雑なことができるほど作りこむことは考えていませんが、
可能な範囲で色々なユースケースに対応できるようにしたいと考えているので、
アイディア、フィードバック・機能リクエストを受け付けております。
- 最小限の環境構築で動作させられること
- サーバを構築する必要のないこと
- Windowsでも利用できること
- 秘密鍵を扱うためオープンであること
- xem受取アドレスに届いたxemの合計量を上回るとモザイクを返送します
- 受信xemの量に応じたモザイク配布量
- 集計ロジック・配布ロジックを分離しプラグインのような仕組みに
現状、ロジックの外出しが実現できていないので、受取xemに応じた配布量を変化させたい場合はソースを編集する必要があります。
どのアドレスへいくらのモザイクを配布するかの決定はselectCandidates
で行っています。
大きな仕様変更でなければここを書き換えることで対応できると思います。
わからなければご質問いただければ相談に乗ります。
Node.js 6.11.4 以上推奨
Windowsの場合、npm
によるスクリプト実行は_tokensale.bat
などのバッチファイルから実行することもできます。
- 指定期間内に受取アドレスへ到着した合計xemが指定量以上であること
- (xemモザイク転送、マルチシグ転送対応)
- (分割して送信した場合でもアドレスごとに集計します)
誤作動を防ぐため、受取・配布アドレスは専用に用意することを推奨します。
このプログラム使用によるいかなる損害に対して、同情し、問題解決には努めますが責任は負いません。
The gem is available as open source under the terms of the MIT License.