@bitgo-beta/sdk-coin-bsc 1.3.3-alpha.43 → 1.3.3-alpha.431

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/src/bsc.d.ts +30 -5
  2. package/dist/src/bsc.d.ts.map +1 -1
  3. package/dist/src/bsc.js +54 -2
  4. package/dist/src/bscToken.d.ts +17 -3
  5. package/dist/src/bscToken.d.ts.map +1 -1
  6. package/dist/src/bscToken.js +34 -3
  7. package/dist/src/index.js +6 -2
  8. package/dist/src/lib/index.d.ts +1 -0
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +26 -10
  11. package/dist/src/lib/messages/index.d.ts +3 -0
  12. package/dist/src/lib/messages/index.d.ts.map +1 -0
  13. package/dist/src/lib/messages/index.js +6 -0
  14. package/dist/src/lib/transactionBuilder.d.ts +2 -3
  15. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  16. package/dist/src/lib/transactionBuilder.js +5 -8
  17. package/dist/src/lib/transferBuilder.d.ts +1 -5
  18. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  19. package/dist/src/lib/transferBuilder.js +3 -9
  20. package/dist/src/lib/utils.js +2 -3
  21. package/dist/src/tbsc.d.ts +0 -2
  22. package/dist/src/tbsc.d.ts.map +1 -1
  23. package/dist/src/tbsc.js +1 -5
  24. package/dist/test/fixtures/ecdsa.d.ts +105 -0
  25. package/dist/test/fixtures/ecdsa.d.ts.map +1 -0
  26. package/dist/test/fixtures/ecdsa.js +108 -0
  27. package/dist/test/resources/bsc.d.ts +10 -0
  28. package/dist/test/resources/bsc.d.ts.map +1 -0
  29. package/dist/test/resources/bsc.js +13 -0
  30. package/dist/test/unit/bsc.d.ts +2 -0
  31. package/dist/test/unit/bsc.d.ts.map +1 -0
  32. package/dist/test/unit/bsc.js +37 -0
  33. package/dist/test/unit/bscToken.d.ts +2 -0
  34. package/dist/test/unit/bscToken.d.ts.map +1 -0
  35. package/dist/test/unit/bscToken.js +31 -0
  36. package/dist/test/unit/getBuilder.d.ts +3 -0
  37. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  38. package/dist/test/unit/getBuilder.js +10 -0
  39. package/dist/test/unit/messages/eip191MessageBuilder.d.ts +2 -0
  40. package/dist/test/unit/messages/eip191MessageBuilder.d.ts.map +1 -0
  41. package/dist/test/unit/messages/eip191MessageBuilder.js +153 -0
  42. package/dist/test/unit/messages/fixtures.d.ts +25 -0
  43. package/dist/test/unit/messages/fixtures.d.ts.map +1 -0
  44. package/dist/test/unit/messages/fixtures.js +29 -0
  45. package/dist/test/unit/messages/index.d.ts +5 -0
  46. package/dist/test/unit/messages/index.d.ts.map +1 -0
  47. package/dist/test/unit/messages/index.js +21 -0
  48. package/dist/test/unit/messages/integration.d.ts +2 -0
  49. package/dist/test/unit/messages/integration.d.ts.map +1 -0
  50. package/dist/test/unit/messages/integration.js +96 -0
  51. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  52. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  53. package/dist/test/unit/messages/messageBuilderFactory.js +84 -0
  54. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  55. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  56. package/dist/test/unit/transactionBuilder/send.js +19 -0
  57. package/dist/test/unit/utils.d.ts +2 -0
  58. package/dist/test/unit/utils.d.ts.map +1 -0
  59. package/dist/test/unit/utils.js +29 -0
  60. package/dist/tsconfig.tsbuildinfo +1 -0
  61. package/package.json +14 -11
  62. package/.eslintignore +0 -5
  63. package/.mocharc.yml +0 -8
  64. package/CHANGELOG.md +0 -121
