Skip to content

Commit 045c0db

Browse files
authored
Merge pull request #237 from DestinyItemManager/fix-armor-hash
Fix exotic armor hash type, again
2 parents 31f8d4e + 6f2e7fe commit 045c0db

File tree

5 files changed

+52
-8
lines changed

5 files changed

+52
-8
lines changed

api/stately/generated/index_pb.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,9 +482,9 @@ export declare type LoadoutParameters = Message<"stately.generated.LoadoutParame
482482
assumeArmorMasterwork: AssumeArmorMasterwork;
483483

484484
/**
485-
* @generated from field: int32 exoticArmorHash = 11;
485+
* @generated from field: int64 exoticArmorHash = 11;
486486
*/
487-
exoticArmorHash: number;
487+
exoticArmorHash: bigint;
488488

489489
/**
490490
* @generated from field: stately.generated.InGameLoadoutIdentifiers inGameIdentifiers = 12;

api/stately/generated/index_pb.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/code
88
* Describes the file index.proto.
99
*/
1010
export const file_index = /*@__PURE__*/
11-
fileDesc("CgtpbmRleC5wcm90bxIRc3RhdGVseS5nZW5lcmF0ZWQiYAoGQXBpQXBwEgoKAmlkGAEgASgJEhQKDGJ1bmdpZUFwaUtleRgCIAEoCRIRCglkaW1BcGlLZXkYAyABKAkSDgoGb3JpZ2luGAQgASgJEhEKCXBhcnRpdGlvbhgFIAEoBCJDCg9BcnRpZmFjdFVubG9ja3MSGgoSdW5sb2NrZWRJdGVtSGFzaGVzGAEgAygNEhQKDHNlYXNvbk51bWJlchgCIAEoDSIyChBDb2xsYXBzZWRTZWN0aW9uEgsKA2tleRgBIAEoCRIRCgljb2xsYXBzZWQYAiABKAgisAEKDUN1c3RvbVN0YXREZWYSEAoIc3RhdEhhc2gYASABKA0SDQoFbGFiZWwYAiABKAkSEgoKc2hvcnRMYWJlbBgDIAEoCRIuCgVjbGFzcxgEIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxI6Cgd3ZWlnaHRzGAUgAygLMikuc3RhdGVseS5nZW5lcmF0ZWQuQ3VzdG9tU3RhdFdlaWdodHNFbnRyeSI6ChZDdXN0b21TdGF0V2VpZ2h0c0VudHJ5EhAKCHN0YXRIYXNoGAEgASgNEg4KBndlaWdodBgCIAEoASJbChBDdXN0b21TdGF0c0VudHJ5EjIKCWNsYXNzVHlwZRgBIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxITCgtjdXN0b21TdGF0cxgCIAMoDSKZAgoOR2xvYmFsU2V0dGluZ3MSDQoFc3RhZ2UYASABKAkSFQoNZGltQXBpRW5hYmxlZBgCIAEoCBIsCiRkZXN0aW55UHJvZmlsZU1pbmltdW1SZWZyZXNoSW50ZXJ2YWwYAyABKBISJQodZGVzdGlueVByb2ZpbGVSZWZyZXNoSW50ZXJ2YWwYBCABKBISEwoLYXV0b1JlZnJlc2gYBSABKAgSHwoXcmVmcmVzaFByb2ZpbGVPblZpc2libGUYBiABKAgSKAogZGltUHJvZmlsZU1pbmltdW1SZWZyZXNoSW50ZXJ2YWwYByABKBISFwoPc2hvd0lzc3VlQmFubmVyGAggASgIEhMKC2xhc3RVcGRhdGVkGAkgASgSIlEKGEluR2FtZUxvYWRvdXRJZGVudGlmaWVycxIRCgljb2xvckhhc2gYASABKA0SEAoIaWNvbkhhc2gYAiABKA0SEAoIbmFtZUhhc2gYAyABKA0ilQEKDkl0ZW1Bbm5vdGF0aW9uEhEKCXByb2ZpbGVJZBgBIAEoBBIWCg5kZXN0aW55VmVyc2lvbhgCIAEoDRIoCgN0YWcYAyABKA4yGy5zdGF0ZWx5LmdlbmVyYXRlZC5UYWdWYWx1ZRINCgVub3RlcxgEIAEoCRIKCgJpZBgFIAEoBBITCgtjcmFmdGVkRGF0ZRgGIAEoEiJ/CgtJdGVtSGFzaFRhZxIRCglwcm9maWxlSWQYASABKAQSFgoOZGVzdGlueVZlcnNpb24YAiABKA0SKAoDdGFnGAMgASgOMhsuc3RhdGVseS5nZW5lcmF0ZWQuVGFnVmFsdWUSDQoFbm90ZXMYBCABKAkSDAoEaGFzaBgFIAEoDSLbAgoHTG9hZG91dBIKCgJpZBgBIAEoDBIMCgRuYW1lGAIgASgJEg0KBW5vdGVzGAMgASgJEjIKCWNsYXNzVHlwZRgEIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxIwCghlcXVpcHBlZBgFIAMoCzIeLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRJdGVtEjIKCnVuZXF1aXBwZWQYBiADKAsyHi5zdGF0ZWx5LmdlbmVyYXRlZC5Mb2Fkb3V0SXRlbRI4CgpwYXJhbWV0ZXJzGAcgASgLMiQuc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dFBhcmFtZXRlcnMSEQoJY3JlYXRlZEF0GAggASgSEhUKDWxhc3RVcGRhdGVkQXQYCSABKBISFgoOZGVzdGlueVZlcnNpb24YCiABKA0SEQoJcHJvZmlsZUlkGAsgASgEIogBCgtMb2Fkb3V0SXRlbRIKCgJpZBgBIAEoBBIMCgRoYXNoGAIgASgNEg4KBmFtb3VudBgDIAEoDRI6Cg9zb2NrZXRPdmVycmlkZXMYBCADKAsyIS5zdGF0ZWx5LmdlbmVyYXRlZC5Tb2NrZXRPdmVycmlkZRITCgtjcmFmdGVkRGF0ZRgFIAEoEiKGBAoRTG9hZG91dFBhcmFtZXRlcnMSOgoPc3RhdENvbnN0cmFpbnRzGAEgAygLMiEuc3RhdGVseS5nZW5lcmF0ZWQuU3RhdENvbnN0cmFpbnQSDAoEbW9kcxgCIAMoDRIRCgljbGVhck1vZHMYAyABKAgSFAoMY2xlYXJXZWFwb25zGAQgASgIEhIKCmNsZWFyQXJtb3IYBSABKAgSOgoMbW9kc0J5QnVja2V0GAYgAygLMiQuc3RhdGVseS5nZW5lcmF0ZWQuTW9kc0J5QnVja2V0RW50cnkSOwoPYXJ0aWZhY3RVbmxvY2tzGAcgASgLMiIuc3RhdGVseS5nZW5lcmF0ZWQuQXJ0aWZhY3RVbmxvY2tzEhQKDGF1dG9TdGF0TW9kcxgIIAEoCBINCgVxdWVyeRgJIAEoCRJHChVhc3N1bWVBcm1vck1hc3RlcndvcmsYCiABKA4yKC5zdGF0ZWx5LmdlbmVyYXRlZC5Bc3N1bWVBcm1vck1hc3RlcndvcmsSFwoPZXhvdGljQXJtb3JIYXNoGAsgASgFEkYKEWluR2FtZUlkZW50aWZpZXJzGAwgASgLMisuc3RhdGVseS5nZW5lcmF0ZWQuSW5HYW1lTG9hZG91dElkZW50aWZpZXJzEiIKGmluY2x1ZGVSdW50aW1lU3RhdEJlbmVmaXRzGA0gASgIIvMCCgxMb2Fkb3V0U2hhcmUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVub3RlcxgDIAEoCRIyCgljbGFzc1R5cGUYBCABKA4yHy5zdGF0ZWx5LmdlbmVyYXRlZC5EZXN0aW55Q2xhc3MSMAoIZXF1aXBwZWQYBSADKAsyHi5zdGF0ZWx5LmdlbmVyYXRlZC5Mb2Fkb3V0SXRlbRIyCgp1bmVxdWlwcGVkGAYgAygLMh4uc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dEl0ZW0SOAoKcGFyYW1ldGVycxgHIAEoCzIkLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRQYXJhbWV0ZXJzEhEKCWNyZWF0ZWRBdBgIIAEoEhIVCg1sYXN0VXBkYXRlZEF0GAkgASgSEhYKDmRlc3RpbnlWZXJzaW9uGAogASgNEhEKCXByb2ZpbGVJZBgLIAEoBBIRCgl2aWV3Q291bnQYDyABKA0iOgoRTW9kc0J5QnVja2V0RW50cnkSEgoKYnVja2V0SGFzaBgBIAEoDRIRCgltb2RIYXNoZXMYAiADKA0itAEKBlNlYXJjaBINCgVxdWVyeRgBIAEoCRISCgp1c2FnZUNvdW50GAIgASgNEg0KBXNhdmVkGAMgASgIEhEKCWxhc3RVc2FnZRgEIAEoEhIrCgR0eXBlGAUgASgOMh0uc3RhdGVseS5nZW5lcmF0ZWQuU2VhcmNoVHlwZRINCgVxaGFzaBgGIAEoDBIRCglwcm9maWxlSWQYByABKAQSFgoOZGVzdGlueVZlcnNpb24YCCABKA0iygwKCFNldHRpbmdzEhAKCG1lbWJlcklkGAEgASgEEhMKC2l0ZW1RdWFsaXR5GAIgASgIEhQKDHNob3dOZXdJdGVtcxgDIAEoCBI5Cg5jaGFyYWN0ZXJPcmRlchgEIAEoDjIhLnN0YXRlbHkuZ2VuZXJhdGVkLkNoYXJhY3Rlck9yZGVyEhsKE2l0ZW1Tb3J0T3JkZXJDdXN0b20YBSADKAkSGQoRaXRlbVNvcnRSZXZlcnNhbHMYBiADKAkSDwoHY2hhckNvbBgHIAEoDRIVCg1jaGFyQ29sTW9iaWxlGAggASgNEhAKCGl0ZW1TaXplGAkgASgNEj4KEWNvbGxhcHNlZFNlY3Rpb25zGAogAygLMiMuc3RhdGVseS5nZW5lcmF0ZWQuQ29sbGFwc2VkU2VjdGlvbhIeChZjb21wbGV0ZWRSZWNvcmRzSGlkZGVuGAsgASgIEh8KF3JlZGFjdGVkUmVjb3Jkc1JldmVhbGVkGAwgASgIEh8KF2Zhcm1pbmdNYWtlUm9vbUZvckl0ZW1zGA0gASgIEhwKFGludmVudG9yeUNsZWFyU3BhY2VzGA4gASgNEhwKFGhpZGVDb21wbGV0ZWRSZWNvcmRzGA8gASgIEhsKE2N1c3RvbUNoYXJhY3RlclNvcnQYECADKAkSPQoRaW5mdXNpb25EaXJlY3Rpb24YESABKA4yIi5zdGF0ZWx5LmdlbmVyYXRlZC5JbmZ1c2VEaXJlY3Rpb24SEAoIbGFuZ3VhZ2UYEiABKAkSFwoPd2lzaExpc3RTb3VyY2VzGBMgAygJEjoKDGxvUGFyYW1ldGVycxgUIAEoCzIkLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRQYXJhbWV0ZXJzEkkKGGxvU3RhdENvbnN0cmFpbnRzQnlDbGFzcxgVIAMoCzInLnN0YXRlbHkuZ2VuZXJhdGVkLlN0YXRDb25zdHJhaW50c0VudHJ5EkQKF2N1c3RvbVRvdGFsU3RhdHNCeUNsYXNzGBYgAygLMiMuc3RhdGVseS5nZW5lcmF0ZWQuQ3VzdG9tU3RhdHNFbnRyeRIfChdvcmdhbml6ZXJDb2x1bW5zV2VhcG9ucxgXIAMoCRIdChVvcmdhbml6ZXJDb2x1bW5zQXJtb3IYGCADKAkSHQoVb3JnYW5pemVyQ29sdW1uc0dob3N0GBkgAygJEhgKEGNvbXBhcmVCYXNlU3RhdHMYGiABKAgSGAoQc2lkZWNhckNvbGxhcHNlZBgbIAEoCBIXCg9zaW5nbGVDaGFyYWN0ZXIYHCABKAgSFwoPYmFkZ2VQb3N0bWFzdGVyGB0gASgIEhAKCHBlcmtMaXN0GB4gASgIEjMKC2xvYWRvdXRTb3J0GB8gASgOMh4uc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dFNvcnQSGgoSaXRlbUZlZWRIaWRlVGFnZ2VkGCAgASgIEhgKEGl0ZW1GZWVkRXhwYW5kZWQYISABKAgSHgoWaGlkZVB1bGxGcm9tUG9zdG1hc3RlchgiIAEoCBJEChVkZXNjcmlwdGlvbnNUb0Rpc3BsYXkYIyABKA4yJS5zdGF0ZWx5LmdlbmVyYXRlZC5EZXNjcmlwdGlvbk9wdGlvbnMSHwoXY29tcGFyZVdlYXBvbk1hc3RlcndvcmsYJCABKAgSGQoRaXRlbUZlZWRXYXRlcm1hcmsYJSABKAQSNQoLY3VzdG9tU3RhdHMYJiADKAsyIC5zdGF0ZWx5LmdlbmVyYXRlZC5DdXN0b21TdGF0RGVmEhYKDmF1dG9Mb2NrVGFnZ2VkGCcgASgIEg0KBXRoZW1lGCggASgJEh0KFXNvcnRSZWNvcmRQcm9ncmVzc2lvbhgpIAEoCBIeChZ2ZW5kb3JzSGlkZVNpbHZlckl0ZW1zGCogASgIEhsKE3ZhdWx0V2VhcG9uR3JvdXBpbmcYKyABKAkSTQoYdmF1bHRXZWFwb25Hcm91cGluZ1N0eWxlGCwgASgOMisuc3RhdGVseS5nZW5lcmF0ZWQuVmF1bHRXZWFwb25Hcm91cGluZ1N0eWxlEjUKDGl0ZW1Qb3B1cFRhYhgtIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkl0ZW1Qb3B1cFRhYiI3Cg5Tb2NrZXRPdmVycmlkZRITCgtzb2NrZXRJbmRleBgBIAEoDRIQCghpdGVtSGFzaBgCIAEoDSJECg5TdGF0Q29uc3RyYWludBIQCghzdGF0SGFzaBgBIAEoDRIPCgdtaW5UaWVyGAIgASgNEg8KB21heFRpZXIYAyABKA0iggEKFFN0YXRDb25zdHJhaW50c0VudHJ5EjIKCWNsYXNzVHlwZRgBIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxI2Cgtjb25zdHJhaW50cxgCIAMoCzIhLnN0YXRlbHkuZ2VuZXJhdGVkLlN0YXRDb25zdHJhaW50IkgKB1RyaXVtcGgSEgoKcmVjb3JkSGFzaBgBIAEoDRIRCglwcm9maWxlSWQYAiABKAQSFgoOZGVzdGlueVZlcnNpb24YByABKA0qpQEKFUFzc3VtZUFybW9yTWFzdGVyd29yaxIeChpBc3N1bWVBcm1vck1hc3RlcndvcmtfTm9uZRAAEiMKH0Fzc3VtZUFybW9yTWFzdGVyd29ya19MZWdlbmRhcnkQARIdChlBc3N1bWVBcm1vck1hc3RlcndvcmtfQWxsEAISKAokQXNzdW1lQXJtb3JNYXN0ZXJ3b3JrX0FydGlmaWNlRXhvdGljEAMqqgEKDkNoYXJhY3Rlck9yZGVyEh4KGkNoYXJhY3Rlck9yZGVyX1VOU1BFQ0lGSUVEEAASHQoZQ2hhcmFjdGVyT3JkZXJfbW9zdFJlY2VudBABEiQKIENoYXJhY3Rlck9yZGVyX21vc3RSZWNlbnRSZXZlcnNlEAISGAoUQ2hhcmFjdGVyT3JkZXJfZml4ZWQQAxIZChVDaGFyYWN0ZXJPcmRlcl9jdXN0b20QBCqWAQoSRGVzY3JpcHRpb25PcHRpb25zEiIKHkRlc2NyaXB0aW9uT3B0aW9uc19VTlNQRUNJRklFRBAAEh0KGURlc2NyaXB0aW9uT3B0aW9uc19idW5naWUQARIgChxEZXNjcmlwdGlvbk9wdGlvbnNfY29tbXVuaXR5EAISGwoXRGVzY3JpcHRpb25PcHRpb25zX2JvdGgQAypzCgxEZXN0aW55Q2xhc3MSFgoSRGVzdGlueUNsYXNzX1RpdGFuEAASFwoTRGVzdGlueUNsYXNzX0h1bnRlchABEhgKFERlc3RpbnlDbGFzc19XYXJsb2NrEAISGAoURGVzdGlueUNsYXNzX1Vua25vd24QAypoCg9JbmZ1c2VEaXJlY3Rpb24SHwobSW5mdXNlRGlyZWN0aW9uX1VOU1BFQ0lGSUVEEAASGgoWSW5mdXNlRGlyZWN0aW9uX0luZnVzZRABEhgKFEluZnVzZURpcmVjdGlvbl9GdWVsEAIqQgoMSXRlbVBvcHVwVGFiEhkKFUl0ZW1Qb3B1cFRhYl9PdmVydmlldxAAEhcKE0l0ZW1Qb3B1cFRhYl9UcmlhZ2UQASpBCgtMb2Fkb3V0U29ydBIaChZMb2Fkb3V0U29ydF9CeUVkaXRUaW1lEAASFgoSTG9hZG91dFNvcnRfQnlOYW1lEAEqOQoKU2VhcmNoVHlwZRITCg9TZWFyY2hUeXBlX0l0ZW0QABIWChJTZWFyY2hUeXBlX0xvYWRvdXQQASqMAQoIVGFnVmFsdWUSGAoUVGFnVmFsdWVfVU5TUEVDSUZJRUQQABIVChFUYWdWYWx1ZV9mYXZvcml0ZRABEhEKDVRhZ1ZhbHVlX2tlZXAQAhITCg9UYWdWYWx1ZV9pbmZ1c2UQAxIRCg1UYWdWYWx1ZV9qdW5rEAQSFAoQVGFnVmFsdWVfYXJjaGl2ZRAFKmMKGFZhdWx0V2VhcG9uR3JvdXBpbmdTdHlsZRIiCh5WYXVsdFdlYXBvbkdyb3VwaW5nU3R5bGVfTGluZXMQABIjCh9WYXVsdFdlYXBvbkdyb3VwaW5nU3R5bGVfSW5saW5lEAFiBnByb3RvMw");
11+
fileDesc("CgtpbmRleC5wcm90bxIRc3RhdGVseS5nZW5lcmF0ZWQiYAoGQXBpQXBwEgoKAmlkGAEgASgJEhQKDGJ1bmdpZUFwaUtleRgCIAEoCRIRCglkaW1BcGlLZXkYAyABKAkSDgoGb3JpZ2luGAQgASgJEhEKCXBhcnRpdGlvbhgFIAEoBCJDCg9BcnRpZmFjdFVubG9ja3MSGgoSdW5sb2NrZWRJdGVtSGFzaGVzGAEgAygNEhQKDHNlYXNvbk51bWJlchgCIAEoDSIyChBDb2xsYXBzZWRTZWN0aW9uEgsKA2tleRgBIAEoCRIRCgljb2xsYXBzZWQYAiABKAgisAEKDUN1c3RvbVN0YXREZWYSEAoIc3RhdEhhc2gYASABKA0SDQoFbGFiZWwYAiABKAkSEgoKc2hvcnRMYWJlbBgDIAEoCRIuCgVjbGFzcxgEIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxI6Cgd3ZWlnaHRzGAUgAygLMikuc3RhdGVseS5nZW5lcmF0ZWQuQ3VzdG9tU3RhdFdlaWdodHNFbnRyeSI6ChZDdXN0b21TdGF0V2VpZ2h0c0VudHJ5EhAKCHN0YXRIYXNoGAEgASgNEg4KBndlaWdodBgCIAEoASJbChBDdXN0b21TdGF0c0VudHJ5EjIKCWNsYXNzVHlwZRgBIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxITCgtjdXN0b21TdGF0cxgCIAMoDSKZAgoOR2xvYmFsU2V0dGluZ3MSDQoFc3RhZ2UYASABKAkSFQoNZGltQXBpRW5hYmxlZBgCIAEoCBIsCiRkZXN0aW55UHJvZmlsZU1pbmltdW1SZWZyZXNoSW50ZXJ2YWwYAyABKBISJQodZGVzdGlueVByb2ZpbGVSZWZyZXNoSW50ZXJ2YWwYBCABKBISEwoLYXV0b1JlZnJlc2gYBSABKAgSHwoXcmVmcmVzaFByb2ZpbGVPblZpc2libGUYBiABKAgSKAogZGltUHJvZmlsZU1pbmltdW1SZWZyZXNoSW50ZXJ2YWwYByABKBISFwoPc2hvd0lzc3VlQmFubmVyGAggASgIEhMKC2xhc3RVcGRhdGVkGAkgASgSIlEKGEluR2FtZUxvYWRvdXRJZGVudGlmaWVycxIRCgljb2xvckhhc2gYASABKA0SEAoIaWNvbkhhc2gYAiABKA0SEAoIbmFtZUhhc2gYAyABKA0ilQEKDkl0ZW1Bbm5vdGF0aW9uEhEKCXByb2ZpbGVJZBgBIAEoBBIWCg5kZXN0aW55VmVyc2lvbhgCIAEoDRIoCgN0YWcYAyABKA4yGy5zdGF0ZWx5LmdlbmVyYXRlZC5UYWdWYWx1ZRINCgVub3RlcxgEIAEoCRIKCgJpZBgFIAEoBBITCgtjcmFmdGVkRGF0ZRgGIAEoEiJ/CgtJdGVtSGFzaFRhZxIRCglwcm9maWxlSWQYASABKAQSFgoOZGVzdGlueVZlcnNpb24YAiABKA0SKAoDdGFnGAMgASgOMhsuc3RhdGVseS5nZW5lcmF0ZWQuVGFnVmFsdWUSDQoFbm90ZXMYBCABKAkSDAoEaGFzaBgFIAEoDSLbAgoHTG9hZG91dBIKCgJpZBgBIAEoDBIMCgRuYW1lGAIgASgJEg0KBW5vdGVzGAMgASgJEjIKCWNsYXNzVHlwZRgEIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxIwCghlcXVpcHBlZBgFIAMoCzIeLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRJdGVtEjIKCnVuZXF1aXBwZWQYBiADKAsyHi5zdGF0ZWx5LmdlbmVyYXRlZC5Mb2Fkb3V0SXRlbRI4CgpwYXJhbWV0ZXJzGAcgASgLMiQuc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dFBhcmFtZXRlcnMSEQoJY3JlYXRlZEF0GAggASgSEhUKDWxhc3RVcGRhdGVkQXQYCSABKBISFgoOZGVzdGlueVZlcnNpb24YCiABKA0SEQoJcHJvZmlsZUlkGAsgASgEIogBCgtMb2Fkb3V0SXRlbRIKCgJpZBgBIAEoBBIMCgRoYXNoGAIgASgNEg4KBmFtb3VudBgDIAEoDRI6Cg9zb2NrZXRPdmVycmlkZXMYBCADKAsyIS5zdGF0ZWx5LmdlbmVyYXRlZC5Tb2NrZXRPdmVycmlkZRITCgtjcmFmdGVkRGF0ZRgFIAEoEiKGBAoRTG9hZG91dFBhcmFtZXRlcnMSOgoPc3RhdENvbnN0cmFpbnRzGAEgAygLMiEuc3RhdGVseS5nZW5lcmF0ZWQuU3RhdENvbnN0cmFpbnQSDAoEbW9kcxgCIAMoDRIRCgljbGVhck1vZHMYAyABKAgSFAoMY2xlYXJXZWFwb25zGAQgASgIEhIKCmNsZWFyQXJtb3IYBSABKAgSOgoMbW9kc0J5QnVja2V0GAYgAygLMiQuc3RhdGVseS5nZW5lcmF0ZWQuTW9kc0J5QnVja2V0RW50cnkSOwoPYXJ0aWZhY3RVbmxvY2tzGAcgASgLMiIuc3RhdGVseS5nZW5lcmF0ZWQuQXJ0aWZhY3RVbmxvY2tzEhQKDGF1dG9TdGF0TW9kcxgIIAEoCBINCgVxdWVyeRgJIAEoCRJHChVhc3N1bWVBcm1vck1hc3RlcndvcmsYCiABKA4yKC5zdGF0ZWx5LmdlbmVyYXRlZC5Bc3N1bWVBcm1vck1hc3RlcndvcmsSFwoPZXhvdGljQXJtb3JIYXNoGAsgASgDEkYKEWluR2FtZUlkZW50aWZpZXJzGAwgASgLMisuc3RhdGVseS5nZW5lcmF0ZWQuSW5HYW1lTG9hZG91dElkZW50aWZpZXJzEiIKGmluY2x1ZGVSdW50aW1lU3RhdEJlbmVmaXRzGA0gASgIIvMCCgxMb2Fkb3V0U2hhcmUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVub3RlcxgDIAEoCRIyCgljbGFzc1R5cGUYBCABKA4yHy5zdGF0ZWx5LmdlbmVyYXRlZC5EZXN0aW55Q2xhc3MSMAoIZXF1aXBwZWQYBSADKAsyHi5zdGF0ZWx5LmdlbmVyYXRlZC5Mb2Fkb3V0SXRlbRIyCgp1bmVxdWlwcGVkGAYgAygLMh4uc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dEl0ZW0SOAoKcGFyYW1ldGVycxgHIAEoCzIkLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRQYXJhbWV0ZXJzEhEKCWNyZWF0ZWRBdBgIIAEoEhIVCg1sYXN0VXBkYXRlZEF0GAkgASgSEhYKDmRlc3RpbnlWZXJzaW9uGAogASgNEhEKCXByb2ZpbGVJZBgLIAEoBBIRCgl2aWV3Q291bnQYDyABKA0iOgoRTW9kc0J5QnVja2V0RW50cnkSEgoKYnVja2V0SGFzaBgBIAEoDRIRCgltb2RIYXNoZXMYAiADKA0itAEKBlNlYXJjaBINCgVxdWVyeRgBIAEoCRISCgp1c2FnZUNvdW50GAIgASgNEg0KBXNhdmVkGAMgASgIEhEKCWxhc3RVc2FnZRgEIAEoEhIrCgR0eXBlGAUgASgOMh0uc3RhdGVseS5nZW5lcmF0ZWQuU2VhcmNoVHlwZRINCgVxaGFzaBgGIAEoDBIRCglwcm9maWxlSWQYByABKAQSFgoOZGVzdGlueVZlcnNpb24YCCABKA0iygwKCFNldHRpbmdzEhAKCG1lbWJlcklkGAEgASgEEhMKC2l0ZW1RdWFsaXR5GAIgASgIEhQKDHNob3dOZXdJdGVtcxgDIAEoCBI5Cg5jaGFyYWN0ZXJPcmRlchgEIAEoDjIhLnN0YXRlbHkuZ2VuZXJhdGVkLkNoYXJhY3Rlck9yZGVyEhsKE2l0ZW1Tb3J0T3JkZXJDdXN0b20YBSADKAkSGQoRaXRlbVNvcnRSZXZlcnNhbHMYBiADKAkSDwoHY2hhckNvbBgHIAEoDRIVCg1jaGFyQ29sTW9iaWxlGAggASgNEhAKCGl0ZW1TaXplGAkgASgNEj4KEWNvbGxhcHNlZFNlY3Rpb25zGAogAygLMiMuc3RhdGVseS5nZW5lcmF0ZWQuQ29sbGFwc2VkU2VjdGlvbhIeChZjb21wbGV0ZWRSZWNvcmRzSGlkZGVuGAsgASgIEh8KF3JlZGFjdGVkUmVjb3Jkc1JldmVhbGVkGAwgASgIEh8KF2Zhcm1pbmdNYWtlUm9vbUZvckl0ZW1zGA0gASgIEhwKFGludmVudG9yeUNsZWFyU3BhY2VzGA4gASgNEhwKFGhpZGVDb21wbGV0ZWRSZWNvcmRzGA8gASgIEhsKE2N1c3RvbUNoYXJhY3RlclNvcnQYECADKAkSPQoRaW5mdXNpb25EaXJlY3Rpb24YESABKA4yIi5zdGF0ZWx5LmdlbmVyYXRlZC5JbmZ1c2VEaXJlY3Rpb24SEAoIbGFuZ3VhZ2UYEiABKAkSFwoPd2lzaExpc3RTb3VyY2VzGBMgAygJEjoKDGxvUGFyYW1ldGVycxgUIAEoCzIkLnN0YXRlbHkuZ2VuZXJhdGVkLkxvYWRvdXRQYXJhbWV0ZXJzEkkKGGxvU3RhdENvbnN0cmFpbnRzQnlDbGFzcxgVIAMoCzInLnN0YXRlbHkuZ2VuZXJhdGVkLlN0YXRDb25zdHJhaW50c0VudHJ5EkQKF2N1c3RvbVRvdGFsU3RhdHNCeUNsYXNzGBYgAygLMiMuc3RhdGVseS5nZW5lcmF0ZWQuQ3VzdG9tU3RhdHNFbnRyeRIfChdvcmdhbml6ZXJDb2x1bW5zV2VhcG9ucxgXIAMoCRIdChVvcmdhbml6ZXJDb2x1bW5zQXJtb3IYGCADKAkSHQoVb3JnYW5pemVyQ29sdW1uc0dob3N0GBkgAygJEhgKEGNvbXBhcmVCYXNlU3RhdHMYGiABKAgSGAoQc2lkZWNhckNvbGxhcHNlZBgbIAEoCBIXCg9zaW5nbGVDaGFyYWN0ZXIYHCABKAgSFwoPYmFkZ2VQb3N0bWFzdGVyGB0gASgIEhAKCHBlcmtMaXN0GB4gASgIEjMKC2xvYWRvdXRTb3J0GB8gASgOMh4uc3RhdGVseS5nZW5lcmF0ZWQuTG9hZG91dFNvcnQSGgoSaXRlbUZlZWRIaWRlVGFnZ2VkGCAgASgIEhgKEGl0ZW1GZWVkRXhwYW5kZWQYISABKAgSHgoWaGlkZVB1bGxGcm9tUG9zdG1hc3RlchgiIAEoCBJEChVkZXNjcmlwdGlvbnNUb0Rpc3BsYXkYIyABKA4yJS5zdGF0ZWx5LmdlbmVyYXRlZC5EZXNjcmlwdGlvbk9wdGlvbnMSHwoXY29tcGFyZVdlYXBvbk1hc3RlcndvcmsYJCABKAgSGQoRaXRlbUZlZWRXYXRlcm1hcmsYJSABKAQSNQoLY3VzdG9tU3RhdHMYJiADKAsyIC5zdGF0ZWx5LmdlbmVyYXRlZC5DdXN0b21TdGF0RGVmEhYKDmF1dG9Mb2NrVGFnZ2VkGCcgASgIEg0KBXRoZW1lGCggASgJEh0KFXNvcnRSZWNvcmRQcm9ncmVzc2lvbhgpIAEoCBIeChZ2ZW5kb3JzSGlkZVNpbHZlckl0ZW1zGCogASgIEhsKE3ZhdWx0V2VhcG9uR3JvdXBpbmcYKyABKAkSTQoYdmF1bHRXZWFwb25Hcm91cGluZ1N0eWxlGCwgASgOMisuc3RhdGVseS5nZW5lcmF0ZWQuVmF1bHRXZWFwb25Hcm91cGluZ1N0eWxlEjUKDGl0ZW1Qb3B1cFRhYhgtIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkl0ZW1Qb3B1cFRhYiI3Cg5Tb2NrZXRPdmVycmlkZRITCgtzb2NrZXRJbmRleBgBIAEoDRIQCghpdGVtSGFzaBgCIAEoDSJECg5TdGF0Q29uc3RyYWludBIQCghzdGF0SGFzaBgBIAEoDRIPCgdtaW5UaWVyGAIgASgNEg8KB21heFRpZXIYAyABKA0iggEKFFN0YXRDb25zdHJhaW50c0VudHJ5EjIKCWNsYXNzVHlwZRgBIAEoDjIfLnN0YXRlbHkuZ2VuZXJhdGVkLkRlc3RpbnlDbGFzcxI2Cgtjb25zdHJhaW50cxgCIAMoCzIhLnN0YXRlbHkuZ2VuZXJhdGVkLlN0YXRDb25zdHJhaW50IkgKB1RyaXVtcGgSEgoKcmVjb3JkSGFzaBgBIAEoDRIRCglwcm9maWxlSWQYAiABKAQSFgoOZGVzdGlueVZlcnNpb24YByABKA0qpQEKFUFzc3VtZUFybW9yTWFzdGVyd29yaxIeChpBc3N1bWVBcm1vck1hc3RlcndvcmtfTm9uZRAAEiMKH0Fzc3VtZUFybW9yTWFzdGVyd29ya19MZWdlbmRhcnkQARIdChlBc3N1bWVBcm1vck1hc3RlcndvcmtfQWxsEAISKAokQXNzdW1lQXJtb3JNYXN0ZXJ3b3JrX0FydGlmaWNlRXhvdGljEAMqqgEKDkNoYXJhY3Rlck9yZGVyEh4KGkNoYXJhY3Rlck9yZGVyX1VOU1BFQ0lGSUVEEAASHQoZQ2hhcmFjdGVyT3JkZXJfbW9zdFJlY2VudBABEiQKIENoYXJhY3Rlck9yZGVyX21vc3RSZWNlbnRSZXZlcnNlEAISGAoUQ2hhcmFjdGVyT3JkZXJfZml4ZWQQAxIZChVDaGFyYWN0ZXJPcmRlcl9jdXN0b20QBCqWAQoSRGVzY3JpcHRpb25PcHRpb25zEiIKHkRlc2NyaXB0aW9uT3B0aW9uc19VTlNQRUNJRklFRBAAEh0KGURlc2NyaXB0aW9uT3B0aW9uc19idW5naWUQARIgChxEZXNjcmlwdGlvbk9wdGlvbnNfY29tbXVuaXR5EAISGwoXRGVzY3JpcHRpb25PcHRpb25zX2JvdGgQAypzCgxEZXN0aW55Q2xhc3MSFgoSRGVzdGlueUNsYXNzX1RpdGFuEAASFwoTRGVzdGlueUNsYXNzX0h1bnRlchABEhgKFERlc3RpbnlDbGFzc19XYXJsb2NrEAISGAoURGVzdGlueUNsYXNzX1Vua25vd24QAypoCg9JbmZ1c2VEaXJlY3Rpb24SHwobSW5mdXNlRGlyZWN0aW9uX1VOU1BFQ0lGSUVEEAASGgoWSW5mdXNlRGlyZWN0aW9uX0luZnVzZRABEhgKFEluZnVzZURpcmVjdGlvbl9GdWVsEAIqQgoMSXRlbVBvcHVwVGFiEhkKFUl0ZW1Qb3B1cFRhYl9PdmVydmlldxAAEhcKE0l0ZW1Qb3B1cFRhYl9UcmlhZ2UQASpBCgtMb2Fkb3V0U29ydBIaChZMb2Fkb3V0U29ydF9CeUVkaXRUaW1lEAASFgoSTG9hZG91dFNvcnRfQnlOYW1lEAEqOQoKU2VhcmNoVHlwZRITCg9TZWFyY2hUeXBlX0l0ZW0QABIWChJTZWFyY2hUeXBlX0xvYWRvdXQQASqMAQoIVGFnVmFsdWUSGAoUVGFnVmFsdWVfVU5TUEVDSUZJRUQQABIVChFUYWdWYWx1ZV9mYXZvcml0ZRABEhEKDVRhZ1ZhbHVlX2tlZXAQAhITCg9UYWdWYWx1ZV9pbmZ1c2UQAxIRCg1UYWdWYWx1ZV9qdW5rEAQSFAoQVGFnVmFsdWVfYXJjaGl2ZRAFKmMKGFZhdWx0V2VhcG9uR3JvdXBpbmdTdHlsZRIiCh5WYXVsdFdlYXBvbkdyb3VwaW5nU3R5bGVfTGluZXMQABIjCh9WYXVsdFdlYXBvbkdyb3VwaW5nU3R5bGVfSW5saW5lEAFiBnByb3RvMw");
1212

