モナパーティ自動販売の落とし穴/応用法
モナパーティには、モナコイン建てでアセット(モナカードとか)を販売できる、dispenser (自動販売機)という機能がついています。
この機能、アセットを売る側から見ると、直感に合わない部分があり、注意が必要です。使いこなせれば便利なのですが。
落とし穴
たとえ話
たとえば、売り主 Alice が M1mona2party3 というモナコインアドレスを持っていたとします。
Alice は、CRYPTCOIN.JUNKEY.CARD と MONANA 、2種類のアセットを、それぞれ dispenser で売ろうと考えました。
Alice は M1mona2party3 で CRYPTCOIN.JUNKEY.CARD 1枚あたり 1MONA として dispenser で売り出しました。
続けて同じ M1mona2party3 で、 MONANA を 1枚あたり 1MONA として dispenser で売り出しました。
しばらくして買い手 Bob が CRYPTCOIN.JUNKEY.CARD を買おうと思い、 1MONA を M1mona2party3 へ送金しました。
…
結果、Bob は 1 CRYPTCOIN.JUNKEY.CARD と 1 MONANA を手に入れました。
…
Alice は、予想外に損をしたことになります。
教訓
dispenser を使うときは、売りたいアセット毎に個別のモナコインアドレスを用意することを基本としたほうが良いです。思わぬ損を避けられます。
応用
なぜこんな罠とも思える仕様になっているかというと、解って使えば便利な面もあるからです。
たとえ話
売り手である Carol は、自分が売り出すアセットをたくさん買ってくれた人に優待をしたいと思ったとします。
Carol は、自分のアドレス M1mona2carol3 に、CRYPTCOIN.JUNKEY.CARD を 1 枚あたり 1MONA として dispenser で売り出します。
続いて、同じアドレス M1mona2carol3 に、 CRYPTCOIN.JUNKEY.OMAKE を 1 枚あたり 5MONA として dispenser で売り出します。
さてここで、買い手である Bob が、M1mona2carol3 へ 1MONA を送金したとします。
結果として Carol から 1 CRYPTCOIN.JUNKEY.CARD が得られます。CRYPTCOIN.JUNKEY.OMAKE アセットは入手できません。
次に買い手である Alice が、M1mona2carol3 へ 5MONA を送金したとします。
結果として Carol から 5 CRYPTCOIN.JUNKEY.CARD と 1 CRYPTCOIN.JUNKEY.OMAKE を得られます。
高額な送金(今回は5MONA以上)を行った Alice が Bob よりも優待されていて、Carol の目的に適った結果が得られました。