@bitgo-beta/sdk-core 8.2.1-beta.968 → 8.2.1-beta.969

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.
Files changed (41) hide show
  1. package/dist/src/account-lib/baseCoin/index.d.ts +1 -0
  2. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/index.js +2 -1
  4. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +76 -0
  5. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  6. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +120 -0
  7. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +66 -0
  8. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  9. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +96 -0
  10. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  11. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  12. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +34 -0
  13. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +156 -0
  14. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  15. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  16. package/dist/src/account-lib/baseCoin/messages/index.d.ts +5 -0
  17. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  18. package/dist/src/account-lib/baseCoin/messages/index.js +21 -0
  19. package/dist/src/bitgo/utils/index.d.ts +1 -0
  20. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  21. package/dist/src/bitgo/utils/index.js +2 -1
  22. package/dist/src/bitgo/utils/messageTypes.d.ts +34 -0
  23. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  24. package/dist/src/bitgo/utils/messageTypes.js +12 -0
  25. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  26. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  27. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +204 -0
  28. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  29. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  30. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +130 -0
  31. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  32. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  33. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +86 -0
  34. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +36 -0
  35. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  36. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +70 -0
  37. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  38. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  39. package/dist/test/unit/bitgo/utils/messageTypes.js +76 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +9 -9
@@ -8,4 +8,5 @@ export { TransactionType, StakingOperationTypes, AddressFormat, DotAddressFormat
8
8
  export * from './secp256k1ExtendedKeyPair';
9
9
  export * from './errors';
10
10
  export * from './iface';
11
+ export * from './messages';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAChH,cAAc,4BAA4B,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAChH,cAAc,4BAA4B,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -31,4 +31,5 @@ Object.defineProperty(exports, "DotAddressFormat", { enumerable: true, get: func
31
31
  __exportStar(require("./secp256k1ExtendedKeyPair"), exports);
32
32
  __exportStar(require("./errors"), exports);
33
33
  __exportStar(require("./iface"), exports);
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQixpRkFBZ0Y7QUFBdkUsOElBQUEsNkJBQTZCLE9BQUE7QUFHdEMsbURBQWtEO0FBQXpDLGdIQUFBLGNBQWMsT0FBQTtBQUN2QiwrQkFBZ0g7QUFBdkcsdUdBQUEsZUFBZSxPQUFBO0FBQUUsNkdBQUEscUJBQXFCLE9BQUE7QUFBRSxxR0FBQSxhQUFhLE9BQUE7QUFBRSx3R0FBQSxnQkFBZ0IsT0FBQTtBQUNoRiw2REFBMkM7QUFDM0MsMkNBQXlCO0FBQ3pCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJhc2VUcmFuc2FjdGlvbiB9IGZyb20gJy4vYmFzZVRyYW5zYWN0aW9uJztcbmV4cG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VUcmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2Jhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJy4vYmFzZVV0aWxzJztcbmV4cG9ydCB7IEJhc2VLZXlQYWlyIH0gZnJvbSAnLi9iYXNlS2V5UGFpcic7XG5leHBvcnQgeyBFZDI1NTE5S2V5UGFpciB9IGZyb20gJy4vZWQyNTUxOUtleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25UeXBlLCBTdGFraW5nT3BlcmF0aW9uVHlwZXMsIEFkZHJlc3NGb3JtYXQsIERvdEFkZHJlc3NGb3JtYXQsIERvdEFzc2V0VHlwZXMgfSBmcm9tICcuL2VudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zZWNwMjU2azFFeHRlbmRlZEtleVBhaXInO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZmFjZSc7XG4iXX0=
34
+ __exportStar(require("./messages"), exports);
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQixpRkFBZ0Y7QUFBdkUsOElBQUEsNkJBQTZCLE9BQUE7QUFHdEMsbURBQWtEO0FBQXpDLGdIQUFBLGNBQWMsT0FBQTtBQUN2QiwrQkFBZ0g7QUFBdkcsdUdBQUEsZUFBZSxPQUFBO0FBQUUsNkdBQUEscUJBQXFCLE9BQUE7QUFBRSxxR0FBQSxhQUFhLE9BQUE7QUFBRSx3R0FBQSxnQkFBZ0IsT0FBQTtBQUNoRiw2REFBMkM7QUFDM0MsMkNBQXlCO0FBQ3pCLDBDQUF3QjtBQUN4Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCYXNlVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Jhc2VUcmFuc2FjdGlvbic7XG5leHBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9iYXNlVHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi9iYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgeyBCYXNlVXRpbHMgfSBmcm9tICcuL2Jhc2VVdGlscyc7XG5leHBvcnQgeyBCYXNlS2V5UGFpciB9IGZyb20gJy4vYmFzZUtleVBhaXInO1xuZXhwb3J0IHsgRWQyNTUxOUtleVBhaXIgfSBmcm9tICcuL2VkMjU1MTlLZXlQYWlyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgU3Rha2luZ09wZXJhdGlvblR5cGVzLCBBZGRyZXNzRm9ybWF0LCBEb3RBZGRyZXNzRm9ybWF0LCBEb3RBc3NldFR5cGVzIH0gZnJvbSAnLi9lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BroadcastableMessage, MessageMetadata, MessageOptions, MessagePayload, MessageStandardType } from '../../../bitgo';
3
+ import { IMessage } from './iface';
4
+ export declare abstract class BaseMessage implements IMessage {
5
+ protected coinConfig: Readonly<CoinConfig>;
6
+ protected type: MessageStandardType;
7
+ protected payload: MessagePayload;
8
+ protected signatures: string[];
9
+ protected signers: string[];
10
+ protected signablePayload?: string | Buffer;
11
+ protected metadata?: MessageMetadata;
12
+ /**
13
+ * Base constructor.
14
+ *
15
+ * @param options Message options containing type, payload, metadata, etc.
16
+ */
17
+ protected constructor(options: MessageOptions);
18
+ /**
19
+ * Get the message type
20
+ */
21
+ getType(): MessageStandardType;
22
+ /**
23
+ * Get the message payload
24
+ */
25
+ getPayload(): MessagePayload;
26
+ /**
27
+ * Get the metadata associated with the message
28
+ */
29
+ getMetadata(): MessageMetadata | undefined;
30
+ /**
31
+ * Gets all signers addresses or public keys
32
+ */
33
+ getSigners(): string[];
34
+ /**
35
+ * Adds a signer address or public key
36
+ * @param signer The address or public key of the signer
37
+ */
38
+ addSigner(signer: string): void;
39
+ /**
40
+ * Sets signers addresses or public keys
41
+ * @param signers Array of addresses or public keys
42
+ */
43
+ setSigners(signers: string[]): void;
44
+ /**
45
+ * Gets all signatures associated with this message
46
+ */
47
+ getSignatures(): string[];
48
+ /**
49
+ * Sets signatures for this message
50
+ * @param signatures Array of signatures to set
51
+ */
52
+ setSignatures(signatures: string[]): void;
53
+ /**
54
+ * Adds a signature to this message
55
+ * @param signature The signature to add
56
+ */
57
+ addSignature(signature: string): void;
58
+ /**
59
+ * Gets the payload that should be signed
60
+ * Each message standard must implement this method
61
+ */
62
+ abstract getSignablePayload(): Promise<string | Buffer>;
63
+ /**
64
+ * Converts this message to a broadcastable format
65
+ * Uses internal signatures and signers that were previously set
66
+ * @returns A broadcastable message
67
+ */
68
+ toBroadcastFormat(): Promise<BroadcastableMessage>;
69
+ /**
70
+ * Serializes the broadcastable message to a string
71
+ * Uses internal signatures and signers that were previously set
72
+ * @returns A JSON string representation of the broadcastable message
73
+ */
74
+ toBroadcastString(): Promise<string>;
75
+ }
76
+ //# sourceMappingURL=baseMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessage.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,8BAAsB,WAAY,YAAW,QAAQ;IACnD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAErC;;;;OAIG;IACH,SAAS,aAAa,OAAO,EAAE,cAAc;IAe7C;;OAEG;IACH,OAAO,IAAI,mBAAmB;IAI9B;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS;IAI1C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAIzC;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAEvD;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAqBxD;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CAI3C"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMessage = void 0;
4
+ const bitgo_1 = require("../../../bitgo");
5
+ class BaseMessage {
6
+ /**
7
+ * Base constructor.
8
+ *
9
+ * @param options Message options containing type, payload, metadata, etc.
10
+ */
11
+ constructor(options) {
12
+ this.signatures = [];
13
+ this.signers = [];
14
+ this.coinConfig = options.coinConfig;
15
+ this.type = options.type || bitgo_1.MessageStandardType.UNKNOWN;
16
+ this.payload = options.payload || '';
17
+ this.signablePayload = options.signablePayload;
18
+ this.metadata = options.metadata || {};
19
+ if (options.signatures) {
20
+ this.signatures = [...options.signatures];
21
+ }
22
+ if (options.signers) {
23
+ this.signers = [...options.signers];
24
+ }
25
+ }
26
+ /**
27
+ * Get the message type
28
+ */
29
+ getType() {
30
+ return this.type;
31
+ }
32
+ /**
33
+ * Get the message payload
34
+ */
35
+ getPayload() {
36
+ return this.payload;
37
+ }
38
+ /**
39
+ * Get the metadata associated with the message
40
+ */
41
+ getMetadata() {
42
+ return this.metadata;
43
+ }
44
+ /**
45
+ * Gets all signers addresses or public keys
46
+ */
47
+ getSigners() {
48
+ return [...this.signers];
49
+ }
50
+ /**
51
+ * Adds a signer address or public key
52
+ * @param signer The address or public key of the signer
53
+ */
54
+ addSigner(signer) {
55
+ if (!this.signers.includes(signer)) {
56
+ this.signers.push(signer);
57
+ }
58
+ }
59
+ /**
60
+ * Sets signers addresses or public keys
61
+ * @param signers Array of addresses or public keys
62
+ */
63
+ setSigners(signers) {
64
+ this.signers = [...signers];
65
+ }
66
+ /**
67
+ * Gets all signatures associated with this message
68
+ */
69
+ getSignatures() {
70
+ return [...this.signatures];
71
+ }
72
+ /**
73
+ * Sets signatures for this message
74
+ * @param signatures Array of signatures to set
75
+ */
76
+ setSignatures(signatures) {
77
+ this.signatures = [...signatures];
78
+ }
79
+ /**
80
+ * Adds a signature to this message
81
+ * @param signature The signature to add
82
+ */
83
+ addSignature(signature) {
84
+ this.signatures.push(signature);
85
+ }
86
+ /**
87
+ * Converts this message to a broadcastable format
88
+ * Uses internal signatures and signers that were previously set
89
+ * @returns A broadcastable message
90
+ */
91
+ async toBroadcastFormat() {
92
+ if (this.signatures.length === 0) {
93
+ throw new Error('No signatures available for broadcast. Call setSignatures or addSignature first.');
94
+ }
95
+ if (this.signers.length === 0) {
96
+ throw new Error('No signers available for broadcast. Call setSigners or addSigner first.');
97
+ }
98
+ return {
99
+ type: this.type,
100
+ payload: this.payload,
101
+ signatures: this.signatures,
102
+ signers: this.signers,
103
+ metadata: {
104
+ ...(this.metadata ? JSON.parse(JSON.stringify(this.metadata)) : {}), // deep copy to avoid mutation
105
+ },
106
+ signablePayload: this.signablePayload,
107
+ };
108
+ }
109
+ /**
110
+ * Serializes the broadcastable message to a string
111
+ * Uses internal signatures and signers that were previously set
112
+ * @returns A JSON string representation of the broadcastable message
113
+ */
114
+ async toBroadcastString() {
115
+ const broadcastable = await this.toBroadcastFormat();
116
+ return JSON.stringify(broadcastable);
117
+ }
118
+ }
119
+ exports.BaseMessage = BaseMessage;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBTXdCO0FBR3hCLE1BQXNCLFdBQVc7SUFTL0I7Ozs7T0FJRztJQUNILFlBQXNCLE9BQXVCO1FBVm5DLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQVUvQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLDJCQUFtQixDQUFDLE9BQU8sQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXZDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxPQUFpQjtRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsVUFBb0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBUUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLDhCQUE4QjthQUNwRztZQUNELGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQTNJRCxrQ0EySUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBCcm9hZGNhc3RhYmxlTWVzc2FnZSxcbiAgTWVzc2FnZU1ldGFkYXRhLFxuICBNZXNzYWdlT3B0aW9ucyxcbiAgTWVzc2FnZVBheWxvYWQsXG4gIE1lc3NhZ2VTdGFuZGFyZFR5cGUsXG59IGZyb20gJy4uLy4uLy4uL2JpdGdvJztcbmltcG9ydCB7IElNZXNzYWdlIH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWVzc2FnZSBpbXBsZW1lbnRzIElNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+O1xuICBwcm90ZWN0ZWQgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgcHJvdGVjdGVkIHBheWxvYWQ6IE1lc3NhZ2VQYXlsb2FkO1xuICBwcm90ZWN0ZWQgc2lnbmF0dXJlczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNpZ25lcnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBzaWduYWJsZVBheWxvYWQ/OiBzdHJpbmcgfCBCdWZmZXI7XG4gIHByb3RlY3RlZCBtZXRhZGF0YT86IE1lc3NhZ2VNZXRhZGF0YTtcblxuICAvKipcbiAgICogQmFzZSBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgTWVzc2FnZSBvcHRpb25zIGNvbnRhaW5pbmcgdHlwZSwgcGF5bG9hZCwgbWV0YWRhdGEsIGV0Yy5cbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihvcHRpb25zOiBNZXNzYWdlT3B0aW9ucykge1xuICAgIHRoaXMuY29pbkNvbmZpZyA9IG9wdGlvbnMuY29pbkNvbmZpZztcbiAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGUgfHwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOO1xuICAgIHRoaXMucGF5bG9hZCA9IG9wdGlvbnMucGF5bG9hZCB8fCAnJztcbiAgICB0aGlzLnNpZ25hYmxlUGF5bG9hZCA9IG9wdGlvbnMuc2lnbmFibGVQYXlsb2FkO1xuICAgIHRoaXMubWV0YWRhdGEgPSBvcHRpb25zLm1ldGFkYXRhIHx8IHt9O1xuXG4gICAgaWYgKG9wdGlvbnMuc2lnbmF0dXJlcykge1xuICAgICAgdGhpcy5zaWduYXR1cmVzID0gWy4uLm9wdGlvbnMuc2lnbmF0dXJlc107XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNpZ25lcnMpIHtcbiAgICAgIHRoaXMuc2lnbmVycyA9IFsuLi5vcHRpb25zLnNpZ25lcnNdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1lc3NhZ2UgdHlwZVxuICAgKi9cbiAgZ2V0VHlwZSgpOiBNZXNzYWdlU3RhbmRhcmRUeXBlIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWVzc2FnZSBwYXlsb2FkXG4gICAqL1xuICBnZXRQYXlsb2FkKCk6IE1lc3NhZ2VQYXlsb2FkIHtcbiAgICByZXR1cm4gdGhpcy5wYXlsb2FkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXNzYWdlXG4gICAqL1xuICBnZXRNZXRhZGF0YSgpOiBNZXNzYWdlTWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHNpZ25lcnMgYWRkcmVzc2VzIG9yIHB1YmxpYyBrZXlzXG4gICAqL1xuICBnZXRTaWduZXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuc2lnbmVyc107XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNpZ25lciBhZGRyZXNzIG9yIHB1YmxpYyBrZXlcbiAgICogQHBhcmFtIHNpZ25lciBUaGUgYWRkcmVzcyBvciBwdWJsaWMga2V5IG9mIHRoZSBzaWduZXJcbiAgICovXG4gIGFkZFNpZ25lcihzaWduZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaWduZXJzLmluY2x1ZGVzKHNpZ25lcikpIHtcbiAgICAgIHRoaXMuc2lnbmVycy5wdXNoKHNpZ25lcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2lnbmVycyBhZGRyZXNzZXMgb3IgcHVibGljIGtleXNcbiAgICogQHBhcmFtIHNpZ25lcnMgQXJyYXkgb2YgYWRkcmVzc2VzIG9yIHB1YmxpYyBrZXlzXG4gICAqL1xuICBzZXRTaWduZXJzKHNpZ25lcnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5zaWduZXJzID0gWy4uLnNpZ25lcnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIHNpZ25hdHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWVzc2FnZVxuICAgKi9cbiAgZ2V0U2lnbmF0dXJlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNpZ25hdHVyZXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2lnbmF0dXJlcyBmb3IgdGhpcyBtZXNzYWdlXG4gICAqIEBwYXJhbSBzaWduYXR1cmVzIEFycmF5IG9mIHNpZ25hdHVyZXMgdG8gc2V0XG4gICAqL1xuICBzZXRTaWduYXR1cmVzKHNpZ25hdHVyZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5zaWduYXR1cmVzID0gWy4uLnNpZ25hdHVyZXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzaWduYXR1cmUgdG8gdGhpcyBtZXNzYWdlXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSB0byBhZGRcbiAgICovXG4gIGFkZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcGF5bG9hZCB0aGF0IHNob3VsZCBiZSBzaWduZWRcbiAgICogRWFjaCBtZXNzYWdlIHN0YW5kYXJkIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kXG4gICAqL1xuICBhYnN0cmFjdCBnZXRTaWduYWJsZVBheWxvYWQoKTogUHJvbWlzZTxzdHJpbmcgfCBCdWZmZXI+O1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGlzIG1lc3NhZ2UgdG8gYSBicm9hZGNhc3RhYmxlIGZvcm1hdFxuICAgKiBVc2VzIGludGVybmFsIHNpZ25hdHVyZXMgYW5kIHNpZ25lcnMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgc2V0XG4gICAqIEByZXR1cm5zIEEgYnJvYWRjYXN0YWJsZSBtZXNzYWdlXG4gICAqL1xuICBhc3luYyB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBQcm9taXNlPEJyb2FkY2FzdGFibGVNZXNzYWdlPiB7XG4gICAgaWYgKHRoaXMuc2lnbmF0dXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2lnbmF0dXJlcyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduYXR1cmVzIG9yIGFkZFNpZ25hdHVyZSBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaWduZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzaWduZXJzIGF2YWlsYWJsZSBmb3IgYnJvYWRjYXN0LiBDYWxsIHNldFNpZ25lcnMgb3IgYWRkU2lnbmVyIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQsXG4gICAgICBzaWduYXR1cmVzOiB0aGlzLnNpZ25hdHVyZXMsXG4gICAgICBzaWduZXJzOiB0aGlzLnNpZ25lcnMsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAuLi4odGhpcy5tZXRhZGF0YSA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5tZXRhZGF0YSkpIDoge30pLCAvLyBkZWVwIGNvcHkgdG8gYXZvaWQgbXV0YXRpb25cbiAgICAgIH0sXG4gICAgICBzaWduYWJsZVBheWxvYWQ6IHRoaXMuc2lnbmFibGVQYXlsb2FkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplcyB0aGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIHRvIGEgc3RyaW5nXG4gICAqIFVzZXMgaW50ZXJuYWwgc2lnbmF0dXJlcyBhbmQgc2lnbmVycyB0aGF0IHdlcmUgcHJldmlvdXNseSBzZXRcbiAgICogQHJldHVybnMgQSBKU09OIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlXG4gICAqL1xuICBhc3luYyB0b0Jyb2FkY2FzdFN0cmluZygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGJyb2FkY2FzdGFibGUgPSBhd2FpdCB0aGlzLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJyb2FkY2FzdGFibGUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { BroadcastableMessage, MessagePayload, MessageStandardType } from '../../../bitgo';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { IMessage, IMessageBuilder } from './iface';
4
+ /**
5
+ * Base Message Builder
6
+ */
7
+ export declare abstract class BaseMessageBuilder implements IMessageBuilder {
8
+ protected coinConfig: Readonly<CoinConfig>;
9
+ protected payload: MessagePayload;
10
+ protected type: MessageStandardType;
11
+ protected signatures: string[];
12
+ protected signers: string[];
13
+ protected metadata?: Record<string, unknown>;
14
+ protected digest?: string;
15
+ /**
16
+ * Base constructor.
17
+ * @param coinConfig BaseCoin from statics library
18
+ * @param messageType The type of message this builder creates, defaults to UNKNOWN
19
+ */
20
+ protected constructor(coinConfig: Readonly<CoinConfig>, messageType?: MessageStandardType);
21
+ /**
22
+ * Sets the message payload to be used when building the message
23
+ * @param payload The message payload (string, JSON, etc.)
24
+ * @returns The builder instance for chaining
25
+ */
26
+ setPayload(payload: MessagePayload): IMessageBuilder;
27
+ /**
28
+ * Sets metadata for the message
29
+ * @param metadata Additional metadata for the message
30
+ * @returns The builder instance for chaining
31
+ */
32
+ setMetadata(metadata: Record<string, unknown>): IMessageBuilder;
33
+ /**
34
+ * Gets the current message payload
35
+ * @returns The current message payload
36
+ */
37
+ getPayload(): MessagePayload | undefined;
38
+ /**
39
+ * Gets the current metadata
40
+ * @returns The current metadata
41
+ */
42
+ getMetadata(): Record<string, unknown> | undefined;
43
+ getType(): MessageStandardType;
44
+ setType(value: MessageStandardType): IMessageBuilder;
45
+ getSignatures(): string[];
46
+ setSignatures(value: string[]): IMessageBuilder;
47
+ addSignature(signature: string): IMessageBuilder;
48
+ getSigners(): string[];
49
+ setSigners(value: string[]): IMessageBuilder;
50
+ addSigner(signer: string): IMessageBuilder;
51
+ getDigest(): string | undefined;
52
+ setDigest(value: string): IMessageBuilder;
53
+ /**
54
+ * Builds a message using the previously set payload and metadata
55
+ * This abstract method must be implemented by each specific builder
56
+ * @returns A Promise resolving to the built IMessage
57
+ */
58
+ abstract build(): Promise<IMessage>;
59
+ /**
60
+ * Parse a broadcastable message back into a message
61
+ * @param broadcastMessage The broadcastable message to parse
62
+ * @returns The parsed message
63
+ */
64
+ abstract fromBroadcastFormat(broadcastMessage: BroadcastableMessage): Promise<IMessage>;
65
+ }
66
+ //# sourceMappingURL=baseMessageBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,8BAAsB,kBAAmB,YAAW,eAAe;IACjE,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,OAAO,EAAE,cAAc,CAAM;IACvC,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,aACP,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,WAAW,GAAE,mBAAiD;IAMhE;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;IAK3D;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;IAKtE;;;OAGG;IACI,UAAU,IAAI,cAAc,GAAG,SAAS;IAI/C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIlD,OAAO,IAAI,mBAAmB;IAI9B,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;IAKpD,aAAa,IAAI,MAAM,EAAE;IAIzB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe;IAK/C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAOhD,UAAU,IAAI,MAAM,EAAE;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe;IAK5C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAO1C,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAKhD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;CACxF"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMessageBuilder = void 0;
4
+ const bitgo_1 = require("../../../bitgo");
5
+ /**
6
+ * Base Message Builder
7
+ */
8
+ class BaseMessageBuilder {
9
+ /**
10
+ * Base constructor.
11
+ * @param coinConfig BaseCoin from statics library
12
+ * @param messageType The type of message this builder creates, defaults to UNKNOWN
13
+ */
14
+ constructor(coinConfig, messageType = bitgo_1.MessageStandardType.UNKNOWN) {
15
+ this.payload = '';
16
+ this.signatures = [];
17
+ this.signers = [];
18
+ this.metadata = {};
19
+ this.coinConfig = coinConfig;
20
+ this.type = messageType;
21
+ }
22
+ /**
23
+ * Sets the message payload to be used when building the message
24
+ * @param payload The message payload (string, JSON, etc.)
25
+ * @returns The builder instance for chaining
26
+ */
27
+ setPayload(payload) {
28
+ this.payload = payload;
29
+ return this;
30
+ }
31
+ /**
32
+ * Sets metadata for the message
33
+ * @param metadata Additional metadata for the message
34
+ * @returns The builder instance for chaining
35
+ */
36
+ setMetadata(metadata) {
37
+ this.metadata = metadata;
38
+ return this;
39
+ }
40
+ /**
41
+ * Gets the current message payload
42
+ * @returns The current message payload
43
+ */
44
+ getPayload() {
45
+ return this.payload;
46
+ }
47
+ /**
48
+ * Gets the current metadata
49
+ * @returns The current metadata
50
+ */
51
+ getMetadata() {
52
+ return this.metadata;
53
+ }
54
+ getType() {
55
+ return this.type;
56
+ }
57
+ setType(value) {
58
+ this.type = value;
59
+ return this;
60
+ }
61
+ getSignatures() {
62
+ return this.signatures;
63
+ }
64
+ setSignatures(value) {
65
+ this.signatures = value;
66
+ return this;
67
+ }
68
+ addSignature(signature) {
69
+ if (!this.signatures.includes(signature)) {
70
+ this.signatures.push(signature);
71
+ }
72
+ return this;
73
+ }
74
+ getSigners() {
75
+ return this.signers;
76
+ }
77
+ setSigners(value) {
78
+ this.signers = value;
79
+ return this;
80
+ }
81
+ addSigner(signer) {
82
+ if (!this.signers.includes(signer)) {
83
+ this.signers.push(signer);
84
+ }
85
+ return this;
86
+ }
87
+ getDigest() {
88
+ return this.digest;
89
+ }
90
+ setDigest(value) {
91
+ this.digest = value;
92
+ return this;
93
+ }
94
+ }
95
+ exports.BaseMessageBuilder = BaseMessageBuilder;
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMkY7QUFJM0Y7O0dBRUc7QUFDSCxNQUFzQixrQkFBa0I7SUFTdEM7Ozs7T0FJRztJQUNILFlBQ0UsVUFBZ0MsRUFDaEMsY0FBbUMsMkJBQW1CLENBQUMsT0FBTztRQWR0RCxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUE2QixFQUFFLENBQUM7UUFZaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsT0FBdUI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxRQUFpQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQTBCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBZTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FlRjtBQXpIRCxnREF5SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm9hZGNhc3RhYmxlTWVzc2FnZSwgTWVzc2FnZVBheWxvYWQsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9iaXRnbyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBJTWVzc2FnZSwgSU1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnLi9pZmFjZSc7XG5cbi8qKlxuICogQmFzZSBNZXNzYWdlIEJ1aWxkZXJcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNZXNzYWdlQnVpbGRlciBpbXBsZW1lbnRzIElNZXNzYWdlQnVpbGRlciB7XG4gIHByb3RlY3RlZCBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcbiAgcHJvdGVjdGVkIHBheWxvYWQ6IE1lc3NhZ2VQYXlsb2FkID0gJyc7XG4gIHByb3RlY3RlZCB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBwcm90ZWN0ZWQgc2lnbmF0dXJlczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNpZ25lcnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIHByb3RlY3RlZCBkaWdlc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhc2UgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSBjb2luQ29uZmlnIEJhc2VDb2luIGZyb20gc3RhdGljcyBsaWJyYXJ5XG4gICAqIEBwYXJhbSBtZXNzYWdlVHlwZSBUaGUgdHlwZSBvZiBtZXNzYWdlIHRoaXMgYnVpbGRlciBjcmVhdGVzLCBkZWZhdWx0cyB0byBVTktOT1dOXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sXG4gICAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUgPSBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV05cbiAgKSB7XG4gICAgdGhpcy5jb2luQ29uZmlnID0gY29pbkNvbmZpZztcbiAgICB0aGlzLnR5cGUgPSBtZXNzYWdlVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtZXNzYWdlIHBheWxvYWQgdG8gYmUgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBtZXNzYWdlIHBheWxvYWQgKHN0cmluZywgSlNPTiwgZXRjLilcbiAgICogQHJldHVybnMgVGhlIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0UGF5bG9hZChwYXlsb2FkOiBNZXNzYWdlUGF5bG9hZCk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIG1ldGFkYXRhIGZvciB0aGUgbWVzc2FnZVxuICAgKiBAcGFyYW0gbWV0YWRhdGEgQWRkaXRpb25hbCBtZXRhZGF0YSBmb3IgdGhlIG1lc3NhZ2VcbiAgICogQHJldHVybnMgVGhlIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YWRhdGEobWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBtZXNzYWdlIHBheWxvYWRcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgbWVzc2FnZSBwYXlsb2FkXG4gICAqL1xuICBwdWJsaWMgZ2V0UGF5bG9hZCgpOiBNZXNzYWdlUGF5bG9hZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucGF5bG9hZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IG1ldGFkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0TWV0YWRhdGEoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhO1xuICB9XG5cbiAgcHVibGljIGdldFR5cGUoKTogTWVzc2FnZVN0YW5kYXJkVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUeXBlKHZhbHVlOiBNZXNzYWdlU3RhbmRhcmRUeXBlKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaWduYXR1cmVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zaWduYXR1cmVzO1xuICB9XG5cbiAgcHVibGljIHNldFNpZ25hdHVyZXModmFsdWU6IHN0cmluZ1tdKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLnNpZ25hdHVyZXMgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIGlmICghdGhpcy5zaWduYXR1cmVzLmluY2x1ZGVzKHNpZ25hdHVyZSkpIHtcbiAgICAgIHRoaXMuc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldFNpZ25lcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnNpZ25lcnM7XG4gIH1cblxuICBwdWJsaWMgc2V0U2lnbmVycyh2YWx1ZTogc3RyaW5nW10pOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIHRoaXMuc2lnbmVycyA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFkZFNpZ25lcihzaWduZXI6IHN0cmluZyk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLnNpZ25lcnMuaW5jbHVkZXMoc2lnbmVyKSkge1xuICAgICAgdGhpcy5zaWduZXJzLnB1c2goc2lnbmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlnZXN0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0O1xuICB9XG5cbiAgcHVibGljIHNldERpZ2VzdCh2YWx1ZTogc3RyaW5nKTogSU1lc3NhZ2VCdWlsZGVyIHtcbiAgICB0aGlzLmRpZ2VzdCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIG1lc3NhZ2UgdXNpbmcgdGhlIHByZXZpb3VzbHkgc2V0IHBheWxvYWQgYW5kIG1ldGFkYXRhXG4gICAqIFRoaXMgYWJzdHJhY3QgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgZWFjaCBzcGVjaWZpYyBidWlsZGVyXG4gICAqIEByZXR1cm5zIEEgUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJ1aWx0IElNZXNzYWdlXG4gICAqL1xuICBhYnN0cmFjdCBidWlsZCgpOiBQcm9taXNlPElNZXNzYWdlPjtcblxuICAvKipcbiAgICogUGFyc2UgYSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UgYmFjayBpbnRvIGEgbWVzc2FnZVxuICAgKiBAcGFyYW0gYnJvYWRjYXN0TWVzc2FnZSBUaGUgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIHRvIHBhcnNlXG4gICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbWVzc2FnZVxuICAgKi9cbiAgYWJzdHJhY3QgZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSk6IFByb21pc2U8SU1lc3NhZ2U+O1xufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { IMessageBuilder, IMessageBuilderFactory } from './iface';
3
+ import { BroadcastableMessage, MessageStandardType } from '../../../bitgo';
4
+ /**
5
+ * Base Message Builder
6
+ */
7
+ export declare abstract class BaseMessageBuilderFactory implements IMessageBuilderFactory {
8
+ protected coinConfig: Readonly<CoinConfig>;
9
+ /**
10
+ * Base constructor.
11
+ * @param coinConfig BaseCoin from statics library
12
+ */
13
+ protected constructor(coinConfig: Readonly<CoinConfig>);
14
+ /**
15
+ * Gets a message builder for the specified message type
16
+ * @param type The type of message to build
17
+ * @returns A message builder instance for the specified type
18
+ */
19
+ abstract getMessageBuilder(type: MessageStandardType): IMessageBuilder;
20
+ /**
21
+ * Gets a message builder from a broadcastable message
22
+ * @param broadcastMessage The broadcastable message
23
+ * @returns A message builder instance for the broadcastable message type
24
+ */
25
+ fromBroadcastFormat(broadcastMessage: BroadcastableMessage): IMessageBuilder;
26
+ /**
27
+ * Parses a broadcastable message and gets the message builder based on the message type.
28
+ * @param broadcastString The broadcastable message to parse
29
+ * @returns A message builder instance for the parsed broadcastable message type
30
+ */
31
+ fromBroadcastString(broadcastString: string): IMessageBuilder;
32
+ }
33
+ //# sourceMappingURL=baseMessageBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/baseMessageBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;GAEG;AACH,8BAAsB,yBAA0B,YAAW,sBAAsB;IAC/E,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,aAAa,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAItD;;;;OAIG;aACa,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;IAE7E;;;;OAIG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,eAAe;IAI5E;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe;CAI9D"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMessageBuilderFactory = void 0;
4
+ /**
5
+ * Base Message Builder
6
+ */
7
+ class BaseMessageBuilderFactory {
8
+ /**
9
+ * Base constructor.
10
+ * @param coinConfig BaseCoin from statics library
11
+ */
12
+ constructor(coinConfig) {
13
+ this.coinConfig = coinConfig;
14
+ }
15
+ /**
16
+ * Gets a message builder from a broadcastable message
17
+ * @param broadcastMessage The broadcastable message
18
+ * @returns A message builder instance for the broadcastable message type
19
+ */
20
+ fromBroadcastFormat(broadcastMessage) {
21
+ return this.getMessageBuilder(broadcastMessage.type);
22
+ }
23
+ /**
24
+ * Parses a broadcastable message and gets the message builder based on the message type.
25
+ * @param broadcastString The broadcastable message to parse
26
+ * @returns A message builder instance for the parsed broadcastable message type
27
+ */
28
+ fromBroadcastString(broadcastString) {
29
+ const broadcastMessage = JSON.parse(broadcastString);
30
+ return this.fromBroadcastFormat(broadcastMessage);
31
+ }
32
+ }
33
+ exports.BaseMessageBuilderFactory = BaseMessageBuilderFactory;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9iYXNlQ29pbi9tZXNzYWdlcy9iYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsTUFBc0IseUJBQXlCO0lBRzdDOzs7T0FHRztJQUNILFlBQXNCLFVBQWdDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFTRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsZ0JBQXNDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsZUFBdUI7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBeUIsQ0FBQztRQUM3RSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQXBDRCw4REFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBJTWVzc2FnZUJ1aWxkZXIsIElNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vYml0Z28nO1xuXG4vKipcbiAqIEJhc2UgTWVzc2FnZSBCdWlsZGVyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5IGltcGxlbWVudHMgSU1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB7XG4gIHByb3RlY3RlZCBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcblxuICAvKipcbiAgICogQmFzZSBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIGNvaW5Db25maWcgQmFzZUNvaW4gZnJvbSBzdGF0aWNzIGxpYnJhcnlcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHRoaXMuY29pbkNvbmZpZyA9IGNvaW5Db25maWc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIG1lc3NhZ2UgYnVpbGRlciBmb3IgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHR5cGVcbiAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgbWVzc2FnZSB0byBidWlsZFxuICAgKiBAcmV0dXJucyBBIG1lc3NhZ2UgYnVpbGRlciBpbnN0YW5jZSBmb3IgdGhlIHNwZWNpZmllZCB0eXBlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TWVzc2FnZUJ1aWxkZXIodHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZSk6IElNZXNzYWdlQnVpbGRlcjtcblxuICAvKipcbiAgICogR2V0cyBhIG1lc3NhZ2UgYnVpbGRlciBmcm9tIGEgYnJvYWRjYXN0YWJsZSBtZXNzYWdlXG4gICAqIEBwYXJhbSBicm9hZGNhc3RNZXNzYWdlIFRoZSBicm9hZGNhc3RhYmxlIG1lc3NhZ2VcbiAgICogQHJldHVybnMgQSBtZXNzYWdlIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIHRoZSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UgdHlwZVxuICAgKi9cbiAgZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZUJ1aWxkZXIoYnJvYWRjYXN0TWVzc2FnZS50eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgYSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UgYW5kIGdldHMgdGhlIG1lc3NhZ2UgYnVpbGRlciBiYXNlZCBvbiB0aGUgbWVzc2FnZSB0eXBlLlxuICAgKiBAcGFyYW0gYnJvYWRjYXN0U3RyaW5nIFRoZSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UgdG8gcGFyc2VcbiAgICogQHJldHVybnMgQSBtZXNzYWdlIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIHRoZSBwYXJzZWQgYnJvYWRjYXN0YWJsZSBtZXNzYWdlIHR5cGVcbiAgICovXG4gIGZyb21Ccm9hZGNhc3RTdHJpbmcoYnJvYWRjYXN0U3RyaW5nOiBzdHJpbmcpOiBJTWVzc2FnZUJ1aWxkZXIge1xuICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2UgPSBKU09OLnBhcnNlKGJyb2FkY2FzdFN0cmluZykgYXMgQnJvYWRjYXN0YWJsZU1lc3NhZ2U7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,156 @@
1
+ import { BroadcastableMessage, MessageMetadata, MessagePayload, MessageStandardType } from '../../../bitgo';
2
+ /**
3
+ * Represents a built message that can be signed
4
+ */
5
+ export interface IMessage {
6
+ /**
7
+ * Get the message type
8
+ */
9
+ getType(): MessageStandardType;
10
+ /**
11
+ * Get the message payload
12
+ */
13
+ getPayload(): MessagePayload;
14
+ /**
15
+ * Get the metadata associated with the message
16
+ */
17
+ getMetadata(): MessageMetadata | undefined;
18
+ /**
19
+ * Gets all signers addresses or public keys
20
+ */
21
+ getSigners(): string[];
22
+ /**
23
+ * Adds a signer address or public key
24
+ * @param signer The address or public key of the signer
25
+ */
26
+ addSigner(signer: string): void;
27
+ /**
28
+ * Sets signers addresses or public keys
29
+ * @param signers Array of addresses or public keys
30
+ */
31
+ setSigners(signers: string[]): void;
32
+ /**
33
+ * Gets all signatures associated with this message
34
+ */
35
+ getSignatures(): string[];
36
+ /**
37
+ * Sets signatures for this message
38
+ * @param signatures Array of signatures to set
39
+ */
40
+ setSignatures(signatures: string[]): void;
41
+ /**
42
+ * Adds a signature to this message
43
+ * @param signature The signature to add
44
+ */
45
+ addSignature(signature: string): void;
46
+ /**
47
+ * Returns the payload that should be signed
48
+ * This might be different from the original payload in some standards
49
+ * For example, in EIP-712, this would be the encoded typed data hash
50
+ */
51
+ getSignablePayload(): Promise<string | Buffer>;
52
+ /**
53
+ * Creates a broadcastable message format that includes the signatures
54
+ * Uses internal signatures and signers that were previously set
55
+ * @returns A serializable format for broadcasting
56
+ */
57
+ toBroadcastFormat(): Promise<BroadcastableMessage>;
58
+ /**
59
+ * Serializes the broadcastable message to a string
60
+ * Uses internal signatures and signers that were previously set
61
+ * @returns A JSON string representation of the broadcastable message
62
+ */
63
+ toBroadcastString(): Promise<string>;
64
+ }
65
+ /**
66
+ * Core interface for message building strategies
67
+ */
68
+ export interface IMessageBuilder {
69
+ /**
70
+ * Sets the message payload to be used when building the message
71
+ * @param payload The message payload (string, JSON, etc.)
72
+ * @returns The builder instance for chaining
73
+ */
74
+ setPayload(payload: MessagePayload): IMessageBuilder;
75
+ /**
76
+ * Sets metadata for the message
77
+ * @param metadata Additional metadata for the message
78
+ * @returns The builder instance for chaining
79
+ */
80
+ setMetadata(metadata: Record<string, unknown>): IMessageBuilder;
81
+ /**
82
+ * Sets the signatures to the message
83
+ * @param signatures The signatures to add
84
+ * @returns The builder instance for chaining
85
+ */
86
+ setSignatures(signatures: string[]): IMessageBuilder;
87
+ /**
88
+ * Adds a signature to the message
89
+ * @param signature The signature to add
90
+ * @returns The builder instance for chaining
91
+ */
92
+ addSignature(signature: string): IMessageBuilder;
93
+ /**
94
+ * Sets the signers for the message
95
+ * @param signers Array of addresses or public keys
96
+ * @returns The builder instance for chaining
97
+ */
98
+ setSigners(signers: string[]): IMessageBuilder;
99
+ /**
100
+ * Adds a signer address or public key
101
+ * @param signer The address or public key of the signer
102
+ * @returns The builder instance for chaining
103
+ */
104
+ addSigner(signer: string): IMessageBuilder;
105
+ /**
106
+ * Gets the current message payload
107
+ * @returns The current message payload
108
+ */
109
+ getPayload(): MessagePayload | undefined;
110
+ /**
111
+ * Gets the current metadata
112
+ * @returns The current metadata
113
+ */
114
+ getMetadata(): Record<string, unknown> | undefined;
115
+ /**
116
+ * Gets the type of message being built
117
+ * @returns The type of message standard
118
+ */
119
+ getType(): MessageStandardType;
120
+ /**
121
+ * Builds a message using the previously set payload and metadata
122
+ * @returns A Promise resolving to the built SignableMessage
123
+ */
124
+ build(): Promise<IMessage>;
125
+ /**
126
+ * Parse a broadcastable message back into a message and signatures
127
+ * @param message The broadcastable message to parse
128
+ * @returns The parsed message and signature
129
+ */
130
+ fromBroadcastFormat(message: BroadcastableMessage): Promise<IMessage>;
131
+ }
132
+ /**
133
+ * Factory interface for creating message builders
134
+ */
135
+ export interface IMessageBuilderFactory {
136
+ /**
137
+ * Gets a message builder for the specified message type
138
+ * @param type The type of message to build
139
+ * @returns A message builder instance for the specified type
140
+ */
141
+ getMessageBuilder(type: MessageStandardType): IMessageBuilder;
142
+ /**
143
+ * Parse a broadcastable message back into a signable message and signature
144
+ * This factory method will automatically choose the correct builder based on the message type
145
+ * @param broadcastMessage The broadcastable message to parse
146
+ * @returns A message builder instance for the parsed specified type
147
+ */
148
+ fromBroadcastFormat(broadcastMessage: BroadcastableMessage): IMessageBuilder;
149
+ /**
150
+ * Parse a broadcastable message string back into a signable message and signature
151
+ * @param broadcastString The JSON string representation of the broadcast message
152
+ * @returns A message builder instance for the parsed specified type
153
+ */
154
+ fromBroadcastString(broadcastString: string): IMessageBuilder;
155
+ }
156
+ //# sourceMappingURL=iface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../../src/account-lib/baseCoin/messages/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE5G;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,OAAO,IAAI,mBAAmB,CAAC;IAE/B;;OAEG;IACH,UAAU,IAAI,cAAc,CAAC;IAE7B;;OAEG;IACH,WAAW,IAAI,eAAe,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1C;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;;;OAIG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnD;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC;IAErD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC;IAEhE;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAErD;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IAEjD;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IAE/C;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;IAE3C;;;OAGG;IACH,UAAU,IAAI,cAAc,GAAG,SAAS,CAAC;IAEzC;;;OAGG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAEnD;;;OAGG;IACH,OAAO,IAAI,mBAAmB,CAAC;IAE/B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAE9D;;;;;OAKG;IACH,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,eAAe,CAAC;IAE7E;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,CAAC;CAC/D"}