Skip to content

Instantly share code, notes, and snippets.

@cryptcoin-junkey
Last active November 13, 2020 02:00
Show Gist options
  • Save cryptcoin-junkey/18231f7a8e0bc0632ac22464abdbcb16 to your computer and use it in GitHub Desktop.
Save cryptcoin-junkey/18231f7a8e0bc0632ac22464abdbcb16 to your computer and use it in GitHub Desktop.

パターン1: オークション

開催者: Alice 入札者: Bob 仲介人: Carol

Alice は、下記情報を含む開催申請メッセージを発行する

  • エスクロータイプ: オークション
  • 最低入札価格(XMP)
  • 即決価格 (XMP: 0 のとき即決価格なし)
  • 仲介人への手数料率(千分率)
  • 仲介人アドレス
  • 開催期間(message_index)
  • 有効期限(message_index)
  • 追加情報(テキスト)

Carol は開催メッセージを確認し、開催メッセージを発行する

  • 開催申請メッセージのトランザクションID

開催メッセージをもってオークションは開始される。 応募期限および有効期限は、開催メッセージがvalidとなったmessage_indexに開催申請メッセージにあるものを加算した値となる。

Bob は、開催を確認し、下記情報を含む入札メッセージを発行する。

  • 開催メッセージのトランザクションID
  • 入札価格

開催期限を超えたblock_indexを持つ入札メッセージはinvalidとなる。 Bob は同じオークションに対し入札メッセージを複数回発行できる。 ただし新たな入札価格が過去の入札価格以下かつ0でない場合はinvalidとなる。 2回目以降の入札メッセージで入札価格を0にした場合には、入札キャンセルとなる。 入札キャンセルに際しては anti-spam-fee が徴収される。 入札メッセージが valid だったとき、入札価格に相当する XMP が Bob のアドレスからデポジットされる。

block_index が開催期限を超えた、または、即決価格を超える入札があった場合、入札終了となる。

入札終了後、Alice と Bob はオンチェーンまたはオフチェーンで出品物の交換を行う。 プロトコルは関与しない。

Alice および Bob は、それぞれ独自に取引成立メッセージを発行できる。 入札終了前の取引成立メッセージは invalid となる。

Alice または Bob が取引の内容に不満を持つ場合、取引成立メッセージを発行せずに Carol に仲裁を申し立てることができる。 Carol は、独自の判断で取引のキャンセル、または取引成立メッセージを発行できる。

Alice、Bob、Carol のうち少なくとも2件の取引成立メッセージが発行されたとき、オークションは終了となる。 オークションの終了時には、Bob の入札額のうち、Carol が受け取る手数料を差し引いた額が Alice に渡る。

開催期間を過ぎて入札がなかった場合、コントラクトは何のアクションも取らない。 有効期限を過ぎた場合、コントラクトは、取引の状態を問わず取引をキャンセルする。

取引のキャンセル時には Bob のデポジットは Bob に全額返却される。

パターン2: 作業依頼

開催者: Alice 受任者: Bob 仲介人: Carol

Alice は、下記情報を含む開催申請メッセージを発行する

  • エスクロータイプ: 作業依頼
  • 成功報酬 (XMP)
  • 仲介人への手数料率
  • 仲介人アドレス
  • 応募期限(message_indexの相対値)
  • 有効期限(message_indexの相対値)
  • 追加情報(テキスト)

開催申請メッセージがvalidになった時点で、成功報酬に相当する XMP が、Alice のアドレスからデポジットされる。

Carol は開催申請メッセージを確認し、開催メッセージを発行する。 応募期限および有効期限は、開催メッセージがvalidとなったmessage_indexに開催申請メッセージにあるものを加算した値となる。

下記する受任メッセージが応募期限までにvalidにならなかった取引はキャンセルとなる。

Bob は、開催を確認し、下記情報を含む受任メッセージを発行する

  • 開催メッセージのトランザクションID

受任後、Bob は Alice の依頼を履行する。 プロトコルは関与しない。

Alice および Bob は、それぞれ独自に取引成立メッセージを発行できる。 Alice または Bob が取引の内容に不満を持つ場合、取引成立メッセージを発行せずに Carol に仲裁を申し立てることができる。 Carol は、独自の判断で取引のキャンセル、または取引成立メッセージを発行できる。

Alice、Bob、Carol のうち少なくとも2名からの取引成立メッセージが valid となったたとき、作業依頼は終了となる。 取引終了時には、Alice の依頼額のうち、Carol が受け取る手数料を差し引いた額が Bob に渡る。

有効期限を過ぎた場合、コントラクトは、取引の状態を問わず、取引をキャンセルする。

取引のキャンセル時には、Alice のデポジットは Alice に全額返却される。

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