署名生成手順

ARCANAトークンを生成するにあたり、Validator(コンテンツ側)が持つEGGトークンを、ユーザがARCANAに変換することを許可する必要がある。 また、このときコンテンツの結果値をARCANAトークンに埋め込むため、この値を改竄されずにトークンに書き込む必要がある。 これを行うために、コンテンツサイドで署名を作成し、その署名を使ってユーザがトランザクションを送信するという手順を行う。 eggidオーナのprivate keyはValidator管理画面に対象ユーザーでログインし、ブラウザの開発ツールのコンソールから確認できる。


ARCANA生成時に使用する署名データの作成

署名データを作成するには、下記のデータが必要。

パラメータ

説明

eggid

対象のEGG トークンのID

toAddr

ARCANA生成先のアドレス(EGGの開封許諾を与える相手)

seed

コンテンツの結果値

contract

Incubatorのコントラクトアドレス

privateKey

eggidオーナのprivate key。専用のサイトで取得した秘密鍵の頭に"0x"を付与して設定。

上記データを元に、以下の手順で署名対象データdataToBeSigned を作成する。:

const genSig = require("./genSig.js");

const signature = genSig.signForIncubate(eggid,toAddr,seed,contract,privateKey);

PERSONA配布時に使用する署名データの作成

パラメータ

説明

from

PERSONA トークンの保有者のアドレス

to

PERSONA トークンの転送先のアドレス

tokenId

対象のPERSONA トークンのID

contract

PERSONAのコントラクトアドレス

privateKey

PERSONA トークンのオーナのprivate key。専用のサイトで取得した秘密鍵の頭に"0x"を付与して設定。

上記データを元に、以下の手順で署名対象データを作成する。:

const genSig = require("./genSig.js");

const sigInfoApp = genSig.signForPersonaApprove(to, tokenId, contract, privateKey);

const sigInfoAppNonce = sigInfoApp.nonce;
const sigInfoAppSign  = sigInfoApp.sign;

const sigInfoTrans = genSig.forPersonaTransferFrom(from, to, tokenId, contract, privateKey);

const sigInfoTransNonce = sigInfoTrans.nonce;
const sigInfoTransSign  = sigInfoTrans.sign;

ライブラリ

環境情報を参照。