@bitgo/abstract-eth 24.11.3 → 24.12.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 +10 -0
- package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -1
- package/dist/src/abstractEthLikeNewCoins.js +6 -6
- package/dist/src/lib/messages/eip712/eip712Message.d.ts +6 -0
- package/dist/src/lib/messages/eip712/eip712Message.d.ts.map +1 -0
- package/dist/src/lib/messages/eip712/eip712Message.js +27 -0
- package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts +7 -0
- package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts.map +1 -0
- package/dist/src/lib/messages/eip712/eip712MessageBuilder.js +15 -0
- package/dist/src/lib/messages/eip712/index.d.ts +3 -0
- package/dist/src/lib/messages/eip712/index.d.ts.map +1 -0
- package/dist/src/lib/messages/eip712/index.js +19 -0
- package/dist/src/lib/messages/index.d.ts +1 -0
- package/dist/src/lib/messages/index.d.ts.map +1 -1
- package/dist/src/lib/messages/index.js +2 -1
- package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/messages/messageBuilderFactory.js +4 -1
- package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts +3 -0
- package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts.map +1 -0
- package/dist/test/unit/messages/abstractEthMessageBuilderTests.js +110 -0
- package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts +43 -0
- package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts.map +1 -0
- package/dist/test/unit/messages/abstractEthMessageTestTypes.js +3 -0
- package/dist/test/unit/messages/abstractEthMessagesTests.d.ts +3 -0
- package/dist/test/unit/messages/abstractEthMessagesTests.d.ts.map +1 -0
- package/dist/test/unit/messages/abstractEthMessagesTests.js +129 -0
- package/dist/test/unit/messages/eip191/eip191Message.js +7 -129
- package/dist/test/unit/messages/eip191/eip191MessageBuilder.js +9 -109
- package/dist/test/unit/messages/eip191/fixtures.d.ts +109 -0
- package/dist/test/unit/messages/eip191/fixtures.d.ts.map +1 -0
- package/dist/test/unit/messages/eip191/fixtures.js +63 -0
- package/dist/test/unit/messages/eip712/eip712Message.d.ts +2 -0
- package/dist/test/unit/messages/eip712/eip712Message.d.ts.map +1 -0
- package/dist/test/unit/messages/eip712/eip712Message.js +15 -0
- package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts +2 -0
- package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/messages/eip712/eip712MessageBuilder.js +16 -0
- package/dist/test/unit/messages/eip712/fixtures.d.ts +76 -0
- package/dist/test/unit/messages/eip712/fixtures.d.ts.map +1 -0
- package/dist/test/unit/messages/eip712/fixtures.js +120 -0
- package/dist/test/unit/messages/messageBuilderFactory.js +25 -17
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/dist/test/unit/messages/fixtures.d.ts +0 -24
- package/dist/test/unit/messages/fixtures.d.ts.map +0 -1
- package/dist/test/unit/messages/fixtures.js +0 -28
|
@@ -1,137 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
require("should");
|
|
7
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
8
4
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
-
const fixtures_1 = require("
|
|
5
|
+
const fixtures_1 = require("./fixtures");
|
|
10
6
|
const src_1 = require("../../../../src");
|
|
7
|
+
const abstractEthMessagesTests_1 = require("../abstractEthMessagesTests");
|
|
11
8
|
describe('EIP191 Message', () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
it('should initialize with the correct type', () => {
|
|
17
|
-
const message = new src_1.EIP191Message({
|
|
18
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
19
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
20
|
-
});
|
|
21
|
-
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
22
|
-
});
|
|
23
|
-
it('should generate the correct signable payload with Ethereum prefix', async () => {
|
|
24
|
-
const message = new src_1.EIP191Message({
|
|
25
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
26
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
27
|
-
});
|
|
28
|
-
const signablePayload = await message.getSignablePayload();
|
|
29
|
-
// Message is prefixed with "\u0019Ethereum Signed Message:\n<length><message>"
|
|
30
|
-
const expectedPrefix = `\u0019Ethereum Signed Message:\n${fixtures_1.fixtures.messages.validMessage.length}`;
|
|
31
|
-
const expectedPayload = Buffer.from(expectedPrefix.concat(fixtures_1.fixtures.messages.validMessage)).toString('hex');
|
|
32
|
-
signablePayload.should.equal(expectedPayload);
|
|
33
|
-
});
|
|
34
|
-
it('should handle empty messages correctly', async () => {
|
|
35
|
-
const message = new src_1.EIP191Message({
|
|
36
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
37
|
-
payload: fixtures_1.fixtures.messages.emptyMessage,
|
|
38
|
-
});
|
|
39
|
-
const signablePayload = await message.getSignablePayload();
|
|
40
|
-
// Empty message has length 0
|
|
41
|
-
const expectedPrefix = `\u0019Ethereum Signed Message:\n0`;
|
|
42
|
-
const expectedPayload = Buffer.from(expectedPrefix.concat('')).toString('hex');
|
|
43
|
-
signablePayload.should.equal(expectedPayload);
|
|
44
|
-
});
|
|
45
|
-
it('should handle messages with special characters', async () => {
|
|
46
|
-
const message = new src_1.EIP191Message({
|
|
47
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
48
|
-
payload: fixtures_1.fixtures.messages.specialCharsMessage,
|
|
49
|
-
});
|
|
50
|
-
const signablePayload = await message.getSignablePayload();
|
|
51
|
-
const expectedPrefix = `\u0019Ethereum Signed Message:\n${fixtures_1.fixtures.messages.specialCharsMessage.length}`;
|
|
52
|
-
const expectedPayload = Buffer.from(expectedPrefix.concat(fixtures_1.fixtures.messages.specialCharsMessage)).toString('hex');
|
|
53
|
-
signablePayload.should.equal(expectedPayload);
|
|
54
|
-
});
|
|
55
|
-
it('should maintain signatures and signers correctly', () => {
|
|
56
|
-
const message = new src_1.EIP191Message({
|
|
57
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
58
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
59
|
-
signatures: [fixtures_1.fixtures.eip191.signature],
|
|
60
|
-
signers: [fixtures_1.fixtures.eip191.signer],
|
|
61
|
-
});
|
|
62
|
-
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
63
|
-
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
64
|
-
// Test adding new ones
|
|
65
|
-
message.addSignature({
|
|
66
|
-
publicKey: { pub: 'pub1' },
|
|
67
|
-
signature: Buffer.from('new-signature'),
|
|
68
|
-
});
|
|
69
|
-
message.addSigner('new-signer');
|
|
70
|
-
message.getSignatures().should.containEql({
|
|
71
|
-
publicKey: { pub: 'pub1' },
|
|
72
|
-
signature: Buffer.from('new-signature'),
|
|
73
|
-
});
|
|
74
|
-
message.getSigners().should.containEql('new-signer');
|
|
75
|
-
// Test replacing all
|
|
76
|
-
message.setSignatures([
|
|
77
|
-
{
|
|
78
|
-
publicKey: { pub: 'pub2' },
|
|
79
|
-
signature: Buffer.from('replaced-signature'),
|
|
80
|
-
},
|
|
81
|
-
]);
|
|
82
|
-
message.setSigners(['replaced-signer']);
|
|
83
|
-
message.getSignatures().should.deepEqual([
|
|
84
|
-
{
|
|
85
|
-
publicKey: { pub: 'pub2' },
|
|
86
|
-
signature: Buffer.from('replaced-signature'),
|
|
87
|
-
},
|
|
88
|
-
]);
|
|
89
|
-
message.getSigners().should.deepEqual(['replaced-signer']);
|
|
90
|
-
});
|
|
91
|
-
it('should store and retrieve metadata correctly', () => {
|
|
92
|
-
const message = new src_1.EIP191Message({
|
|
93
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
94
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
95
|
-
metadata: fixtures_1.fixtures.eip191.metadata,
|
|
96
|
-
});
|
|
97
|
-
message.getMetadata().should.deepEqual(fixtures_1.fixtures.eip191.metadata);
|
|
98
|
-
});
|
|
99
|
-
describe('Broadcast Format', () => {
|
|
100
|
-
it('should convert to broadcast format correctly', async () => {
|
|
101
|
-
const message = new src_1.EIP191Message({
|
|
102
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
103
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
104
|
-
signatures: [fixtures_1.fixtures.eip191.signature],
|
|
105
|
-
signers: [fixtures_1.fixtures.eip191.signer],
|
|
106
|
-
metadata: fixtures_1.fixtures.eip191.metadata,
|
|
107
|
-
});
|
|
108
|
-
const broadcastFormat = await message.toBroadcastFormat();
|
|
109
|
-
const expectedSerializedSignatures = (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]);
|
|
110
|
-
broadcastFormat.type.should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
111
|
-
broadcastFormat.payload.should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
112
|
-
broadcastFormat.serializedSignatures?.should.deepEqual(expectedSerializedSignatures);
|
|
113
|
-
broadcastFormat.signers?.should.deepEqual([fixtures_1.fixtures.eip191.signer]);
|
|
114
|
-
broadcastFormat.metadata.should.deepEqual(fixtures_1.fixtures.eip191.metadata);
|
|
115
|
-
broadcastFormat.signablePayload.should.equal('MTk0NTc0Njg2NTcyNjU3NTZkMjA1MzY5Njc2ZTY1NjQyMDRkNjU3MzczNjE2NzY1M2EwYTMxMzM0ODY1NmM2YzZmMmMyMDc3NmY3MjZjNjQyMQ==');
|
|
116
|
-
});
|
|
117
|
-
it('should convert to broadcast string correctly', async () => {
|
|
118
|
-
const message = new src_1.EIP191Message({
|
|
119
|
-
coinConfig: fixtures_1.fixtures.coin,
|
|
120
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
121
|
-
signatures: [fixtures_1.fixtures.eip191.signature],
|
|
122
|
-
signers: [fixtures_1.fixtures.eip191.signer],
|
|
123
|
-
metadata: fixtures_1.fixtures.eip191.metadata,
|
|
124
|
-
});
|
|
125
|
-
const broadcastHex = await message.toBroadcastString();
|
|
126
|
-
const broadcastString = Buffer.from(broadcastHex, 'hex').toString();
|
|
127
|
-
const parsedBroadcast = JSON.parse(broadcastString);
|
|
128
|
-
const expectedSerializedSignatures = (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]);
|
|
129
|
-
parsedBroadcast.type.should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
130
|
-
parsedBroadcast.payload.should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
131
|
-
parsedBroadcast.serializedSignatures.should.deepEqual(expectedSerializedSignatures);
|
|
132
|
-
parsedBroadcast.signers.should.deepEqual([fixtures_1.fixtures.eip191.signer]);
|
|
133
|
-
parsedBroadcast.metadata.should.deepEqual(fixtures_1.fixtures.eip191.metadata);
|
|
134
|
-
});
|
|
9
|
+
(0, abstractEthMessagesTests_1.testEthMessageSigning)({
|
|
10
|
+
messageType: sdk_core_1.MessageStandardType.EIP191,
|
|
11
|
+
messageClass: src_1.EIP191Message,
|
|
12
|
+
...fixtures_1.fixtures,
|
|
135
13
|
});
|
|
136
14
|
});
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9laXAxOTEvZWlwMTkxTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsOENBQTJFO0FBQzNFLDBDQUF1QztBQUN2Qyx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFdEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzRCwrRUFBK0U7UUFDL0UsTUFBTSxjQUFjLEdBQUcsbUNBQW1DLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0csZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzRCw2QkFBNkI7UUFDN0IsTUFBTSxjQUFjLEdBQUcsbUNBQW1DLENBQUM7UUFDM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9FLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQWEsQ0FBQztZQUNoQyxVQUFVLEVBQUUsbUJBQVEsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxtQ0FBbUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEgsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO1FBQzFELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQWEsQ0FBQztZQUNoQyxVQUFVLEVBQUUsbUJBQVEsQ0FBQyxJQUFJO1lBQ3pCLE9BQU8sRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3ZDLFVBQVUsRUFBRSxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0QsdUJBQXVCO1FBQ3ZCLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDbkIsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUMxQixTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQzFCLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUN4QyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxxQkFBcUI7UUFDckIsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUNwQjtnQkFDRSxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO2dCQUMxQixTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzthQUM3QztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFFeEMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDdkM7Z0JBQ0UsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtnQkFDMUIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDN0M7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDdkMsUUFBUSxFQUFFLG1CQUFRLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFdBQVcsRUFBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFhLENBQUM7Z0JBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7Z0JBQ3pCLE9BQU8sRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUN2QyxVQUFVLEVBQUUsQ0FBQyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDakMsUUFBUSxFQUFFLG1CQUFRLENBQUMsTUFBTSxDQUFDLFFBQVE7YUFDbkMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUUxRCxNQUFNLDRCQUE0QixHQUFHLElBQUEsOEJBQW1CLEVBQUMsQ0FBQyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RCxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckUsZUFBZSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNyRixlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLGVBQWUsQ0FBQyxRQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxlQUFlLENBQUMsZUFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUMzQyxrSEFBa0gsQ0FDbkgsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQWEsQ0FBQztnQkFDaEMsVUFBVSxFQUFFLG1CQUFRLENBQUMsSUFBSTtnQkFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3ZDLFVBQVUsRUFBRSxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsT0FBTyxFQUFFLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsbUJBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUTthQUNuQyxDQUFDLENBQUM7WUFFSCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEQsTUFBTSw0QkFBNEIsR0FBRyxJQUFBLDhCQUFtQixFQUFDLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUV0RixlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JFLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDcEYsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNuRSxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIHNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZml4dHVyZXMgfSBmcm9tICcuLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBFSVAxOTFNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcblxuZGVzY3JpYmUoJ0VJUDE5MSBNZXNzYWdlJywgKCkgPT4ge1xuICBjb25zdCBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIHRoZSBjb3JyZWN0IHR5cGUnLCAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBFSVAxOTFNZXNzYWdlKHtcbiAgICAgIGNvaW5Db25maWc6IGZpeHR1cmVzLmNvaW4sXG4gICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UsXG4gICAgfSk7XG5cbiAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdlbmVyYXRlIHRoZSBjb3JyZWN0IHNpZ25hYmxlIHBheWxvYWQgd2l0aCBFdGhlcmV1bSBwcmVmaXgnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBFSVAxOTFNZXNzYWdlKHtcbiAgICAgIGNvaW5Db25maWc6IGZpeHR1cmVzLmNvaW4sXG4gICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgIC8vIE1lc3NhZ2UgaXMgcHJlZml4ZWQgd2l0aCBcIlxcdTAwMTlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTpcXG48bGVuZ3RoPjxtZXNzYWdlPlwiXG4gICAgY29uc3QgZXhwZWN0ZWRQcmVmaXggPSBgXFx1MDAxOUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOlxcbiR7Zml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlLmxlbmd0aH1gO1xuICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKGV4cGVjdGVkUHJlZml4LmNvbmNhdChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBzaWduYWJsZVBheWxvYWQuc2hvdWxkLmVxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IG1lc3NhZ2VzIGNvcnJlY3RseScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLmVtcHR5TWVzc2FnZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgLy8gRW1wdHkgbWVzc2FnZSBoYXMgbGVuZ3RoIDBcbiAgICBjb25zdCBleHBlY3RlZFByZWZpeCA9IGBcXHUwMDE5RXRoZXJldW0gU2lnbmVkIE1lc3NhZ2U6XFxuMGA7XG4gICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0gQnVmZmVyLmZyb20oZXhwZWN0ZWRQcmVmaXguY29uY2F0KCcnKSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgc2lnbmFibGVQYXlsb2FkLnNob3VsZC5lcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBtZXNzYWdlcyB3aXRoIHNwZWNpYWwgY2hhcmFjdGVycycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnNwZWNpYWxDaGFyc01lc3NhZ2UsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSBhd2FpdCBtZXNzYWdlLmdldFNpZ25hYmxlUGF5bG9hZCgpO1xuICAgIGNvbnN0IGV4cGVjdGVkUHJlZml4ID0gYFxcdTAwMTlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTpcXG4ke2ZpeHR1cmVzLm1lc3NhZ2VzLnNwZWNpYWxDaGFyc01lc3NhZ2UubGVuZ3RofWA7XG4gICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0gQnVmZmVyLmZyb20oZXhwZWN0ZWRQcmVmaXguY29uY2F0KGZpeHR1cmVzLm1lc3NhZ2VzLnNwZWNpYWxDaGFyc01lc3NhZ2UpKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBzaWduYWJsZVBheWxvYWQuc2hvdWxkLmVxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbWFpbnRhaW4gc2lnbmF0dXJlcyBhbmQgc2lnbmVycyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBFSVAxOTFNZXNzYWdlKHtcbiAgICAgIGNvaW5Db25maWc6IGZpeHR1cmVzLmNvaW4sXG4gICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UsXG4gICAgICBzaWduYXR1cmVzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZV0sXG4gICAgICBzaWduZXJzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0sXG4gICAgfSk7XG5cbiAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlKTtcbiAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcblxuICAgIC8vIFRlc3QgYWRkaW5nIG5ldyBvbmVzXG4gICAgbWVzc2FnZS5hZGRTaWduYXR1cmUoe1xuICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCduZXctc2lnbmF0dXJlJyksXG4gICAgfSk7XG4gICAgbWVzc2FnZS5hZGRTaWduZXIoJ25ldy1zaWduZXInKTtcblxuICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKHtcbiAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnbmV3LXNpZ25hdHVyZScpLFxuICAgIH0pO1xuICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKCduZXctc2lnbmVyJyk7XG5cbiAgICAvLyBUZXN0IHJlcGxhY2luZyBhbGxcbiAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMoW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMicgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgncmVwbGFjZWQtc2lnbmF0dXJlJyksXG4gICAgICB9LFxuICAgIF0pO1xuICAgIG1lc3NhZ2Uuc2V0U2lnbmVycyhbJ3JlcGxhY2VkLXNpZ25lciddKTtcblxuICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5kZWVwRXF1YWwoW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMicgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgncmVwbGFjZWQtc2lnbmF0dXJlJyksXG4gICAgICB9LFxuICAgIF0pO1xuICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5kZWVwRXF1YWwoWydyZXBsYWNlZC1zaWduZXInXSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc3RvcmUgYW5kIHJldHJpZXZlIG1ldGFkYXRhIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgIG1ldGFkYXRhOiBmaXh0dXJlcy5laXAxOTEubWV0YWRhdGEsXG4gICAgfSk7XG5cbiAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5kZWVwRXF1YWwoZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0Jyb2FkY2FzdCBGb3JtYXQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IHRvIGJyb2FkY2FzdCBmb3JtYXQgY29ycmVjdGx5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBFSVAxOTFNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlLFxuICAgICAgICBzaWduYXR1cmVzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZV0sXG4gICAgICAgIHNpZ25lcnM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSxcbiAgICAgICAgbWV0YWRhdGE6IGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkU2VyaWFsaXplZFNpZ25hdHVyZXMgPSBzZXJpYWxpemVTaWduYXR1cmVzKFtmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlXSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQudHlwZS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgYnJvYWRjYXN0Rm9ybWF0LnBheWxvYWQuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2VyaWFsaXplZFNpZ25hdHVyZXM/LnNob3VsZC5kZWVwRXF1YWwoZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2lnbmVycz8uc2hvdWxkLmRlZXBFcXVhbChbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0pO1xuICAgICAgYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhIS5zaG91bGQuZGVlcEVxdWFsKGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2lnbmFibGVQYXlsb2FkIS5zaG91bGQuZXF1YWwoXG4gICAgICAgICdNVGswTlRjME5qZzJOVGN5TmpVM05UWmtNakExTXpZNU5qYzJaVFkxTmpReU1EUmtOalUzTXpjek5qRTJOelkxTTJFd1lUTXhNek0wT0RZMU5tTTJZelptTW1NeU1EYzNObVkzTWpaak5qUXlNUT09J1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29udmVydCB0byBicm9hZGNhc3Qgc3RyaW5nIGNvcnJlY3RseScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgRUlQMTkxTWVzc2FnZSh7XG4gICAgICAgIGNvaW5Db25maWc6IGZpeHR1cmVzLmNvaW4sXG4gICAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgICAgc2lnbmF0dXJlczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdLFxuICAgICAgICBzaWduZXJzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0sXG4gICAgICAgIG1ldGFkYXRhOiBmaXh0dXJlcy5laXAxOTEubWV0YWRhdGEsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0SGV4ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdFN0cmluZygpO1xuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gQnVmZmVyLmZyb20oYnJvYWRjYXN0SGV4LCAnaGV4JykudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IHBhcnNlZEJyb2FkY2FzdCA9IEpTT04ucGFyc2UoYnJvYWRjYXN0U3RyaW5nKTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkU2VyaWFsaXplZFNpZ25hdHVyZXMgPSBzZXJpYWxpemVTaWduYXR1cmVzKFtmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlXSk7XG5cbiAgICAgIHBhcnNlZEJyb2FkY2FzdC50eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBwYXJzZWRCcm9hZGNhc3QucGF5bG9hZC5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIHBhcnNlZEJyb2FkY2FzdC5zZXJpYWxpemVkU2lnbmF0dXJlcy5zaG91bGQuZGVlcEVxdWFsKGV4cGVjdGVkU2VyaWFsaXplZFNpZ25hdHVyZXMpO1xuICAgICAgcGFyc2VkQnJvYWRjYXN0LnNpZ25lcnMuc2hvdWxkLmRlZXBFcXVhbChbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0pO1xuICAgICAgcGFyc2VkQnJvYWRjYXN0Lm1ldGFkYXRhLnNob3VsZC5kZWVwRXF1YWwoZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9laXAxOTEvZWlwMTkxTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQiw4Q0FBc0Q7QUFDdEQseUNBQXNDO0FBQ3RDLHlDQUFnRDtBQUNoRCwwRUFBb0U7QUFFcEUsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixJQUFBLGdEQUFxQixFQUFDO1FBQ3BCLFdBQVcsRUFBRSw4QkFBbUIsQ0FBQyxNQUFNO1FBQ3ZDLFlBQVksRUFBRSxtQkFBYTtRQUMzQixHQUFHLG1CQUFRO0tBQ1osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGZpeHR1cmVzIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBFSVAxOTFNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IHRlc3RFdGhNZXNzYWdlU2lnbmluZyB9IGZyb20gJy4uL2Fic3RyYWN0RXRoTWVzc2FnZXNUZXN0cyc7XG5cbmRlc2NyaWJlKCdFSVAxOTEgTWVzc2FnZScsICgpID0+IHtcbiAgdGVzdEV0aE1lc3NhZ2VTaWduaW5nKHtcbiAgICBtZXNzYWdlVHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgbWVzc2FnZUNsYXNzOiBFSVAxOTFNZXNzYWdlLFxuICAgIC4uLmZpeHR1cmVzLFxuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,116 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
require("should");
|
|
7
|
-
const
|
|
8
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
-
const fixtures_1 = require("../fixtures");
|
|
4
|
+
const abstractEthMessageBuilderTests_1 = require("../abstractEthMessageBuilderTests");
|
|
10
5
|
const src_1 = require("../../../../src");
|
|
6
|
+
const fixtures_1 = require("./fixtures");
|
|
7
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
11
8
|
describe('EIP191 Message Builder', () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
it('should initialize with the correct message type', () => {
|
|
18
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
19
|
-
// Test the builder's private property indirectly through build()
|
|
20
|
-
builder.should.be.instanceof(src_1.Eip191MessageBuilder);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
describe('build method', () => {
|
|
24
|
-
it('should build a valid EIP191 message', async () => {
|
|
25
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
26
|
-
builder.setPayload(fixtures_1.fixtures.messages.validMessage).setMetadata({ customData: 'test data' });
|
|
27
|
-
const message = await builder.build();
|
|
28
|
-
message.should.be.instanceof(src_1.EIP191Message);
|
|
29
|
-
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
30
|
-
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
31
|
-
message.getMetadata().should.have.property('customData', 'test data');
|
|
32
|
-
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
33
|
-
});
|
|
34
|
-
it('should throw an error when building without setting payload', async () => {
|
|
35
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
36
|
-
await builder.build().should.be.rejectedWith('Message payload must be set before building the message');
|
|
37
|
-
});
|
|
38
|
-
it('should include signers when building a message', async () => {
|
|
39
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
40
|
-
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
41
|
-
builder.addSigner(fixtures_1.fixtures.eip191.signer);
|
|
42
|
-
const message = await builder.build();
|
|
43
|
-
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
44
|
-
});
|
|
45
|
-
it('should include signatures when building a message', async () => {
|
|
46
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
47
|
-
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
48
|
-
builder.addSignature(fixtures_1.fixtures.eip191.signature);
|
|
49
|
-
const message = await builder.build();
|
|
50
|
-
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
51
|
-
});
|
|
52
|
-
it('should override metadata.encoding with utf8', async () => {
|
|
53
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
54
|
-
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
55
|
-
builder.setMetadata({ encoding: 'hex', customData: 'test data' });
|
|
56
|
-
const message = await builder.build();
|
|
57
|
-
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
58
|
-
message.getMetadata().should.have.property('customData', 'test data');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('fromBroadcastFormat method', () => {
|
|
62
|
-
it('should reconstruct a message from broadcast format', async () => {
|
|
63
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
64
|
-
const broadcastMessage = {
|
|
65
|
-
type: sdk_core_1.MessageStandardType.EIP191,
|
|
66
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
67
|
-
serializedSignatures: (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]),
|
|
68
|
-
signers: [fixtures_1.fixtures.eip191.signer],
|
|
69
|
-
metadata: fixtures_1.fixtures.eip191.metadata,
|
|
70
|
-
};
|
|
71
|
-
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
72
|
-
message.should.be.instanceof(src_1.EIP191Message);
|
|
73
|
-
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
74
|
-
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
75
|
-
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
76
|
-
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
77
|
-
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
78
|
-
message.getMetadata().should.have.property('customData', 'test data');
|
|
79
|
-
});
|
|
80
|
-
it('should throw an error for incorrect message type', async () => {
|
|
81
|
-
const builder = new src_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
82
|
-
const broadcastMessage = {
|
|
83
|
-
type: sdk_core_1.MessageStandardType.UNKNOWN,
|
|
84
|
-
payload: fixtures_1.fixtures.messages.validMessage,
|
|
85
|
-
serializedSignatures: (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]),
|
|
86
|
-
signers: [fixtures_1.fixtures.eip191.signer],
|
|
87
|
-
metadata: {},
|
|
88
|
-
};
|
|
89
|
-
await builder
|
|
90
|
-
.fromBroadcastFormat(broadcastMessage)
|
|
91
|
-
.should.be.rejectedWith(`Invalid message type, expected ${sdk_core_1.MessageStandardType.EIP191}`);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
describe('fromBroadcastString', function () {
|
|
95
|
-
it('should parse broadcastable string and return correct builder type', async function () {
|
|
96
|
-
const broadcastHex = '7b2274797065223a22454950313931222c227061796c6f6164223a2253544152203130303020746f20616464725f746573743171727139366830726a68743275366e336667776d7939307837676d6c38686475657774326e6d72327536636d6b707771743477373839776b346534387a6a73616b673237647533683730776d656a756b34386b783465343368767a737566736876362033316136626162353061383462383433396164636662373836626232303230663638303765366538666461363239623432343131306663376262316336623862222c2273657269616c697a65645369676e617475726573223a5b7b227075626c69634b6579223a22222c227369676e6174757265223a2274386c6e725a4b7a757264566c777343355a66422f4b314b5533516d4b5a3970343671576a3155795744307046464577584e6d754f327a4845644e3164372b2b414e5653796f5a3869547737375073546462334b3878773d227d5d2c227369676e657273223a5b22307866613061376634613064396535343463353761656361346533326233623130343862363333636466225d2c226d65746164617461223a7b22656e636f64696e67223a2275746638227d2c227369676e61626c655061796c6f6164223a224d546b304e5463304e6a67324e5463794e6a55334e545a6b4d6a41314d7a59354e6a63325a5459314e6a51794d44526b4e6a55334d7a637a4e6a45324e7a59314d32457759544d784d7a677a4e6a557a4e5451304d5455794d6a417a4d544d774d7a417a4d4449774e7a51325a6a49774e6a45324e4459304e7a49315a6a63304e6a55334d7a63304d7a45334d5463794e7a457a4f544d324e6a677a4d4463794e6d45324f4463304d7a49334e544d324e6d557a4d7a59324e6a63334e7a5a6b4e7a6b7a4f544d774e7a677a4e7a59334e6d5132597a4d344e6a67324e4463314e6a55334e7a63304d7a49325a545a6b4e7a497a4d6a63314d7a59324d7a5a6b4e6d49334d4463334e7a45334e444d304e7a637a4e7a4d344d7a6b334e7a5a694d7a51324e544d304d7a673359545a684e7a4d324d545a694e6a637a4d6a4d334e6a51334e544d7a4e6a677a4e7a4d774e7a63325a4459314e6d45334e545a694d7a517a4f445a694e7a677a4e4459314d7a517a4d7a59344e7a59335954637a4e7a55324e6a637a4e6a67334e6a4d324d6a417a4d7a4d784e6a457a4e6a59794e6a45324d6a4d314d7a41324d544d344d7a51324d6a4d344d7a517a4d7a4d354e6a45324e44597a4e6a59324d6a4d334d7a677a4e6a59794e6a497a4d6a4d774d7a497a4d4459324d7a597a4f444d774d7a63324e544d324e6a557a4f4459324e6a51324d544d324d7a497a4f5459794d7a517a4d6a4d304d7a457a4d544d774e6a59324d7a4d334e6a49324d6a4d784e6a4d7a4e6a59794d7a67324d673d3d227d';
|
|
97
|
-
const coinConfig = { name: 'eth' };
|
|
98
|
-
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
99
|
-
const builder = factory.fromBroadcastString(broadcastHex);
|
|
100
|
-
const message = await builder.build();
|
|
101
|
-
const payload = message.getPayload();
|
|
102
|
-
const payloadParts = payload.split(' ');
|
|
103
|
-
const address = message.getSigners()[0];
|
|
104
|
-
address.should.equal('0xfa0a7f4a0d9e544c57aeca4e32b3b1048b633cdf');
|
|
105
|
-
const destinationAddress = payloadParts[3];
|
|
106
|
-
destinationAddress.should.equal('addr_test1qrq96h0rjht2u6n3fgwmy90x7gml8hduewt2nmr2u6cmkpwqt4w789wk4e48zjsakg27du3h70wmejuk48kx4e43hvzsufshv6');
|
|
107
|
-
const amount = Number(payloadParts[1]);
|
|
108
|
-
amount.should.equal(1000);
|
|
109
|
-
const signature = message.getSignatures()[0].signature.toString('hex');
|
|
110
|
-
signature.should.equal('b7c967ad92b3bab755970b02e597c1fcad4a537426299f69e3aa968f5532583d291451305cd9ae3b6cc711d37577bfbe00d552ca867c893c3becfb1375bdcaf31c');
|
|
111
|
-
const publicKeyHex = message.getSignatures()[0].publicKey.pub;
|
|
112
|
-
publicKeyHex.should.equal('');
|
|
113
|
-
});
|
|
9
|
+
(0, abstractEthMessageBuilderTests_1.testEthMessageBuilding)({
|
|
10
|
+
messageType: sdk_core_1.MessageStandardType.EIP191,
|
|
11
|
+
messageBuilderClass: src_1.Eip191MessageBuilder,
|
|
12
|
+
messageClass: src_1.EIP191Message,
|
|
13
|
+
test: fixtures_1.fixtures.messageBuilderTest,
|
|
114
14
|
});
|
|
115
15
|
});
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwMTkxL2VpcDE5MU1lc3NhZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0JBQWdCO0FBQ2hCLGtEQUEwQjtBQUMxQiw4Q0FBaUc7QUFDakcsMENBQXVDO0FBQ3ZDLHlDQUE2RjtBQUc3RixRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV0QyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDM0IsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEdBQUcsRUFBRTtZQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFvQixDQUFDLG1CQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsaUVBQWlFO1lBQ2pFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQywwQkFBb0IsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUM1QixFQUFFLENBQUMscUNBQXFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBb0IsQ0FBQyxtQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhELE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFF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T0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDOUQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGZpeHR1cmVzIH0gZnJvbSAnLi4vZml4dHVyZXMnO1xuaW1wb3J0IHsgRUlQMTkxTWVzc2FnZSwgRWlwMTkxTWVzc2FnZUJ1aWxkZXIsIE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZGVzY3JpYmUoJ0VJUDE5MSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvbnN0cnVjdG9yJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIHRoZSBjb3JyZWN0IG1lc3NhZ2UgdHlwZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG4gICAgICAvLyBUZXN0IHRoZSBidWlsZGVyJ3MgcHJpdmF0ZSBwcm9wZXJ0eSBpbmRpcmVjdGx5IHRocm91Z2ggYnVpbGQoKVxuICAgICAgYnVpbGRlci5zaG91bGQuYmUuaW5zdGFuY2VvZihFaXAxOTFNZXNzYWdlQnVpbGRlcik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZCBtZXRob2QnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHZhbGlkIEVJUDE5MSBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSkuc2V0TWV0YWRhdGEoeyBjdXN0b21EYXRhOiAndGVzdCBkYXRhJyB9KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5zaG91bGQuYmUuaW5zdGFuY2VvZihFSVAxOTFNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2N1c3RvbURhdGEnLCAndGVzdCBkYXRhJyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBzZXR0aW5nIHBheWxvYWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHNpZ25lcnMgd2hlbiBidWlsZGluZyBhIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmVyKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBzaWduYXR1cmVzIHdoZW4gYnVpbGRpbmcgYSBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25hdHVyZShmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG92ZXJyaWRlIG1ldGFkYXRhLmVuY29kaW5nIHdpdGggdXRmOCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgYnVpbGRlci5zZXRNZXRhZGF0YSh7IGVuY29kaW5nOiAnaGV4JywgY3VzdG9tRGF0YTogJ3Rlc3QgZGF0YScgfSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2N1c3RvbURhdGEnLCAndGVzdCBkYXRhJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tQnJvYWRjYXN0Rm9ybWF0IG1ldGhvZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlY29uc3RydWN0IGEgbWVzc2FnZSBmcm9tIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YTogZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcblxuICAgICAgbWVzc2FnZS5zaG91bGQuYmUuaW5zdGFuY2VvZihFSVAxOTFNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25lcik7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjdXN0b21EYXRhJywgJ3Rlc3QgZGF0YScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBmb3IgaW5jb3JyZWN0IG1lc3NhZ2UgdHlwZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04sXG4gICAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBidWlsZGVyXG4gICAgICAgIC5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpXG4gICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKGBJbnZhbGlkIG1lc3NhZ2UgdHlwZSwgZXhwZWN0ZWQgJHtNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MX1gKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Zyb21Ccm9hZGNhc3RTdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBicm9hZGNhc3RhYmxlIHN0cmluZyBhbmQgcmV0dXJuIGNvcnJlY3QgYnVpbGRlciB0eXBlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnJvYWRjYXN0SGV4ID1cbiAgICAgICAgJzdiMjI3NDc5NzA2NTIyM2EyMjQ1NDk1MDMxMzkzMTIyMmMyMjcwNjE3OTZjNmY2MTY0MjIzYTIyNTM1NDQxNTIyMDMxMzAzMDMwMjA3NDZmMjA2MTY0NjQ3MjVmNzQ2NTczNzQzMTcxNzI3MTM5MzY2ODMwNzI2YTY4NzQzMjc1MzY2ZTMzNjY2Nzc3NmQ3OTM5MzA3ODM3Njc2ZDZjMzg2ODY0NzU2NTc3NzQzMjZlNmQ3MjMyNzUzNjYzNmQ2YjcwNzc3MTc0MzQ3NzM3MzgzOTc3NmIzNDY1MzQzODdhNmE3MzYxNmI2NzMyMzc2NDc1MzM2ODM3MzA3NzZkNjU2YTc1NmIzNDM4NmI3ODM0NjUzNDMzNjg3NjdhNzM3NTY2NzM2ODc2MzYyMDMzMzE2MTM2NjI2MTYyMzUzMDYxMzgzNDYyMzgzNDMzMzk2MTY0NjM2NjYyMzczODM2NjI2MjMyMzAzMjMwNjYzNjM4MzAzNzY1MzY2NTM4NjY2NDYxMzYzMjM5NjIzNDMyMzQzMTMxMzA2NjYzMzc2MjYyMzE2MzM2NjIzODYyMjIyYzIyNzM2NTcyNjk2MTZjNjk3YTY1NjQ1MzY5Njc2ZTYxNzQ3NTcyNjU3MzIyM2E1YjdiMjI3MDc1NjI2YzY5NjM0YjY1NzkyMjNhMjIyMjJjMjI3MzY5Njc2ZTYxNzQ3NTcyNjUyMjNhMjI3NDM4NmM2ZTcyNWE0YjdhNzU3MjY0NTY2Yzc3NzM0MzM1NWE2NjQyMmY0YjMxNGI1NTMzNTE2ZDRiNWEzOTcwMzQzNjcxNTc2YTMxNTU3OTU3NDQzMDcwNDY0NjQ1Nzc1ODRlNmQ3NTRmMzI3YTQ4NDU2NDRlMzE2NDM3MmIyYjQxNGU1NjUzNzk2ZjVhMzg2OTU0NzczNzM3NTA3MzU0NjQ2MjMzNGIzODc4NzczZDIyN2Q1ZDJjMjI3MzY5Njc2ZTY1NzI3MzIyM2E1YjIyMzA3ODY2NjEzMDYxMzc2NjM0NjEzMDY0Mzk2NTM1MzQzNDYzMzUzNzYxNjU2MzYxMzQ2NTMzMzI2MjMzNjIzMTMwMzQzODYyMzYzMzMzNjM2NDY2MjI1ZDJjMjI2ZDY1NzQ2MTY0NjE3NDYxMjIzYTdiMjI2NTZlNjM2ZjY0Njk2ZTY3MjIzYTIyNzU3NDY2MzgyMjdkMmMyMjczNjk2NzZlNjE2MjZjNjU1MDYxNzk2YzZmNjE2NDIyM2EyMjRkNTQ2YjMwNGU1NDYzMzA0ZTZhNjczMjRlNTQ2Mzc5NGU2YTU1MzM0ZTU0NWE2YjRkNmE0MTMxNGQ3YTU5MzU0ZTZhNjMzMjVhNTQ1OTMxNGU2YTUxNzk0ZDQ0NTI2YjRlNmE1NTMzNGQ3YTYzN2E0ZTZhNDUzMjRlN2E1OTMxNGQzMjQ1Nzc1OTU0NGQ3ODRkN2E2NzdhNGU2YTU1N2E0ZTU0NTEzMDRkNTQ1NTc5NGQ2YTQxN2E0ZDU0NGQ3NzRkN2E0MTdhNGQ0NDQ5Nzc0ZTdhNTEzMjVhNmE0OTc3NGU2YTQ1MzI0ZTQ0NTkzMDRlN2E0OTMxNWE2YTYzMzA0ZTZhNTUzMzRkN2E2MzMwNGQ3YTQ1MzM0ZDU0NjM3OTRlN2E0NTdhNGY1NDRkMzI0ZTZhNjc3YTRkNDQ2Mzc5NGU2ZDQ1MzI0ZjQ0NjMzMDRkN2E0OTMzNGU1NDRkMzI0ZTZkNTU3YTRkN2E1OTMyNGU2YTYzMzM0ZTdhNWE2YjRlN2E2YjdhNGY1NDRkNzc0ZTdhNjc3YTRlN2E1OTMzNGU2ZDUxMzI1OTdhNGQzNDRlNmE2NzMyNGU0NDYzMzE0ZTZhNTUzMzRlN2E2MzMwNGQ3YTQ5MzI1YTU0NWE2YjRlN2E0OTdhNGQ2YTYzMzE0ZDdhNTkzMjRkN2E1YTZiNGU2ZDQ5MzM0ZDQ0NjMzMzRlN2E0NTMzNGU0NDRkMzA0ZTdhNjM3YTRlN2E0ZDM0NGQ3YTZiMzM0ZTdhNWE2OTRkN2E1MTMyNGU1NDRkMzA0ZDdhNjczMzU5NTQ1YTY4NGU3YTRkMzI0ZDU0NWE2OTRlNmE2MzdhNGQ2YTRkMzM0ZTZhNTEzMzRlNTQ0ZDdhNGU2YTY3N2E0ZTdhNGQ3NzRlN2E2MzMyNWE0NDU5MzE0ZTZkNDUzMzRlNTQ1YTY5NGQ3YTUxN2E0ZjQ0NWE2OTRlN2E2NzdhNGU0NDU5MzE0ZDdhNTE3YTRkN2E1OTM0NGU3YTU5MzM1OTU0NjM3YTRlN2E1NTMyNGU2YTYzN2E0ZTZhNjczMzRlNmE0ZDMyNGQ2YTQxN2E0ZDdhNGQ3ODRlNmE0NTdhNGU2YTU5Nzk0ZTZhNDUzMjRkNmE0ZDMxNGQ3YTQxMzI0ZDU0NGQzNDRkN2E1MTMyNGQ2YTRkMzQ0ZDdhNTE3YTRkN2E0ZDM1NGU2YTQ1MzI0ZTQ0NTk3YTRlNmE1OTMyNGQ2YTRkMzM0ZDdhNjc3YTRlNmE1OTc5NGU2YTQ5N2E0ZDZhNGQ3NzRkN2E0OTdhNGQ0NDU5MzI0ZDdhNTk3YTRmNDQ0ZDc3NGQ3YTYzMzI0ZTU0NGQzMjRlNmE1NTdhNGY0NDU5MzI0ZTZhNTEzMjRkNTQ0ZDMyNGQ3YTQ5N2E0ZjU0NTk3OTRkN2E1MTdhNGQ2YTRkMzA0ZDdhNDU3YTRkNTQ0ZDc3NGU2YTU5MzI0ZDdhNGQzMzRlNmE0OTMyNGQ2YTRkNzg0ZTZhNGQ3YTRlNmE1OTc5NGQ3YTY3MzI0ZDY3M2QzZDIyN2QnO1xuICAgICAgY29uc3QgY29pbkNvbmZpZyA9IHsgbmFtZTogJ2V0aCcgfSBhcyBCYXNlQ29pbjtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdFN0cmluZyhicm9hZGNhc3RIZXgpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IG1lc3NhZ2UuZ2V0UGF5bG9hZCgpO1xuICAgICAgY29uc3QgcGF5bG9hZFBhcnRzID0gcGF5bG9hZC5zcGxpdCgnICcpO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IG1lc3NhZ2UuZ2V0U2lnbmVycygpWzBdO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4ZmEwYTdmNGEwZDllNTQ0YzU3YWVjYTRlMzJiM2IxMDQ4YjYzM2NkZicpO1xuICAgICAgY29uc3QgZGVzdGluYXRpb25BZGRyZXNzID0gcGF5bG9hZFBhcnRzWzNdO1xuICAgICAgZGVzdGluYXRpb25BZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ2FkZHJfdGVzdDFxcnE5NmgwcmpodDJ1Nm4zZmd3bXk5MHg3Z21sOGhkdWV3dDJubXIydTZjbWtwd3F0NHc3ODl3azRlNDh6anNha2cyN2R1M2g3MHdtZWp1azQ4a3g0ZTQzaHZ6c3Vmc2h2NidcbiAgICAgICk7XG4gICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIocGF5bG9hZFBhcnRzWzFdKTtcbiAgICAgIGFtb3VudC5zaG91bGQuZXF1YWwoMTAwMCk7XG5cbiAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpWzBdLnNpZ25hdHVyZS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBzaWduYXR1cmUuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnYjdjOTY3YWQ5MmIzYmFiNzU1OTcwYjAyZTU5N2MxZmNhZDRhNTM3NDI2Mjk5ZjY5ZTNhYTk2OGY1NTMyNTgzZDI5MTQ1MTMwNWNkOWFlM2I2Y2M3MTFkMzc1NzdiZmJlMDBkNTUyY2E4NjdjODkzYzNiZWNmYjEzNzViZGNhZjMxYydcbiAgICAgICk7XG4gICAgICBjb25zdCBwdWJsaWNLZXlIZXggPSBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKVswXS5wdWJsaWNLZXkucHViO1xuICAgICAgcHVibGljS2V5SGV4LnNob3VsZC5lcXVhbCgnJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwMTkxL2VpcDE5MU1lc3NhZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWdCO0FBQ2hCLHNGQUEyRTtBQUMzRSx5Q0FBc0U7QUFDdEUseUNBQXNDO0FBQ3RDLDhDQUFzRDtBQUV0RCxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLElBQUEsdURBQXNCLEVBQUM7UUFDckIsV0FBVyxFQUFFLDhCQUFtQixDQUFDLE1BQU07UUFDdkMsbUJBQW1CLEVBQUUsMEJBQW9CO1FBQ3pDLFlBQVksRUFBRSxtQkFBYTtRQUMzQixJQUFJLEVBQUUsbUJBQVEsQ0FBQyxrQkFBa0I7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyB0ZXN0RXRoTWVzc2FnZUJ1aWxkaW5nIH0gZnJvbSAnLi4vYWJzdHJhY3RFdGhNZXNzYWdlQnVpbGRlclRlc3RzJztcbmltcG9ydCB7IEVJUDE5MU1lc3NhZ2UsIEVpcDE5MU1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IGZpeHR1cmVzIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuZGVzY3JpYmUoJ0VJUDE5MSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIHRlc3RFdGhNZXNzYWdlQnVpbGRpbmcoe1xuICAgIG1lc3NhZ2VUeXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICBtZXNzYWdlQnVpbGRlckNsYXNzOiBFaXAxOTFNZXNzYWdlQnVpbGRlcixcbiAgICBtZXNzYWdlQ2xhc3M6IEVJUDE5MU1lc3NhZ2UsXG4gICAgdGVzdDogZml4dHVyZXMubWVzc2FnZUJ1aWxkZXJUZXN0LFxuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export declare const fixtures: {
|
|
2
|
+
tests: {
|
|
3
|
+
validMessage: {
|
|
4
|
+
input: {
|
|
5
|
+
payload: string;
|
|
6
|
+
metadata: {
|
|
7
|
+
encoding: string;
|
|
8
|
+
customData: string;
|
|
9
|
+
};
|
|
10
|
+
signature: {
|
|
11
|
+
publicKey: {
|
|
12
|
+
pub: string;
|
|
13
|
+
};
|
|
14
|
+
signature: Buffer<ArrayBuffer>;
|
|
15
|
+
};
|
|
16
|
+
signer: string;
|
|
17
|
+
};
|
|
18
|
+
expected: {
|
|
19
|
+
expectedSignableHex: string;
|
|
20
|
+
expectedSignableBase64: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
empty: {
|
|
24
|
+
input: {
|
|
25
|
+
payload: string;
|
|
26
|
+
};
|
|
27
|
+
expected: {
|
|
28
|
+
expectedSignableHex: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
specialChars: {
|
|
32
|
+
input: {
|
|
33
|
+
payload: string;
|
|
34
|
+
};
|
|
35
|
+
expected: {
|
|
36
|
+
expectedSignableHex: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
longMessage: {
|
|
40
|
+
input: {
|
|
41
|
+
payload: string;
|
|
42
|
+
};
|
|
43
|
+
expected: {
|
|
44
|
+
expectedSignableHex: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
midnight: {
|
|
48
|
+
input: {
|
|
49
|
+
payload: string;
|
|
50
|
+
metadata: {
|
|
51
|
+
encoding: string;
|
|
52
|
+
customData: string;
|
|
53
|
+
};
|
|
54
|
+
signature: {
|
|
55
|
+
publicKey: {
|
|
56
|
+
pub: string;
|
|
57
|
+
};
|
|
58
|
+
signature: Buffer<ArrayBuffer>;
|
|
59
|
+
};
|
|
60
|
+
signer: string;
|
|
61
|
+
};
|
|
62
|
+
expected: {
|
|
63
|
+
expectedSignableHex: string;
|
|
64
|
+
};
|
|
65
|
+
broadcastHex: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
signedTest: {
|
|
69
|
+
input: {
|
|
70
|
+
payload: string;
|
|
71
|
+
metadata: {
|
|
72
|
+
encoding: string;
|
|
73
|
+
customData: string;
|
|
74
|
+
};
|
|
75
|
+
signature: {
|
|
76
|
+
publicKey: {
|
|
77
|
+
pub: string;
|
|
78
|
+
};
|
|
79
|
+
signature: Buffer<ArrayBuffer>;
|
|
80
|
+
};
|
|
81
|
+
signer: string;
|
|
82
|
+
};
|
|
83
|
+
expected: {
|
|
84
|
+
expectedSignableHex: string;
|
|
85
|
+
expectedSignableBase64: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
messageBuilderTest: {
|
|
89
|
+
input: {
|
|
90
|
+
payload: string;
|
|
91
|
+
metadata: {
|
|
92
|
+
encoding: string;
|
|
93
|
+
customData: string;
|
|
94
|
+
};
|
|
95
|
+
signature: {
|
|
96
|
+
publicKey: {
|
|
97
|
+
pub: string;
|
|
98
|
+
};
|
|
99
|
+
signature: Buffer<ArrayBuffer>;
|
|
100
|
+
};
|
|
101
|
+
signer: string;
|
|
102
|
+
};
|
|
103
|
+
expected: {
|
|
104
|
+
expectedSignableHex: string;
|
|
105
|
+
};
|
|
106
|
+
broadcastHex: string;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/eip191/fixtures.ts"],"names":[],"mappings":"AAuEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fixtures = void 0;
|
|
4
|
+
const validMessage = {
|
|
5
|
+
input: {
|
|
6
|
+
payload: 'Hello, world!',
|
|
7
|
+
metadata: {
|
|
8
|
+
encoding: 'utf8',
|
|
9
|
+
customData: 'test data',
|
|
10
|
+
},
|
|
11
|
+
signature: {
|
|
12
|
+
publicKey: { pub: '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf' },
|
|
13
|
+
signature: Buffer.from('5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be8921b', 'hex'),
|
|
14
|
+
},
|
|
15
|
+
signer: '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf',
|
|
16
|
+
},
|
|
17
|
+
expected: {
|
|
18
|
+
expectedSignableHex: '19457468657265756d205369676e6564204d6573736167653a0a313348656c6c6f2c20776f726c6421',
|
|
19
|
+
expectedSignableBase64: 'MTk0NTc0Njg2NTcyNjU3NTZkMjA1MzY5Njc2ZTY1NjQyMDRkNjU3MzczNjE2NzY1M2EwYTMxMzM0ODY1NmM2YzZmMmMyMDc3NmY3MjZjNjQyMQ==',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
const empty = {
|
|
23
|
+
input: { payload: '' },
|
|
24
|
+
expected: { expectedSignableHex: '19457468657265756d205369676e6564204d6573736167653a0a30' },
|
|
25
|
+
};
|
|
26
|
+
const specialChars = {
|
|
27
|
+
input: { payload: '!@#$%^&*()' },
|
|
28
|
+
expected: { expectedSignableHex: '19457468657265756d205369676e6564204d6573736167653a0a313021402324255e262a2829' },
|
|
29
|
+
};
|
|
30
|
+
const longMessage = {
|
|
31
|
+
input: {
|
|
32
|
+
payload: 'This is a very long message that contains multiple lines and special characters. ' +
|
|
33
|
+
'It is designed to test the EIP-191 message format with a more complex payload.',
|
|
34
|
+
},
|
|
35
|
+
expected: {
|
|
36
|
+
expectedSignableHex: '19457468657265756d205369676e6564204d6573736167653a0a3135395468697320697320612076657279206c6f6e67206d657373616765207468617420636f6e7461696e73206d756c7469706c65206c696e657320616e64207370656369616c20636861726163746572732e2049742069732064657369676e656420746f207465737420746865204549502d313931206d65737361676520666f726d617420776974682061206d6f726520636f6d706c6578207061796c6f61642e',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const midnight = {
|
|
40
|
+
input: {
|
|
41
|
+
payload: 'STAR 1000 to addr_test1qrq96h0rjht2u6n3fgwmy90x7gml8hduewt2nmr2u6cmkpwqt4w789wk4e48zjsakg27du3h70wmejuk48kx4e43hvzsufshv6 ' +
|
|
42
|
+
'31a6bab50a84b8439adcfb786bb2020f6807e6e8fda629b424110fc7bb1c6b8b',
|
|
43
|
+
metadata: {
|
|
44
|
+
encoding: 'utf8',
|
|
45
|
+
customData: 'test data',
|
|
46
|
+
},
|
|
47
|
+
signature: {
|
|
48
|
+
publicKey: { pub: '' },
|
|
49
|
+
signature: Buffer.from('b7c967ad92b3bab755970b02e597c1fcad4a537426299f69e3aa968f5532583d291451305cd9ae3b6cc711d37577bfbe00d552ca867c893c3becfb1375bdcaf31c', 'hex'),
|
|
50
|
+
},
|
|
51
|
+
signer: '0xfa0a7f4a0d9e544c57aeca4e32b3b1048b633cdf',
|
|
52
|
+
},
|
|
53
|
+
expected: {
|
|
54
|
+
expectedSignableHex: '19457468657265756d205369676e6564204d6573736167653a0a31383653544152203130303020746f20616464725f746573743171727139366830726a68743275366e336667776d7939307837676d6c38686475657774326e6d72327536636d6b707771743477373839776b346534387a6a73616b673237647533683730776d656a756b34386b783465343368767a737566736876362033316136626162353061383462383433396164636662373836626232303230663638303765366538666461363239623432343131306663376262316336623862',
|
|
55
|
+
},
|
|
56
|
+
broadcastHex: '7b2274797065223a22454950313931222c227061796c6f6164223a2253544152203130303020746f20616464725f746573743171727139366830726a68743275366e336667776d7939307837676d6c38686475657774326e6d72327536636d6b707771743477373839776b346534387a6a73616b673237647533683730776d656a756b34386b783465343368767a737566736876362033316136626162353061383462383433396164636662373836626232303230663638303765366538666461363239623432343131306663376262316336623862222c2273657269616c697a65645369676e617475726573223a5b7b227075626c69634b6579223a22222c227369676e6174757265223a2274386c6e725a4b7a757264566c777343355a66422f4b314b5533516d4b5a3970343671576a3155795744307046464577584e6d754f327a4845644e3164372b2b414e5653796f5a3869547737375073546462334b3878773d227d5d2c227369676e657273223a5b22307866613061376634613064396535343463353761656361346533326233623130343862363333636466225d2c226d65746164617461223a7b22656e636f64696e67223a2275746638227d2c227369676e61626c655061796c6f6164223a224d546b304e5463304e6a67324e5463794e6a55334e545a6b4d6a41314d7a59354e6a63325a5459314e6a51794d44526b4e6a55334d7a637a4e6a45324e7a59314d32457759544d784d7a677a4e6a557a4e5451304d5455794d6a417a4d544d774d7a417a4d4449774e7a51325a6a49774e6a45324e4459304e7a49315a6a63304e6a55334d7a63304d7a45334d5463794e7a457a4f544d324e6a677a4d4463794e6d45324f4463304d7a49334e544d324e6d557a4d7a59324e6a63334e7a5a6b4e7a6b7a4f544d774e7a677a4e7a59334e6d5132597a4d344e6a67324e4463314e6a55334e7a63304d7a49325a545a6b4e7a497a4d6a63314d7a59324d7a5a6b4e6d49334d4463334e7a45334e444d304e7a637a4e7a4d344d7a6b334e7a5a694d7a51324e544d304d7a673359545a684e7a4d324d545a694e6a637a4d6a4d334e6a51334e544d7a4e6a677a4e7a4d774e7a63325a4459314e6d45334e545a694d7a517a4f445a694e7a677a4e4459314d7a517a4d7a59344e7a59335954637a4e7a55324e6a637a4e6a67334e6a4d324d6a417a4d7a4d784e6a457a4e6a59794e6a45324d6a4d314d7a41324d544d344d7a51324d6a4d344d7a517a4d7a4d354e6a45324e44597a4e6a59324d6a4d334d7a677a4e6a59794e6a497a4d6a4d774d7a497a4d4459324d7a597a4f444d774d7a63324e544d324e6a557a4f4459324e6a51324d544d324d7a497a4f5459794d7a517a4d6a4d304d7a457a4d544d774e6a59324d7a4d334e6a49324d6a4d784e6a4d7a4e6a59794d7a67324d673d3d227d',
|
|
57
|
+
};
|
|
58
|
+
exports.fixtures = {
|
|
59
|
+
tests: { validMessage, empty, specialChars, longMessage, midnight },
|
|
60
|
+
signedTest: validMessage,
|
|
61
|
+
messageBuilderTest: midnight,
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwMTkxL2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRTtZQUNSLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVBQVUsRUFBRSxXQUFXO1NBQ3hCO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLDRDQUE0QyxFQUFFO1lBQ2hFLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUNwQixvSUFBb0ksRUFDcEksS0FBSyxDQUNOO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsNENBQTRDO0tBQ3JEO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsbUJBQW1CLEVBQUUsb0ZBQW9GO1FBQ3pHLHNCQUFzQixFQUNwQixrSEFBa0g7S0FDckg7Q0FDRixDQUFDO0FBRUYsTUFBTSxLQUFLLEdBQUc7SUFDWixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO0lBQ3RCLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixFQUFFLHdEQUF3RCxFQUFFO0NBQzVGLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNuQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO0lBQ2hDLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixFQUFFLDhFQUE4RSxFQUFFO0NBQ2xILENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRztJQUNsQixLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQ0wsbUZBQW1GO1lBQ25GLGdGQUFnRjtLQUNuRjtJQUNELFFBQVEsRUFBRTtRQUNSLG1CQUFtQixFQUNqQiwwWEFBMFg7S0FDN1g7Q0FDRixDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUc7SUFDZixLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQ0wsNEhBQTRIO1lBQzVILGtFQUFrRTtRQUNwRSxRQUFRLEVBQUU7WUFDUixRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsV0FBVztTQUN4QjtRQUNELFNBQVMsRUFBRTtZQUNULFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7WUFDdEIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLG9JQUFvSSxFQUNwSSxLQUFLLENBQ047U0FDRjtRQUNELE1BQU0sRUFBRSw0Q0FBNEM7S0FDckQ7SUFDRCxRQUFRLEVBQUU7UUFDUixtQkFBbUIsRUFDakIsZ2JBQWdiO0tBQ25iO0lBQ0QsWUFBWSxFQUNWLDhpRUFBOGlFO0NBQ2pqRSxDQUFDO0FBRVcsUUFBQSxRQUFRLEdBQUc7SUFDdEIsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtJQUNuRSxVQUFVLEVBQUUsWUFBWTtJQUN4QixrQkFBa0IsRUFBRSxRQUFRO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2YWxpZE1lc3NhZ2UgPSB7XG4gIGlucHV0OiB7XG4gICAgcGF5bG9hZDogJ0hlbGxvLCB3b3JsZCEnLFxuICAgIG1ldGFkYXRhOiB7XG4gICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgY3VzdG9tRGF0YTogJ3Rlc3QgZGF0YScsXG4gICAgfSxcbiAgICBzaWduYXR1cmU6IHtcbiAgICAgIHB1YmxpY0tleTogeyBwdWI6ICcweDdFNUY0NTUyMDkxQTY5MTI1ZDVEZkNiN2I4QzI2NTkwMjkzOTVCZGYnIH0sXG4gICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKFxuICAgICAgICAnNWQ5OWI2ZjdmNmQxZjczZDFhMjY0OTdmMmIxYzg5YjI0YzA5OTM5MTNmODZlOWEyZDAyY2Q2OTg4N2Q5Yzk0ZjNjODgwMzU4NTc5ZDgxMWIyMWRkMWI3ZmQ5YmIwMWMxZDgxZDEwZTY5ZjAzODRlNjc1YzMyYjM5NjQzYmU4OTIxYicsXG4gICAgICAgICdoZXgnXG4gICAgICApLFxuICAgIH0sXG4gICAgc2lnbmVyOiAnMHg3RTVGNDU1MjA5MUE2OTEyNWQ1RGZDYjdiOEMyNjU5MDI5Mzk1QmRmJyxcbiAgfSxcbiAgZXhwZWN0ZWQ6IHtcbiAgICBleHBlY3RlZFNpZ25hYmxlSGV4OiAnMTk0NTc0Njg2NTcyNjU3NTZkMjA1MzY5Njc2ZTY1NjQyMDRkNjU3MzczNjE2NzY1M2EwYTMxMzM0ODY1NmM2YzZmMmMyMDc3NmY3MjZjNjQyMScsXG4gICAgZXhwZWN0ZWRTaWduYWJsZUJhc2U2NDpcbiAgICAgICdNVGswTlRjME5qZzJOVGN5TmpVM05UWmtNakExTXpZNU5qYzJaVFkxTmpReU1EUmtOalUzTXpjek5qRTJOelkxTTJFd1lUTXhNek0wT0RZMU5tTTJZelptTW1NeU1EYzNObVkzTWpaak5qUXlNUT09JyxcbiAgfSxcbn07XG5cbmNvbnN0IGVtcHR5ID0ge1xuICBpbnB1dDogeyBwYXlsb2FkOiAnJyB9LFxuICBleHBlY3RlZDogeyBleHBlY3RlZFNpZ25hYmxlSGV4OiAnMTk0NTc0Njg2NTcyNjU3NTZkMjA1MzY5Njc2ZTY1NjQyMDRkNjU3MzczNjE2NzY1M2EwYTMwJyB9LFxufTtcblxuY29uc3Qgc3BlY2lhbENoYXJzID0ge1xuICBpbnB1dDogeyBwYXlsb2FkOiAnIUAjJCVeJiooKScgfSxcbiAgZXhwZWN0ZWQ6IHsgZXhwZWN0ZWRTaWduYWJsZUhleDogJzE5NDU3NDY4NjU3MjY1NzU2ZDIwNTM2OTY3NmU2NTY0MjA0ZDY1NzM3MzYxNjc2NTNhMGEzMTMwMjE0MDIzMjQyNTVlMjYyYTI4MjknIH0sXG59O1xuXG5jb25zdCBsb25nTWVzc2FnZSA9IHtcbiAgaW5wdXQ6IHtcbiAgICBwYXlsb2FkOlxuICAgICAgJ1RoaXMgaXMgYSB2ZXJ5IGxvbmcgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIG11bHRpcGxlIGxpbmVzIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMuICcgK1xuICAgICAgJ0l0IGlzIGRlc2lnbmVkIHRvIHRlc3QgdGhlIEVJUC0xOTEgbWVzc2FnZSBmb3JtYXQgd2l0aCBhIG1vcmUgY29tcGxleCBwYXlsb2FkLicsXG4gIH0sXG4gIGV4cGVjdGVkOiB7XG4gICAgZXhwZWN0ZWRTaWduYWJsZUhleDpcbiAgICAgICcxOTQ1NzQ2ODY1NzI2NTc1NmQyMDUzNjk2NzZlNjU2NDIwNGQ2NTczNzM2MTY3NjUzYTBhMzEzNTM5NTQ2ODY5NzMyMDY5NzMyMDYxMjA3NjY1NzI3OTIwNmM2ZjZlNjcyMDZkNjU3MzczNjE2NzY1MjA3NDY4NjE3NDIwNjM2ZjZlNzQ2MTY5NmU3MzIwNmQ3NTZjNzQ2OTcwNmM2NTIwNmM2OTZlNjU3MzIwNjE2ZTY0MjA3MzcwNjU2MzY5NjE2YzIwNjM2ODYxNzI2MTYzNzQ2NTcyNzMyZTIwNDk3NDIwNjk3MzIwNjQ2NTczNjk2NzZlNjU2NDIwNzQ2ZjIwNzQ2NTczNzQyMDc0Njg2NTIwNDU0OTUwMmQzMTM5MzEyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzI2ZDYxNzQyMDc3Njk3NDY4MjA2MTIwNmQ2ZjcyNjUyMDYzNmY2ZDcwNmM2NTc4MjA3MDYxNzk2YzZmNjE2NDJlJyxcbiAgfSxcbn07XG5cbmNvbnN0IG1pZG5pZ2h0ID0ge1xuICBpbnB1dDoge1xuICAgIHBheWxvYWQ6XG4gICAgICAnU1RBUiAxMDAwIHRvIGFkZHJfdGVzdDFxcnE5NmgwcmpodDJ1Nm4zZmd3bXk5MHg3Z21sOGhkdWV3dDJubXIydTZjbWtwd3F0NHc3ODl3azRlNDh6anNha2cyN2R1M2g3MHdtZWp1azQ4a3g0ZTQzaHZ6c3Vmc2h2NiAnICtcbiAgICAgICczMWE2YmFiNTBhODRiODQzOWFkY2ZiNzg2YmIyMDIwZjY4MDdlNmU4ZmRhNjI5YjQyNDExMGZjN2JiMWM2YjhiJyxcbiAgICBtZXRhZGF0YToge1xuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIGN1c3RvbURhdGE6ICd0ZXN0IGRhdGEnLFxuICAgIH0sXG4gICAgc2lnbmF0dXJlOiB7XG4gICAgICBwdWJsaWNLZXk6IHsgcHViOiAnJyB9LFxuICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbShcbiAgICAgICAgJ2I3Yzk2N2FkOTJiM2JhYjc1NTk3MGIwMmU1OTdjMWZjYWQ0YTUzNzQyNjI5OWY2OWUzYWE5NjhmNTUzMjU4M2QyOTE0NTEzMDVjZDlhZTNiNmNjNzExZDM3NTc3YmZiZTAwZDU1MmNhODY3Yzg5M2MzYmVjZmIxMzc1YmRjYWYzMWMnLFxuICAgICAgICAnaGV4J1xuICAgICAgKSxcbiAgICB9LFxuICAgIHNpZ25lcjogJzB4ZmEwYTdmNGEwZDllNTQ0YzU3YWVjYTRlMzJiM2IxMDQ4YjYzM2NkZicsXG4gIH0sXG4gIGV4cGVjdGVkOiB7XG4gICAgZXhwZWN0ZWRTaWduYWJsZUhleDpcbiAgICAgICcxOTQ1NzQ2ODY1NzI2NTc1NmQyMDUzNjk2NzZlNjU2NDIwNGQ2NTczNzM2MTY3NjUzYTBhMzEzODM2NTM1NDQxNTIyMDMxMzAzMDMwMjA3NDZmMjA2MTY0NjQ3MjVmNzQ2NTczNzQzMTcxNzI3MTM5MzY2ODMwNzI2YTY4NzQzMjc1MzY2ZTMzNjY2Nzc3NmQ3OTM5MzA3ODM3Njc2ZDZjMzg2ODY0NzU2NTc3NzQzMjZlNmQ3MjMyNzUzNjYzNmQ2YjcwNzc3MTc0MzQ3NzM3MzgzOTc3NmIzNDY1MzQzODdhNmE3MzYxNmI2NzMyMzc2NDc1MzM2ODM3MzA3NzZkNjU2YTc1NmIzNDM4NmI3ODM0NjUzNDMzNjg3NjdhNzM3NTY2NzM2ODc2MzYyMDMzMzE2MTM2NjI2MTYyMzUzMDYxMzgzNDYyMzgzNDMzMzk2MTY0NjM2NjYyMzczODM2NjI2MjMyMzAzMjMwNjYzNjM4MzAzNzY1MzY2NTM4NjY2NDYxMzYzMjM5NjIzNDMyMzQzMTMxMzA2NjYzMzc2MjYyMzE2MzM2NjIzODYyJyxcbiAgfSxcbiAgYnJvYWRjYXN0SGV4OlxuICAgICc3YjIyNzQ3OTcwNjUyMjNhMjI0NTQ5NTAzMTM5MzEyMjJjMjI3MDYxNzk2YzZmNjE2NDIyM2EyMjUzNTQ0MTUyMjAzMTMwMzAzMDIwNzQ2ZjIwNjE2NDY0NzI1Zjc0NjU3Mzc0MzE3MTcyNzEzOTM2NjgzMDcyNmE2ODc0MzI3NTM2NmUzMzY2Njc3NzZkNzkzOTMwNzgzNzY3NmQ2YzM4Njg2NDc1NjU3Nzc0MzI2ZTZkNzIzMjc1MzY2MzZkNmI3MDc3NzE3NDM0NzczNzM4Mzk3NzZiMzQ2NTM0Mzg3YTZhNzM2MTZiNjczMjM3NjQ3NTMzNjgzNzMwNzc2ZDY1NmE3NTZiMzQzODZiNzgzNDY1MzQzMzY4NzY3YTczNzU2NjczNjg3NjM2MjAzMzMxNjEzNjYyNjE2MjM1MzA2MTM4MzQ2MjM4MzQzMzM5NjE2NDYzNjY2MjM3MzgzNjYyNjIzMjMwMzIzMDY2MzYzODMwMzc2NTM2NjUzODY2NjQ2MTM2MzIzOTYyMzQzMjM0MzEzMTMwNjY2MzM3NjI2MjMxNjMzNjYyMzg2MjIyMmMyMjczNjU3MjY5NjE2YzY5N2E2NTY0NTM2OTY3NmU2MTc0NzU3MjY1NzMyMjNhNWI3YjIyNzA3NTYyNmM2OTYzNGI2NTc5MjIzYTIyMjIyYzIyNzM2OTY3NmU2MTc0NzU3MjY1MjIzYTIyNzQzODZjNmU3MjVhNGI3YTc1NzI2NDU2NmM3NzczNDMzNTVhNjY0MjJmNGIzMTRiNTUzMzUxNmQ0YjVhMzk3MDM0MzY3MTU3NmEzMTU1Nzk1NzQ0MzA3MDQ2NDY0NTc3NTg0ZTZkNzU0ZjMyN2E0ODQ1NjQ0ZTMxNjQzNzJiMmI0MTRlNTY1Mzc5NmY1YTM4Njk1NDc3MzczNzUwNzM1NDY0NjIzMzRiMzg3ODc3M2QyMjdkNWQyYzIyNzM2OTY3NmU2NTcyNzMyMjNhNWIyMjMwNzg2NjYxMzA2MTM3NjYzNDYxMzA2NDM5NjUzNTM0MzQ2MzM1Mzc2MTY1NjM2MTM0NjUzMzMyNjIzMzYyMzEzMDM0Mzg2MjM2MzMzMzYzNjQ2NjIyNWQyYzIyNmQ2NTc0NjE2NDYxNzQ2MTIyM2E3YjIyNjU2ZTYzNmY2NDY5NmU2NzIyM2EyMjc1NzQ2NjM4MjI3ZDJjMjI3MzY5Njc2ZTYxNjI2YzY1NTA2MTc5NmM2ZjYxNjQyMjNhMjI0ZDU0NmIzMDRlNTQ2MzMwNGU2YTY3MzI0ZTU0NjM3OTRlNmE1NTMzNGU1NDVhNmI0ZDZhNDEzMTRkN2E1OTM1NGU2YTYzMzI1YTU0NTkzMTRlNmE1MTc5NGQ0NDUyNmI0ZTZhNTUzMzRkN2E2MzdhNGU2YTQ1MzI0ZTdhNTkzMTRkMzI0NTc3NTk1NDRkNzg0ZDdhNjc3YTRlNmE1NTdhNGU1NDUxMzA0ZDU0NTU3OTRkNmE0MTdhNGQ1NDRkNzc0ZDdhNDE3YTRkNDQ0OTc3NGU3YTUxMzI1YTZhNDk3NzRlNmE0NTMyNGU0NDU5MzA0ZTdhNDkzMTVhNmE2MzMwNGU2YTU1MzM0ZDdhNjMzMDRkN2E0NTMzNGQ1NDYzNzk0ZTdhNDU3YTRmNTQ0ZDMyNGU2YTY3N2E0ZDQ0NjM3OTRlNmQ0NTMyNGY0NDYzMzA0ZDdhNDkzMzRlNTQ0ZDMyNGU2ZDU1N2E0ZDdhNTkzMjRlNmE2MzMzNGU3YTVhNmI0ZTdhNmI3YTRmNTQ0ZDc3NGU3YTY3N2E0ZTdhNTkzMzRlNmQ1MTMyNTk3YTRkMzQ0ZTZhNjczMjRlNDQ2MzMxNGU2YTU1MzM0ZTdhNjMzMDRkN2E0OTMyNWE1NDVhNmI0ZTdhNDk3YTRkNmE2MzMxNGQ3YTU5MzI0ZDdhNWE2YjRlNmQ0OTMzNGQ0NDYzMzM0ZTdhNDUzMzRlNDQ0ZDMwNGU3YTYzN2E0ZTdhNGQzNDRkN2E2YjMzNGU3YTVhNjk0ZDdhNTEzMjRlNTQ0ZDMwNGQ3YTY3MzM1OTU0NWE2ODRlN2E0ZDMyNGQ1NDVhNjk0ZTZhNjM3YTRkNmE0ZDMzNGU2YTUxMzM0ZTU0NGQ3YTRlNmE2NzdhNGU3YTRkNzc0ZTdhNjMzMjVhNDQ1OTMxNGU2ZDQ1MzM0ZTU0NWE2OTRkN2E1MTdhNGY0NDVhNjk0ZTdhNjc3YTRlNDQ1OTMxNGQ3YTUxN2E0ZDdhNTkzNDRlN2E1OTMzNTk1NDYzN2E0ZTdhNTUzMjRlNmE2MzdhNGU2YTY3MzM0ZTZhNGQzMjRkNmE0MTdhNGQ3YTRkNzg0ZTZhNDU3YTRlNmE1OTc5NGU2YTQ1MzI0ZDZhNGQzMTRkN2E0MTMyNGQ1NDRkMzQ0ZDdhNTEzMjRkNmE0ZDM0NGQ3YTUxN2E0ZDdhNGQzNTRlNmE0NTMyNGU0NDU5N2E0ZTZhNTkzMjRkNmE0ZDMzNGQ3YTY3N2E0ZTZhNTk3OTRlNmE0OTdhNGQ2YTRkNzc0ZDdhNDk3YTRkNDQ1OTMyNGQ3YTU5N2E0ZjQ0NGQ3NzRkN2E2MzMyNGU1NDRkMzI0ZTZhNTU3YTRmNDQ1OTMyNGU2YTUxMzI0ZDU0NGQzMjRkN2E0OTdhNGY1NDU5Nzk0ZDdhNTE3YTRkNmE0ZDMwNGQ3YTQ1N2E0ZDU0NGQ3NzRlNmE1OTMyNGQ3YTRkMzM0ZTZhNDkzMjRkNmE0ZDc4NGU2YTRkN2E0ZTZhNTk3OTRkN2E2NzMyNGQ2NzNkM2QyMjdkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBmaXh0dXJlcyA9IHtcbiAgdGVzdHM6IHsgdmFsaWRNZXNzYWdlLCBlbXB0eSwgc3BlY2lhbENoYXJzLCBsb25nTWVzc2FnZSwgbWlkbmlnaHQgfSxcbiAgc2lnbmVkVGVzdDogdmFsaWRNZXNzYWdlLFxuICBtZXNzYWdlQnVpbGRlclRlc3Q6IG1pZG5pZ2h0LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712Message.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/eip712/eip712Message.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const src_1 = require("../../../../src/");
|
|
5
|
+
const fixtures_1 = require("./fixtures");
|
|
6
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
7
|
+
const abstractEthMessagesTests_1 = require("../abstractEthMessagesTests");
|
|
8
|
+
describe('EIP712 Message', () => {
|
|
9
|
+
(0, abstractEthMessagesTests_1.testEthMessageSigning)({
|
|
10
|
+
messageType: sdk_core_1.MessageStandardType.EIP712,
|
|
11
|
+
messageClass: src_1.EIP712Message,
|
|
12
|
+
...fixtures_1.fixtures,
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwNzEyTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9laXA3MTIvZWlwNzEyTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQiwwQ0FBaUQ7QUFDakQseUNBQXNDO0FBQ3RDLDhDQUFzRDtBQUN0RCwwRUFBb0U7QUFFcEUsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixJQUFBLGdEQUFxQixFQUFDO1FBQ3BCLFdBQVcsRUFBRSw4QkFBbUIsQ0FBQyxNQUFNO1FBQ3ZDLFlBQVksRUFBRSxtQkFBYTtRQUMzQixHQUFHLG1CQUFRO0tBQ1osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBFSVA3MTJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjLyc7XG5pbXBvcnQgeyBmaXh0dXJlcyB9IGZyb20gJy4vZml4dHVyZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyB0ZXN0RXRoTWVzc2FnZVNpZ25pbmcgfSBmcm9tICcuLi9hYnN0cmFjdEV0aE1lc3NhZ2VzVGVzdHMnO1xuXG5kZXNjcmliZSgnRUlQNzEyIE1lc3NhZ2UnLCAoKSA9PiB7XG4gIHRlc3RFdGhNZXNzYWdlU2lnbmluZyh7XG4gICAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQNzEyLFxuICAgIG1lc3NhZ2VDbGFzczogRUlQNzEyTWVzc2FnZSxcbiAgICAuLi5maXh0dXJlcyxcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712MessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/eip712/eip712MessageBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const src_1 = require("../../../../src");
|
|
5
|
+
const fixtures_1 = require("./fixtures");
|
|
6
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
7
|
+
const abstractEthMessageBuilderTests_1 = require("../abstractEthMessageBuilderTests");
|
|
8
|
+
describe('EIP712 Message Builder', () => {
|
|
9
|
+
(0, abstractEthMessageBuilderTests_1.testEthMessageBuilding)({
|
|
10
|
+
messageType: sdk_core_1.MessageStandardType.EIP712,
|
|
11
|
+
messageBuilderClass: src_1.Eip712MessageBuilder,
|
|
12
|
+
messageClass: src_1.EIP712Message,
|
|
13
|
+
test: fixtures_1.fixtures.messageBuilderTest,
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwNzEyTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwNzEyL2VpcDcxMk1lc3NhZ2VCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWdCO0FBQ2hCLHlDQUFzRTtBQUN0RSx5Q0FBc0M7QUFDdEMsOENBQXNEO0FBQ3RELHNGQUEyRTtBQUUzRSxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLElBQUEsdURBQXNCLEVBQUM7UUFDckIsV0FBVyxFQUFFLDhCQUFtQixDQUFDLE1BQU07UUFDdkMsbUJBQW1CLEVBQUUsMEJBQW9CO1FBQ3pDLFlBQVksRUFBRSxtQkFBYTtRQUMzQixJQUFJLEVBQUUsbUJBQVEsQ0FBQyxrQkFBa0I7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBFSVA3MTJNZXNzYWdlLCBFaXA3MTJNZXNzYWdlQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBmaXh0dXJlcyB9IGZyb20gJy4vZml4dHVyZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyB0ZXN0RXRoTWVzc2FnZUJ1aWxkaW5nIH0gZnJvbSAnLi4vYWJzdHJhY3RFdGhNZXNzYWdlQnVpbGRlclRlc3RzJztcblxuZGVzY3JpYmUoJ0VJUDcxMiBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIHRlc3RFdGhNZXNzYWdlQnVpbGRpbmcoe1xuICAgIG1lc3NhZ2VUeXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDcxMixcbiAgICBtZXNzYWdlQnVpbGRlckNsYXNzOiBFaXA3MTJNZXNzYWdlQnVpbGRlcixcbiAgICBtZXNzYWdlQ2xhc3M6IEVJUDcxMk1lc3NhZ2UsXG4gICAgdGVzdDogZml4dHVyZXMubWVzc2FnZUJ1aWxkZXJUZXN0LFxuICB9KTtcbn0pO1xuIl19
|