feat: validator info deserialization (#403)
This commit is contained in:
committed by
Michael Vines
parent
2072f20997
commit
6f05930076
36
web3.js/test/validator-info.test.js
Normal file
36
web3.js/test/validator-info.test.js
Normal file
@ -0,0 +1,36 @@
|
||||
// @flow
|
||||
import nacl from 'tweetnacl';
|
||||
|
||||
import {PublicKey} from '../src/publickey';
|
||||
import {ValidatorInfo} from '../src/validator-info';
|
||||
|
||||
test('from config account data', () => {
|
||||
const keypair = nacl.sign.keyPair.fromSeed(
|
||||
Uint8Array.from(Array(32).fill(8)),
|
||||
);
|
||||
|
||||
const expectedValidatorInfo = new ValidatorInfo(
|
||||
new PublicKey(keypair.publicKey),
|
||||
{
|
||||
name: 'Validator',
|
||||
keybaseId: 'validator_id',
|
||||
},
|
||||
);
|
||||
|
||||
// Config data string steps:
|
||||
// 1) Generate a keypair
|
||||
// 2) Airdrop lamports to the account
|
||||
// 3) Modify the `solana-validator-info` tool
|
||||
// a) Remove the keybase id verification step
|
||||
// b) Print base64 account data in the `get --all` codepath
|
||||
// c) Add `println!("Account data: {:?}", base64::encode(&account.data));`
|
||||
// 4) Use modified `solana-validator-info` tool to publish validator info
|
||||
// 5) And then use it again to fetch the data! (feel free to trim some A's)
|
||||
const configData = Buffer.from(
|
||||
'AgdRlwF0SPKsXcI8nrx6x4wKJyV6xhRFjeCk8W+AAAAAABOY9ixtGkV8UbpqS189vS9p/KkyFiGNyJl+QWvRfZPKAS8AAAAAAAAAeyJrZXliYXNlSWQiOiJ2YWxpZGF0b3JfaWQiLCJuYW1lIjoiVmFsaWRhdG9yIn0',
|
||||
'base64',
|
||||
);
|
||||
const info = ValidatorInfo.fromConfigData(configData);
|
||||
|
||||
expect(info).toEqual(expectedValidatorInfo);
|
||||
});
|
Reference in New Issue
Block a user