@bitgo-beta/abstract-eth 1.2.3-alpha.384 → 1.2.3-alpha.386
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 +22 -0
- 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/src/lib/transactionBuilder.d.ts +19 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +80 -1
- package/dist/src/lib/utils.d.ts +40 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +115 -1
- package/dist/src/lib/walletUtil.d.ts +8 -0
- package/dist/src/lib/walletUtil.d.ts.map +1 -1
- package/dist/src/lib/walletUtil.js +10 -2
- 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/test/unit/transactionBuilder/flushNft.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/flushNft.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/flushNft.js +381 -0
- package/dist/test/unit/transactionBuilder/index.d.ts +1 -0
- package/dist/test/unit/transactionBuilder/index.d.ts.map +1 -1
- package/dist/test/unit/transactionBuilder/index.js +2 -1
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +182 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- 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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.testEthMessageBuilding = testEthMessageBuilding;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
9
|
+
const src_1 = require("../../../src");
|
|
10
|
+
const should_1 = __importDefault(require("should"));
|
|
11
|
+
const coinConfig = statics_1.coins.get('eth');
|
|
12
|
+
function testEthMessageBuilding(testConfig) {
|
|
13
|
+
const { messageType, messageBuilderClass, messageClass, test } = testConfig;
|
|
14
|
+
describe(`${messageType} - Build Method`, () => {
|
|
15
|
+
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
16
|
+
const { payload, metadata, signature, signer } = test.input;
|
|
17
|
+
it('should initialize with the correct message type', () => {
|
|
18
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
19
|
+
builder.should.be.instanceof(messageBuilderClass);
|
|
20
|
+
});
|
|
21
|
+
it('should build a valid message', async () => {
|
|
22
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
23
|
+
builder.setPayload(payload).setMetadata(metadata || {});
|
|
24
|
+
const builtMessage = await builder.build();
|
|
25
|
+
builtMessage.getType().should.equal(messageType);
|
|
26
|
+
builtMessage.getPayload().should.equal(payload);
|
|
27
|
+
if (metadata) {
|
|
28
|
+
should_1.default.deepEqual(builtMessage.getMetadata(), metadata);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
should_1.default.deepEqual(builtMessage.getMetadata(), {});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
it('should throw an error when building without setting the payload', async () => {
|
|
35
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
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 = factory.getMessageBuilder(messageType);
|
|
40
|
+
builder.setPayload(payload);
|
|
41
|
+
builder.addSigner(signer);
|
|
42
|
+
const message = await builder.build();
|
|
43
|
+
message.getSigners().should.containEql(signer);
|
|
44
|
+
});
|
|
45
|
+
it('should include signatures when building a message', async () => {
|
|
46
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
47
|
+
builder.setPayload(payload);
|
|
48
|
+
builder.addSignature(signature);
|
|
49
|
+
const message = await builder.build();
|
|
50
|
+
message.getSignatures().should.containEql(signature);
|
|
51
|
+
});
|
|
52
|
+
it('should override metadata.encoding with utf8', async () => {
|
|
53
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
54
|
+
builder.setPayload(payload);
|
|
55
|
+
builder.setMetadata({ encoding: 'hex', customData: 'test data' });
|
|
56
|
+
const message = await builder.build();
|
|
57
|
+
const metadata = message.getMetadata();
|
|
58
|
+
(0, should_1.default)(metadata).not.be.undefined();
|
|
59
|
+
(0, should_1.default)(metadata).have.property('encoding', 'utf8');
|
|
60
|
+
(0, should_1.default)(metadata).have.property('customData', 'test data');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe(`${messageType} - From Broadcast Format`, () => {
|
|
64
|
+
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
65
|
+
const { payload, signature, signer, metadata } = test.input;
|
|
66
|
+
const broadcastMessage = {
|
|
67
|
+
payload,
|
|
68
|
+
type: messageType,
|
|
69
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)([signature]),
|
|
70
|
+
signers: [signer],
|
|
71
|
+
metadata: metadata,
|
|
72
|
+
};
|
|
73
|
+
it('should reconstruct a message from broadcast format', async () => {
|
|
74
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
75
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
76
|
+
message.getType().should.equal(messageType);
|
|
77
|
+
message.getPayload().should.equal(payload);
|
|
78
|
+
message.getSignatures().should.containEql(signature);
|
|
79
|
+
message.getSigners().should.containEql(signer);
|
|
80
|
+
message.should.be.instanceof(messageClass);
|
|
81
|
+
if (metadata) {
|
|
82
|
+
should_1.default.deepEqual(message.getMetadata(), metadata);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
should_1.default.deepEqual(message.getMetadata(), {});
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
it('should throw an error for incorrect message type', async () => {
|
|
89
|
+
const builder = factory.getMessageBuilder(messageType);
|
|
90
|
+
const broadcastMessageWrongType = { ...broadcastMessage, type: sdk_core_1.MessageStandardType.UNKNOWN };
|
|
91
|
+
await builder
|
|
92
|
+
.fromBroadcastFormat(broadcastMessageWrongType)
|
|
93
|
+
.should.be.rejectedWith(`Invalid message type, expected ${messageType}`);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe(`${messageType} - From Broadcast String`, () => {
|
|
97
|
+
const { payload, signature, signer } = test.input;
|
|
98
|
+
const broadcastHex = test.broadcastHex;
|
|
99
|
+
it('should parse broadcastable string and return correct builder type', async () => {
|
|
100
|
+
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
101
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
102
|
+
const message = await builder.build();
|
|
103
|
+
message.getType().should.equal(messageType);
|
|
104
|
+
message.getPayload().should.equal(payload);
|
|
105
|
+
message.getSignatures().should.containEql(signature);
|
|
106
|
+
message.getSigners().should.containEql(signer);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFdGhNZXNzYWdlQnVpbGRlclRlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2Fic3RyYWN0RXRoTWVzc2FnZUJ1aWxkZXJUZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLHdEQW9IQztBQTVIRCxtREFBZ0Y7QUFDaEYsaURBQTRDO0FBQzVDLHNDQUFxRDtBQUNyRCxvREFBNEI7QUFHNUIsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVwQyxTQUFnQixzQkFBc0IsQ0FBQyxVQUFxQztJQUMxRSxNQUFNLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFNUUsUUFBUSxDQUFDLEdBQUcsV0FBVyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUU1RCxFQUFFLENBQUMsaURBQWlELEVBQUUsR0FBRyxFQUFFO1lBQ3pELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMs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QUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV0QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIHNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGluZ1Rlc3RDb25maWcgfSBmcm9tICcuL2Fic3RyYWN0RXRoTWVzc2FnZVRlc3RUeXBlcyc7XG5cbmNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ2V0aCcpO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVzdEV0aE1lc3NhZ2VCdWlsZGluZyh0ZXN0Q29uZmlnOiBNZXNzYWdlQnVpbGRpbmdUZXN0Q29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IHsgbWVzc2FnZVR5cGUsIG1lc3NhZ2VCdWlsZGVyQ2xhc3MsIG1lc3NhZ2VDbGFzcywgdGVzdCB9ID0gdGVzdENvbmZpZztcblxuICBkZXNjcmliZShgJHttZXNzYWdlVHlwZX0gLSBCdWlsZCBNZXRob2RgLCAoKSA9PiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgY29uc3QgeyBwYXlsb2FkLCBtZXRhZGF0YSwgc2lnbmF0dXJlLCBzaWduZXIgfSA9IHRlc3QuaW5wdXQ7XG5cbiAgICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCB0aGUgY29ycmVjdCBtZXNzYWdlIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihtZXNzYWdlVHlwZSk7XG4gICAgICBidWlsZGVyLnNob3VsZC5iZS5pbnN0YW5jZW9mKG1lc3NhZ2VCdWlsZGVyQ2xhc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHZhbGlkIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihtZXNzYWdlVHlwZSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCkuc2V0TWV0YWRhdGEobWV0YWRhdGEgfHwge30pO1xuXG4gICAgICBjb25zdCBidWlsdE1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBidWlsdE1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChtZXNzYWdlVHlwZSk7XG4gICAgICBidWlsdE1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChwYXlsb2FkKTtcblxuICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbHRNZXNzYWdlLmdldE1ldGFkYXRhKCksIG1ldGFkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNob3VsZC5kZWVwRXF1YWwoYnVpbHRNZXNzYWdlLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igd2hlbiBidWlsZGluZyB3aXRob3V0IHNldHRpbmcgdGhlIHBheWxvYWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihtZXNzYWdlVHlwZSk7XG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIHNpZ25lcnMgd2hlbiBidWlsZGluZyBhIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihtZXNzYWdlVHlwZSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25lcihzaWduZXIpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoc2lnbmVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBzaWduYXR1cmVzIHdoZW4gYnVpbGRpbmcgYSBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIobWVzc2FnZVR5cGUpO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKHBheWxvYWQpO1xuICAgICAgYnVpbGRlci5hZGRTaWduYXR1cmUoc2lnbmF0dXJlKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKHNpZ25hdHVyZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG92ZXJyaWRlIG1ldGFkYXRhLmVuY29kaW5nIHdpdGggdXRmOCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKG1lc3NhZ2VUeXBlKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKTtcbiAgICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoeyBlbmNvZGluZzogJ2hleCcsIGN1c3RvbURhdGE6ICd0ZXN0IGRhdGEnIH0pO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBtZXNzYWdlLmdldE1ldGFkYXRhKCk7XG4gICAgICBzaG91bGQobWV0YWRhdGEpLm5vdC5iZS51bmRlZmluZWQoKTtcbiAgICAgIHNob3VsZChtZXRhZGF0YSkuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpO1xuICAgICAgc2hvdWxkKG1ldGFkYXRhKS5oYXZlLnByb3BlcnR5KCdjdXN0b21EYXRhJywgJ3Rlc3QgZGF0YScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShgJHttZXNzYWdlVHlwZX0gLSBGcm9tIEJyb2FkY2FzdCBGb3JtYXRgLCAoKSA9PiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgY29uc3QgeyBwYXlsb2FkLCBzaWduYXR1cmUsIHNpZ25lciwgbWV0YWRhdGEgfSA9IHRlc3QuaW5wdXQ7XG5cbiAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlID0ge1xuICAgICAgcGF5bG9hZCxcbiAgICAgIHR5cGU6IG1lc3NhZ2VUeXBlLFxuICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW3NpZ25hdHVyZV0pLFxuICAgICAgc2lnbmVyczogW3NpZ25lcl0sXG4gICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgfTtcblxuICAgIGl0KCdzaG91bGQgcmVjb25zdHJ1Y3QgYSBtZXNzYWdlIGZyb20gYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKG1lc3NhZ2VUeXBlKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChtZXNzYWdlVHlwZSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwocGF5bG9hZCk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuY29udGFpbkVxbChzaWduYXR1cmUpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoc2lnbmVyKTtcbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YobWVzc2FnZUNsYXNzKTtcblxuICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBtZXRhZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSwge30pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBmb3IgaW5jb3JyZWN0IG1lc3NhZ2UgdHlwZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKG1lc3NhZ2VUeXBlKTtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2VXcm9uZ1R5cGUgPSB7IC4uLmJyb2FkY2FzdE1lc3NhZ2UsIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTiB9O1xuICAgICAgYXdhaXQgYnVpbGRlclxuICAgICAgICAuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlV3JvbmdUeXBlKVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aChgSW52YWxpZCBtZXNzYWdlIHR5cGUsIGV4cGVjdGVkICR7bWVzc2FnZVR5cGV9YCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKGAke21lc3NhZ2VUeXBlfSAtIEZyb20gQnJvYWRjYXN0IFN0cmluZ2AsICgpID0+IHtcbiAgICBjb25zdCB7IHBheWxvYWQsIHNpZ25hdHVyZSwgc2lnbmVyIH0gPSB0ZXN0LmlucHV0O1xuICAgIGNvbnN0IGJyb2FkY2FzdEhleCA9IHRlc3QuYnJvYWRjYXN0SGV4O1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBicm9hZGNhc3RhYmxlIHN0cmluZyBhbmQgcmV0dXJuIGNvcnJlY3QgYnVpbGRlciB0eXBlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdEhleCk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwobWVzc2FnZVR5cGUpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKHBheWxvYWQpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmNvbnRhaW5FcWwoc2lnbmF0dXJlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKHNpZ25lcik7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BaseMessage, BaseMessageBuilder, MessageMetadata, MessageOptions, MessageStandardType, Signature } from '@bitgo-beta/sdk-core';
|
|
2
|
+
type MessageCtor = new (options: MessageOptions) => BaseMessage;
|
|
3
|
+
type MessageBuildParams = {
|
|
4
|
+
payload: string;
|
|
5
|
+
metadata?: MessageMetadata;
|
|
6
|
+
};
|
|
7
|
+
type SignatureParams = {
|
|
8
|
+
signature: Signature;
|
|
9
|
+
signer: string;
|
|
10
|
+
};
|
|
11
|
+
type MessageVerificationParams = {
|
|
12
|
+
expectedSignableHex: string;
|
|
13
|
+
};
|
|
14
|
+
type MessageVerificationParamsBase64 = {
|
|
15
|
+
expectedSignableBase64: string;
|
|
16
|
+
};
|
|
17
|
+
type MessageTestCase = {
|
|
18
|
+
input: MessageBuildParams;
|
|
19
|
+
expected: MessageVerificationParams;
|
|
20
|
+
};
|
|
21
|
+
type SignedMessageTestCase = {
|
|
22
|
+
input: MessageBuildParams & SignatureParams;
|
|
23
|
+
expected: MessageVerificationParams & MessageVerificationParamsBase64;
|
|
24
|
+
};
|
|
25
|
+
type MessageBuilderTestCase = {
|
|
26
|
+
input: MessageBuildParams & SignatureParams;
|
|
27
|
+
expected: MessageVerificationParams;
|
|
28
|
+
broadcastHex: string;
|
|
29
|
+
};
|
|
30
|
+
export type MessageTestConfig = {
|
|
31
|
+
messageType: MessageStandardType;
|
|
32
|
+
messageClass: MessageCtor;
|
|
33
|
+
tests: Record<string, MessageTestCase>;
|
|
34
|
+
signedTest: SignedMessageTestCase;
|
|
35
|
+
};
|
|
36
|
+
export type MessageBuildingTestConfig = {
|
|
37
|
+
messageType: MessageStandardType;
|
|
38
|
+
messageBuilderClass: typeof BaseMessageBuilder;
|
|
39
|
+
messageClass: typeof BaseMessage;
|
|
40
|
+
test: MessageBuilderTestCase;
|
|
41
|
+
};
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=abstractEthMessageTestTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractEthMessageTestTypes.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/abstractEthMessageTestTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAE9B,KAAK,WAAW,GAAG,KAAK,OAAO,EAAE,cAAc,KAAK,WAAW,CAAC;AAEhE,KAAK,kBAAkB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAC1E,KAAK,eAAe,GAAG;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,KAAK,yBAAyB,GAAG;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AACjE,KAAK,+BAA+B,GAAG;IAAE,sBAAsB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,KAAK,eAAe,GAAG;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAC1F,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAC5C,QAAQ,EAAE,yBAAyB,GAAG,+BAA+B,CAAC;CACvE,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAAC;IAC5C,QAAQ,EAAE,yBAAyB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvC,UAAU,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,mBAAmB,CAAC;IACjC,mBAAmB,EAAE,OAAO,kBAAkB,CAAC;IAC/C,YAAY,EAAE,OAAO,WAAW,CAAC;IACjC,IAAI,EAAE,sBAAsB,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFdGhNZXNzYWdlVGVzdFR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2Fic3RyYWN0RXRoTWVzc2FnZVRlc3RUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZU1lc3NhZ2UsXG4gIEJhc2VNZXNzYWdlQnVpbGRlcixcbiAgTWVzc2FnZU1ldGFkYXRhLFxuICBNZXNzYWdlT3B0aW9ucyxcbiAgTWVzc2FnZVN0YW5kYXJkVHlwZSxcbiAgU2lnbmF0dXJlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbnR5cGUgTWVzc2FnZUN0b3IgPSBuZXcgKG9wdGlvbnM6IE1lc3NhZ2VPcHRpb25zKSA9PiBCYXNlTWVzc2FnZTtcblxudHlwZSBNZXNzYWdlQnVpbGRQYXJhbXMgPSB7IHBheWxvYWQ6IHN0cmluZzsgbWV0YWRhdGE/OiBNZXNzYWdlTWV0YWRhdGEgfTtcbnR5cGUgU2lnbmF0dXJlUGFyYW1zID0geyBzaWduYXR1cmU6IFNpZ25hdHVyZTsgc2lnbmVyOiBzdHJpbmcgfTtcblxudHlwZSBNZXNzYWdlVmVyaWZpY2F0aW9uUGFyYW1zID0geyBleHBlY3RlZFNpZ25hYmxlSGV4OiBzdHJpbmcgfTtcbnR5cGUgTWVzc2FnZVZlcmlmaWNhdGlvblBhcmFtc0Jhc2U2NCA9IHsgZXhwZWN0ZWRTaWduYWJsZUJhc2U2NDogc3RyaW5nIH07XG5cbnR5cGUgTWVzc2FnZVRlc3RDYXNlID0geyBpbnB1dDogTWVzc2FnZUJ1aWxkUGFyYW1zOyBleHBlY3RlZDogTWVzc2FnZVZlcmlmaWNhdGlvblBhcmFtcyB9O1xudHlwZSBTaWduZWRNZXNzYWdlVGVzdENhc2UgPSB7XG4gIGlucHV0OiBNZXNzYWdlQnVpbGRQYXJhbXMgJiBTaWduYXR1cmVQYXJhbXM7XG4gIGV4cGVjdGVkOiBNZXNzYWdlVmVyaWZpY2F0aW9uUGFyYW1zICYgTWVzc2FnZVZlcmlmaWNhdGlvblBhcmFtc0Jhc2U2NDtcbn07XG5cbnR5cGUgTWVzc2FnZUJ1aWxkZXJUZXN0Q2FzZSA9IHtcbiAgaW5wdXQ6IE1lc3NhZ2VCdWlsZFBhcmFtcyAmIFNpZ25hdHVyZVBhcmFtcztcbiAgZXhwZWN0ZWQ6IE1lc3NhZ2VWZXJpZmljYXRpb25QYXJhbXM7XG4gIGJyb2FkY2FzdEhleDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVRlc3RDb25maWcgPSB7XG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBtZXNzYWdlQ2xhc3M6IE1lc3NhZ2VDdG9yO1xuICB0ZXN0czogUmVjb3JkPHN0cmluZywgTWVzc2FnZVRlc3RDYXNlPjtcbiAgc2lnbmVkVGVzdDogU2lnbmVkTWVzc2FnZVRlc3RDYXNlO1xufTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZUJ1aWxkaW5nVGVzdENvbmZpZyA9IHtcbiAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIG1lc3NhZ2VCdWlsZGVyQ2xhc3M6IHR5cGVvZiBCYXNlTWVzc2FnZUJ1aWxkZXI7XG4gIG1lc3NhZ2VDbGFzczogdHlwZW9mIEJhc2VNZXNzYWdlO1xuICB0ZXN0OiBNZXNzYWdlQnVpbGRlclRlc3RDYXNlO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractEthMessagesTests.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/abstractEthMessagesTests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAuIzE"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.testEthMessageSigning = testEthMessageSigning;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
9
|
+
const should_1 = __importDefault(require("should"));
|
|
10
|
+
const coinConfig = statics_1.coins.get('eth');
|
|
11
|
+
function testEthMessageSigning(testConfig) {
|
|
12
|
+
const { messageType, messageClass, tests, signedTest } = testConfig;
|
|
13
|
+
describe(`${messageType} - Message Type`, () => {
|
|
14
|
+
it('should have the correct message type', () => {
|
|
15
|
+
const msgInstance = new messageClass({
|
|
16
|
+
...signedTest.input,
|
|
17
|
+
coinConfig,
|
|
18
|
+
});
|
|
19
|
+
msgInstance.getType().should.equal(messageType);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe(`${messageType} - Signable Payload Generation`, () => {
|
|
23
|
+
Object.entries(tests).map(([key, { input, expected }]) => {
|
|
24
|
+
it(`should generate the correct signable payload for message '${key}'`, async () => {
|
|
25
|
+
const message = new messageClass({
|
|
26
|
+
...input,
|
|
27
|
+
coinConfig,
|
|
28
|
+
});
|
|
29
|
+
const signablePayload = await message.getSignablePayload();
|
|
30
|
+
signablePayload.toString('hex').should.equal(expected.expectedSignableHex);
|
|
31
|
+
if (input.metadata) {
|
|
32
|
+
should_1.default.deepEqual(message.getMetadata(), input.metadata);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
should_1.default.deepEqual(message.getMetadata(), {});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe(`${messageType} - Maintaining Signers and Signatures`, () => {
|
|
41
|
+
const { payload, signature, signer } = signedTest.input;
|
|
42
|
+
it('should be created with the correct signatures and signers', () => {
|
|
43
|
+
const message = new messageClass({
|
|
44
|
+
coinConfig,
|
|
45
|
+
payload,
|
|
46
|
+
signatures: [signature],
|
|
47
|
+
signers: [signer],
|
|
48
|
+
});
|
|
49
|
+
message.getSignatures().should.containEql(signature);
|
|
50
|
+
message.getSigners().should.containEql(signer);
|
|
51
|
+
});
|
|
52
|
+
it('should maintain signatures and signers correctly', () => {
|
|
53
|
+
const message = new messageClass({
|
|
54
|
+
coinConfig,
|
|
55
|
+
payload,
|
|
56
|
+
signatures: [signature],
|
|
57
|
+
signers: [signer],
|
|
58
|
+
});
|
|
59
|
+
message.addSignature({
|
|
60
|
+
publicKey: { pub: 'pub1' },
|
|
61
|
+
signature: Buffer.from('new-signature'),
|
|
62
|
+
});
|
|
63
|
+
message.addSigner('new-signer');
|
|
64
|
+
message.getSignatures().should.containEql({
|
|
65
|
+
publicKey: { pub: 'pub1' },
|
|
66
|
+
signature: Buffer.from('new-signature'),
|
|
67
|
+
});
|
|
68
|
+
message.getSigners().should.containEql('new-signer');
|
|
69
|
+
// Test replacing all
|
|
70
|
+
message.setSignatures([
|
|
71
|
+
{
|
|
72
|
+
publicKey: { pub: 'pub2' },
|
|
73
|
+
signature: Buffer.from('replaced-signature'),
|
|
74
|
+
},
|
|
75
|
+
]);
|
|
76
|
+
message.setSigners(['replaced-signer']);
|
|
77
|
+
message.getSignatures().should.deepEqual([
|
|
78
|
+
{
|
|
79
|
+
publicKey: { pub: 'pub2' },
|
|
80
|
+
signature: Buffer.from('replaced-signature'),
|
|
81
|
+
},
|
|
82
|
+
]);
|
|
83
|
+
message.getSigners().should.deepEqual(['replaced-signer']);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe(`${messageType} - Broadcast Format`, () => {
|
|
87
|
+
const { payload, signature, signer } = signedTest.input;
|
|
88
|
+
const { expectedSignableBase64 } = signedTest.expected;
|
|
89
|
+
it('should convert to broadcast format correctly', async () => {
|
|
90
|
+
const message = new messageClass({
|
|
91
|
+
coinConfig,
|
|
92
|
+
payload,
|
|
93
|
+
signatures: [signature],
|
|
94
|
+
signers: [signer],
|
|
95
|
+
});
|
|
96
|
+
const broadcastFormat = await message.toBroadcastFormat();
|
|
97
|
+
const expectedSerializedSignatures = (0, sdk_core_1.serializeSignatures)([signature]);
|
|
98
|
+
broadcastFormat.type.should.equal(messageType);
|
|
99
|
+
broadcastFormat.payload.should.equal(message.getPayload());
|
|
100
|
+
broadcastFormat.serializedSignatures?.should.deepEqual(expectedSerializedSignatures);
|
|
101
|
+
broadcastFormat.signers?.should.deepEqual([signer]);
|
|
102
|
+
broadcastFormat.signablePayload?.should.equal(expectedSignableBase64);
|
|
103
|
+
if (broadcastFormat.metadata) {
|
|
104
|
+
broadcastFormat.metadata.should.deepEqual(message.getMetadata());
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
should_1.default.deepEqual(message.getMetadata(), {});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
it('should convert to broadcast string correctly', async () => {
|
|
111
|
+
const message = new messageClass({
|
|
112
|
+
coinConfig,
|
|
113
|
+
payload,
|
|
114
|
+
signatures: [signature],
|
|
115
|
+
signers: [signer],
|
|
116
|
+
});
|
|
117
|
+
const broadcastHex = await message.toBroadcastString();
|
|
118
|
+
const broadcastString = Buffer.from(broadcastHex, 'hex').toString();
|
|
119
|
+
const parsedBroadcast = JSON.parse(broadcastString);
|
|
120
|
+
const expectedSerializedSignatures = (0, sdk_core_1.serializeSignatures)([signature]);
|
|
121
|
+
parsedBroadcast.type.should.equal(messageType);
|
|
122
|
+
parsedBroadcast.payload.should.equal(message.getPayload());
|
|
123
|
+
parsedBroadcast.serializedSignatures.should.deepEqual(expectedSerializedSignatures);
|
|
124
|
+
parsedBroadcast.signers.should.deepEqual([signer]);
|
|
125
|
+
parsedBroadcast.metadata.should.deepEqual(message.getMetadata());
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFdGhNZXNzYWdlc1Rlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL2Fic3RyYWN0RXRoTWVzc2FnZXNUZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU9BLHNEQXVJQztBQTlJRCxtREFBMkQ7QUFDM0QsaURBQTRDO0FBQzVDLG9EQUE0QjtBQUc1QixNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXBDLFNBQWdCLHFCQUFxQixDQUFDLFVBQTZCO0lBQ2pFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFcEUsUUFBUSxDQUFDLEdBQUcsV0FBVyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDN0MsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtZQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFlBQVksQ0FBQztnQkFDbkMsR0FBRyxVQUFVLENBQUMsS0FBSztnQkFDbkIsVUFBVTthQUNYLENBQUMsQ0FBQztZQUNILFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsR0FBRyxXQUFXLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxFQUFFLENBQUMsNkRBQTZELEdBQUcsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNqRixNQUFNLE9BQU8sR0FBRyxJQUFJLFlBQVks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QUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3BGLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbkQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VyaWFsaXplU2lnbmF0dXJlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlVGVzdENvbmZpZyB9IGZyb20gJy4vYWJzdHJhY3RFdGhNZXNzYWdlVGVzdFR5cGVzJztcblxuY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgnZXRoJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RXRoTWVzc2FnZVNpZ25pbmcodGVzdENvbmZpZzogTWVzc2FnZVRlc3RDb25maWcpOiB2b2lkIHtcbiAgY29uc3QgeyBtZXNzYWdlVHlwZSwgbWVzc2FnZUNsYXNzLCB0ZXN0cywgc2lnbmVkVGVzdCB9ID0gdGVzdENvbmZpZztcblxuICBkZXNjcmliZShgJHttZXNzYWdlVHlwZX0gLSBNZXNzYWdlIFR5cGVgLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBoYXZlIHRoZSBjb3JyZWN0IG1lc3NhZ2UgdHlwZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1zZ0luc3RhbmNlID0gbmV3IG1lc3NhZ2VDbGFzcyh7XG4gICAgICAgIC4uLnNpZ25lZFRlc3QuaW5wdXQsXG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICB9KTtcbiAgICAgIG1zZ0luc3RhbmNlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwobWVzc2FnZVR5cGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShgJHttZXNzYWdlVHlwZX0gLSBTaWduYWJsZSBQYXlsb2FkIEdlbmVyYXRpb25gLCAoKSA9PiB7XG4gICAgT2JqZWN0LmVudHJpZXModGVzdHMpLm1hcCgoW2tleSwgeyBpbnB1dCwgZXhwZWN0ZWQgfV0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgZ2VuZXJhdGUgdGhlIGNvcnJlY3Qgc2lnbmFibGUgcGF5bG9hZCBmb3IgbWVzc2FnZSAnJHtrZXl9J2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBtZXNzYWdlQ2xhc3Moe1xuICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgICAgIHNpZ25hYmxlUGF5bG9hZC50b1N0cmluZygnaGV4Jykuc2hvdWxkLmVxdWFsKGV4cGVjdGVkLmV4cGVjdGVkU2lnbmFibGVIZXgpO1xuXG4gICAgICAgIGlmIChpbnB1dC5tZXRhZGF0YSkge1xuICAgICAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCBpbnB1dC5tZXRhZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCksIHt9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKGAke21lc3NhZ2VUeXBlfSAtIE1haW50YWluaW5nIFNpZ25lcnMgYW5kIFNpZ25hdHVyZXNgLCAoKSA9PiB7XG4gICAgY29uc3QgeyBwYXlsb2FkLCBzaWduYXR1cmUsIHNpZ25lciB9ID0gc2lnbmVkVGVzdC5pbnB1dDtcblxuICAgIGl0KCdzaG91bGQgYmUgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IHNpZ25hdHVyZXMgYW5kIHNpZ25lcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IG1lc3NhZ2VDbGFzcyh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHNpZ25hdHVyZXM6IFtzaWduYXR1cmVdLFxuICAgICAgICBzaWduZXJzOiBbc2lnbmVyXSxcbiAgICAgIH0pO1xuXG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuY29udGFpbkVxbChzaWduYXR1cmUpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoc2lnbmVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbWFpbnRhaW4gc2lnbmF0dXJlcyBhbmQgc2lnbmVycyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IG1lc3NhZ2VDbGFzcyh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHNpZ25hdHVyZXM6IFtzaWduYXR1cmVdLFxuICAgICAgICBzaWduZXJzOiBbc2lnbmVyXSxcbiAgICAgIH0pO1xuXG4gICAgICBtZXNzYWdlLmFkZFNpZ25hdHVyZSh7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIxJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCduZXctc2lnbmF0dXJlJyksXG4gICAgICB9KTtcbiAgICAgIG1lc3NhZ2UuYWRkU2lnbmVyKCduZXctc2lnbmVyJyk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKHtcbiAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ25ldy1zaWduYXR1cmUnKSxcbiAgICAgIH0pO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoJ25ldy1zaWduZXInKTtcblxuICAgICAgLy8gVGVzdCByZXBsYWNpbmcgYWxsXG4gICAgICBtZXNzYWdlLnNldFNpZ25hdHVyZXMoW1xuICAgICAgICB7XG4gICAgICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjInIH0sXG4gICAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgncmVwbGFjZWQtc2lnbmF0dXJlJyksXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIG1lc3NhZ2Uuc2V0U2lnbmVycyhbJ3JlcGxhY2VkLXNpZ25lciddKTtcblxuICAgICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMicgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdyZXBsYWNlZC1zaWduYXR1cmUnKSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmRlZXBFcXVhbChbJ3JlcGxhY2VkLXNpZ25lciddKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoYCR7bWVzc2FnZVR5cGV9IC0gQnJvYWRjYXN0IEZvcm1hdGAsICgpID0+IHtcbiAgICBjb25zdCB7IHBheWxvYWQsIHNpZ25hdHVyZSwgc2lnbmVyIH0gPSBzaWduZWRUZXN0LmlucHV0O1xuICAgIGNvbnN0IHsgZXhwZWN0ZWRTaWduYWJsZUJhc2U2NCB9ID0gc2lnbmVkVGVzdC5leHBlY3RlZDtcblxuICAgIGl0KCdzaG91bGQgY29udmVydCB0byBicm9hZGNhc3QgZm9ybWF0IGNvcnJlY3RseScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgbWVzc2FnZUNsYXNzKHtcbiAgICAgICAgY29pbkNvbmZpZyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgc2lnbmF0dXJlczogW3NpZ25hdHVyZV0sXG4gICAgICAgIHNpZ25lcnM6IFtzaWduZXJdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkU2VyaWFsaXplZFNpZ25hdHVyZXMgPSBzZXJpYWxpemVTaWduYXR1cmVzKFtzaWduYXR1cmVdKTtcblxuICAgICAgYnJvYWRjYXN0Rm9ybWF0LnR5cGUuc2hvdWxkLmVxdWFsKG1lc3NhZ2VUeXBlKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5wYXlsb2FkLnNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2VyaWFsaXplZFNpZ25hdHVyZXM/LnNob3VsZC5kZWVwRXF1YWwoZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2lnbmVycz8uc2hvdWxkLmRlZXBFcXVhbChbc2lnbmVyXSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2lnbmFibGVQYXlsb2FkPy5zaG91bGQuZXF1YWwoZXhwZWN0ZWRTaWduYWJsZUJhc2U2NCk7XG5cbiAgICAgIGlmIChicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEpIHtcbiAgICAgICAgYnJvYWRjYXN0Rm9ybWF0Lm1ldGFkYXRhLnNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRNZXRhZGF0YSgpLCB7fSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnZlcnQgdG8gYnJvYWRjYXN0IHN0cmluZyBjb3JyZWN0bHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IG1lc3NhZ2VDbGFzcyh7XG4gICAgICAgIGNvaW5Db25maWcsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHNpZ25hdHVyZXM6IFtzaWduYXR1cmVdLFxuICAgICAgICBzaWduZXJzOiBbc2lnbmVyXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG4gICAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBCdWZmZXIuZnJvbShicm9hZGNhc3RIZXgsICdoZXgnKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgcGFyc2VkQnJvYWRjYXN0ID0gSlNPTi5wYXJzZShicm9hZGNhc3RTdHJpbmcpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyA9IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW3NpZ25hdHVyZV0pO1xuXG4gICAgICBwYXJzZWRCcm9hZGNhc3QudHlwZS5zaG91bGQuZXF1YWwobWVzc2FnZVR5cGUpO1xuICAgICAgcGFyc2VkQnJvYWRjYXN0LnBheWxvYWQuc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpKTtcbiAgICAgIHBhcnNlZEJyb2FkY2FzdC5zZXJpYWxpemVkU2lnbmF0dXJlcy5zaG91bGQuZGVlcEVxdWFsKGV4cGVjdGVkU2VyaWFsaXplZFNpZ25hdHVyZXMpO1xuICAgICAgcGFyc2VkQnJvYWRjYXN0LnNpZ25lcnMuc2hvdWxkLmRlZXBFcXVhbChbc2lnbmVyXSk7XG4gICAgICBwYXJzZWRCcm9hZGNhc3QubWV0YWRhdGEuc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldE1ldGFkYXRhKCkpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -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-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9laXAxOTEvZWlwMTkxTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsbURBQWdGO0FBQ2hGLDBDQUF1QztBQUN2Qyx5Q0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFdEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBYSxDQUFDO1lBQ2hDLFVBQVUsRUFBRSxtQkFBUSxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzRCwrRUFBK0U7UUFDL0UsTUFBTSxjQUFjLEdBQUcsbUNB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QUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JFLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDcEYsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNuRSxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIHNlcmlhbGl6ZVNpZ25hdHVyZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBmaXh0dXJlcyB9IGZyb20gJy4uL2ZpeHR1cmVzJztcbmltcG9ydCB7IEVJUDE5MU1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnRUlQMTkxIE1lc3NhZ2UnLCAoKSA9PiB7XG4gIGNvbnN0IHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbml0aWFsaXplIHdpdGggdGhlIGNvcnJlY3QgdHlwZScsICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICB9KTtcblxuICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2VuZXJhdGUgdGhlIGNvcnJlY3Qgc2lnbmFibGUgcGF5bG9hZCB3aXRoIEV0aGVyZXVtIHByZWZpeCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgLy8gTWVzc2FnZSBpcyBwcmVmaXhlZCB3aXRoIFwiXFx1MDAxOUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOlxcbjxsZW5ndGg+PG1lc3NhZ2U+XCJcbiAgICBjb25zdCBleHBlY3RlZFByZWZpeCA9IGBcXHUwMDE5RXRoZXJldW0gU2lnbmVkIE1lc3NhZ2U6XFxuJHtmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UubGVuZ3RofWA7XG4gICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0gQnVmZmVyLmZyb20oZXhwZWN0ZWRQcmVmaXguY29uY2F0KGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSkpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIHNpZ25hYmxlUGF5bG9hZC5zaG91bGQuZXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBoYW5kbGUgZW1wdHkgbWVzc2FnZXMgY29ycmVjdGx5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgRUlQMTkxTWVzc2FnZSh7XG4gICAgICBjb2luQ29uZmlnOiBmaXh0dXJlcy5jb2luLFxuICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMuZW1wdHlNZXNzYWdlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gYXdhaXQgbWVzc2FnZS5nZXRTaWduYWJsZVBheWxvYWQoKTtcbiAgICAvLyBFbXB0eSBtZXNzYWdlIGhhcyBsZW5ndGggMFxuICAgIGNvbnN0IGV4cGVjdGVkUHJlZml4ID0gYFxcdTAwMTlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTpcXG4wYDtcbiAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSBCdWZmZXIuZnJvbShleHBlY3RlZFByZWZpeC5jb25jYXQoJycpKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICBzaWduYWJsZVBheWxvYWQuc2hvdWxkLmVxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaGFuZGxlIG1lc3NhZ2VzIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgRUlQMTkxTWVzc2FnZSh7XG4gICAgICBjb2luQ29uZmlnOiBmaXh0dXJlcy5jb2luLFxuICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IGF3YWl0IG1lc3NhZ2UuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG4gICAgY29uc3QgZXhwZWN0ZWRQcmVmaXggPSBgXFx1MDAxOUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOlxcbiR7Zml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZS5sZW5ndGh9YDtcbiAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSBCdWZmZXIuZnJvbShleHBlY3RlZFByZWZpeC5jb25jYXQoZml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZSkpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIHNpZ25hYmxlUGF5bG9hZC5zaG91bGQuZXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBtYWludGFpbiBzaWduYXR1cmVzIGFuZCBzaWduZXJzIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgIHNpZ25hdHVyZXM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlXSxcbiAgICAgIHNpZ25lcnM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSxcbiAgICB9KTtcblxuICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuXG4gICAgLy8gVGVzdCBhZGRpbmcgbmV3IG9uZXNcbiAgICBtZXNzYWdlLmFkZFNpZ25hdHVyZSh7XG4gICAgICBwdWJsaWNLZXk6IHsgcHViOiAncHViMScgfSxcbiAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ25ldy1zaWduYXR1cmUnKSxcbiAgICB9KTtcbiAgICBtZXNzYWdlLmFkZFNpZ25lcignbmV3LXNpZ25lcicpO1xuXG4gICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmNvbnRhaW5FcWwoe1xuICAgICAgcHVibGljS2V5OiB7IHB1YjogJ3B1YjEnIH0sXG4gICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCduZXctc2lnbmF0dXJlJyksXG4gICAgfSk7XG4gICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoJ25ldy1zaWduZXInKTtcblxuICAgIC8vIFRlc3QgcmVwbGFjaW5nIGFsbFxuICAgIG1lc3NhZ2Uuc2V0U2lnbmF0dXJlcyhbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIyJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdyZXBsYWNlZC1zaWduYXR1cmUnKSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgbWVzc2FnZS5zZXRTaWduZXJzKFsncmVwbGFjZWQtc2lnbmVyJ10pO1xuXG4gICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdwdWIyJyB9LFxuICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdyZXBsYWNlZC1zaWduYXR1cmUnKSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmRlZXBFcXVhbChbJ3JlcGxhY2VkLXNpZ25lciddKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgRUlQMTkxTWVzc2FnZSh7XG4gICAgICBjb2luQ29uZmlnOiBmaXh0dXJlcy5jb2luLFxuICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlLFxuICAgICAgbWV0YWRhdGE6IGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSxcbiAgICB9KTtcblxuICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmRlZXBFcXVhbChmaXh0dXJlcy5laXAxOTEubWV0YWRhdGEpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQnJvYWRjYXN0IEZvcm1hdCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvbnZlcnQgdG8gYnJvYWRjYXN0IGZvcm1hdCBjb3JyZWN0bHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IEVJUDE5MU1lc3NhZ2Uoe1xuICAgICAgICBjb2luQ29uZmlnOiBmaXh0dXJlcy5jb2luLFxuICAgICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UsXG4gICAgICAgIHNpZ25hdHVyZXM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlXSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YTogZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyA9IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC50eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQucGF5bG9hZC5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zZXJpYWxpemVkU2lnbmF0dXJlcz8uc2hvdWxkLmRlZXBFcXVhbChleHBlY3RlZFNlcmlhbGl6ZWRTaWduYXR1cmVzKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaWduZXJzPy5zaG91bGQuZGVlcEVxdWFsKFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQubWV0YWRhdGEhLnNob3VsZC5kZWVwRXF1YWwoZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaWduYWJsZVBheWxvYWQhLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ01UazBOVGMwTmpnMk5UY3lOalUzTlRaa01qQTFNelk1TmpjMlpUWTFOalF5TURSa05qVTNNemN6TmpFMk56WTFNMkV3WVRNeE16TTBPRFkxTm1NMll6Wm1NbU15TURjM05tWTNNalpqTmpReU1RPT0nXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IHRvIGJyb2FkY2FzdCBzdHJpbmcgY29ycmVjdGx5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBFSVAxOTFNZXNzYWdlKHtcbiAgICAgICAgY29pbkNvbmZpZzogZml4dHVyZXMuY29pbixcbiAgICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlLFxuICAgICAgICBzaWduYXR1cmVzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZV0sXG4gICAgICAgIHNpZ25lcnM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSxcbiAgICAgICAgbWV0YWRhdGE6IGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0U3RyaW5nKCk7XG4gICAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBCdWZmZXIuZnJvbShicm9hZGNhc3RIZXgsICdoZXgnKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgcGFyc2VkQnJvYWRjYXN0ID0gSlNPTi5wYXJzZShicm9hZGNhc3RTdHJpbmcpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyA9IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKTtcblxuICAgICAgcGFyc2VkQnJvYWRjYXN0LnR5cGUuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIHBhcnNlZEJyb2FkY2FzdC5wYXlsb2FkLnNob3VsZC5lcXVhbChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgcGFyc2VkQnJvYWRjYXN0LnNlcmlhbGl6ZWRTaWduYXR1cmVzLnNob3VsZC5kZWVwRXF1YWwoZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyk7XG4gICAgICBwYXJzZWRCcm9hZGNhc3Quc2lnbmVycy5zaG91bGQuZGVlcEVxdWFsKFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSk7XG4gICAgICBwYXJzZWRCcm9hZGNhc3QubWV0YWRhdGEuc2hvdWxkLmRlZXBFcXVhbChmaXh0dXJlcy5laXAxOTEubWV0YWRhdGEpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9tZXNzYWdlcy9laXAxOTEvZWlwMTkxTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQixtREFBMkQ7QUFDM0QseUNBQXNDO0FBQ3RDLHlDQUFnRDtBQUNoRCwwRUFBb0U7QUFFcEUsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixJQUFBLGdEQUFxQixFQUFDO1FBQ3BCLFdBQVcsRUFBRSw4QkFBbUIsQ0FBQyxNQUFNO1FBQ3ZDLFlBQVksRUFBRSxtQkFBYTtRQUMzQixHQUFHLG1CQUFRO0tBQ1osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZml4dHVyZXMgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IEVJUDE5MU1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgdGVzdEV0aE1lc3NhZ2VTaWduaW5nIH0gZnJvbSAnLi4vYWJzdHJhY3RFdGhNZXNzYWdlc1Rlc3RzJztcblxuZGVzY3JpYmUoJ0VJUDE5MSBNZXNzYWdlJywgKCkgPT4ge1xuICB0ZXN0RXRoTWVzc2FnZVNpZ25pbmcoe1xuICAgIG1lc3NhZ2VUeXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICBtZXNzYWdlQ2xhc3M6IEVJUDE5MU1lc3NhZ2UsXG4gICAgLi4uZml4dHVyZXMsXG4gIH0pO1xufSk7XG4iXX0=
|