feat: add support for partial Transaction signing
This commit is contained in:
40
web3.js/test/transaction.test.js
Normal file
40
web3.js/test/transaction.test.js
Normal file
@ -0,0 +1,40 @@
|
||||
// @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);
|
||||
});
|
Reference in New Issue
Block a user