solana/web3.js/test/transaction.test.js

41 lines
1.4 KiB
JavaScript
Raw Normal View History

// @flow
import {Account} from '../src/account';
import {Transaction} from '../src/transaction';
import {SystemProgram} from '../src/system-program';
test('signPartial', () => {
const account1 = new Account();
const account2 = new Account();
const lastId = account1.publicKey.toBase58(); // Fake lastId
const move = SystemProgram.move(account1.publicKey, account2.publicKey, 123);
const transaction = new Transaction({lastId}).add(move);
transaction.sign(account1, account2);
const partialTransaction = new Transaction({lastId}).add(move);
partialTransaction.signPartial(account1, account2.publicKey);
expect(partialTransaction.signatures[1].signature).toBeNull();
partialTransaction.addSigner(account2);
expect(partialTransaction).toEqual(transaction);
});
test('transfer signatures', () => {
const account1 = new Account();
const account2 = new Account();
const lastId = account1.publicKey.toBase58(); // Fake lastId
const move1 = SystemProgram.move(account1.publicKey, account2.publicKey, 123);
const move2 = SystemProgram.move(account2.publicKey, account1.publicKey, 123);
const orgTransaction = new Transaction({lastId}).add(move1, move2);
orgTransaction.sign(account1, account2);
const newTransaction = new Transaction({
lastId: orgTransaction.lastId,
fee: orgTransaction.fee,
signatures: orgTransaction.signatures,
}).add(move1, move2);
expect(newTransaction).toEqual(orgTransaction);
});