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 Fields
In addition to the common fields, a SignerListSet transaction uses the following fields:
| フィールド | JSONの型 | 内部の型 | 説明 |
|---|---|---|---|
| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチ署名は、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、0の値を使用します。 |
| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示すSignerEntryオブジェクトの配列。SignerListには1~8人のメンバーが含まれている必要があります。リストに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のフラグを参照してください。