Skip to content

Commit f99837c

Browse files
committed
Added signSchema to transaction signning
1 parent f3ae9d8 commit f99837c

File tree

5 files changed

+33
-17
lines changed

5 files changed

+33
-17
lines changed

src/infrastructure/builders/AggregateTransaction.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/**
1818
* @module transactions/AggregateTransaction
1919
*/
20+
import { SignSchema } from '../../core/crypto';
2021
import AggregateTransactionBufferPackage from '../buffers/AggregateTransactionBuffer';
2122
import AggregateTransactionSchema from '../schemas/AggregateTransactionSchema';
2223
import { CosignatureTransaction} from './CosignatureTransaction';
@@ -35,11 +36,11 @@ export class AggregateTransaction extends VerifiableTransaction {
3536
super(bytes, AggregateTransactionSchema);
3637
}
3738

38-
signTransactionWithCosigners(initializer, cosigners, generationHash) {
39-
const signedTransaction = this.signTransaction(initializer, generationHash);
39+
signTransactionWithCosigners(initializer, cosigners, generationHash, signSchema: SignSchema = SignSchema.Catapult) {
40+
const signedTransaction = this.signTransaction(initializer, generationHash, signSchema);
4041
cosigners.forEach((cosigner) => {
4142
const signatureTransaction = new CosignatureTransaction(signedTransaction.hash);
42-
const signatureCosignTransaction = signatureTransaction.signCosignatoriesTransaction(cosigner);
43+
const signatureCosignTransaction = signatureTransaction.signCosignatoriesTransaction(cosigner, signSchema);
4344
signedTransaction.payload = signedTransaction.payload +
4445
signatureCosignTransaction.signer + signatureCosignTransaction.signature;
4546
});
@@ -56,8 +57,8 @@ export class AggregateTransaction extends VerifiableTransaction {
5657
return signedTransaction;
5758
}
5859

59-
signTransactionGivenSignatures(initializer, cosignedSignedTransactions, generationHash) {
60-
const signedTransaction = this.signTransaction(initializer, generationHash);
60+
signTransactionGivenSignatures(initializer, cosignedSignedTransactions, generationHash, signSchema) {
61+
const signedTransaction = this.signTransaction(initializer, generationHash, signSchema);
6162
cosignedSignedTransactions.forEach((cosignedTransaction) => {
6263
signedTransaction.payload = signedTransaction.payload + cosignedTransaction.signer + cosignedTransaction.signature;
6364
});

src/model/account/Account.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,32 +149,37 @@ export class Account {
149149
* Sign a transaction
150150
* @param transaction - The transaction to be signed.
151151
* @param generationHash - Network generation hash hex
152+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
152153
* @return {SignedTransaction}
153154
*/
154-
public sign(transaction: Transaction, generationHash): SignedTransaction {
155-
return transaction.signWith(this, generationHash);
155+
public sign(transaction: Transaction, generationHash, signSchema: SignSchema = SignSchema.Catapult): SignedTransaction {
156+
return transaction.signWith(this, generationHash, signSchema);
156157
}
157158

158159
/**
159160
* Sign transaction with cosignatories creating a new SignedTransaction
160161
* @param transaction - The aggregate transaction to be signed.
161162
* @param cosignatories - The array of accounts that will cosign the transaction
162163
* @param generationHash - Network generation hash hex
164+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
163165
* @return {SignedTransaction}
164166
*/
165167
public signTransactionWithCosignatories(transaction: AggregateTransaction,
166168
cosignatories: Account[],
167-
generationHash: string): SignedTransaction {
168-
return transaction.signTransactionWithCosignatories(this, cosignatories, generationHash);
169+
generationHash: string,
170+
signSchema: SignSchema = SignSchema.Catapult): SignedTransaction {
171+
return transaction.signTransactionWithCosignatories(this, cosignatories, generationHash, signSchema);
169172
}
170173

171174
/**
172175
* Sign aggregate signature transaction
173176
* @param cosignatureTransaction - The aggregate signature transaction.
177+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
174178
* @return {CosignatureSignedTransaction}
175179
*/
176-
public signCosignatureTransaction(cosignatureTransaction: CosignatureTransaction): CosignatureSignedTransaction {
177-
return cosignatureTransaction.signWith(this);
180+
public signCosignatureTransaction(cosignatureTransaction: CosignatureTransaction,
181+
signSchema: SignSchema = SignSchema.Catapult): CosignatureSignedTransaction {
182+
return cosignatureTransaction.signWith(this, signSchema);
178183
}
179184

180185
/**

src/model/transaction/AggregateTransaction.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { SignSchema } from '../../core/crypto';
1718
import { Builder } from '../../infrastructure/builders/AggregateTransaction';
1819
import { AggregateTransaction as AggregatedTransactionCore} from '../../infrastructure/builders/AggregateTransaction';
1920
import { Account } from '../account/Account';
@@ -134,11 +135,16 @@ export class AggregateTransaction extends Transaction {
134135
* @param initiatorAccount - Initiator account
135136
* @param cosignatories - The array of accounts that will cosign the transaction
136137
* @param generationHash - Network generation hash hex
138+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
137139
* @returns {SignedTransaction}
138140
*/
139-
public signTransactionWithCosignatories(initiatorAccount: Account, cosignatories: Account[], generationHash: string) {
141+
public signTransactionWithCosignatories(initiatorAccount: Account,
142+
cosignatories: Account[],
143+
generationHash: string,
144+
signSchema: SignSchema = SignSchema.Catapult) {
140145
const aggregateTransaction = this.buildTransaction();
141-
const signedTransactionRaw = aggregateTransaction.signTransactionWithCosigners(initiatorAccount, cosignatories, generationHash);
146+
const signedTransactionRaw = aggregateTransaction
147+
.signTransactionWithCosigners(initiatorAccount, cosignatories, generationHash, signSchema);
142148
return new SignedTransaction(signedTransactionRaw.payload, signedTransactionRaw.hash, initiatorAccount.publicKey,
143149
this.type, this.networkType);
144150
}

src/model/transaction/CosignatureTransaction.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { SignSchema } from '../../core/crypto';
1718
import {CosignatureTransaction as CosignaturetransactionLibrary} from '../../infrastructure/builders/CosignatureTransaction';
1819
import {Account} from '../account/Account';
1920
import {AggregateTransaction} from './AggregateTransaction';
@@ -49,11 +50,12 @@ export class CosignatureTransaction {
4950
* @internal
5051
* Serialize and sign transaction creating a new SignedTransaction
5152
* @param account
53+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
5254
* @returns {CosignatureSignedTransaction}
5355
*/
54-
public signWith(account: Account): CosignatureSignedTransaction {
56+
public signWith(account: Account, signSchema: SignSchema = SignSchema.Catapult): CosignatureSignedTransaction {
5557
const aggregateSignatureTransaction = new CosignaturetransactionLibrary(this.transactionToCosign.transactionInfo!.hash);
56-
const signedTransactionRaw = aggregateSignatureTransaction.signCosignatoriesTransaction(account);
58+
const signedTransactionRaw = aggregateSignatureTransaction.signCosignatoriesTransaction(account, signSchema);
5759
return new CosignatureSignedTransaction(signedTransactionRaw.parentHash,
5860
signedTransactionRaw.signature,
5961
signedTransactionRaw.signer);

src/model/transaction/Transaction.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { SignSchema } from '../../core/crypto';
1718
import { VerifiableTransaction } from '../../infrastructure/builders/VerifiableTransaction';
1819
import { SerializeTransactionToJSON } from '../../infrastructure/transaction/SerializeTransactionToJSON';
1920
import { Account } from '../account/Account';
@@ -83,11 +84,12 @@ export abstract class Transaction {
8384
* Serialize and sign transaction creating a new SignedTransaction
8485
* @param account - The account to sign the transaction
8586
* @param generationHash - Network generation hash hex
87+
* @param {SignSchema} signSchema The Sign Schema (NIS / Catapult)
8688
* @returns {SignedTransaction}
8789
*/
88-
public signWith(account: Account, generationHash: string): SignedTransaction {
90+
public signWith(account: Account, generationHash: string, signSchema: SignSchema = SignSchema.Catapult): SignedTransaction {
8991
const transaction = this.buildTransaction();
90-
const signedTransactionRaw = transaction.signTransaction(account, generationHash);
92+
const signedTransactionRaw = transaction.signTransaction(account, generationHash, signSchema);
9193
return new SignedTransaction(
9294
signedTransactionRaw.payload,
9395
signedTransactionRaw.hash,

0 commit comments

Comments
 (0)