Cryptocurrency Research Lab.

Cryptocurrency関連技術についての調査・研究

【XRP】Flare Networks Sparkトークン

XRP保有者にFlare NetworksのSparkトークンが配布されるという情報があったので調べて準備してみました。 coil.com

配布時期はまだアナウンスされていないようですが、XRP Leger上の各アカウントのうち、MessageKey項目にFlare Networks用アカウントとの対応づけが行われているものに対して、そのFlare Networks用アカウントに対してXRPと同量のSparkトークンが配布されるとのことです。
暗号資産(仮想通貨)取引所によっては対応してくれるところもあるようですが、 自分で管理しているような場合には各自で準備しておく必要があります。
自分もテスト用にXRPL上にいくつかXRPを置いてますので、以下のような方法で準備しました。

1. Flare Networksアドレスの準備

Ethereumと同じアドレス(0x・・・・)を利用するようです。
もしもまだアドレスを持っていない場合には、MetaMaskや、Brave BrowserのCrypto Walletsを使って作成するのでもよいかもしれません。 その際、秘密鍵の扱いにはくれぐれも気を付けてください。

2. MessageKey項目の設定値

MessageKeyには以下のルールで組み立てた66桁の文字列を設定します。

  • 先頭に'02'を付与
  • 24個の'0'を付与
  • Ethrereumアドレスの先頭'0x'を除いた40桁を大文字化

3. XRPLへの登録

自分が持っているXRPLのアカウント(r・・・)、および、シークレットキー(s・・・)を用いてXRPL上にMessageKeyを登録します。
ripple-apiを使って行うには、おおよそ以下のように行えばよいでしょう。
変数address、secret、およびethAddressを適切に設定して実行すればOKです。

※実行は各自の責任でお願いします。

setMessageKey.js
const RippleAPI = require('ripple-lib').RippleAPI;

const api = new RippleAPI({
  server: 'wss://s1.ripple.com'
});

let address = 'r・・・';
let secret = 's・・・';

let ethAddress = '0x・・・';
let messageKey = '02' + '0'.repeat(24) + ethAddress.slice(2).toUpperCase();

async function main() {
  try {
    await api.connect();

    let settings = {
      messageKey
    };

    let prepared = await api.prepareSettings(address, settings);
    const {signedTransaction} = api.sign(prepared.txJSON, secret);

    let result = await api.submit(signedTransaction);
    console.log(JSON.stringify(result, null, 2));

    await api.disconnect();

  } catch (e) {
    console.error(e);
  }
}

main();

Flare Networksとは何かという点についてはまだあまり調査していませんが、 Smart contractなど行えるとのことですので、 Sparkトークンを受け取ったら色々と試してみたいと思います。