Skip to content

Commit 6f71e1f

Browse files
author
Aleix Morgadas
authored
Merge pull request #18 from gimyboya/task/4/public-deadline
Exposed Deadline to the public in Transaction class
2 parents e7f3689 + 142da27 commit 6f71e1f

13 files changed

+191
-132
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/model/transaction/AggregateTransaction.ts

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

17-
import {AggregateTransaction as AggregateTransactionLibrary} from 'nem2-library';
18-
import {Account} from '../account/Account';
19-
import {PublicAccount} from '../account/PublicAccount';
20-
import {NetworkType} from '../blockchain/NetworkType';
21-
import {UInt64} from '../UInt64';
22-
import {AggregateTransactionCosignature} from './AggregateTransactionCosignature';
23-
import {Deadline} from './Deadline';
24-
import {InnerTransaction} from './InnerTransaction';
25-
import {SignedTransaction} from './SignedTransaction';
26-
import {Transaction} from './Transaction';
27-
import {TransactionInfo} from './TransactionInfo';
28-
import {TransactionType} from './TransactionType';
17+
import { AggregateTransaction as AggregateTransactionLibrary } from 'nem2-library';
18+
import { Account } from '../account/Account';
19+
import { PublicAccount } from '../account/PublicAccount';
20+
import { NetworkType } from '../blockchain/NetworkType';
21+
import { UInt64 } from '../UInt64';
22+
import { AggregateTransactionCosignature } from './AggregateTransactionCosignature';
23+
import { Deadline } from './Deadline';
24+
import { InnerTransaction } from './InnerTransaction';
25+
import { SignedTransaction } from './SignedTransaction';
26+
import { Transaction } from './Transaction';
27+
import { TransactionInfo } from './TransactionInfo';
28+
import { TransactionType } from './TransactionType';
2929

