57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {expect} from 'chai';
 | 
						|
import {Buffer} from 'buffer';
 | 
						|
 | 
						|
import {Keypair} from '../src';
 | 
						|
 | 
						|
describe('Keypair', () => {
 | 
						|
  it('new keypair', () => {
 | 
						|
    const keypair = new Keypair();
 | 
						|
    expect(keypair.secretKey).to.have.length(64);
 | 
						|
    expect(keypair.publicKey.toBytes()).to.have.length(32);
 | 
						|
  });
 | 
						|
 | 
						|
  it('generate new keypair', () => {
 | 
						|
    const keypair = Keypair.generate();
 | 
						|
    expect(keypair.secretKey).to.have.length(64);
 | 
						|
  });
 | 
						|
 | 
						|
  it('create keypair from secret key', () => {
 | 
						|
    const secretKey = Buffer.from(
 | 
						|
      'mdqVWeFekT7pqy5T49+tV12jO0m+ESW7ki4zSU9JiCgbL0kJbj5dvQ/PqcDAzZLZqzshVEs01d1KZdmLh4uZIg==',
 | 
						|
      'base64',
 | 
						|
    );
 | 
						|
    const keypair = Keypair.fromSecretKey(secretKey);
 | 
						|
    expect(keypair.publicKey.toBase58()).to.eq(
 | 
						|
      '2q7pyhPwAwZ3QMfZrnAbDhnh9mDUqycszcpf86VgQxhF',
 | 
						|
    );
 | 
						|
  });
 | 
						|
 | 
						|
  it('creating keypair from invalid secret key throws error', () => {
 | 
						|
    const secretKey = Buffer.from(
 | 
						|
      'mdqVWeFekT7pqy5T49+tV12jO0m+ESW7ki4zSU9JiCgbL0kJbj5dvQ/PqcDAzZLZqzshVEs01d1KZdmLh4uZIG==',
 | 
						|
      'base64',
 | 
						|
    );
 | 
						|
    expect(() => {
 | 
						|
      Keypair.fromSecretKey(secretKey);
 | 
						|
    }).to.throw('provided secretKey is invalid');
 | 
						|
  });
 | 
						|
 | 
						|
  it('creating keypair from invalid secret key succeeds if validation is skipped', () => {
 | 
						|
    const secretKey = Buffer.from(
 | 
						|
      'mdqVWeFekT7pqy5T49+tV12jO0m+ESW7ki4zSU9JiCgbL0kJbj5dvQ/PqcDAzZLZqzshVEs01d1KZdmLh4uZIG==',
 | 
						|
      'base64',
 | 
						|
    );
 | 
						|
    const keypair = Keypair.fromSecretKey(secretKey, {skipValidation: true});
 | 
						|
    expect(keypair.publicKey.toBase58()).to.eq(
 | 
						|
      '2q7pyhPwAwZ3QMfZrnAbDhnh9mDUqycszcpf86VgQxhD',
 | 
						|
    );
 | 
						|
  });
 | 
						|
 | 
						|
  it('generate keypair from random seed', () => {
 | 
						|
    const keypair = Keypair.fromSeed(Uint8Array.from(Array(32).fill(8)));
 | 
						|
    expect(keypair.publicKey.toBase58()).to.eq(
 | 
						|
      '2KW2XRd9kwqet15Aha2oK3tYvd3nWbTFH1MBiRAv1BE1',
 | 
						|
    );
 | 
						|
  });
 | 
						|
});
 |