add ExpandedSignerList amendment support (#2026)

expand the maximum signer list to 32 entries
This commit is contained in:
Omar Khan
2022-09-13 13:50:54 -04:00
committed by GitHub
parent 76b73e16a9
commit 8a9a9bcc28
4 changed files with 166 additions and 5 deletions

View File

@@ -89,4 +89,127 @@ describe('SignerListSet', function () {
'SignerListSet: invalid SignerEntries',
)
})
it(`throws w/ maximum of 32 members allowed in SignerEntries`, function () {
signerListSetTx.SignerEntries = []
const accounts = [
'rBFBipte4nAQCTsRxd2czwvSurhCpAf4X6',
'r3ijUH32iiy9tYNj3rD7hKWYjy1BFUxngm',
'rpwq8vi4Mn3L5kDJmb8Mg59CanPFPzMCnj',
'rB72Gzqfejai46nkA4HaKYBHwAnn2yUoT4',
'rGqsJSAW71pCfUwDD5m52bLw69RzFg6kMW',
'rs8smPRA31Ym4mGxb1wzgwxtU5eVK82Gyk',
'rLrugpGxzezUQLDh7Jv1tZpouuV4MQLbU9',
'rUQ6zLXQdh1jJLGwMXp9P8rgi42kwuafzs',
'rMjY8sPdfxsyRrnVKQcutxr4mTHNXy9dEF',
'rUaxYLeFGm6SmMoa2WCqLKSyHwJyvaQmeG',
'r9wUfeVtqMfqrcDTfCpNYbNZvs5q9M9Rpo',
'rQncVNak5kvJGPUFa6fuKH7t8Usjs7Np1c',
'rnwbSSnPbVbUzuBa4etkeYrfy5v7SyhtPu',
'rDXh5D3t48MdBJyXByXq47k5P8Kuf1758B',
'rh1D4jd2mAiqUPHfAZ2cY9Nbfa3kAkaQXP',
'r9T129tXgtnyfGoLeS35c2HctaZAZSQoCH',
'rUd2uKsyCWfJP7Ve36mKoJbNCA7RYThnYk',
'r326x8PaAFtnaH7uoxaKrcDWuwpeHn4wDa',
'rpN3mkXkYhfNadcXPrY4LniM1KpM3egyQM',
'rsPKbR155hz1zrA4pSJp5Y2fxasZAatcHb',
'rsyWFLaEKTpaoSJusjpcDvGexuHCwMnqss',
'rUbc5RXfyF81oLDMgd3d7jpY9YMNMZG4XN',
'rGpYHM88BZe1iVKFHm5xiWYYxR74oxJEXf',
'rPsetWAtR1KxDtxzgHjRMD7Rc87rvXk5nD',
'rwSeNhL6Hi34igr12mCr61jY42psfTkWTq',
'r46Mygy98qjkDhVB6qs4sBnqaf7FPiA2vU',
'r4s8GmeYN4CiwVate1nMUvwMQbundqf5cW',
'rKAr4dQWDYG8cG2hSwJUVp4ry4WNaWiNgp',
'rPWXRLp1vqeUHEH3WiSKuyo9GM9XhaENQU',
'rPgmdBdRKGmndxNEYxUrrsYCZaS6go9RvW',
'rPDJZ9irzgwKRKScfEmuJMvUgrqZAJNCbL',
'rDuU2uSXMfEaoxN1qW8sj7aUNFLGEn3Hr2',
'rsbjSjA4TCB9gtm7x7SrWbZHB6g4tt9CGU',
]
signerListSetTx.SignerQuorum = accounts.length
for (const acc of accounts) {
signerListSetTx.SignerEntries.push({
SignerEntry: {
Account: acc,
SignerWeight: 1,
},
})
}
const errorMessage =
'SignerListSet: maximum of 32 members allowed in SignerEntries'
assert.throws(
() => validateSignerListSet(signerListSetTx),
ValidationError,
errorMessage,
)
assert.throws(
() => validate(signerListSetTx),
ValidationError,
errorMessage,
)
})
it(`verifies valid WalletLocator in SignerEntries`, function () {
signerListSetTx.SignerQuorum = 3
signerListSetTx.SignerEntries = [
{
SignerEntry: {
Account: 'rBFBipte4nAQCTsRxd2czwvSurhCpAf4X6',
SignerWeight: 1,
WalletLocator:
'CAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFECAFE',
},
},
{
SignerEntry: {
Account: 'r3ijUH32iiy9tYNj3rD7hKWYjy1BFUxngm',
SignerWeight: 1,
},
},
{
SignerEntry: {
Account: 'rpwq8vi4Mn3L5kDJmb8Mg59CanPFPzMCnj',
SignerWeight: 1,
WalletLocator:
'00000000000000000000000000000000000000000000000000000000DEADBEEF',
},
},
]
assert.doesNotThrow(() => validateSignerListSet(signerListSetTx))
assert.doesNotThrow(() => validate(signerListSetTx))
})
it(`throws w/ invalid WalletLocator in SignerEntries`, function () {
signerListSetTx.SignerQuorum = 2
signerListSetTx.SignerEntries = [
{
SignerEntry: {
Account: 'rBFBipte4nAQCTsRxd2czwvSurhCpAf4X6',
SignerWeight: 1,
WalletLocator: 'not_valid',
},
},
{
SignerEntry: {
Account: 'r3ijUH32iiy9tYNj3rD7hKWYjy1BFUxngm',
SignerWeight: 1,
},
},
]
const errorMessage =
'SignerListSet: WalletLocator in SignerEntry must be a 256-bit (32-byte) hexadecimal value'
assert.throws(
() => validateSignerListSet(signerListSetTx),
ValidationError,
errorMessage,
)
assert.throws(
() => validate(signerListSetTx),
ValidationError,
errorMessage,
)
})
})