@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.
- package/dist/src/account-lib/baseCoin/index.d.ts +1 -0
- package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/index.js +2 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +76 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.js +120 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +66 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +96 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +34 -0
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts +156 -0
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts +5 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/index.js +21 -0
- package/dist/src/bitgo/utils/index.d.ts +1 -0
- package/dist/src/bitgo/utils/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/index.js +2 -1
- package/dist/src/bitgo/utils/messageTypes.d.ts +34 -0
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/src/bitgo/utils/messageTypes.js +12 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +204 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +130 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +86 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +36 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +70 -0
- package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/messageTypes.js +76 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -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
|
-
|
|
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"}
|