@bitgo/sdk-core 35.4.1 → 35.5.0

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 (57) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  3. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  5. package/dist/src/account-lib/baseCoin/index.d.ts +1 -0
  6. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  7. package/dist/src/account-lib/baseCoin/index.js +2 -1
  8. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +76 -0
  9. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  10. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +120 -0
  11. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +66 -0
  12. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  13. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +96 -0
  14. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  15. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  16. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +34 -0
  17. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +156 -0
  18. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  19. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  20. package/dist/src/account-lib/baseCoin/messages/index.d.ts +5 -0
  21. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  22. package/dist/src/account-lib/baseCoin/messages/index.js +21 -0
  23. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +129 -0
  24. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  25. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  26. package/dist/src/bitgo/staking/goStakingWallet.d.ts +27 -1
  27. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -1
  28. package/dist/src/bitgo/staking/goStakingWallet.js +52 -1
  29. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +8 -35
  30. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -1
  31. package/dist/src/bitgo/staking/iGoStakingWallet.js +1 -1
  32. package/dist/src/bitgo/staking/index.d.ts +1 -0
  33. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  34. package/dist/src/bitgo/staking/index.js +2 -1
  35. package/dist/src/bitgo/utils/index.d.ts +1 -0
  36. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  37. package/dist/src/bitgo/utils/index.js +2 -1
  38. package/dist/src/bitgo/utils/messageTypes.d.ts +34 -0
  39. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  40. package/dist/src/bitgo/utils/messageTypes.js +12 -0
  41. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  42. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  43. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +204 -0
  44. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  45. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  46. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +130 -0
  47. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  48. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  49. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +86 -0
  50. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +36 -0
  51. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  52. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +70 -0
  53. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  54. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  55. package/dist/test/unit/bitgo/utils/messageTypes.js +76 -0
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +4 -4
@@ -49,4 +49,5 @@ __exportStar(require("./util"), exports);
49
49
  __exportStar(require("./decode"), exports);
50
50
  __exportStar(require("./notEmpty"), exports);
