@bitgo/sdk-coin-bsc 22.8.2 → 22.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test/fixtures/ecdsa.d.ts +105 -0
- package/dist/test/fixtures/ecdsa.d.ts.map +1 -0
- package/dist/test/fixtures/ecdsa.js +108 -0
- package/dist/test/resources/bsc.d.ts +10 -0
- package/dist/test/resources/bsc.d.ts.map +1 -0
- package/dist/test/resources/bsc.js +13 -0
- package/dist/test/unit/bsc.d.ts +2 -0
- package/dist/test/unit/bsc.d.ts.map +1 -0
- package/dist/test/unit/bsc.js +37 -0
- package/dist/test/unit/bscToken.d.ts +2 -0
- package/dist/test/unit/bscToken.d.ts.map +1 -0
- package/dist/test/unit/bscToken.js +31 -0
- package/dist/test/unit/getBuilder.d.ts +3 -0
- package/dist/test/unit/getBuilder.d.ts.map +1 -0
- package/dist/test/unit/getBuilder.js +10 -0
- package/dist/test/unit/messages/eip191MessageBuilder.d.ts +2 -0
- package/dist/test/unit/messages/eip191MessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/messages/eip191MessageBuilder.js +153 -0
- package/dist/test/unit/messages/fixtures.d.ts +25 -0
- package/dist/test/unit/messages/fixtures.d.ts.map +1 -0
- package/dist/test/unit/messages/fixtures.js +29 -0
- package/dist/test/unit/messages/index.d.ts +5 -0
- package/dist/test/unit/messages/index.d.ts.map +1 -0
- package/dist/test/unit/messages/index.js +21 -0
- package/dist/test/unit/messages/integration.d.ts +2 -0
- package/dist/test/unit/messages/integration.d.ts.map +1 -0
- package/dist/test/unit/messages/integration.js +96 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/messages/messageBuilderFactory.js +84 -0
- package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/send.js +19 -0
- 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 +29 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +11 -8
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -1136
|
@@ -0,0 +1,153 @@
|
|
|
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
|
+
require("should");
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
+
const fixtures_1 = require("./fixtures");
|
|
10
|
+
const abstract_eth_1 = require("@bitgo/abstract-eth");
|
|
11
|
+
describe('BSC EIP191 Message Builder', () => {
|
|
12
|
+
const sandbox = sinon_1.default.createSandbox();
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
sandbox.restore();
|
|
15
|
+
});
|
|
16
|
+
describe('constructor', () => {
|
|
17
|
+
it('should initialize with BSC coin configuration', () => {
|
|
18
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
19
|
+
builder.should.be.instanceof(abstract_eth_1.Eip191MessageBuilder);
|
|
20
|
+
// Verify it's using BSC coin config
|
|
21
|
+
fixtures_1.fixtures.coin.name.should.equal('tbsc');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('build method', () => {
|
|
25
|
+
it('should build a valid EIP191 message for BSC', async () => {
|
|
26
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
27
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage).setMetadata({ customData: 'BSC test data' });
|
|
28
|
+
const message = await builder.build();
|
|
29
|
+
message.should.be.instanceof(abstract_eth_1.EIP191Message);
|
|
30
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
31
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
32
|
+
message.getMetadata().should.have.property('customData', 'BSC test data');
|
|
33
|
+
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
34
|
+
});
|
|
35
|
+
it('should throw an error when building without setting payload', async () => {
|
|
36
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
37
|
+
await builder.build().should.be.rejectedWith('Message payload must be set before building the message');
|
|
38
|
+
});
|
|
39
|
+
it('should include BSC signers when building a message', async () => {
|
|
40
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
41
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
42
|
+
builder.addSigner(fixtures_1.fixtures.eip191.signer);
|
|
43
|
+
const message = await builder.build();
|
|
44
|
+
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
45
|
+
});
|
|
46
|
+
it('should include signatures when building a BSC message', async () => {
|
|
47
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
48
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
49
|
+
builder.addSignature(fixtures_1.fixtures.eip191.signature);
|
|
50
|
+
const message = await builder.build();
|
|
51
|
+
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
52
|
+
});
|
|
53
|
+
it('should override metadata.encoding with utf8 for BSC', async () => {
|
|
54
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
55
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
56
|
+
builder.setMetadata({ encoding: 'hex', customData: 'BSC test data', network: 'bsc' });
|
|
57
|
+
const message = await builder.build();
|
|
58
|
+
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
59
|
+
message.getMetadata().should.have.property('customData', 'BSC test data');
|
|
60
|
+
message.getMetadata().should.have.property('network', 'bsc');
|
|
61
|
+
});
|
|
62
|
+
it('should handle BSC-specific metadata fields', async () => {
|
|
63
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
64
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
65
|
+
builder.setMetadata({
|
|
66
|
+
network: 'bsc',
|
|
67
|
+
chainId: 97, // BSC testnet chain ID
|
|
68
|
+
customData: 'BSC-specific data',
|
|
69
|
+
});
|
|
70
|
+
const message = await builder.build();
|
|
71
|
+
message.getMetadata().should.have.property('network', 'bsc');
|
|
72
|
+
message.getMetadata().should.have.property('chainId', 97);
|
|
73
|
+
message.getMetadata().should.have.property('customData', 'BSC-specific data');
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('fromBroadcastFormat method', () => {
|
|
77
|
+
it('should reconstruct a BSC message from broadcast format', async () => {
|
|
78
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
79
|
+
const broadcastMessage = {
|
|
80
|
+
type: sdk_core_1.MessageStandardType.EIP191,
|
|
81
|
+
payload: fixtures_1.fixtures.messages.validMessage,
|
|
82
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]),
|
|
83
|
+
signers: [fixtures_1.fixtures.eip191.signer],
|
|
84
|
+
metadata: fixtures_1.fixtures.eip191.metadata,
|
|
85
|
+
};
|
|
86
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
87
|
+
message.should.be.instanceof(abstract_eth_1.EIP191Message);
|
|
88
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
89
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
90
|
+
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
91
|
+
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
92
|
+
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
93
|
+
message.getMetadata().should.have.property('customData', 'BSC test data');
|
|
94
|
+
message.getMetadata().should.have.property('network', 'bsc');
|
|
95
|
+
});
|
|
96
|
+
it('should handle broadcast format with empty metadata for BSC', async () => {
|
|
97
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
98
|
+
const broadcastMessage = {
|
|
99
|
+
type: sdk_core_1.MessageStandardType.EIP191,
|
|
100
|
+
payload: fixtures_1.fixtures.messages.validMessage,
|
|
101
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]),
|
|
102
|
+
signers: [fixtures_1.fixtures.eip191.signer],
|
|
103
|
+
metadata: {},
|
|
104
|
+
};
|
|
105
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
106
|
+
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
107
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
108
|
+
});
|
|
109
|
+
it('should handle special characters in BSC broadcast format', async () => {
|
|
110
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
111
|
+
const broadcastMessage = {
|
|
112
|
+
type: sdk_core_1.MessageStandardType.EIP191,
|
|
113
|
+
payload: fixtures_1.fixtures.messages.specialCharsMessage,
|
|
114
|
+
serializedSignatures: (0, sdk_core_1.serializeSignatures)([fixtures_1.fixtures.eip191.signature]),
|
|
115
|
+
signers: [fixtures_1.fixtures.eip191.signer],
|
|
116
|
+
metadata: { network: 'bsc' },
|
|
117
|
+
};
|
|
118
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
119
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.specialCharsMessage);
|
|
120
|
+
message.getMetadata().should.have.property('network', 'bsc');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('BSC-specific scenarios', () => {
|
|
124
|
+
it('should work with multiple signers for BSC multisig scenarios', async () => {
|
|
125
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
126
|
+
const secondSigner = '0x1234567890123456789012345678901234567890';
|
|
127
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
128
|
+
builder.addSigner(fixtures_1.fixtures.eip191.signer);
|
|
129
|
+
builder.addSigner(secondSigner);
|
|
130
|
+
const message = await builder.build();
|
|
131
|
+
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
132
|
+
message.getSigners().should.containEql(secondSigner);
|
|
133
|
+
message.getSigners().length.should.equal(2);
|
|
134
|
+
});
|
|
135
|
+
it('should preserve BSC chain-specific metadata throughout build process', async () => {
|
|
136
|
+
const builder = new abstract_eth_1.Eip191MessageBuilder(fixtures_1.fixtures.coin);
|
|
137
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
138
|
+
builder.setMetadata({
|
|
139
|
+
network: 'bsc',
|
|
140
|
+
chainId: 56, // BSC mainnet
|
|
141
|
+
gasPrice: '5000000000', // 5 Gwei
|
|
142
|
+
contractAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', // WBNB
|
|
143
|
+
});
|
|
144
|
+
const message = await builder.build();
|
|
145
|
+
const metadata = message.getMetadata();
|
|
146
|
+
metadata.should.have.property('network', 'bsc');
|
|
147
|
+
metadata.should.have.property('chainId', 56);
|
|
148
|
+
metadata.should.have.property('gasPrice', '5000000000');
|
|
149
|
+
metadata.should.have.property('contractAddress', '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c');
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwMTkxTWVzc2FnZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQkFBZ0I7QUFDaEIsa0RBQTBCO0FBQzFCLDhDQUFpRztBQUNqRyx5Q0FBc0M7QUFDdEMsc0RBQTBFO0FBRTFFLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDMUMsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXRDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUMzQixFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQW9CLENBQUMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4RCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUNBQW9CLENBQUMsQ0FBQztZQUNuRCxvQ0FBb0M7WUFDcEMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO1FBQzVCLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG1DQUFvQixDQUFDLG1CQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxZ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eEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGZpeHR1cmVzIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBFaXAxOTFNZXNzYWdlQnVpbGRlciwgRUlQMTkxTWVzc2FnZSB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuXG5kZXNjcmliZSgnQlNDIEVJUDE5MSBNZXNzYWdlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvbnN0cnVjdG9yJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIEJTQyBjb2luIGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNob3VsZC5iZS5pbnN0YW5jZW9mKEVpcDE5MU1lc3NhZ2VCdWlsZGVyKTtcbiAgICAgIC8vIFZlcmlmeSBpdCdzIHVzaW5nIEJTQyBjb2luIGNvbmZpZ1xuICAgICAgZml4dHVyZXMuY29pbi5uYW1lLnNob3VsZC5lcXVhbCgndGJzYycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYnVpbGQgbWV0aG9kJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB2YWxpZCBFSVAxOTEgbWVzc2FnZSBmb3IgQlNDJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSkuc2V0TWV0YWRhdGEoeyBjdXN0b21EYXRhOiAnQlNDIHRlc3QgZGF0YScgfSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YoRUlQMTkxTWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjdXN0b21EYXRhJywgJ0JTQyB0ZXN0IGRhdGEnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igd2hlbiBidWlsZGluZyB3aXRob3V0IHNldHRpbmcgcGF5bG9hZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdNZXNzYWdlIHBheWxvYWQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSBtZXNzYWdlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluY2x1ZGUgQlNDIHNpZ25lcnMgd2hlbiBidWlsZGluZyBhIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmVyKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaW5jbHVkZSBzaWduYXR1cmVzIHdoZW4gYnVpbGRpbmcgYSBCU0MgbWVzc2FnZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgYnVpbGRlci5hZGRTaWduYXR1cmUoZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBvdmVycmlkZSBtZXRhZGF0YS5lbmNvZGluZyB3aXRoIHV0ZjggZm9yIEJTQycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgYnVpbGRlci5zZXRNZXRhZGF0YSh7IGVuY29kaW5nOiAnaGV4JywgY3VzdG9tRGF0YTogJ0JTQyB0ZXN0IGRhdGEnLCBuZXR3b3JrOiAnYnNjJyB9KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY3VzdG9tRGF0YScsICdCU0MgdGVzdCBkYXRhJyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgQlNDLXNwZWNpZmljIG1ldGFkYXRhIGZpZWxkcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgYnVpbGRlci5zZXRNZXRhZGF0YSh7XG4gICAgICAgIG5ldHdvcms6ICdic2MnLFxuICAgICAgICBjaGFpbklkOiA5NywgLy8gQlNDIHRlc3RuZXQgY2hhaW4gSURcbiAgICAgICAgY3VzdG9tRGF0YTogJ0JTQy1zcGVjaWZpYyBkYXRhJyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY2hhaW5JZCcsIDk3KTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2N1c3RvbURhdGEnLCAnQlNDLXNwZWNpZmljIGRhdGEnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Zyb21Ccm9hZGNhc3RGb3JtYXQgbWV0aG9kJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVjb25zdHJ1Y3QgYSBCU0MgbWVzc2FnZSBmcm9tIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YTogZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcblxuICAgICAgbWVzc2FnZS5zaG91bGQuYmUuaW5zdGFuY2VvZihFSVAxOTFNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25lcik7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjdXN0b21EYXRhJywgJ0JTQyB0ZXN0IGRhdGEnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ25ldHdvcmsnLCAnYnNjJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBicm9hZGNhc3QgZm9ybWF0IHdpdGggZW1wdHkgbWV0YWRhdGEgZm9yIEJTQycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhbZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZV0pLFxuICAgICAgICBzaWduZXJzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0sXG4gICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIEJTQyBicm9hZGNhc3QgZm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy5zcGVjaWFsQ2hhcnNNZXNzYWdlLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogc2VyaWFsaXplU2lnbmF0dXJlcyhbZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZV0pLFxuICAgICAgICBzaWduZXJzOiBbZml4dHVyZXMuZWlwMTkxLnNpZ25lcl0sXG4gICAgICAgIG1ldGFkYXRhOiB7IG5ldHdvcms6ICdic2MnIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpO1xuXG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQlNDLXNwZWNpZmljIHNjZW5hcmlvcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHdvcmsgd2l0aCBtdWx0aXBsZSBzaWduZXJzIGZvciBCU0MgbXVsdGlzaWcgc2NlbmFyaW9zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcbiAgICAgIGNvbnN0IHNlY29uZFNpZ25lciA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmVyKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuICAgICAgYnVpbGRlci5hZGRTaWduZXIoc2Vjb25kU2lnbmVyKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25lcik7XG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuY29udGFpbkVxbChzZWNvbmRTaWduZXIpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcHJlc2VydmUgQlNDIGNoYWluLXNwZWNpZmljIG1ldGFkYXRhIHRocm91Z2hvdXQgYnVpbGQgcHJvY2VzcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgYnVpbGRlci5zZXRNZXRhZGF0YSh7XG4gICAgICAgIG5ldHdvcms6ICdic2MnLFxuICAgICAgICBjaGFpbklkOiA1NiwgLy8gQlNDIG1haW5uZXRcbiAgICAgICAgZ2FzUHJpY2U6ICc1MDAwMDAwMDAwJywgLy8gNSBHd2VpXG4gICAgICAgIGNvbnRyYWN0QWRkcmVzczogJzB4YmI0Q2RCOUNCZDM2QjAxYkQxY0JhRUJGMkRlMDhkOTE3M2JjMDk1YycsIC8vIFdCTkJcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSE7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjaGFpbklkJywgNTYpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2dhc1ByaWNlJywgJzUwMDAwMDAwMDAnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjb250cmFjdEFkZHJlc3MnLCAnMHhiYjRDZEI5Q0JkMzZCMDFiRDFjQmFFQkYyRGUwOGQ5MTczYmMwOTVjJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const fixtures: {
|
|
2
|
+
coin: Readonly<import("@bitgo/statics").BaseCoin>;
|
|
3
|
+
messages: {
|
|
4
|
+
validMessage: string;
|
|
5
|
+
emptyMessage: string;
|
|
6
|
+
specialCharsMessage: string;
|
|
7
|
+
longMessage: string;
|
|
8
|
+
};
|
|
9
|
+
eip191: {
|
|
10
|
+
validSignablePayload: string;
|
|
11
|
+
signature: {
|
|
12
|
+
publicKey: {
|
|
13
|
+
pub: string;
|
|
14
|
+
};
|
|
15
|
+
signature: Buffer<ArrayBuffer>;
|
|
16
|
+
};
|
|
17
|
+
signer: string;
|
|
18
|
+
metadata: {
|
|
19
|
+
encoding: string;
|
|
20
|
+
customData: string;
|
|
21
|
+
network: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/fixtures.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;CA2BpB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fixtures = void 0;
|
|
4
|
+
const statics_1 = require("@bitgo/statics");
|
|
5
|
+
// Test fixtures for BSC EIP-191 message tests
|
|
6
|
+
exports.fixtures = {
|
|
7
|
+
coin: statics_1.coins.get('tbsc'), // Using testnet BSC for tests
|
|
8
|
+
messages: {
|
|
9
|
+
validMessage: 'Hello, BSC world!',
|
|
10
|
+
emptyMessage: '',
|
|
11
|
+
specialCharsMessage: '!@#$%^&*()',
|
|
12
|
+
longMessage: 'This is a very long message that contains multiple lines and special characters. ' +
|
|
13
|
+
'It is designed to test the EIP-191 message format with a more complex payload on BSC network.',
|
|
14
|
+
},
|
|
15
|
+
eip191: {
|
|
16
|
+
validSignablePayload: '0x19457468657265756d205369676e6564204d6573736167653a1048656c6c6f2c20425343twentieth776f726c6421',
|
|
17
|
+
signature: {
|
|
18
|
+
publicKey: { pub: '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf' },
|
|
19
|
+
signature: Buffer.from('5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be8921b', 'hex'),
|
|
20
|
+
},
|
|
21
|
+
signer: '0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf',
|
|
22
|
+
metadata: {
|
|
23
|
+
encoding: 'utf8',
|
|
24
|
+
customData: 'BSC test data',
|
|
25
|
+
network: 'bsc',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXVDO0FBRXZDLDhDQUE4QztBQUNqQyxRQUFBLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSw4QkFBOEI7SUFDdkQsUUFBUSxFQUFFO1FBQ1IsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxZQUFZLEVBQUUsRUFBRTtRQUNoQixtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLFdBQVcsRUFDVCxtRkFBbUY7WUFDbkYsK0ZBQStGO0tBQ2xHO0lBQ0QsTUFBTSxFQUFFO1FBQ04sb0JBQW9CLEVBQ2xCLGlHQUFpRztRQUNuRyxTQUFTLEVBQUU7WUFDVCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsNENBQTRDLEVBQUU7WUFDaEUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLG9JQUFvSSxFQUNwSSxLQUFLLENBQ047U0FDRjtRQUNELE1BQU0sRUFBRSw0Q0FBNEM7UUFDcEQsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLE1BQU07WUFDaEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG4vLyBUZXN0IGZpeHR1cmVzIGZvciBCU0MgRUlQLTE5MSBtZXNzYWdlIHRlc3RzXG5leHBvcnQgY29uc3QgZml4dHVyZXMgPSB7XG4gIGNvaW46IGNvaW5zLmdldCgndGJzYycpLCAvLyBVc2luZyB0ZXN0bmV0IEJTQyBmb3IgdGVzdHNcbiAgbWVzc2FnZXM6IHtcbiAgICB2YWxpZE1lc3NhZ2U6ICdIZWxsbywgQlNDIHdvcmxkIScsXG4gICAgZW1wdHlNZXNzYWdlOiAnJyxcbiAgICBzcGVjaWFsQ2hhcnNNZXNzYWdlOiAnIUAjJCVeJiooKScsXG4gICAgbG9uZ01lc3NhZ2U6XG4gICAgICAnVGhpcyBpcyBhIHZlcnkgbG9uZyBtZXNzYWdlIHRoYXQgY29udGFpbnMgbXVsdGlwbGUgbGluZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy4gJyArXG4gICAgICAnSXQgaXMgZGVzaWduZWQgdG8gdGVzdCB0aGUgRUlQLTE5MSBtZXNzYWdlIGZvcm1hdCB3aXRoIGEgbW9yZSBjb21wbGV4IHBheWxvYWQgb24gQlNDIG5ldHdvcmsuJyxcbiAgfSxcbiAgZWlwMTkxOiB7XG4gICAgdmFsaWRTaWduYWJsZVBheWxvYWQ6XG4gICAgICAnMHgxOTQ1NzQ2ODY1NzI2NTc1NmQyMDUzNjk2NzZlNjU2NDIwNGQ2NTczNzM2MTY3NjUzYTEwNDg2NTZjNmM2ZjJjMjA0MjUzNDN0d2VudGlldGg3NzZmNzI2YzY0MjEnLFxuICAgIHNpZ25hdHVyZToge1xuICAgICAgcHVibGljS2V5OiB7IHB1YjogJzB4N0U1RjQ1NTIwOTFBNjkxMjVkNURmQ2I3YjhDMjY1OTAyOTM5NUJkZicgfSxcbiAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oXG4gICAgICAgICc1ZDk5YjZmN2Y2ZDFmNzNkMWEyNjQ5N2YyYjFjODliMjRjMDk5MzkxM2Y4NmU5YTJkMDJjZDY5ODg3ZDljOTRmM2M4ODAzNTg1NzlkODExYjIxZGQxYjdmZDliYjAxYzFkODFkMTBlNjlmMDM4NGU2NzVjMzJiMzk2NDNiZTg5MjFiJyxcbiAgICAgICAgJ2hleCdcbiAgICAgICksXG4gICAgfSxcbiAgICBzaWduZXI6ICcweDdFNUY0NTUyMDkxQTY5MTI1ZDVEZkNiN2I4QzI2NTkwMjkzOTVCZGYnLFxuICAgIG1ldGFkYXRhOiB7XG4gICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgY3VzdG9tRGF0YTogJ0JTQyB0ZXN0IGRhdGEnLFxuICAgICAgbmV0d29yazogJ2JzYycsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./fixtures"), exports);
|
|
18
|
+
__exportStar(require("./messageBuilderFactory"), exports);
|
|
19
|
+
__exportStar(require("./eip191MessageBuilder"), exports);
|
|
20
|
+
__exportStar(require("./integration"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwwREFBd0M7QUFDeEMseURBQXVDO0FBQ3ZDLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZml4dHVyZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9laXAxOTFNZXNzYWdlQnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL2ludGVncmF0aW9uJztcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/integration.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
+
const statics_1 = require("@bitgo/statics");
|
|
6
|
+
const src_1 = require("../../../src");
|
|
7
|
+
const fixtures_1 = require("./fixtures");
|
|
8
|
+
describe('BSC Message Builder Integration Tests', () => {
|
|
9
|
+
describe('End-to-end message building workflow', () => {
|
|
10
|
+
it('should complete full message lifecycle from factory to broadcast format', async () => {
|
|
11
|
+
// Create factory with BSC coin configuration
|
|
12
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
13
|
+
// Get EIP-191 builder
|
|
14
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
15
|
+
// Build message with BSC-specific metadata
|
|
16
|
+
builder
|
|
17
|
+
.setPayload('Integration test message for BSC')
|
|
18
|
+
.setMetadata({
|
|
19
|
+
network: 'bsc',
|
|
20
|
+
chainId: 97,
|
|
21
|
+
timestamp: Date.now(),
|
|
22
|
+
dapp: 'BitGo BSC Integration',
|
|
23
|
+
})
|
|
24
|
+
.addSigner(fixtures_1.fixtures.eip191.signer)
|
|
25
|
+
.addSignature(fixtures_1.fixtures.eip191.signature);
|
|
26
|
+
const message = await builder.build();
|
|
27
|
+
// Verify message properties
|
|
28
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
29
|
+
message.getPayload().should.equal('Integration test message for BSC');
|
|
30
|
+
message.getSigners().should.containEql(fixtures_1.fixtures.eip191.signer);
|
|
31
|
+
message.getSignatures().should.containEql(fixtures_1.fixtures.eip191.signature);
|
|
32
|
+
// Verify BSC-specific metadata
|
|
33
|
+
const metadata = message.getMetadata();
|
|
34
|
+
metadata.should.have.property('network', 'bsc');
|
|
35
|
+
metadata.should.have.property('chainId', 97);
|
|
36
|
+
metadata.should.have.property('dapp', 'BitGo BSC Integration');
|
|
37
|
+
metadata.should.have.property('encoding', 'utf8');
|
|
38
|
+
// Convert to broadcast format
|
|
39
|
+
const broadcastFormat = await message.toBroadcastFormat();
|
|
40
|
+
broadcastFormat.should.have.property('type', sdk_core_1.MessageStandardType.EIP191);
|
|
41
|
+
broadcastFormat.should.have.property('payload', 'Integration test message for BSC');
|
|
42
|
+
broadcastFormat.should.have.property('signers');
|
|
43
|
+
broadcastFormat.should.have.property('serializedSignatures');
|
|
44
|
+
broadcastFormat.should.have.property('metadata');
|
|
45
|
+
// Reconstruct from broadcast format
|
|
46
|
+
const rebuiltMessage = await builder.fromBroadcastFormat(broadcastFormat);
|
|
47
|
+
rebuiltMessage.getPayload().should.equal(message.getPayload());
|
|
48
|
+
rebuiltMessage.getType().should.equal(message.getType());
|
|
49
|
+
rebuiltMessage.getSigners().should.deepEqual(message.getSigners());
|
|
50
|
+
});
|
|
51
|
+
it('should work with production BSC coin configuration', async () => {
|
|
52
|
+
const bscCoin = statics_1.coins.get('bsc'); // Production BSC
|
|
53
|
+
const factory = new src_1.MessageBuilderFactory(bscCoin);
|
|
54
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
55
|
+
builder.setPayload('Production BSC message test');
|
|
56
|
+
const message = await builder.build();
|
|
57
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
58
|
+
message.getPayload().should.equal('Production BSC message test');
|
|
59
|
+
// Verify it uses production BSC configuration
|
|
60
|
+
bscCoin.name.should.equal('bsc');
|
|
61
|
+
bscCoin.network.family.should.equal('bsc');
|
|
62
|
+
});
|
|
63
|
+
it('should handle complex BSC transaction metadata', async () => {
|
|
64
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
65
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
66
|
+
const complexMetadata = {
|
|
67
|
+
network: 'bsc',
|
|
68
|
+
chainId: 56,
|
|
69
|
+
transactionType: 'token_transfer',
|
|
70
|
+
tokenContract: '0x55d398326f99059fF775485246999027B3197955', // USDT on BSC
|
|
71
|
+
amount: '1000000000000000000', // 1 token with 18 decimals
|
|
72
|
+
recipient: '0x742d35Cc6634C0532925a3b8D431C2FE1e05dB2b',
|
|
73
|
+
gasLimit: '21000',
|
|
74
|
+
gasPrice: '5000000000',
|
|
75
|
+
nonce: 42,
|
|
76
|
+
dappUrl: 'https://pancakeswap.finance',
|
|
77
|
+
userAgent: 'BitGo SDK BSC Integration Test',
|
|
78
|
+
};
|
|
79
|
+
builder
|
|
80
|
+
.setPayload('Complex BSC transaction approval')
|
|
81
|
+
.setMetadata(complexMetadata)
|
|
82
|
+
.addSigner(fixtures_1.fixtures.eip191.signer);
|
|
83
|
+
const message = await builder.build();
|
|
84
|
+
const metadata = message.getMetadata();
|
|
85
|
+
// Verify all complex metadata is preserved
|
|
86
|
+
metadata.should.have.property('tokenContract', '0x55d398326f99059fF775485246999027B3197955');
|
|
87
|
+
metadata.should.have.property('amount', '1000000000000000000');
|
|
88
|
+
metadata.should.have.property('recipient', '0x742d35Cc6634C0532925a3b8D431C2FE1e05dB2b');
|
|
89
|
+
metadata.should.have.property('gasLimit', '21000');
|
|
90
|
+
metadata.should.have.property('nonce', 42);
|
|
91
|
+
metadata.should.have.property('dappUrl', 'https://pancakeswap.finance');
|
|
92
|
+
metadata.should.have.property('encoding', 'utf8'); // Should be overridden
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvaW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsOENBQXNEO0FBQ3RELDRDQUF1QztBQUN2QyxzQ0FBcUQ7QUFDckQseUNBQXNDO0FBRXRDLFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7SUFDckQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxFQUFFLENBQUMseUVBQXlFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkYsNkNBQTZDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksMkJBQXFCLENBQUMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6RCxzQkFBc0I7WUFDdEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLDhCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRFLDJDQUEyQztZQUMzQyxPQUFPO2lCQUNKLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDOUMsV0FBVyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyQixJQUFJLEVBQUUsdUJBQXVCO2FBQzlCLENBQUM7aUJBQ0QsU0FBUyxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDakMsWUFBWSxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXRDLDRCQUE0QjtZQUM1QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMs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QUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7WUFDN0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQy9ELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsNENBQTRDLENBQUMsQ0FBQztZQUN6RixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3hFLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7UUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBmaXh0dXJlcyB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQlNDIE1lc3NhZ2UgQnVpbGRlciBJbnRlZ3JhdGlvbiBUZXN0cycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ0VuZC10by1lbmQgbWVzc2FnZSBidWlsZGluZyB3b3JrZmxvdycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvbXBsZXRlIGZ1bGwgbWVzc2FnZSBsaWZlY3ljbGUgZnJvbSBmYWN0b3J5IHRvIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBDcmVhdGUgZmFjdG9yeSB3aXRoIEJTQyBjb2luIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICAvLyBHZXQgRUlQLTE5MSBidWlsZGVyXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG5cbiAgICAgIC8vIEJ1aWxkIG1lc3NhZ2Ugd2l0aCBCU0Mtc3BlY2lmaWMgbWV0YWRhdGFcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNldFBheWxvYWQoJ0ludGVncmF0aW9uIHRlc3QgbWVzc2FnZSBmb3IgQlNDJylcbiAgICAgICAgLnNldE1ldGFkYXRhKHtcbiAgICAgICAgICBuZXR3b3JrOiAnYnNjJyxcbiAgICAgICAgICBjaGFpbklkOiA5NyxcbiAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgZGFwcDogJ0JpdEdvIEJTQyBJbnRlZ3JhdGlvbicsXG4gICAgICAgIH0pXG4gICAgICAgIC5hZGRTaWduZXIoZml4dHVyZXMuZWlwMTkxLnNpZ25lcilcbiAgICAgICAgLmFkZFNpZ25hdHVyZShmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgLy8gVmVyaWZ5IG1lc3NhZ2UgcHJvcGVydGllc1xuICAgICAgbWVzc2FnZS5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbCgnSW50ZWdyYXRpb24gdGVzdCBtZXNzYWdlIGZvciBCU0MnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduYXR1cmVzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZSk7XG5cbiAgICAgIC8vIFZlcmlmeSBCU0Mtc3BlY2lmaWMgbWV0YWRhdGFcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gbWVzc2FnZS5nZXRNZXRhZGF0YSgpITtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2NoYWluSWQnLCA5Nyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZGFwcCcsICdCaXRHbyBCU0MgSW50ZWdyYXRpb24nKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG5cbiAgICAgIC8vIENvbnZlcnQgdG8gYnJvYWRjYXN0IGZvcm1hdFxuICAgICAgY29uc3QgYnJvYWRjYXN0Rm9ybWF0ID0gYXdhaXQgbWVzc2FnZS50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgYnJvYWRjYXN0Rm9ybWF0LnNob3VsZC5oYXZlLnByb3BlcnR5KCd0eXBlJywgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgYnJvYWRjYXN0Rm9ybWF0LnNob3VsZC5oYXZlLnByb3BlcnR5KCdwYXlsb2FkJywgJ0ludGVncmF0aW9uIHRlc3QgbWVzc2FnZSBmb3IgQlNDJyk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3NpZ25lcnMnKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnc2VyaWFsaXplZFNpZ25hdHVyZXMnKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbWV0YWRhdGEnKTtcblxuICAgICAgLy8gUmVjb25zdHJ1Y3QgZnJvbSBicm9hZGNhc3QgZm9ybWF0XG4gICAgICBjb25zdCByZWJ1aWx0TWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RGb3JtYXQpO1xuICAgICAgcmVidWlsdE1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSk7XG4gICAgICByZWJ1aWx0TWVzc2FnZS5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpKTtcbiAgICAgIHJlYnVpbHRNZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgd29yayB3aXRoIHByb2R1Y3Rpb24gQlNDIGNvaW4gY29uZmlndXJhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJzY0NvaW4gPSBjb2lucy5nZXQoJ2JzYycpOyAvLyBQcm9kdWN0aW9uIEJTQ1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoYnNjQ29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZCgnUHJvZHVjdGlvbiBCU0MgbWVzc2FnZSB0ZXN0Jyk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoJ1Byb2R1Y3Rpb24gQlNDIG1lc3NhZ2UgdGVzdCcpO1xuXG4gICAgICAvLyBWZXJpZnkgaXQgdXNlcyBwcm9kdWN0aW9uIEJTQyBjb25maWd1cmF0aW9uXG4gICAgICBic2NDb2luLm5hbWUuc2hvdWxkLmVxdWFsKCdic2MnKTtcbiAgICAgIGJzY0NvaW4ubmV0d29yay5mYW1pbHkuc2hvdWxkLmVxdWFsKCdic2MnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGNvbXBsZXggQlNDIHRyYW5zYWN0aW9uIG1ldGFkYXRhJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG5cbiAgICAgIGNvbnN0IGNvbXBsZXhNZXRhZGF0YSA9IHtcbiAgICAgICAgbmV0d29yazogJ2JzYycsXG4gICAgICAgIGNoYWluSWQ6IDU2LFxuICAgICAgICB0cmFuc2FjdGlvblR5cGU6ICd0b2tlbl90cmFuc2ZlcicsXG4gICAgICAgIHRva2VuQ29udHJhY3Q6ICcweDU1ZDM5ODMyNmY5OTA1OWZGNzc1NDg1MjQ2OTk5MDI3QjMxOTc5NTUnLCAvLyBVU0RUIG9uIEJTQ1xuICAgICAgICBhbW91bnQ6ICcxMDAwMDAwMDAwMDAwMDAwMDAwJywgLy8gMSB0b2tlbiB3aXRoIDE4IGRlY2ltYWxzXG4gICAgICAgIHJlY2lwaWVudDogJzB4NzQyZDM1Q2M2NjM0QzA1MzI5MjVhM2I4RDQzMUMyRkUxZTA1ZEIyYicsXG4gICAgICAgIGdhc0xpbWl0OiAnMjEwMDAnLFxuICAgICAgICBnYXNQcmljZTogJzUwMDAwMDAwMDAnLFxuICAgICAgICBub25jZTogNDIsXG4gICAgICAgIGRhcHBVcmw6ICdodHRwczovL3BhbmNha2Vzd2FwLmZpbmFuY2UnLFxuICAgICAgICB1c2VyQWdlbnQ6ICdCaXRHbyBTREsgQlNDIEludGVncmF0aW9uIFRlc3QnLFxuICAgICAgfTtcblxuICAgICAgYnVpbGRlclxuICAgICAgICAuc2V0UGF5bG9hZCgnQ29tcGxleCBCU0MgdHJhbnNhY3Rpb24gYXBwcm92YWwnKVxuICAgICAgICAuc2V0TWV0YWRhdGEoY29tcGxleE1ldGFkYXRhKVxuICAgICAgICAuYWRkU2lnbmVyKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBtZXNzYWdlLmdldE1ldGFkYXRhKCkhO1xuXG4gICAgICAvLyBWZXJpZnkgYWxsIGNvbXBsZXggbWV0YWRhdGEgaXMgcHJlc2VydmVkXG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndG9rZW5Db250cmFjdCcsICcweDU1ZDM5ODMyNmY5OTA1OWZGNzc1NDg1MjQ2OTk5MDI3QjMxOTc5NTUnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdhbW91bnQnLCAnMTAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3JlY2lwaWVudCcsICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiOEQ0MzFDMkZFMWUwNWRCMmInKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdnYXNMaW1pdCcsICcyMTAwMCcpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ25vbmNlJywgNDIpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2RhcHBVcmwnLCAnaHR0cHM6Ly9wYW5jYWtlc3dhcC5maW5hbmNlJyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpOyAvLyBTaG91bGQgYmUgb3ZlcnJpZGRlblxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/messageBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
require("should");
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
+
const fixtures_1 = require("./fixtures");
|
|
10
|
+
const src_1 = require("../../../src");
|
|
11
|
+
const abstract_eth_1 = require("@bitgo/abstract-eth");
|
|
12
|
+
describe('BSC Message Builder Factory', () => {
|
|
13
|
+
const sandbox = sinon_1.default.createSandbox();
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
sandbox.restore();
|
|
16
|
+
});
|
|
17
|
+
describe('getMessageBuilder', () => {
|
|
18
|
+
it('should return the correct builder for EIP191 message type', () => {
|
|
19
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
20
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
21
|
+
builder.should.be.instanceof(abstract_eth_1.Eip191MessageBuilder);
|
|
22
|
+
});
|
|
23
|
+
it('should throw an error for unsupported message types', () => {
|
|
24
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
25
|
+
// Test with an invalid/unsupported message type
|
|
26
|
+
const unsupportedType = 'UNSUPPORTED_TYPE';
|
|
27
|
+
(() => factory.getMessageBuilder(unsupportedType)).should.throw(/Invalid message standard/);
|
|
28
|
+
});
|
|
29
|
+
it('should throw for unknown message standard', () => {
|
|
30
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
31
|
+
(() => factory.getMessageBuilder(sdk_core_1.MessageStandardType.UNKNOWN)).should.throw(`Invalid message standard ${sdk_core_1.MessageStandardType.UNKNOWN}`);
|
|
32
|
+
});
|
|
33
|
+
it('should create builder with BSC coin configuration', () => {
|
|
34
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
35
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
36
|
+
// Verify the builder was created with BSC coin config
|
|
37
|
+
builder.should.be.instanceof(abstract_eth_1.Eip191MessageBuilder);
|
|
38
|
+
// The coin configuration should be passed to the builder
|
|
39
|
+
fixtures_1.fixtures.coin.name.should.equal('tbsc');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('Integration with EIP191 builder', () => {
|
|
43
|
+
it('should create a builder that can build a valid BSC EIP191 message', async () => {
|
|
44
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
45
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
46
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
47
|
+
const message = await builder.build();
|
|
48
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.EIP191);
|
|
49
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.validMessage);
|
|
50
|
+
});
|
|
51
|
+
it('should work with BSC-specific metadata', async () => {
|
|
52
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
53
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
54
|
+
builder.setPayload(fixtures_1.fixtures.messages.validMessage);
|
|
55
|
+
builder.setMetadata(fixtures_1.fixtures.eip191.metadata);
|
|
56
|
+
const message = await builder.build();
|
|
57
|
+
message.getMetadata().should.have.property('customData', 'BSC test data');
|
|
58
|
+
message.getMetadata().should.have.property('network', 'bsc');
|
|
59
|
+
message.getMetadata().should.have.property('encoding', 'utf8');
|
|
60
|
+
});
|
|
61
|
+
it('should handle empty messages on BSC', async () => {
|
|
62
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
63
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
64
|
+
builder.setPayload(fixtures_1.fixtures.messages.emptyMessage);
|
|
65
|
+
// Empty messages should throw an error since they're not valid for EIP-191
|
|
66
|
+
await builder.build().should.be.rejectedWith('Message payload must be set before building the message');
|
|
67
|
+
});
|
|
68
|
+
it('should handle special characters in BSC messages', async () => {
|
|
69
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
70
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
71
|
+
builder.setPayload(fixtures_1.fixtures.messages.specialCharsMessage);
|
|
72
|
+
const message = await builder.build();
|
|
73
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.specialCharsMessage);
|
|
74
|
+
});
|
|
75
|
+
it('should handle long messages on BSC', async () => {
|
|
76
|
+
const factory = new src_1.MessageBuilderFactory(fixtures_1.fixtures.coin);
|
|
77
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.EIP191);
|
|
78
|
+
builder.setPayload(fixtures_1.fixtures.messages.longMessage);
|
|
79
|
+
const message = await builder.build();
|
|
80
|
+
message.getPayload().should.equal(fixtures_1.fixtures.messages.longMessage);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1aWxkZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsOENBQXNEO0FBQ3RELHlDQUFzQztBQUN0QyxzQ0FBcUQ7QUFDckQsc0RBQTJEO0FBRTNELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7SUFDM0MsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXRDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLEVBQUUsQ0FBQywyREFBMkQsRUFBRSxHQUFHLEVBQUU7WUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBcUIsQ0FBQyxtQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV0RSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUNBQW9CLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBcUIsQ0FBQyxtQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpELGdEQUFnRDtZQUNoRCxNQUFNLGVBQWUsR0FBRyxrQkFBeUMsQ0FBQztZQUVsRSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FB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Q0FBQztZQUV6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV0QyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBmaXh0dXJlcyB9IGZyb20gJy4vZml4dHVyZXMnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IEVpcDE5MU1lc3NhZ2VCdWlsZGVyIH0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5cbmRlc2NyaWJlKCdCU0MgTWVzc2FnZSBCdWlsZGVyIEZhY3RvcnknLCAoKSA9PiB7XG4gIGNvbnN0IHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldE1lc3NhZ2VCdWlsZGVyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IGJ1aWxkZXIgZm9yIEVJUDE5MSBtZXNzYWdlIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuXG4gICAgICBidWlsZGVyLnNob3VsZC5iZS5pbnN0YW5jZW9mKEVpcDE5MU1lc3NhZ2VCdWlsZGVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgZm9yIHVuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgLy8gVGVzdCB3aXRoIGFuIGludmFsaWQvdW5zdXBwb3J0ZWQgbWVzc2FnZSB0eXBlXG4gICAgICBjb25zdCB1bnN1cHBvcnRlZFR5cGUgPSAnVU5TVVBQT1JURURfVFlQRScgYXMgTWVzc2FnZVN0YW5kYXJkVHlwZTtcblxuICAgICAgKCgpID0+IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIodW5zdXBwb3J0ZWRUeXBlKSkuc2hvdWxkLnRocm93KC9JbnZhbGlkIG1lc3NhZ2Ugc3RhbmRhcmQvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZm9yIHVua25vd24gbWVzc2FnZSBzdGFuZGFyZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICAoKCkgPT4gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pKS5zaG91bGQudGhyb3coXG4gICAgICAgIGBJbnZhbGlkIG1lc3NhZ2Ugc3RhbmRhcmQgJHtNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV059YFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGJ1aWxkZXIgd2l0aCBCU0MgY29pbiBjb25maWd1cmF0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSBidWlsZGVyIHdhcyBjcmVhdGVkIHdpdGggQlNDIGNvaW4gY29uZmlnXG4gICAgICBidWlsZGVyLnNob3VsZC5iZS5pbnN0YW5jZW9mKEVpcDE5MU1lc3NhZ2VCdWlsZGVyKTtcbiAgICAgIC8vIFRoZSBjb2luIGNvbmZpZ3VyYXRpb24gc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgYnVpbGRlclxuICAgICAgZml4dHVyZXMuY29pbi5uYW1lLnNob3VsZC5lcXVhbCgndGJzYycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnSW50ZWdyYXRpb24gd2l0aCBFSVAxOTEgYnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGJ1aWxkZXIgdGhhdCBjYW4gYnVpbGQgYSB2YWxpZCBCU0MgRUlQMTkxIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgd29yayB3aXRoIEJTQy1zcGVjaWZpYyBtZXRhZGF0YScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoZml4dHVyZXMuZWlwMTkxLm1ldGFkYXRhKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY3VzdG9tRGF0YScsICdCU0MgdGVzdCBkYXRhJyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZW1wdHkgbWVzc2FnZXMgb24gQlNDJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy5lbXB0eU1lc3NhZ2UpO1xuXG4gICAgICAvLyBFbXB0eSBtZXNzYWdlcyBzaG91bGQgdGhyb3cgYW4gZXJyb3Igc2luY2UgdGhleSdyZSBub3QgdmFsaWQgZm9yIEVJUC0xOTFcbiAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdNZXNzYWdlIHBheWxvYWQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSBtZXNzYWdlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gQlNDIG1lc3NhZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy5zcGVjaWFsQ2hhcnNNZXNzYWdlKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnNwZWNpYWxDaGFyc01lc3NhZ2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgbG9uZyBtZXNzYWdlcyBvbiBCU0MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLmxvbmdNZXNzYWdlKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLmxvbmdNZXNzYWdlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getBuilder_1 = require("../getBuilder");
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
describe('BSC Transfer Builder', () => {
|
|
9
|
+
describe('Build from TxHex', function () {
|
|
10
|
+
it('Should successfully build from txHex', async function () {
|
|
11
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
|
|
12
|
+
const txHex = '0xf8ad82026d85059f73c1808303d09094f5caa5e3e93afbc21bd19ef4f2691a37121f791780b844fb90b32000000000000000000000000090a4693ee469ac4f04bb9bb8ccf955e6cf4cf875000000000000000000000000000000000000000000000000000000000000000181e5a08d37159dab62ce1f450cab33c932603505952e351f5da8da70023cdc9275be57a034be4eac6c2d636c6f1f0762ab0390fc8aa2fc541a968c911f8ef05a3422f44f';
|
|
13
|
+
txBuilder.from(txHex);
|
|
14
|
+
const parsedTx = await txBuilder.build();
|
|
15
|
+
should_1.default.exist(parsedTx.toJson());
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUEyQztBQUMzQyxvREFBNEI7QUFFNUIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsa0JBQWtCLEVBQUU7UUFDM0IsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEtBQUs7WUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUNULGtXQUFrVyxDQUFDO1lBQ3JXLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4uL2dldEJ1aWxkZXInO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5kZXNjcmliZSgnQlNDIFRyYW5zZmVyIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdCdWlsZCBmcm9tIFR4SGV4JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdTaG91bGQgc3VjY2Vzc2Z1bGx5IGJ1aWxkIGZyb20gdHhIZXgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YnNjJyk7XG4gICAgICBjb25zdCB0eEhleCA9XG4gICAgICAgICcweGY4YWQ4MjAyNmQ4NTA1OWY3M2MxODA4MzAzZDA5MDk0ZjVjYWE1ZTNlOTNhZmJjMjFiZDE5ZWY0ZjI2OTFhMzcxMjFmNzkxNzgwYjg0NGZiOTBiMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTBhNDY5M2VlNDY5YWM0ZjA0YmI5YmI4Y2NmOTU1ZTZjZjRjZjg3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4MWU1YTA4ZDM3MTU5ZGFiNjJjZTFmNDUwY2FiMzNjOTMyNjAzNTA1OTUyZTM1MWY1ZGE4ZGE3MDAyM2NkYzkyNzViZTU3YTAzNGJlNGVhYzZjMmQ2MzZjNmYxZjA3NjJhYjAzOTBmYzhhYTJmYzU0MWE5NjhjOTExZjhlZjA1YTM0MjJmNDRmJztcbiAgICAgIHR4QnVpbGRlci5mcm9tKHR4SGV4KTtcbiAgICAgIGNvbnN0IHBhcnNlZFR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWRUeC50b0pzb24oKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/unit/utils.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const statics_1 = require("@bitgo/statics");
|
|
9
|
+
const utils_1 = require("../../src/lib/utils");
|
|
10
|
+
describe('Network Common Configuration', () => {
|
|
11
|
+
it('getCommon for mainnet', () => {
|
|
12
|
+
const common = (0, utils_1.getCommon)(statics_1.NetworkType.MAINNET);
|
|
13
|
+
should_1.default.equal(common.chainName(), 'mainnet');
|
|
14
|
+
should_1.default.equal(common.hardfork(), 'petersburg');
|
|
15
|
+
should_1.default.equal(common.chainIdBN().toString(), '56');
|
|
16
|
+
should_1.default.equal(common.networkIdBN().toString(), '56');
|
|
17
|
+
});
|
|
18
|
+
it('getCommon for testnet', () => {
|
|
19
|
+
const common = (0, utils_1.getCommon)(statics_1.NetworkType.TESTNET);
|
|
20
|
+
should_1.default.equal(common.chainName(), 'testnet');
|
|
21
|
+
should_1.default.equal(common.hardfork(), 'petersburg');
|
|
22
|
+
should_1.default.equal(common.chainIdBN().toString(), '97');
|
|
23
|
+
should_1.default.equal(common.networkIdBN().toString(), '97');
|
|
24
|
+
});
|
|
25
|
+
it('getCommon for invalid network', () => {
|
|
26
|
+
assert_1.default.throws(() => (0, utils_1.getCommon)('invalidNetwork'), (e) => e.message === 'Missing network common configuration');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLDRDQUE2QztBQUM3QywrQ0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtJQUM1QyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUEsaUJBQVMsRUFBQyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBQSxpQkFBUyxFQUFDLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUN2QyxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxJQUFBLGlCQUFTLEVBQUMsZ0JBQStCLENBQUMsRUFDaEQsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssc0NBQXNDLENBQ2pFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBnZXRDb21tb24gfSBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcblxuZGVzY3JpYmUoJ05ldHdvcmsgQ29tbW9uIENvbmZpZ3VyYXRpb24nLCAoKSA9PiB7XG4gIGl0KCdnZXRDb21tb24gZm9yIG1haW5uZXQnLCAoKSA9PiB7XG4gICAgY29uc3QgY29tbW9uID0gZ2V0Q29tbW9uKE5ldHdvcmtUeXBlLk1BSU5ORVQpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24uY2hhaW5OYW1lKCksICdtYWlubmV0Jyk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5oYXJkZm9yaygpLCAncGV0ZXJzYnVyZycpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24uY2hhaW5JZEJOKCkudG9TdHJpbmcoKSwgJzU2Jyk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5uZXR3b3JrSWRCTigpLnRvU3RyaW5nKCksICc1NicpO1xuICB9KTtcblxuICBpdCgnZ2V0Q29tbW9uIGZvciB0ZXN0bmV0JywgKCkgPT4ge1xuICAgIGNvbnN0IGNvbW1vbiA9IGdldENvbW1vbihOZXR3b3JrVHlwZS5URVNUTkVUKTtcbiAgICBzaG91bGQuZXF1YWwoY29tbW9uLmNoYWluTmFtZSgpLCAndGVzdG5ldCcpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24uaGFyZGZvcmsoKSwgJ3BldGVyc2J1cmcnKTtcbiAgICBzaG91bGQuZXF1YWwoY29tbW9uLmNoYWluSWRCTigpLnRvU3RyaW5nKCksICc5NycpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24ubmV0d29ya0lkQk4oKS50b1N0cmluZygpLCAnOTcnKTtcbiAgfSk7XG5cbiAgaXQoJ2dldENvbW1vbiBmb3IgaW52YWxpZCBuZXR3b3JrJywgKCkgPT4ge1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiBnZXRDb21tb24oJ2ludmFsaWROZXR3b3JrJyBhcyBOZXR3b3JrVHlwZSksXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdNaXNzaW5nIG5ldHdvcmsgY29tbW9uIGNvbmZpZ3VyYXRpb24nXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
|