1313
/**
1414
* Describes the message stately.generated.ApiApp.

api/stately/loadouts-queries.test.ts

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
import { toBinary } from '@bufbuild/protobuf';
12
import _ from 'lodash';
23
import { v4 as uuid } from 'uuid';
3-
import { Loadout } from '../shapes/loadouts.js';
4+
import { defaultLoadoutParameters, Loadout, LoadoutParameters } from '../shapes/loadouts.js';
5+
import { client } from './client.js';
6+
import { LoadoutParametersSchema, LoadoutSchema } from './generated/index.js';
47
import {
58
convertLoadoutFromStately,
9+
convertLoadoutParametersFromStately,
10+
convertLoadoutParametersToStately,
611
convertLoadoutToStately,
712
deleteAllLoadouts,
813
deleteLoadout,
@@ -41,12 +46,43 @@ export const loadout: Loadout = {
4146

4247
it('can roundtrip between DIM loadout and Stately loadout', () => {
4348
const statelyLoadout = convertLoadoutToStately(loadout, platformMembershipId, 2);
49+
expect(() => toBinary(LoadoutSchema, statelyLoadout)).not.toThrow();
4450
const loadout2 = convertLoadoutFromStately(statelyLoadout);
4551
expect(_.omit(loadout2, 'profileId', 'destinyVersion', 'createdAt', 'lastUpdatedAt')).toEqual(
4652
loadout,
4753
);
4854
});
4955

56+
it('can roundtrip loadout parameters', () => {
57+
const loParams: LoadoutParameters = {
58+
...defaultLoadoutParameters,
59+
exoticArmorHash: 3045642045,
60+
};
61+
62+
const statelyLoParams = client.create(
63+
'LoadoutParameters',
64+
convertLoadoutParametersToStately(loParams),
65+
);
66+
expect(() => toBinary(LoadoutParametersSchema, statelyLoParams)).not.toThrow();
67+
const loParams2 = convertLoadoutParametersFromStately(statelyLoParams);
68+
expect(loParams2).toEqual(loParams);
69+
});
70+
71+
it('can roundtrip loadout parameters w/ a negative armor hash', () => {
72+
const loParams: LoadoutParameters = {
73+
...defaultLoadoutParameters,
74+
exoticArmorHash: -1,
75+
};
76+
77+
const statelyLoParams = client.create(
78+
'LoadoutParameters',
79+
convertLoadoutParametersToStately(loParams),
80+
);
81+
expect(() => toBinary(LoadoutParametersSchema, statelyLoParams)).not.toThrow();
82+
const loParams2 = convertLoadoutParametersFromStately(statelyLoParams);
83+
expect(loParams2).toEqual(loParams);
84+
});
85+
5086
it('can record a loadout', async () => {
5187
await updateLoadout(platformMembershipId, 2, loadout);
5288

api/stately/loadouts-queries.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ export function convertLoadoutParametersFromStately(
136136
stripTypeName(loParameters);
137137
return {
138138
...stripDefaults(loParametersDefaulted),
139+
exoticArmorHash:
140+
loParameters.exoticArmorHash === 0n ? undefined : Number(loParameters.exoticArmorHash),
139141
// DIM's AssumArmorMasterwork enum starts at 1
140142
assumeArmorMasterwork: (assumeArmorMasterwork ?? 0) + 1,
141143
statConstraints: statConstraintsFromStately(statConstraints),
@@ -271,10 +273,16 @@ export function convertLoadoutParametersToStately(
271273
): MessageInitShape<typeof LoadoutParametersSchema> | undefined {
272274
let loParametersFixed: MessageInitShape<typeof LoadoutParametersSchema> | undefined;
273275
if (!_.isEmpty(loParameters)) {
274-
const { assumeArmorMasterwork, statConstraints, modsByBucket, ...loParametersDefaulted } =
275-
loParameters;
276+
const {
277+
assumeArmorMasterwork,
278+
exoticArmorHash,
279+
statConstraints,
280+
modsByBucket,
281+
...loParametersDefaulted
282+
} = loParameters;
276283
loParametersFixed = {
277284
...loParametersDefaulted,
285+
exoticArmorHash: BigInt(exoticArmorHash ?? 0),
278286
statConstraints: statConstraintsToStately(statConstraints),
279287
// DIM's AssumArmorMasterwork enum starts at 1
280288
assumeArmorMasterwork: Number(assumeArmorMasterwork ?? AssumeArmorMasterwork.None) - 1,

0 commit comments

Comments
 (0)