最近多忙でMonacoin関連あまり見ていなかったのですが、久しぶりにMonacardを作ってみたのでDispenserというカードの自動販売機能を使ってみました。
そのレビューとちょっとした仕組みの解説を。
すなぎもさんが作られているモナパレット(https://monapalette.komikikaku.com/)や、そのインターフェイスを利用したMpurseエクステ(https://mpurse-extension.komikikaku.com/)では、トークンの自動販売機能があります。
これは自分のアドレスに指定した数量のMonaが送られた場合、指定しておいたトークン(ここではMonacard)を、そのMonaを送ってきたアドレスに自動的に送信するというものです。
「返礼品」?みたいなものと思ってもらえればわかりやすいかと思います。傍から見ると指定量のMonaを送ればカードが送られてくるので自動販売機みたいな機能に見えます。
自分のアドレスに販売したいMonacardを準備して『自動販売』のところから、送りたいトークン(どのMonacardを送るか)、値段(どのくらいのMonaを受け取ったら送るか)、送るトークンの量(送るカードの枚数)、返送用に確保するトークンの量(持っているカード総数から送ってもいいカード数)を指定しておくだけです。あとは自動販売されるのでMarketsでカードを見た方が買ってくれるのを待ちましょう。
ここで一つ注意しなければならいところがあります。同じアドレスで複数枚のMonacardを販売することができるのですが、本来のこの機能の目的は「自動販売」ではなく、「自動配布」になるというところです。先程「返礼品」と言いましたが、複数のカードを指定しておくと送られてきたMona数に対して指定一つ一つを対応させるというところです。
「ちょっと何言ってるかわかんねー」と思った方に例を元に説明しましょう。
・カード『A』を、1mona送られてきたら1枚販売する。販売量は10枚まで
と指定したとしましょう、当然アドレスに1mona送られれば1枚売ります。では同じアドレスで
・カード『A』を、1mona送られてきたら1枚販売する。販売量は10枚まで
・カード『B』を、1mona送られてきたら1枚販売する。販売量は10枚まで
と2つ指定した場合はどうなるでしょう?MarketsのDispenserでカード『A』を1mona払って買ったとしましょう、実はこれカード『A』とカード『B』の両方送られてきます。
え!?と思った方もいるでしょうけれどこれは、アドレスに対して1mona送ったら返す「返礼品」なのでどちらを指定して1mona送ったか判断つかないんだと思います。
もう少し例を見てみましょう
・カード『A』を、1mona送られてきたら1枚販売する。販売量は20枚まで
・カード『B』を、2mona送られてきたら1枚販売する。販売量は10枚まで
この場合はどうなるか、MarketsのDispenserでカード『A』を1mona払って買ったとしましょう、この場合ちゃんとカード『A』が1枚送られてきます。
ではカード『B』を2mona払って買ったとしましょう、この場合カード『B』が1枚送らてくるのですが一緒にカード『A』も2枚一緒に送らててきます。
・カード『B』を、2mona送られてきたら1枚販売する。販売量は10枚まで
↑この指定がカード『B』を1枚送り、
・カード『A』を、1mona送られてきたら1枚販売する。販売量は20枚まで
↑この指定が2口分だと考え、カード『A』を2枚送ってくるのです。
このように同一アドレスで複数枚のカードを販売する場合注意が必要になります。これは元々自動販売の機能ではなく、自動配布の機能を自販機にみたてて使っている機能だからと言えるでしょう。
まあ購入側からすればただアドレスにMonaを送信してるだけなので指定を区別できないのもわかりますけどね。自動販売を使う場合こういった仕組みなんだと理解して使うか、販売カード毎に別のアドレスを使うかすればいいんだと思います。(私はこれ書いてる時点ではアドレス別には試してません)
自動販売機能はとても便利でおもしろいです、カード販売だけではなく様々な用途に使用できるんじゃないかと思えてきます。ここで作ってくれたすなぎもさんに感謝を^^
この仕様よく分かってなかったのでたすかりました!
@thinking_14
2021/03/22 20:10:50
この仕様よく分かってなかったのでたすかりました!