SignerListSet
배SignerListSet 트랜잭션은 트랜잭션에 다중 서명하는 데 사용할 수 있는 서명자 목록을 생성, 교체 또는 제거합니다. 이 트랜잭션 유형은 다중 서명 수정안에 의해 도입되었습니다.
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 트랜잭션은 공통 필드 외에도 다음 필드를 사용합니다:
SignerQuorum
숫자
UInt32
서명자 가중치에 대한 목표 번호입니다. 이 목록의 다중 서명은 제공된 서명의 가중치 합계가 이 값보다 크거나 같은 경우에만 유효합니다. 서명자 목록을 삭제하려면 0 값을 사용합니다.
SignerEntries
배열
배열
(삭제 시 생략) 이 목록에 있는 서명자의 주소와 가중치를 나타내는 서명자 항목 객체의 배열입니다. 이 서명자 목록에는 최소 1명 이상 32명 이하의 구성원이 있어야 합니다. 주소는 목록에 두 번 이상 표시될 수 없으며, 트랜잭션을 제출하는 계정도 목록에 표시될 수 없습니다. (확장된 서명자 목록 개정으로 업데이트되었습니다.)
SignerListSet 트랜잭션이 성공하면 ledger에 있는 계정의 서명자 목록 객체를 바꾸거나, 이전에 없던 객체가 있으면 추가합니다. 한 계정에 서명자 목록이 두 개 이상 있을 수 없습니다. 서명자 목록을 삭제하려면 서명자 쿼럼을 0으로 설정하고 서명자 항목 필드를 생략해야 합니다. 그렇지 않으면 트랜잭션이 temMALFORMED
오류와 함께 실패합니다. 서명자 목록을 삭제하는 트랜잭션은 삭제할 서명자 목록이 없더라도 성공한 것으로 간주됩니다.
서명자 정족수를 절대 충족할 수 없도록 서명자 목록을 만들 수는 없습니다. 서명자 정족수는 0보다 크지만 목록에 있는 서명자 가중치 값의 합보다 작거나 같아야 합니다. 그렇지 않으면 트랜잭션이 템포가 잘못되었다는 오류와 함께 실패합니다.
트랜잭션 서명 방법을 사용할 수 있는 경우 마스터 키, 일반 키 또는 현재 서명자 목록을 사용하여 서명자 목록을 생성, 업데이트 또는 제거할 수 있습니다.
계정에서 트랜잭션에 마지막으로 서명한 방법은 제거할 수 없습니다. 계정의 마스터 키가 비활성화되어 있고(계정에 lsfDisableMaster 플래그가 활성화되어 있음) 계정에 일반 키가 구성되어 있지 않은 경우, 계정에서 서명자 목록을 삭제할 수 없습니다. 대신 트랜잭션이 실패하고 tecNO_ALTERNATIVE_KEY 오류가 발생합니다.
서명자 목록을 만들거나 바꾸면 서명자 목록 객체에서 lsfOneOwnerCount 플래그가 활성화됩니다. 다중 서명 예약 수정안이 활성화되기 전에 생성된 목록에는 이 플래그가 없으며 소유자 예약이 더 높습니다. 목록을 동일한 목록으로 바꾸면 이러한 목록의 소유자 예약을 줄일 수 있습니다. 자세한 내용은 서명자 목록 플래그를 참조하세요.
Last updated