@bitgo-beta/sdk-coin-celo 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 (69) hide show
  1. package/dist/src/celo.d.ts +4 -1
  2. package/dist/src/celo.d.ts.map +1 -1
  3. package/dist/src/celo.js +16 -1
  4. package/dist/src/celoToken.d.ts +1 -1
  5. package/dist/src/celoToken.d.ts.map +1 -1
  6. package/dist/src/celoToken.js +3 -3
  7. package/dist/src/index.js +6 -2
  8. package/dist/src/lib/index.d.ts +2 -1
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +28 -12
  11. package/dist/src/lib/resources.d.ts.map +1 -1
  12. package/dist/src/lib/resources.js +10 -7
  13. package/dist/src/lib/stakingBuilder.js +37 -23
  14. package/dist/src/lib/testnetTransactionBuilder.d.ts +15 -0
  15. package/dist/src/lib/testnetTransactionBuilder.d.ts.map +1 -0
  16. package/dist/src/lib/testnetTransactionBuilder.js +68 -0
  17. package/dist/src/lib/transactionBuilder.d.ts +1 -7
  18. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  19. package/dist/src/lib/transactionBuilder.js +6 -15
  20. package/dist/src/lib/utils.d.ts +0 -10
  21. package/dist/src/lib/utils.d.ts.map +1 -1
  22. package/dist/src/lib/utils.js +3 -72
  23. package/dist/src/tcelo.d.ts +2 -0
  24. package/dist/src/tcelo.d.ts.map +1 -1
  25. package/dist/src/tcelo.js +6 -1
  26. package/dist/test/resources/celo.d.ts +75 -0
  27. package/dist/test/resources/celo.d.ts.map +1 -0
  28. package/dist/test/resources/celo.js +93 -0
  29. package/dist/test/unit/celo.d.ts +2 -0
  30. package/dist/test/unit/celo.d.ts.map +1 -0
  31. package/dist/test/unit/celo.js +42 -0
  32. package/dist/test/unit/celoToken.d.ts +2 -0
  33. package/dist/test/unit/celoToken.d.ts.map +1 -0
  34. package/dist/test/unit/celoToken.js +31 -0
  35. package/dist/test/unit/getBuilder.d.ts +3 -0
  36. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  37. package/dist/test/unit/getBuilder.js +10 -0
  38. package/dist/test/unit/stakingBuilder.d.ts +2 -0
  39. package/dist/test/unit/stakingBuilder.d.ts.map +1 -0
  40. package/dist/test/unit/stakingBuilder.js +247 -0
  41. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +2 -0
  42. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  43. package/dist/test/unit/transactionBuilder/addressInitialization.js +107 -0
  44. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder/send.js +379 -0
  47. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts +2 -0
  48. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts.map +1 -0
  49. package/dist/test/unit/transactionBuilder/singleSigSend.js +86 -0
  50. package/dist/test/unit/transactionBuilder/staking.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/staking.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/staking.js +345 -0
  53. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/walletInitialization.js +135 -0
  56. package/dist/test/unit/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transferBuilder.js +102 -0
  59. package/dist/tsconfig.tsbuildinfo +1 -0
  60. package/package.json +18 -17
  61. package/.eslintignore +0 -5
  62. package/.mocharc.yml +0 -8
  63. package/CHANGELOG.md +0 -112
  64. package/dist/src/lib/transaction.d.ts +0 -9
  65. package/dist/src/lib/transaction.d.ts.map +0 -1
  66. package/dist/src/lib/transaction.js +0 -37
  67. package/dist/src/lib/types.d.ts +0 -51
  68. package/dist/src/lib/types.d.ts.map +0 -1
  69. package/dist/src/lib/types.js +0 -223
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=celo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"celo.d.ts","sourceRoot":"","sources":["../../../test/unit/celo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
4
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
5
+ const src_1 = require("../../src");
6
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
7
+ describe('Celo Gold', function () {
8
+ let bitgo;
9
+ let basecoin;
10
+ before(function () {
11
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
12
+ bitgo.safeRegister('tcelo', src_1.Tcelo.createInstance);
13
+ bitgo.safeRegister('celo', src_1.Celo.createInstance);
14
+ bitgo.initializeTestVars();
15
+ basecoin = bitgo.coin('celo');
16
+ });
17
+ it('should instantiate the coin', function () {
18
+ let localBasecoin = bitgo.coin('tcelo');
19
+ localBasecoin.should.be.an.instanceof(src_1.Tcelo);
20
+ localBasecoin = bitgo.coin('celo');
21
+ localBasecoin.should.be.an.instanceof(src_1.Celo);
22
+ });
23
+ describe('Verify Transaction', function () {
24
+ const address1 = '5Ge59qRnZa8bxyhVFE6BDoY3kuhSrNVETRxXYLty1Hh6XTaf';
25
+ const address2 = '5DiMLZugmcKEH3igPZP367FqummZkWeW5Z6zDCHLfxRjnPXe';
26
+ it('should reject a txPrebuild with more than one recipient', async function () {
27
+ const wallet = new sdk_core_1.Wallet(bitgo, basecoin, {});
28
+ const txParams = {
29
+ recipients: [
30
+ { amount: '1000000000000', address: address1 },
31
+ { amount: '2500000000000', address: address2 },
32
+ ],
33
+ wallet: wallet,
34
+ walletPassphrase: 'fakeWalletPassphrase',
35
+ };
36
+ await basecoin
37
+ .verifyTransaction({ txParams })
38
+ .should.be.rejectedWith(`celo doesn't support sending to more than 1 destination address within a single transaction. Try again, using only a single recipient.`);
39
+ });
40
+ });
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Vsby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9jZWxvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQStEO0FBQy9ELGlEQUErQztBQUMvQyxtQ0FBd0M7QUFDeEMsbURBQThDO0FBRTlDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEIsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBRWIsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxXQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFO1FBQ2hDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG9CQUFvQixFQUFFO1FBQzdCLE1BQU0sUUFBUSxHQUFHLGtEQUFrRCxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLGtEQUFrRCxDQUFDO1FBQ3BFLEVBQUUsQ0FBQyx5REFBeUQsRUFBRSxLQUFLO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sUUFBUSxHQUFHO2dCQUNmLFVBQVUsRUFBRTtvQkFDVixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtvQkFDOUMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7aUJBQy9DO2dCQUNELE1BQU0sRUFBRSxNQUFNO2dCQUNkLGdCQUFnQixFQUFFLHNCQUFzQjthQUN6QyxDQUFDO1lBRUYsTUFBTSxRQUFRO2lCQUNYLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7aUJBQy9CLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNyQix3SUFBd0ksQ0FDekksQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcbmltcG9ydCB7IENlbG8sIFRjZWxvIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZGVzY3JpYmUoJ0NlbG8gR29sZCcsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ21vY2snIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGNlbG8nLCBUY2Vsby5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdjZWxvJywgQ2Vsby5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKCdjZWxvJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5zdGFudGlhdGUgdGhlIGNvaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCd0Y2VsbycpO1xuICAgIGxvY2FsQmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGNlbG8pO1xuXG4gICAgbG9jYWxCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ2NlbG8nKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKENlbG8pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVmVyaWZ5IFRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MxID0gJzVHZTU5cVJuWmE4Ynh5aFZGRTZCRG9ZM2t1aFNyTlZFVFJ4WFlMdHkxSGg2WFRhZic7XG4gICAgY29uc3QgYWRkcmVzczIgPSAnNURpTUxadWdtY0tFSDNpZ1BaUDM2N0ZxdW1tWmtXZVc1WjZ6RENITGZ4UmpuUFhlJztcbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhIHR4UHJlYnVpbGQgd2l0aCBtb3JlIHRoYW4gb25lIHJlY2lwaWVudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXQoYml0Z28sIGJhc2Vjb2luLCB7fSk7XG5cbiAgICAgIGNvbnN0IHR4UGFyYW1zID0ge1xuICAgICAgICByZWNpcGllbnRzOiBbXG4gICAgICAgICAgeyBhbW91bnQ6ICcxMDAwMDAwMDAwMDAwJywgYWRkcmVzczogYWRkcmVzczEgfSxcbiAgICAgICAgICB7IGFtb3VudDogJzI1MDAwMDAwMDAwMDAnLCBhZGRyZXNzOiBhZGRyZXNzMiB9LFxuICAgICAgICBdLFxuICAgICAgICB3YWxsZXQ6IHdhbGxldCxcbiAgICAgICAgd2FsbGV0UGFzc3BocmFzZTogJ2Zha2VXYWxsZXRQYXNzcGhyYXNlJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC52ZXJpZnlUcmFuc2FjdGlvbih7IHR4UGFyYW1zIH0pXG4gICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKFxuICAgICAgICAgIGBjZWxvIGRvZXNuJ3Qgc3VwcG9ydCBzZW5kaW5nIHRvIG1vcmUgdGhhbiAxIGRlc3RpbmF0aW9uIGFkZHJlc3Mgd2l0aGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLiBUcnkgYWdhaW4sIHVzaW5nIG9ubHkgYSBzaW5nbGUgcmVjaXBpZW50LmBcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=celoToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"celoToken.d.ts","sourceRoot":"","sources":["../../../test/unit/celoToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,31 @@
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('Celo Token:', function () {
8
+ let bitgo;
9
+ let celoTokenCoin;
10
+ const tokenName = 'tcusd';
11
+ before(function () {
12
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
13
+ src_1.CeloToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
14
+ bitgo.safeRegister(name, coinConstructor);
15
+ });
16
+ bitgo.initializeTestVars();
17
+ celoTokenCoin = bitgo.coin(tokenName);
18
+ });
19
+ it('should return constants', function () {
20
+ celoTokenCoin.getChain().should.equal('tcusd');
21
+ celoTokenCoin.getBaseChain().should.equal('tcelo');
22
+ celoTokenCoin.getFullName().should.equal('Celo Token');
23
+ celoTokenCoin.getBaseFactor().should.equal(1e18);
24
+ celoTokenCoin.type.should.equal(tokenName);
25
+ celoTokenCoin.name.should.equal('Test Celo USD Token');
26
+ celoTokenCoin.coin.should.equal('tcelo');
27
+ celoTokenCoin.network.should.equal('Testnet');
28
+ celoTokenCoin.decimalPlaces.should.equal(18);
29
+ });
30
+ });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Vsb1Rva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2NlbG9Ub2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUVoQixtREFBK0Q7QUFDL0QsbUNBQXNDO0FBQ3RDLGlEQUErQztBQUUvQyxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLGFBQWEsQ0FBQztJQUNsQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFFMUIsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxlQUFTLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1lBQ3hFLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUU7UUFDNUIsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZELGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5cbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQ2Vsb1Rva2VuIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmRlc2NyaWJlKCdDZWxvIFRva2VuOicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBjZWxvVG9rZW5Db2luO1xuICBjb25zdCB0b2tlbk5hbWUgPSAndGN1c2QnO1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgQ2Vsb1Rva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgICAgYml0Z28uc2FmZVJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gICAgfSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgY2Vsb1Rva2VuQ29pbiA9IGJpdGdvLmNvaW4odG9rZW5OYW1lKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gY29uc3RhbnRzJywgZnVuY3Rpb24gKCkge1xuICAgIGNlbG9Ub2tlbkNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RjdXNkJyk7XG4gICAgY2Vsb1Rva2VuQ29pbi5nZXRCYXNlQ2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RjZWxvJyk7XG4gICAgY2Vsb1Rva2VuQ29pbi5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnQ2VsbyBUb2tlbicpO1xuICAgIGNlbG9Ub2tlbkNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICBjZWxvVG9rZW5Db2luLnR5cGUuc2hvdWxkLmVxdWFsKHRva2VuTmFtZSk7XG4gICAgY2Vsb1Rva2VuQ29pbi5uYW1lLnNob3VsZC5lcXVhbCgnVGVzdCBDZWxvIFVTRCBUb2tlbicpO1xuICAgIGNlbG9Ub2tlbkNvaW4uY29pbi5zaG91bGQuZXF1YWwoJ3RjZWxvJyk7XG4gICAgY2Vsb1Rva2VuQ29pbi5uZXR3b3JrLnNob3VsZC5lcXVhbCgnVGVzdG5ldCcpO1xuICAgIGNlbG9Ub2tlbkNvaW4uZGVjaW1hbFBsYWNlcy5zaG91bGQuZXF1YWwoMTgpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { TestnetTransactionBuilder, TransactionBuilder } from '../../src';
2
+ export declare const getBuilder: (coin: string) => TestnetTransactionBuilder | 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,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG1E,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,yBAAyB,GAAG,kBAErE,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 coin === 'celo' ? new src_1.TransactionBuilder(statics_1.coins.get(coin)) : new src_1.TestnetTransactionBuilder(statics_1.coins.get(coin));
8
+ };
9
+ exports.getBuilder = getBuilder;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9nZXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUEwRTtBQUMxRSxpREFBNEM7QUFFckMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQWtELEVBQUU7SUFDekYsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEgsQ0FBQyxDQUFDO0FBRlcsUUFBQSxVQUFVLGNBRXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdG5ldFRyYW5zYWN0aW9uQnVpbGRlciwgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRCdWlsZGVyID0gKGNvaW46IHN0cmluZyk6IFRlc3RuZXRUcmFuc2FjdGlvbkJ1aWxkZXIgfCBUcmFuc2FjdGlvbkJ1aWxkZXIgPT4ge1xuICByZXR1cm4gY29pbiA9PT0gJ2NlbG8nID8gbmV3IFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQoY29pbikpIDogbmV3IFRlc3RuZXRUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KGNvaW4pKTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stakingBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/stakingBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,247 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const assert_1 = __importDefault(require("assert"));
40
+ const should_1 = __importDefault(require("should"));
41
+ const statics_1 = require("@bitgo-beta/statics");
42
+ const stakingBuilder_1 = require("../../src/lib/stakingBuilder");
43
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
44
+ const testData = __importStar(require("../resources/celo"));
45
+ describe('Celo staking operations builder', function () {
46
+ const coin = statics_1.coins.get('tcelo');
47
+ let builder;
48
+ beforeEach(() => {
49
+ builder = new stakingBuilder_1.StakingBuilder(coin);
50
+ builder.type(sdk_core_1.StakingOperationTypes.LOCK);
51
+ builder.amount('1000');
52
+ });
53
+ const lockOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.LOCK, coin.network.type);
54
+ const unlockOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.UNLOCK, coin.network.type);
55
+ const withdrawOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.WITHDRAW, coin.network.type);
56
+ const voteOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.VOTE, coin.network.type);
57
+ const unvoteOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.UNVOTE, coin.network.type);
58
+ const activateOperation = (0, sdk_core_1.getOperationConfig)(sdk_core_1.StakingOperationTypes.ACTIVATE, coin.network.type);
59
+ it('should build a staking lock operation', () => {
60
+ const staking = builder.build();
61
+ should_1.default.equal(staking.address, lockOperation.contractAddress);
62
+ should_1.default.equal(staking.serialize(), lockOperation.methodId);
63
+ });
64
+ it('should build a staking unlock operation', () => {
65
+ builder.type(sdk_core_1.StakingOperationTypes.UNLOCK);
66
+ builder.amount('100');
67
+ const staking = builder.build();
68
+ should_1.default.equal(staking.address, unlockOperation.contractAddress);
69
+ staking.serialize().should.startWith(unlockOperation.methodId);
70
+ should_1.default.equal(staking.serialize(), testData.UNLOCK_DATA);
71
+ });
72
+ it('should build a staking withdraw operation', () => {
73
+ builder.type(sdk_core_1.StakingOperationTypes.WITHDRAW);
74
+ builder.index(0);
75
+ const staking = builder.build();
76
+ should_1.default.equal(staking.address, withdrawOperation.contractAddress);
77
+ staking.serialize().should.startWith(withdrawOperation.methodId);
78
+ should_1.default.equal(staking.serialize(), testData.WITHDRAW_DATA);
79
+ });
80
+ it('should fail if the index is invalid', () => {
81
+ builder.type(sdk_core_1.StakingOperationTypes.WITHDRAW);
82
+ assert_1.default.throws(() => {
83
+ builder.index(-1);
84
+ }, (e) => e.message === testData.INVALID_INDEX_ERROR);
85
+ });
86
+ it('should build a staking vote operation', () => {
87
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
88
+ builder.group(testData.GROUP_ADDRESS);
89
+ builder.lesser(testData.LESSER_ADDRESS);
90
+ builder.greater(testData.GREATER_ADDRESS);
91
+ const staking = builder.build();
92
+ should_1.default.equal(staking.address, voteOperation.contractAddress);
93
+ should_1.default.equal(staking.serialize(), testData.VOTE_SERIALIZED_DATA);
94
+ });
95
+ it('should build only setting the lesser', () => {
96
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
97
+ builder.group(testData.GROUP_ADDRESS);
98
+ builder.lesser(testData.LESSER_ADDRESS);
99
+ const staking = builder.build();
100
+ should_1.default.equal(staking.address, voteOperation.contractAddress);
101
+ should_1.default.equal(staking.serialize(), testData.VOTE_LESSER_SERIALIZED_DATA);
102
+ });
103
+ it('should build only setting the greater', () => {
104
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
105
+ builder.group(testData.GROUP_ADDRESS);
106
+ builder.greater(testData.GREATER_ADDRESS);
107
+ const staking = builder.build();
108
+ should_1.default.equal(staking.address, voteOperation.contractAddress);
109
+ should_1.default.equal(staking.serialize(), testData.VOTE_GREATER_SERIALIZED_DATA);
110
+ });
111
+ it('should build a staking unvote operation', () => {
112
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
113
+ builder.group(testData.GROUP_ADDRESS);
114
+ builder.lesser(testData.LESSER_ADDRESS);
115
+ builder.greater(testData.GREATER_ADDRESS);
116
+ builder.amount('1');
117
+ builder.index(0);
118
+ const staking = builder.build();
119
+ should_1.default.equal(staking.address, unvoteOperation.contractAddress);
120
+ should_1.default.equal(staking.serialize(), testData.UNVOTE_SERIALIZED_DATA);
121
+ });
122
+ it('should fail if the unvote index is invalid', () => {
123
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
124
+ assert_1.default.throws(() => {
125
+ builder.index(-1);
126
+ }, (e) => e.message === testData.INVALID_INDEX_ERROR);
127
+ });
128
+ it(`should throw error when trying to build unvote operation with missing 'index' `, () => {
129
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
130
+ builder.group(testData.GROUP_ADDRESS);
131
+ builder.lesser(testData.LESSER_ADDRESS);
132
+ builder.greater(testData.GREATER_ADDRESS);
133
+ builder.amount('1');
134
+ assert_1.default.throws(() => {
135
+ builder.build();
136
+ }, (e) => e.message === testData.MISSING_INDEX_ERROR);
137
+ });
138
+ it(`should throw error when trying to build unvote operation with missing 'group' `, () => {
139
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
140
+ builder.lesser(testData.LESSER_ADDRESS);
141
+ builder.greater(testData.GREATER_ADDRESS);
142
+ builder.amount('1');
143
+ builder.index(1);
144
+ assert_1.default.throws(() => {
145
+ builder.build();
146
+ }, (e) => e.message === testData.MISSING_GROUP_ERROR);
147
+ });
148
+ it(`should throw error when trying to build unvote operation with missing 'amount' `, () => {
149
+ builder = new stakingBuilder_1.StakingBuilder(coin);
150
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
151
+ builder.lesser(testData.LESSER_ADDRESS);
152
+ builder.group(testData.GROUP_ADDRESS);
153
+ builder.greater(testData.GREATER_ADDRESS);
154
+ builder.index(1);
155
+ assert_1.default.throws(() => {
156
+ builder.build();
157
+ }, (e) => e.message === testData.MISSING_AMOUNT_ERROR);
158
+ });
159
+ it('should fail if the address to unvote for is not set', () => {
160
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
161
+ assert_1.default.throws(() => {
162
+ builder.build();
163
+ }, (e) => e.message === testData.MISSING_GROUP_ERROR);
164
+ });
165
+ it('should fail if the lesser or greater unvote are not set', () => {
166
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
167
+ builder.group(testData.GROUP_ADDRESS);
168
+ assert_1.default.throws(() => {
169
+ builder.build();
170
+ }, (e) => e.message === testData.GREATER_LESSER_ERROR);
171
+ });
172
+ it('should fail if the group to unvote address is invalid', () => {
173
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
174
+ assert_1.default.throws(() => {
175
+ builder.group('invalidaddress');
176
+ }, (e) => e.message === testData.INVALID_GROUP_ERROR);
177
+ });
178
+ it('should fail if the lesser unvote address is invalid', () => {
179
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
180
+ assert_1.default.throws(() => {
181
+ builder.lesser('invalidaddress');
182
+ }, (e) => e.message === testData.INVALID_LESSER_ERROR);
183
+ });
184
+ it('should fail if the greater unvote address is invalid', () => {
185
+ builder.type(sdk_core_1.StakingOperationTypes.UNVOTE);
186
+ assert_1.default.throws(() => {
187
+ builder.greater('invalidaddress');
188
+ }, (e) => e.message === testData.INVALID_GREATER_ERROR);
189
+ });
190
+ it('should build a staking activate operation', () => {
191
+ builder.type(sdk_core_1.StakingOperationTypes.ACTIVATE);
192
+ builder.group(testData.GROUP_ADDRESS);
193
+ const staking = builder.build();
194
+ should_1.default.equal(staking.address, activateOperation.contractAddress);
195
+ should_1.default.equal(staking.serialize(), testData.ACTIVATE_SERIALIZED_DATA);
196
+ });
197
+ it('should fail if the activate address is not set', () => {
198
+ builder.type(sdk_core_1.StakingOperationTypes.ACTIVATE);
199
+ assert_1.default.throws(() => {
200
+ builder.build();
201
+ }, (e) => e.message === testData.MISSING_GROUP_ERROR);
202
+ });
203
+ it('should fail if the address to vote for is not set', () => {
204
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
205
+ assert_1.default.throws(() => {
206
+ builder.build();
207
+ }, (e) => e.message === testData.MISSING_GROUP_ERROR);
208
+ });
209
+ it('should fail if the lesser or greater are not set', () => {
210
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
211
+ builder.group(testData.GROUP_ADDRESS);
212
+ assert_1.default.throws(() => {
213
+ builder.build();
214
+ }, (e) => e.message === testData.GREATER_LESSER_ERROR);
215
+ });
216
+ it('should fail if the group to vote address is invalid', () => {
217
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
218
+ assert_1.default.throws(() => {
219
+ builder.group('invalidaddress');
220
+ }, (e) => e.message === testData.INVALID_GROUP_ERROR);
221
+ });
222
+ it('should fail if the lesser address is invalid', () => {
223
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
224
+ assert_1.default.throws(() => {
225
+ builder.lesser('invalidaddress');
226
+ }, (e) => e.message === testData.INVALID_LESSER_ERROR);
227
+ });
228
+ it('should fail if the greater address is invalid', () => {
229
+ builder.type(sdk_core_1.StakingOperationTypes.VOTE);
230
+ assert_1.default.throws(() => {
231
+ builder.greater('invalidaddress');
232
+ }, (e) => e.message === testData.INVALID_GREATER_ERROR);
233
+ });
234
+ it('should fail if amount is invalid number', () => {
235
+ assert_1.default.throws(() => {
236
+ builder.amount('asd');
237
+ }, (e) => e.message === testData.INVALID_VALUE_ERROR);
238
+ });
239
+ it('should fail to build if type is not supported', function () {
240
+ const NOT_SUPPORTED = 100;
241
+ builder.type(NOT_SUPPORTED);
242
+ assert_1.default.throws(() => {
243
+ builder.build();
244
+ }, (e) => e.message === testData.INVALID_OPERATION_100);
245
+ });
246
+ });
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3Rha2luZ0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGlEQUE0QztBQUM1QyxpRUFBOEQ7QUFDOUQsbURBQWlGO0FBQ2pGLDREQUE4QztBQUU5QyxRQUFRLENBQUMsaUNBQWlDLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxJQUFJLE9BQXVCLENBQUM7SUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sR0FBRyxJQUFJLCtCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsSUFBQSw2QkFBa0IsRUFBQyxnQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RixNQUFNLGVBQWUsR0FBRyxJQUFBLDZCQUFrQixFQUFDLGdDQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVGLE1BQU0saUJBQWlCLEdBQUcsSUFBQSw2QkFBa0IsRUFBQyxnQ0FBcUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRyxNQUFNLGFBQWEsR0FBRyxJQUFBLDZCQUFrQixFQUFDLGdDQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxD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RUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLHFCQUFxQixDQUN6RCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBTdGFraW5nQnVpbGRlciB9IGZyb20gJy4uLy4uL3NyYy9saWIvc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgZ2V0T3BlcmF0aW9uQ29uZmlnLCBTdGFraW5nT3BlcmF0aW9uVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvY2Vsbyc7XG5cbmRlc2NyaWJlKCdDZWxvIHN0YWtpbmcgb3BlcmF0aW9ucyBidWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBjb2luID0gY29pbnMuZ2V0KCd0Y2VsbycpO1xuICBsZXQgYnVpbGRlcjogU3Rha2luZ0J1aWxkZXI7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGJ1aWxkZXIgPSBuZXcgU3Rha2luZ0J1aWxkZXIoY29pbik7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5MT0NLKTtcbiAgICBidWlsZGVyLmFtb3VudCgnMTAwMCcpO1xuICB9KTtcblxuICBjb25zdCBsb2NrT3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5MT0NLLCBjb2luLm5ldHdvcmsudHlwZSk7XG4gIGNvbnN0IHVubG9ja09wZXJhdGlvbiA9IGdldE9wZXJhdGlvbkNvbmZpZyhTdGFraW5nT3BlcmF0aW9uVHlwZXMuVU5MT0NLLCBjb2luLm5ldHdvcmsudHlwZSk7XG4gIGNvbnN0IHdpdGhkcmF3T3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5XSVRIRFJBVywgY29pbi5uZXR3b3JrLnR5cGUpO1xuICBjb25zdCB2b3RlT3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5WT1RFLCBjb2luLm5ldHdvcmsudHlwZSk7XG4gIGNvbnN0IHVudm90ZU9wZXJhdGlvbiA9IGdldE9wZXJhdGlvbkNvbmZpZyhTdGFraW5nT3BlcmF0aW9uVHlwZXMuVU5WT1RFLCBjb2luLm5ldHdvcmsudHlwZSk7XG4gIGNvbnN0IGFjdGl2YXRlT3BlcmF0aW9uID0gZ2V0T3BlcmF0aW9uQ29uZmlnKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5BQ1RJVkFURSwgY29pbi5uZXR3b3JrLnR5cGUpO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIGxvY2sgb3BlcmF0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IHN0YWtpbmcgPSBidWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuYWRkcmVzcywgbG9ja09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbChzdGFraW5nLnNlcmlhbGl6ZSgpLCBsb2NrT3BlcmF0aW9uLm1ldGhvZElkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHN0YWtpbmcgdW5sb2NrIG9wZXJhdGlvbicsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOTE9DSyk7XG4gICAgYnVpbGRlci5hbW91bnQoJzEwMCcpO1xuICAgIGNvbnN0IHN0YWtpbmcgPSBidWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuYWRkcmVzcywgdW5sb2NrT3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgc3Rha2luZy5zZXJpYWxpemUoKS5zaG91bGQuc3RhcnRXaXRoKHVubG9ja09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuc2VyaWFsaXplKCksIHRlc3REYXRhLlVOTE9DS19EQVRBKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHN0YWtpbmcgd2l0aGRyYXcgb3BlcmF0aW9uJywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuV0lUSERSQVcpO1xuICAgIGJ1aWxkZXIuaW5kZXgoMCk7XG4gICAgY29uc3Qgc3Rha2luZyA9IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXF1YWwoc3Rha2luZy5hZGRyZXNzLCB3aXRoZHJhd09wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgIHN0YWtpbmcuc2VyaWFsaXplKCkuc2hvdWxkLnN0YXJ0V2l0aCh3aXRoZHJhd09wZXJhdGlvbi5tZXRob2RJZCk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuc2VyaWFsaXplKCksIHRlc3REYXRhLldJVEhEUkFXX0RBVEEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgaWYgdGhlIGluZGV4IGlzIGludmFsaWQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5XSVRIRFJBVyk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5pbmRleCgtMSk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX0lOREVYX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHN0YWtpbmcgdm90ZSBvcGVyYXRpb24nLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5WT1RFKTtcbiAgICBidWlsZGVyLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIubGVzc2VyKHRlc3REYXRhLkxFU1NFUl9BRERSRVNTKTtcbiAgICBidWlsZGVyLmdyZWF0ZXIodGVzdERhdGEuR1JFQVRFUl9BRERSRVNTKTtcbiAgICBjb25zdCBzdGFraW5nID0gYnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzdGFraW5nLmFkZHJlc3MsIHZvdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoc3Rha2luZy5zZXJpYWxpemUoKSwgdGVzdERhdGEuVk9URV9TRVJJQUxJWkVEX0RBVEEpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIG9ubHkgc2V0dGluZyB0aGUgbGVzc2VyJywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuVk9URSk7XG4gICAgYnVpbGRlci5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKTtcbiAgICBidWlsZGVyLmxlc3Nlcih0ZXN0RGF0YS5MRVNTRVJfQUREUkVTUyk7XG4gICAgY29uc3Qgc3Rha2luZyA9IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXF1YWwoc3Rha2luZy5hZGRyZXNzLCB2b3RlT3BlcmF0aW9uLmNvbnRyYWN0QWRkcmVzcyk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuc2VyaWFsaXplKCksIHRlc3REYXRhLlZPVEVfTEVTU0VSX1NFUklBTElaRURfREFUQSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgb25seSBzZXR0aW5nIHRoZSBncmVhdGVyJywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuVk9URSk7XG4gICAgYnVpbGRlci5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKTtcbiAgICBidWlsZGVyLmdyZWF0ZXIodGVzdERhdGEuR1JFQVRFUl9BRERSRVNTKTtcbiAgICBjb25zdCBzdGFraW5nID0gYnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzdGFraW5nLmFkZHJlc3MsIHZvdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoc3Rha2luZy5zZXJpYWxpemUoKSwgdGVzdERhdGEuVk9URV9HUkVBVEVSX1NFUklBTElaRURfREFUQSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIHVudm90ZSBvcGVyYXRpb24nLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTlZPVEUpO1xuICAgIGJ1aWxkZXIuZ3JvdXAodGVzdERhdGEuR1JPVVBfQUREUkVTUyk7XG4gICAgYnVpbGRlci5sZXNzZXIodGVzdERhdGEuTEVTU0VSX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIuZ3JlYXRlcih0ZXN0RGF0YS5HUkVBVEVSX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIuYW1vdW50KCcxJyk7XG4gICAgYnVpbGRlci5pbmRleCgwKTtcbiAgICBjb25zdCBzdGFraW5nID0gYnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzdGFraW5nLmFkZHJlc3MsIHVudm90ZU9wZXJhdGlvbi5jb250cmFjdEFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbChzdGFraW5nLnNlcmlhbGl6ZSgpLCB0ZXN0RGF0YS5VTlZPVEVfU0VSSUFMSVpFRF9EQVRBKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSB1bnZvdGUgaW5kZXggaXMgaW52YWxpZCcsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5pbmRleCgtMSk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX0lOREVYX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoYHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIHRyeWluZyB0byBidWlsZCB1bnZvdGUgb3BlcmF0aW9uIHdpdGggbWlzc2luZyAnaW5kZXgnIGAsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYnVpbGRlci5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKTtcbiAgICBidWlsZGVyLmxlc3Nlcih0ZXN0RGF0YS5MRVNTRVJfQUREUkVTUyk7XG4gICAgYnVpbGRlci5ncmVhdGVyKHRlc3REYXRhLkdSRUFURVJfQUREUkVTUyk7XG4gICAgYnVpbGRlci5hbW91bnQoJzEnKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5NSVNTSU5HX0lOREVYX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoYHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIHRyeWluZyB0byBidWlsZCB1bnZvdGUgb3BlcmF0aW9uIHdpdGggbWlzc2luZyAnZ3JvdXAnIGAsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYnVpbGRlci5sZXNzZXIodGVzdERhdGEuTEVTU0VSX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIuZ3JlYXRlcih0ZXN0RGF0YS5HUkVBVEVSX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIuYW1vdW50KCcxJyk7XG4gICAgYnVpbGRlci5pbmRleCgxKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5NSVNTSU5HX0dST1VQX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoYHNob3VsZCB0aHJvdyBlcnJvciB3aGVuIHRyeWluZyB0byBidWlsZCB1bnZvdGUgb3BlcmF0aW9uIHdpdGggbWlzc2luZyAnYW1vdW50JyBgLCAoKSA9PiB7XG4gICAgYnVpbGRlciA9IG5ldyBTdGFraW5nQnVpbGRlcihjb2luKTtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYnVpbGRlci5sZXNzZXIodGVzdERhdGEuTEVTU0VSX0FERFJFU1MpO1xuICAgIGJ1aWxkZXIuZ3JvdXAodGVzdERhdGEuR1JPVVBfQUREUkVTUyk7XG4gICAgYnVpbGRlci5ncmVhdGVyKHRlc3REYXRhLkdSRUFURVJfQUREUkVTUyk7XG4gICAgYnVpbGRlci5pbmRleCgxKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5NSVNTSU5HX0FNT1VOVF9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgYWRkcmVzcyB0byB1bnZvdGUgZm9yIGlzIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTlZPVEUpO1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLk1JU1NJTkdfR1JPVVBfRVJST1JcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgaWYgdGhlIGxlc3NlciBvciBncmVhdGVyIHVudm90ZSBhcmUgbm90IHNldCcsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYnVpbGRlci5ncm91cCh0ZXN0RGF0YS5HUk9VUF9BRERSRVNTKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5HUkVBVEVSX0xFU1NFUl9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgZ3JvdXAgdG8gdW52b3RlIGFkZHJlc3MgaXMgaW52YWxpZCcsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5ncm91cCgnaW52YWxpZGFkZHJlc3MnKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLklOVkFMSURfR1JPVVBfRVJST1JcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgaWYgdGhlIGxlc3NlciB1bnZvdGUgYWRkcmVzcyBpcyBpbnZhbGlkJywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuVU5WT1RFKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmxlc3NlcignaW52YWxpZGFkZHJlc3MnKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLklOVkFMSURfTEVTU0VSX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSBncmVhdGVyIHVudm90ZSBhZGRyZXNzIGlzIGludmFsaWQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTlZPVEUpO1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuZ3JlYXRlcignaW52YWxpZGFkZHJlc3MnKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLklOVkFMSURfR1JFQVRFUl9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIGFjdGl2YXRlIG9wZXJhdGlvbicsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLkFDVElWQVRFKTtcbiAgICBidWlsZGVyLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpO1xuICAgIGNvbnN0IHN0YWtpbmcgPSBidWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHN0YWtpbmcuYWRkcmVzcywgYWN0aXZhdGVPcGVyYXRpb24uY29udHJhY3RBZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoc3Rha2luZy5zZXJpYWxpemUoKSwgdGVzdERhdGEuQUNUSVZBVEVfU0VSSUFMSVpFRF9EQVRBKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSBhY3RpdmF0ZSBhZGRyZXNzIGlzIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5BQ1RJVkFURSk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5idWlsZCgpO1xuICAgICAgfSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuTUlTU0lOR19HUk9VUF9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgYWRkcmVzcyB0byB2b3RlIGZvciBpcyBub3Qgc2V0JywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuVk9URSk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5idWlsZCgpO1xuICAgICAgfSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuTUlTU0lOR19HUk9VUF9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgbGVzc2VyIG9yIGdyZWF0ZXIgYXJlIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5WT1RFKTtcbiAgICBidWlsZGVyLmdyb3VwKHRlc3REYXRhLkdST1VQX0FERFJFU1MpO1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLkdSRUFURVJfTEVTU0VSX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSBncm91cCB0byB2b3RlIGFkZHJlc3MgaXMgaW52YWxpZCcsICgpID0+IHtcbiAgICBidWlsZGVyLnR5cGUoU3Rha2luZ09wZXJhdGlvblR5cGVzLlZPVEUpO1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuZ3JvdXAoJ2ludmFsaWRhZGRyZXNzJyk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX0dST1VQX0VSUk9SXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSBsZXNzZXIgYWRkcmVzcyBpcyBpbnZhbGlkJywgKCkgPT4ge1xuICAgIGJ1aWxkZXIudHlwZShTdGFraW5nT3BlcmF0aW9uVHlwZXMuVk9URSk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgYnVpbGRlci5sZXNzZXIoJ2ludmFsaWRhZGRyZXNzJyk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX0xFU1NFUl9FUlJPUlxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCBpZiB0aGUgZ3JlYXRlciBhZGRyZXNzIGlzIGludmFsaWQnLCAoKSA9PiB7XG4gICAgYnVpbGRlci50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5WT1RFKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmdyZWF0ZXIoJ2ludmFsaWRhZGRyZXNzJyk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX0dSRUFURVJfRVJST1JcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgaWYgYW1vdW50IGlzIGludmFsaWQgbnVtYmVyJywgKCkgPT4ge1xuICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYW1vdW50KCdhc2QnKTtcbiAgICAgIH0sXG4gICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLklOVkFMSURfVkFMVUVfRVJST1JcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgdG8gYnVpbGQgaWYgdHlwZSBpcyBub3Qgc3VwcG9ydGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IE5PVF9TVVBQT1JURUQgPSAxMDA7XG4gICAgYnVpbGRlci50eXBlKE5PVF9TVVBQT1JURUQgYXMgU3Rha2luZ09wZXJhdGlvblR5cGVzKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICB9LFxuICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX09QRVJBVElPTl8xMDBcbiAgICApO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=addressInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/addressInitialization.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
41
+ const getBuilder_1 = require("../getBuilder");
42
+ const testData = __importStar(require("../../resources/celo"));
43
+ describe('An address initialization', () => {
44
+ describe('Should sign and build', () => {
45
+ it('an address initialization transaction', async () => {
46
+ const txBuilder = (0, getBuilder_1.getBuilder)('tcelo');
47
+ txBuilder.fee({
48
+ fee: '1000000000',
49
+ gasLimit: '12100000',
50
+ });
51
+ txBuilder.counter(2);
52
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
53
+ txBuilder.contractCounter(1);
54
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
55
+ txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
56
+ const tx = await txBuilder.build();
57
+ tx.type.should.equal(sdk_core_1.TransactionType.AddressInitialization);
58
+ const txJson = tx.toJson();
59
+ txJson.gasLimit.should.equal('12100000');
60
+ txJson.gasPrice.should.equal('1000000000');
61
+ should_1.default.equal(txJson.nonce, 2);
62
+ should_1.default.equal(txJson.chainId, 11142220);
63
+ should_1.default.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
64
+ should_1.default.equal(tx.toBroadcastFormat(), testData.TX_ADDRESS_INIT);
65
+ should_1.default.equal(txJson.deployedAddress, '0x016e4eee27f3f355bbb78d0e5eb813c4761822c9');
66
+ });
67
+ });
68
+ describe('Should build without sign', () => {
69
+ it('an address initialization transaction without from', async () => {
70
+ const txBuilder = (0, getBuilder_1.getBuilder)('celo');
71
+ txBuilder.fee({
72
+ fee: '1000000000',
73
+ gasLimit: '12100000',
74
+ });
75
+ txBuilder.counter(2);
76
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
77
+ txBuilder.contractCounter(1);
78
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
79
+ const tx = await txBuilder.build();
80
+ const txJson = tx.toJson();
81
+ should_1.default.equal(txJson.from, undefined);
82
+ });
83
+ it('an address initialization transaction without contract counter', async () => {
84
+ const txBuilder = (0, getBuilder_1.getBuilder)('tcelo');
85
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
86
+ txBuilder.fee({
87
+ fee: '10000000000',
88
+ gasLimit: '2000000',
89
+ });
90
+ txBuilder.counter(1);
91
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
92
+ const tx = await txBuilder.build();
93
+ const txJson = tx.toJson();
94
+ should_1.default.equal(txJson.from, undefined);
95
+ });
96
+ });
97
+ describe('Should fail to build', () => {
98
+ it('an address initialization transaction without fee', async () => {
99
+ const txBuilder = (0, getBuilder_1.getBuilder)('tcelo');
100
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
101
+ txBuilder.counter(1);
102
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
103
+ await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing fee');
104
+ });
105
+ });
106
+ });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0luaXRpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9hZGRyZXNzSW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbURBQXVEO0FBQ3ZELDhDQUEyQztBQUUzQywrREFBaUQ7QUFFakQsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQ3JDLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFVLEVBQUMsT0FBTyxDQUF1QixDQUFDO1lBQzVELFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ1osR0FBRyxFQUFFLFlBQVk7Z0JBQ2pCLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdEQsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzVELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBZSxD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QUEsdUJBQVUsRUFBQyxPQUFPLENBQXVCLENBQUM7WUFDNUQsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4uL2dldEJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9jZWxvJztcblxuZGVzY3JpYmUoJ0FuIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdTaG91bGQgc2lnbiBhbmQgYnVpbGQnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0Y2VsbycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICBmZWU6ICcxMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICcxMjEwMDAwMCcsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKDIpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3RDb3VudGVyKDEpO1xuICAgICAgdHhCdWlsZGVyLmNvbnRyYWN0KHRlc3REYXRhLkNPTlRSQUNUX0FERFJFU1MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLktFWVBBSVJfUFJWLmdldEtleXMoKS5wcnYgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzEyMTAwMDAwJyk7XG4gICAgICB0eEpzb24uZ2FzUHJpY2Uuc2hvdWxkLmVxdWFsKCcxMDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLm5vbmNlLCAyKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uY2hhaW5JZCwgMTExNDIyMjApO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCB0ZXN0RGF0YS5LRVlQQUlSX1BSVi5nZXRBZGRyZXNzKCkpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlRYX0FERFJFU1NfSU5JVCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmRlcGxveWVkQWRkcmVzcywgJzB4MDE2ZTRlZWUyN2YzZjM1NWJiYjc4ZDBlNWViODEzYzQ3NjE4MjJjOScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnU2hvdWxkIGJ1aWxkIHdpdGhvdXQgc2lnbicsICgpID0+IHtcbiAgICBpdCgnYW4gYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiB3aXRob3V0IGZyb20nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCdjZWxvJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzEwMDAwMDAwMDAnLFxuICAgICAgICBnYXNMaW1pdDogJzEyMTAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMik7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5jb250cmFjdENvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuQ09OVFJBQ1RfQUREUkVTUyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiB3aXRob3V0IGNvbnRyYWN0IGNvdW50ZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0Y2VsbycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICcyMDAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuQ09OVFJBQ1RfQUREUkVTUyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdTaG91bGQgZmFpbCB0byBidWlsZCcsICgpID0+IHtcbiAgICBpdCgnYW4gYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiB3aXRob3V0IGZlZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RjZWxvJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgIHR4QnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5DT05UUkFDVF9BRERSRVNTKTtcbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZmVlJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -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":""}