Skip to content

Commit 6b8c7b3

Browse files
committed
Fixed e2d tests
1 parent 9b630c0 commit 6b8c7b3

File tree

5 files changed

+132
-105
lines changed

5 files changed

+132
-105
lines changed

e2e/infrastructure/TransactionHttp.spec.ts

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -171,88 +171,88 @@ describe('TransactionHttp', () => {
171171
});
172172
});
173173

174-
// describe('MosaicDefinitionTransaction', () => {
175-
// let listener: Listener;
176-
// before (() => {
177-
// listener = new Listener(config.apiUrl);
178-
// return listener.open();
179-
// });
180-
// after(() => {
181-
// return listener.close();
182-
// });
183-
// it('aggregate', (done) => {
184-
// const nonce = MosaicNonce.createRandom();
185-
// const mosaicDefinitionTransaction = MosaicDefinitionTransaction.create(
186-
// Deadline.create(),
187-
// nonce,
188-
// MosaicId.createFromNonce(nonce, account.publicAccount),
189-
// MosaicProperties.create({
190-
// supplyMutable: true,
191-
// transferable: true,
192-
// divisibility: 3,
193-
// restrictable: true,
194-
// }),
195-
// NetworkType.MIJIN_TEST,
196-
// );
197-
// const aggregateTransaction = AggregateTransaction.createComplete(Deadline.create(),
198-
// [mosaicDefinitionTransaction.toAggregate(account.publicAccount)],
199-
// NetworkType.MIJIN_TEST,
200-
// []);
201-
// const signedTransaction = aggregateTransaction.signWith(account, generationHash);
202-
// listener.confirmed(account.address).subscribe((transaction: Transaction) => {
203-
// done();
204-
// });
205-
// listener.status(account.address).subscribe((error) => {
206-
// console.log('Error:', error);
207-
// assert(false);
208-
// done();
209-
// });
210-
// transactionHttp.announce(signedTransaction);
211-
// });
212-
// });
213-
214-
// describe('AccountMetadataTransaction', () => {
215-
// let listener: Listener;
216-
// before (() => {
217-
// listener = new Listener(config.apiUrl);
218-
// return listener.open();
219-
// });
220-
// after(() => {
221-
// return listener.close();
222-
// });
223-
// it('aggregate', (done) => {
224-
// const accountMetadataTransaction = AccountMetadataTransaction.create(
225-
// Deadline.create(),
226-
// account.publicKey,
227-
// UInt64.fromUint(5),
228-
// 10,
229-
// new Uint8Array(10),
230-
// NetworkType.MIJIN_TEST,
231-
// );
232-
233-
// const aggregateTransaction = AggregateTransaction.createComplete(Deadline.create(),
234-
// [accountMetadataTransaction.toAggregate(account.publicAccount)],
235-
// NetworkType.MIJIN_TEST,
236-
// [],
237-
// );
238-
// const signedTransaction = aggregateTransaction.signWith(account, generationHash);
239-
// listener.confirmed(account.address).subscribe((transaction: AggregateTransaction) => {
240-
// transaction.innerTransactions.forEach((innerTx) => {
241-
// expect((innerTx as AccountMetadataTransaction).targetPublicKey, 'TargetPublicKey').not.to.be.undefined;
242-
// expect((innerTx as AccountMetadataTransaction).scopedMetadataKey, 'ScopedMetadataKey').not.to.be.undefined;
243-
// expect((innerTx as AccountMetadataTransaction).valueSizeDelta, 'ValueSizeDelta').not.to.be.undefined;
244-
// expect((innerTx as AccountMetadataTransaction).value, 'Value').not.to.be.undefined;
245-
// });
246-
// done();
247-
// });
248-
// listener.status(account.address).subscribe((error) => {
249-
// console.log('Error:', error);
250-
// assert(false);
251-
// done();
252-
// });
253-
// transactionHttp.announce(signedTransaction);
254-
// });
255-
// });
174+
describe('MosaicDefinitionTransaction', () => {
175+
let listener: Listener;
176+
before (() => {
177+
listener = new Listener(config.apiUrl);
178+
return listener.open();
179+
});
180+
after(() => {
181+
return listener.close();
182+
});
183+
it('aggregate', (done) => {
184+
const nonce = MosaicNonce.createRandom();
185+
const mosaicDefinitionTransaction = MosaicDefinitionTransaction.create(
186+
Deadline.create(),
187+
nonce,
188+
MosaicId.createFromNonce(nonce, account.publicAccount),
189+
MosaicProperties.create({
190+
supplyMutable: true,
191+
transferable: true,
192+
divisibility: 3,
193+
restrictable: true,
194+
}),
195+
NetworkType.MIJIN_TEST,
196+
);
197+
const aggregateTransaction = AggregateTransaction.createComplete(Deadline.create(),
198+
[mosaicDefinitionTransaction.toAggregate(account.publicAccount)],
199+
NetworkType.MIJIN_TEST,
200+
[]);
201+
const signedTransaction = aggregateTransaction.signWith(account, generationHash);
202+
listener.confirmed(account.address).subscribe((transaction: Transaction) => {
203+
done();
204+
});
205+
listener.status(account.address).subscribe((error) => {
206+
console.log('Error:', error);
207+
assert(false);
208+
done();
209+
});
210+
transactionHttp.announce(signedTransaction);
211+
});
212+
});
213+
214+
describe('AccountMetadataTransaction', () => {
215+
let listener: Listener;
216+
before (() => {
217+
listener = new Listener(config.apiUrl);
218+
return listener.open();
219+
});
220+
after(() => {
221+
return listener.close();
222+
});
223+
it('aggregate', (done) => {
224+
const accountMetadataTransaction = AccountMetadataTransaction.create(
225+
Deadline.create(),
226+
account.publicKey,
227+
UInt64.fromUint(5),
228+
1,
229+
new Uint8Array(11),
230+
NetworkType.MIJIN_TEST,
231+
);
232+
233+
const aggregateTransaction = AggregateTransaction.createComplete(Deadline.create(),
234+
[accountMetadataTransaction.toAggregate(account.publicAccount)],
235+
NetworkType.MIJIN_TEST,
236+
[],
237+
);
238+
const signedTransaction = aggregateTransaction.signWith(account, generationHash);
239+
listener.confirmed(account.address).subscribe((transaction: AggregateTransaction) => {
240+
transaction.innerTransactions.forEach((innerTx) => {
241+
expect((innerTx as AccountMetadataTransaction).targetPublicKey, 'TargetPublicKey').not.to.be.undefined;
242+
expect((innerTx as AccountMetadataTransaction).scopedMetadataKey, 'ScopedMetadataKey').not.to.be.undefined;
243+
expect((innerTx as AccountMetadataTransaction).valueSizeDelta, 'ValueSizeDelta').not.to.be.undefined;
244+
expect((innerTx as AccountMetadataTransaction).value, 'Value').not.to.be.undefined;
245+
});
246+
done();
247+
});
248+
listener.status(account.address).subscribe((error) => {
249+
console.log('Error:', error);
250+
assert(false);
251+
done();
252+
});
253+
transactionHttp.announce(signedTransaction);
254+
});
255+
});
256256