51
51
  __exportStar(require("./wallet"), exports);
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBYXRDLG9DQUFZO0FBWHJCLHlEQUF1QztBQUN2Qyw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsd0NBQXNCO0FBQ3RCLHlDQUF1QjtBQUN2QiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9wZW5wZ3BVdGlscyBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RVdHhvQ29pblV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tcGNVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb21pc2UtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmlwbGUnO1xuZXhwb3J0ICogZnJvbSAnLi90c3MnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vbm90RW1wdHknO1xuZXhwb3J0ICogZnJvbSAnLi93YWxsZXQnO1xuXG5leHBvcnQgeyBvcGVucGdwVXRpbHMgfTtcbiJdfQ==
52
+ __exportStar(require("./messageTypes"), exports);
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBY3RDLG9DQUFZO0FBWnJCLHlEQUF1QztBQUN2Qyw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQywyQ0FBeUI7QUFDekIsd0NBQXNCO0FBQ3RCLHlDQUF1QjtBQUN2QiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6QixpREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcGVucGdwVXRpbHMgZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW5VdGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbXBjVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9taXNlLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJpcGxlJztcbmV4cG9ydCAqIGZyb20gJy4vdHNzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL25vdEVtcHR5JztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZVR5cGVzJztcblxuZXhwb3J0IHsgb3BlbnBncFV0aWxzIH07XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
+ /**
3
+ * Supported message signing standard types
4
+ */
5
+ export declare enum MessageStandardType {
6
+ UNKNOWN = "UNKNOWN",
7
+ EIP191 = "EIP191"
8
+ }
9
+ export type MessagePayload = string;
10
+ export type MessageMetadata = Record<string, unknown>;
11
+ /**
12
+ * Format for broadcasting a signed message
13
+ */
14
+ export interface BroadcastableMessage {
15
+ type: MessageStandardType;
16
+ payload: MessagePayload;
17
+ signatures: string[];
18
+ signers: string[];
19
+ metadata?: MessageMetadata;
20
+ signablePayload?: string | Buffer;
21
+ }
22
+ /**
23
+ * Options to create a message
24
+ */
25
+ export interface MessageOptions {
26
+ coinConfig: Readonly<CoinConfig>;
27
+ payload: MessagePayload;
28
+ type?: MessageStandardType;
29
+ signablePayload?: string | Buffer;
30
+ metadata?: MessageMetadata;
31
+ signatures?: string[];
32
+ signers?: string[];
33
+ }
34
+ //# sourceMappingURL=messageTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageTypes.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/messageTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageStandardType = void 0;
4
+ /**
5
+ * Supported message signing standard types
6
+ */
7
+ var MessageStandardType;
8
+ (function (MessageStandardType) {
9
+ MessageStandardType["UNKNOWN"] = "UNKNOWN";
10
+ MessageStandardType["EIP191"] = "EIP191";
11
+ })(MessageStandardType || (exports.MessageStandardType = MessageStandardType = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL21lc3NhZ2VUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNILElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUM3QiwwQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFHOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG4vKipcbiAqIFN1cHBvcnRlZCBtZXNzYWdlIHNpZ25pbmcgc3RhbmRhcmQgdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gTWVzc2FnZVN0YW5kYXJkVHlwZSB7XG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG4gIEVJUDE5MSA9ICdFSVAxOTEnLFxufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlUGF5bG9hZCA9IHN0cmluZztcbmV4cG9ydCB0eXBlIE1lc3NhZ2VNZXRhZGF0YSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIEZvcm1hdCBmb3IgYnJvYWRjYXN0aW5nIGEgc2lnbmVkIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcm9hZGNhc3RhYmxlTWVzc2FnZSB7XG4gIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHBheWxvYWQ6IE1lc3NhZ2VQYXlsb2FkO1xuICBzaWduYXR1cmVzOiBzdHJpbmdbXTtcbiAgc2lnbmVyczogc3RyaW5nW107IC8vIGxpc3Qgb2YgYWRkcmVzc2VzIG9yIHB1YmxpYyBrZXlzIG9mIHRoZSBzaWduZXJzXG4gIG1ldGFkYXRhPzogTWVzc2FnZU1ldGFkYXRhO1xuICBzaWduYWJsZVBheWxvYWQ/OiBzdHJpbmcgfCBCdWZmZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBjcmVhdGUgYSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU9wdGlvbnMge1xuICBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcbiAgcGF5bG9hZDogTWVzc2FnZVBheWxvYWQ7XG4gIHR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduYWJsZVBheWxvYWQ/OiBzdHJpbmcgfCBCdWZmZXI7XG4gIG1ldGFkYXRhPzogTWVzc2FnZU1ldGFkYXRhO1xuICBzaWduYXR1cmVzPzogc3RyaW5nW107XG4gIHNpZ25lcnM/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=baseMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessage.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/baseMessage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const statics_1 = require("@bitgo/statics");
7
+ const sinon_1 = __importDefault(require("sinon"));
8
+ const should_1 = __importDefault(require("should"));
9
+ const src_1 = require("../../../../../src");
10
+ const fixtures_1 = require("./fixtures");
11
+ describe('Base Message', () => {
12
+ let coinConfig;
13
+ beforeEach(() => {
14
+ coinConfig = sinon_1.default.createStubInstance(statics_1.BaseCoin);
15
+ });
16
+ it('should initialize with default values', () => {
17
+ const message = new fixtures_1.TestMessage({
18
+ coinConfig,
19
+ payload: '',
20
+ });
21
+ should_1.default.equal(message.getType(), src_1.MessageStandardType.UNKNOWN);
22
+ should_1.default.equal(message.getPayload(), '');
23
+ should_1.default.deepEqual(message.getMetadata(), {});
24
+ should_1.default.deepEqual(message.getSignatures(), []);
25
+ should_1.default.deepEqual(message.getSigners(), []);
26
+ });
27
+ it('should initialize with provided values', () => {
28
+ const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
29
+ const message = new fixtures_1.TestMessage({
30
+ coinConfig,
31
+ payload,
32
+ type,
33
+ metadata,
34
+ signers,
35
+ signatures,
36
+ });
37
+ should_1.default.equal(message.getType(), type);
38
+ should_1.default.equal(message.getPayload(), payload);
39
+ should_1.default.deepEqual(message.getMetadata(), metadata);
40
+ should_1.default.deepEqual(message.getSignatures(), signatures);
41
+ should_1.default.deepEqual(message.getSigners(), signers);
42
+ });
43
+ describe('Getters and Setters', () => {
44
+ let message;
45
+ beforeEach(() => {
46
+ message = new fixtures_1.TestMessage({
47
+ coinConfig,
48
+ payload: 'test',
49
+ });
50
+ });
51
+ it('should handle adding and getting signers', () => {
52
+ const signer1 = '0xabc123';
53
+ const signer2 = '0xdef456';
54
+ message.addSigner(signer1);
55
+ should_1.default.deepEqual(message.getSigners(), [signer1]);
56
+ message.addSigner(signer2);
57
+ should_1.default.deepEqual(message.getSigners(), [signer1, signer2]);
58
+ // Adding a duplicate signer should not add it again
59
+ message.addSigner(signer1);
60
+ should_1.default.deepEqual(message.getSigners(), [signer1, signer2]);
61
+ // Set signers should replace all existing signers
62
+ const newSigners = ['0x111', '0x222'];
63
+ message.setSigners(newSigners);
64
+ should_1.default.deepEqual(message.getSigners(), newSigners);
65
+ });
66
+ it('should handle adding and getting signatures', () => {
67
+ const sig1 = 'signature1';
68
+ const sig2 = 'signature2';
69
+ message.addSignature(sig1);
70
+ should_1.default.deepEqual(message.getSignatures(), [sig1]);
71
+ message.addSignature(sig2);
72
+ should_1.default.deepEqual(message.getSignatures(), [sig1, sig2]);
73
+ // Set signatures should replace all existing signatures
74
+ const newSignatures = ['sig3', 'sig4'];
75
+ message.setSignatures(newSignatures);
76
+ should_1.default.deepEqual(message.getSignatures(), newSignatures);
77
+ });
78
+ it('should return copies of arrays to prevent mutation', () => {
79
+ const signers = ['addr1', 'addr2'];
80
+ const signatures = ['sig1', 'sig2'];
81
+ message.setSigners(signers);
82
+ message.setSignatures(signatures);
83
+ // Modifying the returned arrays should not affect the internal state
84
+ const returnedSigners = message.getSigners();
85
+ const returnedSignatures = message.getSignatures();
86
+ returnedSigners.push('addr3');
87
+ returnedSignatures.push('sig3');
88
+ should_1.default.deepEqual(message.getSigners(), signers);
89
+ should_1.default.deepEqual(message.getSignatures(), signatures);
90
+ });
91
+ });
92
+ describe('getSignablePayload', () => {
93
+ it('should return the signablePayload if set', async () => {
94
+ const customSignablePayload = '0xabcdef123456';
95
+ const message = new fixtures_1.TestMessage({
96
+ coinConfig,
97
+ payload: 'original payload',
98
+ signablePayload: customSignablePayload,
99
+ });
100
+ const result = await message.getSignablePayload();
101
+ should_1.default.equal(result, customSignablePayload);
102
+ });
103
+ it('should return the payload as buffer if signablePayload is not set', async () => {
104
+ const payload = 'test payload';
105
+ const message = new fixtures_1.TestMessage({
106
+ coinConfig,
107
+ payload,
108
+ });
109
+ const result = await message.getSignablePayload();
110
+ should_1.default.deepEqual(result, Buffer.from(payload));
111
+ });
112
+ });
113
+ describe('toBroadcastFormat', () => {
114
+ it('should throw an error if no signatures are available', async () => {
115
+ const message = new fixtures_1.TestMessage({
116
+ coinConfig,
117
+ payload: 'test',
118
+ signers: ['addr1'],
119
+ });
120
+ await message
121
+ .toBroadcastFormat()
122
+ .should.be.rejectedWith('No signatures available for broadcast. Call setSignatures or addSignature first.');
123
+ });
124
+ it('should throw an error if no signers are available', async () => {
125
+ const message = new fixtures_1.TestMessage({
126
+ coinConfig,
127
+ payload: 'test',
128
+ signatures: ['sig1'],
129
+ });
130
+ await message
131
+ .toBroadcastFormat()
132
+ .should.be.rejectedWith('No signers available for broadcast. Call setSigners or addSigner first.');
133
+ });
134
+ it('should create a proper broadcastable format with all fields', async () => {
135
+ const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
136
+ const customSignablePayload = Buffer.from('custom signable payload');
137
+ const message = new fixtures_1.TestMessage({
138
+ coinConfig,
139
+ payload,
140
+ type,
141
+ metadata,
142
+ signers,
143
+ signatures,
144
+ signablePayload: customSignablePayload,
145
+ });
146
+ const broadcastFormat = await message.toBroadcastFormat();
147
+ should_1.default.deepEqual(broadcastFormat, {
148
+ type,
149
+ payload,
150
+ signatures,
151
+ signers,
152
+ metadata,
153
+ signablePayload: customSignablePayload,
154
+ });
155
+ });
156
+ it('should perform a deep copy of metadata to prevent mutation', async () => {
157
+ const nestedMetadata = {
158
+ version: '1.0',
159
+ settings: {
160
+ chainId: 1,
161
+ gasLimit: 21000,
162
+ },
163
+ };
164
+ const message = new fixtures_1.TestMessage({
165
+ coinConfig,
166
+ payload: 'test',
167
+ metadata: nestedMetadata,
168
+ signers: ['addr1'],
169
+ signatures: ['sig1'],
170
+ });
171
+ const broadcastFormat = await message.toBroadcastFormat();
172
+ // The metadata in the broadcast format should be a deep copy
173
+ should_1.default.deepEqual(broadcastFormat.metadata, nestedMetadata);
174
+ // But it should not be the same object reference
175
+ should_1.default.notEqual(broadcastFormat.metadata, nestedMetadata);
176
+ // Modifying the original should not affect the broadcasted version
177
+ nestedMetadata.settings.gasLimit = 50000;
178
+ should_1.default.notEqual(broadcastFormat.metadata.settings.gasLimit, 50000);
179
+ });
180
+ });
181
+ describe('toBroadcastString', () => {
182
+ it('should serialize the broadcastable format to JSON string', async () => {
183
+ const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
184
+ const message = new fixtures_1.TestMessage({
185
+ coinConfig,
186
+ payload,
187
+ type,
188
+ metadata,
189
+ signers,
190
+ signatures,
191
+ });
192
+ const broadcastString = await message.toBroadcastString();
193
+ const parsed = JSON.parse(broadcastString);
194
+ should_1.default.deepEqual(parsed, {
195
+ type,
196
+ payload,
197
+ signatures,
198
+ signers,
199
+ metadata,
200
+ });
201
+ });
202
+ });
203
+ });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBMEM7QUFDMUMsa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0Q0FBeUQ7QUFDekQseUNBQXlEO0FBRXpELFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksVUFBZ0QsQ0FBQztJQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQVcsQ0FBQztZQUM5QixVQUFVO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxF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LENBQUM7WUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUUzQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxVQUFVO2dCQUNWLE9BQU87Z0JBQ1AsUUFBUTthQUNULENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgbWVzc2FnZVNhbXBsZXMsIFRlc3RNZXNzYWdlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbmRlc2NyaWJlKCdCYXNlIE1lc3NhZ2UnLCAoKSA9PiB7XG4gIGxldCBjb2luQ29uZmlnOiBzaW5vbi5TaW5vblN0dWJiZWRJbnN0YW5jZTxCYXNlQ29pbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29pbkNvbmZpZyA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQ6ICcnLFxuICAgIH0pO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCB7fSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW10pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggcHJvdmlkZWQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0eXBlLFxuICAgICAgbWV0YWRhdGEsXG4gICAgICBzaWduZXJzLFxuICAgICAgc2lnbmF0dXJlcyxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgdHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgbWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICB9KTtcblxuICBkZXNjcmliZSgnR2V0dGVycyBhbmQgU2V0dGVycycsICgpID0+IHtcbiAgICBsZXQgbWVzc2FnZTogVGVzdE1lc3NhZ2U7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnbmVyMSA9ICcweGFiYzEyMyc7XG4gICAgICBjb25zdCBzaWduZXIyID0gJzB4ZGVmNDU2JztcblxuICAgICAgbWVzc2FnZS5hZGRTaWduZXIoc2lnbmVyMSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbc2lnbmVyMV0pO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25lcihzaWduZXIyKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtzaWduZXIxLCBzaWduZXIyXSk7XG5cbiAgICAgIC8vIEFkZGluZyBhIGR1cGxpY2F0ZSBzaWduZXIgc2hvdWxkIG5vdCBhZGQgaXQgYWdhaW5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKHNpZ25lcjEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW3NpZ25lcjEsIHNpZ25lcjJdKTtcblxuICAgICAgLy8gU2V0IHNpZ25lcnMgc2hvdWxkIHJlcGxhY2UgYWxsIGV4aXN0aW5nIHNpZ25lcnNcbiAgICAgIGNvbnN0IG5ld1NpZ25lcnMgPSBbJzB4MTExJywgJzB4MjIyJ107XG4gICAgICBtZXNzYWdlLnNldFNpZ25lcnMobmV3U2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBuZXdTaWduZXJzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduYXR1cmVzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnMSA9ICdzaWduYXR1cmUxJztcbiAgICAgIGNvbnN0IHNpZzIgPSAnc2lnbmF0dXJlMic7XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmF0dXJlKHNpZzEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW3NpZzFdKTtcblxuICAgICAgbWVzc2FnZS5hZGRTaWduYXR1cmUoc2lnMik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBbc2lnMSwgc2lnMl0pO1xuXG4gICAgICAvLyBTZXQgc2lnbmF0dXJlcyBzaG91bGQgcmVwbGFjZSBhbGwgZXhpc3Rpbmcgc2lnbmF0dXJlc1xuICAgICAgY29uc3QgbmV3U2lnbmF0dXJlcyA9IFsnc2lnMycsICdzaWc0J107XG4gICAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMobmV3U2lnbmF0dXJlcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBuZXdTaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvcGllcyBvZiBhcnJheXMgdG8gcHJldmVudCBtdXRhdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJywgJ2FkZHIyJ107XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gWydzaWcxJywgJ3NpZzInXTtcblxuICAgICAgbWVzc2FnZS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuICAgICAgbWVzc2FnZS5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuXG4gICAgICAvLyBNb2RpZnlpbmcgdGhlIHJldHVybmVkIGFycmF5cyBzaG91bGQgbm90IGFmZmVjdCB0aGUgaW50ZXJuYWwgc3RhdGVcbiAgICAgIGNvbnN0IHJldHVybmVkU2lnbmVycyA9IG1lc3NhZ2UuZ2V0U2lnbmVycygpO1xuICAgICAgY29uc3QgcmV0dXJuZWRTaWduYXR1cmVzID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKCk7XG5cbiAgICAgIHJldHVybmVkU2lnbmVycy5wdXNoKCdhZGRyMycpO1xuICAgICAgcmV0dXJuZWRTaWduYXR1cmVzLnB1c2goJ3NpZzMnKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFNpZ25hYmxlUGF5bG9hZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgc2lnbmFibGVQYXlsb2FkIGlmIHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCA9ICcweGFiY2RlZjEyMzQ1Nic7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ29yaWdpbmFsIHBheWxvYWQnLFxuICAgICAgICBzaWduYWJsZVBheWxvYWQ6IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgY3VzdG9tU2lnbmFibGVQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwYXlsb2FkIGFzIGJ1ZmZlciBpZiBzaWduYWJsZVBheWxvYWQgaXMgbm90IHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHJlc3VsdCwgQnVmZmVyLmZyb20ocGF5bG9hZCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBubyBzaWduYXR1cmVzIGFyZSBhdmFpbGFibGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ3Rlc3QnLFxuICAgICAgICBzaWduZXJzOiBbJ2FkZHIxJ10sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWVzc2FnZVxuICAgICAgICAudG9Ccm9hZGNhc3RGb3JtYXQoKVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTm8gc2lnbmF0dXJlcyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduYXR1cmVzIG9yIGFkZFNpZ25hdHVyZSBmaXJzdC4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgbm8gc2lnbmVycyBhcmUgYXZhaWxhYmxlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0JyxcbiAgICAgICAgc2lnbmF0dXJlczogWydzaWcxJ10sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWVzc2FnZVxuICAgICAgICAudG9Ccm9hZGNhc3RGb3JtYXQoKVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTm8gc2lnbmVycyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduZXJzIG9yIGFkZFNpZ25lciBmaXJzdC4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgcHJvcGVyIGJyb2FkY2FzdGFibGUgZm9ybWF0IHdpdGggYWxsIGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcbiAgICAgIGNvbnN0IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKCdjdXN0b20gc2lnbmFibGUgcGF5bG9hZCcpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25lcnMsXG4gICAgICAgIHNpZ25hdHVyZXMsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogY3VzdG9tU2lnbmFibGVQYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChicm9hZGNhc3RGb3JtYXQsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogY3VzdG9tU2lnbmFibGVQYXlsb2FkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBlcmZvcm0gYSBkZWVwIGNvcHkgb2YgbWV0YWRhdGEgdG8gcHJldmVudCBtdXRhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5lc3RlZE1ldGFkYXRhID0ge1xuICAgICAgICB2ZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICBjaGFpbklkOiAxLFxuICAgICAgICAgIGdhc0xpbWl0OiAyMTAwMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICAgIG1ldGFkYXRhOiBuZXN0ZWRNZXRhZGF0YSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBzaWduYXR1cmVzOiBbJ3NpZzEnXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIFRoZSBtZXRhZGF0YSBpbiB0aGUgYnJvYWRjYXN0IGZvcm1hdCBzaG91bGQgYmUgYSBkZWVwIGNvcHlcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLCBuZXN0ZWRNZXRhZGF0YSk7XG5cbiAgICAgIC8vIEJ1dCBpdCBzaG91bGQgbm90IGJlIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2VcbiAgICAgIHNob3VsZC5ub3RFcXVhbChicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEsIG5lc3RlZE1ldGFkYXRhKTtcblxuICAgICAgLy8gTW9kaWZ5aW5nIHRoZSBvcmlnaW5hbCBzaG91bGQgbm90IGFmZmVjdCB0aGUgYnJvYWRjYXN0ZWQgdmVyc2lvblxuICAgICAgbmVzdGVkTWV0YWRhdGEuc2V0dGluZ3MuZ2FzTGltaXQgPSA1MDAwMDtcbiAgICAgIHNob3VsZC5ub3RFcXVhbCgoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhIGFzIGFueSkuc2V0dGluZ3MuZ2FzTGltaXQsIDUwMDAwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0U3RyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2VyaWFsaXplIHRoZSBicm9hZGNhc3RhYmxlIGZvcm1hdCB0byBKU09OIHN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBzaWduYXR1cmVzLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RTdHJpbmcoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0U3RyaW5nKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChwYXJzZWQsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=baseMessageBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/baseMessageBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const statics_1 = require("@bitgo/statics");
7
+ const sinon_1 = __importDefault(require("sinon"));
8
+ const should_1 = __importDefault(require("should"));
9
+ const src_1 = require("../../../../../src");
10
+ const fixtures_1 = require("./fixtures");
11
+ describe('Base Message Builder', () => {
12
+ let builder;
13
+ let mockCoinConfig;
14
+ beforeEach(() => {
15
+ mockCoinConfig = sinon_1.default.createStubInstance(statics_1.BaseCoin);
16
+ builder = new fixtures_1.TestMessageBuilder(mockCoinConfig, src_1.MessageStandardType.EIP191);
17
+ });
18
+ it('should initialize with default values', () => {
19
+ should_1.default.equal(builder.getPayload(), '');
20
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
21
+ should_1.default.deepEqual(builder.getSignatures(), []);
22
+ should_1.default.deepEqual(builder.getSigners(), []);
23
+ should_1.default.deepEqual(builder.getMetadata(), {});
24
+ should_1.default.equal(builder.getDigest(), undefined);
25
+ });
26
+ it('should set and get payload', () => {
27
+ const payload = 'test payload';
28
+ builder.setPayload(payload);
29
+ should_1.default.equal(builder.getPayload(), payload);
30
+ });
31
+ it('should set and get metadata', () => {
32
+ const metadata = { key: 'value', num: 123 };
33
+ builder.setMetadata(metadata);
34
+ should_1.default.deepEqual(builder.getMetadata(), metadata);
35
+ });
36
+ it('should set and get type', () => {
37
+ const type = src_1.MessageStandardType.UNKNOWN;
38
+ builder.setType(type);
39
+ should_1.default.equal(builder.getType(), type);
40
+ });
41
+ it('should set and get signatures', () => {
42
+ const signatures = ['sig1', 'sig2', 'sig3'];
43
+ builder.setSignatures(signatures);
44
+ should_1.default.deepEqual(builder.getSignatures(), signatures);
45
+ });
46
+ it('should set and get signers', () => {
47
+ const signers = ['address1', 'address2', 'address3'];
48
+ builder.setSigners(signers);
49
+ should_1.default.deepEqual(builder.getSigners(), signers);
50
+ });
51
+ it('should set and get digest', () => {
52
+ const digest = '0x1234abcd';
53
+ builder.setDigest(digest);
54
+ should_1.default.equal(builder.getDigest(), digest);
55
+ });
56
+ it('should build a message with the correct properties', async () => {
57
+ const payload = 'test message';
58
+ const metadata = { foo: 'bar' };
59
+ const signatures = ['sig1', 'sig2'];
60
+ const signers = ['addr1', 'addr2'];
61
+ builder
62
+ .setType(src_1.MessageStandardType.EIP191)
63
+ .setPayload(payload)
64
+ .setMetadata(metadata)
65
+ .setSignatures(signatures)
66
+ .setSigners(signers);
67
+ const message = await builder.build();
68
+ should_1.default.equal(message.getType(), src_1.MessageStandardType.EIP191);
69
+ should_1.default.equal(message.getPayload(), payload);
70
+ should_1.default.deepEqual(message.getMetadata(), metadata);
71
+ should_1.default.deepEqual(message.getSignatures(), signatures);
72
+ should_1.default.deepEqual(message.getSigners(), signers);
73
+ const signablePayload = await message.getSignablePayload();
74
+ should_1.default.deepEqual(signablePayload, Buffer.from(payload));
75
+ });
76
+ it('should correctly handle toBroadcastFormat', async () => {
77
+ const payload = 'hello world';
78
+ const metadata = { version: '1.0' };
79
+ const signatures = ['sig1'];
80
+ const signers = ['addr1'];
81
+ builder
82
+ .setType(src_1.MessageStandardType.EIP191)
83
+ .setPayload(payload)
84
+ .setMetadata(metadata)
85
+ .setSignatures(signatures)
86
+ .setSigners(signers);
87
+ const message = await builder.build();
88
+ const broadcastFormat = await message.toBroadcastFormat();
89
+ should_1.default.deepEqual(broadcastFormat, {
90
+ type: src_1.MessageStandardType.EIP191,
91
+ payload: payload,
92
+ signatures: signatures,
93
+ signers: signers,
94
+ metadata: metadata,
95
+ signablePayload: undefined,
96
+ });
97
+ });
98
+ it('should correctly handle fromBroadcastFormat', async () => {
99
+ const broadcastMessage = {
100
+ type: src_1.MessageStandardType.EIP191,
101
+ payload: 'broadcast test',
102
+ signatures: ['sig1', 'sig2'],
103
+ signers: ['addr1', 'addr2'],
104
+ metadata: { chainId: 1 },
105
+ };
106
+ const message = await builder.fromBroadcastFormat(broadcastMessage);
107
+ should_1.default.equal(message.getType(), broadcastMessage.type);
108
+ should_1.default.equal(message.getPayload(), broadcastMessage.payload);
109
+ should_1.default.deepEqual(message.getSignatures(), broadcastMessage.signatures);
110
+ should_1.default.deepEqual(message.getSigners(), broadcastMessage.signers);
111
+ should_1.default.deepEqual(message.getMetadata(), broadcastMessage.metadata);
112
+ });
113
+ it('should correctly handle toBroadcastString', async () => {
114
+ const payload = 'serialize me';
115
+ const signatures = ['sig1'];
116
+ const signers = ['addr1'];
117
+ builder.setType(src_1.MessageStandardType.EIP191).setPayload(payload).setSignatures(signatures).setSigners(signers);
118
+ const message = await builder.build();
119
+ const broadcastString = await message.toBroadcastString();
120
+ const expectedJson = JSON.stringify({
121
+ type: src_1.MessageStandardType.EIP191,
122
+ payload: payload,
123
+ signatures: signatures,
124
+ signers: signers,
125
+ metadata: {},
126
+ });
127
+ should_1.default.equal(broadcastString, expectedJson);
128
+ });
129
+ });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUMxQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDRDQUF5RDtBQUN6RCx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxjQUFvRCxDQUFDO0lBRXpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxjQUFjLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsSUFBSSw2QkFBa0IsQ0FBQyxjQUFxQyxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRyx5QkFBbUIsQ0FBQyxPQUFPLENBQUM7UUFDekMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDNUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU87YUFDSixPQUFPLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQ25DLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDbkIsV0FBVyxDQUFDLFFBQVEsQ0FBQzthQUNyQixhQUFhLENBQUMsVUFBVSxDQUFDO2FBQ3pCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV0QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWhELE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0QsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN6RCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7UUFDOUIsTUFBTSxRQUFRLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLE9BQU87YUFDSixPQUFPLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQ25DLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDbkIsV0FBVyxDQUFDLFFBQVEsQ0FBQzthQUNyQixhQUFhLENBQUMsVUFBVSxDQUFDO2FBQ3pCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTFELGdCQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRTtZQUNoQyxJQUFJLEVBQUUseUJBQW1CLENBQUMsTUFBTTtZQUNoQyxPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtZQUN0QixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixlQUFlLEVBQUUsU0FBUztTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzRCxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLElBQUksRUFBRSx5QkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7U0FDekIsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFcEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN6RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUcsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksRUFBRSx5QkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFRlc3RNZXNzYWdlQnVpbGRlciB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGxldCBidWlsZGVyOiBUZXN0TWVzc2FnZUJ1aWxkZXI7XG4gIGxldCBtb2NrQ29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tDb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgICBidWlsZGVyID0gbmV3IFRlc3RNZXNzYWdlQnVpbGRlcihtb2NrQ29pbkNvbmZpZyBhcyB1bmtub3duIGFzIEJhc2VDb2luLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduYXR1cmVzKCksIFtdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBbXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXREaWdlc3QoKSwgdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBwYXlsb2FkJywgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBtZXRhZGF0YScsICgpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHsga2V5OiAndmFsdWUnLCBudW06IDEyMyB9O1xuICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEobWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgdHlwZScsICgpID0+IHtcbiAgICBjb25zdCB0eXBlID0gTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOO1xuICAgIGJ1aWxkZXIuc2V0VHlwZSh0eXBlKTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIHR5cGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHNpZ25hdHVyZXMnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFsnc2lnMScsICdzaWcyJywgJ3NpZzMnXTtcbiAgICBidWlsZGVyLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgc2lnbmVycycsICgpID0+IHtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyZXNzMScsICdhZGRyZXNzMicsICdhZGRyZXNzMyddO1xuICAgIGJ1aWxkZXIuc2V0U2lnbmVycyhzaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBkaWdlc3QnLCAoKSA9PiB7XG4gICAgY29uc3QgZGlnZXN0ID0gJzB4MTIzNGFiY2QnO1xuICAgIGJ1aWxkZXIuc2V0RGlnZXN0KGRpZ2VzdCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0RGlnZXN0KCksIGRpZ2VzdCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBtZXNzYWdlIHdpdGggdGhlIGNvcnJlY3QgcHJvcGVydGllcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3Rlc3QgbWVzc2FnZSc7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7IGZvbzogJ2JhcicgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzID0gWydzaWcxJywgJ3NpZzInXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMScsICdhZGRyMiddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChzaWduYWJsZVBheWxvYWQsIEJ1ZmZlci5mcm9tKHBheWxvYWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIHRvQnJvYWRjYXN0Rm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAnaGVsbG8gd29ybGQnO1xuICAgIGNvbnN0IG1ldGFkYXRhID0geyB2ZXJzaW9uOiAnMS4wJyB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbJ3NpZzEnXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMSddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdCwge1xuICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlczogc2lnbmF0dXJlcyxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICBzaWduYWJsZVBheWxvYWQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIGZyb21Ccm9hZGNhc3RGb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgcGF5bG9hZDogJ2Jyb2FkY2FzdCB0ZXN0JyxcbiAgICAgIHNpZ25hdHVyZXM6IFsnc2lnMScsICdzaWcyJ10sXG4gICAgICBzaWduZXJzOiBbJ2FkZHIxJywgJ2FkZHIyJ10sXG4gICAgICBtZXRhZGF0YTogeyBjaGFpbklkOiAxIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIGJyb2FkY2FzdE1lc3NhZ2UudHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgYnJvYWRjYXN0TWVzc2FnZS5zaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgYnJvYWRjYXN0TWVzc2FnZS5tZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSB0b0Jyb2FkY2FzdFN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3NlcmlhbGl6ZSBtZSc7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFsnc2lnMSddO1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJ107XG5cbiAgICBidWlsZGVyLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpLnNldFBheWxvYWQocGF5bG9hZCkuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG5cbiAgICBjb25zdCBleHBlY3RlZEpzb24gPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzaWduYXR1cmVzOiBzaWduYXR1cmVzLFxuICAgICAgc2lnbmVyczogc2lnbmVycyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RTdHJpbmcsIGV4cGVjdGVkSnNvbik7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=baseMessageBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMessageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const statics_1 = require("@bitgo/statics");
7
+ const sinon_1 = __importDefault(require("sinon"));
8
+ const should_1 = __importDefault(require("should"));
9
+ const src_1 = require("../../../../../src");
10
+ const fixtures_1 = require("./fixtures");
11
+ describe('Base Message Builder Factory', () => {
12
+ let factory;
13
+ let mockCoinConfig;
14
+ beforeEach(() => {
15
+ mockCoinConfig = sinon_1.default.createStubInstance(statics_1.BaseCoin);
16
+ factory = new fixtures_1.TestMessageBuilderFactory(mockCoinConfig);
17
+ });
18
+ describe('getMessageBuilder', () => {
19
+ it('should create a message builder for EIP191 type', () => {
20
+ const builder = factory.getMessageBuilder(src_1.MessageStandardType.EIP191);
21
+ should_1.default.exist(builder);
22
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
23
+ });
24
+ it('should create a message builder for UNKNOWN type', () => {
25
+ const builder = factory.getMessageBuilder(src_1.MessageStandardType.UNKNOWN);
26
+ should_1.default.exist(builder);
27
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.UNKNOWN);
28
+ });
29
+ });
30
+ describe('fromBroadcastFormat', () => {
31
+ it('should create a builder from a broadcast message', () => {
32
+ const broadcastMessage = {
33
+ type: src_1.MessageStandardType.EIP191,
34
+ payload: 'hello world',
35
+ signatures: ['sig1'],
36
+ signers: ['addr1'],
37
+ metadata: { version: '1.0' },
38
+ };
39
+ const builder = factory.fromBroadcastFormat(broadcastMessage);
40
+ should_1.default.exist(builder);
41
+ // Since the TestMessageBuilder always returns the same type that was passed to constructor
42
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
43
+ });
44
+ });
45
+ describe('fromBroadcastString', () => {
46
+ it('should parse a broadcast message string and create the appropriate builder', () => {
47
+ const broadcastMessage = {
48
+ type: src_1.MessageStandardType.EIP191,
49
+ payload: 'test message',
50
+ signatures: ['sig1', 'sig2'],
51
+ signers: ['addr1', 'addr2'],
52
+ metadata: { chainId: 1 },
53
+ };
54
+ const broadcastString = JSON.stringify(broadcastMessage);
55
+ const builder = factory.fromBroadcastString(broadcastString);
56
+ should_1.default.exist(builder);
57
+ // Since the TestMessageBuilder always returns the same type that was passed to constructor
58
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
59
+ });
60
+ it('should handle broadcast messages with different types', () => {
61
+ const broadcastMessage = {
62
+ type: src_1.MessageStandardType.UNKNOWN,
63
+ payload: 'unknown message',
64
+ signatures: ['sig1'],
65
+ signers: ['addr1'],
66
+ };
67
+ const broadcastString = JSON.stringify(broadcastMessage);
68
+ const builder = factory.fromBroadcastString(broadcastString);
69
+ should_1.default.exist(builder);
70
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.UNKNOWN);
71
+ });
72
+ it('should handle broadcast messages without optional fields', () => {
73
+ const broadcastMessage = {
74
+ type: src_1.MessageStandardType.EIP191,
75
+ payload: 'minimal message',
76
+ signatures: [],
77
+ signers: [],
78
+ };
79
+ const broadcastString = JSON.stringify(broadcastMessage);
80
+ const builder = factory.fromBroadcastString(broadcastString);
81
+ should_1.default.exist(builder);
82
+ should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9hY2NvdW50LWxpYi9iYXNlQ29pbi9tZXNzYWdlcy9iYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQTBDO0FBQzFDLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsNENBQStFO0FBQy9FLHlDQUF1RDtBQUV2RCxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLElBQUksT0FBa0MsQ0FBQztJQUN2QyxJQUFJLGNBQW9ELENBQUM7SUFFekQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLGNBQWMsR0FBRyxlQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxJQUFJLG9DQUF5QixDQUFDLGNBQXFDLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEdBQUcsRUFBRTtZQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkUsZ0JBQU0sQ0FB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LEVBQUU7Z0JBQ2QsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDO1lBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUU3RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgVGVzdE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlIEJ1aWxkZXIgRmFjdG9yeScsICgpID0+IHtcbiAgbGV0IGZhY3Rvcnk6IFRlc3RNZXNzYWdlQnVpbGRlckZhY3Rvcnk7XG4gIGxldCBtb2NrQ29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tDb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgICBmYWN0b3J5ID0gbmV3IFRlc3RNZXNzYWdlQnVpbGRlckZhY3RvcnkobW9ja0NvaW5Db25maWcgYXMgdW5rbm93biBhcyBCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIG1lc3NhZ2UgYnVpbGRlciBmb3IgRUlQMTkxIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgbWVzc2FnZSBidWlsZGVyIGZvciBVTktOT1dOIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdEZvcm1hdCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhIGJyb2FkY2FzdCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAnaGVsbG8gd29ybGQnLFxuICAgICAgICBzaWduYXR1cmVzOiBbJ3NpZzEnXSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBtZXRhZGF0YTogeyB2ZXJzaW9uOiAnMS4wJyB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIC8vIFNpbmNlIHRoZSBUZXN0TWVzc2FnZUJ1aWxkZXIgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgdHlwZSB0aGF0IHdhcyBwYXNzZWQgdG8gY29uc3RydWN0b3JcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdFN0cmluZycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGEgYnJvYWRjYXN0IG1lc3NhZ2Ugc3RyaW5nIGFuZCBjcmVhdGUgdGhlIGFwcHJvcHJpYXRlIGJ1aWxkZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0IG1lc3NhZ2UnLFxuICAgICAgICBzaWduYXR1cmVzOiBbJ3NpZzEnLCAnc2lnMiddLFxuICAgICAgICBzaWduZXJzOiBbJ2FkZHIxJywgJ2FkZHIyJ10sXG4gICAgICAgIG1ldGFkYXRhOiB7IGNoYWluSWQ6IDEgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGJyb2FkY2FzdE1lc3NhZ2UpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdFN0cmluZyhicm9hZGNhc3RTdHJpbmcpO1xuXG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICAvLyBTaW5jZSB0aGUgVGVzdE1lc3NhZ2VCdWlsZGVyIGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIHR5cGUgdGhhdCB3YXMgcGFzc2VkIHRvIGNvbnN0cnVjdG9yXG4gICAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJyb2FkY2FzdCBtZXNzYWdlcyB3aXRoIGRpZmZlcmVudCB0eXBlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04sXG4gICAgICAgIHBheWxvYWQ6ICd1bmtub3duIG1lc3NhZ2UnLFxuICAgICAgICBzaWduYXR1cmVzOiBbJ3NpZzEnXSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdFN0cmluZyk7XG5cbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJyb2FkY2FzdCBtZXNzYWdlcyB3aXRob3V0IG9wdGlvbmFsIGZpZWxkcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAnbWluaW1hbCBtZXNzYWdlJyxcbiAgICAgICAgc2lnbmF0dXJlczogW10sXG4gICAgICAgIHNpZ25lcnM6IFtdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdFN0cmluZyk7XG5cbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,36 @@
1
+ import { BaseMessage, BaseMessageBuilder, BaseMessageBuilderFactory, IMessage, IMessageBuilder, MessageOptions, MessageStandardType } from '../../../../../src';
2
+ import { BaseCoin } from '@bitgo/statics';
3
+ export declare class TestMessageBuilderFactory extends BaseMessageBuilderFactory {
4
+ constructor(coinConfig: Readonly<BaseCoin>);
5
+ getMessageBuilder(type: MessageStandardType): IMessageBuilder;
6
+ }
7
+ export declare class TestMessageBuilder extends BaseMessageBuilder {
8
+ constructor(coinConfig: Readonly<BaseCoin>, type?: MessageStandardType);
9
+ build(): Promise<IMessage>;
10
+ fromBroadcastFormat(broadcastMessage: any): Promise<IMessage>;
11
+ }
12
+ export declare class TestMessage extends BaseMessage {
13
+ constructor(options: MessageOptions);
14
+ getSignablePayload(): Promise<string | Buffer>;
15
+ }
16
+ export declare const messageSamples: {
17
+ eip191: {
18
+ payload: string;
19
+ type: MessageStandardType;
20
+ metadata: {
21
+ chainId: number;
22
+ };
23
+ signers: string[];
24
+ signatures: string[];
25
+ };
26
+ unknown: {
27
+ payload: string;
28
+ type: MessageStandardType;
29
+ metadata: {
30
+ version: string;
31
+ };
32
+ signers: string[];
33
+ signatures: string[];
34
+ };
35
+ };
36
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBAAa,yBAA0B,SAAQ,yBAAyB;gBAC1D,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAI1C,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;CAG9D;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB;gBAC5C,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAE,mBAAiD;IAI7F,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IAa1B,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAUpE;AAED,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,cAAc;IAI7B,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CAMrD;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CAe1B,CAAC"}