@n1xyz/nord-ts 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.ts +57 -0
- package/dist/actions.js +229 -0
- package/dist/client/Nord.d.ts +379 -0
- package/dist/client/Nord.js +718 -0
- package/dist/client/NordAdmin.d.ts +225 -0
- package/dist/client/NordAdmin.js +394 -0
- package/dist/client/NordUser.d.ts +350 -0
- package/dist/client/NordUser.js +743 -0
- package/dist/error.d.ts +35 -0
- package/dist/error.js +49 -0
- package/dist/gen/nord_pb.d.ts +233 -7
- package/dist/gen/nord_pb.js +34 -8
- package/dist/gen/openapi.d.ts +40 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +29 -1
- package/dist/nord/client/Nord.d.ts +1 -1
- package/dist/nord/client/Nord.js +2 -2
- package/dist/nord/client/NordAdmin.d.ts +24 -1
- package/dist/nord/client/NordAdmin.js +63 -5
- package/dist/nord/index.d.ts +1 -1
- package/dist/nord/index.js +2 -1
- package/dist/types.d.ts +6 -50
- package/dist/types.js +1 -24
- package/dist/utils.d.ts +8 -11
- package/dist/utils.js +54 -41
- package/dist/websocket/Subscriber.d.ts +37 -0
- package/dist/websocket/Subscriber.js +25 -0
- package/dist/websocket/index.d.ts +19 -2
- package/dist/websocket/index.js +82 -2
- package/package.json +1 -1
- package/src/actions.ts +333 -0
- package/src/{nord/client → client}/Nord.ts +209 -211
- package/src/{nord/client → client}/NordAdmin.ts +196 -153
- package/src/{nord/client → client}/NordUser.ts +216 -305
- package/src/gen/nord_pb.ts +271 -9
- package/src/gen/openapi.ts +40 -0
- package/src/index.ts +7 -1
- package/src/types.ts +7 -54
- package/src/utils.ts +44 -47
- package/src/{nord/models → websocket}/Subscriber.ts +2 -2
- package/src/websocket/index.ts +105 -2
- package/src/nord/api/actions.ts +0 -648
- package/src/nord/api/core.ts +0 -96
- package/src/nord/api/metrics.ts +0 -269
- package/src/nord/client/NordClient.ts +0 -79
- package/src/nord/index.ts +0 -25
- /package/src/{nord/utils/NordError.ts → error.ts} +0 -0
package/dist/gen/nord_pb.js
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
// i.e. prefixed with a varint encoding the length of the protobuf message.
|
|
5
5
|
// All other message types are encoded normally, i.e. with no prefix.
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
exports.SpecialAccountSchema = exports.SpecialAccount = exports.ErrorSchema = exports.Error = exports.MarketTypeSchema = exports.MarketType = exports.FillModeSchema = exports.FillMode = exports.TriggerKindSchema = exports.TriggerKind = exports.SideSchema = exports.Side = exports.Receipt_AtomicResultSchema = exports.Receipt_AtomicSubactionResultKindSchema = exports.Receipt_AccountsTierUpdatedSchema = exports.Receipt_FeeTierUpdatedSchema = exports.Receipt_FeeTierAddedSchema = exports.Receipt_MarketFreezeUpdatedSchema = exports.Receipt_TriggerRemovedSchema = exports.Receipt_TriggerAddedSchema = exports.Receipt_TransferredSchema = exports.Receipt_UnpausedSchema = exports.Receipt_PausedSchema = exports.Receipt_SessionRevokedSchema = exports.Receipt_AccountLiquidatedSchema = exports.Receipt_PerpPositionSchema = exports.Receipt_UpdateGuardianSetResultSchema = exports.Receipt_OracleUpdateResultSchema = exports.Receipt_OracleSymbolFeedResultSchema = void 0;
|
|
7
|
+
exports.Receipt_InsertMarketResultSchema = exports.Receipt_InsertTokenResultSchema = exports.Receipt_DepositResultSchema = exports.Receipt_CancelOrderResultSchema = exports.Receipt_PositionTakenOrTradedResultSchema = exports.Receipt_TakenResultSchema = exports.Receipt_PlaceOrderResultSchema = exports.Receipt_TriggeredSchema = exports.Receipt_CreateSessionResultSchema = exports.Receipt_TradeSchema = exports.Receipt_PostedSchema = exports.ReceiptSchema = exports.AtomicSchema = exports.AtomicSubactionKindSchema = exports.Action_TakePositionSchema = exports.Action_UnfreezeMarketSchema = exports.Action_FreezeMarketSchema = exports.Action_UpdateAclSchema = exports.Action_UpdateAccountsTierSchema = exports.Action_UpdateFeeTierSchema = exports.Action_AddFeeTierSchema = exports.Action_RemoveTriggerSchema = exports.Action_AddTriggerSchema = exports.Action_TriggerPricesSchema = exports.Action_TransferSchema = exports.Action_UnpauseSchema = exports.Action_PauseSchema = exports.Action_RevokeSessionSchema = exports.Action_LiquidateSchema = exports.Action_PythPriceFeedUpdateSchema = exports.Action_PythSetSymbolFeedSchema = exports.Action_PythSetWormholeGuardiansSchema = exports.Action_WithdrawSchema = exports.Action_DepositSchema = exports.Action_CancelOrderByIdSchema = exports.Action_PlaceOrderSchema = exports.Action_CreateMarketSchema = exports.Action_CreateTokenSchema = exports.Action_CreateSessionSchema = exports.ActionSchema = exports.TriggerKeySchema = exports.CancelOrderSchema = exports.TradeOrPlaceSchema = exports.OrderTypeSchema = exports.OrderLimitSchema = exports.QuoteSizeSchema = exports.TokenSchema = exports.MarketSchema = exports.FeeTierConfigSchema = exports.file_nord = void 0;
|
|
8
|
+
exports.SpecialAccountSchema = exports.SpecialAccount = exports.ErrorSchema = exports.Error = exports.MarketTypeSchema = exports.MarketType = exports.FillModeSchema = exports.FillMode = exports.TriggerKindSchema = exports.TriggerKind = exports.SideSchema = exports.Side = exports.Receipt_AtomicResultSchema = exports.Receipt_AtomicSubactionResultKindSchema = exports.Receipt_AclUpdatedSchema = exports.Receipt_AccountsTierUpdatedSchema = exports.Receipt_FeeTierUpdatedSchema = exports.Receipt_FeeTierAddedSchema = exports.Receipt_MarketFreezeUpdatedSchema = exports.Receipt_TriggerRemovedSchema = exports.Receipt_TriggerAddedSchema = exports.Receipt_TransferredSchema = exports.Receipt_UnpausedSchema = exports.Receipt_PausedSchema = exports.Receipt_SessionRevokedSchema = exports.Receipt_AccountLiquidatedSchema = exports.Receipt_PerpPositionSchema = exports.Receipt_UpdateGuardianSetResultSchema = exports.Receipt_OracleUpdateResultSchema = exports.Receipt_OracleSymbolFeedResultSchema = exports.Receipt_WithdrawResultSchema = void 0;
|
|
9
9
|
const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
|
|
10
10
|
/**
|
|
11
11
|
* Describes the file nord.proto.
|
|
12
12
|
*/
|
|
13
|
-
exports.file_nord = (0, codegenv2_1.fileDesc)("Cgpub3JkLnByb3RvEgRub3JkIj0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX2JwcxgBIAEoDRIVCg10YWtlcl9mZWVfYnBzGAIgASgNItABCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIigKCVF1b3RlU2l6ZRIMCgRzaXplGAEgASgEEg0KBXByaWNlGAIgASgEIk4KCk9yZGVyTGltaXQSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUiYAoJT3JkZXJUeXBlEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCCKZAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpvcmRlcl90eXBlGAMgASgLMg8ubm9yZC5PcmRlclR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQFCEgoQX2NsaWVudF9vcmRlcl9pZCIfCgtDYW5jZWxPcmRlchIQCghvcmRlcl9pZBgCIAEoBCJHCgpUcmlnZ2VyS2V5Eh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUipB4KBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABIrCglsaXF1aWRhdGUYDiABKAsyFi5ub3JkLkFjdGlvbi5MaXF1aWRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASMgoNdGFrZV9wb3NpdGlvbhgiIAEoCzIZLm5vcmQuQWN0aW9uLlRha2VQb3NpdGlvbkgAEh4KBmF0b21pYxgjIAEoCzIMLm5vcmQuQXRvbWljSAASMgoNZnJlZXplX21hcmtldBgkIAEoCzIZLm5vcmQuQWN0aW9uLkZyZWV6ZU1hcmtldEgAEjYKD3VuZnJlZXplX21hcmtldBglIAEoCzIbLm5vcmQuQWN0aW9uLlVuZnJlZXplTWFya2V0SAASLwoMYWRkX2ZlZV90aWVyGCYgASgLMhcubm9yZC5BY3Rpb24uQWRkRmVlVGllckgAEjUKD3VwZGF0ZV9mZWVfdGllchgnIAEoCzIaLm5vcmQuQWN0aW9uLlVwZGF0ZUZlZVRpZXJIABI/ChR1cGRhdGVfYWNjb3VudHNfdGllchgoIAEoCzIfLm5vcmQuQWN0aW9uLlVwZGF0ZUFjY291bnRzVGllckgAGlMKDUNyZWF0ZVNlc3Npb24SEwoLdXNlcl9wdWJrZXkYASABKAwSEwoLYmxzdF9wdWJrZXkYAiABKAwSGAoQZXhwaXJ5X3RpbWVzdGFtcBgDIAEoAxp3CgtDcmVhdGVUb2tlbhIWCg50b2tlbl9kZWNpbWFscxgBIAEoDRISCgp3ZWlnaHRfYnBzGAMgASgNEhMKC3ZpZXdfc3ltYm9sGAQgASgJEhUKDW9yYWNsZV9zeW1ib2wYBSABKAkSEAoIc29sX2FkZHIYBiABKAwa2gEKDENyZWF0ZU1hcmtldBIVCg1zaXplX2RlY2ltYWxzGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEg8KB2ltZl9icHMYAyABKA0SDwoHY21mX2JwcxgEIAEoDRIPCgdtbWZfYnBzGAUgASgNEiUKC21hcmtldF90eXBlGAYgASgOMhAubm9yZC5NYXJrZXRUeXBlEhMKC3ZpZXdfc3ltYm9sGAcgASgJEhUKDW9yYWNsZV9zeW1ib2wYCCABKAkSFQoNYmFzZV90b2tlbl9pZBgJIAEoDRqmAwoKUGxhY2VPcmRlchISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEISChBfY2xpZW50X29yZGVyX2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGqkBCg9DYW5jZWxPcmRlckJ5SWQSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCghvcmRlcl9pZBgCIAEoBBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCEgASgNSAGIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGkAKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEGkkKGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMGkEKEVB5dGhTZXRTeW1ib2xGZWVkEhUKDW9yYWNsZV9zeW1ib2wYASABKAkSFQoNcHJpY2VfZmVlZF9pZBgCIAEoDBovChNQeXRoUHJpY2VGZWVkVXBkYXRlEhgKEHJhd19weXRobmV0X2RhdGEYASABKAwahwEKCUxpcXVpZGF0ZRIdChVsaXF1aWRhdG9yX3Nlc3Npb25faWQYASABKAQSHQoVbGlxdWlkYXRlZV9hY2NvdW50X2lkGAIgASgNEiIKFWxpcXVpZGF0b3JfYWNjb3VudF9pZBgDIAEoDUgAiAEBQhgKFl9saXF1aWRhdG9yX2FjY291bnRfaWQaIwoNUmV2b2tlU2Vzc2lvbhISCgpzZXNzaW9uX2lkGAEgASgEGgcKBVBhdXNlGgkKB1VucGF1c2UazwEKCFRyYW5zZmVyEhIKCnNlc3Npb25faWQYASABKAQSFwoPZnJvbV9hY2NvdW50X2lkGAIgASgNEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIaCg10b19hY2NvdW50X2lkGAggASgNSACIAQESMgoPc3BlY2lhbF9hY2NvdW50GAkgASgOMhQubm9yZC5TcGVjaWFsQWNjb3VudEgBiAEBQhAKDl90b19hY2NvdW50X2lkQhIKEF9zcGVjaWFsX2FjY291bnQaUAoNVHJpZ2dlclByaWNlcxIVCg10cmlnZ2VyX3ByaWNlGAUgASgEEhgKC2xpbWl0X3ByaWNlGAYgASgESACIAQFCDgoMX2xpbWl0X3ByaWNlGqYBCgpBZGRUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEh0KA2tleRgDIAEoCzIQLm5vcmQuVHJpZ2dlcktleRIqCgZwcmljZXMYBCABKAsyGi5ub3JkLkFjdGlvbi5UcmlnZ2VyUHJpY2VzEhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBp9Cg1SZW1vdmVUcmlnZ2VyEhIKCnNlc3Npb25faWQYASABKAQSEQoJbWFya2V0X2lkGAIgASgNEh0KA2tleRgDIAEoCzIQLm5vcmQuVHJpZ2dlcktleRIXCgphY2NvdW50X2lkGAogASgNSACIAQFCDQoLX2FjY291bnRfaWQaMQoKQWRkRmVlVGllchIjCgZjb25maWcYASABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaQAoNVXBkYXRlRmVlVGllchIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaNwoSVXBkYXRlQWNjb3VudHNUaWVyEg8KB3RpZXJfaWQYASABKA0SEAoIYWNjb3VudHMYAiADKA0aIQoMRnJlZXplTWFya2V0EhEKCW1hcmtldF9pZBgCIAEoDRojCg5VbmZyZWV6ZU1hcmtldBIRCgltYXJrZXRfaWQYAiABKA0alwEKDFRha2VQb3NpdGlvbhISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIMCgRzaXplGAMgASgDEh4KEXNlbmRlcl9hY2NvdW50X2lkGAQgASgNSACIAQESEgoFcHJpY2UYBSABKARIAYgBAUIUChJfc2VuZGVyX2FjY291bnRfaWRCCAoGX3ByaWNlQgYKBGtpbmQidwoTQXRvbWljU3ViYWN0aW9uS2luZBIsCg50cmFkZV9vcl9wbGFjZRgGIAEoCzISLm5vcmQuVHJhZGVPclBsYWNlSAASKQoMY2FuY2VsX29yZGVyGAcgASgLMhEubm9yZC5DYW5jZWxPcmRlckgAQgcKBWlubmVyInAKBkF0b21pYxISCgpzZXNzaW9uX2lkGAEgASgEEhcKCmFjY291bnRfaWQYAiABKA1IAIgBARIqCgdhY3Rpb25zGAYgAygLMhkubm9yZC5BdG9taWNTdWJhY3Rpb25LaW5kQg0KC19hY2NvdW50X2lkIqUeCgdSZWNlaXB0EhEKCWFjdGlvbl9pZBgBIAEoBBIaCgNlcnIYICABKA4yCy5ub3JkLkVycm9ySAASQgoVY3JlYXRlX3Nlc3Npb25fcmVzdWx0GCEgASgLMiEubm9yZC5SZWNlaXB0LkNyZWF0ZVNlc3Npb25SZXN1bHRIABI8ChJwbGFjZV9vcmRlcl9yZXN1bHQYIiABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEj4KE2NhbmNlbF9vcmRlcl9yZXN1bHQYIyABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIABI1Cg5kZXBvc2l0X3Jlc3VsdBgkIAEoCzIbLm5vcmQuUmVjZWlwdC5EZXBvc2l0UmVzdWx0SAASPgoTaW5zZXJ0X3Rva2VuX3Jlc3VsdBglIAEoCzIfLm5vcmQuUmVjZWlwdC5JbnNlcnRUb2tlblJlc3VsdEgAEkAKFGluc2VydF9tYXJrZXRfcmVzdWx0GCYgASgLMiAubm9yZC5SZWNlaXB0Lkluc2VydE1hcmtldFJlc3VsdEgAEjcKD3dpdGhkcmF3X3Jlc3VsdBgnIAEoCzIcLm5vcmQuUmVjZWlwdC5XaXRoZHJhd1Jlc3VsdEgAEkkKGW9yYWNsZV9zeW1ib2xfZmVlZF9yZXN1bHQYKCABKAsyJC5ub3JkLlJlY2VpcHQuT3JhY2xlU3ltYm9sRmVlZFJlc3VsdEgAEkAKFG9yYWNsZV91cGRhdGVfcmVzdWx0GCkgASgLMiAubm9yZC5SZWNlaXB0Lk9yYWNsZVVwZGF0ZVJlc3VsdEgAEksKGnVwZGF0ZV9ndWFyZGlhbl9zZXRfcmVzdWx0GCogASgLMiUubm9yZC5SZWNlaXB0LlVwZGF0ZUd1YXJkaWFuU2V0UmVzdWx0SAASNQoKbGlxdWlkYXRlZBgrIAEoCzIfLm5vcmQuUmVjZWlwdC5BY2NvdW50TGlxdWlkYXRlZEgAEjcKD3Nlc3Npb25fcmV2b2tlZBgsIAEoCzIcLm5vcmQuUmVjZWlwdC5TZXNzaW9uUmV2b2tlZEgAEiYKBnBhdXNlZBgtIAEoCzIULm5vcmQuUmVjZWlwdC5QYXVzZWRIABIqCgh1bnBhdXNlZBguIAEoCzIWLm5vcmQuUmVjZWlwdC5VbnBhdXNlZEgAEjAKC3RyYW5zZmVycmVkGC8gASgLMhkubm9yZC5SZWNlaXB0LlRyYW5zZmVycmVkSAASMwoNdHJpZ2dlcl9hZGRlZBhAIAEoCzIaLm5vcmQuUmVjZWlwdC5UcmlnZ2VyQWRkZWRIABI3Cg90cmlnZ2VyX3JlbW92ZWQYQSABKAsyHC5ub3JkLlJlY2VpcHQuVHJpZ2dlclJlbW92ZWRIABJNChhwb3NpdGlvbl90YWtlbl9vcl90cmFkZWQYQiABKAsyKS5ub3JkLlJlY2VpcHQuUG9zaXRpb25UYWtlbk9yVHJhZGVkUmVzdWx0SAASLAoGYXRvbWljGEMgASgLMhoubm9yZC5SZWNlaXB0LkF0b21pY1Jlc3VsdEgAEkIKFW1hcmtldF9mcmVlemVfdXBkYXRlZBhEIAEoCzIhLm5vcmQuUmVjZWlwdC5NYXJrZXRGcmVlemVVcGRhdGVkSAASNAoOZmVlX3RpZXJfYWRkZWQYRSABKAsyGi5ub3JkLlJlY2VpcHQuRmVlVGllckFkZGVkSAASOAoQZmVlX3RpZXJfdXBkYXRlZBhGIAEoCzIcLm5vcmQuUmVjZWlwdC5GZWVUaWVyVXBkYXRlZEgAEkIKFWFjY291bnRzX3RpZXJfdXBkYXRlZBhHIAEoCzIhLm5vcmQuUmVjZWlwdC5BY2NvdW50c1RpZXJVcGRhdGVkSAAaeAoGUG9zdGVkEhgKBHNpZGUYASABKA4yCi5ub3JkLlNpZGUSEQoJbWFya2V0X2lkGAIgASgNEg0KBXByaWNlGAMgASgEEgwKBHNpemUYBCABKAQSEAoIb3JkZXJfaWQYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRpKCgVUcmFkZRIQCghvcmRlcl9pZBgCIAEoBBINCgVwcmljZRgEIAEoBBIMCgRzaXplGAUgASgEEhIKCmFjY291bnRfaWQYBiABKA0aKQoTQ3JlYXRlU2Vzc2lvblJlc3VsdBISCgpzZXNzaW9uX2lkGAEgASgEGkMKCVRyaWdnZXJlZBIfCgRraW5kGAMgASgOMhEubm9yZC5UcmlnZ2VyS2luZBIVCg10cmlnZ2VyX3ByaWNlGAQgASgEGpUCChBQbGFjZU9yZGVyUmVzdWx0EikKBnBvc3RlZBgBIAEoCzIULm5vcmQuUmVjZWlwdC5Qb3N0ZWRIAIgBARIiCgVmaWxscxgCIAMoCzITLm5vcmQuUmVjZWlwdC5UcmFkZRIcCg9jbGllbnRfb3JkZXJfaWQYAyABKARIAYgBARIfChJzZW5kZXJfdHJhY2tpbmdfaWQYBCABKARIAogBARIvCgl0cmlnZ2VyZWQYBSABKAsyFy5ub3JkLlJlY2VpcHQuVHJpZ2dlcmVkSAOIAQFCCQoHX3Bvc3RlZEISChBfY2xpZW50X29yZGVyX2lkQhUKE19zZW5kZXJfdHJhY2tpbmdfaWRCDAoKX3RyaWdnZXJlZBpCCgtUYWtlblJlc3VsdBILCgNwbmwYASABKAMSDAoEc2l6ZRgCIAEoAxIYChB0YWtlcl9hY2NvdW50X2lkGAMgASgNGqsBChtQb3NpdGlvblRha2VuT3JUcmFkZWRSZXN1bHQSEQoJbWFya2V0X2lkGAEgASgNEioKBXRha2VuGAIgASgLMhkubm9yZC5SZWNlaXB0LlRha2VuUmVzdWx0SAASMAoGdHJhZGVkGAMgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIAEIbChlQb3NpdGlvblRha2VuT3JUcmFkZWRLaW5kGjkKEUNhbmNlbE9yZGVyUmVzdWx0EhAKCG9yZGVyX2lkGAEgASgEEhIKCmFjY291bnRfaWQYAiABKA0acAoNRGVwb3NpdFJlc3VsdBIQCgh0b2tlbl9pZBgBIAEoDRIOCgZhbW91bnQYAiABKAQSEgoKYWNjb3VudF9pZBgDIAEoDRIUCgx1c2VyX2NyZWF0ZWQYBCABKAgSEwoLdXNlcl9wdWJrZXkYBSABKAwaQwoRSW5zZXJ0VG9rZW5SZXN1bHQSEgoKY2hhaW5fYWRkchgBIAEoDBIaCgV0b2tlbhgCIAEoCzILLm5vcmQuVG9rZW4aMgoSSW5zZXJ0TWFya2V0UmVzdWx0EhwKBm1hcmtldBgBIAEoCzIMLm5vcmQuTWFya2V0GnkKDldpdGhkcmF3UmVzdWx0EhAKCHRva2VuX2lkGAEgASgNEg4KBmFtb3VudBgCIAEoBBIPCgdiYWxhbmNlGAMgASgEEhIKCmFjY291bnRfaWQYBCABKA0SCwoDZmVlGAUgASgEEhMKC3VzZXJfcHVia2V5GAYgASgMGkAKFk9yYWNsZVN5bWJvbEZlZWRSZXN1bHQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIPCgdmZWVkX2lkGAIgASgMGicKEk9yYWNsZVVwZGF0ZVJlc3VsdBIRCgl0aW1lc3RhbXAYASABKAMaSAoXVXBkYXRlR3VhcmRpYW5TZXRSZXN1bHQSGgoSZ3VhcmRpYW5fc2V0X2luZGV4GAEgASgNEhEKCWFkZHJlc3NlcxgCIAMoDBpDCgxQZXJwUG9zaXRpb24SEQoJbWFya2V0X2lkGAEgASgNEhEKCWJhc2Vfc2l6ZRgCIAEoAxINCgVwcmljZRgDIAEoBBqeAQoRQWNjb3VudExpcXVpZGF0ZWQSHQoVbGlxdWlkYXRvcl9hY2NvdW50X2lkGAEgASgNEh0KFWxpcXVpZGF0ZWVfYWNjb3VudF9pZBgCIAEoDRIYChBjYW5jZWxsZWRfb3JkZXJzGAMgAygEEjEKDXJlbW92ZWRfcGVycHMYBCADKAsyGi5ub3JkLlJlY2VpcHQuUGVycFBvc2l0aW9uGhAKDlNlc3Npb25SZXZva2VkGggKBlBhdXNlZBoKCghVbnBhdXNlZBrhAQoLVHJhbnNmZXJyZWQSFwoPZnJvbV9hY2NvdW50X2lkGAEgASgNEhwKD3RvX3VzZXJfYWNjb3VudBgCIAEoDUgAiAEBEhAKCHRva2VuX2lkGAMgASgNEg4KBmFtb3VudBgEIAEoBBIXCg9hY2NvdW50X2NyZWF0ZWQYBSABKAgSNQoSdG9fc3BlY2lhbF9hY2NvdW50GAYgASgOMhQubm9yZC5TcGVjaWFsQWNjb3VudEgBiAEBQhIKEF90b191c2VyX2FjY291bnRCFQoTX3RvX3NwZWNpYWxfYWNjb3VudBoOCgxUcmlnZ2VyQWRkZWQaEAoOVHJpZ2dlclJlbW92ZWQaOAoTTWFya2V0RnJlZXplVXBkYXRlZBIRCgltYXJrZXRfaWQYASABKA0SDgoGZnJvemVuGAIgASgIGjMKDEZlZVRpZXJBZGRlZBIjCgZjb25maWcYASABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaQQoORmVlVGllclVwZGF0ZWQSCgoCaWQYASABKA0SIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnGjgKE0FjY291bnRzVGllclVwZGF0ZWQSDwoHdGllcl9pZBgBIAEoDRIQCghhY2NvdW50cxgCIAMoDRqbAQoZQXRvbWljU3ViYWN0aW9uUmVzdWx0S2luZBI8ChJwbGFjZV9vcmRlcl9yZXN1bHQYASABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAEjcKDGNhbmNlbF9vcmRlchgCIAEoCzIfLm5vcmQuUmVjZWlwdC5DYW5jZWxPcmRlclJlc3VsdEgAQgcKBWlubmVyGkgKDEF0b21pY1Jlc3VsdBI4CgdyZXN1bHRzGAEgAygLMicubm9yZC5SZWNlaXB0LkF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmRCBgoEa2luZCoYCgRTaWRlEgcKA0FTSxAAEgcKA0JJRBABKi0KC1RyaWdnZXJLaW5kEg0KCVNUT1BfTE9TUxAAEg8KC1RBS0VfUFJPRklUEAEqTwoIRmlsbE1vZGUSCQoFTElNSVQQABINCglQT1NUX09OTFkQARIXChNJTU1FRElBVEVfT1JfQ0FOQ0VMEAISEAoMRklMTF9PUl9LSUxMEAMqJgoKTWFya2V0VHlwZRIICgRTUE9UEAASDgoKUEVSUEVUVUFMUxABKpIaCgVFcnJvchINCglEVVBMSUNBVEUQABISCg5ERUNPREVfRkFJTFVSRRACEhUKEUlOVkFMSURfU0lHTkFUVVJFEAMSFAoQTUFSS0VUX05PVF9GT1VORBAEEhMKD1RPS0VOX05PVF9GT1VORBAFEhIKDlVTRVJfTk9UX0ZPVU5EEAYSFQoRU0VTU0lPTl9OT1RfRk9VTkQQBxITCg9PUkRFUl9OT1RfRk9VTkQQCBITCg9PUkRFUl9TSVpFX1pFUk8QCRIOCgpBUklUSE1FVElDEAsSFwoTQVJJVEhNRVRJQ19PVkVSRkxPVxAMEhgKFEFSSVRITUVUSUNfVU5ERVJGTE9XEA0SHwobQVJJVEhNRVRJQ19ESVZJU0lPTl9CWV9aRVJPEA4SGgoWS0VZX0FMUkVBRFlfUkVHSVNURVJFRBAPEhwKGEVYUElSWV9USU1FU1RBTVBfSU5fUEFTVBAQEhwKGFVQREFURV9USU1FU1RBTVBfSU5fUEFTVBAREhgKFFRPT19NQU5ZX09QRU5fT1JERVJTEBISHQoZV0lUSERSQVdfQU1PVU5UX1RPT19TTUFMTBAVEhcKE0lOVkFMSURfT1JERVJfT1dORVIQFhIgChxERUNPREVfRkFJTFVSRV9MRU5HVEhfUFJFRklYECESFgoSREVDT0RFX0ZBSUxVUkVfUkFXECISGQoVREVDT0RFX0ZBSUxVUkVfRE9NQUlOECMSHwobVVBEQVRFX1BVQkxJU0hfVElNRV9JTl9QQVNUECQSFwoTUFlUSF9GRUVEX05PVF9BRERFRBBdEhUKEVBZVEhfRkVFRF9NSVNTSU5HEF4SGwoXUFlUSF9GRUVEX0FMUkVBRFlfQURERUQQXxIjCh9QWVRIX0dVQVJESUFOX1NFVF9VTklOSVRJQUxJWkVEEGASHQoZUFlUSF9HVUFSRElBTl9TRVRfSU5WQUxJRBBhEiMKH1BZVEhfRkVFRF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQYhIgChxQWVRIX0ZFRURfUFJJQ0VfT1VUX09GX1JBTkdFEGMSIwofUFlUSF9GRUVEX1ZBUklBTkNFX09VVF9PRl9SQU5HRRBkEjUKMVBZVEhfR1VBUkRJQU5fU0VUX0FORF9QWVRIX1NJR05BVFVSRV9ET19OT1RfTUFUQ0gQZRIcChhJTlZBTElEX1RPS0VOX1BBUkFNRVRFUlMQZhIcChhJTkRFWF9QUklDRV9PVVRfT0ZfUkFOR0UQZxIfChtJTkRFWF9ERUNJTUFMU19PVVRfT0ZfUkFOR0UQaBIZChVJTlZBTElEX1NUQVRFX1ZFUlNJT04QaRIZChVUSUVSX0ZFRV9PVVRfT0ZfUkFOR0UQahIYChRUSUVSX0lEX09VVF9PRl9SQU5HRRBrEhMKD0lOVkFMSURfTUFSR0lOUxBsEiEKHU1BUktFVF9ERUNJTUFMU19FWENFRURfTElNSVRTEG0SEwoPVE9PX01BTllfVE9LRU5TEG4SFAoQRlVORElOR19PVkVSRkxPVxB7EjcKM0NBTl9SRURVQ0VfUE9TSVRJT05fT05MWV9JRl9BTExfT1JERVJTX0FSRV9DQU5DRUxFRBB8EhcKE1VORVhQRUNURURfVE9LRU5fSUQQfxIUCg9UT0tFTl9OT1RfUkVBRFkQggESHAoYVE9LRU5fQUxSRUFEWV9SRUdJU1RFUkVEEHASIQocSU1NRURJQVRFX09SREVSX0dPVF9OT19GSUxMUxCFARIZChRGQUlMRURfVE9fRklMTF9MSU1JVBCGARIwCitQT1NUX09OTFlfTVVTVF9OT1RfRklMTF9BTllfT1BQT1NJVEVfT1JERVJTEIcBEgwKB0lOVkFMSUQQiAESEAoLTUFJTlRFTkFOQ0UQiQESGgoVTUlOSU1VTV9TSVpFX0RFQ0lNQUxTEIoBEjIKLVBBUkFNRVRFUlNfV0lMTF9DUkVBVEVfTk9OX09QRVJBVElPTkFMX01BUktFVBCLARIiCh1PTkxZX0lNTUVESUFURV9PUkRFUlNfQUxMT1dFRBCMARIbChZUT09fTUFOWV9VU0VSX0FDQ09VTlRTEI0BEhYKEUFDQ09VTlRfTk9UX0ZPVU5EEI4BEhoKFUFDQ09VTlRfSU5WQUxJRF9PV05FUhCPARIRCgxEVVNUX0FDQ09VTlQQkQESDAoHQkFMQU5DRRCgARIdChhCQUxBTkNFX0RFUE9TSVRfT1ZFUkZMT1cQoQESHAoXQkFMQU5DRV9DSEFOR0VfT1ZFUkZMT1cQogESIgodQkFMQU5DRV9DSEFOR0VfTElNSVRfRVhDRUVERUQQowESGQoUQkFMQU5DRV9JTlNVRkZJQ0lFTlQQpAESHgoZVU5BVVRIRU5USUNBVEVEX0wxX0FDVElPThClARIdChhFTkNPREVEX0FDVElPTl9UT09fTEFSR0UQpgESDAoHVFJJR0dFUhCoARIaChVUUklHR0VSX0lOVkFMSURfUFJJQ0UQqQESFgoRVFJJR0dFUl9OT1RfRk9VTkQQqgESDgoJVElNRVNUQU1QELABEh8KGlRJTUVTVEFNUF9PVVRfT0ZfVEhSRVNIT0xEELEBEhQKD1RJTUVTVEFNUF9TVEFMRRCyARIlCiBCQU5LUlVQVENZX0lOU1VGRklDSUVOVF9DT1ZFUkFHRRC5ARIZChRCQU5LUlVQVENZX05PVF9GT1VORBC6ARIbChZCQU5LUlVQVENZX05PVF9BTExPV0VEELsBEhUKEE1BUktFVF9OT1RfUkVBRFkQwAESEgoNTUFSS0VUX0ZST1pFThDBARIRCgxNQVJLRVRfRU1QVFkQwgESDQoIUE9TSVRJT04QyAESFwoSUE9TSVRJT05fTk9UX0ZPVU5EEMkBEhkKFFBPU0lUSU9OX1NUQVRFX09SREVSEMoBEh8KGlBPU0lUSU9OX1NUQVRFX09SREVSX1BSSUNFEMsBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJWkUQzAESHgoZUE9TSVRJT05fU1RBVEVfT1JERVJfU0lERRDNARIYChNQT1NJVElPTl9TSVpFX0xJTUlUEM4BEhgKE1BPU0lUSU9OX1NUQVRFX1BFUlAQzwESJAofUE9TSVRJT05fU1RBVEVfT1JERVJfREVMRUdBVElPThDQARIKCgVQUklDRRDRARIbChZTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OENkBEjAKK1NJR05BVFVSRV9WRVJJRklDQVRJT05fTUFMRk9STUVEX1BVQkxJQ19LRVkQ2gESKgolU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9JTlZBTElEX0xFTkdUSBDbARIJCgRSSVNLEOABEjQKL1JJU0tfREVMRUdBVElPTl9NRl9UT19CRV9MRVNTX1RIQU5fT1JfRVFVQUxfTU1GEOEBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9JTUYQ4gESJAofUklTS19PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDjARIqCiVSSVNLX1RSQURFX09NRl9MRVNTX1RIQU5fT1JfRVFVQUxfQ01GEOUBEjUKMFJJU0tfVU5IRUFMVEhZX01GX0FORF9QT05fQUZURVJfQkVUVEVSX09GX0JFRk9SRRDkARIUCg9PUkRFUl9FWEVDVVRJT04Q8AESGgoVT1JERVJfRVhFQ1VUSU9OX0VNUFRZEPEBEiEKHE9SREVSX0VYRUNVVElPTl9GSUxMX09SX0tJTEwQ8gESIwoeT1JERVJfRVhFQ1VUSU9OX01JU1NJTkdfTElNSVRTEPMBEiIKHU9SREVSX0VYRUNVVElPTl9NSVNTSU5HX1BSSUNFEPQBEh8KGk9SREVSX0VYRUNVVElPTl9TSVpFX0xJTUlUEPUBEiAKG09SREVSX0VYRUNVVElPTl9MSU1JVF9QUklDRRD2ARIeChlPUkRFUl9SRURVQ0VfSVNfUE9TVF9PTkxZEPcBEh8KGk9SREVSX0VYRUNVVElPTl9TRUxMX1BSSUNFEPgBEiUKIE9SREVSX1NJWkVfRVhDRUVEU19QT1NJVElPTl9TSVpFEPkBEigKI0FUT01JQ1NfVFJBREVTX0NBTk5PVF9GT0xMT1dfUExBQ0VTEIACEjAKK0FUT01JQ1NfQ0FOQ0VMU19DQU5OT1RfRk9MTE9XX1RSQURFU19QTEFDRVMQgQISJgohQUNUSU9OX1BPU0lUSU9OX1NIT1VMRF9CRV9DT1ZFUkVEEJECEhkKFEFDVElPTl9JTlZBTElEX05PTkNFEJICEikKJEFDVElPTl9QUk9QT1NFRF9QUklDRV9NVVNUX0JFX0hJR0hFUhCTAhIUCg9OT1RfSU1QTEVNRU5URUQQ9AMSDAoHRHJvcHBlZBDnByoeCg5TcGVjaWFsQWNjb3VudBIMCghGZWVWYXVsdBAAYgZwcm90bzM");
|
|
13
|
+
exports.file_nord = (0, codegenv2_1.fileDesc)("Cgpub3JkLnByb3RvEgRub3JkIj0KDUZlZVRpZXJDb25maWcSFQoNbWFrZXJfZmVlX2JwcxgBIAEoDRIVCg10YWtlcl9mZWVfYnBzGAIgASgNItABCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgNEhYKDnByaWNlX2RlY2ltYWxzGAIgASgNEhUKDXNpemVfZGVjaW1hbHMYAyABKA0SFQoNYmFzZV90b2tlbl9pZBgEIAEoDRIlCgttYXJrZXRfdHlwZRgFIAEoDjIQLm5vcmQuTWFya2V0VHlwZRIPCgdpbWZfYnBzGAYgASgNEg8KB2NtZl9icHMYByABKA0SDwoHbW1mX2JwcxgIIAEoDRITCgt2aWV3X3N5bWJvbBgKIAEoCSJaCgVUb2tlbhIQCgh0b2tlbl9pZBgBIAEoDRIWCg50b2tlbl9kZWNpbWFscxgCIAEoDRISCgp3ZWlnaHRfYnBzGAQgASgNEhMKC3ZpZXdfc3ltYm9sGAUgASgJIigKCVF1b3RlU2l6ZRIMCgRzaXplGAEgASgEEg0KBXByaWNlGAIgASgEIk4KCk9yZGVyTGltaXQSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUiYAoJT3JkZXJUeXBlEhgKBHNpZGUYAyABKA4yCi5ub3JkLlNpZGUSIQoJZmlsbF9tb2RlGAQgASgOMg4ubm9yZC5GaWxsTW9kZRIWCg5pc19yZWR1Y2Vfb25seRgFIAEoCCKZAQoMVHJhZGVPclBsYWNlEhEKCW1hcmtldF9pZBgCIAEoDRIjCgpvcmRlcl90eXBlGAMgASgLMg8ubm9yZC5PcmRlclR5cGUSHwoFbGltaXQYBiABKAsyEC5ub3JkLk9yZGVyTGltaXQSHAoPY2xpZW50X29yZGVyX2lkGCEgASgESACIAQFCEgoQX2NsaWVudF9vcmRlcl9pZCIfCgtDYW5jZWxPcmRlchIQCghvcmRlcl9pZBgCIAEoBCJHCgpUcmlnZ2VyS2V5Eh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhgKBHNpZGUYBCABKA4yCi5ub3JkLlNpZGUikCEKBkFjdGlvbhIZChFjdXJyZW50X3RpbWVzdGFtcBgBIAEoAxINCgVub25jZRgCIAEoDRI0Cg5jcmVhdGVfc2Vzc2lvbhgEIAEoCzIaLm5vcmQuQWN0aW9uLkNyZWF0ZVNlc3Npb25IABIwCgxjcmVhdGVfdG9rZW4YBSABKAsyGC5ub3JkLkFjdGlvbi5DcmVhdGVUb2tlbkgAEjIKDWNyZWF0ZV9tYXJrZXQYBiABKAsyGS5ub3JkLkFjdGlvbi5DcmVhdGVNYXJrZXRIABIuCgtwbGFjZV9vcmRlchgHIAEoCzIXLm5vcmQuQWN0aW9uLlBsYWNlT3JkZXJIABI6ChJjYW5jZWxfb3JkZXJfYnlfaWQYCCABKAsyHC5ub3JkLkFjdGlvbi5DYW5jZWxPcmRlckJ5SWRIABInCgdkZXBvc2l0GAkgASgLMhQubm9yZC5BY3Rpb24uRGVwb3NpdEgAEikKCHdpdGhkcmF3GAogASgLMhUubm9yZC5BY3Rpb24uV2l0aGRyYXdIABJMChtweXRoX3NldF93b3JtaG9sZV9ndWFyZGlhbnMYCyABKAsyJS5ub3JkLkFjdGlvbi5QeXRoU2V0V29ybWhvbGVHdWFyZGlhbnNIABI+ChRweXRoX3NldF9zeW1ib2xfZmVlZBgMIAEoCzIeLm5vcmQuQWN0aW9uLlB5dGhTZXRTeW1ib2xGZWVkSAASQgoWcHl0aF9wcmljZV9mZWVkX3VwZGF0ZRgNIAEoCzIgLm5vcmQuQWN0aW9uLlB5dGhQcmljZUZlZWRVcGRhdGVIABIrCglsaXF1aWRhdGUYDiABKAsyFi5ub3JkLkFjdGlvbi5MaXF1aWRhdGVIABI0Cg5yZXZva2Vfc2Vzc2lvbhgPIAEoCzIaLm5vcmQuQWN0aW9uLlJldm9rZVNlc3Npb25IABIjCgVwYXVzZRgQIAEoCzISLm5vcmQuQWN0aW9uLlBhdXNlSAASJwoHdW5wYXVzZRgRIAEoCzIULm5vcmQuQWN0aW9uLlVucGF1c2VIABIpCgh0cmFuc2ZlchgSIAEoCzIVLm5vcmQuQWN0aW9uLlRyYW5zZmVySAASLgoLYWRkX3RyaWdnZXIYICABKAsyFy5ub3JkLkFjdGlvbi5BZGRUcmlnZ2VySAASNAoOcmVtb3ZlX3RyaWdnZXIYISABKAsyGi5ub3JkLkFjdGlvbi5SZW1vdmVUcmlnZ2VySAASMgoNdGFrZV9wb3NpdGlvbhgiIAEoCzIZLm5vcmQuQWN0aW9uLlRha2VQb3NpdGlvbkgAEh4KBmF0b21pYxgjIAEoCzIMLm5vcmQuQXRvbWljSAASMgoNZnJlZXplX21hcmtldBgkIAEoCzIZLm5vcmQuQWN0aW9uLkZyZWV6ZU1hcmtldEgAEjYKD3VuZnJlZXplX21hcmtldBglIAEoCzIbLm5vcmQuQWN0aW9uLlVuZnJlZXplTWFya2V0SAASLwoMYWRkX2ZlZV90aWVyGCYgASgLMhcubm9yZC5BY3Rpb24uQWRkRmVlVGllckgAEjUKD3VwZGF0ZV9mZWVfdGllchgnIAEoCzIaLm5vcmQuQWN0aW9uLlVwZGF0ZUZlZVRpZXJIABI/ChR1cGRhdGVfYWNjb3VudHNfdGllchgoIAEoCzIfLm5vcmQuQWN0aW9uLlVwZGF0ZUFjY291bnRzVGllckgAEiwKCnVwZGF0ZV9hY2wYKSABKAsyFi5ub3JkLkFjdGlvbi5VcGRhdGVBY2xIABpTCg1DcmVhdGVTZXNzaW9uEhMKC3VzZXJfcHVia2V5GAEgASgMEhMKC2Jsc3RfcHVia2V5GAIgASgMEhgKEGV4cGlyeV90aW1lc3RhbXAYAyABKAMaiwEKC0NyZWF0ZVRva2VuEhYKDnRva2VuX2RlY2ltYWxzGAEgASgNEhIKCndlaWdodF9icHMYAyABKA0SEwoLdmlld19zeW1ib2wYBCABKAkSFQoNb3JhY2xlX3N5bWJvbBgFIAEoCRIQCghzb2xfYWRkchgGIAEoDBISCgphY2xfcHVia2V5GAcgASgMGu4BCgxDcmVhdGVNYXJrZXQSFQoNc2l6ZV9kZWNpbWFscxgBIAEoDRIWCg5wcmljZV9kZWNpbWFscxgCIAEoDRIPCgdpbWZfYnBzGAMgASgNEg8KB2NtZl9icHMYBCABKA0SDwoHbW1mX2JwcxgFIAEoDRIlCgttYXJrZXRfdHlwZRgGIAEoDjIQLm5vcmQuTWFya2V0VHlwZRITCgt2aWV3X3N5bWJvbBgHIAEoCRIVCg1vcmFjbGVfc3ltYm9sGAggASgJEhUKDWJhc2VfdG9rZW5faWQYCSABKA0SEgoKYWNsX3B1YmtleRgKIAEoDBqmAwoKUGxhY2VPcmRlchISCgpzZXNzaW9uX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoDRIYCgRzaWRlGAMgASgOMgoubm9yZC5TaWRlEiEKCWZpbGxfbW9kZRgEIAEoDjIOLm5vcmQuRmlsbE1vZGUSFgoOaXNfcmVkdWNlX29ubHkYBSABKAgSDQoFcHJpY2UYBiABKAQSDAoEc2l6ZRgHIAEoBBIjCgpxdW90ZV9zaXplGAggASgLMg8ubm9yZC5RdW90ZVNpemUSIQoUZGVsZWdhdG9yX2FjY291bnRfaWQYICABKA1IAIgBARIcCg9jbGllbnRfb3JkZXJfaWQYISABKARIAYgBARIeChFzZW5kZXJfYWNjb3VudF9pZBgiIAEoDUgCiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgjIAEoBEgDiAEBQhcKFV9kZWxlZ2F0b3JfYWNjb3VudF9pZEISChBfY2xpZW50X29yZGVyX2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZEIVChNfc2VuZGVyX3RyYWNraW5nX2lkGqkBCg9DYW5jZWxPcmRlckJ5SWQSEgoKc2Vzc2lvbl9pZBgBIAEoBBIQCghvcmRlcl9pZBgCIAEoBBIhChRkZWxlZ2F0b3JfYWNjb3VudF9pZBggIAEoDUgAiAEBEh4KEXNlbmRlcl9hY2NvdW50X2lkGCEgASgNSAGIAQFCFwoVX2RlbGVnYXRvcl9hY2NvdW50X2lkQhQKEl9zZW5kZXJfYWNjb3VudF9pZBpvCgdEZXBvc2l0EhQKDGFjdGlvbl9ub25jZRgBIAEoBBISCgp0b2tlbl9hZGRyGAIgASgMEg4KBmFtb3VudBgDIAEoBBITCgt1c2VyX3B1YmtleRgEIAEoDBIVCg1zZW5kZXJfcHVia2V5GAUgASgMGkAKCFdpdGhkcmF3EhAKCHRva2VuX2lkGAEgASgNEhIKCnNlc3Npb25faWQYAiABKAQSDgoGYW1vdW50GAMgASgEGl0KGFB5dGhTZXRXb3JtaG9sZUd1YXJkaWFucxIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMEhIKCmFjbF9wdWJrZXkYAyABKAwaVQoRUHl0aFNldFN5bWJvbEZlZWQSFQoNb3JhY2xlX3N5bWJvbBgBIAEoCRIVCg1wcmljZV9mZWVkX2lkGAIgASgMEhIKCmFjbF9wdWJrZXkYAyABKAwaLwoTUHl0aFByaWNlRmVlZFVwZGF0ZRIYChByYXdfcHl0aG5ldF9kYXRhGAEgASgMGocBCglMaXF1aWRhdGUSHQoVbGlxdWlkYXRvcl9zZXNzaW9uX2lkGAEgASgEEh0KFWxpcXVpZGF0ZWVfYWNjb3VudF9pZBgCIAEoDRIiChVsaXF1aWRhdG9yX2FjY291bnRfaWQYAyABKA1IAIgBAUIYChZfbGlxdWlkYXRvcl9hY2NvdW50X2lkGiMKDVJldm9rZVNlc3Npb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBobCgVQYXVzZRISCgphY2xfcHVia2V5GAEgASgMGh0KB1VucGF1c2USEgoKYWNsX3B1YmtleRgBIAEoDBrPAQoIVHJhbnNmZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCg9mcm9tX2FjY291bnRfaWQYAiABKA0SEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEhoKDXRvX2FjY291bnRfaWQYCCABKA1IAIgBARIyCg9zcGVjaWFsX2FjY291bnQYCSABKA4yFC5ub3JkLlNwZWNpYWxBY2NvdW50SAGIAQFCEAoOX3RvX2FjY291bnRfaWRCEgoQX3NwZWNpYWxfYWNjb3VudBpQCg1UcmlnZ2VyUHJpY2VzEhUKDXRyaWdnZXJfcHJpY2UYBSABKAQSGAoLbGltaXRfcHJpY2UYBiABKARIAIgBAUIOCgxfbGltaXRfcHJpY2UapgEKCkFkZFRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SHQoDa2V5GAMgASgLMhAubm9yZC5UcmlnZ2VyS2V5EioKBnByaWNlcxgEIAEoCzIaLm5vcmQuQWN0aW9uLlRyaWdnZXJQcmljZXMSFwoKYWNjb3VudF9pZBgKIAEoDUgAiAEBQg0KC19hY2NvdW50X2lkGn0KDVJlbW92ZVRyaWdnZXISEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SHQoDa2V5GAMgASgLMhAubm9yZC5UcmlnZ2VyS2V5EhcKCmFjY291bnRfaWQYCiABKA1IAIgBAUINCgtfYWNjb3VudF9pZBpFCgpBZGRGZWVUaWVyEhIKCmFjbF9wdWJrZXkYASABKAwSIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnGlQKDVVwZGF0ZUZlZVRpZXISCgoCaWQYASABKA0SIwoGY29uZmlnGAIgASgLMhMubm9yZC5GZWVUaWVyQ29uZmlnEhIKCmFjbF9wdWJrZXkYAyABKAwaSwoSVXBkYXRlQWNjb3VudHNUaWVyEg8KB3RpZXJfaWQYASABKA0SEAoIYWNjb3VudHMYAiADKA0SEgoKYWNsX3B1YmtleRgDIAEoDBpfCglVcGRhdGVBY2wSEgoKYWNsX3B1YmtleRgBIAEoDBIVCg10YXJnZXRfcHVia2V5GAIgASgMEhIKCnJvbGVzX21hc2sYAyABKA0SEwoLcm9sZXNfdmFsdWUYBCABKA0aNQoMRnJlZXplTWFya2V0EhIKCmFjbF9wdWJrZXkYASABKAwSEQoJbWFya2V0X2lkGAIgASgNGjcKDlVuZnJlZXplTWFya2V0EhIKCmFjbF9wdWJrZXkYASABKAwSEQoJbWFya2V0X2lkGAIgASgNGpcBCgxUYWtlUG9zaXRpb24SEgoKc2Vzc2lvbl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKA0SDAoEc2l6ZRgDIAEoAxIeChFzZW5kZXJfYWNjb3VudF9pZBgEIAEoDUgAiAEBEhIKBXByaWNlGAUgASgESAGIAQFCFAoSX3NlbmRlcl9hY2NvdW50X2lkQggKBl9wcmljZUIGCgRraW5kIncKE0F0b21pY1N1YmFjdGlvbktpbmQSLAoOdHJhZGVfb3JfcGxhY2UYBiABKAsyEi5ub3JkLlRyYWRlT3JQbGFjZUgAEikKDGNhbmNlbF9vcmRlchgHIAEoCzIRLm5vcmQuQ2FuY2VsT3JkZXJIAEIHCgVpbm5lciJwCgZBdG9taWMSEgoKc2Vzc2lvbl9pZBgBIAEoBBIXCgphY2NvdW50X2lkGAIgASgNSACIAQESKgoHYWN0aW9ucxgGIAMoCzIZLm5vcmQuQXRvbWljU3ViYWN0aW9uS2luZEINCgtfYWNjb3VudF9pZCK4HwoHUmVjZWlwdBIRCglhY3Rpb25faWQYASABKAQSGgoDZXJyGCAgASgOMgsubm9yZC5FcnJvckgAEkIKFWNyZWF0ZV9zZXNzaW9uX3Jlc3VsdBghIAEoCzIhLm5vcmQuUmVjZWlwdC5DcmVhdGVTZXNzaW9uUmVzdWx0SAASPAoScGxhY2Vfb3JkZXJfcmVzdWx0GCIgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI+ChNjYW5jZWxfb3JkZXJfcmVzdWx0GCMgASgLMh8ubm9yZC5SZWNlaXB0LkNhbmNlbE9yZGVyUmVzdWx0SAASNQoOZGVwb3NpdF9yZXN1bHQYJCABKAsyGy5ub3JkLlJlY2VpcHQuRGVwb3NpdFJlc3VsdEgAEj4KE2luc2VydF90b2tlbl9yZXN1bHQYJSABKAsyHy5ub3JkLlJlY2VpcHQuSW5zZXJ0VG9rZW5SZXN1bHRIABJAChRpbnNlcnRfbWFya2V0X3Jlc3VsdBgmIAEoCzIgLm5vcmQuUmVjZWlwdC5JbnNlcnRNYXJrZXRSZXN1bHRIABI3Cg93aXRoZHJhd19yZXN1bHQYJyABKAsyHC5ub3JkLlJlY2VpcHQuV2l0aGRyYXdSZXN1bHRIABJJChlvcmFjbGVfc3ltYm9sX2ZlZWRfcmVzdWx0GCggASgLMiQubm9yZC5SZWNlaXB0Lk9yYWNsZVN5bWJvbEZlZWRSZXN1bHRIABJAChRvcmFjbGVfdXBkYXRlX3Jlc3VsdBgpIAEoCzIgLm5vcmQuUmVjZWlwdC5PcmFjbGVVcGRhdGVSZXN1bHRIABJLChp1cGRhdGVfZ3VhcmRpYW5fc2V0X3Jlc3VsdBgqIAEoCzIlLm5vcmQuUmVjZWlwdC5VcGRhdGVHdWFyZGlhblNldFJlc3VsdEgAEjUKCmxpcXVpZGF0ZWQYKyABKAsyHy5ub3JkLlJlY2VpcHQuQWNjb3VudExpcXVpZGF0ZWRIABI3Cg9zZXNzaW9uX3Jldm9rZWQYLCABKAsyHC5ub3JkLlJlY2VpcHQuU2Vzc2lvblJldm9rZWRIABImCgZwYXVzZWQYLSABKAsyFC5ub3JkLlJlY2VpcHQuUGF1c2VkSAASKgoIdW5wYXVzZWQYLiABKAsyFi5ub3JkLlJlY2VpcHQuVW5wYXVzZWRIABIwCgt0cmFuc2ZlcnJlZBgvIAEoCzIZLm5vcmQuUmVjZWlwdC5UcmFuc2ZlcnJlZEgAEjMKDXRyaWdnZXJfYWRkZWQYQCABKAsyGi5ub3JkLlJlY2VpcHQuVHJpZ2dlckFkZGVkSAASNwoPdHJpZ2dlcl9yZW1vdmVkGEEgASgLMhwubm9yZC5SZWNlaXB0LlRyaWdnZXJSZW1vdmVkSAASTQoYcG9zaXRpb25fdGFrZW5fb3JfdHJhZGVkGEIgASgLMikubm9yZC5SZWNlaXB0LlBvc2l0aW9uVGFrZW5PclRyYWRlZFJlc3VsdEgAEiwKBmF0b21pYxhDIAEoCzIaLm5vcmQuUmVjZWlwdC5BdG9taWNSZXN1bHRIABJCChVtYXJrZXRfZnJlZXplX3VwZGF0ZWQYRCABKAsyIS5ub3JkLlJlY2VpcHQuTWFya2V0RnJlZXplVXBkYXRlZEgAEjQKDmZlZV90aWVyX2FkZGVkGEUgASgLMhoubm9yZC5SZWNlaXB0LkZlZVRpZXJBZGRlZEgAEjgKEGZlZV90aWVyX3VwZGF0ZWQYRiABKAsyHC5ub3JkLlJlY2VpcHQuRmVlVGllclVwZGF0ZWRIABJCChVhY2NvdW50c190aWVyX3VwZGF0ZWQYRyABKAsyIS5ub3JkLlJlY2VpcHQuQWNjb3VudHNUaWVyVXBkYXRlZEgAEi8KC2FjbF91cGRhdGVkGEggASgLMhgubm9yZC5SZWNlaXB0LkFjbFVwZGF0ZWRIABp4CgZQb3N0ZWQSGAoEc2lkZRgBIAEoDjIKLm5vcmQuU2lkZRIRCgltYXJrZXRfaWQYAiABKA0SDQoFcHJpY2UYAyABKAQSDAoEc2l6ZRgEIAEoBBIQCghvcmRlcl9pZBgFIAEoBBISCgphY2NvdW50X2lkGAYgASgNGkoKBVRyYWRlEhAKCG9yZGVyX2lkGAIgASgEEg0KBXByaWNlGAQgASgEEgwKBHNpemUYBSABKAQSEgoKYWNjb3VudF9pZBgGIAEoDRopChNDcmVhdGVTZXNzaW9uUmVzdWx0EhIKCnNlc3Npb25faWQYASABKAQaQwoJVHJpZ2dlcmVkEh8KBGtpbmQYAyABKA4yES5ub3JkLlRyaWdnZXJLaW5kEhUKDXRyaWdnZXJfcHJpY2UYBCABKAQalQIKEFBsYWNlT3JkZXJSZXN1bHQSKQoGcG9zdGVkGAEgASgLMhQubm9yZC5SZWNlaXB0LlBvc3RlZEgAiAEBEiIKBWZpbGxzGAIgAygLMhMubm9yZC5SZWNlaXB0LlRyYWRlEhwKD2NsaWVudF9vcmRlcl9pZBgDIAEoBEgBiAEBEh8KEnNlbmRlcl90cmFja2luZ19pZBgEIAEoBEgCiAEBEi8KCXRyaWdnZXJlZBgFIAEoCzIXLm5vcmQuUmVjZWlwdC5UcmlnZ2VyZWRIA4gBAUIJCgdfcG9zdGVkQhIKEF9jbGllbnRfb3JkZXJfaWRCFQoTX3NlbmRlcl90cmFja2luZ19pZEIMCgpfdHJpZ2dlcmVkGkIKC1Rha2VuUmVzdWx0EgsKA3BubBgBIAEoAxIMCgRzaXplGAIgASgDEhgKEHRha2VyX2FjY291bnRfaWQYAyABKA0aqwEKG1Bvc2l0aW9uVGFrZW5PclRyYWRlZFJlc3VsdBIRCgltYXJrZXRfaWQYASABKA0SKgoFdGFrZW4YAiABKAsyGS5ub3JkLlJlY2VpcHQuVGFrZW5SZXN1bHRIABIwCgZ0cmFkZWQYAyABKAsyHi5ub3JkLlJlY2VpcHQuUGxhY2VPcmRlclJlc3VsdEgAQhsKGVBvc2l0aW9uVGFrZW5PclRyYWRlZEtpbmQaOQoRQ2FuY2VsT3JkZXJSZXN1bHQSEAoIb3JkZXJfaWQYASABKAQSEgoKYWNjb3VudF9pZBgCIAEoDRpwCg1EZXBvc2l0UmVzdWx0EhAKCHRva2VuX2lkGAEgASgNEg4KBmFtb3VudBgCIAEoBBISCgphY2NvdW50X2lkGAMgASgNEhQKDHVzZXJfY3JlYXRlZBgEIAEoCBITCgt1c2VyX3B1YmtleRgFIAEoDBpDChFJbnNlcnRUb2tlblJlc3VsdBISCgpjaGFpbl9hZGRyGAEgASgMEhoKBXRva2VuGAIgASgLMgsubm9yZC5Ub2tlbhoyChJJbnNlcnRNYXJrZXRSZXN1bHQSHAoGbWFya2V0GAEgASgLMgwubm9yZC5NYXJrZXQaeQoOV2l0aGRyYXdSZXN1bHQSEAoIdG9rZW5faWQYASABKA0SDgoGYW1vdW50GAIgASgEEg8KB2JhbGFuY2UYAyABKAQSEgoKYWNjb3VudF9pZBgEIAEoDRILCgNmZWUYBSABKAQSEwoLdXNlcl9wdWJrZXkYBiABKAwaQAoWT3JhY2xlU3ltYm9sRmVlZFJlc3VsdBIVCg1vcmFjbGVfc3ltYm9sGAEgASgJEg8KB2ZlZWRfaWQYAiABKAwaJwoST3JhY2xlVXBkYXRlUmVzdWx0EhEKCXRpbWVzdGFtcBgBIAEoAxpIChdVcGRhdGVHdWFyZGlhblNldFJlc3VsdBIaChJndWFyZGlhbl9zZXRfaW5kZXgYASABKA0SEQoJYWRkcmVzc2VzGAIgAygMGkMKDFBlcnBQb3NpdGlvbhIRCgltYXJrZXRfaWQYASABKA0SEQoJYmFzZV9zaXplGAIgASgDEg0KBXByaWNlGAMgASgEGp4BChFBY2NvdW50TGlxdWlkYXRlZBIdChVsaXF1aWRhdG9yX2FjY291bnRfaWQYASABKA0SHQoVbGlxdWlkYXRlZV9hY2NvdW50X2lkGAIgASgNEhgKEGNhbmNlbGxlZF9vcmRlcnMYAyADKAQSMQoNcmVtb3ZlZF9wZXJwcxgEIAMoCzIaLm5vcmQuUmVjZWlwdC5QZXJwUG9zaXRpb24aEAoOU2Vzc2lvblJldm9rZWQaCAoGUGF1c2VkGgoKCFVucGF1c2VkGuEBCgtUcmFuc2ZlcnJlZBIXCg9mcm9tX2FjY291bnRfaWQYASABKA0SHAoPdG9fdXNlcl9hY2NvdW50GAIgASgNSACIAQESEAoIdG9rZW5faWQYAyABKA0SDgoGYW1vdW50GAQgASgEEhcKD2FjY291bnRfY3JlYXRlZBgFIAEoCBI1ChJ0b19zcGVjaWFsX2FjY291bnQYBiABKA4yFC5ub3JkLlNwZWNpYWxBY2NvdW50SAGIAQFCEgoQX3RvX3VzZXJfYWNjb3VudEIVChNfdG9fc3BlY2lhbF9hY2NvdW50Gg4KDFRyaWdnZXJBZGRlZBoQCg5UcmlnZ2VyUmVtb3ZlZBo4ChNNYXJrZXRGcmVlemVVcGRhdGVkEhEKCW1hcmtldF9pZBgBIAEoDRIOCgZmcm96ZW4YAiABKAgaMwoMRmVlVGllckFkZGVkEiMKBmNvbmZpZxgBIAEoCzITLm5vcmQuRmVlVGllckNvbmZpZxpBCg5GZWVUaWVyVXBkYXRlZBIKCgJpZBgBIAEoDRIjCgZjb25maWcYAiABKAsyEy5ub3JkLkZlZVRpZXJDb25maWcaOAoTQWNjb3VudHNUaWVyVXBkYXRlZBIPCgd0aWVyX2lkGAEgASgNEhAKCGFjY291bnRzGAIgAygNGmAKCkFjbFVwZGF0ZWQSEgoKYWNsX3B1YmtleRgBIAEoDBISCgpyb2xlc19tYXNrGAIgASgEEhUKDXRhcmdldF9wdWJrZXkYAyABKAwSEwoLcm9sZXNfdmFsdWUYBCABKAQamwEKGUF0b21pY1N1YmFjdGlvblJlc3VsdEtpbmQSPAoScGxhY2Vfb3JkZXJfcmVzdWx0GAEgASgLMh4ubm9yZC5SZWNlaXB0LlBsYWNlT3JkZXJSZXN1bHRIABI3CgxjYW5jZWxfb3JkZXIYAiABKAsyHy5ub3JkLlJlY2VpcHQuQ2FuY2VsT3JkZXJSZXN1bHRIAEIHCgVpbm5lchpICgxBdG9taWNSZXN1bHQSOAoHcmVzdWx0cxgBIAMoCzInLm5vcmQuUmVjZWlwdC5BdG9taWNTdWJhY3Rpb25SZXN1bHRLaW5kQgYKBGtpbmQqGAoEU2lkZRIHCgNBU0sQABIHCgNCSUQQASotCgtUcmlnZ2VyS2luZBINCglTVE9QX0xPU1MQABIPCgtUQUtFX1BST0ZJVBABKk8KCEZpbGxNb2RlEgkKBUxJTUlUEAASDQoJUE9TVF9PTkxZEAESFwoTSU1NRURJQVRFX09SX0NBTkNFTBACEhAKDEZJTExfT1JfS0lMTBADKiYKCk1hcmtldFR5cGUSCAoEU1BPVBAAEg4KClBFUlBFVFVBTFMQASqSGwoFRXJyb3ISDQoJRFVQTElDQVRFEAASEgoOREVDT0RFX0ZBSUxVUkUQAhIVChFJTlZBTElEX1NJR05BVFVSRRADEhQKEE1BUktFVF9OT1RfRk9VTkQQBBITCg9UT0tFTl9OT1RfRk9VTkQQBRISCg5VU0VSX05PVF9GT1VORBAGEhUKEVNFU1NJT05fTk9UX0ZPVU5EEAcSEwoPT1JERVJfTk9UX0ZPVU5EEAgSEwoPT1JERVJfU0laRV9aRVJPEAkSDgoKQVJJVEhNRVRJQxALEhcKE0FSSVRITUVUSUNfT1ZFUkZMT1cQDBIYChRBUklUSE1FVElDX1VOREVSRkxPVxANEh8KG0FSSVRITUVUSUNfRElWSVNJT05fQllfWkVSTxAOEhoKFktFWV9BTFJFQURZX1JFR0lTVEVSRUQQDxIcChhFWFBJUllfVElNRVNUQU1QX0lOX1BBU1QQEBIcChhVUERBVEVfVElNRVNUQU1QX0lOX1BBU1QQERIYChRUT09fTUFOWV9PUEVOX09SREVSUxASEh0KGVdJVEhEUkFXX0FNT1VOVF9UT09fU01BTEwQFRIXChNJTlZBTElEX09SREVSX09XTkVSEBYSIAocREVDT0RFX0ZBSUxVUkVfTEVOR1RIX1BSRUZJWBAhEhYKEkRFQ09ERV9GQUlMVVJFX1JBVxAiEhkKFURFQ09ERV9GQUlMVVJFX0RPTUFJThAjEh8KG1VQREFURV9QVUJMSVNIX1RJTUVfSU5fUEFTVBAkEhcKE1BZVEhfRkVFRF9OT1RfQURERUQQXRIVChFQWVRIX0ZFRURfTUlTU0lORxBeEhsKF1BZVEhfRkVFRF9BTFJFQURZX0FEREVEEF8SIwofUFlUSF9HVUFSRElBTl9TRVRfVU5JTklUSUFMSVpFRBBgEh0KGVBZVEhfR1VBUkRJQU5fU0VUX0lOVkFMSUQQYRIjCh9QWVRIX0ZFRURfREVDSU1BTFNfT1VUX09GX1JBTkdFEGISIAocUFlUSF9GRUVEX1BSSUNFX09VVF9PRl9SQU5HRRBjEiMKH1BZVEhfRkVFRF9WQVJJQU5DRV9PVVRfT0ZfUkFOR0UQZBI1CjFQWVRIX0dVQVJESUFOX1NFVF9BTkRfUFlUSF9TSUdOQVRVUkVfRE9fTk9UX01BVENIEGUSHAoYSU5WQUxJRF9UT0tFTl9QQVJBTUVURVJTEGYSHAoYSU5ERVhfUFJJQ0VfT1VUX09GX1JBTkdFEGcSHwobSU5ERVhfREVDSU1BTFNfT1VUX09GX1JBTkdFEGgSGQoVSU5WQUxJRF9TVEFURV9WRVJTSU9OEGkSGQoVVElFUl9GRUVfT1VUX09GX1JBTkdFEGoSGAoUVElFUl9JRF9PVVRfT0ZfUkFOR0UQaxITCg9JTlZBTElEX01BUkdJTlMQbBIhCh1NQVJLRVRfREVDSU1BTFNfRVhDRUVEX0xJTUlUUxBtEhMKD1RPT19NQU5ZX1RPS0VOUxBuEhQKEEZVTkRJTkdfT1ZFUkZMT1cQexI3CjNDQU5fUkVEVUNFX1BPU0lUSU9OX09OTFlfSUZfQUxMX09SREVSU19BUkVfQ0FOQ0VMRUQQfBIXChNVTkVYUEVDVEVEX1RPS0VOX0lEEH8SFAoPVE9LRU5fTk9UX1JFQURZEIIBEhwKGFRPS0VOX0FMUkVBRFlfUkVHSVNURVJFRBBwEiEKHElNTUVESUFURV9PUkRFUl9HT1RfTk9fRklMTFMQhQESGQoURkFJTEVEX1RPX0ZJTExfTElNSVQQhgESMAorUE9TVF9PTkxZX01VU1RfTk9UX0ZJTExfQU5ZX09QUE9TSVRFX09SREVSUxCHARIMCgdJTlZBTElEEIgBEhAKC01BSU5URU5BTkNFEIkBEhoKFU1JTklNVU1fU0laRV9ERUNJTUFMUxCKARIyCi1QQVJBTUVURVJTX1dJTExfQ1JFQVRFX05PTl9PUEVSQVRJT05BTF9NQVJLRVQQiwESIgodT05MWV9JTU1FRElBVEVfT1JERVJTX0FMTE9XRUQQjAESGwoWVE9PX01BTllfVVNFUl9BQ0NPVU5UUxCNARIWChFBQ0NPVU5UX05PVF9GT1VORBCOARIaChVBQ0NPVU5UX0lOVkFMSURfT1dORVIQjwESEQoMRFVTVF9BQ0NPVU5UEJEBEgwKB0JBTEFOQ0UQoAESHQoYQkFMQU5DRV9ERVBPU0lUX09WRVJGTE9XEKEBEhwKF0JBTEFOQ0VfQ0hBTkdFX09WRVJGTE9XEKIBEiIKHUJBTEFOQ0VfQ0hBTkdFX0xJTUlUX0VYQ0VFREVEEKMBEhkKFEJBTEFOQ0VfSU5TVUZGSUNJRU5UEKQBEh4KGVVOQVVUSEVOVElDQVRFRF9MMV9BQ1RJT04QpQESHQoYRU5DT0RFRF9BQ1RJT05fVE9PX0xBUkdFEKYBEgwKB1RSSUdHRVIQqAESGgoVVFJJR0dFUl9JTlZBTElEX1BSSUNFEKkBEhYKEVRSSUdHRVJfTk9UX0ZPVU5EEKoBEg4KCVRJTUVTVEFNUBCwARIfChpUSU1FU1RBTVBfT1VUX09GX1RIUkVTSE9MRBCxARIUCg9USU1FU1RBTVBfU1RBTEUQsgESJQogQkFOS1JVUFRDWV9JTlNVRkZJQ0lFTlRfQ09WRVJBR0UQuQESGQoUQkFOS1JVUFRDWV9OT1RfRk9VTkQQugESGwoWQkFOS1JVUFRDWV9OT1RfQUxMT1dFRBC7ARIVChBNQVJLRVRfTk9UX1JFQURZEMABEhIKDU1BUktFVF9GUk9aRU4QwQESEQoMTUFSS0VUX0VNUFRZEMIBEg0KCFBPU0lUSU9OEMgBEhcKElBPU0lUSU9OX05PVF9GT1VORBDJARIZChRQT1NJVElPTl9TVEFURV9PUkRFUhDKARIfChpQT1NJVElPTl9TVEFURV9PUkRFUl9QUklDRRDLARIeChlQT1NJVElPTl9TVEFURV9PUkRFUl9TSVpFEMwBEh4KGVBPU0lUSU9OX1NUQVRFX09SREVSX1NJREUQzQESGAoTUE9TSVRJT05fU0laRV9MSU1JVBDOARIYChNQT1NJVElPTl9TVEFURV9QRVJQEM8BEiQKH1BPU0lUSU9OX1NUQVRFX09SREVSX0RFTEVHQVRJT04Q0AESCgoFUFJJQ0UQ0QESGwoWU0lHTkFUVVJFX1ZFUklGSUNBVElPThDZARIwCitTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX01BTEZPUk1FRF9QVUJMSUNfS0VZENoBEioKJVNJR05BVFVSRV9WRVJJRklDQVRJT05fSU5WQUxJRF9MRU5HVEgQ2wESCQoEUklTSxDgARI0Ci9SSVNLX0RFTEVHQVRJT05fTUZfVE9fQkVfTEVTU19USEFOX09SX0VRVUFMX01NRhDhARIkCh9SSVNLX09NRl9MRVNTX1RIQU5fT1JfRVFVQUxfSU1GEOIBEiQKH1JJU0tfT01GX0xFU1NfVEhBTl9PUl9FUVVBTF9DTUYQ4wESKgolUklTS19UUkFERV9PTUZfTEVTU19USEFOX09SX0VRVUFMX0NNRhDlARI1CjBSSVNLX1VOSEVBTFRIWV9NRl9BTkRfUE9OX0FGVEVSX0JFVFRFUl9PRl9CRUZPUkUQ5AESFAoPT1JERVJfRVhFQ1VUSU9OEPABEhoKFU9SREVSX0VYRUNVVElPTl9FTVBUWRDxARIhChxPUkRFUl9FWEVDVVRJT05fRklMTF9PUl9LSUxMEPIBEiMKHk9SREVSX0VYRUNVVElPTl9NSVNTSU5HX0xJTUlUUxDzARIiCh1PUkRFUl9FWEVDVVRJT05fTUlTU0lOR19QUklDRRD0ARIfChpPUkRFUl9FWEVDVVRJT05fU0laRV9MSU1JVBD1ARIgChtPUkRFUl9FWEVDVVRJT05fTElNSVRfUFJJQ0UQ9gESHgoZT1JERVJfUkVEVUNFX0lTX1BPU1RfT05MWRD3ARIfChpPUkRFUl9FWEVDVVRJT05fU0VMTF9QUklDRRD4ARIlCiBPUkRFUl9TSVpFX0VYQ0VFRFNfUE9TSVRJT05fU0laRRD5ARIoCiNBVE9NSUNTX1RSQURFU19DQU5OT1RfRk9MTE9XX1BMQUNFUxCAAhIwCitBVE9NSUNTX0NBTkNFTFNfQ0FOTk9UX0ZPTExPV19UUkFERVNfUExBQ0VTEIECEiYKIUFDVElPTl9QT1NJVElPTl9TSE9VTERfQkVfQ09WRVJFRBCRAhIZChRBQ1RJT05fSU5WQUxJRF9OT05DRRCSAhIpCiRBQ1RJT05fUFJPUE9TRURfUFJJQ0VfTVVTVF9CRV9ISUdIRVIQkwISHAoXQURNSU5fUk9MRV9JTlNVRkZJQ0lFTlQQlAISFAoPQURNSU5fTk9UX0ZPVU5EEJUCEikKJFVOSVFVRV9TVVBFUl9BRE1JTl9DQU5OT1RfQkVfUkVNT1ZFRBCWAhIfChpTVVBFUl9BRE1JTl9BTFJFQURZX0VYSVNUUxCXAhIUCg9OT1RfSU1QTEVNRU5URUQQ9AMSDAoHRHJvcHBlZBDnByoeCg5TcGVjaWFsQWNjb3VudBIMCghGZWVWYXVsdBAAYgZwcm90bzM");
|
|
14
14
|
/**
|
|
15
15
|
* Describes the message nord.FeeTierConfig.
|
|
16
16
|
* Use `create(FeeTierConfigSchema)` to create a new message.
|
|
@@ -166,21 +166,26 @@ exports.Action_UpdateFeeTierSchema = (0, codegenv2_1.messageDesc)(exports.file_n
|
|
|
166
166
|
* Use `create(Action_UpdateAccountsTierSchema)` to create a new message.
|
|
167
167
|
*/
|
|
168
168
|
exports.Action_UpdateAccountsTierSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9, 20);
|
|
169
|
+
/**
|
|
170
|
+
* Describes the message nord.Action.UpdateAcl.
|
|
171
|
+
* Use `create(Action_UpdateAclSchema)` to create a new message.
|
|
172
|
+
*/
|
|
173
|
+
exports.Action_UpdateAclSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9, 21);
|
|
169
174
|
/**
|
|
170
175
|
* Describes the message nord.Action.FreezeMarket.
|
|
171
176
|
* Use `create(Action_FreezeMarketSchema)` to create a new message.
|
|
172
177
|
*/
|
|
173
|
-
exports.Action_FreezeMarketSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9,
|
|
178
|
+
exports.Action_FreezeMarketSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9, 22);
|
|
174
179
|
/**
|
|
175
180
|
* Describes the message nord.Action.UnfreezeMarket.
|
|
176
181
|
* Use `create(Action_UnfreezeMarketSchema)` to create a new message.
|
|
177
182
|
*/
|
|
178
|
-
exports.Action_UnfreezeMarketSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9,
|
|
183
|
+
exports.Action_UnfreezeMarketSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9, 23);
|
|
179
184
|
/**
|
|
180
185
|
* Describes the message nord.Action.TakePosition.
|
|
181
186
|
* Use `create(Action_TakePositionSchema)` to create a new message.
|
|
182
187
|
*/
|
|
183
|
-
exports.Action_TakePositionSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9,
|
|
188
|
+
exports.Action_TakePositionSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 9, 24);
|
|
184
189
|
/**
|
|
185
190
|
* Describes the message nord.AtomicSubactionKind.
|
|
186
191
|
* Use `create(AtomicSubactionKindSchema)` to create a new message.
|
|
@@ -331,16 +336,21 @@ exports.Receipt_FeeTierUpdatedSchema = (0, codegenv2_1.messageDesc)(exports.file
|
|
|
331
336
|
* Use `create(Receipt_AccountsTierUpdatedSchema)` to create a new message.
|
|
332
337
|
*/
|
|
333
338
|
exports.Receipt_AccountsTierUpdatedSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12, 26);
|
|
339
|
+
/**
|
|
340
|
+
* Describes the message nord.Receipt.AclUpdated.
|
|
341
|
+
* Use `create(Receipt_AclUpdatedSchema)` to create a new message.
|
|
342
|
+
*/
|
|
343
|
+
exports.Receipt_AclUpdatedSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12, 27);
|
|
334
344
|
/**
|
|
335
345
|
* Describes the message nord.Receipt.AtomicSubactionResultKind.
|
|
336
346
|
* Use `create(Receipt_AtomicSubactionResultKindSchema)` to create a new message.
|
|
337
347
|
*/
|
|
338
|
-
exports.Receipt_AtomicSubactionResultKindSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12,
|
|
348
|
+
exports.Receipt_AtomicSubactionResultKindSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12, 28);
|
|
339
349
|
/**
|
|
340
350
|
* Describes the message nord.Receipt.AtomicResult.
|
|
341
351
|
* Use `create(Receipt_AtomicResultSchema)` to create a new message.
|
|
342
352
|
*/
|
|
343
|
-
exports.Receipt_AtomicResultSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12,
|
|
353
|
+
exports.Receipt_AtomicResultSchema = (0, codegenv2_1.messageDesc)(exports.file_nord, 12, 29);
|
|
344
354
|
/**
|
|
345
355
|
* @generated from enum nord.Side
|
|
346
356
|
*/
|
|
@@ -1002,6 +1012,22 @@ var Error;
|
|
|
1002
1012
|
* @generated from enum value: ACTION_PROPOSED_PRICE_MUST_BE_HIGHER = 275;
|
|
1003
1013
|
*/
|
|
1004
1014
|
Error[Error["ACTION_PROPOSED_PRICE_MUST_BE_HIGHER"] = 275] = "ACTION_PROPOSED_PRICE_MUST_BE_HIGHER";
|
|
1015
|
+
/**
|
|
1016
|
+
* @generated from enum value: ADMIN_ROLE_INSUFFICIENT = 276;
|
|
1017
|
+
*/
|
|
1018
|
+
Error[Error["ADMIN_ROLE_INSUFFICIENT"] = 276] = "ADMIN_ROLE_INSUFFICIENT";
|
|
1019
|
+
/**
|
|
1020
|
+
* @generated from enum value: ADMIN_NOT_FOUND = 277;
|
|
1021
|
+
*/
|
|
1022
|
+
Error[Error["ADMIN_NOT_FOUND"] = 277] = "ADMIN_NOT_FOUND";
|
|
1023
|
+
/**
|
|
1024
|
+
* @generated from enum value: UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED = 278;
|
|
1025
|
+
*/
|
|
1026
|
+
Error[Error["UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED"] = 278] = "UNIQUE_SUPER_ADMIN_CANNOT_BE_REMOVED";
|
|
1027
|
+
/**
|
|
1028
|
+
* @generated from enum value: SUPER_ADMIN_ALREADY_EXISTS = 279;
|
|
1029
|
+
*/
|
|
1030
|
+
Error[Error["SUPER_ADMIN_ALREADY_EXISTS"] = 279] = "SUPER_ADMIN_ALREADY_EXISTS";
|
|
1005
1031
|
/**
|
|
1006
1032
|
* @generated from enum value: NOT_IMPLEMENTED = 500;
|
|
1007
1033
|
*/
|
package/dist/gen/openapi.d.ts
CHANGED
|
@@ -1231,6 +1231,44 @@ export interface paths {
|
|
|
1231
1231
|
patch?: never;
|
|
1232
1232
|
trace?: never;
|
|
1233
1233
|
};
|
|
1234
|
+
"/admin": {
|
|
1235
|
+
parameters: {
|
|
1236
|
+
query?: never;
|
|
1237
|
+
header?: never;
|
|
1238
|
+
path?: never;
|
|
1239
|
+
cookie?: never;
|
|
1240
|
+
};
|
|
1241
|
+
/** @description List of assigned admins. */
|
|
1242
|
+
get: {
|
|
1243
|
+
parameters: {
|
|
1244
|
+
query?: never;
|
|
1245
|
+
header?: never;
|
|
1246
|
+
path?: never;
|
|
1247
|
+
cookie?: never;
|
|
1248
|
+
};
|
|
1249
|
+
requestBody?: never;
|
|
1250
|
+
responses: {
|
|
1251
|
+
200: {
|
|
1252
|
+
headers: {
|
|
1253
|
+
[name: string]: unknown;
|
|
1254
|
+
};
|
|
1255
|
+
content: {
|
|
1256
|
+
"application/json": [
|
|
1257
|
+
string,
|
|
1258
|
+
components["schemas"]["AclRole"]
|
|
1259
|
+
][];
|
|
1260
|
+
};
|
|
1261
|
+
};
|
|
1262
|
+
};
|
|
1263
|
+
};
|
|
1264
|
+
put?: never;
|
|
1265
|
+
post?: never;
|
|
1266
|
+
delete?: never;
|
|
1267
|
+
options?: never;
|
|
1268
|
+
head?: never;
|
|
1269
|
+
patch?: never;
|
|
1270
|
+
trace?: never;
|
|
1271
|
+
};
|
|
1234
1272
|
"/tv": {
|
|
1235
1273
|
parameters: {
|
|
1236
1274
|
query?: never;
|
|
@@ -2688,6 +2726,8 @@ export interface components {
|
|
|
2688
2726
|
accountId: number;
|
|
2689
2727
|
feeTier: components["schemas"]["FeeTierId"];
|
|
2690
2728
|
};
|
|
2729
|
+
/** Format: uint32 */
|
|
2730
|
+
AclRole: number;
|
|
2691
2731
|
/** @description TV config query response https://www.tradingview.com/charting-library-docs/latest/connecting_data/UDF/#data-feed-configuration-data */
|
|
2692
2732
|
TvConfigResponse: {
|
|
2693
2733
|
supported_resolutions: components["schemas"]["Resolution"][];
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
2
|
export * from "./utils";
|
|
3
3
|
export * from "./const";
|
|
4
|
-
export * from "./
|
|
4
|
+
export * from "./error";
|
|
5
5
|
export * from "./websocket/index";
|
|
6
|
+
export * from "./client/Nord";
|
|
7
|
+
export * from "./client/NordUser";
|
|
8
|
+
export * from "./client/NordAdmin";
|
|
9
|
+
export * as proto from "./gen/nord_pb";
|
|
10
|
+
export * as openapi from "./gen/openapi";
|
package/dist/index.js
CHANGED
|
@@ -10,12 +10,40 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
16
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.openapi = exports.proto = void 0;
|
|
17
40
|
__exportStar(require("./types"), exports);
|
|
18
41
|
__exportStar(require("./utils"), exports);
|
|
19
42
|
__exportStar(require("./const"), exports);
|
|
20
|
-
__exportStar(require("./
|
|
43
|
+
__exportStar(require("./error"), exports);
|
|
21
44
|
__exportStar(require("./websocket/index"), exports);
|
|
45
|
+
__exportStar(require("./client/Nord"), exports);
|
|
46
|
+
__exportStar(require("./client/NordUser"), exports);
|
|
47
|
+
__exportStar(require("./client/NordAdmin"), exports);
|
|
48
|
+
exports.proto = __importStar(require("./gen/nord_pb"));
|
|
49
|
+
exports.openapi = __importStar(require("./gen/openapi"));
|
|
@@ -101,7 +101,7 @@ export declare class Nord {
|
|
|
101
101
|
* @returns Initialized Nord client
|
|
102
102
|
* @throws {NordError} If initialization fails
|
|
103
103
|
*/
|
|
104
|
-
static initNord({ app, solanaUrl, webServerUrl, }: Readonly<NordConfig>): Promise<Nord>;
|
|
104
|
+
static initNord({ app, solanaUrl, webServerUrl, protonUrl, }: Readonly<NordConfig>): Promise<Nord>;
|
|
105
105
|
/**
|
|
106
106
|
* Initialize the Nord client
|
|
107
107
|
* @private
|
package/dist/nord/client/Nord.js
CHANGED
|
@@ -182,13 +182,13 @@ class Nord {
|
|
|
182
182
|
* @returns Initialized Nord client
|
|
183
183
|
* @throws {NordError} If initialization fails
|
|
184
184
|
*/
|
|
185
|
-
static async initNord({ app, solanaUrl, webServerUrl, }) {
|
|
185
|
+
static async initNord({ app, solanaUrl, webServerUrl, protonUrl, }) {
|
|
186
186
|
// TODO: we should parametrize the connectionn not have it done here.
|
|
187
187
|
// this is a dogshit api, only here to be compatible with the shitty
|
|
188
188
|
// vibecoded code and not break zero one team's workflow.
|
|
189
189
|
const connection = new web3_js_1.Connection(solanaUrl, { commitment: "confirmed" });
|
|
190
190
|
const protonClient = await proton_1.ProtonClient.init({
|
|
191
|
-
protonUrl: webServerUrl,
|
|
191
|
+
protonUrl: protonUrl ?? webServerUrl,
|
|
192
192
|
app: new web3_js_1.PublicKey(app),
|
|
193
193
|
solConn: connection,
|
|
194
194
|
});
|
|
@@ -2,6 +2,11 @@ import { PublicKey } from "@solana/web3.js";
|
|
|
2
2
|
import * as proto from "../../gen/nord_pb";
|
|
3
3
|
import { Nord } from "./Nord";
|
|
4
4
|
import { FeeTierConfig } from "../../gen/nord_pb";
|
|
5
|
+
export declare enum AclRole {
|
|
6
|
+
FEE_MANAGER = 1,
|
|
7
|
+
MARKET_MANAGER = 2,
|
|
8
|
+
ADMIN = -2147483648
|
|
9
|
+
}
|
|
5
10
|
/**
|
|
6
11
|
* Parameters required to register a new token via the admin API.
|
|
7
12
|
*/
|
|
@@ -70,11 +75,13 @@ export interface UpdateFeeTierParams {
|
|
|
70
75
|
*/
|
|
71
76
|
export declare class NordAdmin {
|
|
72
77
|
private readonly nord;
|
|
78
|
+
private readonly admin;
|
|
73
79
|
private readonly signFn;
|
|
74
80
|
private constructor();
|
|
75
81
|
/** Create a new admin client.
|
|
76
82
|
*
|
|
77
83
|
* @param nord - Nord instance
|
|
84
|
+
* @param admin - The user that will be signing actions.
|
|
78
85
|
* @param signFn - Function to sign messages with the admin's wallet.
|
|
79
86
|
*
|
|
80
87
|
* `signFn` must sign the _hex-encoded_ message, not the raw message itself, for
|
|
@@ -94,8 +101,9 @@ export declare class NordAdmin {
|
|
|
94
101
|
*
|
|
95
102
|
* where `nacl` is the tweetnacl library.
|
|
96
103
|
*/
|
|
97
|
-
static new({ nord, signFn, }: Readonly<{
|
|
104
|
+
static new({ nord, admin, signFn, }: Readonly<{
|
|
98
105
|
nord: Nord;
|
|
106
|
+
admin: PublicKey;
|
|
99
107
|
signFn: (m: Uint8Array) => Promise<Uint8Array>;
|
|
100
108
|
}>): NordAdmin;
|
|
101
109
|
/**
|
|
@@ -105,6 +113,21 @@ export declare class NordAdmin {
|
|
|
105
113
|
* @throws {NordError} If signing or submission fails
|
|
106
114
|
*/
|
|
107
115
|
private submitAction;
|
|
116
|
+
/** Set acl permissions for a given user.
|
|
117
|
+
*
|
|
118
|
+
* If all roles are removed, the user is removed from the acl.
|
|
119
|
+
*
|
|
120
|
+
* @param target - User to update.
|
|
121
|
+
* @param addRoles - Roles to add to the user.
|
|
122
|
+
* @param removeRoles - Reles to remove from the user.
|
|
123
|
+
*/
|
|
124
|
+
updateAcl({ target, addRoles, removeRoles, }: Readonly<{
|
|
125
|
+
target: PublicKey;
|
|
126
|
+
addRoles: AclRole[];
|
|
127
|
+
removeRoles: AclRole[];
|
|
128
|
+
}>): Promise<{
|
|
129
|
+
actionId: bigint;
|
|
130
|
+
} & proto.Receipt_AclUpdated>;
|
|
108
131
|
/**
|
|
109
132
|
* Register a new token that can be listed on Nord.
|
|
110
133
|
*
|
|
@@ -33,23 +33,34 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.NordAdmin = void 0;
|
|
36
|
+
exports.NordAdmin = exports.AclRole = void 0;
|
|
37
37
|
const protobuf_1 = require("@bufbuild/protobuf");
|
|
38
38
|
const proto = __importStar(require("../../gen/nord_pb"));
|
|
39
39
|
const utils_1 = require("../../utils");
|
|
40
40
|
const actions_1 = require("../api/actions");
|
|
41
41
|
const NordError_1 = require("../utils/NordError");
|
|
42
|
+
// NOTE: keep in sync with `acl.rs`.
|
|
43
|
+
// NOTE: don't forget `number` as int is internally a u32.
|
|
44
|
+
var AclRole;
|
|
45
|
+
(function (AclRole) {
|
|
46
|
+
AclRole[AclRole["FEE_MANAGER"] = 1] = "FEE_MANAGER";
|
|
47
|
+
AclRole[AclRole["MARKET_MANAGER"] = 2] = "MARKET_MANAGER";
|
|
48
|
+
// TODO: unsure about this?
|
|
49
|
+
AclRole[AclRole["ADMIN"] = -2147483648] = "ADMIN";
|
|
50
|
+
})(AclRole || (exports.AclRole = AclRole = {}));
|
|
42
51
|
/**
|
|
43
52
|
* Administrative client capable of submitting privileged configuration actions.
|
|
44
53
|
*/
|
|
45
54
|
class NordAdmin {
|
|
46
|
-
constructor({ nord, signFn, }) {
|
|
55
|
+
constructor({ nord, admin, signFn, }) {
|
|
47
56
|
this.nord = nord;
|
|
57
|
+
this.admin = admin;
|
|
48
58
|
this.signFn = signFn;
|
|
49
59
|
}
|
|
50
60
|
/** Create a new admin client.
|
|
51
61
|
*
|
|
52
62
|
* @param nord - Nord instance
|
|
63
|
+
* @param admin - The user that will be signing actions.
|
|
53
64
|
* @param signFn - Function to sign messages with the admin's wallet.
|
|
54
65
|
*
|
|
55
66
|
* `signFn` must sign the _hex-encoded_ message, not the raw message itself, for
|
|
@@ -69,9 +80,10 @@ class NordAdmin {
|
|
|
69
80
|
*
|
|
70
81
|
* where `nacl` is the tweetnacl library.
|
|
71
82
|
*/
|
|
72
|
-
static new({ nord, signFn, }) {
|
|
83
|
+
static new({ nord, admin, signFn, }) {
|
|
73
84
|
return new NordAdmin({
|
|
74
85
|
nord,
|
|
86
|
+
admin,
|
|
75
87
|
signFn,
|
|
76
88
|
});
|
|
77
89
|
}
|
|
@@ -92,6 +104,39 @@ class NordAdmin {
|
|
|
92
104
|
return Uint8Array.from([...xs, ...signature]);
|
|
93
105
|
}, action);
|
|
94
106
|
}
|
|
107
|
+
/** Set acl permissions for a given user.
|
|
108
|
+
*
|
|
109
|
+
* If all roles are removed, the user is removed from the acl.
|
|
110
|
+
*
|
|
111
|
+
* @param target - User to update.
|
|
112
|
+
* @param addRoles - Roles to add to the user.
|
|
113
|
+
* @param removeRoles - Reles to remove from the user.
|
|
114
|
+
*/
|
|
115
|
+
async updateAcl({ target, addRoles, removeRoles, }) {
|
|
116
|
+
const allRoles = addRoles.concat(removeRoles);
|
|
117
|
+
if (allRoles.length !== new Set(allRoles).size) {
|
|
118
|
+
throw new NordError_1.NordError("duplicate roles in acl update; must be unique");
|
|
119
|
+
}
|
|
120
|
+
let mask = 0;
|
|
121
|
+
let values = 0;
|
|
122
|
+
for (const role of allRoles) {
|
|
123
|
+
mask |= role;
|
|
124
|
+
}
|
|
125
|
+
for (const role of addRoles) {
|
|
126
|
+
values |= role;
|
|
127
|
+
}
|
|
128
|
+
const receipt = await this.submitAction({
|
|
129
|
+
case: "updateAcl",
|
|
130
|
+
value: (0, protobuf_1.create)(proto.Action_UpdateAclSchema, {
|
|
131
|
+
aclPubkey: this.admin.toBytes(),
|
|
132
|
+
targetPubkey: target.toBytes(),
|
|
133
|
+
rolesValue: values,
|
|
134
|
+
rolesMask: mask,
|
|
135
|
+
}),
|
|
136
|
+
});
|
|
137
|
+
(0, actions_1.expectReceiptKind)(receipt, "aclUpdated", "update acl");
|
|
138
|
+
return { ...receipt.kind.value, actionId: receipt.actionId };
|
|
139
|
+
}
|
|
95
140
|
/**
|
|
96
141
|
* Register a new token that can be listed on Nord.
|
|
97
142
|
*
|
|
@@ -103,6 +148,7 @@ class NordAdmin {
|
|
|
103
148
|
const receipt = await this.submitAction({
|
|
104
149
|
case: "createToken",
|
|
105
150
|
value: (0, protobuf_1.create)(proto.Action_CreateTokenSchema, {
|
|
151
|
+
aclPubkey: this.admin.toBytes(),
|
|
106
152
|
tokenDecimals,
|
|
107
153
|
weightBps,
|
|
108
154
|
viewSymbol,
|
|
@@ -124,6 +170,7 @@ class NordAdmin {
|
|
|
124
170
|
const receipt = await this.submitAction({
|
|
125
171
|
case: "createMarket",
|
|
126
172
|
value: (0, protobuf_1.create)(proto.Action_CreateMarketSchema, {
|
|
173
|
+
aclPubkey: this.admin.toBytes(),
|
|
127
174
|
sizeDecimals: params.sizeDecimals,
|
|
128
175
|
priceDecimals: params.priceDecimals,
|
|
129
176
|
imfBps: params.imfBps,
|
|
@@ -165,6 +212,7 @@ class NordAdmin {
|
|
|
165
212
|
const receipt = await this.submitAction({
|
|
166
213
|
case: "pythSetWormholeGuardians",
|
|
167
214
|
value: (0, protobuf_1.create)(proto.Action_PythSetWormholeGuardiansSchema, {
|
|
215
|
+
aclPubkey: this.admin.toBytes(),
|
|
168
216
|
guardianSetIndex: params.guardianSetIndex,
|
|
169
217
|
addresses,
|
|
170
218
|
}),
|
|
@@ -199,6 +247,7 @@ class NordAdmin {
|
|
|
199
247
|
const receipt = await this.submitAction({
|
|
200
248
|
case: "pythSetSymbolFeed",
|
|
201
249
|
value: (0, protobuf_1.create)(proto.Action_PythSetSymbolFeedSchema, {
|
|
250
|
+
aclPubkey: this.admin.toBytes(),
|
|
202
251
|
oracleSymbol: params.oracleSymbol,
|
|
203
252
|
priceFeedId,
|
|
204
253
|
}),
|
|
@@ -215,7 +264,9 @@ class NordAdmin {
|
|
|
215
264
|
async pause() {
|
|
216
265
|
const receipt = await this.submitAction({
|
|
217
266
|
case: "pause",
|
|
218
|
-
value: (0, protobuf_1.create)(proto.Action_PauseSchema, {
|
|
267
|
+
value: (0, protobuf_1.create)(proto.Action_PauseSchema, {
|
|
268
|
+
aclPubkey: this.admin.toBytes(),
|
|
269
|
+
}),
|
|
219
270
|
});
|
|
220
271
|
(0, actions_1.expectReceiptKind)(receipt, "paused", "pause");
|
|
221
272
|
return { actionId: receipt.actionId };
|
|
@@ -229,7 +280,9 @@ class NordAdmin {
|
|
|
229
280
|
async unpause() {
|
|
230
281
|
const receipt = await this.submitAction({
|
|
231
282
|
case: "unpause",
|
|
232
|
-
value: (0, protobuf_1.create)(proto.Action_UnpauseSchema, {
|
|
283
|
+
value: (0, protobuf_1.create)(proto.Action_UnpauseSchema, {
|
|
284
|
+
aclPubkey: this.admin.toBytes(),
|
|
285
|
+
}),
|
|
233
286
|
});
|
|
234
287
|
(0, actions_1.expectReceiptKind)(receipt, "unpaused", "unpause");
|
|
235
288
|
return { actionId: receipt.actionId };
|
|
@@ -246,6 +299,7 @@ class NordAdmin {
|
|
|
246
299
|
case: "freezeMarket",
|
|
247
300
|
value: (0, protobuf_1.create)(proto.Action_FreezeMarketSchema, {
|
|
248
301
|
marketId: params.marketId,
|
|
302
|
+
aclPubkey: this.admin.toBytes(),
|
|
249
303
|
}),
|
|
250
304
|
});
|
|
251
305
|
(0, actions_1.expectReceiptKind)(receipt, "marketFreezeUpdated", "freeze market");
|
|
@@ -263,6 +317,7 @@ class NordAdmin {
|
|
|
263
317
|
case: "unfreezeMarket",
|
|
264
318
|
value: (0, protobuf_1.create)(proto.Action_UnfreezeMarketSchema, {
|
|
265
319
|
marketId: params.marketId,
|
|
320
|
+
aclPubkey: this.admin.toBytes(),
|
|
266
321
|
}),
|
|
267
322
|
});
|
|
268
323
|
(0, actions_1.expectReceiptKind)(receipt, "marketFreezeUpdated", "unfreeze market");
|
|
@@ -283,6 +338,7 @@ class NordAdmin {
|
|
|
283
338
|
const receipt = await this.submitAction({
|
|
284
339
|
case: "addFeeTier",
|
|
285
340
|
value: (0, protobuf_1.create)(proto.Action_AddFeeTierSchema, {
|
|
341
|
+
aclPubkey: this.admin.toBytes(),
|
|
286
342
|
config: (0, protobuf_1.create)(proto.FeeTierConfigSchema, params.config),
|
|
287
343
|
}),
|
|
288
344
|
});
|
|
@@ -303,6 +359,7 @@ class NordAdmin {
|
|
|
303
359
|
const receipt = await this.submitAction({
|
|
304
360
|
case: "updateFeeTier",
|
|
305
361
|
value: (0, protobuf_1.create)(proto.Action_UpdateFeeTierSchema, {
|
|
362
|
+
aclPubkey: this.admin.toBytes(),
|
|
306
363
|
id: params.tierId,
|
|
307
364
|
config: (0, protobuf_1.create)(proto.FeeTierConfigSchema, params.config),
|
|
308
365
|
}),
|
|
@@ -326,6 +383,7 @@ class NordAdmin {
|
|
|
326
383
|
const receipt = await this.submitAction({
|
|
327
384
|
case: "updateAccountsTier",
|
|
328
385
|
value: (0, protobuf_1.create)(proto.Action_UpdateAccountsTierSchema, {
|
|
386
|
+
aclPubkey: this.admin.toBytes(),
|
|
329
387
|
accounts,
|
|
330
388
|
tierId,
|
|
331
389
|
}),
|
package/dist/nord/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Nord } from "./client/Nord";
|
|
2
2
|
export { NordUser } from "./client/NordUser";
|
|
3
|
-
export { NordAdmin } from "./client/NordAdmin";
|
|
3
|
+
export { NordAdmin, AclRole } from "./client/NordAdmin";
|
|
4
4
|
export { NordClient } from "./client/NordClient";
|
|
5
5
|
export type { NordClientParams } from "./client/NordClient";
|
|
6
6
|
export type { CreateTokenParams, CreateMarketParams, PythSetWormholeGuardiansParams, PythSetSymbolFeedParams, FreezeMarketParams, UnfreezeMarketParams, } from "./client/NordAdmin";
|
package/dist/nord/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.NordError = exports.NordClient = exports.NordAdmin = exports.NordUser = exports.Nord = void 0;
|
|
17
|
+
exports.NordError = exports.NordClient = exports.AclRole = exports.NordAdmin = exports.NordUser = exports.Nord = void 0;
|
|
18
18
|
// Export main client classes
|
|
19
19
|
var Nord_1 = require("./client/Nord");
|
|
20
20
|
Object.defineProperty(exports, "Nord", { enumerable: true, get: function () { return Nord_1.Nord; } });
|
|
@@ -22,6 +22,7 @@ var NordUser_1 = require("./client/NordUser");
|
|
|
22
22
|
Object.defineProperty(exports, "NordUser", { enumerable: true, get: function () { return NordUser_1.NordUser; } });
|
|
23
23
|
var NordAdmin_1 = require("./client/NordAdmin");
|
|
24
24
|
Object.defineProperty(exports, "NordAdmin", { enumerable: true, get: function () { return NordAdmin_1.NordAdmin; } });
|
|
25
|
+
Object.defineProperty(exports, "AclRole", { enumerable: true, get: function () { return NordAdmin_1.AclRole; } });
|
|
25
26
|
var NordClient_1 = require("./client/NordClient");
|
|
26
27
|
Object.defineProperty(exports, "NordClient", { enumerable: true, get: function () { return NordClient_1.NordClient; } });
|
|
27
28
|
// Export utility classes
|