@bitgo-beta/sdk-coin-bsc 1.0.1-beta.232 → 1.0.1-beta.2321

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 +16 -5
  2. package/dist/src/bsc.d.ts.map +1 -1
  3. package/dist/src/bsc.js +22 -2
  4. package/dist/src/bscToken.d.ts +5 -1
  5. package/dist/src/bscToken.d.ts.map +1 -1
  6. package/dist/src/bscToken.js +10 -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 +3 -4
  15. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  16. package/dist/src/lib/transactionBuilder.js +7 -10
  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 +238 -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 +41 -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 +18 -12
  62. package/.eslintignore +0 -5
  63. package/.mocharc.yml +0 -8
  64. package/CHANGELOG.md +0 -121
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.keyShares = void 0;
4
+ exports.keyShares = {
5
+ A: {
6
+ pShare: {
7
+ i: 1,
8
+ t: 2,
9
+ c: 3,
10
+ l: 'e8ade89d248c10cda89063852841bf8a0da216e3cf29e1bb8323c1411f1d440a7e696edf2eda0d41d67f9e7e7f07df2f2d4839f133819fd2eb30366fdd08da68d25c8b8f24f42d8e25277a44a522f0ad8bf3bba8dbea075b484b8cdea38af9830b8233e60184fb5a09955ba8f742f925e24d5cb2890a64a04c643dc09063c924716288deb8a68d2fc7f5fd847fa6e1f27280c00140f42c9ab32ccc044ff0f571dc2354c1423840fb29b6ac4a33fce555af85a02df1b0a1af44d696797cb5ccda227866a6475a533cd8c6545924c95e948f0ab34fbd1c6775f444bd6d210338ee5fb292cdb8075c077f15accbb5f61840fecb5c721332ac6c8de86f21de70d251a66a2919b83e4c2de77f19dee7c8d1f29416b87faec311e59e7acf085cf6ed678f4aab7a99080baad57147ed216bc44fd6e3c43d88c50fb0395af175092a8cd0dd0c991785ee072d98993f6086931c46f644661ac7a161a29d47402e6ad0dfb23a905da113bc918045b09f228687ed74b626f4cfab450b9b39ba1aee20285100',
11
+ m: '67eda115fee32f93cbb120ceec526a3abd5f1c6749a939e99db4309244abfccd5fb30f4dfa383dca071f69c68bc812f5e7b90901e9b53ef3a5b7cf6a740d7162688435c497ca06a2eac8586847f15f14af095bc45fa63a6844ba1a9ea3f26b5597d0c443def85c076984359eed5067fa6f8afe56287119c7bcf945ad062b5aae1f8a5796496c77f58cf72f057a7d4d4c35af6c5740d699ccf6640f30b3280fe3d0eed25fd4129bfae20be3e65182ea2fa82c6c35febf55e6aada42c5e2707be580623fd44819176c99e97989a6de0a34e55d5d1217f1fc95a9bc600207122d55d436a2d2e545ee60bf6ad1ac8f158ee075da910cb231bef824bf7e5eae302d30538524d3b383d641d94ce1e17656a8c5219f0a4735c3019f437ad875cb4585e2f3f0aab925eb1ba34510a8b868d167212ab08df8ad5affaf42e5d6fb6355e5400b4f35fd53805f50ec21b9b04dbbe855f0856675d999bb1c21c668e44ce1c89eb7cddecb14e6668a4e73330f833fb9aa0c541f33ef7ee7c72e3c2eb238585fcd',
12
+ n: 'e8ade89d248c10cda89063852841bf8a0da216e3cf29e1bb8323c1411f1d440a7e696edf2eda0d41d67f9e7e7f07df2f2d4839f133819fd2eb30366fdd08da68d25c8b8f24f42d8e25277a44a522f0ad8bf3bba8dbea075b484b8cdea38af9830b8233e60184fb5a09955ba8f742f925e24d5cb2890a64a04c643dc09063c924716288deb8a68d2fc7f5fd847fa6e1f27280c00140f42c9ab32ccc044ff0f571dc2354c1423840fb29b6ac4a33fce555af85a02df1b0a1af44d696797cb5ccdc5857f09e74b106e1e4138a7683c26cb35d7c84c503dee237f702fd694a47a09b80dc788dc5b3434160c42fb539b5d99468080675c0243650a8255e95e472a1c2548f0da4e0454f28841f28f8641ff00fb2292a0a1445d5c787aa91ebee80753abcc966ddcc66c2f192aedae1e3eb00343d13186b4e370d76097224f3203f674082e50020ad8b2a779a327bc1aa1e22cdabecbe53f24811255cc5f39e4261920394038e951cd8933aae4a8a5c7dd93da87dc0c5217aae655dab314838ff509167',
13
+ y: '03917f30cfc8996a29a73c15afa9ac16c9721ccda49f5d7be1fb7cd9fd37802041',
14
+ u: '329ca306fad9ac1b57d47f96006c07d7d712abf19749ee78c9cdc144299fd5b9',
15
+ uu: '105036727311400273505444835419054587647981890852554899724393648565849274495754',
16
+ chaincode: '75d9266a58c752afab1db0f977cc7d9550974e374983565f620ffa704b1c185b',
17
+ },
18
+ nShares: {
19
+ 2: {
20
+ i: 2,
21
+ j: 1,
22
+ n: 'e8ade89d248c10cda89063852841bf8a0da216e3cf29e1bb8323c1411f1d440a7e696edf2eda0d41d67f9e7e7f07df2f2d4839f133819fd2eb30366fdd08da68d25c8b8f24f42d8e25277a44a522f0ad8bf3bba8dbea075b484b8cdea38af9830b8233e60184fb5a09955ba8f742f925e24d5cb2890a64a04c643dc09063c924716288deb8a68d2fc7f5fd847fa6e1f27280c00140f42c9ab32ccc044ff0f571dc2354c1423840fb29b6ac4a33fce555af85a02df1b0a1af44d696797cb5ccdc5857f09e74b106e1e4138a7683c26cb35d7c84c503dee237f702fd694a47a09b80dc788dc5b3434160c42fb539b5d99468080675c0243650a8255e95e472a1c2548f0da4e0454f28841f28f8641ff00fb2292a0a1445d5c787aa91ebee80753abcc966ddcc66c2f192aedae1e3eb00343d13186b4e370d76097224f3203f674082e50020ad8b2a779a327bc1aa1e22cdabecbe53f24811255cc5f39e4261920394038e951cd8933aae4a8a5c7dd93da87dc0c5217aae655dab314838ff509167',
23
+ y: '03917f30cfc8996a29a73c15afa9ac16c9721ccda49f5d7be1fb7cd9fd37802041',
24
+ v: '0209b8d30fda121bfef84ede2895884719d7235b573bd10d234c3d51df4eed1e9f',
25
+ u: '7d0097c00b6699b7cf30d0411166d926d1ad808b318b3cacec5b9bfff7fd39a9',
26
+ chaincode: '75d9266a58c752afab1db0f977cc7d9550974e374983565f620ffa704b1c185b',
27
+ },
28
+ 3: {
29
+ i: 3,
30
+ j: 1,
31
+ n: 'e8ade89d248c10cda89063852841bf8a0da216e3cf29e1bb8323c1411f1d440a7e696edf2eda0d41d67f9e7e7f07df2f2d4839f133819fd2eb30366fdd08da68d25c8b8f24f42d8e25277a44a522f0ad8bf3bba8dbea075b484b8cdea38af9830b8233e60184fb5a09955ba8f742f925e24d5cb2890a64a04c643dc09063c924716288deb8a68d2fc7f5fd847fa6e1f27280c00140f42c9ab32ccc044ff0f571dc2354c1423840fb29b6ac4a33fce555af85a02df1b0a1af44d696797cb5ccdc5857f09e74b106e1e4138a7683c26cb35d7c84c503dee237f702fd694a47a09b80dc788dc5b3434160c42fb539b5d99468080675c0243650a8255e95e472a1c2548f0da4e0454f28841f28f8641ff00fb2292a0a1445d5c787aa91ebee80753abcc966ddcc66c2f192aedae1e3eb00343d13186b4e370d76097224f3203f674082e50020ad8b2a779a327bc1aa1e22cdabecbe53f24811255cc5f39e4261920394038e951cd8933aae4a8a5c7dd93da87dc0c5217aae655dab314838ff509167',
32
+ y: '03917f30cfc8996a29a73c15afa9ac16c9721ccda49f5d7be1fb7cd9fd37802041',
33
+ v: '0209b8d30fda121bfef84ede2895884719d7235b573bd10d234c3d51df4eed1e9f',
34
+ u: 'c7648c791bf38754468d20ec2261aa75cc485524cbcc8ae10ee976bbc65a9d99',
35
+ chaincode: '75d9266a58c752afab1db0f977cc7d9550974e374983565f620ffa704b1c185b',
36
+ },
37
+ },
38
+ },
39
+ B: {
40
+ pShare: {
41
+ i: 2,
42
+ t: 2,
43
+ c: 3,
44
+ l: 'e3c66fb7ed957c58787aae6d68eadfb21c58d69fc895b7abb74caf544c8fd0470802036105cef1685d58cd832498a4b12ce9294453d75cf06a004e335171d012dbba25408d68951d08c5bb3796eabf2e7c944367d82142f59b9f87d32e93944b6ce22519771f0ed860ce70748bef239204044800a4e62ddf841b6b8cd7198bb947921abd13cc38c400346ee4afff797fce91cda3612b1a2bcd893878772e06efd68c3f01b5872bbf23ca8887c4f97dc92475b6a8299d3fb6b1f6e2b935c250b462e95d7b61e91dde02ea3ad8540c6c9b88a1dca3eac1b591fc185dd92848fb6a0ef4e9f902580ff07592654e9313d65c2ff2ef5c7faebf1995861e158e2e1a4a742a2fb6020027daf140ee8b9f7144207188eb6a45d7d3363de695b1a151f6b47fbed832740c07db82a3df59bf04edd64bbd6cdf3ee627738c07933d3fcd94d60b1fc974a0826f4ab3136b1c5210b6c54f905a62da7b0a45d6cd2c33b58db214b933eceb05da1a9278709e8d60d352cefcd6ab0e29cfe6017a0f543f794e5a60',
45
+ m: 'c4e60ac80322dbeb362a0f6ff6af3b497b339935ae189050c4ef45fcf09d60868b8278b088d5cb2a5c4d570b02284275edbbf5b1f5a56e91f66812a37ad0db9fd9c04b123eddb5f2a2755ee8432da20a2d9d1cc074360391a9e66d9e14960072ca58ff8b3871350c18fc0afe1d51687cf2d017a790522ce80541aa1b4240fab4e059b347861064b59f4bb76b0d7c4c5e7f827f4f54988d933e9bef51ec7dbb163c3f8bf720fd31027eebf6c9659f3980c4d86a5bc6fe14b1a78988b656557a2c5a588ec416af18c2118e01d358362d5ec4d80d25cbbc1f400ec98773433f4145d5e3f27b74973d96df58a61a0603aa06c713e441c8e699cdcc531d7260b0532205991c894de822b436d9501af58bee7c59f55ce2d0a9a30d408a9af7c66eeafcbd2373b2d33897820d934bd3d7819bf933157f7551ac50684d41da4ee0dbd1dae77a866a1fb1e4d12146eb7b7294437ddbd6c60af68e34a6c6d50639c4b22cb1db3adda3f3e36468a57d3084a59656d05a04302dc845ebee6bbf791e8a6a85dc',
46
+ n: 'e3c66fb7ed957c58787aae6d68eadfb21c58d69fc895b7abb74caf544c8fd0470802036105cef1685d58cd832498a4b12ce9294453d75cf06a004e335171d012dbba25408d68951d08c5bb3796eabf2e7c944367d82142f59b9f87d32e93944b6ce22519771f0ed860ce70748bef239204044800a4e62ddf841b6b8cd7198bb947921abd13cc38c400346ee4afff797fce91cda3612b1a2bcd893878772e06efd68c3f01b5872bbf23ca8887c4f97dc92475b6a8299d3fb6b1f6e2b935c250b66944b41e6b9ecaea681deb868cff7e71674b23693b193f15dc7b6f6948f1d683042a7f8250de0698c5940c8553aca4c0f2c40079f5c858463b2d7bbcf810b357ee400e2abca1451bc3d686f55f7a46154f0b9321595881acd3d47555a45f8f236d7b1546ec06b18d19a51c64acf28d029f2a3cadb0017cd57d8852ccaea3926dfd15ed70a18e6373ec77b1fe4c8291312442a719a574acc9460a08de2c27c9ae16306f986c607d5ae5689d203a9e8444b71560518e4f3b436ed033943b962acd',
47
+ y: '038ec7d86c5b6e5d123a3d26076ee6fd6d055f3fc7c05e1c9c32d4aedb3eb40425',
48
+ u: '78059cd78e4ce7d959bd76417dd8d6da6ee1d4ca4b6324f020a9a72e60709ae0',
49
+ uu: '55162782419389545869324912620122890654277956309120999578068634639986351700257',
50
+ chaincode: '8c3c104d2ced61750dd728723eb85ff2e0a09df8d9de1b13aa1f92f21da2c855',
51
+ },
52
+ nShares: {
53
+ 1: {
54
+ i: 1,
55
+ j: 2,
56
+ n: 'e3c66fb7ed957c58787aae6d68eadfb21c58d69fc895b7abb74caf544c8fd0470802036105cef1685d58cd832498a4b12ce9294453d75cf06a004e335171d012dbba25408d68951d08c5bb3796eabf2e7c944367d82142f59b9f87d32e93944b6ce22519771f0ed860ce70748bef239204044800a4e62ddf841b6b8cd7198bb947921abd13cc38c400346ee4afff797fce91cda3612b1a2bcd893878772e06efd68c3f01b5872bbf23ca8887c4f97dc92475b6a8299d3fb6b1f6e2b935c250b66944b41e6b9ecaea681deb868cff7e71674b23693b193f15dc7b6f6948f1d683042a7f8250de0698c5940c8553aca4c0f2c40079f5c858463b2d7bbcf810b357ee400e2abca1451bc3d686f55f7a46154f0b9321595881acd3d47555a45f8f236d7b1546ec06b18d19a51c64acf28d029f2a3cadb0017cd57d8852ccaea3926dfd15ed70a18e6373ec77b1fe4c8291312442a719a574acc9460a08de2c27c9ae16306f986c607d5ae5689d203a9e8444b71560518e4f3b436ed033943b962acd',
57
+ y: '038ec7d86c5b6e5d123a3d26076ee6fd6d055f3fc7c05e1c9c32d4aedb3eb40425',
58
+ v: '020ef26f3e96018da06a8f12efecf100215ea3501764879cc2caa308a9ff180d1f',
59
+ u: 'f8fd520ef91c58cdbab7a272d96efa94cde6f54b82d4e0f519f5c6160b1baaa1',
60
+ chaincode: '8c3c104d2ced61750dd728723eb85ff2e0a09df8d9de1b13aa1f92f21da2c855',
61
+ },
62
+ 3: {
63
+ i: 3,
64
+ j: 2,
65
+ n: 'e3c66fb7ed957c58787aae6d68eadfb21c58d69fc895b7abb74caf544c8fd0470802036105cef1685d58cd832498a4b12ce9294453d75cf06a004e335171d012dbba25408d68951d08c5bb3796eabf2e7c944367d82142f59b9f87d32e93944b6ce22519771f0ed860ce70748bef239204044800a4e62ddf841b6b8cd7198bb947921abd13cc38c400346ee4afff797fce91cda3612b1a2bcd893878772e06efd68c3f01b5872bbf23ca8887c4f97dc92475b6a8299d3fb6b1f6e2b935c250b66944b41e6b9ecaea681deb868cff7e71674b23693b193f15dc7b6f6948f1d683042a7f8250de0698c5940c8553aca4c0f2c40079f5c858463b2d7bbcf810b357ee400e2abca1451bc3d686f55f7a46154f0b9321595881acd3d47555a45f8f236d7b1546ec06b18d19a51c64acf28d029f2a3cadb0017cd57d8852ccaea3926dfd15ed70a18e6373ec77b1fe4c8291312442a719a574acc9460a08de2c27c9ae16306f986c607d5ae5689d203a9e8444b71560518e4f3b436ed033943b962acd',
66
+ y: '038ec7d86c5b6e5d123a3d26076ee6fd6d055f3fc7c05e1c9c32d4aedb3eb40425',
67
+ v: '020ef26f3e96018da06a8f12efecf100215ea3501764879cc2caa308a9ff180d1f',
68
+ u: 'f70de7a0237d76e4f8c34a102242b31eca8b912fc33a0926e72fe6d385fbcc60',
69
+ chaincode: '8c3c104d2ced61750dd728723eb85ff2e0a09df8d9de1b13aa1f92f21da2c855',
70
+ },
71
+ },
72
+ },
73
+ C: {
74
+ pShare: {
75
+ i: 3,
76
+ t: 2,
77
+ c: 3,
78
+ l: 'b6dbb186434ce2126ed8e32d6bc273603d05e973e9c3fd2978cc8e1e70bca14d4c4fd2c4713f5002f95845faef74c5f7198fa7abfd9ea1faac8be0a4df6aa26048c6747afb3a2ee31504d9b3aa0d6aae19707a2431251f419abf5d4204d2d891b7ea17b487efca1255c768b5537b34efcb223e9cac679329da9a7e78401d9935cb7849d3b5f163b0f2a9344e39d800860ca6d3c9dee941d7f13389901c2f659aa3e6c32f09399941bb9db86c843d3069f99f10baf0c53cbcc78deb950a815e1be3ef1e605aa63f83164c3a50799aaca22341f60484519f109bb075cdfb08e73c5056bf43830e50076a2977b900b2cbdad91c6e70a537d353d0ce3c3697fa10c649286f565df6491bad9407d8def460a7245a8fedb249fb6c85aa14384db2d8b261186e0d277de05b13ee0ab35fc4fa0396d16e3fbea1d639524822a7ce85e9cbb29c9d8c5c30b7895a00b5e89611e488cf98498fc0355ebd2a23f7449a53f7b477cece028812c20cabf27fa897e569e0cc2aeff84af8f0570ded9f037284f260',
79
+ m: 'adb4f98a1dd1bd7f6bcd3830e44b554b4ba4179c52eb52e70bc9736396d20fba6a66041c03e188e7662cbdcdee75034096fb514d93d790e2f094c39c70482fc36a5171a0e114a4b9d44b2b30aaa64e881b20a839d863fd61d835efaf055e9d9b008c0b7ce680f51c9dea18ff8d2f12b848f916952d8bb520db60e502c2496b6b68d936daaa475e2a21848c59186078edc2d822dce06c374809212a0ca3e48f4ad352157fb5eb52dd5b6f68b9530d092f5b2d4d990d358b80b1a721be86711e51524f4e38f9cbe34dcae714f303864207759cd7f3fe73504cdbad99e3829de1db86bfc24b1dbbf3cf8e9354f18c4c52181be83e569a96f4c6b13f7b00391a03233eca8be0f25ccb50b6b9702a3f7a035beb7efe18f10d600b88f5a5baccfd822784404483c51a867bdb2c70f2fe8ed2afe0a01bdb3dd3b0fc66125f66e46209550a7a09d3f17f7fe3839bb12d8890ad436012ed1d2e6547c048a253e95aa01a618c60e5828fe32262fdc03ac4dc600780a90323c2f61edf3b0f531e294fa43b7f',
80
+ n: 'b6dbb186434ce2126ed8e32d6bc273603d05e973e9c3fd2978cc8e1e70bca14d4c4fd2c4713f5002f95845faef74c5f7198fa7abfd9ea1faac8be0a4df6aa26048c6747afb3a2ee31504d9b3aa0d6aae19707a2431251f419abf5d4204d2d891b7ea17b487efca1255c768b5537b34efcb223e9cac679329da9a7e78401d9935cb7849d3b5f163b0f2a9344e39d800860ca6d3c9dee941d7f13389901c2f659aa3e6c32f09399941bb9db86c843d3069f99f10baf0c53cbcc78deb950a815e1dce71db43eb81ea740339c3605aab8ea5d0b250dc712a0d1c0807a9706a64cb66bb334f8866ac83696a0e09ff8f06103d7d4a5f439cb7db29499414a6693313cf39a90a76deca6cf8a13acc9e625b4b3aad4ebc7ea76ee322df769812851309514809560925514b36ea63e2e10810f270417b67c54d9cffab0dcf9a5fa6845bba5066165ab9dd757dbe4ff2a5c531e5c6e5757e195f15cb6b97081fd8e978de896449830c166e328989e39942d608bb5c4a0016ec68d393469db057120df7b0c5',
81
+ y: '02d4f1017912951163a39c065585adc3528fbb87474b943a9410ca96dbc9f5613c',
82
+ u: '4d651c7e2744f8cfb1d78fe84ad6a186465997007e3b7f4df130102d72c4638a',
83
+ uu: '4331251667263128721421568396470993046620211356746458367310802710199575757499',
84
+ chaincode: '440e9c550d1154df71ea3c5af1e5affb9e57a72fbb63e32b8e80c3ab395fdeef',
85
+ },
86
+ nShares: {
87
+ 1: {
88
+ i: 1,
89
+ j: 3,
90
+ n: 'b6dbb186434ce2126ed8e32d6bc273603d05e973e9c3fd2978cc8e1e70bca14d4c4fd2c4713f5002f95845faef74c5f7198fa7abfd9ea1faac8be0a4df6aa26048c6747afb3a2ee31504d9b3aa0d6aae19707a2431251f419abf5d4204d2d891b7ea17b487efca1255c768b5537b34efcb223e9cac679329da9a7e78401d9935cb7849d3b5f163b0f2a9344e39d800860ca6d3c9dee941d7f13389901c2f659aa3e6c32f09399941bb9db86c843d3069f99f10baf0c53cbcc78deb950a815e1dce71db43eb81ea740339c3605aab8ea5d0b250dc712a0d1c0807a9706a64cb66bb334f8866ac83696a0e09ff8f06103d7d4a5f439cb7db29499414a6693313cf39a90a76deca6cf8a13acc9e625b4b3aad4ebc7ea76ee322df769812851309514809560925514b36ea63e2e10810f270417b67c54d9cffab0dcf9a5fa6845bba5066165ab9dd757dbe4ff2a5c531e5c6e5757e195f15cb6b97081fd8e978de896449830c166e328989e39942d608bb5c4a0016ec68d393469db057120df7b0c5',
91
+ y: '02d4f1017912951163a39c065585adc3528fbb87474b943a9410ca96dbc9f5613c',
92
+ v: '027d3f2e23cf7ccce5bd2876a8be5e52e78ece86bf720e8827e98cf2461b9b3e99',
93
+ u: '7583f8b2e160bd1696cd7356d391922a35927a0b3ce5051b84b65513ae2b636b',
94
+ chaincode: '440e9c550d1154df71ea3c5af1e5affb9e57a72fbb63e32b8e80c3ab395fdeef',
95
+ },
96
+ 2: {
97
+ i: 2,
98
+ j: 3,
99
+ n: 'b6dbb186434ce2126ed8e32d6bc273603d05e973e9c3fd2978cc8e1e70bca14d4c4fd2c4713f5002f95845faef74c5f7198fa7abfd9ea1faac8be0a4df6aa26048c6747afb3a2ee31504d9b3aa0d6aae19707a2431251f419abf5d4204d2d891b7ea17b487efca1255c768b5537b34efcb223e9cac679329da9a7e78401d9935cb7849d3b5f163b0f2a9344e39d800860ca6d3c9dee941d7f13389901c2f659aa3e6c32f09399941bb9db86c843d3069f99f10baf0c53cbcc78deb950a815e1dce71db43eb81ea740339c3605aab8ea5d0b250dc712a0d1c0807a9706a64cb66bb334f8866ac83696a0e09ff8f06103d7d4a5f439cb7db29499414a6693313cf39a90a76deca6cf8a13acc9e625b4b3aad4ebc7ea76ee322df769812851309514809560925514b36ea63e2e10810f270417b67c54d9cffab0dcf9a5fa6845bba5066165ab9dd757dbe4ff2a5c531e5c6e5757e195f15cb6b97081fd8e978de896449830c166e328989e39942d608bb5c4a0016ec68d393469db057120df7b0c5',
100
+ y: '02d4f1017912951163a39c065585adc3528fbb87474b943a9410ca96dbc9f5613c',
101
+ v: '027d3f2e23cf7ccce5bd2876a8be5e52e78ece86bf720e8827e98cf2461b9b3e99',
102
+ u: 'e1748a988452daf32452819f8f3419d79b4d76f9353492529adc61e6f893041b',
103
+ chaincode: '440e9c550d1154df71ea3c5af1e5affb9e57a72fbb63e32b8e80c3ab395fdeef',
104
+ },
105
+ },
106
+ },
107
+ };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLENBQUMsRUFBRTtRQUNELE1BQU0sRUFBRTtZQUNOLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxrd0JBQWt3QjtZQUNyd0IsQ0FBQyxFQUFFLGt3QkFBa3dCO1lBQ3J3QixDQUFDLEVBQUUsa3dCQUFrd0I7WUFDcndCLENBQUMsRUFBRSxvRUFBb0U7WUFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtZQUNyRSxFQUFFLEVBQUUsZ0ZBQWdGO1lBQ3BGLFNBQVMsRUFBRSxrRUFBa0U7U0FDOUU7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLEVBQUU7Z0JBQ0QsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLGt3QkFBa3dCO2dCQUNyd0IsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtnQkFDckUsU0FBUyxFQUFFLGtFQUFrRTthQUM5RTtZQUNELENBQUMsRUFBRTtnQkFDRCxDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsa3dCQUFrd0I7Z0JBQ3J3QixDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsa0VBQWtFO2dCQUNyRSxTQUFTLEVBQUUsa0VBQWtFO2FBQzlFO1NBQ0Y7S0FDRjtJQUVELENBQUMsRUFBRTtRQUNELE1BQU0sRUFBRTtZQUNOLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxrd0JBQWt3QjtZQUNyd0IsQ0FBQyxFQUFFLGt3QkFBa3dCO1lBQ3J3QixDQUFDLEVBQUUsa3dCQUFrd0I7WUFDcndCLENBQUMsRUFBRSxvRUFBb0U7WUFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtZQUNyRSxFQUFFLEVBQUUsK0VBQStFO1lBQ25GLFNBQVMsRUFBRSxrRUFBa0U7U0FDOUU7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLEVBQUU7Z0JBQ0QsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLGt3QkFBa3dCO2dCQUNyd0IsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtnQkFDckUsU0FBUyxFQUFFLGtFQUFrRTthQUM5RTtZQUNELENBQUMsRUFBRTtnQkFDRCxDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsa3dCQUFrd0I7Z0JBQ3J3QixDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsa0VBQWtFO2dCQUNyRSxTQUFTLEVBQUUsa0VBQWtFO2FBQzlFO1NBQ0Y7S0FDRjtJQUVELENBQUMsRUFBRTtRQUNELE1BQU0sRUFBRTtZQUNOLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxrd0JBQWt3QjtZQUNyd0IsQ0FBQyxFQUFFLGt3QkFBa3dCO1lBQ3J3QixDQUFDLEVBQUUsa3dCQUFrd0I7WUFDcndCLENBQUMsRUFBRSxvRUFBb0U7WUFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtZQUNyRSxFQUFFLEVBQUUsOEVBQThFO1lBQ2xGLFNBQVMsRUFBRSxrRUFBa0U7U0FDOUU7UUFDRCxPQUFPLEVBQUU7WUFDUCxDQUFDLEVBQUU7Z0JBQ0QsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLGt3QkFBa3dCO2dCQUNyd0IsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLG9FQUFvRTtnQkFDdkUsQ0FBQyxFQUFFLGtFQUFrRTtnQkFDckUsU0FBUyxFQUFFLGtFQUFrRTthQUM5RTtZQUNELENBQUMsRUFBRTtnQkFDRCxDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEVBQUUsa3dCQUFrd0I7Z0JBQ3J3QixDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsb0VBQW9FO2dCQUN2RSxDQUFDLEVBQUUsa0VBQWtFO2dCQUNyRSxTQUFTLEVBQUUsa0VBQWtFO2FBQzlFO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qga2V5U2hhcmVzID0ge1xuICBBOiB7XG4gICAgcFNoYXJlOiB7XG4gICAgICBpOiAxLFxuICAgICAgdDogMixcbiAgICAgIGM6IDMsXG4gICAgICBsOiAnZThhZGU4OWQyNDhjMTBjZGE4OTA2Mzg1Mjg0MWJmOGEwZGEyMTZlM2NmMjllMWJiODMyM2MxNDExZjFkNDQwYTdlNjk2ZWRmMmVkYTBkNDFkNjdmOWU3ZTdmMDdkZjJmMmQ0ODM5ZjEzMzgxOWZkMmViMzAzNjZmZGQwOGRhNjhkMjVjOGI4ZjI0ZjQyZDhlMjUyNzdhNDRhNTIyZjBhZDhiZjNiYmE4ZGJlYTA3NWI0ODRiOGNkZWEzOGFmOTgzMGI4MjMzZTYwMTg0ZmI1YTA5OTU1YmE4Zjc0MmY5MjVlMjRkNWNiMjg5MGE2NGEwNGM2NDNkYzA5MDYzYzkyNDcxNjI4OGRlYjhhNjhkMmZjN2Y1ZmQ4NDdmYTZlMWYyNzI4MGMwMDE0MGY0MmM5YWIzMmNjYzA0NGZmMGY1NzFkYzIzNTRjMTQyMzg0MGZiMjliNmFjNGEzM2ZjZTU1NWFmODVhMDJkZjFiMGExYWY0NGQ2OTY3OTdjYjVjY2RhMjI3ODY2YTY0NzVhNTMzY2Q4YzY1NDU5MjRjOTVlOTQ4ZjBhYjM0ZmJkMWM2Nzc1ZjQ0NGJkNmQyMTAzMzhlZTVmYjI5MmNkYjgwNzVjMDc3ZjE1YWNjYmI1ZjYxODQwZmVjYjVjNzIxMzMyYWM2YzhkZTg2ZjIxZGU3MGQyNTFhNjZhMjkxOWI4M2U0YzJkZTc3ZjE5ZGVlN2M4ZDFmMjk0MTZiODdmYWVjMzExZTU5ZTdhY2YwODVjZjZlZDY3OGY0YWFiN2E5OTA4MGJhYWQ1NzE0N2VkMjE2YmM0NGZkNmUzYzQzZDg4YzUwZmIwMzk1YWYxNzUwOTJhOGNkMGRkMGM5OTE3ODVlZTA3MmQ5ODk5M2Y2MDg2OTMxYzQ2ZjY0NDY2MWFjN2ExNjFhMjlkNDc0MDJlNmFkMGRmYjIzYTkwNWRhMTEzYmM5MTgwNDViMDlmMjI4Njg3ZWQ3NGI2MjZmNGNmYWI0NTBiOWIzOWJhMWFlZTIwMjg1MTAwJyxcbiAgICAgIG06ICc2N2VkYTExNWZlZTMyZjkzY2JiMTIwY2VlYzUyNmEzYWJkNWYxYzY3NDlhOTM5ZTk5ZGI0MzA5MjQ0YWJmY2NkNWZiMzBmNGRmYTM4M2RjYTA3MWY2OWM2OGJjODEyZjVlN2I5MDkwMWU5YjUzZWYzYTViN2NmNmE3NDBkNzE2MjY4ODQzNWM0OTdjYTA2YTJlYWM4NTg2ODQ3ZjE1ZjE0YWYwOTViYzQ1ZmE2M2E2ODQ0YmExYTllYTNmMjZiNTU5N2QwYzQ0M2RlZjg1YzA3Njk4NDM1OWVlZDUwNjdmYTZmOGFmZTU2Mjg3MTE5YzdiY2Y5NDVhZDA2MmI1YWFlMWY4YTU3OTY0OTZjNzdmNThjZjcyZjA1N2E3ZDRkNGMzNWFmNmM1NzQwZDY5OWNjZjY2NDBmMzBiMzI4MGZlM2QwZWVkMjVmZDQxMjliZmFlMjBiZTNlNjUxODJlYTJmYTgyYzZjMzVmZWJmNTVlNmFhZGE0MmM1ZTI3MDdiZTU4MDYyM2ZkNDQ4MTkxNzZjOTllOTc5ODlhNmRlMGEzNGU1NWQ1ZDEyMTdmMWZjOTVhOWJjNjAwMjA3MTIyZDU1ZDQzNmEyZDJlNTQ1ZWU2MGJmNmFkMWFjOGYxNThlZTA3NWRhOTEwY2IyMzFiZWY4MjRiZjdlNWVhZTMwMmQzMDUzODUyNGQzYjM4M2Q2NDFkOTRjZTFlMTc2NTZhOGM1MjE5ZjBhNDczNWMzMDE5ZjQzN2FkODc1Y2I0NTg1ZTJmM2YwYWFiOTI1ZWIxYmEzNDUxMGE4Yjg2OGQxNjcyMTJhYjA4ZGY4YWQ1YWZmYWY0MmU1ZDZmYjYzNTVlNTQwMGI0ZjM1ZmQ1MzgwNWY1MGVjMjFiOWIwNGRiYmU4NTVmMDg1NjY3NWQ5OTliYjFjMjFjNjY4ZTQ0Y2UxYzg5ZWI3Y2RkZWNiMTRlNjY2OGE0ZTczMzMwZjgzM2ZiOWFhMGM1NDFmMzNlZjdlZTdjNzJlM2MyZWIyMzg1ODVmY2QnLFxuICAgICAgbjogJ2U4YWRlODlkMjQ4YzEwY2RhODkwNjM4NTI4NDFiZjhhMGRhMjE2ZTNjZjI5ZTFiYjgzMjNjMTQxMWYxZDQ0MGE3ZTY5NmVkZjJlZGEwZDQxZDY3ZjllN2U3ZjA3ZGYyZjJkNDgzOWYxMzM4MTlmZDJlYjMwMzY2ZmRkMDhkYTY4ZDI1YzhiOGYyNGY0MmQ4ZTI1Mjc3YTQ0YTUyMmYwYWQ4YmYzYmJhOGRiZWEwNzViNDg0YjhjZGVhMzhhZjk4MzBiODIzM2U2MDE4NGZiNWEwOTk1NWJhOGY3NDJmOTI1ZTI0ZDVjYjI4OTBhNjRhMDRjNjQzZGMwOTA2M2M5MjQ3MTYyODhkZWI4YTY4ZDJmYzdmNWZkODQ3ZmE2ZTFmMjcyODBjMDAxNDBmNDJjOWFiMzJjY2MwNDRmZjBmNTcxZGMyMzU0YzE0MjM4NDBmYjI5YjZhYzRhMzNmY2U1NTVhZjg1YTAyZGYxYjBhMWFmNDRkNjk2Nzk3Y2I1Y2NkYzU4NTdmMDllNzRiMTA2ZTFlNDEzOGE3NjgzYzI2Y2IzNWQ3Yzg0YzUwM2RlZTIzN2Y3MDJmZDY5NGE0N2EwOWI4MGRjNzg4ZGM1YjM0MzQxNjBjNDJmYjUzOWI1ZDk5NDY4MDgwNjc1YzAyNDM2NTBhODI1NWU5NWU0NzJhMWMyNTQ4ZjBkYTRlMDQ1NGYyODg0MWYyOGY4NjQxZmYwMGZiMjI5MmEwYTE0NDVkNWM3ODdhYTkxZWJlZTgwNzUzYWJjYzk2NmRkY2M2NmMyZjE5MmFlZGFlMWUzZWIwMDM0M2QxMzE4NmI0ZTM3MGQ3NjA5NzIyNGYzMjAzZjY3NDA4MmU1MDAyMGFkOGIyYTc3OWEzMjdiYzFhYTFlMjJjZGFiZWNiZTUzZjI0ODExMjU1Y2M1ZjM5ZTQyNjE5MjAzOTQwMzhlOTUxY2Q4OTMzYWFlNGE4YTVjN2RkOTNkYTg3ZGMwYzUyMTdhYWU2NTVkYWIzMTQ4MzhmZjUwOTE2NycsXG4gICAgICB5OiAnMDM5MTdmMzBjZmM4OTk2YTI5YTczYzE1YWZhOWFjMTZjOTcyMWNjZGE0OWY1ZDdiZTFmYjdjZDlmZDM3ODAyMDQxJyxcbiAgICAgIHU6ICczMjljYTMwNmZhZDlhYzFiNTdkNDdmOTYwMDZjMDdkN2Q3MTJhYmYxOTc0OWVlNzhjOWNkYzE0NDI5OWZkNWI5JyxcbiAgICAgIHV1OiAnMTA1MDM2NzI3MzExNDAwMjczNTA1NDQ0ODM1NDE5MDU0NTg3NjQ3OTgxODkwODUyNTU0ODk5NzI0MzkzNjQ4NTY1ODQ5Mjc0NDk1NzU0JyxcbiAgICAgIGNoYWluY29kZTogJzc1ZDkyNjZhNThjNzUyYWZhYjFkYjBmOTc3Y2M3ZDk1NTA5NzRlMzc0OTgzNTY1ZjYyMGZmYTcwNGIxYzE4NWInLFxuICAgIH0sXG4gICAgblNoYXJlczoge1xuICAgICAgMjoge1xuICAgICAgICBpOiAyLFxuICAgICAgICBqOiAxLFxuICAgICAgICBuOiAnZThhZGU4OWQyNDhjMTBjZGE4OTA2Mzg1Mjg0MWJmOGEwZGEyMTZlM2NmMjllMWJiODMyM2MxNDExZjFkNDQwYTdlNjk2ZWRmMmVkYTBkNDFkNjdmOWU3ZTdmMDdkZjJmMmQ0ODM5ZjEzMzgxOWZkMmViMzAzNjZmZGQwOGRhNjhkMjVjOGI4ZjI0ZjQyZDhlMjUyNzdhNDRhNTIyZjBhZDhiZjNiYmE4ZGJlYTA3NWI0ODRiOGNkZWEzOGFmOTgzMGI4MjMzZTYwMTg0ZmI1YTA5OTU1YmE4Zjc0MmY5MjVlMjRkNWNiMjg5MGE2NGEwNGM2NDNkYzA5MDYzYzkyNDcxNjI4OGRlYjhhNjhkMmZjN2Y1ZmQ4NDdmYTZlMWYyNzI4MGMwMDE0MGY0MmM5YWIzMmNjYzA0NGZmMGY1NzFkYzIzNTRjMTQyMzg0MGZiMjliNmFjNGEzM2ZjZTU1NWFmODVhMDJkZjFiMGExYWY0NGQ2OTY3OTdjYjVjY2RjNTg1N2YwOWU3NGIxMDZlMWU0MTM4YTc2ODNjMjZjYjM1ZDdjODRjNTAzZGVlMjM3ZjcwMmZkNjk0YTQ3YTA5YjgwZGM3ODhkYzViMzQzNDE2MGM0MmZiNTM5YjVkOTk0NjgwODA2NzVjMDI0MzY1MGE4MjU1ZTk1ZTQ3MmExYzI1NDhmMGRhNGUwNDU0ZjI4ODQxZjI4Zjg2NDFmZjAwZmIyMjkyYTBhMTQ0NWQ1Yzc4N2FhOTFlYmVlODA3NTNhYmNjOTY2ZGRjYzY2YzJmMTkyYWVkYWUxZTNlYjAwMzQzZDEzMTg2YjRlMzcwZDc2MDk3MjI0ZjMyMDNmNjc0MDgyZTUwMDIwYWQ4YjJhNzc5YTMyN2JjMWFhMWUyMmNkYWJlY2JlNTNmMjQ4MTEyNTVjYzVmMzllNDI2MTkyMDM5NDAzOGU5NTFjZDg5MzNhYWU0YThhNWM3ZGQ5M2RhODdkYzBjNTIxN2FhZTY1NWRhYjMxNDgzOGZmNTA5MTY3JyxcbiAgICAgICAgeTogJzAzOTE3ZjMwY2ZjODk5NmEyOWE3M2MxNWFmYTlhYzE2Yzk3MjFjY2RhNDlmNWQ3YmUxZmI3Y2Q5ZmQzNzgwMjA0MScsXG4gICAgICAgIHY6ICcwMjA5YjhkMzBmZGExMjFiZmVmODRlZGUyODk1ODg0NzE5ZDcyMzViNTczYmQxMGQyMzRjM2Q1MWRmNGVlZDFlOWYnLFxuICAgICAgICB1OiAnN2QwMDk3YzAwYjY2OTliN2NmMzBkMDQxMTE2NmQ5MjZkMWFkODA4YjMxOGIzY2FjZWM1YjliZmZmN2ZkMzlhOScsXG4gICAgICAgIGNoYWluY29kZTogJzc1ZDkyNjZhNThjNzUyYWZhYjFkYjBmOTc3Y2M3ZDk1NTA5NzRlMzc0OTgzNTY1ZjYyMGZmYTcwNGIxYzE4NWInLFxuICAgICAgfSxcbiAgICAgIDM6IHtcbiAgICAgICAgaTogMyxcbiAgICAgICAgajogMSxcbiAgICAgICAgbjogJ2U4YWRlODlkMjQ4YzEwY2RhODkwNjM4NTI4NDFiZjhhMGRhMjE2ZTNjZjI5ZTFiYjgzMjNjMTQxMWYxZDQ0MGE3ZTY5NmVkZjJlZGEwZDQxZDY3ZjllN2U3ZjA3ZGYyZjJkNDgzOWYxMzM4MTlmZDJlYjMwMzY2ZmRkMDhkYTY4ZDI1YzhiOGYyNGY0MmQ4ZTI1Mjc3YTQ0YTUyMmYwYWQ4YmYzYmJhOGRiZWEwNzViNDg0YjhjZGVhMzhhZjk4MzBiODIzM2U2MDE4NGZiNWEwOTk1NWJhOGY3NDJmOTI1ZTI0ZDVjYjI4OTBhNjRhMDRjNjQzZGMwOTA2M2M5MjQ3MTYyODhkZWI4YTY4ZDJmYzdmNWZkODQ3ZmE2ZTFmMjcyODBjMDAxNDBmNDJjOWFiMzJjY2MwNDRmZjBmNTcxZGMyMzU0YzE0MjM4NDBmYjI5YjZhYzRhMzNmY2U1NTVhZjg1YTAyZGYxYjBhMWFmNDRkNjk2Nzk3Y2I1Y2NkYzU4NTdmMDllNzRiMTA2ZTFlNDEzOGE3NjgzYzI2Y2IzNWQ3Yzg0YzUwM2RlZTIzN2Y3MDJmZDY5NGE0N2EwOWI4MGRjNzg4ZGM1YjM0MzQxNjBjNDJmYjUzOWI1ZDk5NDY4MDgwNjc1YzAyNDM2NTBhODI1NWU5NWU0NzJhMWMyNTQ4ZjBkYTRlMDQ1NGYyODg0MWYyOGY4NjQxZmYwMGZiMjI5MmEwYTE0NDVkNWM3ODdhYTkxZWJlZTgwNzUzYWJjYzk2NmRkY2M2NmMyZjE5MmFlZGFlMWUzZWIwMDM0M2QxMzE4NmI0ZTM3MGQ3NjA5NzIyNGYzMjAzZjY3NDA4MmU1MDAyMGFkOGIyYTc3OWEzMjdiYzFhYTFlMjJjZGFiZWNiZTUzZjI0ODExMjU1Y2M1ZjM5ZTQyNjE5MjAzOTQwMzhlOTUxY2Q4OTMzYWFlNGE4YTVjN2RkOTNkYTg3ZGMwYzUyMTdhYWU2NTVkYWIzMTQ4MzhmZjUwOTE2NycsXG4gICAgICAgIHk6ICcwMzkxN2YzMGNmYzg5OTZhMjlhNzNjMTVhZmE5YWMxNmM5NzIxY2NkYTQ5ZjVkN2JlMWZiN2NkOWZkMzc4MDIwNDEnLFxuICAgICAgICB2OiAnMDIwOWI4ZDMwZmRhMTIxYmZlZjg0ZWRlMjg5NTg4NDcxOWQ3MjM1YjU3M2JkMTBkMjM0YzNkNTFkZjRlZWQxZTlmJyxcbiAgICAgICAgdTogJ2M3NjQ4Yzc5MWJmMzg3NTQ0NjhkMjBlYzIyNjFhYTc1Y2M0ODU1MjRjYmNjOGFlMTBlZTk3NmJiYzY1YTlkOTknLFxuICAgICAgICBjaGFpbmNvZGU6ICc3NWQ5MjY2YTU4Yzc1MmFmYWIxZGIwZjk3N2NjN2Q5NTUwOTc0ZTM3NDk4MzU2NWY2MjBmZmE3MDRiMWMxODViJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcblxuICBCOiB7XG4gICAgcFNoYXJlOiB7XG4gICAgICBpOiAyLFxuICAgICAgdDogMixcbiAgICAgIGM6IDMsXG4gICAgICBsOiAnZTNjNjZmYjdlZDk1N2M1ODc4N2FhZTZkNjhlYWRmYjIxYzU4ZDY5ZmM4OTViN2FiYjc0Y2FmNTQ0YzhmZDA0NzA4MDIwMzYxMDVjZWYxNjg1ZDU4Y2Q4MzI0OThhNGIxMmNlOTI5NDQ1M2Q3NWNmMDZhMDA0ZTMzNTE3MWQwMTJkYmJhMjU0MDhkNjg5NTFkMDhjNWJiMzc5NmVhYmYyZTdjOTQ0MzY3ZDgyMTQyZjU5YjlmODdkMzJlOTM5NDRiNmNlMjI1MTk3NzFmMGVkODYwY2U3MDc0OGJlZjIzOTIwNDA0NDgwMGE0ZTYyZGRmODQxYjZiOGNkNzE5OGJiOTQ3OTIxYWJkMTNjYzM4YzQwMDM0NmVlNGFmZmY3OTdmY2U5MWNkYTM2MTJiMWEyYmNkODkzODc4NzcyZTA2ZWZkNjhjM2YwMWI1ODcyYmJmMjNjYTg4ODdjNGY5N2RjOTI0NzViNmE4Mjk5ZDNmYjZiMWY2ZTJiOTM1YzI1MGI0NjJlOTVkN2I2MWU5MWRkZTAyZWEzYWQ4NTQwYzZjOWI4OGExZGNhM2VhYzFiNTkxZmMxODVkZDkyODQ4ZmI2YTBlZjRlOWY5MDI1ODBmZjA3NTkyNjU0ZTkzMTNkNjVjMmZmMmVmNWM3ZmFlYmYxOTk1ODYxZTE1OGUyZTFhNGE3NDJhMmZiNjAyMDAyN2RhZjE0MGVlOGI5ZjcxNDQyMDcxODhlYjZhNDVkN2QzMzYzZGU2OTViMWExNTFmNmI0N2ZiZWQ4MzI3NDBjMDdkYjgyYTNkZjU5YmYwNGVkZDY0YmJkNmNkZjNlZTYyNzczOGMwNzkzM2QzZmNkOTRkNjBiMWZjOTc0YTA4MjZmNGFiMzEzNmIxYzUyMTBiNmM1NGY5MDVhNjJkYTdiMGE0NWQ2Y2QyYzMzYjU4ZGIyMTRiOTMzZWNlYjA1ZGExYTkyNzg3MDllOGQ2MGQzNTJjZWZjZDZhYjBlMjljZmU2MDE3YTBmNTQzZjc5NGU1YTYwJyxcbiAgICAgIG06ICdjNGU2MGFjODAzMjJkYmViMzYyYTBmNmZmNmFmM2I0OTdiMzM5OTM1YWUxODkwNTBjNGVmNDVmY2YwOWQ2MDg2OGI4Mjc4YjA4OGQ1Y2IyYTVjNGQ1NzBiMDIyODQyNzVlZGJiZjViMWY1YTU2ZTkxZjY2ODEyYTM3YWQwZGI5ZmQ5YzA0YjEyM2VkZGI1ZjJhMjc1NWVlODQzMmRhMjBhMmQ5ZDFjYzA3NDM2MDM5MWE5ZTY2ZDllMTQ5NjAwNzJjYTU4ZmY4YjM4NzEzNTBjMThmYzBhZmUxZDUxNjg3Y2YyZDAxN2E3OTA1MjJjZTgwNTQxYWExYjQyNDBmYWI0ZTA1OWIzNDc4NjEwNjRiNTlmNGJiNzZiMGQ3YzRjNWU3ZjgyN2Y0ZjU0OTg4ZDkzM2U5YmVmNTFlYzdkYmIxNjNjM2Y4YmY3MjBmZDMxMDI3ZWViZjZjOTY1OWYzOTgwYzRkODZhNWJjNmZlMTRiMWE3ODk4OGI2NTY1NTdhMmM1YTU4OGVjNDE2YWYxOGMyMTE4ZTAxZDM1ODM2MmQ1ZWM0ZDgwZDI1Y2JiYzFmNDAwZWM5ODc3MzQzM2Y0MTQ1ZDVlM2YyN2I3NDk3M2Q5NmRmNThhNjFhMDYwM2FhMDZjNzEzZTQ0MWM4ZTY5OWNkY2M1MzFkNzI2MGIwNTMyMjA1OTkxYzg5NGRlODIyYjQzNmQ5NTAxYWY1OGJlZTdjNTlmNTVjZTJkMGE5YTMwZDQwOGE5YWY3YzY2ZWVhZmNiZDIzNzNiMmQzMzg5NzgyMGQ5MzRiZDNkNzgxOWJmOTMzMTU3Zjc1NTFhYzUwNjg0ZDQxZGE0ZWUwZGJkMWRhZTc3YTg2NmExZmIxZTRkMTIxNDZlYjdiNzI5NDQzN2RkYmQ2YzYwYWY2OGUzNGE2YzZkNTA2MzljNGIyMmNiMWRiM2FkZGEzZjNlMzY0NjhhNTdkMzA4NGE1OTY1NmQwNWEwNDMwMmRjODQ1ZWJlZTZiYmY3OTFlOGE2YTg1ZGMnLFxuICAgICAgbjogJ2UzYzY2ZmI3ZWQ5NTdjNTg3ODdhYWU2ZDY4ZWFkZmIyMWM1OGQ2OWZjODk1YjdhYmI3NGNhZjU0NGM4ZmQwNDcwODAyMDM2MTA1Y2VmMTY4NWQ1OGNkODMyNDk4YTRiMTJjZTkyOTQ0NTNkNzVjZjA2YTAwNGUzMzUxNzFkMDEyZGJiYTI1NDA4ZDY4OTUxZDA4YzViYjM3OTZlYWJmMmU3Yzk0NDM2N2Q4MjE0MmY1OWI5Zjg3ZDMyZTkzOTQ0YjZjZTIyNTE5NzcxZjBlZDg2MGNlNzA3NDhiZWYyMzkyMDQwNDQ4MDBhNGU2MmRkZjg0MWI2YjhjZDcxOThiYjk0NzkyMWFiZDEzY2MzOGM0MDAzNDZlZTRhZmZmNzk3ZmNlOTFjZGEzNjEyYjFhMmJjZDg5Mzg3ODc3MmUwNmVmZDY4YzNmMDFiNTg3MmJiZjIzY2E4ODg3YzRmOTdkYzkyNDc1YjZhODI5OWQzZmI2YjFmNmUyYjkzNWMyNTBiNjY5NDRiNDFlNmI5ZWNhZWE2ODFkZWI4NjhjZmY3ZTcxNjc0YjIzNjkzYjE5M2YxNWRjN2I2ZjY5NDhmMWQ2ODMwNDJhN2Y4MjUwZGUwNjk4YzU5NDBjODU1M2FjYTRjMGYyYzQwMDc5ZjVjODU4NDYzYjJkN2JiY2Y4MTBiMzU3ZWU0MDBlMmFiY2ExNDUxYmMzZDY4NmY1NWY3YTQ2MTU0ZjBiOTMyMTU5NTg4MWFjZDNkNDc1NTVhNDVmOGYyMzZkN2IxNTQ2ZWMwNmIxOGQxOWE1MWM2NGFjZjI4ZDAyOWYyYTNjYWRiMDAxN2NkNTdkODg1MmNjYWVhMzkyNmRmZDE1ZWQ3MGExOGU2MzczZWM3N2IxZmU0YzgyOTEzMTI0NDJhNzE5YTU3NGFjYzk0NjBhMDhkZTJjMjdjOWFlMTYzMDZmOTg2YzYwN2Q1YWU1Njg5ZDIwM2E5ZTg0NDRiNzE1NjA1MThlNGYzYjQzNmVkMDMzOTQzYjk2MmFjZCcsXG4gICAgICB5OiAnMDM4ZWM3ZDg2YzViNmU1ZDEyM2EzZDI2MDc2ZWU2ZmQ2ZDA1NWYzZmM3YzA1ZTFjOWMzMmQ0YWVkYjNlYjQwNDI1JyxcbiAgICAgIHU6ICc3ODA1OWNkNzhlNGNlN2Q5NTliZDc2NDE3ZGQ4ZDZkYTZlZTFkNGNhNGI2MzI0ZjAyMGE5YTcyZTYwNzA5YWUwJyxcbiAgICAgIHV1OiAnNTUxNjI3ODI0MTkzODk1NDU4NjkzMjQ5MTI2MjAxMjI4OTA2NTQyNzc5NTYzMDkxMjA5OTk1NzgwNjg2MzQ2Mzk5ODYzNTE3MDAyNTcnLFxuICAgICAgY2hhaW5jb2RlOiAnOGMzYzEwNGQyY2VkNjE3NTBkZDcyODcyM2ViODVmZjJlMGEwOWRmOGQ5ZGUxYjEzYWExZjkyZjIxZGEyYzg1NScsXG4gICAgfSxcbiAgICBuU2hhcmVzOiB7XG4gICAgICAxOiB7XG4gICAgICAgIGk6IDEsXG4gICAgICAgIGo6IDIsXG4gICAgICAgIG46ICdlM2M2NmZiN2VkOTU3YzU4Nzg3YWFlNmQ2OGVhZGZiMjFjNThkNjlmYzg5NWI3YWJiNzRjYWY1NDRjOGZkMDQ3MDgwMjAzNjEwNWNlZjE2ODVkNThjZDgzMjQ5OGE0YjEyY2U5Mjk0NDUzZDc1Y2YwNmEwMDRlMzM1MTcxZDAxMmRiYmEyNTQwOGQ2ODk1MWQwOGM1YmIzNzk2ZWFiZjJlN2M5NDQzNjdkODIxNDJmNTliOWY4N2QzMmU5Mzk0NGI2Y2UyMjUxOTc3MWYwZWQ4NjBjZTcwNzQ4YmVmMjM5MjA0MDQ0ODAwYTRlNjJkZGY4NDFiNmI4Y2Q3MTk4YmI5NDc5MjFhYmQxM2NjMzhjNDAwMzQ2ZWU0YWZmZjc5N2ZjZTkxY2RhMzYxMmIxYTJiY2Q4OTM4Nzg3NzJlMDZlZmQ2OGMzZjAxYjU4NzJiYmYyM2NhODg4N2M0Zjk3ZGM5MjQ3NWI2YTgyOTlkM2ZiNmIxZjZlMmI5MzVjMjUwYjY2OTQ0YjQxZTZiOWVjYWVhNjgxZGViODY4Y2ZmN2U3MTY3NGIyMzY5M2IxOTNmMTVkYzdiNmY2OTQ4ZjFkNjgzMDQyYTdmODI1MGRlMDY5OGM1OTQwYzg1NTNhY2E0YzBmMmM0MDA3OWY1Yzg1ODQ2M2IyZDdiYmNmODEwYjM1N2VlNDAwZTJhYmNhMTQ1MWJjM2Q2ODZmNTVmN2E0NjE1NGYwYjkzMjE1OTU4ODFhY2QzZDQ3NTU1YTQ1ZjhmMjM2ZDdiMTU0NmVjMDZiMThkMTlhNTFjNjRhY2YyOGQwMjlmMmEzY2FkYjAwMTdjZDU3ZDg4NTJjY2FlYTM5MjZkZmQxNWVkNzBhMThlNjM3M2VjNzdiMWZlNGM4MjkxMzEyNDQyYTcxOWE1NzRhY2M5NDYwYTA4ZGUyYzI3YzlhZTE2MzA2Zjk4NmM2MDdkNWFlNTY4OWQyMDNhOWU4NDQ0YjcxNTYwNTE4ZTRmM2I0MzZlZDAzMzk0M2I5NjJhY2QnLFxuICAgICAgICB5OiAnMDM4ZWM3ZDg2YzViNmU1ZDEyM2EzZDI2MDc2ZWU2ZmQ2ZDA1NWYzZmM3YzA1ZTFjOWMzMmQ0YWVkYjNlYjQwNDI1JyxcbiAgICAgICAgdjogJzAyMGVmMjZmM2U5NjAxOGRhMDZhOGYxMmVmZWNmMTAwMjE1ZWEzNTAxNzY0ODc5Y2MyY2FhMzA4YTlmZjE4MGQxZicsXG4gICAgICAgIHU6ICdmOGZkNTIwZWY5MWM1OGNkYmFiN2EyNzJkOTZlZmE5NGNkZTZmNTRiODJkNGUwZjUxOWY1YzYxNjBiMWJhYWExJyxcbiAgICAgICAgY2hhaW5jb2RlOiAnOGMzYzEwNGQyY2VkNjE3NTBkZDcyODcyM2ViODVmZjJlMGEwOWRmOGQ5ZGUxYjEzYWExZjkyZjIxZGEyYzg1NScsXG4gICAgICB9LFxuICAgICAgMzoge1xuICAgICAgICBpOiAzLFxuICAgICAgICBqOiAyLFxuICAgICAgICBuOiAnZTNjNjZmYjdlZDk1N2M1ODc4N2FhZTZkNjhlYWRmYjIxYzU4ZDY5ZmM4OTViN2FiYjc0Y2FmNTQ0YzhmZDA0NzA4MDIwMzYxMDVjZWYxNjg1ZDU4Y2Q4MzI0OThhNGIxMmNlOTI5NDQ1M2Q3NWNmMDZhMDA0ZTMzNTE3MWQwMTJkYmJhMjU0MDhkNjg5NTFkMDhjNWJiMzc5NmVhYmYyZTdjOTQ0MzY3ZDgyMTQyZjU5YjlmODdkMzJlOTM5NDRiNmNlMjI1MTk3NzFmMGVkODYwY2U3MDc0OGJlZjIzOTIwNDA0NDgwMGE0ZTYyZGRmODQxYjZiOGNkNzE5OGJiOTQ3OTIxYWJkMTNjYzM4YzQwMDM0NmVlNGFmZmY3OTdmY2U5MWNkYTM2MTJiMWEyYmNkODkzODc4NzcyZTA2ZWZkNjhjM2YwMWI1ODcyYmJmMjNjYTg4ODdjNGY5N2RjOTI0NzViNmE4Mjk5ZDNmYjZiMWY2ZTJiOTM1YzI1MGI2Njk0NGI0MWU2YjllY2FlYTY4MWRlYjg2OGNmZjdlNzE2NzRiMjM2OTNiMTkzZjE1ZGM3YjZmNjk0OGYxZDY4MzA0MmE3ZjgyNTBkZTA2OThjNTk0MGM4NTUzYWNhNGMwZjJjNDAwNzlmNWM4NTg0NjNiMmQ3YmJjZjgxMGIzNTdlZTQwMGUyYWJjYTE0NTFiYzNkNjg2ZjU1ZjdhNDYxNTRmMGI5MzIxNTk1ODgxYWNkM2Q0NzU1NWE0NWY4ZjIzNmQ3YjE1NDZlYzA2YjE4ZDE5YTUxYzY0YWNmMjhkMDI5ZjJhM2NhZGIwMDE3Y2Q1N2Q4ODUyY2NhZWEzOTI2ZGZkMTVlZDcwYTE4ZTYzNzNlYzc3YjFmZTRjODI5MTMxMjQ0MmE3MTlhNTc0YWNjOTQ2MGEwOGRlMmMyN2M5YWUxNjMwNmY5ODZjNjA3ZDVhZTU2ODlkMjAzYTllODQ0NGI3MTU2MDUxOGU0ZjNiNDM2ZWQwMzM5NDNiOTYyYWNkJyxcbiAgICAgICAgeTogJzAzOGVjN2Q4NmM1YjZlNWQxMjNhM2QyNjA3NmVlNmZkNmQwNTVmM2ZjN2MwNWUxYzljMzJkNGFlZGIzZWI0MDQyNScsXG4gICAgICAgIHY6ICcwMjBlZjI2ZjNlOTYwMThkYTA2YThmMTJlZmVjZjEwMDIxNWVhMzUwMTc2NDg3OWNjMmNhYTMwOGE5ZmYxODBkMWYnLFxuICAgICAgICB1OiAnZjcwZGU3YTAyMzdkNzZlNGY4YzM0YTEwMjI0MmIzMWVjYThiOTEyZmMzM2EwOTI2ZTcyZmU2ZDM4NWZiY2M2MCcsXG4gICAgICAgIGNoYWluY29kZTogJzhjM2MxMDRkMmNlZDYxNzUwZGQ3Mjg3MjNlYjg1ZmYyZTBhMDlkZjhkOWRlMWIxM2FhMWY5MmYyMWRhMmM4NTUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuXG4gIEM6IHtcbiAgICBwU2hhcmU6IHtcbiAgICAgIGk6IDMsXG4gICAgICB0OiAyLFxuICAgICAgYzogMyxcbiAgICAgIGw6ICdiNmRiYjE4NjQzNGNlMjEyNmVkOGUzMmQ2YmMyNzM2MDNkMDVlOTczZTljM2ZkMjk3OGNjOGUxZTcwYmNhMTRkNGM0ZmQyYzQ3MTNmNTAwMmY5NTg0NWZhZWY3NGM1ZjcxOThmYTdhYmZkOWVhMWZhYWM4YmUwYTRkZjZhYTI2MDQ4YzY3NDdhZmIzYTJlZTMxNTA0ZDliM2FhMGQ2YWFlMTk3MDdhMjQzMTI1MWY0MTlhYmY1ZDQyMDRkMmQ4OTFiN2VhMTdiNDg3ZWZjYTEyNTVjNzY4YjU1MzdiMzRlZmNiMjIzZTljYWM2NzkzMjlkYTlhN2U3ODQwMWQ5OTM1Y2I3ODQ5ZDNiNWYxNjNiMGYyYTkzNDRlMzlkODAwODYwY2E2ZDNjOWRlZTk0MWQ3ZjEzMzg5OTAxYzJmNjU5YWEzZTZjMzJmMDkzOTk5NDFiYjlkYjg2Yzg0M2QzMDY5Zjk5ZjEwYmFmMGM1M2NiY2M3OGRlYjk1MGE4MTVlMWJlM2VmMWU2MDVhYTYzZjgzMTY0YzNhNTA3OTlhYWNhMjIzNDFmNjA0ODQ1MTlmMTA5YmIwNzVjZGZiMDhlNzNjNTA1NmJmNDM4MzBlNTAwNzZhMjk3N2I5MDBiMmNiZGFkOTFjNmU3MGE1MzdkMzUzZDBjZTNjMzY5N2ZhMTBjNjQ5Mjg2ZjU2NWRmNjQ5MWJhZDk0MDdkOGRlZjQ2MGE3MjQ1YThmZWRiMjQ5ZmI2Yzg1YWExNDM4NGRiMmQ4YjI2MTE4NmUwZDI3N2RlMDViMTNlZTBhYjM1ZmM0ZmEwMzk2ZDE2ZTNmYmVhMWQ2Mzk1MjQ4MjJhN2NlODVlOWNiYjI5YzlkOGM1YzMwYjc4OTVhMDBiNWU4OTYxMWU0ODhjZjk4NDk4ZmMwMzU1ZWJkMmEyM2Y3NDQ5YTUzZjdiNDc3Y2VjZTAyODgxMmMyMGNhYmYyN2ZhODk3ZTU2OWUwY2MyYWVmZjg0YWY4ZjA1NzBkZWQ5ZjAzNzI4NGYyNjAnLFxuICAgICAgbTogJ2FkYjRmOThhMWRkMWJkN2Y2YmNkMzgzMGU0NGI1NTRiNGJhNDE3OWM1MmViNTJlNzBiYzk3MzYzOTZkMjBmYmE2YTY2MDQxYzAzZTE4OGU3NjYyY2JkY2RlZTc1MDM0MDk2ZmI1MTRkOTNkNzkwZTJmMDk0YzM5YzcwNDgyZmMzNmE1MTcxYTBlMTE0YTRiOWQ0NGIyYjMwYWFhNjRlODgxYjIwYTgzOWQ4NjNmZDYxZDgzNWVmYWYwNTVlOWQ5YjAwOGMwYjdjZTY4MGY1MWM5ZGVhMThmZjhkMmYxMmI4NDhmOTE2OTUyZDhiYjUyMGRiNjBlNTAyYzI0OTZiNmI2OGQ5MzZkYWFhNDc1ZTJhMjE4NDhjNTkxODYwNzhlZGMyZDgyMmRjZTA2YzM3NDgwOTIxMmEwY2EzZTQ4ZjRhZDM1MjE1N2ZiNWViNTJkZDViNmY2OGI5NTMwZDA5MmY1YjJkNGQ5OTBkMzU4YjgwYjFhNzIxYmU4NjcxMWU1MTUyNGY0ZTM4ZjljYmUzNGRjYWU3MTRmMzAzODY0MjA3NzU5Y2Q3ZjNmZTczNTA0Y2RiYWQ5OWUzODI5ZGUxZGI4NmJmYzI0YjFkYmJmM2NmOGU5MzU0ZjE4YzRjNTIxODFiZTgzZTU2OWE5NmY0YzZiMTNmN2IwMDM5MWEwMzIzM2VjYThiZTBmMjVjY2I1MGI2Yjk3MDJhM2Y3YTAzNWJlYjdlZmUxOGYxMGQ2MDBiODhmNWE1YmFjY2ZkODIyNzg0NDA0NDgzYzUxYTg2N2JkYjJjNzBmMmZlOGVkMmFmZTBhMDFiZGIzZGQzYjBmYzY2MTI1ZjY2ZTQ2MjA5NTUwYTdhMDlkM2YxN2Y3ZmUzODM5YmIxMmQ4ODkwYWQ0MzYwMTJlZDFkMmU2NTQ3YzA0OGEyNTNlOTVhYTAxYTYxOGM2MGU1ODI4ZmUzMjI2MmZkYzAzYWM0ZGM2MDA3ODBhOTAzMjNjMmY2MWVkZjNiMGY1MzFlMjk0ZmE0M2I3ZicsXG4gICAgICBuOiAnYjZkYmIxODY0MzRjZTIxMjZlZDhlMzJkNmJjMjczNjAzZDA1ZTk3M2U5YzNmZDI5NzhjYzhlMWU3MGJjYTE0ZDRjNGZkMmM0NzEzZjUwMDJmOTU4NDVmYWVmNzRjNWY3MTk4ZmE3YWJmZDllYTFmYWFjOGJlMGE0ZGY2YWEyNjA0OGM2NzQ3YWZiM2EyZWUzMTUwNGQ5YjNhYTBkNmFhZTE5NzA3YTI0MzEyNTFmNDE5YWJmNWQ0MjA0ZDJkODkxYjdlYTE3YjQ4N2VmY2ExMjU1Yzc2OGI1NTM3YjM0ZWZjYjIyM2U5Y2FjNjc5MzI5ZGE5YTdlNzg0MDFkOTkzNWNiNzg0OWQzYjVmMTYzYjBmMmE5MzQ0ZTM5ZDgwMDg2MGNhNmQzYzlkZWU5NDFkN2YxMzM4OTkwMWMyZjY1OWFhM2U2YzMyZjA5Mzk5OTQxYmI5ZGI4NmM4NDNkMzA2OWY5OWYxMGJhZjBjNTNjYmNjNzhkZWI5NTBhODE1ZTFkY2U3MWRiNDNlYjgxZWE3NDAzMzljMzYwNWFhYjhlYTVkMGIyNTBkYzcxMmEwZDFjMDgwN2E5NzA2YTY0Y2I2NmJiMzM0Zjg4NjZhYzgzNjk2YTBlMDlmZjhmMDYxMDNkN2Q0YTVmNDM5Y2I3ZGIyOTQ5OTQxNGE2NjkzMzEzY2YzOWE5MGE3NmRlY2E2Y2Y4YTEzYWNjOWU2MjViNGIzYWFkNGViYzdlYTc2ZWUzMjJkZjc2OTgxMjg1MTMwOTUxNDgwOTU2MDkyNTUxNGIzNmVhNjNlMmUxMDgxMGYyNzA0MTdiNjdjNTRkOWNmZmFiMGRjZjlhNWZhNjg0NWJiYTUwNjYxNjVhYjlkZDc1N2RiZTRmZjJhNWM1MzFlNWM2ZTU3NTdlMTk1ZjE1Y2I2Yjk3MDgxZmQ4ZTk3OGRlODk2NDQ5ODMwYzE2NmUzMjg5ODllMzk5NDJkNjA4YmI1YzRhMDAxNmVjNjhkMzkzNDY5ZGIwNTcxMjBkZjdiMGM1JyxcbiAgICAgIHk6ICcwMmQ0ZjEwMTc5MTI5NTExNjNhMzljMDY1NTg1YWRjMzUyOGZiYjg3NDc0Yjk0M2E5NDEwY2E5NmRiYzlmNTYxM2MnLFxuICAgICAgdTogJzRkNjUxYzdlMjc0NGY4Y2ZiMWQ3OGZlODRhZDZhMTg2NDY1OTk3MDA3ZTNiN2Y0ZGYxMzAxMDJkNzJjNDYzOGEnLFxuICAgICAgdXU6ICc0MzMxMjUxNjY3MjYzMTI4NzIxNDIxNTY4Mzk2NDcwOTkzMDQ2NjIwMjExMzU2NzQ2NDU4MzY3MzEwODAyNzEwMTk5NTc1NzU3NDk5JyxcbiAgICAgIGNoYWluY29kZTogJzQ0MGU5YzU1MGQxMTU0ZGY3MWVhM2M1YWYxZTVhZmZiOWU1N2E3MmZiYjYzZTMyYjhlODBjM2FiMzk1ZmRlZWYnLFxuICAgIH0sXG4gICAgblNoYXJlczoge1xuICAgICAgMToge1xuICAgICAgICBpOiAxLFxuICAgICAgICBqOiAzLFxuICAgICAgICBuOiAnYjZkYmIxODY0MzRjZTIxMjZlZDhlMzJkNmJjMjczNjAzZDA1ZTk3M2U5YzNmZDI5NzhjYzhlMWU3MGJjYTE0ZDRjNGZkMmM0NzEzZjUwMDJmOTU4NDVmYWVmNzRjNWY3MTk4ZmE3YWJmZDllYTFmYWFjOGJlMGE0ZGY2YWEyNjA0OGM2NzQ3YWZiM2EyZWUzMTUwNGQ5YjNhYTBkNmFhZTE5NzA3YTI0MzEyNTFmNDE5YWJmNWQ0MjA0ZDJkODkxYjdlYTE3YjQ4N2VmY2ExMjU1Yzc2OGI1NTM3YjM0ZWZjYjIyM2U5Y2FjNjc5MzI5ZGE5YTdlNzg0MDFkOTkzNWNiNzg0OWQzYjVmMTYzYjBmMmE5MzQ0ZTM5ZDgwMDg2MGNhNmQzYzlkZWU5NDFkN2YxMzM4OTkwMWMyZjY1OWFhM2U2YzMyZjA5Mzk5OTQxYmI5ZGI4NmM4NDNkMzA2OWY5OWYxMGJhZjBjNTNjYmNjNzhkZWI5NTBhODE1ZTFkY2U3MWRiNDNlYjgxZWE3NDAzMzljMzYwNWFhYjhlYTVkMGIyNTBkYzcxMmEwZDFjMDgwN2E5NzA2YTY0Y2I2NmJiMzM0Zjg4NjZhYzgzNjk2YTBlMDlmZjhmMDYxMDNkN2Q0YTVmNDM5Y2I3ZGIyOTQ5OTQxNGE2NjkzMzEzY2YzOWE5MGE3NmRlY2E2Y2Y4YTEzYWNjOWU2MjViNGIzYWFkNGViYzdlYTc2ZWUzMjJkZjc2OTgxMjg1MTMwOTUxNDgwOTU2MDkyNTUxNGIzNmVhNjNlMmUxMDgxMGYyNzA0MTdiNjdjNTRkOWNmZmFiMGRjZjlhNWZhNjg0NWJiYTUwNjYxNjVhYjlkZDc1N2RiZTRmZjJhNWM1MzFlNWM2ZTU3NTdlMTk1ZjE1Y2I2Yjk3MDgxZmQ4ZTk3OGRlODk2NDQ5ODMwYzE2NmUzMjg5ODllMzk5NDJkNjA4YmI1YzRhMDAxNmVjNjhkMzkzNDY5ZGIwNTcxMjBkZjdiMGM1JyxcbiAgICAgICAgeTogJzAyZDRmMTAxNzkxMjk1MTE2M2EzOWMwNjU1ODVhZGMzNTI4ZmJiODc0NzRiOTQzYTk0MTBjYTk2ZGJjOWY1NjEzYycsXG4gICAgICAgIHY6ICcwMjdkM2YyZTIzY2Y3Y2NjZTViZDI4NzZhOGJlNWU1MmU3OGVjZTg2YmY3MjBlODgyN2U5OGNmMjQ2MWI5YjNlOTknLFxuICAgICAgICB1OiAnNzU4M2Y4YjJlMTYwYmQxNjk2Y2Q3MzU2ZDM5MTkyMmEzNTkyN2EwYjNjZTUwNTFiODRiNjU1MTNhZTJiNjM2YicsXG4gICAgICAgIGNoYWluY29kZTogJzQ0MGU5YzU1MGQxMTU0ZGY3MWVhM2M1YWYxZTVhZmZiOWU1N2E3MmZiYjYzZTMyYjhlODBjM2FiMzk1ZmRlZWYnLFxuICAgICAgfSxcbiAgICAgIDI6IHtcbiAgICAgICAgaTogMixcbiAgICAgICAgajogMyxcbiAgICAgICAgbjogJ2I2ZGJiMTg2NDM0Y2UyMTI2ZWQ4ZTMyZDZiYzI3MzYwM2QwNWU5NzNlOWMzZmQyOTc4Y2M4ZTFlNzBiY2ExNGQ0YzRmZDJjNDcxM2Y1MDAyZjk1ODQ1ZmFlZjc0YzVmNzE5OGZhN2FiZmQ5ZWExZmFhYzhiZTBhNGRmNmFhMjYwNDhjNjc0N2FmYjNhMmVlMzE1MDRkOWIzYWEwZDZhYWUxOTcwN2EyNDMxMjUxZjQxOWFiZjVkNDIwNGQyZDg5MWI3ZWExN2I0ODdlZmNhMTI1NWM3NjhiNTUzN2IzNGVmY2IyMjNlOWNhYzY3OTMyOWRhOWE3ZTc4NDAxZDk5MzVjYjc4NDlkM2I1ZjE2M2IwZjJhOTM0NGUzOWQ4MDA4NjBjYTZkM2M5ZGVlOTQxZDdmMTMzODk5MDFjMmY2NTlhYTNlNmMzMmYwOTM5OTk0MWJiOWRiODZjODQzZDMwNjlmOTlmMTBiYWYwYzUzY2JjYzc4ZGViOTUwYTgxNWUxZGNlNzFkYjQzZWI4MWVhNzQwMzM5YzM2MDVhYWI4ZWE1ZDBiMjUwZGM3MTJhMGQxYzA4MDdhOTcwNmE2NGNiNjZiYjMzNGY4ODY2YWM4MzY5NmEwZTA5ZmY4ZjA2MTAzZDdkNGE1ZjQzOWNiN2RiMjk0OTk0MTRhNjY5MzMxM2NmMzlhOTBhNzZkZWNhNmNmOGExM2FjYzllNjI1YjRiM2FhZDRlYmM3ZWE3NmVlMzIyZGY3Njk4MTI4NTEzMDk1MTQ4MDk1NjA5MjU1MTRiMzZlYTYzZTJlMTA4MTBmMjcwNDE3YjY3YzU0ZDljZmZhYjBkY2Y5YTVmYTY4NDViYmE1MDY2MTY1YWI5ZGQ3NTdkYmU0ZmYyYTVjNTMxZTVjNmU1NzU3ZTE5NWYxNWNiNmI5NzA4MWZkOGU5NzhkZTg5NjQ0OTgzMGMxNjZlMzI4OTg5ZTM5OTQyZDYwOGJiNWM0YTAwMTZlYzY4ZDM5MzQ2OWRiMDU3MTIwZGY3YjBjNScsXG4gICAgICAgIHk6ICcwMmQ0ZjEwMTc5MTI5NTExNjNhMzljMDY1NTg1YWRjMzUyOGZiYjg3NDc0Yjk0M2E5NDEwY2E5NmRiYzlmNTYxM2MnLFxuICAgICAgICB2OiAnMDI3ZDNmMmUyM2NmN2NjY2U1YmQyODc2YThiZTVlNTJlNzhlY2U4NmJmNzIwZTg4MjdlOThjZjI0NjFiOWIzZTk5JyxcbiAgICAgICAgdTogJ2UxNzQ4YTk4ODQ1MmRhZjMyNDUyODE5ZjhmMzQxOWQ3OWI0ZDc2ZjkzNTM0OTI1MjlhZGM2MWU2Zjg5MzA0MWInLFxuICAgICAgICBjaGFpbmNvZGU6ICc0NDBlOWM1NTBkMTE1NGRmNzFlYTNjNWFmMWU1YWZmYjllNTdhNzJmYmI2M2UzMmI4ZTgwYzNhYjM5NWZkZWVmJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export declare const TEST_ACCOUNT: {
2
+ seed: string;
3
+ ethPrivateKey: string;
4
+ ethCompressedPublicKey: string;
5
+ ethUncompressedPublicKey: string;
6
+ ethExtendedPublicKey: string;
7
+ ethExtendedPrivateKey: string;
8
+ ethAddress: string;
9
+ };
10
+ //# sourceMappingURL=bsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsc.d.ts","sourceRoot":"","sources":["../../../test/resources/bsc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;CAWxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEST_ACCOUNT = void 0;
4
+ exports.TEST_ACCOUNT = {
5
+ seed: '4b3b89f6ca897cb729d2146913877f71',
6
+ ethPrivateKey: 'ABAF3CD623F5353A143AB5E2EF47CEBD94877460D3C6F5A273313DE98F96DBBC',
7
+ ethCompressedPublicKey: '023BE650E2C11F36D201C9173BE37BC028AF495CF78CA05F78FEE192F5D339A9E2',
8
+ ethUncompressedPublicKey: '043BE650E2C11F36D201C9173BE37BC028AF495CF78CA05F78FEE192F5D339A9E227874E8075353564D83047566EEA6CF5A7313816AF004DDA8CA529DE8C94BC6A',
9
+ ethExtendedPublicKey: 'xpub661MyMwAqRbcEqNh81TVVceUDNF6yg7F63H9j3xMQj8GDdDVRLCFoPughSdgGs4X1n89iPXFKPMy3f45Y7E63kXGAZKuZ1fhLqsKtkoB3yZ',
10
+ ethExtendedPrivateKey: 'xprv9s21ZrQH143K2MJE1yvV8UhjfLQcaDPPipMYvfYjrPbHLptLsnt1FbbCrCT9E5LCmRrS593YZ1CKgf3rf3C2hYTynZN5au3VvBvLcWh8sV2',
11
+ ethAddress: '0x1374a2046661f914d1687d85dbbceb9ac7910a29',
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnNjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvYnNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsYUFBYSxFQUFFLGtFQUFrRTtJQUNqRixzQkFBc0IsRUFBRSxvRUFBb0U7SUFDNUYsd0JBQXdCLEVBQ3RCLG9JQUFvSTtJQUN0SSxvQkFBb0IsRUFDbEIsaUhBQWlIO0lBQ25ILHFCQUFxQixFQUNuQixpSEFBaUg7SUFDbkgsVUFBVSxFQUFFLDRDQUE0QztDQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRFU1RfQUNDT1VOVCA9IHtcbiAgc2VlZDogJzRiM2I4OWY2Y2E4OTdjYjcyOWQyMTQ2OTEzODc3ZjcxJyxcbiAgZXRoUHJpdmF0ZUtleTogJ0FCQUYzQ0Q2MjNGNTM1M0ExNDNBQjVFMkVGNDdDRUJEOTQ4Nzc0NjBEM0M2RjVBMjczMzEzREU5OEY5NkRCQkMnLFxuICBldGhDb21wcmVzc2VkUHVibGljS2V5OiAnMDIzQkU2NTBFMkMxMUYzNkQyMDFDOTE3M0JFMzdCQzAyOEFGNDk1Q0Y3OENBMDVGNzhGRUUxOTJGNUQzMzlBOUUyJyxcbiAgZXRoVW5jb21wcmVzc2VkUHVibGljS2V5OlxuICAgICcwNDNCRTY1MEUyQzExRjM2RDIwMUM5MTczQkUzN0JDMDI4QUY0OTVDRjc4Q0EwNUY3OEZFRTE5MkY1RDMzOUE5RTIyNzg3NEU4MDc1MzUzNTY0RDgzMDQ3NTY2RUVBNkNGNUE3MzEzODE2QUYwMDREREE4Q0E1MjlERThDOTRCQzZBJyxcbiAgZXRoRXh0ZW5kZWRQdWJsaWNLZXk6XG4gICAgJ3hwdWI2NjFNeU13QXFSYmNFcU5oODFUVlZjZVVETkY2eWc3RjYzSDlqM3hNUWo4R0RkRFZSTENGb1B1Z2hTZGdHczRYMW44OWlQWEZLUE15M2Y0NVk3RTYza1hHQVpLdVoxZmhMcXNLdGtvQjN5WicsXG4gIGV0aEV4dGVuZGVkUHJpdmF0ZUtleTpcbiAgICAneHBydjlzMjFaclFIMTQzSzJNSkUxeXZWOFVoamZMUWNhRFBQaXBNWXZmWWpyUGJITHB0THNudDFGYmJDckNUOUU1TENtUnJTNTkzWVoxQ0tnZjNyZjNDMmhZVHluWk41YXUzVnZCdkxjV2g4c1YyJyxcbiAgZXRoQWRkcmVzczogJzB4MTM3NGEyMDQ2NjYxZjkxNGQxNjg3ZDg1ZGJiY2ViOWFjNzkxMGEyOScsXG59O1xuIl19
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=bsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsc.d.ts","sourceRoot":"","sources":["../../../test/unit/bsc.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("should");
4
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
6
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
7
+ const tx_1 = require("@ethereumjs/tx");
8
+ const rlp_1 = require("@ethereumjs/rlp");
9
+ const ethereumjs_util_1 = require("ethereumjs-util");
10
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
11
+ const index_1 = require("../../src/index");
12
+ const getBuilder_1 = require("./getBuilder");
13
+ /** Encode ERC-20 transfer(address,uint256) calldata without ethereumjs-abi. */
14
+ function encodeErc20Transfer(to, amount) {
15
+ const address = to.toLowerCase().replace(/^0x/, '').padStart(64, '0');
16
+ const value = BigInt(amount).toString(16).padStart(64, '0');
17
+ return `0xa9059cbb${address}${value}`;
18
+ }
19
+ const bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
20
+ describe('Native BNB', function () {
21
+ before(function () {
22
+ bitgo.safeRegister('bsc', index_1.Bsc.createInstance);
23
+ bitgo.safeRegister('tbsc', index_1.Tbsc.createInstance);
24
+ bitgo.initializeTestVars();
25
+ });
26
+ describe('Basic Coin Info', function () {
27
+ it('should return the right info for bsc', function () {
28
+ const bsc = bitgo.coin('bsc');
29
+ bsc.should.be.an.instanceof(index_1.Bsc);
30
+ bsc.getChain().should.equal('bsc');
31
+ bsc.getFamily().should.equal('bsc');
32
+ bsc.getFullName().should.equal('Native BNB');
33
+ bsc.getBaseFactor().should.equal(1e18);
34
+ bsc.supportsTss().should.equal(true);
35
+ bsc.allowsAccountConsolidations().should.equal(true);
36
+ });
37
+ it('should return the right info for tbsc', function () {
38
+ const tbsc = bitgo.coin('tbsc');
39
+ tbsc.should.be.an.instanceof(index_1.Tbsc);
40
+ tbsc.getChain().should.equal('tbsc');
41
+ tbsc.getFamily().should.equal('bsc');
42
+ tbsc.getFullName().should.equal('Testnet Native BNB');
43
+ tbsc.getBaseFactor().should.equal(1e18);
44
+ tbsc.supportsTss().should.equal(true);
45
+ tbsc.allowsAccountConsolidations().should.equal(true);
46
+ });
47
+ });
48
+ describe('verifyTssTransaction', function () {
49
+ const recipientAddress = '0x174cfd823af8ce27ed0afee3fcf3c3ba259116be';
50
+ const wrongAddress = '0x7e85bdc27c050e3905ebf4b8e634d9ad6edd0de6';
51
+ const tokenContractAddress = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
52
+ const transferAmount = '1000000000000000000';
53
+ it('should accept a native BNB transfer where txHex matches declared recipient', async function () {
54
+ const coin = bitgo.coin('tbsc');
55
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
56
+ txBuilder.type(sdk_core_1.TransactionType.SingleSigSend);
57
+ txBuilder.fee({ fee: '10', gasLimit: '21000' });
58
+ txBuilder.counter(1);
59
+ txBuilder.contract(recipientAddress);
60
+ txBuilder.value(transferAmount);
61
+ const tx = await txBuilder.build();
62
+ const txHex = tx.toBroadcastFormat();
63
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
64
+ const result = await coin.verifyTssTransaction({
65
+ txParams: {
66
+ type: 'transfer',
67
+ recipients: [{ address: recipientAddress, amount: transferAmount }],
68
+ },
69
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
70
+ wallet,
71
+ });
72
+ result.should.equal(true);
73
+ });
74
+ it('should reject a native BNB transfer when txHex recipient does not match declared recipient', async function () {
75
+ const coin = bitgo.coin('tbsc');
76
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
77
+ txBuilder.type(sdk_core_1.TransactionType.SingleSigSend);
78
+ txBuilder.fee({ fee: '10', gasLimit: '21000' });
79
+ txBuilder.counter(1);
80
+ txBuilder.contract(wrongAddress);
81
+ txBuilder.value(transferAmount);
82
+ const tx = await txBuilder.build();
83
+ const txHex = tx.toBroadcastFormat();
84
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
85
+ await coin
86
+ .verifyTssTransaction({
87
+ txParams: {
88
+ type: 'transfer',
89
+ recipients: [{ address: recipientAddress, amount: transferAmount }],
90
+ },
91
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
92
+ wallet,
93
+ })
94
+ .should.be.rejectedWith('destination address does not match with the recipient address');
95
+ });
96
+ it('should accept a BEP-20 token transfer where calldata matches declared recipient', async function () {
97
+ const coin = bitgo.coin('tbsc');
98
+ const erc20TransferData = encodeErc20Transfer(recipientAddress, '10000000');
99
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
100
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
101
+ txBuilder.fee({ fee: '10', gasLimit: '60000' });
102
+ txBuilder.counter(1);
103
+ txBuilder.contract(tokenContractAddress);
104
+ txBuilder.data(erc20TransferData);
105
+ const tx = await txBuilder.build();
106
+ const txHex = tx.toBroadcastFormat();
107
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
108
+ const result = await coin.verifyTssTransaction({
109
+ txParams: {
110
+ type: 'transfer',
111
+ recipients: [{ address: recipientAddress, amount: '10000000' }],
112
+ },
113
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
114
+ wallet,
115
+ });
116
+ result.should.equal(true);
117
+ });
118
+ it('should reject a BEP-20 token transfer when calldata recipient does not match declared recipient', async function () {
119
+ const coin = bitgo.coin('tbsc');
120
+ const erc20TransferData = encodeErc20Transfer(wrongAddress, '10000000');
121
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
122
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
123
+ txBuilder.fee({ fee: '10', gasLimit: '60000' });
124
+ txBuilder.counter(1);
125
+ txBuilder.contract(tokenContractAddress);
126
+ txBuilder.data(erc20TransferData);
127
+ const tx = await txBuilder.build();
128
+ const txHex = tx.toBroadcastFormat();
129
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
130
+ await coin
131
+ .verifyTssTransaction({
132
+ txParams: {
133
+ type: 'transfer',
134
+ recipients: [{ address: recipientAddress, amount: '10000000' }],
135
+ },
136
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
137
+ wallet,
138
+ })
139
+ .should.be.rejectedWith('destination address does not match with the recipient address');
140
+ });
141
+ it('should accept a BEP-20 token transfer using WalletConnect recipients[0].data flow', async function () {
142
+ const coin = bitgo.coin('tbsc');
143
+ // txHex sends to recipientAddress; recipients[0].data encodes the same intent
144
+ const erc20TransferData = encodeErc20Transfer(recipientAddress, '10000000');
145
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
146
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
147
+ txBuilder.fee({ fee: '10', gasLimit: '60000' });
148
+ txBuilder.counter(1);
149
+ txBuilder.contract(tokenContractAddress);
150
+ txBuilder.data(erc20TransferData);
151
+ const tx = await txBuilder.build();
152
+ const txHex = tx.toBroadcastFormat();
153
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
154
+ const result = await coin.verifyTssTransaction({
155
+ txParams: {
156
+ type: 'transfer',
157
+ // WalletConnect passes the intended calldata in recipients[0].data
158
+ recipients: [{ address: tokenContractAddress, amount: '0', data: erc20TransferData }],
159
+ },
160
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
161
+ wallet,
162
+ });
163
+ result.should.equal(true);
164
+ });
165
+ it('should reject a BEP-20 token transfer using WalletConnect flow when calldata recipient is tampered', async function () {
166
+ const coin = bitgo.coin('tbsc');
167
+ // txHex sends to wrongAddress (tampered)
168
+ const tamperedData = encodeErc20Transfer(wrongAddress, '10000000');
169
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
170
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
171
+ txBuilder.fee({ fee: '10', gasLimit: '60000' });
172
+ txBuilder.counter(1);
173
+ txBuilder.contract(tokenContractAddress);
174
+ txBuilder.data(tamperedData);
175
+ const tx = await txBuilder.build();
176
+ const txHex = tx.toBroadcastFormat();
177
+ // recipients[0].data declares the correct recipient (recipientAddress)
178
+ const correctData = encodeErc20Transfer(recipientAddress, '10000000');
179
+ const wallet = new sdk_core_1.Wallet(bitgo, coin, { coinSpecific: { baseAddress: recipientAddress } });
180
+ await coin
181
+ .verifyTssTransaction({
182
+ txParams: {
183
+ type: 'transfer',
184
+ recipients: [{ address: tokenContractAddress, amount: '0', data: correctData }],
185
+ },
186
+ txPrebuild: { txHex, coin: 'tbsc', walletId: 'fakeWalletId' },
187
+ wallet,
188
+ })
189
+ .should.be.rejectedWith('destination address does not match with the recipient address');
190
+ });
191
+ describe('assertSignableConsistency (Gap 2 / WCI-1398)', function () {
192
+ function stripHex(hex) {
193
+ return hex.startsWith('0x') ? hex.slice(2) : hex;
194
+ }
195
+ async function buildSerializedTxHex(address) {
196
+ const txBuilder = (0, getBuilder_1.getBuilder)('tbsc');
197
+ txBuilder.type(sdk_core_1.TransactionType.SingleSigSend);
198
+ txBuilder.fee({ fee: '10', gasLimit: '21000' });
199
+ txBuilder.counter(1);
200
+ txBuilder.contract(address);
201
+ txBuilder.value(transferAmount);
202
+ const tx = await txBuilder.build();
203
+ return stripHex(tx.toBroadcastFormat());
204
+ }
205
+ function deriveSignableHex(serializedTxHex, coin) {
206
+ const common = abstract_eth_1.AbstractEthLikeNewCoins.getCustomChainCommon(coin.getChainId());
207
+ const legacyTx = tx_1.Transaction.fromSerializedTx(Buffer.from(serializedTxHex, 'hex'), { common });
208
+ return Buffer.from(rlp_1.RLP.encode((0, ethereumjs_util_1.bufArrToArr)(legacyTx.getMessageToSign(false)))).toString('hex');
209
+ }
210
+ it('should pass when signableHex is consistent with serializedTxHex', async function () {
211
+ const coin = bitgo.coin('tbsc');
212
+ const serializedTxHex = await buildSerializedTxHex(recipientAddress);
213
+ const signableHex = deriveSignableHex(serializedTxHex, coin);
214
+ coin.assertSignableConsistency(serializedTxHex, signableHex);
215
+ });
216
+ it('should throw when signableHex does not match serializedTxHex (Gap 2 attack)', async function () {
217
+ const coin = bitgo.coin('tbsc');
218
+ const benignSerializedTxHex = await buildSerializedTxHex(recipientAddress);
219
+ const maliciousSerializedTxHex = await buildSerializedTxHex(wrongAddress);
220
+ const tamperedSignableHex = deriveSignableHex(maliciousSerializedTxHex, coin);
221
+ (() => coin.assertSignableConsistency(benignSerializedTxHex, tamperedSignableHex)).should.throw('signableHex is inconsistent with serializedTxHex: possible server tampering');
222
+ });
223
+ it('should reject an EIP-1559 typed tx since BSC is pinned to the petersburg hardfork', function () {
224
+ const coin = bitgo.coin('tbsc');
225
+ const typedTx = tx_1.FeeMarketEIP1559Transaction.fromTxData({
226
+ nonce: 1,
227
+ maxFeePerGas: 10,
228
+ maxPriorityFeePerGas: 1,
229
+ gasLimit: 21000,
230
+ to: recipientAddress,
231
+ value: 1000,
232
+ }, { common: abstract_eth_1.AbstractEthLikeNewCoins.getCustomChainCommon(coin.getChainId()) });
233
+ (() => coin.assertSignableConsistency(stripHex(typedTx.serialize().toString('hex')), '')).should.throw(/EIP-1559 not enabled on Common/);
234
+ });
235
+ });
236
+ });
237
+ });
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnNjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2JzYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUVoQixtREFBK0Q7QUFDL0QsaURBQStDO0FBQy9DLG1EQUErRDtBQUMvRCx1Q0FBK0Y7QUFDL0YseUNBQXNDO0FBQ3RDLHFEQUE4QztBQUU5QywyREFBbUU7QUFDbkUsMkNBQTRDO0FBRTVDLDZDQUEwQztBQUUxQywrRUFBK0U7QUFDL0UsU0FBUyxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsTUFBYztJQUNyRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1RCxPQUFPLGFBQWEsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLEtBQUssR0FBaUIsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRTFFLFFBQVEsQ0FBQyxZQUFZLEVBQUU7SUFDckIsTUFBTSxDQUFDO1FBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsV0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtRQUMx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RSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDN0YsNkVBQTZFLENBQzlFLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxtRkFBbUYsRUFBRTtnQkFDdEYsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVMsQ0FBQztnQkFDeEMsTUFBTSxPQUFPLEdBQUcsZ0NBQTJCLENBQUMsVUFBVSxDQUNwRDtvQkFDRSxLQUFLLEVBQUUsQ0FBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsb0JBQW9CLEVBQUUsQ0FBQztvQkFDdkIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsRUFBRSxFQUFFLGdCQUFnQjtvQkFDcEIsS0FBSyxFQUFFLElBQUk7aUJBQ1osRUFDRCxFQUFFLE1BQU0sRUFBRSxzQ0FBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUM1RSxDQUFDO2dCQUNGLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNwRyxnQ0FBZ0MsQ0FDakMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuXG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIFdhbGxldCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEZlZU1hcmtldEVJUDE1NTlUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb24gYXMgTGVnYWN5VHJhbnNhY3Rpb24gfSBmcm9tICdAZXRoZXJldW1qcy90eCc7XG5pbXBvcnQgeyBSTFAgfSBmcm9tICdAZXRoZXJldW1qcy9ybHAnO1xuaW1wb3J0IHsgYnVmQXJyVG9BcnIgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBCc2MsIFRic2MgfSBmcm9tICcuLi8uLi9zcmMvaW5kZXgnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vc3JjL2xpYic7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi9nZXRCdWlsZGVyJztcblxuLyoqIEVuY29kZSBFUkMtMjAgdHJhbnNmZXIoYWRkcmVzcyx1aW50MjU2KSBjYWxsZGF0YSB3aXRob3V0IGV0aGVyZXVtanMtYWJpLiAqL1xuZnVuY3Rpb24gZW5jb2RlRXJjMjBUcmFuc2Zlcih0bzogc3RyaW5nLCBhbW91bnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGFkZHJlc3MgPSB0by50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL14weC8sICcnKS5wYWRTdGFydCg2NCwgJzAnKTtcbiAgY29uc3QgdmFsdWUgPSBCaWdJbnQoYW1vdW50KS50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyk7XG4gIHJldHVybiBgMHhhOTA1OWNiYiR7YWRkcmVzc30ke3ZhbHVlfWA7XG59XG5cbmNvbnN0IGJpdGdvOiBUZXN0Qml0R29BUEkgPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG5cbmRlc2NyaWJlKCdOYXRpdmUgQk5CJywgZnVuY3Rpb24gKCkge1xuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcignYnNjJywgQnNjLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3Ric2MnLCBUYnNjLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0Jhc2ljIENvaW4gSW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcmlnaHQgaW5mbyBmb3IgYnNjJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYnNjID0gYml0Z28uY29pbignYnNjJyk7XG5cbiAgICAgIGJzYy5zaG91bGQuYmUuYW4uaW5zdGFuY2VvZihCc2MpO1xuICAgICAgYnNjLmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCdic2MnKTtcbiAgICAgIGJzYy5nZXRGYW1pbHkoKS5zaG91bGQuZXF1YWwoJ2JzYycpO1xuICAgICAgYnNjLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdOYXRpdmUgQk5CJyk7XG4gICAgICBic2MuZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICAgIGJzYy5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIGJzYy5hbGxvd3NBY2NvdW50Q29uc29saWRhdGlvbnMoKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcmlnaHQgaW5mbyBmb3IgdGJzYycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHRic2MgPSBiaXRnby5jb2luKCd0YnNjJyk7XG5cbiAgICAgIHRic2Muc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGJzYyk7XG4gICAgICB0YnNjLmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCd0YnNjJyk7XG4gICAgICB0YnNjLmdldEZhbWlseSgpLnNob3VsZC5lcXVhbCgnYnNjJyk7XG4gICAgICB0YnNjLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdUZXN0bmV0IE5hdGl2ZSBCTkInKTtcbiAgICAgIHRic2MuZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICAgIHRic2Muc3VwcG9ydHNUc3MoKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICB0YnNjLmFsbG93c0FjY291bnRDb25zb2xpZGF0aW9ucygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3ZlcmlmeVRzc1RyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlY2lwaWVudEFkZHJlc3MgPSAnMHgxNzRjZmQ4MjNhZjhjZTI3ZWQwYWZlZTNmY2YzYzNiYTI1OTExNmJlJztcbiAgICBjb25zdCB3cm9uZ0FkZHJlc3MgPSAnMHg3ZTg1YmRjMjdjMDUwZTM5MDVlYmY0YjhlNjM0ZDlhZDZlZGQwZGU2JztcbiAgICBjb25zdCB0b2tlbkNvbnRyYWN0QWRkcmVzcyA9ICcweGEwYjg2OTkxYzYyMThiMzZjMWQxOWQ0YTJlOWViMGNlMzYwNmViNDgnO1xuICAgIGNvbnN0IHRyYW5zZmVyQW1vdW50ID0gJzEwMDAwMDAwMDAwMDAwMDAwMDAnO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgYSBuYXRpdmUgQk5CIHRyYW5zZmVyIHdoZXJlIHR4SGV4IG1hdGNoZXMgZGVjbGFyZWQgcmVjaXBpZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuXG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YnNjJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNpbmdsZVNpZ1NlbmQpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7IGZlZTogJzEwJywgZ2FzTGltaXQ6ICcyMTAwMCcgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgIHR4QnVpbGRlci5jb250cmFjdChyZWNpcGllbnRBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci52YWx1ZSh0cmFuc2ZlckFtb3VudCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGJpdGdvLCBjb2luLCB7IGNvaW5TcGVjaWZpYzogeyBiYXNlQWRkcmVzczogcmVjaXBpZW50QWRkcmVzcyB9IH0pO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb2luLnZlcmlmeVRzc1RyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgICB0eXBlOiAndHJhbnNmZXInLFxuICAgICAgICAgIHJlY2lwaWVudHM6IFt7IGFkZHJlc3M6IHJlY2lwaWVudEFkZHJlc3MsIGFtb3VudDogdHJhbnNmZXJBbW91bnQgfV0sXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4LCBjb2luOiAndGJzYycsIHdhbGxldElkOiAnZmFrZVdhbGxldElkJyB9IGFzIGFueSxcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYSBuYXRpdmUgQk5CIHRyYW5zZmVyIHdoZW4gdHhIZXggcmVjaXBpZW50IGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHJlY2lwaWVudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNvaW4gPSBiaXRnby5jb2luKCd0YnNjJykgYXMgVGJzYztcblxuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGJzYycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcsIGdhc0xpbWl0OiAnMjEwMDAnIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3Qod3JvbmdBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci52YWx1ZSh0cmFuc2ZlckFtb3VudCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGJpdGdvLCBjb2luLCB7IGNvaW5TcGVjaWZpYzogeyBiYXNlQWRkcmVzczogcmVjaXBpZW50QWRkcmVzcyB9IH0pO1xuXG4gICAgICBhd2FpdCBjb2luXG4gICAgICAgIC52ZXJpZnlUc3NUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICd0cmFuc2ZlcicsXG4gICAgICAgICAgICByZWNpcGllbnRzOiBbeyBhZGRyZXNzOiByZWNpcGllbnRBZGRyZXNzLCBhbW91bnQ6IHRyYW5zZmVyQW1vdW50IH1dLFxuICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXgsIGNvaW46ICd0YnNjJywgd2FsbGV0SWQ6ICdmYWtlV2FsbGV0SWQnIH0gYXMgYW55LFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ2Rlc3RpbmF0aW9uIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggd2l0aCB0aGUgcmVjaXBpZW50IGFkZHJlc3MnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWNjZXB0IGEgQkVQLTIwIHRva2VuIHRyYW5zZmVyIHdoZXJlIGNhbGxkYXRhIG1hdGNoZXMgZGVjbGFyZWQgcmVjaXBpZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuXG4gICAgICBjb25zdCBlcmMyMFRyYW5zZmVyRGF0YSA9IGVuY29kZUVyYzIwVHJhbnNmZXIocmVjaXBpZW50QWRkcmVzcywgJzEwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3Ric2MnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcsIGdhc0xpbWl0OiAnNjAwMDAnIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodG9rZW5Db250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLmRhdGEoZXJjMjBUcmFuc2ZlckRhdGEpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SGV4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChiaXRnbywgY29pbiwgeyBjb2luU3BlY2lmaWM6IHsgYmFzZUFkZHJlc3M6IHJlY2lwaWVudEFkZHJlc3MgfSB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29pbi52ZXJpZnlUc3NUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgdHlwZTogJ3RyYW5zZmVyJyxcbiAgICAgICAgICByZWNpcGllbnRzOiBbeyBhZGRyZXNzOiByZWNpcGllbnRBZGRyZXNzLCBhbW91bnQ6ICcxMDAwMDAwMCcgfV0sXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgICB0eFByZWJ1aWxkOiB7IHR4SGV4LCBjb2luOiAndGJzYycsIHdhbGxldElkOiAnZmFrZVdhbGxldElkJyB9IGFzIGFueSxcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYSBCRVAtMjAgdG9rZW4gdHJhbnNmZXIgd2hlbiBjYWxsZGF0YSByZWNpcGllbnQgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgcmVjaXBpZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuXG4gICAgICBjb25zdCBlcmMyMFRyYW5zZmVyRGF0YSA9IGVuY29kZUVyYzIwVHJhbnNmZXIod3JvbmdBZGRyZXNzLCAnMTAwMDAwMDAnKTtcblxuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGJzYycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7IGZlZTogJzEwJywgZ2FzTGltaXQ6ICc2MDAwMCcgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgIHR4QnVpbGRlci5jb250cmFjdCh0b2tlbkNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIuZGF0YShlcmMyMFRyYW5zZmVyRGF0YSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhIZXggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0KGJpdGdvLCBjb2luLCB7IGNvaW5TcGVjaWZpYzogeyBiYXNlQWRkcmVzczogcmVjaXBpZW50QWRkcmVzcyB9IH0pO1xuXG4gICAgICBhd2FpdCBjb2luXG4gICAgICAgIC52ZXJpZnlUc3NUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICd0cmFuc2ZlcicsXG4gICAgICAgICAgICByZWNpcGllbnRzOiBbeyBhZGRyZXNzOiByZWNpcGllbnRBZGRyZXNzLCBhbW91bnQ6ICcxMDAwMDAwMCcgfV0sXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCwgY29pbjogJ3Ric2MnLCB3YWxsZXRJZDogJ2Zha2VXYWxsZXRJZCcgfSBhcyBhbnksXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnZGVzdGluYXRpb24gYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIHRoZSByZWNpcGllbnQgYWRkcmVzcycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgYSBCRVAtMjAgdG9rZW4gdHJhbnNmZXIgdXNpbmcgV2FsbGV0Q29ubmVjdCByZWNpcGllbnRzWzBdLmRhdGEgZmxvdycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNvaW4gPSBiaXRnby5jb2luKCd0YnNjJykgYXMgVGJzYztcblxuICAgICAgLy8gdHhIZXggc2VuZHMgdG8gcmVjaXBpZW50QWRkcmVzczsgcmVjaXBpZW50c1swXS5kYXRhIGVuY29kZXMgdGhlIHNhbWUgaW50ZW50XG4gICAgICBjb25zdCBlcmMyMFRyYW5zZmVyRGF0YSA9IGVuY29kZUVyYzIwVHJhbnNmZXIocmVjaXBpZW50QWRkcmVzcywgJzEwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3Ric2MnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcsIGdhc0xpbWl0OiAnNjAwMDAnIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodG9rZW5Db250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLmRhdGEoZXJjMjBUcmFuc2ZlckRhdGEpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SGV4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChiaXRnbywgY29pbiwgeyBjb2luU3BlY2lmaWM6IHsgYmFzZUFkZHJlc3M6IHJlY2lwaWVudEFkZHJlc3MgfSB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY29pbi52ZXJpZnlUc3NUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgICAgdHlwZTogJ3RyYW5zZmVyJyxcbiAgICAgICAgICAvLyBXYWxsZXRDb25uZWN0IHBhc3NlcyB0aGUgaW50ZW5kZWQgY2FsbGRhdGEgaW4gcmVjaXBpZW50c1swXS5kYXRhXG4gICAgICAgICAgcmVjaXBpZW50czogW3sgYWRkcmVzczogdG9rZW5Db250cmFjdEFkZHJlc3MsIGFtb3VudDogJzAnLCBkYXRhOiBlcmMyMFRyYW5zZmVyRGF0YSB9XSxcbiAgICAgICAgfSBhcyBhbnksXG4gICAgICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXgsIGNvaW46ICd0YnNjJywgd2FsbGV0SWQ6ICdmYWtlV2FsbGV0SWQnIH0gYXMgYW55LFxuICAgICAgICB3YWxsZXQsXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhIEJFUC0yMCB0b2tlbiB0cmFuc2ZlciB1c2luZyBXYWxsZXRDb25uZWN0IGZsb3cgd2hlbiBjYWxsZGF0YSByZWNpcGllbnQgaXMgdGFtcGVyZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBjb2luID0gYml0Z28uY29pbigndGJzYycpIGFzIFRic2M7XG5cbiAgICAgIC8vIHR4SGV4IHNlbmRzIHRvIHdyb25nQWRkcmVzcyAodGFtcGVyZWQpXG4gICAgICBjb25zdCB0YW1wZXJlZERhdGEgPSBlbmNvZGVFcmMyMFRyYW5zZmVyKHdyb25nQWRkcmVzcywgJzEwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3Ric2MnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoeyBmZWU6ICcxMCcsIGdhc0xpbWl0OiAnNjAwMDAnIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodG9rZW5Db250cmFjdEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLmRhdGEodGFtcGVyZWREYXRhKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEhleCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIHJlY2lwaWVudHNbMF0uZGF0YSBkZWNsYXJlcyB0aGUgY29ycmVjdCByZWNpcGllbnQgKHJlY2lwaWVudEFkZHJlc3MpXG4gICAgICBjb25zdCBjb3JyZWN0RGF0YSA9IGVuY29kZUVyYzIwVHJhbnNmZXIocmVjaXBpZW50QWRkcmVzcywgJzEwMDAwMDAwJyk7XG5cbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQoYml0Z28sIGNvaW4sIHsgY29pblNwZWNpZmljOiB7IGJhc2VBZGRyZXNzOiByZWNpcGllbnRBZGRyZXNzIH0gfSk7XG5cbiAgICAgIGF3YWl0IGNvaW5cbiAgICAgICAgLnZlcmlmeVRzc1RyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtczoge1xuICAgICAgICAgICAgdHlwZTogJ3RyYW5zZmVyJyxcbiAgICAgICAgICAgIHJlY2lwaWVudHM6IFt7IGFkZHJlc3M6IHRva2VuQ29udHJhY3RBZGRyZXNzLCBhbW91bnQ6ICcwJywgZGF0YTogY29ycmVjdERhdGEgfV0sXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleCwgY29pbjogJ3Ric2MnLCB3YWxsZXRJZDogJ2Zha2VXYWxsZXRJZCcgfSBhcyBhbnksXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnZGVzdGluYXRpb24gYWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIHRoZSByZWNpcGllbnQgYWRkcmVzcycpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2Fzc2VydFNpZ25hYmxlQ29uc2lzdGVuY3kgKEdhcCAyIC8gV0NJLTEzOTgpJywgZnVuY3Rpb24gKCkge1xuICAgICAgZnVuY3Rpb24gc3RyaXBIZXgoaGV4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaGV4LnN0YXJ0c1dpdGgoJzB4JykgPyBoZXguc2xpY2UoMikgOiBoZXg7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU2VyaWFsaXplZFR4SGV4KGFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3Ric2MnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kKTtcbiAgICAgICAgdHhCdWlsZGVyLmZlZSh7IGZlZTogJzEwJywgZ2FzTGltaXQ6ICcyMTAwMCcgfSk7XG4gICAgICAgIHR4QnVpbGRlci5jb3VudGVyKDEpO1xuICAgICAgICB0eEJ1aWxkZXIuY29udHJhY3QoYWRkcmVzcyk7XG4gICAgICAgIHR4QnVpbGRlci52YWx1ZSh0cmFuc2ZlckFtb3VudCk7XG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHJldHVybiBzdHJpcEhleCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVyaXZlU2lnbmFibGVIZXgoc2VyaWFsaXplZFR4SGV4OiBzdHJpbmcsIGNvaW46IFRic2MpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb21tb24gPSBBYnN0cmFjdEV0aExpa2VOZXdDb2lucy5nZXRDdXN0b21DaGFpbkNvbW1vbihjb2luLmdldENoYWluSWQoKSk7XG4gICAgICAgIGNvbnN0IGxlZ2FjeVR4ID0gTGVnYWN5VHJhbnNhY3Rpb24uZnJvbVNlcmlhbGl6ZWRUeChCdWZmZXIuZnJvbShzZXJpYWxpemVkVHhIZXgsICdoZXgnKSwgeyBjb21tb24gfSk7XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShSTFAuZW5jb2RlKGJ1ZkFyclRvQXJyKGxlZ2FjeVR4LmdldE1lc3NhZ2VUb1NpZ24oZmFsc2UpKSkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIH1cblxuICAgICAgaXQoJ3Nob3VsZCBwYXNzIHdoZW4gc2lnbmFibGVIZXggaXMgY29uc2lzdGVudCB3aXRoIHNlcmlhbGl6ZWRUeEhleCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuICAgICAgICBjb25zdCBzZXJpYWxpemVkVHhIZXggPSBhd2FpdCBidWlsZFNlcmlhbGl6ZWRUeEhleChyZWNpcGllbnRBZGRyZXNzKTtcbiAgICAgICAgY29uc3Qgc2lnbmFibGVIZXggPSBkZXJpdmVTaWduYWJsZUhleChzZXJpYWxpemVkVHhIZXgsIGNvaW4pO1xuICAgICAgICBjb2luLmFzc2VydFNpZ25hYmxlQ29uc2lzdGVuY3koc2VyaWFsaXplZFR4SGV4LCBzaWduYWJsZUhleCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHNpZ25hYmxlSGV4IGRvZXMgbm90IG1hdGNoIHNlcmlhbGl6ZWRUeEhleCAoR2FwIDIgYXR0YWNrKScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuICAgICAgICBjb25zdCBiZW5pZ25TZXJpYWxpemVkVHhIZXggPSBhd2FpdCBidWlsZFNlcmlhbGl6ZWRUeEhleChyZWNpcGllbnRBZGRyZXNzKTtcbiAgICAgICAgY29uc3QgbWFsaWNpb3VzU2VyaWFsaXplZFR4SGV4ID0gYXdhaXQgYnVpbGRTZXJpYWxpemVkVHhIZXgod3JvbmdBZGRyZXNzKTtcbiAgICAgICAgY29uc3QgdGFtcGVyZWRTaWduYWJsZUhleCA9IGRlcml2ZVNpZ25hYmxlSGV4KG1hbGljaW91c1NlcmlhbGl6ZWRUeEhleCwgY29pbik7XG4gICAgICAgICgoKSA9PiBjb2luLmFzc2VydFNpZ25hYmxlQ29uc2lzdGVuY3koYmVuaWduU2VyaWFsaXplZFR4SGV4LCB0YW1wZXJlZFNpZ25hYmxlSGV4KSkuc2hvdWxkLnRocm93KFxuICAgICAgICAgICdzaWduYWJsZUhleCBpcyBpbmNvbnNpc3RlbnQgd2l0aCBzZXJpYWxpemVkVHhIZXg6IHBvc3NpYmxlIHNlcnZlciB0YW1wZXJpbmcnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCByZWplY3QgYW4gRUlQLTE1NTkgdHlwZWQgdHggc2luY2UgQlNDIGlzIHBpbm5lZCB0byB0aGUgcGV0ZXJzYnVyZyBoYXJkZm9yaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgY29pbiA9IGJpdGdvLmNvaW4oJ3Ric2MnKSBhcyBUYnNjO1xuICAgICAgICBjb25zdCB0eXBlZFR4ID0gRmVlTWFya2V0RUlQMTU1OVRyYW5zYWN0aW9uLmZyb21UeERhdGEoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbm9uY2U6IDEsXG4gICAgICAgICAgICBtYXhGZWVQZXJHYXM6IDEwLFxuICAgICAgICAgICAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IDEsXG4gICAgICAgICAgICBnYXNMaW1pdDogMjEwMDAsXG4gICAgICAgICAgICB0bzogcmVjaXBpZW50QWRkcmVzcyxcbiAgICAgICAgICAgIHZhbHVlOiAxMDAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBjb21tb246IEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zLmdldEN1c3RvbUNoYWluQ29tbW9uKGNvaW4uZ2V0Q2hhaW5JZCgpKSB9XG4gICAgICAgICk7XG4gICAgICAgICgoKSA9PiBjb2luLmFzc2VydFNpZ25hYmxlQ29uc2lzdGVuY3koc3RyaXBIZXgodHlwZWRUeC5zZXJpYWxpemUoKS50b1N0cmluZygnaGV4JykpLCAnJykpLnNob3VsZC50aHJvdyhcbiAgICAgICAgICAvRUlQLTE1NTkgbm90IGVuYWJsZWQgb24gQ29tbW9uL1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=bscToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bscToken.d.ts","sourceRoot":"","sources":["../../../test/unit/bscToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("should");
4
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
+ const src_1 = require("../../src");
6
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
7
+ describe('Bsc Token:', function () {
8
+ let bitgo;
9
+ let bscTokenCoin;
10
+ const tokenName = 'tbsc:busd';
11
+ before(function () {
12
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
13
+ src_1.BscToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
14
+ bitgo.safeRegister(name, coinConstructor);
15
+ });
16
+ bitgo.initializeTestVars();
17
+ bscTokenCoin = bitgo.coin(tokenName);
18
+ });
19
+ it('should return constants', function () {
20
+ bscTokenCoin.getChain().should.equal('tbsc:busd');
21
+ bscTokenCoin.getBaseChain().should.equal('tbsc');
22
+ bscTokenCoin.getFullName().should.equal('Bsc Token');
23
+ bscTokenCoin.getBaseFactor().should.equal(1e18);
24
+ bscTokenCoin.type.should.equal(tokenName);
25
+ bscTokenCoin.name.should.equal('Test Binance USD Token');
26
+ bscTokenCoin.coin.should.equal('tbsc');
27
+ bscTokenCoin.network.should.equal('Testnet');
28
+ bscTokenCoin.decimalPlaces.should.equal(18);
29
+ });
30
+ describe('getSignablePayload', function () {
31
+ // Tokens are out of scope for CGD-1083; EthLikeToken intentionally preserves
32
+ // the pre-PR behavior of returning the raw serialized tx bytes rather than
33
+ // the keccak256 hash returned by the parent chain coin.
34
+ it('should return the raw serialized bytes unchanged', async function () {
35
+ const serializedTx = '0xf86b808504a817c80082520894eeaf0f05f37891ab4a21208b105a0687d12c5af7880de0b6b3a76400008025a0';
36
+ const payload = await bscTokenCoin.getSignablePayload(serializedTx);
37
+ payload.should.deepEqual(Buffer.from(serializedTx));
38
+ });
39
+ });
40
+ });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnNjVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvYnNjVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFFaEIsbURBQStEO0FBQy9ELG1DQUFxQztBQUNyQyxpREFBK0M7QUFFL0MsUUFBUSxDQUFDLFlBQVksRUFBRTtJQUNyQixJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxZQUFZLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDO0lBRTlCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsY0FBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtZQUN2RSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlCQUF5QixFQUFFO1FBQzVCLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN6RCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtRQUM3Qiw2RUFBNkU7UUFDN0UsMkVBQTJFO1FBQzNFLHdEQUF3RDtRQUN4RCxFQUFFLENBQUMsa0RBQWtELEVBQUUsS0FBSztZQUMxRCxNQUFNLFlBQVksR0FDaEIsOEZBQThGLENBQUM7WUFDakcsTUFBTSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcblxuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCc2NUb2tlbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuXG5kZXNjcmliZSgnQnNjIFRva2VuOicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBic2NUb2tlbkNvaW47XG4gIGNvbnN0IHRva2VuTmFtZSA9ICd0YnNjOmJ1c2QnO1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgQnNjVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBic2NUb2tlbkNvaW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIGNvbnN0YW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICBic2NUb2tlbkNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3Ric2M6YnVzZCcpO1xuICAgIGJzY1Rva2VuQ29pbi5nZXRCYXNlQ2hhaW4oKS5zaG91bGQuZXF1YWwoJ3Ric2MnKTtcbiAgICBic2NUb2tlbkNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ0JzYyBUb2tlbicpO1xuICAgIGJzY1Rva2VuQ29pbi5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlMTgpO1xuICAgIGJzY1Rva2VuQ29pbi50eXBlLnNob3VsZC5lcXVhbCh0b2tlbk5hbWUpO1xuICAgIGJzY1Rva2VuQ29pbi5uYW1lLnNob3VsZC5lcXVhbCgnVGVzdCBCaW5hbmNlIFVTRCBUb2tlbicpO1xuICAgIGJzY1Rva2VuQ29pbi5jb2luLnNob3VsZC5lcXVhbCgndGJzYycpO1xuICAgIGJzY1Rva2VuQ29pbi5uZXR3b3JrLnNob3VsZC5lcXVhbCgnVGVzdG5ldCcpO1xuICAgIGJzY1Rva2VuQ29pbi5kZWNpbWFsUGxhY2VzLnNob3VsZC5lcXVhbCgxOCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRTaWduYWJsZVBheWxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVG9rZW5zIGFyZSBvdXQgb2Ygc2NvcGUgZm9yIENHRC0xMDgzOyBFdGhMaWtlVG9rZW4gaW50ZW50aW9uYWxseSBwcmVzZXJ2ZXNcbiAgICAvLyB0aGUgcHJlLVBSIGJlaGF2aW9yIG9mIHJldHVybmluZyB0aGUgcmF3IHNlcmlhbGl6ZWQgdHggYnl0ZXMgcmF0aGVyIHRoYW5cbiAgICAvLyB0aGUga2VjY2FrMjU2IGhhc2ggcmV0dXJuZWQgYnkgdGhlIHBhcmVudCBjaGFpbiBjb2luLlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSByYXcgc2VyaWFsaXplZCBieXRlcyB1bmNoYW5nZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzZXJpYWxpemVkVHggPVxuICAgICAgICAnMHhmODZiODA4NTA0YTgxN2M4MDA4MjUyMDg5NGVlYWYwZjA1ZjM3ODkxYWI0YTIxMjA4YjEwNWEwNjg3ZDEyYzVhZjc4ODBkZTBiNmIzYTc2NDAwMDA4MDI1YTAnO1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IGJzY1Rva2VuQ29pbi5nZXRTaWduYWJsZVBheWxvYWQoc2VyaWFsaXplZFR4KTtcbiAgICAgIHBheWxvYWQuc2hvdWxkLmRlZXBFcXVhbChCdWZmZXIuZnJvbShzZXJpYWxpemVkVHgpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { TransactionBuilder } from '../../src';
2
+ export declare const getBuilder: (coin: string) => TransactionBuilder;
3
+ //# sourceMappingURL=getBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,kBAEzC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuilder = void 0;
4
+ const src_1 = require("../../src");
5
+ const statics_1 = require("@bitgo-beta/statics");
6
+ const getBuilder = (coin) => {
7
+ return new src_1.TransactionBuilder(statics_1.coins.get(coin));
8
+ };
9
+ exports.getBuilder = getBuilder;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9nZXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQztBQUMvQyxpREFBNEM7QUFFckMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQXNCLEVBQUU7SUFDN0QsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFGVyxRQUFBLFVBQVUsY0FFckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGNvbnN0IGdldEJ1aWxkZXIgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyID0+IHtcbiAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KGNvaW4pKTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=eip191MessageBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip191MessageBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/messages/eip191MessageBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}