Monapartyのdividendの仕様

dividendの仕様変わったのでここに書いてあることは一部通用しなくなりました

詳細がドキュメントから読み取れない部分/わかりづらい部分があるので検証結果とかメモ

  • asset(株券にあたるほう)は自分がオーナーじゃないとダメ
  • dividend_asset(配当のほう)は自分がオーナーじゃなくても大丈夫
  • quantity_per_unit はassetやdividend_assetがdivisibleかどうかとは関係なくとにかく 1e8 のときにamount換算で1対1になる
  • create_dividendでdividend_asset にMONAをセットすると普通のマルチアウトプットTX(Monaparty TXじゃないやつ)を返してくれる
    • Monaparty TXと違って宛先が多くなるにつれてTX Feeが増えていくので注意
  • 個別の配当の量はdividend_assetの最小単位(dividendがtrueなら1e-8、dividendがfalseなら1)で切り捨て
    • 切り捨て後に配当を受け取ることのできるアドレスが1つもない場合にはcreate_dividendの時点でエラーになる
    • amount x quantity_per_unit x 1e-8 >= 1 を満たすアドレスが存在していれば分割できないdividend_assetでも小数のquantity_per_unitを設定できる
  • dividendの宛先の数に比例して消費されるXMPの量はcreate_dividendの結果だけではわからないので事前計算するなら別途get_holdersなどを使う必要がある
    • 切り捨てにより配当0となるアドレスがあっても消費されるXMPの量は変わらない
    • 前のバージョンではいちどassetを持ったことのあるアドレスは現在の残高が0でもXMP手数料の計算に含まれてしまっていた。最新版では含まれない。
  • assetがDEXに出品するなどでescrowになっている場合は出品元のアドレスに配当が行く
    • ただし配布数の切り捨てはescrow毎に計算される。つまり分割できないdividend_assetをquantity_per_unit=0.5で配る場合、assetを2枚保有しているがそのうち1枚をescrowしているアドレスに届く配当は0になる。
    • XMP手数料は宛先アドレス数のみに依っていてescrowで増えたりはしない

軽くしか確認していないので間違いあるかも。 create_XXXできてもブロードキャストにしくじるみたいな例も稀にあるのでそういうのを発見したら追記します。