3030
/**
3131
* Aggregate innerTransactions contain multiple innerTransactions that can be initiated by different accounts.

src/model/transaction/LockFundsTransaction.ts

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

17-
import {HashLockTransaction, VerifiableTransaction} from 'nem2-library';
18-
import {PublicAccount} from '../account/PublicAccount';
19-
import {NetworkType} from '../blockchain/NetworkType';
20-
import {Mosaic} from '../mosaic/Mosaic';
21-
import {UInt64} from '../UInt64';
22-
import {Deadline} from './Deadline';
23-
import {SignedTransaction} from './SignedTransaction';
24-
import {Transaction} from './Transaction';
25-
import {TransactionInfo} from './TransactionInfo';
26-
import {TransactionType} from './TransactionType';
17+
import { HashLockTransaction, VerifiableTransaction } from 'nem2-library';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { Mosaic } from '../mosaic/Mosaic';
21+
import { UInt64 } from '../UInt64';
22+
import { Deadline } from './Deadline';
23+
import { SignedTransaction } from './SignedTransaction';
24+
import { Transaction } from './Transaction';
25+
import { TransactionInfo } from './TransactionInfo';
26+
import { TransactionType } from './TransactionType';
2727

2828
/**
2929
* Lock funds transaction is used before sending an Aggregate bonded transaction, as a deposit to announce the transaction.

src/model/transaction/ModifyMultisigAccountTransaction.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {MultisigModificationTransaction as ModifyMultisigAccountTransactionLibrary, VerifiableTransaction} from 'nem2-library';
18-
import {PublicAccount} from '../account/PublicAccount';
19-
import {NetworkType} from '../blockchain/NetworkType';
20-
import {UInt64} from '../UInt64';
21-
import {Deadline} from './Deadline';
22-
import {MultisigCosignatoryModification} from './MultisigCosignatoryModification';
23-
import {Transaction} from './Transaction';
24-
import {TransactionInfo} from './TransactionInfo';
25-
import {TransactionType} from './TransactionType';
17+
import { MultisigModificationTransaction as ModifyMultisigAccountTransactionLibrary, VerifiableTransaction } from 'nem2-library';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { UInt64 } from '../UInt64';
21+
import { Deadline } from './Deadline';
22+
import { MultisigCosignatoryModification } from './MultisigCosignatoryModification';
23+
import { Transaction } from './Transaction';
24+
import { TransactionInfo } from './TransactionInfo';
25+
import { TransactionType } from './TransactionType';
2626

2727
/**
2828
* Modify multisig account transactions are part of the NEM's multisig account system.
@@ -105,4 +105,5 @@ export class ModifyMultisigAccountTransaction extends Transaction {
105105
.addModifications(this.modifications.map((modification) => modification.toDTO()))
106106
.build();
107107
}
108+
108109
}

src/model/transaction/MosaicDefinitionTransaction.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,17 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {
18-
MosaicCreationTransaction as MosaicDefinitionTransactionLibrary,
19-
mosaicId as mosaicIdLibrary,
20-
VerifiableTransaction,
21-
} from 'nem2-library';
22-
import {PublicAccount} from '../account/PublicAccount';
23-
import {NetworkType} from '../blockchain/NetworkType';
24-
import {MosaicId} from '../mosaic/MosaicId';
25-
import {MosaicProperties} from '../mosaic/MosaicProperties';
26-
import {NamespaceId} from '../namespace/NamespaceId';
27-
import {UInt64} from '../UInt64';
28-
import {Deadline} from './Deadline';
29-
import {Transaction} from './Transaction';
30-
import {TransactionInfo} from './TransactionInfo';
31-
import {TransactionType} from './TransactionType';
17+
import { MosaicCreationTransaction as MosaicDefinitionTransactionLibrary, mosaicId as mosaicIdLibrary, VerifiableTransaction } from 'nem2-library';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { MosaicId } from '../mosaic/MosaicId';
21+
import { MosaicProperties } from '../mosaic/MosaicProperties';
22+
import { NamespaceId } from '../namespace/NamespaceId';
23+
import { UInt64 } from '../UInt64';
24+
import { Deadline } from './Deadline';
25+
import { Transaction } from './Transaction';
26+
import { TransactionInfo } from './TransactionInfo';
27+
import { TransactionType } from './TransactionType';
3228

3329
/**
3430
* Before a mosaic can be created or transferred, a corresponding definition of the mosaic has to be created and published to the network.
@@ -129,4 +125,5 @@ export class MosaicDefinitionTransaction extends Transaction {
129125

130126
return mosaicDefinitionTransaction.build();
131127
}
128+
132129
}

src/model/transaction/MosaicSupplyChangeTransaction.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {MosaicSupplyChangeTransaction as MosaicSupplyChangeTransactionLibrary, VerifiableTransaction} from 'nem2-library';
18-
import {PublicAccount} from '../account/PublicAccount';
19-
import {NetworkType} from '../blockchain/NetworkType';
20-
import {MosaicId} from '../mosaic/MosaicId';
21-
import {MosaicSupplyType} from '../mosaic/MosaicSupplyType';
22-
import {UInt64} from '../UInt64';
23-
import {Deadline} from './Deadline';
24-
import {Transaction} from './Transaction';
25-
import {TransactionInfo} from './TransactionInfo';
26-
import {TransactionType} from './TransactionType';
17+
import { MosaicSupplyChangeTransaction as MosaicSupplyChangeTransactionLibrary, VerifiableTransaction } from 'nem2-library';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { MosaicId } from '../mosaic/MosaicId';
21+
import { MosaicSupplyType } from '../mosaic/MosaicSupplyType';
22+
import { UInt64 } from '../UInt64';
23+
import { Deadline } from './Deadline';
24+
import { Transaction } from './Transaction';
25+
import { TransactionInfo } from './TransactionInfo';
26+
import { TransactionType } from './TransactionType';
2727

2828
/**
2929
* In case a mosaic has the flag 'supplyMutable' set to true, the creator of the mosaic can change the supply,
@@ -103,4 +103,5 @@ export class MosaicSupplyChangeTransaction extends Transaction {
103103
.addDelta(this.delta.toDTO())
104104
.build();
105105
}
106+
106107
}

src/model/transaction/RegisterNamespaceTransaction.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {
18-
NamespaceCreationTransaction as RegisterNamespaceTransactionLibrary,
19-
subnamespaceNamespaceId,
20-
subnamespaceParentId,
21-
VerifiableTransaction,
22-
} from 'nem2-library';
23-
import {PublicAccount} from '../account/PublicAccount';
24-
import {NetworkType} from '../blockchain/NetworkType';
25-
import {NamespaceId} from '../namespace/NamespaceId';
26-
import {NamespaceType} from '../namespace/NamespaceType';
27-
import {UInt64} from '../UInt64';
28-
import {Deadline} from './Deadline';
29-
import {Transaction} from './Transaction';
30-
import {TransactionInfo} from './TransactionInfo';
31-
import {TransactionType} from './TransactionType';
17+
import { NamespaceCreationTransaction as RegisterNamespaceTransactionLibrary, subnamespaceNamespaceId, subnamespaceParentId, VerifiableTransaction } from 'nem2-library';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { NamespaceId } from '../namespace/NamespaceId';
21+
import { NamespaceType } from '../namespace/NamespaceType';
22+
import { UInt64 } from '../UInt64';
23+
import { Deadline } from './Deadline';
24+
import { Transaction } from './Transaction';
25+
import { TransactionInfo } from './TransactionInfo';
26+
import { TransactionType } from './TransactionType';
3227

3328
/**
3429
* Accounts can rent a namespace for an amount of blocks and after a this renew the contract.
@@ -155,4 +150,5 @@ export class RegisterNamespaceTransaction extends Transaction {
155150

156151
return registerNamespacetransaction.build();
157152
}
153+
158154
}

src/model/transaction/SecretLockTransaction.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
import {SecretLockTransaction as SecretLockTransactionLibrary, VerifiableTransaction} from 'nem2-library';
17-
import {Address} from '../account/Address';
18-
import {PublicAccount} from '../account/PublicAccount';
19-
import {NetworkType} from '../blockchain/NetworkType';
20-
import {Mosaic} from '../mosaic/Mosaic';
21-
import {UInt64} from '../UInt64';
22-
import {Deadline} from './Deadline';
23-
import {HashType, HashTypeLengthValidator} from './HashType';
24-
import {Transaction} from './Transaction';
25-
import {TransactionInfo} from './TransactionInfo';
26-
import {TransactionType} from './TransactionType';
16+
import { SecretLockTransaction as SecretLockTransactionLibrary, VerifiableTransaction } from 'nem2-library';
17+
import { Address } from '../account/Address';
18+
import { PublicAccount } from '../account/PublicAccount';
19+
import { NetworkType } from '../blockchain/NetworkType';
20+
import { Mosaic } from '../mosaic/Mosaic';
21+
import { UInt64 } from '../UInt64';
22+
import { Deadline } from './Deadline';
23+
import { HashType, HashTypeLengthValidator } from './HashType';
24+
import { Transaction } from './Transaction';
25+
import { TransactionInfo } from './TransactionInfo';
26+
import { TransactionType } from './TransactionType';
2727

2828
export class SecretLockTransaction extends Transaction {
2929

@@ -125,4 +125,5 @@ export class SecretLockTransaction extends Transaction {
125125
.addRecipient(this.recipient.plain())
126126
.build();
127127
}
128+
128129
}

src/model/transaction/SecretProofTransaction.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
import {SecretProofTransaction as SecretProofTransactionLibrary, VerifiableTransaction} from 'nem2-library';
17-
import {PublicAccount} from '../account/PublicAccount';
18-
import {NetworkType} from '../blockchain/NetworkType';
19-
import {UInt64} from '../UInt64';
20-
import {Deadline} from './Deadline';
21-
import {HashType, HashTypeLengthValidator} from './HashType';
22-
import {Transaction} from './Transaction';
23-
import {TransactionInfo} from './TransactionInfo';
24-
import {TransactionType} from './TransactionType';
16+
import { SecretProofTransaction as SecretProofTransactionLibrary, VerifiableTransaction } from 'nem2-library';
17+
import { PublicAccount } from '../account/PublicAccount';
18+
import { NetworkType } from '../blockchain/NetworkType';
19+
import { UInt64 } from '../UInt64';
20+
import { Deadline } from './Deadline';
21+
import { HashType, HashTypeLengthValidator } from './HashType';
22+
import { Transaction } from './Transaction';
23+
import { TransactionInfo } from './TransactionInfo';
24+
import { TransactionType } from './TransactionType';
2525

2626
export class SecretProofTransaction extends Transaction {
2727

@@ -95,4 +95,5 @@ export class SecretProofTransaction extends Transaction {
9595
.addProof(this.proof)
9696
.build();
9797
}
98+
9899
}

src/model/transaction/Transaction.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {VerifiableTransaction} from 'nem2-library';
18-
import {Account} from '../account/Account';
19-
import {PublicAccount} from '../account/PublicAccount';
20-
import {NetworkType} from '../blockchain/NetworkType';
21-
import {UInt64} from '../UInt64';
22-
import {AggregateTransactionInfo} from './AggregateTransactionInfo';
23-
import {Deadline} from './Deadline';
24-
import {InnerTransaction} from './InnerTransaction';
25-
import {SignedTransaction} from './SignedTransaction';
26-
import {TransactionInfo} from './TransactionInfo';
17+
import { VerifiableTransaction } from 'nem2-library';
18+
import { Account } from '../account/Account';
19+
import { PublicAccount } from '../account/PublicAccount';
20+
import { NetworkType } from '../blockchain/NetworkType';
21+
import { UInt64 } from '../UInt64';
22+
import { AggregateTransactionInfo } from './AggregateTransactionInfo';
23+
import { Deadline } from './Deadline';
24+
import { InnerTransaction } from './InnerTransaction';
25+
import { SignedTransaction } from './SignedTransaction';
26+
import { TransactionInfo } from './TransactionInfo';
2727

2828
/**
2929
* An abstract transaction class that serves as the base class of all NEM transactions.
@@ -156,4 +156,17 @@ export abstract class Transaction {
156156
const versionDTO = this.networkType.toString(16) + '0' + this.version.toString(16);
157157
return parseInt(versionDTO, 16);
158158
}
159+
160+
/**
161+
* @description re-aplly a given value to the transaction in an immutable way
162+
* @param {Deadline} deadline
163+
* @returns {Transaction}
164+
* @memberof Transaction
165+
*/
166+
public replyGiven(deadline: Deadline = Deadline.create()): Transaction {
167+
if (this.isUnannounced()) {
168+
return Object.assign({__proto__: Object.getPrototypeOf(this)}, this, {deadline});
169+
}
170+
throw new Error('an Announced transaction can\'t be modified');
171+
}
159172
}

0 commit comments

Comments
 (0)