Caver java를 이용한 RoleBasedKeyring에서 private key를 여러개 생성하는 부분에서 문의드립니다

BigInteger[][] optionWeight = {
                {BigInteger.ONE, BigInteger.ONE},
                {},
                {BigInteger.valueOf(2), BigInteger.ONE, BigInteger.ONE},
        };

        WeightedMultiSigOptions[] options = {
                new WeightedMultiSigOptions(BigInteger.valueOf(2), Arrays.asList(optionWeight[0])),
                new WeightedMultiSigOptions(),
                new WeightedMultiSigOptions(BigInteger.valueOf(3), Arrays.asList(optionWeight[2])),
        };

샘플소스를 참고하여 테스트하면서 이 부분이 잘 이해가 가지 않았습니다

optionWeight에서 private key를 tx는 2개의 키를, account는 1개, fee payer는 3개의 키를 만드는 것으로 이해했습니다.

이 부분을 아래 소스처럼 역할별로 1개의 private key를 가진 keyring으로 만드는 것과 어떤 차이가 있는지 궁금해서 문의드립니다.

WeightedMultiSigOptions[] options = {
                new WeightedMultiSigOptions(),
                new WeightedMultiSigOptions(),
                new WeightedMultiSigOptions(),
        };

위 소스, 아래 소스 둘다 WeightedMultisigOptions instance를 만드는과정이고

위 소스는 각 Role에 이렇게 표현합니다.
Transaction Role - Threshold : 2, Weight : 1, 1
AccountUpdate Role : Empty(WeightedMultisig 이외의 Account Key Type을 만들때 사용됨)
FeePayer Role : Threshold 3, weight : 2, 1, 1

아래 소스는 각 Role을 이렇게 표현합니다.
Transaction Role - Empty(WeightedMultisig 이외의 Account Key Type을 만들때 사용됨)
AccountUpdate Role : Empty(WeightedMultisig 이외의 Account Key Type을 만들때 사용됨)
FeePayer Role : Empty(WeightedMultisig 이외의 Account Key Type을 만들때 사용됨)

아래 소스와 public key list를 fromRoleBasedPublicKeysAndOptions() 함수에 전달하면
각각 Role이 AccountKeyPublic type을 가지게 됩니다.

@Kale

네 감사합니다 해당 부분을 좀더 스터디 해보겠습니다