257257
describe('MosaicMetadataTransaction', () => {
258258
let listener: Listener;
@@ -313,7 +313,7 @@ describe('TransactionHttp', () => {
313313
const registerNamespaceTransaction = NamespaceRegistrationTransaction.createRootNamespace(
314314
Deadline.create(),
315315
namespaceName,
316-
UInt64.fromUint(5),
316+
UInt64.fromUint(10),
317317
NetworkType.MIJIN_TEST,
318318
);
319319
namespaceId = new NamespaceId(namespaceName);

src/infrastructure/AccountRepository.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export interface AccountRepository {
4949

5050
/**
5151
* Get readable names for a set of accountIds.
52+
* Address can be created by calling 'Address.createFromRawAddress' or 'Address.createFromPublicKey'
5253
* Returns friendly names for accounts.
5354
* @param accountIds List of Address
5455
* @return Observable<AccountNames>

src/infrastructure/MosaicHttp.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ export class MosaicHttp extends Http implements MosaicRepository {
6868
let mosaicFlag;
6969
let divisibility;
7070
let duration;
71-
if (mosaicInfoDTO.mosaic.properties.flags) {
72-
mosaicFlag = mosaicInfoDTO.mosaic.properties.flags;
71+
if (mosaicInfoDTO.mosaic.flags) {
72+
mosaicFlag = mosaicInfoDTO.mosaic.flags;
7373
}
74-
if (mosaicInfoDTO.mosaic.properties.divisibility) {
75-
divisibility = mosaicInfoDTO.mosaic.properties.divisibility;
74+
if (mosaicInfoDTO.mosaic.divisibility) {
75+
divisibility = mosaicInfoDTO.mosaic.divisibility;
7676
}
77-
if (mosaicInfoDTO.mosaic.properties.duration) {
78-
duration = mosaicInfoDTO.mosaic.properties.duration;
77+
if (mosaicInfoDTO.mosaic.duration) {
78+
duration = mosaicInfoDTO.mosaic.duration;
7979
}
8080
return new MosaicInfo(
8181
new MosaicId(mosaicInfoDTO.mosaic.id),
@@ -113,14 +113,14 @@ export class MosaicHttp extends Http implements MosaicRepository {
113113
let mosaicFlag;
114114
let divisibility;
115115
let duration;
116-
if (mosaicInfoDTO.mosaic.properties.flags) {
117-
mosaicFlag = mosaicInfoDTO.mosaic.properties.flags;
116+
if (mosaicInfoDTO.mosaic.flags) {
117+
mosaicFlag = mosaicInfoDTO.mosaic.flags;
118118
}
119-
if (mosaicInfoDTO.mosaic.properties.divisibility) {
120-
divisibility = mosaicInfoDTO.mosaic.properties.divisibility;
119+
if (mosaicInfoDTO.mosaic.divisibility) {
120+
divisibility = mosaicInfoDTO.mosaic.divisibility;
121121
}
122-
if (mosaicInfoDTO.mosaic.properties.duration) {
123-
duration = mosaicInfoDTO.mosaic.properties.duration;
122+
if (mosaicInfoDTO.mosaic.duration) {
123+
duration = mosaicInfoDTO.mosaic.duration;
124124
}
125125
return new MosaicInfo(
126126
new MosaicId(mosaicInfoDTO.mosaic.id),

src/infrastructure/TransactionHttp.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,13 @@ export class TransactionHttp extends Http implements TransactionRepository {
7272
* @returns Observable<Transaction>
7373
*/
7474
public getTransaction(transactionId: string): Observable<Transaction> {
75-
return observableFrom(this.transactionRoutesApi.getTransaction(transactionId)).pipe(map((transactionDTO) => {
75+
return observableFrom(this.transactionRoutesApi.getTransaction(transactionId)).pipe(
76+
map((response: { response: ClientResponse; body: TransactionInfoDTO; } ) => {
77+
const transactionDTO = response.body;
7678
return CreateTransactionFromDTO(transactionDTO);
77-
}));
79+
}),
80+
catchError((error) => throwError(this.errorHandling(error))),
81+
);
7882
}
7983

8084
/**
@@ -231,15 +235,16 @@ export class TransactionHttp extends Http implements TransactionRepository {
231235
*/
232236
public getTransactionEffectiveFee(transactionId: string): Observable<number> {
233237
return observableFrom(this.transactionRoutesApi.getTransaction(transactionId)).pipe(
234-
mergeMap((transactionDTO) => {
238+
mergeMap((response: { response: ClientResponse; body: TransactionInfoDTO; } ) => {
235239
// parse transaction to take advantage of `size` getter overload
240+
const transactionDTO = response.body;
236241
const transaction = CreateTransactionFromDTO(transactionDTO);
237242
const uintHeight = (transaction.transactionInfo as TransactionInfo).height;
238243

239244
// now read block details
240245
return observableFrom(this.blockRoutesApi.getBlockByHeight(uintHeight.compact())).pipe(
241-
map((response: { response: ClientResponse; body: BlockInfoDTO; } ) => {
242-
const blockDTO = response.body;
246+
map((blockResponse: { response: ClientResponse; body: BlockInfoDTO; } ) => {
247+
const blockDTO = blockResponse.body;
243248
// @see https://nemtech.github.io/concepts/transaction.html#fees
244249
// effective_fee = feeMultiplier x transaction::size
245250
return blockDTO.block.feeMultiplier * transaction.size;

src/infrastructure/model/mosaicDTO.ts

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,18 @@ export class MosaicDTO {
4646
* Number of definitions for the same mosaic.
4747
*/
4848
'revision': number;
49-
'properties': MosaicPropertiesDTO;
49+
/**
50+
* - 0x00 (none) - No flags present. - 0x01 (supplyMutable) - Mosaic supports supply changes even when mosaic owner owns partial supply. - 0x02 (transferable) - Mosaic supports transfers between arbitrary accounts. When not set, mosaic can only be transferred to and from mosaic owner. - 0x04 (restrictable) - Mosaic supports custom restrictions configured by mosaic owner.
51+
*/
52+
'flags': number;
53+
/**
54+
* Determines up to what decimal place the mosaic can be divided. Divisibility of 3 means that a mosaic can be divided into smallest parts of 0.001 mosaics. The divisibility must be in the range of 0 and 6.
55+
*/
56+
'divisibility': number;
57+
/**
58+
* Duration expressed in number of blocks.
59+
*/
60+
'duration': string;
5061

5162
static discriminator: string | undefined = undefined;
5263

@@ -82,10 +93,20 @@ export class MosaicDTO {
8293
"type": "number"
8394
},
8495
{
85-
"name": "properties",
86-
"baseName": "properties",
87-
"type": "MosaicPropertiesDTO"
88-
} ];
96+
"name": "flags",
97+
"baseName": "flags",
98+
"type": "number"
99+
},
100+
{
101+
"name": "divisibility",
102+
"baseName": "divisibility",
103+
"type": "number"
104+
},
105+
{
106+
"name": "duration",
107+
"baseName": "duration",
108+
"type": "string"
109+
}, ];
89110

90111
static getAttributeTypeMap() {
91112
return MosaicDTO.attributeTypeMap;

0 commit comments

Comments
 (0)