最終更新:
編集

SignerList

[ソース]

MultiSign Amendmentにより追加されました。)

SignerListオブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。SignerListSetトランザクションを使用して、SignerListを作成、置き換え、または削除できます。

SignerListのJSONの例

{
   "Flags": 0,
   "LedgerEntryType": "SignerList",
   "OwnerNode": "0000000000000000",
   "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4",
   "PreviousTxnLgrSeq": 16061435,
   "SignerEntries": [
       {
           "SignerEntry": {
               "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
               "SignerWeight": 2
           }
       },
       {
           "SignerEntry": {
               "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
               "SignerWeight": 1
           }
       },
       {
           "SignerEntry": {
               "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v",
               "SignerWeight": 1
           }
       }
   ],
   "SignerListID": 0,
   "SignerQuorum": 3,
   "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7"
}

SignerListのフィールド

SignerListオブジェクトのフィールドを次に示します。

名前JSONの型内部の型説明
LedgerEntryType文字列UInt16値が0x0053(文字列SignerListにマッピング)の場合は、これがSignerListオブジェクトであることを示します。
Flags数値UInt32このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、SignerListのフラグをご覧ください。
PreviousTxnID文字列Hash256最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。
PreviousTxnLgrSeq数値UInt32最後にこのオブジェクトを変更したトランザクションが記録されたレジャーインデックス
OwnerNode文字列UInt64所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。
SignerEntries配列配列この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。
SignerListID数値UInt32この署名者リストのID。現時点では常に0に設定されます。今後のAmendmentによってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。
SignerQuorum数値UInt32署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。

SignerEntriesは、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。

SignerEntryオブジェクト

SignerEntriesフィールドの各メンバーは、リストの署名者を記述するオブジェクトです。SignerEntryのフィールドは次のとおりです。

名前JSONの型内部の型説明
Account文字列AccountID署名がマルチシグに提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。
SignerWeight数値UInt16この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListのSignerQuorum値を超えている場合にのみ有効となります。
WalletLocator文字列Hash256(省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。ExpandedSignerList amendmentにより追加されました。

マルチシグトランザクションを処理する際に、サーバはトランザクション実行時にレジャーに関するAccount値を間接参照します。アドレスが資金供給のあるAccountRootオブジェクトに対応して いない 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに 確かに 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。

SignerListのフラグ

MultiSignReserve Amendmentが必要です.)

SignerListオブジェクトには以下のフラグ値を指定できます。

フラグ名16進値10進値説明
lsfOneOwnerCount0x0001000065536このフラグが有効な場合、SignerListは所有者準備金の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。MultiSignReserve Amendmentが有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。

SignerListと準備金

SignerListは、所有者の必要準備金の対象となります。

MultiSignReserve Amendmentが有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン(RippleState)またはレジャーのOfferオブジェクトで必要な準備金の3~10倍になります。

MultiSignReserve Amendmentが有効となれば、SignerListはそのメンバーの数に関わらず、1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金は、メンバーの数に関わらず5 XRPになります。

MultiSignReserve Amendmentよりも前に作成されたSignerListの必要準備金は変わりません。新しい準備金を利用するには、SignerListSetトランザクションを送信してSignerListを更新してください。

SignerList IDのフォーマット

SignerListオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。

  • RippleStateスペースキー(0x0053
  • SignerListの所有者のAccountID
  • SignerListID(現時点では常に0