SignerListSet
SignerListSetトランザクションは、トランザクションのマルチシグに使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプはMultiSign Amendmentにより導入されました。
SignerListSetのJSONの例
{ "Flags":0, "TransactionType":"SignerListSet", "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee":"12", "SignerQuorum":3, "SignerEntries":[ { "SignerEntry":{ "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", "SignerWeight":2 } }, { "SignerEntry":{ "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", "SignerWeight":1 } }, { "SignerEntry":{ "Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", "SignerWeight":1 } } ] }
SignerListSet フィールド
共通フィールドに加えて、SignerListSetトランザクションは以下のフィールドを使用します。
フィールド | JSONの型 | 内部の型 | 説明 |
---|---|---|---|
SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、0 の値を使用します。 |
SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示すSignerEntryオブジェクトの配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信するAccount も表示されません。 |
アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、SignerQuorum
を0
に設定し、かつSignerEntries
フィールドを省略します。このようにしないと、トランザクションはtemMALFORMEDエラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。
SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストのSignerWeight
値の合計以下でなければなりません。このようにしないと、トランザクションはtemMALFORMEDエラーで失敗します。
トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。
トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で(lsfDisableMaster
フラグが有効な場合)、アカウントでレギュラーキーが設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションはtecNO_ALTERNATIVE_KEY
エラーで失敗します。
MultiSignReserve Amendmentが有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListのOwnerCount
と所有者準備金を減らせます。詳細は、SignerListのフラグをご覧ください。