こちらはAnthonyLawさんが2021年12月2日に、nem Advent Calendar2021に投稿されたSymbol Mosaic Revocation Transaction In Metaverseをざっくり日本語にした記事になります。
##はじめに
これはSymbolキプロスハードフォーク時の新しいカタパルトクライアントv1.0.3.0で新たに追加されたトランザクションタイプです。
この新たな**モザイク回収トランザクション(Mosaic Supply Revocation )の機能を使うことで、モザイク作成者は回収可能モザイクフラグ(Revokable mosaic flag)**のついたモザイクをいつでも誰からでも回収することができます。
##機能
モザイク回収トランザクション(Mosaic Supply Revocation )の仕組みは、回収可能モザイク(Revokable Mosaics)に対してのみ機能します。
ここでは、XYM CityのメタバースにあるBull Fight Clubという私有地を例として解説しています。そのBull Fight Clubに入るには所有者の許可が必要です。
ユーザーはクラブに入るために BFC.daily-pass
モザイクを所有する必要があり、これは販売窓口で購入することができます。
Bull Fight Clubは、10XYM支払ったユーザーに、回収可能(revokable)な BFC.daily-pass
を発行します。
Bull Fight Club一日入場券の有効期限が切れると、発行元であるBull Fight Clubは、 モザイク回収トランザクション(Mosaic Supply Revocation)を発行することで、ユーザーに操作をして貰わなくても BFC.daily-pass
を回収することができます。
回収可能(Revokable)モザイクを作成する場合、Transferable=falseの設定にして、受取人がモザイクを別のアカウントに転送できないようにすることをお勧めします。そうしないとモザイクの回収が難しくなります。コードサンプルの完全な例はこちら
##コード例
この新しいコードを以下に記します。より詳細な例はこちら
const BFC_Operator = Account.createFromPrivateKey(privateKey, networkType);
const isSupplyMutable = true;
const isTransferable = false; <-- prevert recipient trasfer to other
const isRestrictable = true;
const isRevokable = true; <--- New flag
const nonce = MosaicNonce.createRandom();
const mosaicDefinitionTransaction = MosaicDefinitionTransaction.create(
Deadline.create(epochAdjustment),
nonce,
MosaicId.createFromNonce(nonce, BFC_Operator.address),
MosaicFlags.create(isSupplyMutable, isTransferable, isRestrictable, isRevokable),
0, // divisibility
UInt64.fromUint(0), // duration
networkType,
);
##モザイク回収トランザクション (Mosaic Supply Revocation transaction)
モザイク回収トランザクション(Mosaic Supply Revocation transaction)はモザイクの所有者が、指定された保有者から回収可能なモザイクを回収するためのトランザクションです。
const mosaicSupplyRevocationTransaction = MosaicSupplyRevocationTransaction.create(
Deadline.create(epochAdjustment),
holderAddress,
new Symbol.Mosaic(new
Symbol.MosaicId('revokable_mosaic_id'),
Symbol.UInt64.fromUint(1)), // mosaic unit
networkType,
maxFee,
)
#最後に
この 回収可能モザイクフラグ(Revokable mosaic flag)と **モザイク回収トランザクション(Mosaic supply revocation transaction)**は、発行したモザイクの供給をコントロールしたり、回収して再利用するような場合にとても便利な機能です。
また、ユーザーに手数料を負担させることなく、発行者がモザイクを回収できることです。ただし、モザイクを保有しているユーザーは回収についてのコントロールはできません。
注意点としては、回収可能モザイク(Revokable mosaic)は、通貨やトークン、株式として使うには適していません。このモザイクを取り扱う際には、回収可能モザイクフラグとその目的を理解することが重要です。受け取った回収可能モザイク(Revokable mosaic)は、保有しているユーザーの同意無しにいつでも発行者が回収することができることが特徴です。