Skip to content

Commit ad15f6c

Browse files
committed
merged lates master
1 parent 9d2d787 commit ad15f6c

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

src/model/transaction/AggregateTransaction.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,16 @@ export class AggregateTransaction extends Transaction {
150150
* For off chain Aggregated Complete Transaction co-signing.
151151
* @param initiatorAccount - Initiator account
152152
* @param {CosignatureSignedTransaction[]} cosignatureSignedTransactions - Array of cosigned transaction
153+
* @param generationHash - Network generation hash hex
153154
* @return {SignedTransaction}
154155
*/
155156
public signTransactionGivenSignatures(initiatorAccount: Account,
156-
cosignatureSignedTransactions: CosignatureSignedTransaction[]) {
157+
cosignatureSignedTransactions: CosignatureSignedTransaction[],
158+
generationHash: string) {
157159
const aggregateTransaction = this.buildTransaction();
158160
const signedTransactionRaw = aggregateTransaction.signTransactionGivenSignatures(initiatorAccount,
159-
cosignatureSignedTransactions);
161+
cosignatureSignedTransactions,
162+
generationHash);
160163
return new SignedTransaction(signedTransactionRaw.payload, signedTransactionRaw.hash, initiatorAccount.publicKey,
161164
this.type, this.networkType);
162165
}

src/model/transaction/CosignatureTransaction.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {CosignatureTransaction as CosignaturetransactionLibrary} from '../../inf
1818
import {Account} from '../account/Account';
1919
import {AggregateTransaction} from './AggregateTransaction';
2020
import {CosignatureSignedTransaction} from './CosignatureSignedTransaction';
21+
import { VerifiableTransaction } from '../../infrastructure/builders/VerifiableTransaction';
2122

2223
/**
2324
* Cosignature transaction is used to sign an aggregate transactions with missing cosignatures.
@@ -50,13 +51,14 @@ export class CosignatureTransaction {
5051
* Creating a new CosignatureSignedTransaction
5152
* @param account - The signing account
5253
* @param payload - off transaction payload (aggregated transaction is unannounced)
54+
* @param gernationHash - Network generation hash
5355
* @returns {CosignatureSignedTransaction}
5456
*/
55-
public static signTransactionPayload(account: Account, payload: string): CosignatureSignedTransaction {
57+
public static signTransactionPayload(account: Account, payload: string, gernationHash: string): CosignatureSignedTransaction {
5658
/**
5759
* For aggregated complete transaction, cosignatories are gathered off chain announced.
5860
*/
59-
const transactionHash = VerifiableTransaction.createTransactionHash(payload);
61+
const transactionHash = VerifiableTransaction.createTransactionHash(payload, gernationHash);
6062
const aggregateSignatureTransaction = new CosignaturetransactionLibrary(transactionHash);
6163
const signedTransactionRaw = aggregateSignatureTransaction.signCosignatoriesTransaction(account);
6264
return new CosignatureSignedTransaction(signedTransactionRaw.parentHash,

test/model/transaction/AggregateTransaction.spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
import {expect} from 'chai';
1818
import {ChronoUnit} from 'js-joda';
19-
import { VerifiableTransaction } from 'nem2-library';
2019
import { TransactionMapping } from '../../../src/core/utils/TransactionMapping';
2120
import {CreateTransactionFromDTO} from '../../../src/infrastructure/transaction/CreateTransactionFromDTO';
2221
import {Account} from '../../../src/model/account/Account';
@@ -423,10 +422,10 @@ describe('AggregateTransaction', () => {
423422
).serialize();
424423

425424
// 02.1 Bob cosigns the tx and sends it back to Alice
426-
const signedTxBob = CosignatureTransaction.signTransactionPayload(accountBob, aggregateTransactionPayload);
425+
const signedTxBob = CosignatureTransaction.signTransactionPayload(accountBob, aggregateTransactionPayload, generationHash);
427426

428427
// 02.2 Carol cosigns the tx and sends it back to Alice
429-
const signedTxCarol = CosignatureTransaction.signTransactionPayload(accountCarol, aggregateTransactionPayload);
428+
const signedTxCarol = CosignatureTransaction.signTransactionPayload(accountCarol, aggregateTransactionPayload, generationHash);
430429

431430
// 03. Alice collects the cosignatures, recreate, sign, and announces the transaction
432431

@@ -438,7 +437,7 @@ describe('AggregateTransaction', () => {
438437

439438
const recreatedTx = TransactionMapping.createFromPayload(aggregateTransactionPayload) as AggregateTransaction;
440439

441-
const signedTransaction = recreatedTx.signTransactionGivenSignatures(accountAlice, cosignatureSignedTransactions);
440+
const signedTransaction = recreatedTx.signTransactionGivenSignatures(accountAlice, cosignatureSignedTransactions, generationHash);
442441

443442
expect(signedTransaction.type).to.be.equal(TransactionType.AGGREGATE_COMPLETE);
444443
expect(signedTransaction.signer).to.be.equal(accountAlice.publicKey);

test/model/transaction/CosignatureTransaction.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616

1717
import {expect} from 'chai';
18-
import { VerifiableTransaction } from 'nem2-library';
1918
import {CreateTransactionFromDTO} from '../../../src/infrastructure/transaction/CreateTransactionFromDTO';
2019
import {Account} from '../../../src/model/account/Account';
2120
import { NetworkType } from '../../../src/model/blockchain/NetworkType';
@@ -28,7 +27,7 @@ import {TestingAccount} from '../../conf/conf.spec';
2827

2928
describe('CosignatureTransaction', () => {
3029
let account: Account;
31-
30+
const generationHash = '57F7DA205008026C776CB6AED843393F04CD458E0AA2D9F1D5F31A402072B2D6';
3231
before(() => {
3332
account = TestingAccount;
3433
});
@@ -125,7 +124,7 @@ describe('CosignatureTransaction', () => {
125124
PlainMessage.create('a to b'),
126125
NetworkType.MIJIN_TEST).serialize();
127126

128-
const signedTx = CosignatureTransaction.signTransactionPayload(account, txPayload);
127+
const signedTx = CosignatureTransaction.signTransactionPayload(account, txPayload, generationHash);
129128

130129
expect(signedTx.signer).to.be.equal('C2F93346E27CE6AD1A9F8F5E3066F8326593A406BDF357ACB041E2F9AB402EFE');
131130
expect(signedTx.signer).to.be.equal(account.publicKey);

0 commit comments

Comments
 (0)