@@ -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-beta/sdk-core");
9
+ const fixtures_1 = require("./fixtures");
10
+ const abstract_eth_1 = require("@bitgo-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWlwMTkxTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZWlwMTkxTWVzc2FnZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQkFBZ0I7QUFDaEIsa0RBQTBCO0FBQzFCLG1EQUFzRztBQUN0Ryx5Q0FBc0M7QUFDdEMsMkRBQStFO0FBRS9FLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDMUMsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXRDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUMzQixFQUFFLENBQUMsK0NBQStDLEVBQUUsR0FBRyxFQUFFO1lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQW9CLENBQUMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4RCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUNBQW9CLENBQUMsQ0FBQztZQUNuRCxvQ0FBb0M7WUFDcEMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO1FBQzVCLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG1DQUFvQixDQUFDLG1CQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxZ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eEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEJyb2FkY2FzdGFibGVNZXNzYWdlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLCBzZXJpYWxpemVTaWduYXR1cmVzIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZml4dHVyZXMgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IEVpcDE5MU1lc3NhZ2VCdWlsZGVyLCBFSVAxOTFNZXNzYWdlIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcblxuZGVzY3JpYmUoJ0JTQyBFSVAxOTEgTWVzc2FnZSBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1Y3RvcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGluaXRpYWxpemUgd2l0aCBCU0MgY29pbiBjb25maWd1cmF0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgYnVpbGRlci5zaG91bGQuYmUuaW5zdGFuY2VvZihFaXAxOTFNZXNzYWdlQnVpbGRlcik7XG4gICAgICAvLyBWZXJpZnkgaXQncyB1c2luZyBCU0MgY29pbiBjb25maWdcbiAgICAgIGZpeHR1cmVzLmNvaW4ubmFtZS5zaG91bGQuZXF1YWwoJ3Ric2MnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIG1ldGhvZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgdmFsaWQgRUlQMTkxIG1lc3NhZ2UgZm9yIEJTQycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpLnNldE1ldGFkYXRhKHsgY3VzdG9tRGF0YTogJ0JTQyB0ZXN0IGRhdGEnIH0pO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLnNob3VsZC5iZS5pbnN0YW5jZW9mKEVJUDE5MU1lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRUeXBlKCkuc2hvdWxkLmVxdWFsKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY3VzdG9tRGF0YScsICdCU0MgdGVzdCBkYXRhJyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBzZXR0aW5nIHBheWxvYWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbmNsdWRlIEJTQyBzaWduZXJzIHdoZW4gYnVpbGRpbmcgYSBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25lcihmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoZml4dHVyZXMuZWlwMTkxLnNpZ25lcik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluY2x1ZGUgc2lnbmF0dXJlcyB3aGVuIGJ1aWxkaW5nIGEgQlNDIG1lc3NhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmF0dXJlKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgb3ZlcnJpZGUgbWV0YWRhdGEuZW5jb2Rpbmcgd2l0aCB1dGY4IGZvciBCU0MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoeyBlbmNvZGluZzogJ2hleCcsIGN1c3RvbURhdGE6ICdCU0MgdGVzdCBkYXRhJywgbmV0d29yazogJ2JzYycgfSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2N1c3RvbURhdGEnLCAnQlNDIHRlc3QgZGF0YScpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIEJTQy1zcGVjaWZpYyBtZXRhZGF0YSBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoe1xuICAgICAgICBuZXR3b3JrOiAnYnNjJyxcbiAgICAgICAgY2hhaW5JZDogOTcsIC8vIEJTQyB0ZXN0bmV0IGNoYWluIElEXG4gICAgICAgIGN1c3RvbURhdGE6ICdCU0Mtc3BlY2lmaWMgZGF0YScsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2NoYWluSWQnLCA5Nyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjdXN0b21EYXRhJywgJ0JTQy1zcGVjaWZpYyBkYXRhJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tQnJvYWRjYXN0Rm9ybWF0IG1ldGhvZCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJlY29uc3RydWN0IGEgQlNDIG1lc3NhZ2UgZnJvbSBicm9hZGNhc3QgZm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBFaXAxOTFNZXNzYWdlQnVpbGRlcihmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiBmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UsXG4gICAgICAgIHNlcmlhbGl6ZWRTaWduYXR1cmVzOiBzZXJpYWxpemVTaWduYXR1cmVzKFtmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlXSksXG4gICAgICAgIHNpZ25lcnM6IFtmaXh0dXJlcy5laXAxOTEuc2lnbmVyXSxcbiAgICAgICAgbWV0YWRhdGE6IGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSk7XG5cbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YoRUlQMTkxTWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmF0dXJlKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY3VzdG9tRGF0YScsICdCU0MgdGVzdCBkYXRhJyk7XG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCduZXR3b3JrJywgJ2JzYycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYnJvYWRjYXN0IGZvcm1hdCB3aXRoIGVtcHR5IG1ldGFkYXRhIGZvciBCU0MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICAgIHBheWxvYWQ6IGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5mcm9tQnJvYWRjYXN0Rm9ybWF0KGJyb2FkY2FzdE1lc3NhZ2UpO1xuXG4gICAgICBtZXNzYWdlLmdldE1ldGFkYXRhKCkhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdlbmNvZGluZycsICd1dGY4Jyk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBCU0MgYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2U6IEJyb2FkY2FzdGFibGVNZXNzYWdlID0ge1xuICAgICAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICAgICAgcGF5bG9hZDogZml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZSxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IHNlcmlhbGl6ZVNpZ25hdHVyZXMoW2ZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmVdKSxcbiAgICAgICAgc2lnbmVyczogW2ZpeHR1cmVzLmVpcDE5MS5zaWduZXJdLFxuICAgICAgICBtZXRhZGF0YTogeyBuZXR3b3JrOiAnYnNjJyB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcblxuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnNwZWNpYWxDaGFyc01lc3NhZ2UpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0JTQy1zcGVjaWZpYyBzY2VuYXJpb3MnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB3b3JrIHdpdGggbXVsdGlwbGUgc2lnbmVycyBmb3IgQlNDIG11bHRpc2lnIHNjZW5hcmlvcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgRWlwMTkxTWVzc2FnZUJ1aWxkZXIoZml4dHVyZXMuY29pbik7XG4gICAgICBjb25zdCBzZWNvbmRTaWduZXIgPSAnMHgxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwJztcblxuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25lcihmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmVyKHNlY29uZFNpZ25lcik7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpO1xuICAgICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmNvbnRhaW5FcWwoc2Vjb25kU2lnbmVyKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpLmxlbmd0aC5zaG91bGQuZXF1YWwoMik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHByZXNlcnZlIEJTQyBjaGFpbi1zcGVjaWZpYyBtZXRhZGF0YSB0aHJvdWdob3V0IGJ1aWxkIHByb2Nlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEVpcDE5MU1lc3NhZ2VCdWlsZGVyKGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMudmFsaWRNZXNzYWdlKTtcbiAgICAgIGJ1aWxkZXIuc2V0TWV0YWRhdGEoe1xuICAgICAgICBuZXR3b3JrOiAnYnNjJyxcbiAgICAgICAgY2hhaW5JZDogNTYsIC8vIEJTQyBtYWlubmV0XG4gICAgICAgIGdhc1ByaWNlOiAnNTAwMDAwMDAwMCcsIC8vIDUgR3dlaVxuICAgICAgICBjb250cmFjdEFkZHJlc3M6ICcweGJiNENkQjlDQmQzNkIwMWJEMWNCYUVCRjJEZTA4ZDkxNzNiYzA5NWMnLCAvLyBXQk5CXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBtZXNzYWdlLmdldE1ldGFkYXRhKCkhO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ25ldHdvcmsnLCAnYnNjJyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY2hhaW5JZCcsIDU2KTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdnYXNQcmljZScsICc1MDAwMDAwMDAwJyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnY29udHJhY3RBZGRyZXNzJywgJzB4YmI0Q2RCOUNCZDM2QjAxYkQxY0JhRUJGMkRlMDhkOTE3M2JjMDk1YycpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,25 @@
1
+ export declare const fixtures: {
2
+ coin: Readonly<import("@bitgo-beta/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-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTRDO0FBRTVDLDhDQUE4QztBQUNqQyxRQUFBLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSw4QkFBOEI7SUFDdkQsUUFBUSxFQUFFO1FBQ1IsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxZQUFZLEVBQUUsRUFBRTtRQUNoQixtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLFdBQVcsRUFDVCxtRkFBbUY7WUFDbkYsK0ZBQStGO0tBQ2xHO0lBQ0QsTUFBTSxFQUFFO1FBQ04sb0JBQW9CLEVBQ2xCLGlHQUFpRztRQUNuRyxTQUFTLEVBQUU7WUFDVCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsNENBQTRDLEVBQUU7WUFDaEUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQ3BCLG9JQUFvSSxFQUNwSSxLQUFLLENBQ047U0FDRjtRQUNELE1BQU0sRUFBRSw0Q0FBNEM7UUFDcEQsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLE1BQU07WUFDaEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbi8vIFRlc3QgZml4dHVyZXMgZm9yIEJTQyBFSVAtMTkxIG1lc3NhZ2UgdGVzdHNcbmV4cG9ydCBjb25zdCBmaXh0dXJlcyA9IHtcbiAgY29pbjogY29pbnMuZ2V0KCd0YnNjJyksIC8vIFVzaW5nIHRlc3RuZXQgQlNDIGZvciB0ZXN0c1xuICBtZXNzYWdlczoge1xuICAgIHZhbGlkTWVzc2FnZTogJ0hlbGxvLCBCU0Mgd29ybGQhJyxcbiAgICBlbXB0eU1lc3NhZ2U6ICcnLFxuICAgIHNwZWNpYWxDaGFyc01lc3NhZ2U6ICchQCMkJV4mKigpJyxcbiAgICBsb25nTWVzc2FnZTpcbiAgICAgICdUaGlzIGlzIGEgdmVyeSBsb25nIG1lc3NhZ2UgdGhhdCBjb250YWlucyBtdWx0aXBsZSBsaW5lcyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLiAnICtcbiAgICAgICdJdCBpcyBkZXNpZ25lZCB0byB0ZXN0IHRoZSBFSVAtMTkxIG1lc3NhZ2UgZm9ybWF0IHdpdGggYSBtb3JlIGNvbXBsZXggcGF5bG9hZCBvbiBCU0MgbmV0d29yay4nLFxuICB9LFxuICBlaXAxOTE6IHtcbiAgICB2YWxpZFNpZ25hYmxlUGF5bG9hZDpcbiAgICAgICcweDE5NDU3NDY4NjU3MjY1NzU2ZDIwNTM2OTY3NmU2NTY0MjA0ZDY1NzM3MzYxNjc2NTNhMTA0ODY1NmM2YzZmMmMyMDQyNTM0M3R3ZW50aWV0aDc3NmY3MjZjNjQyMScsXG4gICAgc2lnbmF0dXJlOiB7XG4gICAgICBwdWJsaWNLZXk6IHsgcHViOiAnMHg3RTVGNDU1MjA5MUE2OTEyNWQ1RGZDYjdiOEMyNjU5MDI5Mzk1QmRmJyB9LFxuICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbShcbiAgICAgICAgJzVkOTliNmY3ZjZkMWY3M2QxYTI2NDk3ZjJiMWM4OWIyNGMwOTkzOTEzZjg2ZTlhMmQwMmNkNjk4ODdkOWM5NGYzYzg4MDM1ODU3OWQ4MTFiMjFkZDFiN2ZkOWJiMDFjMWQ4MWQxMGU2OWYwMzg0ZTY3NWMzMmIzOTY0M2JlODkyMWInLFxuICAgICAgICAnaGV4J1xuICAgICAgKSxcbiAgICB9LFxuICAgIHNpZ25lcjogJzB4N0U1RjQ1NTIwOTFBNjkxMjVkNURmQ2I3YjhDMjY1OTAyOTM5NUJkZicsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAgICBjdXN0b21EYXRhOiAnQlNDIHRlc3QgZGF0YScsXG4gICAgICBuZXR3b3JrOiAnYnNjJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './fixtures';
2
+ export * from './messageBuilderFactory';
3
+ export * from './eip191MessageBuilder';
4
+ export * from './integration';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=integration.d.ts.map
@@ -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-beta/sdk-core");
5
+ const statics_1 = require("@bitgo-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvaW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsbURBQTJEO0FBQzNELGlEQUE0QztBQUM1QyxzQ0FBcUQ7QUFDckQseUNBQXNDO0FBRXRDLFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7SUFDckQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtRQUNwRCxFQUFFLENBQUMseUVBQXlFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkYsNkNBQTZDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksMkJBQXFCLENBQUMsbUJBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6RCxzQkFBc0I7WUFDdEIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLDhCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRFLDJDQUEyQztZQUMzQyxPQUFPO2lCQUNKLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDOUMsV0FBVyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyQixJQUFJLEVBQUUsdUJBQXVCO2FBQzlCLENBQUM7aUJBQ0QsU0FBUyxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDakMsWUFBWSxDQUFDLG1CQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXRDLDRCQUE0QjtZQUM1QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMs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QUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7WUFDN0YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1lBQy9ELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsNENBQTRDLENBQUMsQ0FBQztZQUN6RixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3hFLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7UUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZml4dHVyZXMgfSBmcm9tICcuL2ZpeHR1cmVzJztcblxuZGVzY3JpYmUoJ0JTQyBNZXNzYWdlIEJ1aWxkZXIgSW50ZWdyYXRpb24gVGVzdHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdFbmQtdG8tZW5kIG1lc3NhZ2UgYnVpbGRpbmcgd29ya2Zsb3cnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjb21wbGV0ZSBmdWxsIG1lc3NhZ2UgbGlmZWN5Y2xlIGZyb20gZmFjdG9yeSB0byBicm9hZGNhc3QgZm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gQ3JlYXRlIGZhY3Rvcnkgd2l0aCBCU0MgY29pbiBjb25maWd1cmF0aW9uXG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgLy8gR2V0IEVJUC0xOTEgYnVpbGRlclxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuXG4gICAgICAvLyBCdWlsZCBtZXNzYWdlIHdpdGggQlNDLXNwZWNpZmljIG1ldGFkYXRhXG4gICAgICBidWlsZGVyXG4gICAgICAgIC5zZXRQYXlsb2FkKCdJbnRlZ3JhdGlvbiB0ZXN0IG1lc3NhZ2UgZm9yIEJTQycpXG4gICAgICAgIC5zZXRNZXRhZGF0YSh7XG4gICAgICAgICAgbmV0d29yazogJ2JzYycsXG4gICAgICAgICAgY2hhaW5JZDogOTcsXG4gICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgIGRhcHA6ICdCaXRHbyBCU0MgSW50ZWdyYXRpb24nLFxuICAgICAgICB9KVxuICAgICAgICAuYWRkU2lnbmVyKGZpeHR1cmVzLmVpcDE5MS5zaWduZXIpXG4gICAgICAgIC5hZGRTaWduYXR1cmUoZml4dHVyZXMuZWlwMTkxLnNpZ25hdHVyZSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIC8vIFZlcmlmeSBtZXNzYWdlIHByb3BlcnRpZXNcbiAgICAgIG1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBtZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwoJ0ludGVncmF0aW9uIHRlc3QgbWVzc2FnZSBmb3IgQlNDJyk7XG4gICAgICBtZXNzYWdlLmdldFNpZ25lcnMoKS5zaG91bGQuY29udGFpbkVxbChmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcbiAgICAgIG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLnNob3VsZC5jb250YWluRXFsKGZpeHR1cmVzLmVpcDE5MS5zaWduYXR1cmUpO1xuXG4gICAgICAvLyBWZXJpZnkgQlNDLXNwZWNpZmljIG1ldGFkYXRhXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSE7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjaGFpbklkJywgOTcpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2RhcHAnLCAnQml0R28gQlNDIEludGVncmF0aW9uJyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZW5jb2RpbmcnLCAndXRmOCcpO1xuXG4gICAgICAvLyBDb252ZXJ0IHRvIGJyb2FkY2FzdCBmb3JtYXRcbiAgICAgIGNvbnN0IGJyb2FkY2FzdEZvcm1hdCA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHlwZScsIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJyb2FkY2FzdEZvcm1hdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgncGF5bG9hZCcsICdJbnRlZ3JhdGlvbiB0ZXN0IG1lc3NhZ2UgZm9yIEJTQycpO1xuICAgICAgYnJvYWRjYXN0Rm9ybWF0LnNob3VsZC5oYXZlLnByb3BlcnR5KCdzaWduZXJzJyk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3NlcmlhbGl6ZWRTaWduYXR1cmVzJyk7XG4gICAgICBicm9hZGNhc3RGb3JtYXQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ21ldGFkYXRhJyk7XG5cbiAgICAgIC8vIFJlY29uc3RydWN0IGZyb20gYnJvYWRjYXN0IGZvcm1hdFxuICAgICAgY29uc3QgcmVidWlsdE1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0Rm9ybWF0KTtcbiAgICAgIHJlYnVpbHRNZXNzYWdlLmdldFBheWxvYWQoKS5zaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCkpO1xuICAgICAgcmVidWlsdE1lc3NhZ2UuZ2V0VHlwZSgpLnNob3VsZC5lcXVhbChtZXNzYWdlLmdldFR5cGUoKSk7XG4gICAgICByZWJ1aWx0TWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmRlZXBFcXVhbChtZXNzYWdlLmdldFNpZ25lcnMoKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHdvcmsgd2l0aCBwcm9kdWN0aW9uIEJTQyBjb2luIGNvbmZpZ3VyYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBic2NDb2luID0gY29pbnMuZ2V0KCdic2MnKTsgLy8gUHJvZHVjdGlvbiBCU0NcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGJzY0NvaW4pO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoJ1Byb2R1Y3Rpb24gQlNDIG1lc3NhZ2UgdGVzdCcpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKCdQcm9kdWN0aW9uIEJTQyBtZXNzYWdlIHRlc3QnKTtcblxuICAgICAgLy8gVmVyaWZ5IGl0IHVzZXMgcHJvZHVjdGlvbiBCU0MgY29uZmlndXJhdGlvblxuICAgICAgYnNjQ29pbi5uYW1lLnNob3VsZC5lcXVhbCgnYnNjJyk7XG4gICAgICBic2NDb2luLm5ldHdvcmsuZmFtaWx5LnNob3VsZC5lcXVhbCgnYnNjJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjb21wbGV4IEJTQyB0cmFuc2FjdGlvbiBtZXRhZGF0YScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuXG4gICAgICBjb25zdCBjb21wbGV4TWV0YWRhdGEgPSB7XG4gICAgICAgIG5ldHdvcms6ICdic2MnLFxuICAgICAgICBjaGFpbklkOiA1NixcbiAgICAgICAgdHJhbnNhY3Rpb25UeXBlOiAndG9rZW5fdHJhbnNmZXInLFxuICAgICAgICB0b2tlbkNvbnRyYWN0OiAnMHg1NWQzOTgzMjZmOTkwNTlmRjc3NTQ4NTI0Njk5OTAyN0IzMTk3OTU1JywgLy8gVVNEVCBvbiBCU0NcbiAgICAgICAgYW1vdW50OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIDEgdG9rZW4gd2l0aCAxOCBkZWNpbWFsc1xuICAgICAgICByZWNpcGllbnQ6ICcweDc0MmQzNUNjNjYzNEMwNTMyOTI1YTNiOEQ0MzFDMkZFMWUwNWRCMmInLFxuICAgICAgICBnYXNMaW1pdDogJzIxMDAwJyxcbiAgICAgICAgZ2FzUHJpY2U6ICc1MDAwMDAwMDAwJyxcbiAgICAgICAgbm9uY2U6IDQyLFxuICAgICAgICBkYXBwVXJsOiAnaHR0cHM6Ly9wYW5jYWtlc3dhcC5maW5hbmNlJyxcbiAgICAgICAgdXNlckFnZW50OiAnQml0R28gU0RLIEJTQyBJbnRlZ3JhdGlvbiBUZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnNldFBheWxvYWQoJ0NvbXBsZXggQlNDIHRyYW5zYWN0aW9uIGFwcHJvdmFsJylcbiAgICAgICAgLnNldE1ldGFkYXRhKGNvbXBsZXhNZXRhZGF0YSlcbiAgICAgICAgLmFkZFNpZ25lcihmaXh0dXJlcy5laXAxOTEuc2lnbmVyKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gbWVzc2FnZS5nZXRNZXRhZGF0YSgpITtcblxuICAgICAgLy8gVmVyaWZ5IGFsbCBjb21wbGV4IG1ldGFkYXRhIGlzIHByZXNlcnZlZFxuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3Rva2VuQ29udHJhY3QnLCAnMHg1NWQzOTgzMjZmOTkwNTlmRjc3NTQ4NTI0Njk5OTAyN0IzMTk3OTU1Jyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnYW1vdW50JywgJzEwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdyZWNpcGllbnQnLCAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjhENDMxQzJGRTFlMDVkQjJiJyk7XG4gICAgICBtZXRhZGF0YS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZ2FzTGltaXQnLCAnMjEwMDAnKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdub25jZScsIDQyKTtcbiAgICAgIG1ldGFkYXRhLnNob3VsZC5oYXZlLnByb3BlcnR5KCdkYXBwVXJsJywgJ2h0dHBzOi8vcGFuY2FrZXN3YXAuZmluYW5jZScpO1xuICAgICAgbWV0YWRhdGEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTsgLy8gU2hvdWxkIGJlIG92ZXJyaWRkZW5cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=messageBuilderFactory.d.ts.map
@@ -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-beta/sdk-core");
9
+ const fixtures_1 = require("./fixtures");
10
+ const src_1 = require("../../../src");
11
+ const abstract_eth_1 = require("@bitgo-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1aWxkZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsbURBQTJEO0FBQzNELHlDQUFzQztBQUN0QyxzQ0FBcUQ7QUFDckQsMkRBQWdFO0FBRWhFLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7SUFDM0MsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXRDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLEVBQUUsQ0FBQywyREFBMkQsRUFBRSxHQUFHLEVBQUU7WUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBcUIsQ0FBQyxtQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV0RSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUNBQW9CLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSwyQkFBcUIsQ0FBQyxtQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpELGdEQUFnRDtZQUNoRCxNQUFNLGVBQWUsR0FBRyxrQkFBeUMsQ0FBQztZQUVsRSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FB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Q0FBQztZQUV6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV0QyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGZpeHR1cmVzIH0gZnJvbSAnLi9maXh0dXJlcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgRWlwMTkxTWVzc2FnZUJ1aWxkZXIgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuXG5kZXNjcmliZSgnQlNDIE1lc3NhZ2UgQnVpbGRlciBGYWN0b3J5JywgKCkgPT4ge1xuICBjb25zdCBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgY29ycmVjdCBidWlsZGVyIGZvciBFSVAxOTEgbWVzc2FnZSB0eXBlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcblxuICAgICAgYnVpbGRlci5zaG91bGQuYmUuaW5zdGFuY2VvZihFaXAxOTFNZXNzYWdlQnVpbGRlcik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGZvciB1bnN1cHBvcnRlZCBtZXNzYWdlIHR5cGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIC8vIFRlc3Qgd2l0aCBhbiBpbnZhbGlkL3Vuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZVxuICAgICAgY29uc3QgdW5zdXBwb3J0ZWRUeXBlID0gJ1VOU1VQUE9SVEVEX1RZUEUnIGFzIE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG5cbiAgICAgICgoKSA9PiBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKHVuc3VwcG9ydGVkVHlwZSkpLnNob3VsZC50aHJvdygvSW52YWxpZCBtZXNzYWdlIHN0YW5kYXJkLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGZvciB1bmtub3duIG1lc3NhZ2Ugc3RhbmRhcmQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgKCgpID0+IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBgSW52YWxpZCBtZXNzYWdlIHN0YW5kYXJkICR7TWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOfWBcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBidWlsZGVyIHdpdGggQlNDIGNvaW4gY29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGUgYnVpbGRlciB3YXMgY3JlYXRlZCB3aXRoIEJTQyBjb2luIGNvbmZpZ1xuICAgICAgYnVpbGRlci5zaG91bGQuYmUuaW5zdGFuY2VvZihFaXAxOTFNZXNzYWdlQnVpbGRlcik7XG4gICAgICAvLyBUaGUgY29pbiBjb25maWd1cmF0aW9uIHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlIGJ1aWxkZXJcbiAgICAgIGZpeHR1cmVzLmNvaW4ubmFtZS5zaG91bGQuZXF1YWwoJ3Ric2MnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0ludGVncmF0aW9uIHdpdGggRUlQMTkxIGJ1aWxkZXInLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSBidWlsZGVyIHRoYXQgY2FuIGJ1aWxkIGEgdmFsaWQgQlNDIEVJUDE5MSBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy52YWxpZE1lc3NhZ2UpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgbWVzc2FnZS5nZXRQYXlsb2FkKCkuc2hvdWxkLmVxdWFsKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHdvcmsgd2l0aCBCU0Mtc3BlY2lmaWMgbWV0YWRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShmaXh0dXJlcy5jb2luKTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKGZpeHR1cmVzLm1lc3NhZ2VzLnZhbGlkTWVzc2FnZSk7XG4gICAgICBidWlsZGVyLnNldE1ldGFkYXRhKGZpeHR1cmVzLmVpcDE5MS5tZXRhZGF0YSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2N1c3RvbURhdGEnLCAnQlNDIHRlc3QgZGF0YScpO1xuICAgICAgbWVzc2FnZS5nZXRNZXRhZGF0YSgpIS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnbmV0d29yaycsICdic2MnKTtcbiAgICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2VuY29kaW5nJywgJ3V0ZjgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IG1lc3NhZ2VzIG9uIEJTQycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMuZW1wdHlNZXNzYWdlKTtcblxuICAgICAgLy8gRW1wdHkgbWVzc2FnZXMgc2hvdWxkIHRocm93IGFuIGVycm9yIHNpbmNlIHRoZXkncmUgbm90IHZhbGlkIGZvciBFSVAtMTkxXG4gICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIEJTQyBtZXNzYWdlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGZpeHR1cmVzLmNvaW4pO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQoZml4dHVyZXMubWVzc2FnZXMuc3BlY2lhbENoYXJzTWVzc2FnZSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChmaXh0dXJlcy5tZXNzYWdlcy5zcGVjaWFsQ2hhcnNNZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGxvbmcgbWVzc2FnZXMgb24gQlNDJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoZml4dHVyZXMuY29pbik7XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChmaXh0dXJlcy5tZXNzYWdlcy5sb25nTWVzc2FnZSk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLnNob3VsZC5lcXVhbChmaXh0dXJlcy5tZXNzYWdlcy5sb25nTWVzc2FnZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=send.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -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-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGlEQUFrRDtBQUNsRCwrQ0FBZ0Q7QUFFaEQsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtJQUM1QyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUEsaUJBQVMsRUFBQyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBQSxpQkFBUyxFQUFDLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUN2QyxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxJQUFBLGlCQUFTLEVBQUMsZ0JBQStCLENBQUMsRUFDaEQsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssc0NBQXNDLENBQ2pFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGdldENvbW1vbiB9IGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnTmV0d29yayBDb21tb24gQ29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgaXQoJ2dldENvbW1vbiBmb3IgbWFpbm5ldCcsICgpID0+IHtcbiAgICBjb25zdCBjb21tb24gPSBnZXRDb21tb24oTmV0d29ya1R5cGUuTUFJTk5FVCk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5jaGFpbk5hbWUoKSwgJ21haW5uZXQnKTtcbiAgICBzaG91bGQuZXF1YWwoY29tbW9uLmhhcmRmb3JrKCksICdwZXRlcnNidXJnJyk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5jaGFpbklkQk4oKS50b1N0cmluZygpLCAnNTYnKTtcbiAgICBzaG91bGQuZXF1YWwoY29tbW9uLm5ldHdvcmtJZEJOKCkudG9TdHJpbmcoKSwgJzU2Jyk7XG4gIH0pO1xuXG4gIGl0KCdnZXRDb21tb24gZm9yIHRlc3RuZXQnLCAoKSA9PiB7XG4gICAgY29uc3QgY29tbW9uID0gZ2V0Q29tbW9uKE5ldHdvcmtUeXBlLlRFU1RORVQpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24uY2hhaW5OYW1lKCksICd0ZXN0bmV0Jyk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5oYXJkZm9yaygpLCAncGV0ZXJzYnVyZycpO1xuICAgIHNob3VsZC5lcXVhbChjb21tb24uY2hhaW5JZEJOKCkudG9TdHJpbmcoKSwgJzk3Jyk7XG4gICAgc2hvdWxkLmVxdWFsKGNvbW1vbi5uZXR3b3JrSWRCTigpLnRvU3RyaW5nKCksICc5NycpO1xuICB9KTtcblxuICBpdCgnZ2V0Q29tbW9uIGZvciBpbnZhbGlkIG5ldHdvcmsnLCAoKSA9PiB7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IGdldENvbW1vbignaW52YWxpZE5ldHdvcmsnIGFzIE5ldHdvcmtUeXBlKSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gJ01pc3NpbmcgbmV0d29yayBjb21tb24gY29uZmlndXJhdGlvbidcbiAgICApO1xuICB9KTtcbn0pO1xuIl19