@bitgo/sdk-core 35.5.0 → 35.7.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.
- package/CHANGELOG.md +19 -0
- package/dist/src/account-lib/baseCoin/iface.d.ts +8 -0
- package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/iface.js +23 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +16 -4
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessage.js +45 -11
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +9 -8
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +52 -4
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -2
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +16 -5
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts +13 -5
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/iface.js +1 -1
- package/dist/src/account-lib/baseCoin/messages/index.d.ts +1 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/messages/index.js +2 -1
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +3 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +29 -1
- package/dist/src/bitgo/utils/messageTypes.d.ts +8 -5
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/messageTypes.js +3 -1
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +9 -2
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +16 -2
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +48 -2
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +4 -0
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +2 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts +7 -0
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +58 -11
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +50 -47
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +61 -17
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +23 -4
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +13 -3
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -1
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +17 -18
- package/dist/test/unit/bitgo/utils/messageTypes.js +41 -53
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -64,42 +64,59 @@ describe('Base Message', () => {
|
|
|
64
64
|
should_1.default.deepEqual(message.getSigners(), newSigners);
|
|
65
65
|
});
|
|
66
66
|
it('should handle adding and getting signatures', () => {
|
|
67
|
-
const sig1 =
|
|
68
|
-
|
|
67
|
+
const sig1 = {
|
|
68
|
+
publicKey: { pub: 'pub1' },
|
|
69
|
+
signature: Buffer.from('signature1'),
|
|
70
|
+
};
|
|
71
|
+
const sig2 = {
|
|
72
|
+
publicKey: { pub: 'pub2' },
|
|
73
|
+
signature: Buffer.from('signature2'),
|
|
74
|
+
};
|
|
69
75
|
message.addSignature(sig1);
|
|
70
76
|
should_1.default.deepEqual(message.getSignatures(), [sig1]);
|
|
71
77
|
message.addSignature(sig2);
|
|
72
78
|
should_1.default.deepEqual(message.getSignatures(), [sig1, sig2]);
|
|
73
79
|
// Set signatures should replace all existing signatures
|
|
74
|
-
const newSignatures = [
|
|
80
|
+
const newSignatures = [
|
|
81
|
+
{
|
|
82
|
+
publicKey: { pub: 'pub3' },
|
|
83
|
+
signature: Buffer.from('sig3'),
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
publicKey: { pub: 'pub4' },
|
|
87
|
+
signature: Buffer.from('sig4'),
|
|
88
|
+
},
|
|
89
|
+
];
|
|
75
90
|
message.setSignatures(newSignatures);
|
|
76
91
|
should_1.default.deepEqual(message.getSignatures(), newSignatures);
|
|
77
92
|
});
|
|
78
93
|
it('should return copies of arrays to prevent mutation', () => {
|
|
79
94
|
const signers = ['addr1', 'addr2'];
|
|
80
|
-
const signatures = [
|
|
95
|
+
const signatures = [
|
|
96
|
+
{
|
|
97
|
+
publicKey: { pub: 'pub1' },
|
|
98
|
+
signature: Buffer.from('sig1'),
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
publicKey: { pub: 'pub1' },
|
|
102
|
+
signature: Buffer.from('sig1'),
|
|
103
|
+
},
|
|
104
|
+
];
|
|
81
105
|
message.setSigners(signers);
|
|
82
106
|
message.setSignatures(signatures);
|
|
83
107
|
// Modifying the returned arrays should not affect the internal state
|
|
84
108
|
const returnedSigners = message.getSigners();
|
|
85
109
|
const returnedSignatures = message.getSignatures();
|
|
86
110
|
returnedSigners.push('addr3');
|
|
87
|
-
returnedSignatures.push(
|
|
111
|
+
returnedSignatures.push({
|
|
112
|
+
publicKey: { pub: 'pub3' },
|
|
113
|
+
signature: Buffer.from('sig3'),
|
|
114
|
+
});
|
|
88
115
|
should_1.default.deepEqual(message.getSigners(), signers);
|
|
89
116
|
should_1.default.deepEqual(message.getSignatures(), signatures);
|
|
90
117
|
});
|
|
91
118
|
});
|
|
92
119
|
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
120
|
it('should return the payload as buffer if signablePayload is not set', async () => {
|
|
104
121
|
const payload = 'test payload';
|
|
105
122
|
const message = new fixtures_1.TestMessage({
|
|
@@ -111,29 +128,8 @@ describe('Base Message', () => {
|
|
|
111
128
|
});
|
|
112
129
|
});
|
|
113
130
|
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
131
|
it('should create a proper broadcastable format with all fields', async () => {
|
|
135
132
|
const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
|
|
136
|
-
const customSignablePayload = Buffer.from('custom signable payload');
|
|
137
133
|
const message = new fixtures_1.TestMessage({
|
|
138
134
|
coinConfig,
|
|
139
135
|
payload,
|
|
@@ -141,16 +137,15 @@ describe('Base Message', () => {
|
|
|
141
137
|
metadata,
|
|
142
138
|
signers,
|
|
143
139
|
signatures,
|
|
144
|
-
signablePayload: customSignablePayload,
|
|
145
140
|
});
|
|
146
141
|
const broadcastFormat = await message.toBroadcastFormat();
|
|
147
142
|
should_1.default.deepEqual(broadcastFormat, {
|
|
148
143
|
type,
|
|
149
144
|
payload,
|
|
150
|
-
signatures,
|
|
145
|
+
serializedSignatures: (0, src_1.serializeSignatures)(signatures),
|
|
151
146
|
signers,
|
|
152
147
|
metadata,
|
|
153
|
-
signablePayload:
|
|
148
|
+
signablePayload: 'SGVsbG8gQml0R28h',
|
|
154
149
|
});
|
|
155
150
|
});
|
|
156
151
|
it('should perform a deep copy of metadata to prevent mutation', async () => {
|
|
@@ -166,7 +161,12 @@ describe('Base Message', () => {
|
|
|
166
161
|
payload: 'test',
|
|
167
162
|
metadata: nestedMetadata,
|
|
168
163
|
signers: ['addr1'],
|
|
169
|
-
signatures: [
|
|
164
|
+
signatures: [
|
|
165
|
+
{
|
|
166
|
+
publicKey: { pub: 'pub1' },
|
|
167
|
+
signature: Buffer.from('sig1'),
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
170
|
});
|
|
171
171
|
const broadcastFormat = await message.toBroadcastFormat();
|
|
172
172
|
// The metadata in the broadcast format should be a deep copy
|
|
@@ -179,7 +179,7 @@ describe('Base Message', () => {
|
|
|
179
179
|
});
|
|
180
180
|
});
|
|
181
181
|
describe('toBroadcastString', () => {
|
|
182
|
-
it('should serialize the broadcastable format to
|
|
182
|
+
it('should serialize the broadcastable format to hex string', async () => {
|
|
183
183
|
const { payload, type, metadata, signers, signatures } = fixtures_1.messageSamples.eip191;
|
|
184
184
|
const message = new fixtures_1.TestMessage({
|
|
185
185
|
coinConfig,
|
|
@@ -189,16 +189,19 @@ describe('Base Message', () => {
|
|
|
189
189
|
signers,
|
|
190
190
|
signatures,
|
|
191
191
|
});
|
|
192
|
-
const
|
|
193
|
-
const parsed = JSON.parse(broadcastString);
|
|
194
|
-
should_1.default.deepEqual(parsed, {
|
|
192
|
+
const expectedBroadcastString = {
|
|
195
193
|
type,
|
|
196
194
|
payload,
|
|
197
|
-
signatures,
|
|
195
|
+
serializedSignatures: (0, src_1.serializeSignatures)(signatures),
|
|
198
196
|
signers,
|
|
199
197
|
metadata,
|
|
200
|
-
|
|
198
|
+
signablePayload: 'SGVsbG8gQml0R28h',
|
|
199
|
+
};
|
|
200
|
+
const broadcastHex = await message.toBroadcastString();
|
|
201
|
+
const broadcastString = Buffer.from(broadcastHex, 'hex').toString();
|
|
202
|
+
const parsed = JSON.parse(broadcastString);
|
|
203
|
+
should_1.default.deepEqual(parsed, expectedBroadcastString);
|
|
201
204
|
});
|
|
202
205
|
});
|
|
203
206
|
});
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBMEM7QUFDMUMsa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0Q0FBeUQ7QUFDekQseUNBQXlEO0FBRXpELFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksVUFBZ0QsQ0FBQztJQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQVcsQ0FBQztZQUM5QixVQUFVO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxF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LENBQUM7WUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUUzQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxVQUFVO2dCQUNWLE9BQU87Z0JBQ1AsUUFBUTthQUNULENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgbWVzc2FnZVNhbXBsZXMsIFRlc3RNZXNzYWdlIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbmRlc2NyaWJlKCdCYXNlIE1lc3NhZ2UnLCAoKSA9PiB7XG4gIGxldCBjb2luQ29uZmlnOiBzaW5vbi5TaW5vblN0dWJiZWRJbnN0YW5jZTxCYXNlQ29pbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29pbkNvbmZpZyA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQ6ICcnLFxuICAgIH0pO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCB7fSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW10pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggcHJvdmlkZWQgdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB0eXBlLFxuICAgICAgbWV0YWRhdGEsXG4gICAgICBzaWduZXJzLFxuICAgICAgc2lnbmF0dXJlcyxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgdHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgbWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICB9KTtcblxuICBkZXNjcmliZSgnR2V0dGVycyBhbmQgU2V0dGVycycsICgpID0+IHtcbiAgICBsZXQgbWVzc2FnZTogVGVzdE1lc3NhZ2U7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduZXJzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnbmVyMSA9ICcweGFiYzEyMyc7XG4gICAgICBjb25zdCBzaWduZXIyID0gJzB4ZGVmNDU2JztcblxuICAgICAgbWVzc2FnZS5hZGRTaWduZXIoc2lnbmVyMSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbc2lnbmVyMV0pO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25lcihzaWduZXIyKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtzaWduZXIxLCBzaWduZXIyXSk7XG5cbiAgICAgIC8vIEFkZGluZyBhIGR1cGxpY2F0ZSBzaWduZXIgc2hvdWxkIG5vdCBhZGQgaXQgYWdhaW5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKHNpZ25lcjEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW3NpZ25lcjEsIHNpZ25lcjJdKTtcblxuICAgICAgLy8gU2V0IHNpZ25lcnMgc2hvdWxkIHJlcGxhY2UgYWxsIGV4aXN0aW5nIHNpZ25lcnNcbiAgICAgIGNvbnN0IG5ld1NpZ25lcnMgPSBbJzB4MTExJywgJzB4MjIyJ107XG4gICAgICBtZXNzYWdlLnNldFNpZ25lcnMobmV3U2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBuZXdTaWduZXJzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGFkZGluZyBhbmQgZ2V0dGluZyBzaWduYXR1cmVzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2lnMSA9ICdzaWduYXR1cmUxJztcbiAgICAgIGNvbnN0IHNpZzIgPSAnc2lnbmF0dXJlMic7XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmF0dXJlKHNpZzEpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW3NpZzFdKTtcblxuICAgICAgbWVzc2FnZS5hZGRTaWduYXR1cmUoc2lnMik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBbc2lnMSwgc2lnMl0pO1xuXG4gICAgICAvLyBTZXQgc2lnbmF0dXJlcyBzaG91bGQgcmVwbGFjZSBhbGwgZXhpc3Rpbmcgc2lnbmF0dXJlc1xuICAgICAgY29uc3QgbmV3U2lnbmF0dXJlcyA9IFsnc2lnMycsICdzaWc0J107XG4gICAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMobmV3U2lnbmF0dXJlcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBuZXdTaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvcGllcyBvZiBhcnJheXMgdG8gcHJldmVudCBtdXRhdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJywgJ2FkZHIyJ107XG4gICAgICBjb25zdCBzaWduYXR1cmVzID0gWydzaWcxJywgJ3NpZzInXTtcblxuICAgICAgbWVzc2FnZS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuICAgICAgbWVzc2FnZS5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuXG4gICAgICAvLyBNb2RpZnlpbmcgdGhlIHJldHVybmVkIGFycmF5cyBzaG91bGQgbm90IGFmZmVjdCB0aGUgaW50ZXJuYWwgc3RhdGVcbiAgICAgIGNvbnN0IHJldHVybmVkU2lnbmVycyA9IG1lc3NhZ2UuZ2V0U2lnbmVycygpO1xuICAgICAgY29uc3QgcmV0dXJuZWRTaWduYXR1cmVzID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKCk7XG5cbiAgICAgIHJldHVybmVkU2lnbmVycy5wdXNoKCdhZGRyMycpO1xuICAgICAgcmV0dXJuZWRTaWduYXR1cmVzLnB1c2goJ3NpZzMnKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFNpZ25hYmxlUGF5bG9hZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgc2lnbmFibGVQYXlsb2FkIGlmIHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCA9ICcweGFiY2RlZjEyMzQ1Nic7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ29yaWdpbmFsIHBheWxvYWQnLFxuICAgICAgICBzaWduYWJsZVBheWxvYWQ6IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgY3VzdG9tU2lnbmFibGVQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwYXlsb2FkIGFzIGJ1ZmZlciBpZiBzaWduYWJsZVBheWxvYWQgaXMgbm90IHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHJlc3VsdCwgQnVmZmVyLmZyb20ocGF5bG9hZCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBubyBzaWduYXR1cmVzIGFyZSBhdmFpbGFibGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZDogJ3Rlc3QnLFxuICAgICAgICBzaWduZXJzOiBbJ2FkZHIxJ10sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWVzc2FnZVxuICAgICAgICAudG9Ccm9hZGNhc3RGb3JtYXQoKVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTm8gc2lnbmF0dXJlcyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduYXR1cmVzIG9yIGFkZFNpZ25hdHVyZSBmaXJzdC4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgbm8gc2lnbmVycyBhcmUgYXZhaWxhYmxlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0JyxcbiAgICAgICAgc2lnbmF0dXJlczogWydzaWcxJ10sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWVzc2FnZVxuICAgICAgICAudG9Ccm9hZGNhc3RGb3JtYXQoKVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTm8gc2lnbmVycyBhdmFpbGFibGUgZm9yIGJyb2FkY2FzdC4gQ2FsbCBzZXRTaWduZXJzIG9yIGFkZFNpZ25lciBmaXJzdC4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgcHJvcGVyIGJyb2FkY2FzdGFibGUgZm9ybWF0IHdpdGggYWxsIGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcbiAgICAgIGNvbnN0IGN1c3RvbVNpZ25hYmxlUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKCdjdXN0b20gc2lnbmFibGUgcGF5bG9hZCcpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25lcnMsXG4gICAgICAgIHNpZ25hdHVyZXMsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogY3VzdG9tU2lnbmFibGVQYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChicm9hZGNhc3RGb3JtYXQsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogY3VzdG9tU2lnbmFibGVQYXlsb2FkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBlcmZvcm0gYSBkZWVwIGNvcHkgb2YgbWV0YWRhdGEgdG8gcHJldmVudCBtdXRhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5lc3RlZE1ldGFkYXRhID0ge1xuICAgICAgICB2ZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICBjaGFpbklkOiAxLFxuICAgICAgICAgIGdhc0xpbWl0OiAyMTAwMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICAgIG1ldGFkYXRhOiBuZXN0ZWRNZXRhZGF0YSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBzaWduYXR1cmVzOiBbJ3NpZzEnXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIFRoZSBtZXRhZGF0YSBpbiB0aGUgYnJvYWRjYXN0IGZvcm1hdCBzaG91bGQgYmUgYSBkZWVwIGNvcHlcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLCBuZXN0ZWRNZXRhZGF0YSk7XG5cbiAgICAgIC8vIEJ1dCBpdCBzaG91bGQgbm90IGJlIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2VcbiAgICAgIHNob3VsZC5ub3RFcXVhbChicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEsIG5lc3RlZE1ldGFkYXRhKTtcblxuICAgICAgLy8gTW9kaWZ5aW5nIHRoZSBvcmlnaW5hbCBzaG91bGQgbm90IGFmZmVjdCB0aGUgYnJvYWRjYXN0ZWQgdmVyc2lvblxuICAgICAgbmVzdGVkTWV0YWRhdGEuc2V0dGluZ3MuZ2FzTGltaXQgPSA1MDAwMDtcbiAgICAgIHNob3VsZC5ub3RFcXVhbCgoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhIGFzIGFueSkuc2V0dGluZ3MuZ2FzTGltaXQsIDUwMDAwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0U3RyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2VyaWFsaXplIHRoZSBicm9hZGNhc3RhYmxlIGZvcm1hdCB0byBKU09OIHN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCwgdHlwZSwgbWV0YWRhdGEsIHNpZ25lcnMsIHNpZ25hdHVyZXMgfSA9IG1lc3NhZ2VTYW1wbGVzLmVpcDE5MTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBzaWduZXJzLFxuICAgICAgICBzaWduYXR1cmVzLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RTdHJpbmcoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0U3RyaW5nKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChwYXJzZWQsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2lnbmF0dXJlcyxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvYmFzZU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBMEM7QUFDMUMsa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUM1Qiw0Q0FBOEU7QUFDOUUseUNBQXlEO0FBRXpELFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLElBQUksVUFBZ0QsQ0FBQztJQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsVUFBVSxHQUFHLGVBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQVcsQ0FBQztZQUM5QixVQUFVO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdDQUF3QyxF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Q0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSwgc2VyaWFsaXplU2lnbmF0dXJlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBtZXNzYWdlU2FtcGxlcywgVGVzdE1lc3NhZ2UgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZGVzY3JpYmUoJ0Jhc2UgTWVzc2FnZScsICgpID0+IHtcbiAgbGV0IGNvaW5Db25maWc6IHNpbm9uLlNpbm9uU3R1YmJlZEluc3RhbmNlPEJhc2VDb2luPjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggZGVmYXVsdCB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICBjb2luQ29uZmlnLFxuICAgICAgcGF5bG9hZDogJycsXG4gICAgfSk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTik7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCAnJyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBbXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW10pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCBwcm92aWRlZCB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBwYXlsb2FkLCB0eXBlLCBtZXRhZGF0YSwgc2lnbmVycywgc2lnbmF0dXJlcyB9ID0gbWVzc2FnZVNhbXBsZXMuZWlwMTkxO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICBjb2luQ29uZmlnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHR5cGUsXG4gICAgICBtZXRhZGF0YSxcbiAgICAgIHNpZ25lcnMsXG4gICAgICBzaWduYXR1cmVzLFxuICAgIH0pO1xuXG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCB0eXBlKTtcbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCksIHBheWxvYWQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdHZXR0ZXJzIGFuZCBTZXR0ZXJzJywgKCkgPT4ge1xuICAgIGxldCBtZXNzYWdlOiBUZXN0TWVzc2FnZTtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgbWVzc2FnZSA9IG5ldyBUZXN0TWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYWRkaW5nIGFuZCBnZXR0aW5nIHNpZ25lcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzaWduZXIxID0gJzB4YWJjMTIzJztcbiAgICAgIGNvbnN0IHNpZ25lcjIgPSAnMHhkZWY0NTYnO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25lcihzaWduZXIxKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIFtzaWduZXIxXSk7XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKHNpZ25lcjIpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgW3NpZ25lcjEsIHNpZ25lcjJdKTtcblxuICAgICAgLy8gQWRkaW5nIGEgZHVwbGljYXRlIHNpZ25lciBzaG91bGQgbm90IGFkZCBpdCBhZ2FpblxuICAgICAgbWVzc2FnZS5hZGRTaWduZXIoc2lnbmVyMSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBbc2lnbmVyMSwgc2lnbmVyMl0pO1xuXG4gICAgICAvLyBTZXQgc2lnbmVycyBzaG91bGQgcmVwbGFjZSBhbGwgZXhpc3Rpbmcgc2lnbmVyc1xuICAgICAgY29uc3QgbmV3U2lnbmVycyA9IFsnMHgxMTEnLCAnMHgyMjInXTtcbiAgICAgIG1lc3NhZ2Uuc2V0U2lnbmVycyhuZXdTaWduZXJzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIG5ld1NpZ25lcnMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYWRkaW5nIGFuZCBnZXR0aW5nIHNpZ25hdHVyZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzaWcxID0ge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnbmF0dXJlMScpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHNpZzIgPSB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIyJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWduYXR1cmUyJyksXG4gICAgICB9O1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25hdHVyZShzaWcxKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIFtzaWcxXSk7XG5cbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmF0dXJlKHNpZzIpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgW3NpZzEsIHNpZzJdKTtcblxuICAgICAgLy8gU2V0IHNpZ25hdHVyZXMgc2hvdWxkIHJlcGxhY2UgYWxsIGV4aXN0aW5nIHNpZ25hdHVyZXNcbiAgICAgIGNvbnN0IG5ld1NpZ25hdHVyZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMycgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWczJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViNCcgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWc0JyksXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgbWVzc2FnZS5zZXRTaWduYXR1cmVzKG5ld1NpZ25hdHVyZXMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgbmV3U2lnbmF0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBjb3BpZXMgb2YgYXJyYXlzIHRvIHByZXZlbnQgbXV0YXRpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMScsICdhZGRyMiddO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIG1lc3NhZ2Uuc2V0U2lnbmVycyhzaWduZXJzKTtcbiAgICAgIG1lc3NhZ2Uuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcblxuICAgICAgLy8gTW9kaWZ5aW5nIHRoZSByZXR1cm5lZCBhcnJheXMgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGludGVybmFsIHN0YXRlXG4gICAgICBjb25zdCByZXR1cm5lZFNpZ25lcnMgPSBtZXNzYWdlLmdldFNpZ25lcnMoKTtcbiAgICAgIGNvbnN0IHJldHVybmVkU2lnbmF0dXJlcyA9IG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpO1xuXG4gICAgICByZXR1cm5lZFNpZ25lcnMucHVzaCgnYWRkcjMnKTtcbiAgICAgIHJldHVybmVkU2lnbmF0dXJlcy5wdXNoKHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjMnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzMnKSxcbiAgICAgIH0pO1xuXG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0U2lnbmFibGVQYXlsb2FkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwYXlsb2FkIGFzIGJ1ZmZlciBpZiBzaWduYWJsZVBheWxvYWQgaXMgbm90IHNldCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHJlc3VsdCwgQnVmZmVyLmZyb20ocGF5bG9hZCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBwcm9wZXIgYnJvYWRjYXN0YWJsZSBmb3JtYXQgd2l0aCBhbGwgZmllbGRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwYXlsb2FkLCB0eXBlLCBtZXRhZGF0YSwgc2lnbmVycywgc2lnbmF0dXJlcyB9ID0gbWVzc2FnZVNhbXBsZXMuZWlwMTkxO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25lcnMsXG4gICAgICAgIHNpZ25hdHVyZXMsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0Rm9ybWF0ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdCwge1xuICAgICAgICB0eXBlLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhzaWduYXR1cmVzKSxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogJ1NHVnNiRzhnUW1sMFIyOGgnLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBlcmZvcm0gYSBkZWVwIGNvcHkgb2YgbWV0YWRhdGEgdG8gcHJldmVudCBtdXRhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5lc3RlZE1ldGFkYXRhID0ge1xuICAgICAgICB2ZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICBjaGFpbklkOiAxLFxuICAgICAgICAgIGdhc0xpbWl0OiAyMTAwMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVGVzdE1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCcsXG4gICAgICAgIG1ldGFkYXRhOiBuZXN0ZWRNZXRhZGF0YSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBzaWduYXR1cmVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcxJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIFRoZSBtZXRhZGF0YSBpbiB0aGUgYnJvYWRjYXN0IGZvcm1hdCBzaG91bGQgYmUgYSBkZWVwIGNvcHlcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLCBuZXN0ZWRNZXRhZGF0YSk7XG5cbiAgICAgIC8vIEJ1dCBpdCBzaG91bGQgbm90IGJlIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2VcbiAgICAgIHNob3VsZC5ub3RFcXVhbChicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEsIG5lc3RlZE1ldGFkYXRhKTtcblxuICAgICAgLy8gTW9kaWZ5aW5nIHRoZSBvcmlnaW5hbCBzaG91bGQgbm90IGFmZmVjdCB0aGUgYnJvYWRjYXN0ZWQgdmVyc2lvblxuICAgICAgbmVzdGVkTWV0YWRhdGEuc2V0dGluZ3MuZ2FzTGltaXQgPSA1MDAwMDtcbiAgICAgIHNob3VsZC5ub3RFcXVhbCgoYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhIGFzIGFueSkuc2V0dGluZ3MuZ2FzTGltaXQsIDUwMDAwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3RvQnJvYWRjYXN0U3RyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc2VyaWFsaXplIHRoZSBicm9hZGNhc3RhYmxlIGZvcm1hdCB0byBoZXggc3RyaW5nJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwYXlsb2FkLCB0eXBlLCBtZXRhZGF0YSwgc2lnbmVycywgc2lnbmF0dXJlcyB9ID0gbWVzc2FnZVNhbXBsZXMuZWlwMTkxO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFRlc3RNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25lcnMsXG4gICAgICAgIHNpZ25hdHVyZXMsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkQnJvYWRjYXN0U3RyaW5nID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhzaWduYXR1cmVzKSxcbiAgICAgICAgc2lnbmVycyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZDogJ1NHVnNiRzhnUW1sMFIyOGgnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0SGV4ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdFN0cmluZygpO1xuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gQnVmZmVyLmZyb20oYnJvYWRjYXN0SGV4LCAnaGV4JykudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0U3RyaW5nKTtcblxuICAgICAgc2hvdWxkLmRlZXBFcXVhbChwYXJzZWQsIGV4cGVjdGVkQnJvYWRjYXN0U3RyaW5nKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -39,7 +39,20 @@ describe('Base Message Builder', () => {
|
|
|
39
39
|
should_1.default.equal(builder.getType(), type);
|
|
40
40
|
});
|
|
41
41
|
it('should set and get signatures', () => {
|
|
42
|
-
const signatures = [
|
|
42
|
+
const signatures = [
|
|
43
|
+
{
|
|
44
|
+
publicKey: { pub: 'pubKey1' },
|
|
45
|
+
signature: Buffer.from('sig1'),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
publicKey: { pub: 'pubKey2' },
|
|
49
|
+
signature: Buffer.from('sig2'),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
publicKey: { pub: 'pubKey3' },
|
|
53
|
+
signature: Buffer.from('sig3'),
|
|
54
|
+
},
|
|
55
|
+
];
|
|
43
56
|
builder.setSignatures(signatures);
|
|
44
57
|
should_1.default.deepEqual(builder.getSignatures(), signatures);
|
|
45
58
|
});
|
|
@@ -55,8 +68,17 @@ describe('Base Message Builder', () => {
|
|
|
55
68
|
});
|
|
56
69
|
it('should build a message with the correct properties', async () => {
|
|
57
70
|
const payload = 'test message';
|
|
58
|
-
const metadata = { foo: 'bar' };
|
|
59
|
-
const signatures = [
|
|
71
|
+
const metadata = { foo: 'bar', encoding: 'utf8' };
|
|
72
|
+
const signatures = [
|
|
73
|
+
{
|
|
74
|
+
publicKey: { pub: 'pubKey1' },
|
|
75
|
+
signature: Buffer.from('sig1'),
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
publicKey: { pub: 'pubKey2' },
|
|
79
|
+
signature: Buffer.from('sig2'),
|
|
80
|
+
},
|
|
81
|
+
];
|
|
60
82
|
const signers = ['addr1', 'addr2'];
|
|
61
83
|
builder
|
|
62
84
|
.setType(src_1.MessageStandardType.EIP191)
|
|
@@ -75,8 +97,13 @@ describe('Base Message Builder', () => {
|
|
|
75
97
|
});
|
|
76
98
|
it('should correctly handle toBroadcastFormat', async () => {
|
|
77
99
|
const payload = 'hello world';
|
|
78
|
-
const metadata = { version: '1.0' };
|
|
79
|
-
const signatures = [
|
|
100
|
+
const metadata = { version: '1.0', encoding: 'utf8' };
|
|
101
|
+
const signatures = [
|
|
102
|
+
{
|
|
103
|
+
publicKey: { pub: 'pubKey1' },
|
|
104
|
+
signature: Buffer.from('sig1'),
|
|
105
|
+
},
|
|
106
|
+
];
|
|
80
107
|
const signers = ['addr1'];
|
|
81
108
|
builder
|
|
82
109
|
.setType(src_1.MessageStandardType.EIP191)
|
|
@@ -86,22 +113,32 @@ describe('Base Message Builder', () => {
|
|
|
86
113
|
.setSigners(signers);
|
|
87
114
|
const message = await builder.build();
|
|
88
115
|
const broadcastFormat = await message.toBroadcastFormat();
|
|
89
|
-
|
|
116
|
+
const expectedBroadcastFormat = {
|
|
90
117
|
type: src_1.MessageStandardType.EIP191,
|
|
91
118
|
payload: payload,
|
|
92
|
-
|
|
119
|
+
serializedSignatures: (0, src_1.serializeSignatures)(signatures),
|
|
93
120
|
signers: signers,
|
|
94
121
|
metadata: metadata,
|
|
95
|
-
signablePayload:
|
|
96
|
-
}
|
|
122
|
+
signablePayload: 'aGVsbG8gd29ybGQ=',
|
|
123
|
+
};
|
|
124
|
+
should_1.default.deepEqual(broadcastFormat, expectedBroadcastFormat);
|
|
97
125
|
});
|
|
98
126
|
it('should correctly handle fromBroadcastFormat', async () => {
|
|
99
127
|
const broadcastMessage = {
|
|
100
128
|
type: src_1.MessageStandardType.EIP191,
|
|
101
129
|
payload: 'broadcast test',
|
|
102
|
-
signatures: [
|
|
130
|
+
signatures: [
|
|
131
|
+
{
|
|
132
|
+
publicKey: { pub: 'pubKey1' },
|
|
133
|
+
signature: Buffer.from('sig1'),
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
publicKey: { pub: 'pubKey2' },
|
|
137
|
+
signature: Buffer.from('sig2'),
|
|
138
|
+
},
|
|
139
|
+
],
|
|
103
140
|
signers: ['addr1', 'addr2'],
|
|
104
|
-
metadata: { chainId: 1 },
|
|
141
|
+
metadata: { chainId: 1, encoding: 'utf8' },
|
|
105
142
|
};
|
|
106
143
|
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
107
144
|
should_1.default.equal(message.getType(), broadcastMessage.type);
|
|
@@ -112,19 +149,26 @@ describe('Base Message Builder', () => {
|
|
|
112
149
|
});
|
|
113
150
|
it('should correctly handle toBroadcastString', async () => {
|
|
114
151
|
const payload = 'serialize me';
|
|
115
|
-
const signatures = [
|
|
152
|
+
const signatures = [
|
|
153
|
+
{
|
|
154
|
+
publicKey: { pub: 'pubKey1' },
|
|
155
|
+
signature: Buffer.from('sig1'),
|
|
156
|
+
},
|
|
157
|
+
];
|
|
116
158
|
const signers = ['addr1'];
|
|
117
159
|
builder.setType(src_1.MessageStandardType.EIP191).setPayload(payload).setSignatures(signatures).setSigners(signers);
|
|
118
160
|
const message = await builder.build();
|
|
119
|
-
const
|
|
161
|
+
const broadcastHex = await message.toBroadcastString();
|
|
120
162
|
const expectedJson = JSON.stringify({
|
|
121
163
|
type: src_1.MessageStandardType.EIP191,
|
|
122
164
|
payload: payload,
|
|
123
|
-
|
|
165
|
+
serializedSignatures: (0, src_1.serializeSignatures)(signatures),
|
|
124
166
|
signers: signers,
|
|
125
|
-
metadata: {},
|
|
167
|
+
metadata: { encoding: 'utf8' },
|
|
168
|
+
signablePayload: 'c2VyaWFsaXplIG1l',
|
|
126
169
|
});
|
|
127
|
-
|
|
170
|
+
const expectedHex = Buffer.from(expectedJson).toString('hex');
|
|
171
|
+
should_1.default.equal(broadcastHex, expectedHex);
|
|
128
172
|
});
|
|
129
173
|
});
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUMxQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDRDQUF5RDtBQUN6RCx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxjQUFvRCxDQUFDO0lBRXpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxjQUFjLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsSUFBSSw2QkFBa0IsQ0FBQyxjQUFxQyxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMs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Q0FBQyxDQUFDO1FBQ2pFLGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN6RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUcsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksRUFBRSx5QkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFRlc3RNZXNzYWdlQnVpbGRlciB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGxldCBidWlsZGVyOiBUZXN0TWVzc2FnZUJ1aWxkZXI7XG4gIGxldCBtb2NrQ29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tDb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgICBidWlsZGVyID0gbmV3IFRlc3RNZXNzYWdlQnVpbGRlcihtb2NrQ29pbkNvbmZpZyBhcyB1bmtub3duIGFzIEJhc2VDb2luLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzJywgKCkgPT4ge1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFBheWxvYWQoKSwgJycpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduYXR1cmVzKCksIFtdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBbXSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXREaWdlc3QoKSwgdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBwYXlsb2FkJywgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAndGVzdCBwYXlsb2FkJztcbiAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBtZXRhZGF0YScsICgpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHsga2V5OiAndmFsdWUnLCBudW06IDEyMyB9O1xuICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEobWV0YWRhdGEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgdHlwZScsICgpID0+IHtcbiAgICBjb25zdCB0eXBlID0gTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOO1xuICAgIGJ1aWxkZXIuc2V0VHlwZSh0eXBlKTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIHR5cGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHNpZ25hdHVyZXMnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFsnc2lnMScsICdzaWcyJywgJ3NpZzMnXTtcbiAgICBidWlsZGVyLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgc2lnbmVycycsICgpID0+IHtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyZXNzMScsICdhZGRyZXNzMicsICdhZGRyZXNzMyddO1xuICAgIGJ1aWxkZXIuc2V0U2lnbmVycyhzaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCBkaWdlc3QnLCAoKSA9PiB7XG4gICAgY29uc3QgZGlnZXN0ID0gJzB4MTIzNGFiY2QnO1xuICAgIGJ1aWxkZXIuc2V0RGlnZXN0KGRpZ2VzdCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0RGlnZXN0KCksIGRpZ2VzdCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBtZXNzYWdlIHdpdGggdGhlIGNvcnJlY3QgcHJvcGVydGllcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3Rlc3QgbWVzc2FnZSc7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB7IGZvbzogJ2JhcicgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzID0gWydzaWcxJywgJ3NpZzInXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMScsICdhZGRyMiddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBzaWduZXJzKTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChzaWduYWJsZVBheWxvYWQsIEJ1ZmZlci5mcm9tKHBheWxvYWQpKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIHRvQnJvYWRjYXN0Rm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAnaGVsbG8gd29ybGQnO1xuICAgIGNvbnN0IG1ldGFkYXRhID0geyB2ZXJzaW9uOiAnMS4wJyB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbJ3NpZzEnXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMSddO1xuXG4gICAgYnVpbGRlclxuICAgICAgLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpXG4gICAgICAuc2V0UGF5bG9hZChwYXlsb2FkKVxuICAgICAgLnNldE1ldGFkYXRhKG1ldGFkYXRhKVxuICAgICAgLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcylcbiAgICAgIC5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICBzaG91bGQuZGVlcEVxdWFsKGJyb2FkY2FzdEZvcm1hdCwge1xuICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlczogc2lnbmF0dXJlcyxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICBzaWduYWJsZVBheWxvYWQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIGZyb21Ccm9hZGNhc3RGb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgcGF5bG9hZDogJ2Jyb2FkY2FzdCB0ZXN0JyxcbiAgICAgIHNpZ25hdHVyZXM6IFsnc2lnMScsICdzaWcyJ10sXG4gICAgICBzaWduZXJzOiBbJ2FkZHIxJywgJ2FkZHIyJ10sXG4gICAgICBtZXRhZGF0YTogeyBjaGFpbklkOiAxIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIGJyb2FkY2FzdE1lc3NhZ2UudHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgYnJvYWRjYXN0TWVzc2FnZS5zaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgYnJvYWRjYXN0TWVzc2FnZS5tZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSB0b0Jyb2FkY2FzdFN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3NlcmlhbGl6ZSBtZSc7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFsnc2lnMSddO1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJ107XG5cbiAgICBidWlsZGVyLnNldFR5cGUoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpLnNldFBheWxvYWQocGF5bG9hZCkuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG5cbiAgICBjb25zdCBleHBlY3RlZEpzb24gPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzaWduYXR1cmVzOiBzaWduYXR1cmVzLFxuICAgICAgc2lnbmVyczogc2lnbmVycyxcbiAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICB9KTtcblxuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RTdHJpbmcsIGV4cGVjdGVkSnNvbik7XG4gIH0pO1xufSk7XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L2FjY291bnQtbGliL2Jhc2VDb2luL21lc3NhZ2VzL2Jhc2VNZXNzYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUMxQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDRDQUFvRztBQUNwRyx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxjQUFvRCxDQUFDO0lBRXpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxjQUFjLEdBQUcsZUFBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsSUFBSSw2QkFBa0IsQ0FBQyxjQUFxQyxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMs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QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsIE1lc3NhZ2VTdGFuZGFyZFR5cGUsIHNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgVGVzdE1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5cbmRlc2NyaWJlKCdCYXNlIE1lc3NhZ2UgQnVpbGRlcicsICgpID0+IHtcbiAgbGV0IGJ1aWxkZXI6IFRlc3RNZXNzYWdlQnVpbGRlcjtcbiAgbGV0IG1vY2tDb2luQ29uZmlnOiBzaW5vbi5TaW5vblN0dWJiZWRJbnN0YW5jZTxCYXNlQ29pbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgbW9ja0NvaW5Db25maWcgPSBzaW5vbi5jcmVhdGVTdHViSW5zdGFuY2UoQmFzZUNvaW4pO1xuICAgIGJ1aWxkZXIgPSBuZXcgVGVzdE1lc3NhZ2VCdWlsZGVyKG1vY2tDb2luQ29uZmlnIGFzIHVua25vd24gYXMgQmFzZUNvaW4sIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggZGVmYXVsdCB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0UGF5bG9hZCgpLCAnJyk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25hdHVyZXMoKSwgW10pO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduZXJzKCksIFtdKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKGJ1aWxkZXIuZ2V0TWV0YWRhdGEoKSwge30pO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldERpZ2VzdCgpLCB1bmRlZmluZWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHBheWxvYWQnLCAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9ICd0ZXN0IHBheWxvYWQnO1xuICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKTtcbiAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRQYXlsb2FkKCksIHBheWxvYWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IG1ldGFkYXRhJywgKCkgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhID0geyBrZXk6ICd2YWx1ZScsIG51bTogMTIzIH07XG4gICAgYnVpbGRlci5zZXRNZXRhZGF0YShtZXRhZGF0YSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzZXQgYW5kIGdldCB0eXBlJywgKCkgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV047XG4gICAgYnVpbGRlci5zZXRUeXBlKHR5cGUpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgdHlwZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgc2lnbmF0dXJlcycsICgpID0+IHtcbiAgICBjb25zdCBzaWduYXR1cmVzID0gW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTInIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzInKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkzJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWczJyksXG4gICAgICB9LFxuICAgIF07XG4gICAgYnVpbGRlci5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbGRlci5nZXRTaWduYXR1cmVzKCksIHNpZ25hdHVyZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNldCBhbmQgZ2V0IHNpZ25lcnMnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2lnbmVycyA9IFsnYWRkcmVzczEnLCAnYWRkcmVzczInLCAnYWRkcmVzczMnXTtcbiAgICBidWlsZGVyLnNldFNpZ25lcnMoc2lnbmVycyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChidWlsZGVyLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2V0IGFuZCBnZXQgZGlnZXN0JywgKCkgPT4ge1xuICAgIGNvbnN0IGRpZ2VzdCA9ICcweDEyMzRhYmNkJztcbiAgICBidWlsZGVyLnNldERpZ2VzdChkaWdlc3QpO1xuICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldERpZ2VzdCgpLCBkaWdlc3QpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgbWVzc2FnZSB3aXRoIHRoZSBjb3JyZWN0IHByb3BlcnRpZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9ICd0ZXN0IG1lc3NhZ2UnO1xuICAgIGNvbnN0IG1ldGFkYXRhID0geyBmb286ICdiYXInLCBlbmNvZGluZzogJ3V0ZjgnIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkyJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzaWcyJyksXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3Qgc2lnbmVycyA9IFsnYWRkcjEnLCAnYWRkcjInXTtcblxuICAgIGJ1aWxkZXJcbiAgICAgIC5zZXRUeXBlKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKVxuICAgICAgLnNldFBheWxvYWQocGF5bG9hZClcbiAgICAgIC5zZXRNZXRhZGF0YShtZXRhZGF0YSlcbiAgICAgIC5zZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMpXG4gICAgICAuc2V0U2lnbmVycyhzaWduZXJzKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCksIHBheWxvYWQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKSwgc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgc2lnbmVycyk7XG5cbiAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwoc2lnbmFibGVQYXlsb2FkLCBCdWZmZXIuZnJvbShwYXlsb2FkKSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSB0b0Jyb2FkY2FzdEZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ2hlbGxvIHdvcmxkJztcbiAgICBjb25zdCBtZXRhZGF0YSA9IHsgdmVyc2lvbjogJzEuMCcsIGVuY29kaW5nOiAndXRmOCcgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzID0gW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViS2V5MScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnc2lnMScpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGNvbnN0IHNpZ25lcnMgPSBbJ2FkZHIxJ107XG5cbiAgICBidWlsZGVyXG4gICAgICAuc2V0VHlwZShNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSlcbiAgICAgIC5zZXRQYXlsb2FkKHBheWxvYWQpXG4gICAgICAuc2V0TWV0YWRhdGEobWV0YWRhdGEpXG4gICAgICAuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKVxuICAgICAgLnNldFNpZ25lcnMoc2lnbmVycyk7XG5cbiAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBjb25zdCBleHBlY3RlZEJyb2FkY2FzdEZvcm1hdDogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhzaWduYXR1cmVzKSxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICBzaWduYWJsZVBheWxvYWQ6ICdhR1ZzYkc4Z2QyOXliR1E9JyxcbiAgICB9O1xuXG4gICAgc2hvdWxkLmRlZXBFcXVhbChicm9hZGNhc3RGb3JtYXQsIGV4cGVjdGVkQnJvYWRjYXN0Rm9ybWF0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIGZyb21Ccm9hZGNhc3RGb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgcGF5bG9hZDogJ2Jyb2FkY2FzdCB0ZXN0JyxcbiAgICAgIHNpZ25hdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkxJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWJLZXkyJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzInKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzaWduZXJzOiBbJ2FkZHIxJywgJ2FkZHIyJ10sXG4gICAgICBtZXRhZGF0YTogeyBjaGFpbklkOiAxLCBlbmNvZGluZzogJ3V0ZjgnIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIGJyb2FkY2FzdE1lc3NhZ2UudHlwZSk7XG4gICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduYXR1cmVzKCksIGJyb2FkY2FzdE1lc3NhZ2Uuc2lnbmF0dXJlcyk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSwgYnJvYWRjYXN0TWVzc2FnZS5zaWduZXJzKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwgYnJvYWRjYXN0TWVzc2FnZS5tZXRhZGF0YSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29ycmVjdGx5IGhhbmRsZSB0b0Jyb2FkY2FzdFN0cmluZycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gJ3NlcmlhbGl6ZSBtZSc7XG4gICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YktleTEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NpZzEnKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBjb25zdCBzaWduZXJzID0gWydhZGRyMSddO1xuXG4gICAgYnVpbGRlci5zZXRUeXBlKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKS5zZXRQYXlsb2FkKHBheWxvYWQpLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcykuc2V0U2lnbmVycyhzaWduZXJzKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgYnJvYWRjYXN0SGV4ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdFN0cmluZygpO1xuXG4gICAgY29uc3QgZXhwZWN0ZWRKc29uID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoc2lnbmF0dXJlcyksXG4gICAgICBzaWduZXJzOiBzaWduZXJzLFxuICAgICAgbWV0YWRhdGE6IHsgZW5jb2Rpbmc6ICd1dGY4JyB9LFxuICAgICAgc2lnbmFibGVQYXlsb2FkOiAnYzJWeWFXRnNhWHBsSUcxbCcsXG4gICAgfSk7XG4gICAgY29uc3QgZXhwZWN0ZWRIZXggPSBCdWZmZXIuZnJvbShleHBlY3RlZEpzb24pLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RIZXgsIGV4cGVjdGVkSGV4KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -32,7 +32,12 @@ describe('Base Message Builder Factory', () => {
|
|
|
32
32
|
const broadcastMessage = {
|
|
33
33
|
type: src_1.MessageStandardType.EIP191,
|
|
34
34
|
payload: 'hello world',
|
|
35
|
-
|
|
35
|
+
serializedSignatures: [
|
|
36
|
+
{
|
|
37
|
+
publicKey: 'pub1',
|
|
38
|
+
signature: 'sig1',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
36
41
|
signers: ['addr1'],
|
|
37
42
|
metadata: { version: '1.0' },
|
|
38
43
|
};
|
|
@@ -47,7 +52,16 @@ describe('Base Message Builder Factory', () => {
|
|
|
47
52
|
const broadcastMessage = {
|
|
48
53
|
type: src_1.MessageStandardType.EIP191,
|
|
49
54
|
payload: 'test message',
|
|
50
|
-
|
|
55
|
+
serializedSignatures: [
|
|
56
|
+
{
|
|
57
|
+
publicKey: 'pub1',
|
|
58
|
+
signature: 'sig1',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
publicKey: 'pub2',
|
|
62
|
+
signature: 'sig2',
|
|
63
|
+
},
|
|
64
|
+
],
|
|
51
65
|
signers: ['addr1', 'addr2'],
|
|
52
66
|
metadata: { chainId: 1 },
|
|
53
67
|
};
|
|
@@ -61,7 +75,12 @@ describe('Base Message Builder Factory', () => {
|
|
|
61
75
|
const broadcastMessage = {
|
|
62
76
|
type: src_1.MessageStandardType.UNKNOWN,
|
|
63
77
|
payload: 'unknown message',
|
|
64
|
-
|
|
78
|
+
serializedSignatures: [
|
|
79
|
+
{
|
|
80
|
+
publicKey: 'pub1',
|
|
81
|
+
signature: 'sig1',
|
|
82
|
+
},
|
|
83
|
+
],
|
|
65
84
|
signers: ['addr1'],
|
|
66
85
|
};
|
|
67
86
|
const broadcastString = JSON.stringify(broadcastMessage);
|
|
@@ -83,4 +102,4 @@ describe('Base Message Builder Factory', () => {
|
|
|
83
102
|
});
|
|
84
103
|
});
|
|
85
104
|
});
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9hY2NvdW50LWxpYi9iYXNlQ29pbi9tZXNzYWdlcy9iYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQTBDO0FBQzFDLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsNENBQStFO0FBQy9FLHlDQUF1RDtBQUV2RCxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLElBQUksT0FBa0MsQ0FBQztJQUN2QyxJQUFJLGNBQW9ELENBQUM7SUFFekQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLGNBQWMsR0FBRyxlQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxJQUFJLG9DQUF5QixDQUFDLGNBQXFDLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEdBQUcsRUFBRTtZQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkUsZ0JBQU0sQ0FB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LEVBQUUsRUFBRSx5QkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7WUFDbEUsTUFBTSxnQkFBZ0IsR0FBRztnQkFDdkIsSUFBSSxFQUFFLHlCQUFtQixDQUFDLE1BQU07Z0JBQ2hDLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFN0QsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IFRlc3RNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZGVzY3JpYmUoJ0Jhc2UgTWVzc2FnZSBCdWlsZGVyIEZhY3RvcnknLCAoKSA9PiB7XG4gIGxldCBmYWN0b3J5OiBUZXN0TWVzc2FnZUJ1aWxkZXJGYWN0b3J5O1xuICBsZXQgbW9ja0NvaW5Db25maWc6IHNpbm9uLlNpbm9uU3R1YmJlZEluc3RhbmNlPEJhc2VDb2luPjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtb2NrQ29pbkNvbmZpZyA9IHNpbm9uLmNyZWF0ZVN0dWJJbnN0YW5jZShCYXNlQ29pbik7XG4gICAgZmFjdG9yeSA9IG5ldyBUZXN0TWVzc2FnZUJ1aWxkZXJGYWN0b3J5KG1vY2tDb2luQ29uZmlnIGFzIHVua25vd24gYXMgQmFzZUNvaW4pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0TWVzc2FnZUJ1aWxkZXInLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBtZXNzYWdlIGJ1aWxkZXIgZm9yIEVJUDE5MSB0eXBlJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIG1lc3NhZ2UgYnVpbGRlciBmb3IgVU5LTk9XTiB0eXBlJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Zyb21Ccm9hZGNhc3RGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBidWlsZGVyIGZyb20gYSBicm9hZGNhc3QgbWVzc2FnZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgICAgcGF5bG9hZDogJ2hlbGxvIHdvcmxkJyxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdwdWIxJyxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogJ3NpZzEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHNpZ25lcnM6IFsnYWRkcjEnXSxcbiAgICAgICAgbWV0YWRhdGE6IHsgdmVyc2lvbjogJzEuMCcgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICAvLyBTaW5jZSB0aGUgVGVzdE1lc3NhZ2VCdWlsZGVyIGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIHR5cGUgdGhhdCB3YXMgcGFzc2VkIHRvIGNvbnN0cnVjdG9yXG4gICAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Zyb21Ccm9hZGNhc3RTdHJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBhIGJyb2FkY2FzdCBtZXNzYWdlIHN0cmluZyBhbmQgY3JlYXRlIHRoZSBhcHByb3ByaWF0ZSBidWlsZGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAndGVzdCBtZXNzYWdlJyxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdwdWIxJyxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogJ3NpZzEnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHVibGljS2V5OiAncHViMicsXG4gICAgICAgICAgICBzaWduYXR1cmU6ICdzaWcyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzaWduZXJzOiBbJ2FkZHIxJywgJ2FkZHIyJ10sXG4gICAgICAgIG1ldGFkYXRhOiB7IGNoYWluSWQ6IDEgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGJyb2FkY2FzdE1lc3NhZ2UpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdFN0cmluZyhicm9hZGNhc3RTdHJpbmcpO1xuXG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICAvLyBTaW5jZSB0aGUgVGVzdE1lc3NhZ2VCdWlsZGVyIGFsd2F5cyByZXR1cm5zIHRoZSBzYW1lIHR5cGUgdGhhdCB3YXMgcGFzc2VkIHRvIGNvbnN0cnVjdG9yXG4gICAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJyb2FkY2FzdCBtZXNzYWdlcyB3aXRoIGRpZmZlcmVudCB0eXBlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04sXG4gICAgICAgIHBheWxvYWQ6ICd1bmtub3duIG1lc3NhZ2UnLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogJ3B1YjEnLFxuICAgICAgICAgICAgc2lnbmF0dXJlOiAnc2lnMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdFN0cmluZyk7XG5cbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJyb2FkY2FzdCBtZXNzYWdlcyB3aXRob3V0IG9wdGlvbmFsIGZpZWxkcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAnbWluaW1hbCBtZXNzYWdlJyxcbiAgICAgICAgc2lnbmF0dXJlczogW10sXG4gICAgICAgIHNpZ25lcnM6IFtdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdFN0cmluZyk7XG5cbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -6,7 +6,7 @@ export declare class TestMessageBuilderFactory extends BaseMessageBuilderFactory
|
|
|
6
6
|
}
|
|
7
7
|
export declare class TestMessageBuilder extends BaseMessageBuilder {
|
|
8
8
|
constructor(coinConfig: Readonly<BaseCoin>, type?: MessageStandardType);
|
|
9
|
-
|
|
9
|
+
buildMessage(options: MessageOptions): Promise<IMessage>;
|
|
10
10
|
fromBroadcastFormat(broadcastMessage: any): Promise<IMessage>;
|
|
11
11
|
}
|
|
12
12
|
export declare class TestMessage extends BaseMessage {
|
|
@@ -21,7 +21,12 @@ export declare const messageSamples: {
|
|
|
21
21
|
chainId: number;
|
|
22
22
|
};
|
|
23
23
|
signers: string[];
|
|
24
|
-
signatures:
|
|
24
|
+
signatures: {
|
|
25
|
+
publicKey: {
|
|
26
|
+
pub: string;
|
|
27
|
+
};
|
|
28
|
+
signature: Buffer<ArrayBuffer>;
|
|
29
|
+
}[];
|
|
25
30
|
};
|
|
26
31
|
unknown: {
|
|
27
32
|
payload: string;
|
|
@@ -30,7 +35,12 @@ export declare const messageSamples: {
|
|
|
30
35
|
version: string;
|
|
31
36
|
};
|
|
32
37
|
signers: string[];
|
|
33
|
-
signatures:
|
|
38
|
+
signatures: {
|
|
39
|
+
publicKey: {
|
|
40
|
+
pub: string;
|
|
41
|
+
};
|
|
42
|
+
signature: Buffer<ArrayBuffer>;
|
|
43
|
+
}[];
|
|
34
44
|
};
|
|
35
45
|
};
|
|
36
46
|
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -1 +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,
|
|
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,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIxD,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;CAIrD;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1B,CAAC"}
|