diff --git a/src/model/restriction/MosaicAddressRestriction.ts b/src/model/restriction/MosaicAddressRestriction.ts index a6e97e32d5..0cf68a91bf 100644 --- a/src/model/restriction/MosaicAddressRestriction.ts +++ b/src/model/restriction/MosaicAddressRestriction.ts @@ -84,11 +84,13 @@ export class MosaicAddressRestriction { const mosaicId: MosaicIdDto = this.mosaicId.toBuilder(); const address: AddressDto = this.targetAddress.toBuilder(); const keyPairs: AddressKeyValueSetBuilder = new AddressKeyValueSetBuilder( - this.restrictions.map((item) => { - const key: MosaicRestrictionKeyDto = new MosaicRestrictionKeyDto(item.key.toDTO()); - const value: number[] = item.restrictionValue.toDTO(); - return new AddressKeyValueBuilder(key, value); - }), + this.restrictions + .sort((a, b) => a.key.compare(b.key)) + .map((item) => { + const key: MosaicRestrictionKeyDto = new MosaicRestrictionKeyDto(item.key.toDTO()); + const value: number[] = item.restrictionValue.toDTO(); + return new AddressKeyValueBuilder(key, value); + }), ); const addressRestrictionBuilder = new MosaicAddressRestrictionEntryBuilder(mosaicId, address, keyPairs); return new MosaicRestrictionEntryBuilder( diff --git a/src/model/restriction/MosaicGlobalRestriction.ts b/src/model/restriction/MosaicGlobalRestriction.ts index 29468dd29c..ebe3c580cb 100644 --- a/src/model/restriction/MosaicGlobalRestriction.ts +++ b/src/model/restriction/MosaicGlobalRestriction.ts @@ -80,16 +80,18 @@ export class MosaicGlobalRestriction { public serialize(): Uint8Array { const mosaicId: MosaicIdDto = this.mosaicId.toBuilder(); const keyPairs: GlobalKeyValueSetBuilder = new GlobalKeyValueSetBuilder( - this.restrictions.map((item) => { - const key: MosaicRestrictionKeyDto = new MosaicRestrictionKeyDto(item.key.toDTO()); - const value: number[] = item.restrictionValue.toDTO(); - const restrictionRule = new RestrictionRuleBuilder( - item.referenceMosaicId.toBuilder(), - value, - item.restrictionType as number, - ); - return new GlobalKeyValueBuilder(key, restrictionRule); - }), + this.restrictions + .sort((a, b) => a.key.compare(b.key)) + .map((item) => { + const key: MosaicRestrictionKeyDto = new MosaicRestrictionKeyDto(item.key.toDTO()); + const value: number[] = item.restrictionValue.toDTO(); + const restrictionRule = new RestrictionRuleBuilder( + item.referenceMosaicId.toBuilder(), + value, + item.restrictionType as number, + ); + return new GlobalKeyValueBuilder(key, restrictionRule); + }), ); const globalRestrictionBuilder = new MosaicGlobalRestrictionEntryBuilder(mosaicId, keyPairs); return new MosaicRestrictionEntryBuilder(