@bitgo-beta/abstract-eth 1.2.3-alpha.23 → 1.2.3-alpha.230

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 (88) hide show
  1. package/CHANGELOG.md +1441 -0
  2. package/dist/src/abstractEthLikeCoin.d.ts +14 -7
  3. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  4. package/dist/src/abstractEthLikeCoin.js +14 -11
  5. package/dist/src/abstractEthLikeNewCoins.d.ts +648 -0
  6. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  7. package/dist/src/abstractEthLikeNewCoins.js +1835 -0
  8. package/dist/src/ethLikeToken.d.ts +35 -5
  9. package/dist/src/ethLikeToken.d.ts.map +1 -1
  10. package/dist/src/ethLikeToken.js +281 -7
  11. package/dist/src/index.d.ts +2 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +8 -2
  14. package/dist/src/lib/contractCall.d.ts +8 -0
  15. package/dist/src/lib/contractCall.d.ts.map +1 -0
  16. package/dist/src/lib/contractCall.js +17 -0
  17. package/dist/src/lib/iface.d.ts +132 -0
  18. package/dist/src/lib/iface.d.ts.map +1 -0
  19. package/dist/src/lib/iface.js +8 -0
  20. package/dist/src/lib/index.d.ts +15 -0
  21. package/dist/src/lib/index.d.ts.map +1 -0
  22. package/dist/src/lib/index.js +46 -0
  23. package/dist/src/lib/keyPair.d.ts +26 -0
  24. package/dist/src/lib/keyPair.d.ts.map +1 -0
  25. package/dist/src/lib/keyPair.js +66 -0
  26. package/dist/src/lib/transaction.d.ts +64 -0
  27. package/dist/src/lib/transaction.d.ts.map +1 -0
  28. package/dist/src/lib/transaction.js +137 -0
  29. package/dist/src/lib/transactionBuilder.d.ts +249 -0
  30. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  31. package/dist/src/lib/transactionBuilder.js +732 -0
  32. package/dist/src/lib/transferBuilder.d.ts +72 -0
  33. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  34. package/dist/src/lib/transferBuilder.js +261 -0
  35. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +54 -0
  36. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  37. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +121 -0
  38. package/dist/src/lib/transferBuilders/index.d.ts +4 -0
  39. package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
  40. package/dist/src/lib/transferBuilders/index.js +20 -0
  41. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +16 -0
  42. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
  43. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +93 -0
  44. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +15 -0
  45. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
  46. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +78 -0
  47. package/dist/src/lib/types.d.ts +39 -0
  48. package/dist/src/lib/types.d.ts.map +1 -0
  49. package/dist/src/lib/types.js +137 -0
  50. package/dist/src/lib/utils.d.ts +269 -0
  51. package/dist/src/lib/utils.d.ts.map +1 -0
  52. package/dist/src/lib/utils.js +689 -0
  53. package/dist/src/lib/walletUtil.d.ts +30 -0
  54. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  55. package/dist/src/lib/walletUtil.js +33 -0
  56. package/dist/test/index.d.ts +2 -0
  57. package/dist/test/index.d.ts.map +1 -0
  58. package/dist/test/index.js +18 -0
  59. package/dist/test/unit/coin.d.ts +8 -0
  60. package/dist/test/unit/coin.d.ts.map +1 -0
  61. package/dist/test/unit/coin.js +568 -0
  62. package/dist/test/unit/index.d.ts +5 -0
  63. package/dist/test/unit/index.d.ts.map +1 -0
  64. package/dist/test/unit/index.js +21 -0
  65. package/dist/test/unit/token.d.ts +2 -0
  66. package/dist/test/unit/token.d.ts.map +1 -0
  67. package/dist/test/unit/token.js +38 -0
  68. package/dist/test/unit/transaction.d.ts +3 -0
  69. package/dist/test/unit/transaction.d.ts.map +1 -0
  70. package/dist/test/unit/transaction.js +61 -0
  71. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +8 -0
  72. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  73. package/dist/test/unit/transactionBuilder/addressInitialization.js +96 -0
  74. package/dist/test/unit/transactionBuilder/index.d.ts +4 -0
  75. package/dist/test/unit/transactionBuilder/index.d.ts.map +1 -0
  76. package/dist/test/unit/transactionBuilder/index.js +20 -0
  77. package/dist/test/unit/transactionBuilder/send.d.ts +3 -0
  78. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  79. package/dist/test/unit/transactionBuilder/send.js +188 -0
  80. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +10 -0
  81. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  82. package/dist/test/unit/transactionBuilder/walletInitialization.js +125 -0
  83. package/dist/test/unit/transferBuilder.d.ts +2 -0
  84. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  85. package/dist/test/unit/transferBuilder.js +76 -0
  86. package/dist/tsconfig.tsbuildinfo +1 -8128
  87. package/index.ts +2 -0
  88. package/package.json +27 -9
@@ -0,0 +1,5 @@
1
+ export * from './transactionBuilder';
2
+ export * from './token';
3
+ export * from './transaction';
4
+ export * from './coin';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/unit/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./transactionBuilder"), exports);
18
+ __exportStar(require("./token"), exports);
19
+ __exportStar(require("./transaction"), exports);
20
+ __exportStar(require("./coin"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFxQztBQUNyQywwQ0FBd0I7QUFDeEIsZ0RBQThCO0FBQzlCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvaW4nO1xuIl19
@@ -0,0 +1,2 @@
1
+ export declare function runTokenTestInitialization(currentCoinToken: any, coinName: string, tokenNetworkName: string, testData: any): void;
2
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../test/unit/token.ts"],"names":[],"mappings":"AAGA,wBAAgB,0BAA0B,CACxC,gBAAgB,KAAA,EAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,GAAG,QAiCd"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTokenTestInitialization = void 0;
4
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
6
+ function runTokenTestInitialization(currentCoinToken, coinName, tokenNetworkName, testData) {
7
+ describe(`${coinName} Token:`, () => {
8
+ let bitgo;
9
+ let tokenCoin;
10
+ const coin = testData.COIN;
11
+ const tokenName = testData.NETWORK_TOKEN_IDENTIFIER;
12
+ before(function () {
13
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
14
+ currentCoinToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
15
+ bitgo.safeRegister(name, coinConstructor);
16
+ });
17
+ bitgo.initializeTestVars();
18
+ tokenCoin = bitgo.coin(tokenName);
19
+ });
20
+ it('should return constants', () => {
21
+ tokenCoin.getChain().should.equal(tokenName);
22
+ tokenCoin.getBaseChain().should.equal(coin);
23
+ tokenCoin.getFullName().should.equal(`${coinName} Token`);
24
+ tokenCoin.getBaseFactor().should.equal(1e18);
25
+ tokenCoin.type.should.equal(tokenName);
26
+ tokenCoin.name.should.equal(tokenNetworkName);
27
+ tokenCoin.coin.should.equal(coin);
28
+ tokenCoin.network.should.equal('Testnet');
29
+ tokenCoin.decimalPlaces.should.equal(18);
30
+ });
31
+ it('should return same token by contract address', () => {
32
+ const tokencoinBycontractAddress = bitgo.coin(tokenCoin.tokenContractAddress);
33
+ tokenCoin.should.deepEqual(tokencoinBycontractAddress);
34
+ });
35
+ });
36
+ }
37
+ exports.runTokenTestInitialization = runTokenTestInitialization;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxTQUFnQiwwQkFBMEIsQ0FDeEMsZ0JBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLGdCQUF3QixFQUN4QixRQUFhO0lBRWIsUUFBUSxDQUFDLEdBQUcsUUFBUSxTQUFTLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLElBQUksS0FBbUIsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQztRQUNkLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLHdCQUF3QixDQUFDO1FBQ3BELE1BQU0sQ0FBQztZQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDdEQsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO2dCQUMvRSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtZQUNqQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsUUFBUSxDQUFDLENBQUM7WUFDMUQsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDOUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXJDRCxnRUFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5Ub2tlblRlc3RJbml0aWFsaXphdGlvbihcbiAgY3VycmVudENvaW5Ub2tlbixcbiAgY29pbk5hbWU6IHN0cmluZyxcbiAgdG9rZW5OZXR3b3JrTmFtZTogc3RyaW5nLFxuICB0ZXN0RGF0YTogYW55XG4pIHtcbiAgZGVzY3JpYmUoYCR7Y29pbk5hbWV9IFRva2VuOmAsICgpID0+IHtcbiAgICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgICBsZXQgdG9rZW5Db2luO1xuICAgIGNvbnN0IGNvaW4gPSB0ZXN0RGF0YS5DT0lOO1xuICAgIGNvbnN0IHRva2VuTmFtZSA9IHRlc3REYXRhLk5FVFdPUktfVE9LRU5fSURFTlRJRklFUjtcbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgICBjdXJyZW50Q29pblRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgICAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICAgIH0pO1xuICAgICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgICB0b2tlbkNvaW4gPSBiaXRnby5jb2luKHRva2VuTmFtZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBjb25zdGFudHMnLCAoKSA9PiB7XG4gICAgICB0b2tlbkNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwodG9rZW5OYW1lKTtcbiAgICAgIHRva2VuQ29pbi5nZXRCYXNlQ2hhaW4oKS5zaG91bGQuZXF1YWwoY29pbik7XG4gICAgICB0b2tlbkNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoYCR7Y29pbk5hbWV9IFRva2VuYCk7XG4gICAgICB0b2tlbkNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICAgIHRva2VuQ29pbi50eXBlLnNob3VsZC5lcXVhbCh0b2tlbk5hbWUpO1xuICAgICAgdG9rZW5Db2luLm5hbWUuc2hvdWxkLmVxdWFsKHRva2VuTmV0d29ya05hbWUpO1xuICAgICAgdG9rZW5Db2luLmNvaW4uc2hvdWxkLmVxdWFsKGNvaW4pO1xuICAgICAgdG9rZW5Db2luLm5ldHdvcmsuc2hvdWxkLmVxdWFsKCdUZXN0bmV0Jyk7XG4gICAgICB0b2tlbkNvaW4uZGVjaW1hbFBsYWNlcy5zaG91bGQuZXF1YWwoMTgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gc2FtZSB0b2tlbiBieSBjb250cmFjdCBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdG9rZW5jb2luQnljb250cmFjdEFkZHJlc3MgPSBiaXRnby5jb2luKHRva2VuQ29pbi50b2tlbkNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB0b2tlbkNvaW4uc2hvdWxkLmRlZXBFcXVhbCh0b2tlbmNvaW5CeWNvbnRyYWN0QWRkcmVzcyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ import Common from '@ethereumjs/common';
2
+ export declare function runTransactionTests(coinName: string, testData: any, common: Common): void;
3
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAuDlF"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runTransactionTests = void 0;
7
+ const should_1 = __importDefault(require("should"));
8
+ const statics_1 = require("@bitgo-beta/statics");
9
+ const src_1 = require("../../src");
10
+ function runTransactionTests(coinName, testData, common) {
11
+ describe(`${coinName} Transaction`, () => {
12
+ const coin = testData.COIN;
13
+ const coinConfig = statics_1.coins.get(coin);
14
+ /**
15
+ * return a new transaction object
16
+ */
17
+ function getTransaction() {
18
+ return new src_1.Transaction(coinConfig, common);
19
+ }
20
+ describe('should throw ', () => {
21
+ it('an empty transaction', () => {
22
+ const tx = getTransaction();
23
+ should_1.default.throws(() => {
24
+ tx.toJson();
25
+ });
26
+ should_1.default.throws(() => {
27
+ tx.toBroadcastFormat();
28
+ });
29
+ });
30
+ });
31
+ describe('should return', () => {
32
+ it('a valid transaction', () => {
33
+ const tx = getTransaction();
34
+ tx.setTransactionData(testData.TXDATA);
35
+ should_1.default.deepEqual(tx.toJson(), testData.TXDATA);
36
+ should_1.default.equal(tx.toBroadcastFormat(), testData.UNSIGNED_TX);
37
+ });
38
+ });
39
+ describe('should sign', () => {
40
+ it('invalid', () => {
41
+ const tx = getTransaction();
42
+ return tx.sign(testData.KEYPAIR_PRV).should.be.rejected();
43
+ });
44
+ it('valid', () => {
45
+ const tx = getTransaction();
46
+ tx.setTransactionData(testData.TXDATA);
47
+ return tx.sign(testData.KEYPAIR_PRV).should.be.fulfilled();
48
+ });
49
+ });
50
+ describe('should return encoded tx', () => {
51
+ it('valid sign', async function () {
52
+ const tx = getTransaction();
53
+ tx.setTransactionData(testData.TXDATA);
54
+ await tx.sign(testData.KEYPAIR_PRV);
55
+ should_1.default.equal(tx.toBroadcastFormat(), testData.ENCODED_TRANSACTION);
56
+ });
57
+ });
58
+ });
59
+ }
60
+ exports.runTransactionTests = runTransactionTests;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLGlEQUE0QztBQUM1QyxtQ0FBd0M7QUFHeEMsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxRQUFhLEVBQUUsTUFBYztJQUNqRixRQUFRLENBQUMsR0FBRyxRQUFRLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ0gsU0FBUyxjQUFjO1lBQ3JCLE9BQU8sSUFBSSxpQkFBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDN0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUNILGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQzdCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtZQUN4QyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBdkRELGtEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgQ29tbW9uIGZyb20gJ0BldGhlcmV1bWpzL2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5UcmFuc2FjdGlvblRlc3RzKGNvaW5OYW1lOiBzdHJpbmcsIHRlc3REYXRhOiBhbnksIGNvbW1vbjogQ29tbW9uKSB7XG4gIGRlc2NyaWJlKGAke2NvaW5OYW1lfSBUcmFuc2FjdGlvbmAsICgpID0+IHtcbiAgICBjb25zdCBjb2luID0gdGVzdERhdGEuQ09JTjtcbiAgICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KGNvaW4pO1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJuIGEgbmV3IHRyYW5zYWN0aW9uIG9iamVjdFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZywgY29tbW9uKTtcbiAgICB9XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHRocm93ICcsICgpID0+IHtcbiAgICAgIGl0KCdhbiBlbXB0eSB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgICBzaG91bGQudGhyb3dzKCgpID0+IHtcbiAgICAgICAgICB0eC50b0pzb24oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4ge1xuICAgICAgICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHJldHVybicsICgpID0+IHtcbiAgICAgIGl0KCdhIHZhbGlkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHR4LnNldFRyYW5zYWN0aW9uRGF0YSh0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnRvSnNvbigpLCB0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVU5TSUdORURfVFgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHNpZ24nLCAoKSA9PiB7XG4gICAgICBpdCgnaW52YWxpZCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLnJlamVjdGVkKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3ZhbGlkJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHR4LnNldFRyYW5zYWN0aW9uRGF0YSh0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLmZ1bGZpbGxlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHJldHVybiBlbmNvZGVkIHR4JywgKCkgPT4ge1xuICAgICAgaXQoJ3ZhbGlkIHNpZ24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIGF3YWl0IHR4LnNpZ24odGVzdERhdGEuS0VZUEFJUl9QUlYpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuRU5DT0RFRF9UUkFOU0FDVElPTik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { TransactionBuilder } from '../../../src';
2
+ export declare function testAddressInitializationWithoutContractAddress(txBuilder: TransactionBuilder): Promise<void>;
3
+ export declare function testFailsWithInvalidForwarderVersion(txBuilder: TransactionBuilder, testData: any): Promise<void>;
4
+ export declare function testAddressInitializationBuildsCorrectlyAndReturnsAddress(txBuilder: TransactionBuilder, testData: any): Promise<void>;
5
+ export declare function testAddressInitializationBuildsFromSerializedData(txBuilder: TransactionBuilder, testData: any): Promise<void>;
6
+ export declare function testAddressInitializationBuildsFromSignedSerializedData(txBuilder: TransactionBuilder, testData: any): Promise<void>;
7
+ export declare function testContractCallForCreateForwarder(txBuilder: TransactionBuilder, testData: any): Promise<void>;
8
+ //# sourceMappingURL=addressInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/addressInitialization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAsB,+CAA+C,CAAC,SAAS,EAAE,kBAAkB,iBAUlG;AAED,wBAAsB,oCAAoC,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBActG;AAED,wBAAsB,yDAAyD,CAC7E,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,GAAG,iBAsBd;AAED,wBAAsB,iDAAiD,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAQnH;AAED,wBAAsB,uDAAuD,CAC3E,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,GAAG,iBAUd;AAED,wBAAsB,kCAAkC,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAapG"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.testContractCallForCreateForwarder = exports.testAddressInitializationBuildsFromSignedSerializedData = exports.testAddressInitializationBuildsFromSerializedData = exports.testAddressInitializationBuildsCorrectlyAndReturnsAddress = exports.testFailsWithInvalidForwarderVersion = exports.testAddressInitializationWithoutContractAddress = void 0;
7
+ const should_1 = __importDefault(require("should"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ async function testAddressInitializationWithoutContractAddress(txBuilder) {
10
+ it('should fail if there is no contract address', async () => {
11
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
12
+ txBuilder.fee({
13
+ fee: '10',
14
+ gasLimit: '1000',
15
+ });
16
+ txBuilder.counter(1);
17
+ await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing contract address');
18
+ });
19
+ }
20
+ exports.testAddressInitializationWithoutContractAddress = testAddressInitializationWithoutContractAddress;
21
+ async function testFailsWithInvalidForwarderVersion(txBuilder, testData) {
22
+ it('should fail if forwarder version is invalid', async () => {
23
+ try {
24
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
25
+ txBuilder.fee({
26
+ fee: '10',
27
+ gasLimit: '1000',
28
+ });
29
+ txBuilder.contract(testData.FORWARDER_FACTORY_ADDRESS);
30
+ txBuilder.forwarderVersion(3);
31
+ }
32
+ catch (e) {
33
+ should_1.default.equal(e.message, 'Invalid forwarder version: 3');
34
+ }
35
+ });
36
+ }
37
+ exports.testFailsWithInvalidForwarderVersion = testFailsWithInvalidForwarderVersion;
38
+ async function testAddressInitializationBuildsCorrectlyAndReturnsAddress(txBuilder, testData) {
39
+ it('should build properly and return a correct address', async () => {
40
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
41
+ txBuilder.fee({
42
+ fee: '10',
43
+ gasLimit: '1000',
44
+ });
45
+ txBuilder.counter(1);
46
+ txBuilder.contract(testData.FORWARDER_FACTORY_ADDRESS);
47
+ txBuilder.baseAddress(testData.BASE_ADDRESS);
48
+ txBuilder.feeAddress(testData.FEE_ADDRESS);
49
+ txBuilder.forwarderVersion(4);
50
+ txBuilder.salt('0x1');
51
+ txBuilder.initCode(testData.FORWARDER_IMPLEMENTATION_ADDRESS);
52
+ txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
53
+ const tx = await txBuilder.build();
54
+ const txJson = tx.toJson();
55
+ should_1.default.equal(txJson.deployedAddress, testData.DEPLOYED_ADDRESS);
56
+ should_1.default.equal(txJson.to, testData.FORWARDER_FACTORY_ADDRESS);
57
+ });
58
+ }
59
+ exports.testAddressInitializationBuildsCorrectlyAndReturnsAddress = testAddressInitializationBuildsCorrectlyAndReturnsAddress;
60
+ async function testAddressInitializationBuildsFromSerializedData(txBuilder, testData) {
61
+ it('should build properly from serialized', async () => {
62
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
63
+ txBuilder.from(testData.UNSIGNED_ADDRESS_INIT);
64
+ const tx = await txBuilder.build();
65
+ const txJson = tx.toJson();
66
+ should_1.default.equal(txJson.to, testData.FORWARDER_FACTORY_ADDRESS);
67
+ });
68
+ }
69
+ exports.testAddressInitializationBuildsFromSerializedData = testAddressInitializationBuildsFromSerializedData;
70
+ async function testAddressInitializationBuildsFromSignedSerializedData(txBuilder, testData) {
71
+ it('should build properly from signed serialized', async () => {
72
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
73
+ txBuilder.from(testData.SIGNED_ADDRESS_INIT);
74
+ const tx = await txBuilder.build();
75
+ const txJson = tx.toJson();
76
+ should_1.default.equal(txJson.to, testData.FORWARDER_FACTORY_ADDRESS);
77
+ should_1.default.equal(txJson.from, testData.ACCOUNT_1);
78
+ });
79
+ }
80
+ exports.testAddressInitializationBuildsFromSignedSerializedData = testAddressInitializationBuildsFromSignedSerializedData;
81
+ async function testContractCallForCreateForwarder(txBuilder, testData) {
82
+ it('should build properly createForwarder call for recovery', async () => {
83
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
84
+ txBuilder.contract(testData.BASE_ADDRESS);
85
+ txBuilder.data(testData.CREATE_FORWARDER_METHOD);
86
+ txBuilder.fee({
87
+ fee: '10',
88
+ gasLimit: '1000',
89
+ });
90
+ const tx = await txBuilder.build();
91
+ const txJson = tx.toJson();
92
+ should_1.default.equal(txJson.to, testData.BASE_ADDRESS);
93
+ });
94
+ }
95
+ exports.testContractCallForCreateForwarder = testContractCallForCreateForwarder;
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0luaXRpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9hZGRyZXNzSW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1EQUF1RDtBQUdoRCxLQUFLLFVBQVUsK0NBQStDLENBQUMsU0FBNkI7SUFDakcsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzNELFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDWixHQUFHLEVBQUUsSUFBSTtZQUNULFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNsRyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFWRCwwR0FVQztBQUVNLEtBQUssVUFBVSxvQ0FBb0MsQ0FBQyxTQUE2QixFQUFFLFFBQWE7SUFDckcsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzNELElBQUk7WUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN0RCxTQUFTLENBQUMsR0FBRyxDQUFDO2dCQUNaLEdBQUcsRUFBRSxJQUFJO2dCQUNULFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkQsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxD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QUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDNUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBWkQsMEhBWUM7QUFFTSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsU0FBNkIsRUFBRSxRQUFhO0lBQ25HLEVBQUUsQ0FBQyx5REFBeUQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2RSxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNqRCxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osR0FBRyxFQUFFLElBQUk7WUFDVCxRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBYkQsZ0ZBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdEFkZHJlc3NJbml0aWFsaXphdGlvbldpdGhvdXRDb250cmFjdEFkZHJlc3ModHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIpIHtcbiAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZXJlIGlzIG5vIGNvbnRyYWN0IGFkZHJlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcxMCcsXG4gICAgICBnYXNMaW1pdDogJzEwMDAnLFxuICAgIH0pO1xuICAgIHR4QnVpbGRlci5jb3VudGVyKDEpO1xuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgY29udHJhY3QgYWRkcmVzcycpO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RGYWlsc1dpdGhJbnZhbGlkRm9yd2FyZGVyVmVyc2lvbih0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlciwgdGVzdERhdGE6IGFueSkge1xuICBpdCgnc2hvdWxkIGZhaWwgaWYgZm9yd2FyZGVyIHZlcnNpb24gaXMgaW52YWxpZCcsIGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgZmVlOiAnMTAnLFxuICAgICAgICBnYXNMaW1pdDogJzEwMDAnLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuRk9SV0FSREVSX0ZBQ1RPUllfQUREUkVTUyk7XG4gICAgICB0eEJ1aWxkZXIuZm9yd2FyZGVyVmVyc2lvbigzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzaG91bGQuZXF1YWwoZS5tZXNzYWdlLCAnSW52YWxpZCBmb3J3YXJkZXIgdmVyc2lvbjogMycpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0QWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRzQ29ycmVjdGx5QW5kUmV0dXJuc0FkZHJlc3MoXG4gIHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyLFxuICB0ZXN0RGF0YTogYW55XG4pIHtcbiAgaXQoJ3Nob3VsZCBidWlsZCBwcm9wZXJseSBhbmQgcmV0dXJuIGEgY29ycmVjdCBhZGRyZXNzJywgYXN5bmMgKCkgPT4ge1xuICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMTAnLFxuICAgICAgZ2FzTGltaXQ6ICcxMDAwJyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICB0eEJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuRk9SV0FSREVSX0ZBQ1RPUllfQUREUkVTUyk7XG4gICAgdHhCdWlsZGVyLmJhc2VBZGRyZXNzKHRlc3REYXRhLkJBU0VfQUREUkVTUyk7XG4gICAgdHhCdWlsZGVyLmZlZUFkZHJlc3ModGVzdERhdGEuRkVFX0FERFJFU1MpO1xuICAgIHR4QnVpbGRlci5mb3J3YXJkZXJWZXJzaW9uKDQpO1xuICAgIHR4QnVpbGRlci5zYWx0KCcweDEnKTtcbiAgICB0eEJ1aWxkZXIuaW5pdENvZGUodGVzdERhdGEuRk9SV0FSREVSX0lNUExFTUVOVEFUSU9OX0FERFJFU1MpO1xuICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5LRVlQQUlSX1BSVi5nZXRLZXlzKCkucHJ2IH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHhKc29uLmRlcGxveWVkQWRkcmVzcywgdGVzdERhdGEuREVQTE9ZRURfQUREUkVTUyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgdGVzdERhdGEuRk9SV0FSREVSX0ZBQ1RPUllfQUREUkVTUyk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkc0Zyb21TZXJpYWxpemVkRGF0YSh0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlciwgdGVzdERhdGE6IGFueSkge1xuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGZyb20gc2VyaWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKTtcbiAgICB0eEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5VTlNJR05FRF9BRERSRVNTX0lOSVQpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgdGVzdERhdGEuRk9SV0FSREVSX0ZBQ1RPUllfQUREUkVTUyk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkc0Zyb21TaWduZWRTZXJpYWxpemVkRGF0YShcbiAgdHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHRlc3REYXRhOiBhbnlcbikge1xuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGZyb20gc2lnbmVkIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEuU0lHTkVEX0FERFJFU1NfSU5JVCk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHhKc29uLnRvLCB0ZXN0RGF0YS5GT1JXQVJERVJfRkFDVE9SWV9BRERSRVNTKTtcbiAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIHRlc3REYXRhLkFDQ09VTlRfMSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvbnRyYWN0Q2FsbEZvckNyZWF0ZUZvcndhcmRlcih0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlciwgdGVzdERhdGE6IGFueSkge1xuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGNyZWF0ZUZvcndhcmRlciBjYWxsIGZvciByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICB0eEJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuQkFTRV9BRERSRVNTKTtcbiAgICB0eEJ1aWxkZXIuZGF0YSh0ZXN0RGF0YS5DUkVBVEVfRk9SV0FSREVSX01FVEhPRCk7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcxMCcsXG4gICAgICBnYXNMaW1pdDogJzEwMDAnLFxuICAgIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgdGVzdERhdGEuQkFTRV9BRERSRVNTKTtcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './addressInitialization';
2
+ export * from './send';
3
+ export * from './walletInitialization';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./addressInitialization"), exports);
18
+ __exportStar(require("./send"), exports);
19
+ __exportStar(require("./walletInitialization"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBd0M7QUFDeEMseUNBQXVCO0FBQ3ZCLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkcmVzc0luaXRpYWxpemF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2VuZCc7XG5leHBvcnQgKiBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export declare function runSendTests(coinName: string, txBuilder: any, getBuilder: any, testData: any): void;
2
+ export declare function testSendFundsTransaction(tx: any, operationHash: string, txParams: any, testData: any): Promise<void>;
3
+ //# sourceMappingURL=send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,KAAA,EAAE,UAAU,KAAA,EAAE,QAAQ,KAAA,QA+I7E;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,GAAG,iBA+BrG"}
@@ -0,0 +1,188 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.testSendFundsTransaction = exports.runSendTests = void 0;
30
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
31
+ const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
32
+ const should_1 = __importDefault(require("should"));
33
+ const ethUtil = __importStar(require("ethereumjs-util"));
34
+ const src_1 = require("../../../src");
35
+ function runSendTests(coinName, txBuilder, getBuilder, testData) {
36
+ describe(`${coinName} transaction builder send`, () => {
37
+ describe('should sign and build', () => {
38
+ let key;
39
+ let contractAddress;
40
+ const networkTokenIdentifier = testData.NETWORK_TOKEN_IDENTIFIER;
41
+ const coin = testData.COIN;
42
+ const getOperationHash = function (tx) {
43
+ const { data } = tx.toJson();
44
+ const { tokenContractAddress, expireTime, sequenceId, amount, to } = (0, src_1.decodeTransferData)(data);
45
+ const operationParams = [
46
+ ['string', 'address', 'uint', 'address', 'uint', 'uint'],
47
+ [
48
+ `${testData.CHAIN_ID}-ERC20`,
49
+ new ethUtil.BN(ethUtil.stripHexPrefix(to), 16),
50
+ amount,
51
+ new ethUtil.BN(ethUtil.stripHexPrefix(tokenContractAddress || ''), 16),
52
+ expireTime,
53
+ sequenceId,
54
+ ],
55
+ ];
56
+ return ethereumjs_abi_1.default.soliditySHA3(...operationParams);
57
+ };
58
+ beforeEach(() => {
59
+ contractAddress = '0x8f977e912ef500548a0c3be6ddde9899f1199b81';
60
+ txBuilder = getBuilder(coin);
61
+ key = testData.KEYPAIR_PRV.getKeys().prv;
62
+ txBuilder.fee({
63
+ fee: '1000000000',
64
+ gasLimit: '12100000',
65
+ });
66
+ txBuilder.counter(2);
67
+ txBuilder.type(sdk_core_1.TransactionType.Send);
68
+ txBuilder.contract(contractAddress);
69
+ });
70
+ it('a send funds transaction', async () => {
71
+ const recipient = '0x19645032c7f1533395d44a629462e751084d3e4c';
72
+ const amount = '1000000000';
73
+ const expireTime = 1590066728;
74
+ const sequenceId = 5;
75
+ txBuilder
76
+ .transfer()
77
+ .amount(amount)
78
+ .to(recipient)
79
+ .expirationTime(expireTime)
80
+ .contractSequenceId(sequenceId)
81
+ .key(key);
82
+ txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
83
+ const tx = await txBuilder.build();
84
+ should_1.default.equal(tx.toJson().chainId, testData.TXDATA.chainId);
85
+ should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_BROADCAST_LEGACY);
86
+ should_1.default.equal(tx.signature.length, 2);
87
+ should_1.default.equal(tx.inputs.length, 1);
88
+ should_1.default.equal(tx.inputs[0].address, contractAddress);
89
+ should_1.default.equal(tx.inputs[0].value, amount);
90
+ should_1.default.equal(tx.outputs.length, 1);
91
+ should_1.default.equal(tx.outputs[0].address, recipient);
92
+ should_1.default.equal(tx.outputs[0].value, amount);
93
+ const data = tx.toJson().data;
94
+ const { to, amount: parsedAmount, expireTime: parsedExpireTime, sequenceId: parsedSequenceId, } = (0, src_1.decodeTransferData)(data);
95
+ should_1.default.equal(to, recipient);
96
+ should_1.default.equal(parsedAmount, amount);
97
+ should_1.default.equal(parsedExpireTime, expireTime);
98
+ should_1.default.equal(parsedSequenceId, sequenceId);
99
+ });
100
+ it('a send funds with amount 0 transaction', async () => {
101
+ txBuilder
102
+ .transfer()
103
+ .amount('0')
104
+ .to('0x19645032c7f1533395d44a629462e751084d3e4c')
105
+ .expirationTime(1590066728)
106
+ .contractSequenceId(5)
107
+ .key(key);
108
+ txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
109
+ const tx = await txBuilder.build();
110
+ should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_AMOUNT_ZERO_BROADCAST);
111
+ });
112
+ it('a send token transaction', async () => {
113
+ const recipient = '0x72c2c8e08bf91d755cd7d26b49a2ee3dc99de1b9';
114
+ const contractAddress = '0xdf7decb1baa8f529f0c8982cbb4be50357195299';
115
+ const amount = '100';
116
+ const key = testData.KEYPAIR_PRV.getKeys().prv;
117
+ txBuilder.contract(contractAddress);
118
+ txBuilder
119
+ .transfer()
120
+ .coin(networkTokenIdentifier)
121
+ .amount(amount)
122
+ .to(recipient)
123
+ .expirationTime(1590066728)
124
+ .contractSequenceId(5)
125
+ .key(key);
126
+ txBuilder.sign({
127
+ key: testData.PRIVATE_KEY_1,
128
+ });
129
+ const tx = await txBuilder.build();
130
+ const operationHash = getOperationHash(tx);
131
+ should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TOKEN_TX_BROADCAST);
132
+ should_1.default.equal(tx.signature.length, 2);
133
+ should_1.default.equal(tx.inputs.length, 1);
134
+ should_1.default.equal(tx.inputs[0].address, contractAddress);
135
+ should_1.default.equal(tx.inputs[0].value, amount);
136
+ should_1.default.equal(tx.inputs[0].coin, networkTokenIdentifier);
137
+ should_1.default.equal(tx.outputs.length, 1);
138
+ should_1.default.equal(tx.outputs[0].address, recipient);
139
+ should_1.default.equal(tx.outputs[0].value, amount);
140
+ should_1.default.equal(tx.outputs[0].coin, networkTokenIdentifier);
141
+ const { signature } = (0, src_1.decodeTransferData)(tx.toJson().data);
142
+ const { v, r, s } = ethUtil.fromRpcSig(signature);
143
+ const senderPubKey = ethUtil.ecrecover(Buffer.from(operationHash, 'hex'), v, r, s);
144
+ const senderAddress = ethUtil.pubToAddress(senderPubKey);
145
+ const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
146
+ ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
147
+ });
148
+ it('a send token transactions from serialized', async () => {
149
+ txBuilder.from(testData.SEND_TOKEN_TX_BROADCAST);
150
+ const tx = await txBuilder.build();
151
+ const operationHash = getOperationHash(tx);
152
+ should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TOKEN_TX_BROADCAST);
153
+ const { signature } = (0, src_1.decodeTransferData)(tx.toJson().data);
154
+ const { v, r, s } = ethUtil.fromRpcSig(signature);
155
+ const senderPubKey = ethUtil.ecrecover(Buffer.from(operationHash || ''), v, r, s);
156
+ const senderAddress = ethUtil.pubToAddress(senderPubKey);
157
+ const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
158
+ ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
159
+ });
160
+ });
161
+ });
162
+ }
163
+ exports.runSendTests = runSendTests;
164
+ async function testSendFundsTransaction(tx, operationHash, txParams, testData) {
165
+ const { recipient, amount, contractAddress, expireTime, sequenceId } = txParams;
166
+ should_1.default.equal(tx.toJson().chainId, testData.TXDATA.chainId);
167
+ should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_BROADCAST_LEGACY);
168
+ should_1.default.equal(tx.signature.length, 2);
169
+ should_1.default.equal(tx.inputs.length, 1);
170
+ should_1.default.equal(tx.inputs[0].address, contractAddress);
171
+ should_1.default.equal(tx.inputs[0].value, amount);
172
+ should_1.default.equal(tx.outputs.length, 1);
173
+ should_1.default.equal(tx.outputs[0].address, recipient);
174
+ should_1.default.equal(tx.outputs[0].value, amount);
175
+ const data = tx.toJson().data;
176
+ const { to, amount: parsedAmount, expireTime: parsedExpireTime, sequenceId: parsedSequenceId, signature, } = (0, src_1.decodeTransferData)(data);
177
+ should_1.default.equal(to, recipient);
178
+ should_1.default.equal(parsedAmount, amount);
179
+ should_1.default.equal(parsedExpireTime, expireTime);
180
+ should_1.default.equal(parsedSequenceId, sequenceId);
181
+ const { v, r, s } = ethUtil.fromRpcSig(signature);
182
+ const senderPubKey = ethUtil.ecrecover(Buffer.from(ethUtil.stripHexPrefix(operationHash), 'hex'), v, r, s);
183
+ const senderAddress = ethUtil.pubToAddress(senderPubKey);
184
+ const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
185
+ ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
186
+ }
187
+ exports.testSendFundsTransaction = testSendFundsTransaction;
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUF3RTtBQUN4RSxvRUFBeUM7QUFDekMsb0RBQTRCO0FBQzVCLHlEQUEyQztBQUMzQyxzQ0FBK0U7QUFFL0UsU0FBZ0IsWUFBWSxDQUFDLFFBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRO0lBQzVFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO1FBQ3BELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7WUFDckMsSUFBSSxHQUFHLENBQUM7WUFDUixJQUFJLGVBQWUsQ0FBQztZQUNwQixNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQztZQUNqRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxFQUFtQjtnQkFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUEsd0JBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlGLE1BQU0sZUFBZSxHQUFHO29CQUN0QixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO29CQUN4RDt3QkFDRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLFFBQVE7d0JBQzVCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FB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QyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvRCxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQS9CRCw0REErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEJhc2VUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBFdGhlcmV1bUFiaSBmcm9tICdldGhlcmV1bWpzLWFiaSc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgKiBhcyBldGhVdGlsIGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2ZlckRhdGEsIEtleVBhaXIsIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5TZW5kVGVzdHMoY29pbk5hbWU6IHN0cmluZywgdHhCdWlsZGVyLCBnZXRCdWlsZGVyLCB0ZXN0RGF0YSkge1xuICBkZXNjcmliZShgJHtjb2luTmFtZX0gdHJhbnNhY3Rpb24gYnVpbGRlciBzZW5kYCwgKCkgPT4ge1xuICAgIGRlc2NyaWJlKCdzaG91bGQgc2lnbiBhbmQgYnVpbGQnLCAoKSA9PiB7XG4gICAgICBsZXQga2V5O1xuICAgICAgbGV0IGNvbnRyYWN0QWRkcmVzcztcbiAgICAgIGNvbnN0IG5ldHdvcmtUb2tlbklkZW50aWZpZXIgPSB0ZXN0RGF0YS5ORVRXT1JLX1RPS0VOX0lERU5USUZJRVI7XG4gICAgICBjb25zdCBjb2luID0gdGVzdERhdGEuQ09JTjtcbiAgICAgIGNvbnN0IGdldE9wZXJhdGlvbkhhc2ggPSBmdW5jdGlvbiAodHg6IEJhc2VUcmFuc2FjdGlvbik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gdHgudG9Kc29uKCk7XG4gICAgICAgIGNvbnN0IHsgdG9rZW5Db250cmFjdEFkZHJlc3MsIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQsIGFtb3VudCwgdG8gfSA9IGRlY29kZVRyYW5zZmVyRGF0YShkYXRhKTtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uUGFyYW1zID0gW1xuICAgICAgICAgIFsnc3RyaW5nJywgJ2FkZHJlc3MnLCAndWludCcsICdhZGRyZXNzJywgJ3VpbnQnLCAndWludCddLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIGAke3Rlc3REYXRhLkNIQUlOX0lEfS1FUkMyMGAsXG4gICAgICAgICAgICBuZXcgZXRoVXRpbC5CTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRvKSwgMTYpLFxuICAgICAgICAgICAgYW1vdW50LFxuICAgICAgICAgICAgbmV3IGV0aFV0aWwuQk4oZXRoVXRpbC5zdHJpcEhleFByZWZpeCh0b2tlbkNvbnRyYWN0QWRkcmVzcyB8fCAnJyksIDE2KSxcbiAgICAgICAgICAgIGV4cGlyZVRpbWUsXG4gICAgICAgICAgICBzZXF1ZW5jZUlkLFxuICAgICAgICAgIF0sXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBFdGhlcmV1bUFiaS5zb2xpZGl0eVNIQTMoLi4ub3BlcmF0aW9uUGFyYW1zKTtcbiAgICAgIH07XG5cbiAgICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgICBjb250cmFjdEFkZHJlc3MgPSAnMHg4Zjk3N2U5MTJlZjUwMDU0OGEwYzNiZTZkZGRlOTg5OWYxMTk5YjgxJztcbiAgICAgICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcihjb2luKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICAgIGtleSA9IHRlc3REYXRhLktFWVBBSVJfUFJWLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nO1xuICAgICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgICBmZWU6ICcxMDAwMDAwMDAwJyxcbiAgICAgICAgICBnYXNMaW1pdDogJzEyMTAwMDAwJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHR4QnVpbGRlci5jb3VudGVyKDIpO1xuICAgICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICAgIHR4QnVpbGRlci5jb250cmFjdChjb250cmFjdEFkZHJlc3MpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdhIHNlbmQgZnVuZHMgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9ICcweDE5NjQ1MDMyYzdmMTUzMzM5NWQ0NGE2Mjk0NjJlNzUxMDg0ZDNlNGMnO1xuICAgICAgICBjb25zdCBhbW91bnQgPSAnMTAwMDAwMDAwMCc7XG4gICAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSAxNTkwMDY2NzI4O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZUlkID0gNTtcbiAgICAgICAgdHhCdWlsZGVyXG4gICAgICAgICAgLnRyYW5zZmVyKClcbiAgICAgICAgICAuYW1vdW50KGFtb3VudClcbiAgICAgICAgICAudG8ocmVjaXBpZW50KVxuICAgICAgICAgIC5leHBpcmF0aW9uVGltZShleHBpcmVUaW1lKVxuICAgICAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoc2VxdWVuY2VJZClcbiAgICAgICAgICAua2V5KGtleSk7XG4gICAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuICAgICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Kc29uKCkuY2hhaW5JZCwgdGVzdERhdGEuVFhEQVRBLmNoYWluSWQpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UWF9CUk9BRENBU1RfTEVHQUNZKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LnNpZ25hdHVyZS5sZW5ndGgsIDIpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uYWRkcmVzcywgY29udHJhY3RBZGRyZXNzKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS52YWx1ZSwgYW1vdW50KTtcblxuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5hZGRyZXNzLCByZWNpcGllbnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS52YWx1ZSwgYW1vdW50KTtcblxuICAgICAgICBjb25zdCBkYXRhID0gdHgudG9Kc29uKCkuZGF0YTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRvLFxuICAgICAgICAgIGFtb3VudDogcGFyc2VkQW1vdW50LFxuICAgICAgICAgIGV4cGlyZVRpbWU6IHBhcnNlZEV4cGlyZVRpbWUsXG4gICAgICAgICAgc2VxdWVuY2VJZDogcGFyc2VkU2VxdWVuY2VJZCxcbiAgICAgICAgfSA9IGRlY29kZVRyYW5zZmVyRGF0YShkYXRhKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHRvLCByZWNpcGllbnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwocGFyc2VkQW1vdW50LCBhbW91bnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwocGFyc2VkRXhwaXJlVGltZSwgZXhwaXJlVGltZSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChwYXJzZWRTZXF1ZW5jZUlkLCBzZXF1ZW5jZUlkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnYSBzZW5kIGZ1bmRzIHdpdGggYW1vdW50IDAgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHR4QnVpbGRlclxuICAgICAgICAgIC50cmFuc2ZlcigpXG4gICAgICAgICAgLmFtb3VudCgnMCcpXG4gICAgICAgICAgLnRvKCcweDE5NjQ1MDMyYzdmMTUzMzM5NWQ0NGE2Mjk0NjJlNzUxMDg0ZDNlNGMnKVxuICAgICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDY2NzI4KVxuICAgICAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoNSlcbiAgICAgICAgICAua2V5KGtleSk7XG4gICAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuICAgICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UWF9BTU9VTlRfWkVST19CUk9BRENBU1QpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdhIHNlbmQgdG9rZW4gdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9ICcweDcyYzJjOGUwOGJmOTFkNzU1Y2Q3ZDI2YjQ5YTJlZTNkYzk5ZGUxYjknO1xuICAgICAgICBjb25zdCBjb250cmFjdEFkZHJlc3MgPSAnMHhkZjdkZWNiMWJhYThmNTI5ZjBjODk4MmNiYjRiZTUwMzU3MTk1Mjk5JztcbiAgICAgICAgY29uc3QgYW1vdW50ID0gJzEwMCc7XG4gICAgICAgIGNvbnN0IGtleSA9IHRlc3REYXRhLktFWVBBSVJfUFJWLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nO1xuICAgICAgICB0eEJ1aWxkZXIuY29udHJhY3QoY29udHJhY3RBZGRyZXNzKTtcbiAgICAgICAgdHhCdWlsZGVyXG4gICAgICAgICAgLnRyYW5zZmVyKClcbiAgICAgICAgICAuY29pbihuZXR3b3JrVG9rZW5JZGVudGlmaWVyKVxuICAgICAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgICAgIC50byhyZWNpcGllbnQpXG4gICAgICAgICAgLmV4cGlyYXRpb25UaW1lKDE1OTAwNjY3MjgpXG4gICAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCg1KVxuICAgICAgICAgIC5rZXkoa2V5KTtcbiAgICAgICAgdHhCdWlsZGVyLnNpZ24oe1xuICAgICAgICAgIGtleTogdGVzdERhdGEuUFJJVkFURV9LRVlfMSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbkhhc2ggPSBnZXRPcGVyYXRpb25IYXNoKHR4KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlNFTkRfVE9LRU5fVFhfQlJPQURDQVNUKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LnNpZ25hdHVyZS5sZW5ndGgsIDIpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uYWRkcmVzcywgY29udHJhY3RBZGRyZXNzKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS52YWx1ZSwgYW1vdW50KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS5jb2luLCBuZXR3b3JrVG9rZW5JZGVudGlmaWVyKTtcblxuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5hZGRyZXNzLCByZWNpcGllbnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS52YWx1ZSwgYW1vdW50KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0uY29pbiwgbmV0d29ya1Rva2VuSWRlbnRpZmllcik7XG5cbiAgICAgICAgY29uc3QgeyBzaWduYXR1cmUgfSA9IGRlY29kZVRyYW5zZmVyRGF0YSh0eC50b0pzb24oKS5kYXRhKTtcblxuICAgICAgICBjb25zdCB7IHYsIHIsIHMgfSA9IGV0aFV0aWwuZnJvbVJwY1NpZyhzaWduYXR1cmUpO1xuICAgICAgICBjb25zdCBzZW5kZXJQdWJLZXkgPSBldGhVdGlsLmVjcmVjb3ZlcihCdWZmZXIuZnJvbShvcGVyYXRpb25IYXNoLCAnaGV4JyksIHYsIHIsIHMpO1xuICAgICAgICBjb25zdCBzZW5kZXJBZGRyZXNzID0gZXRoVXRpbC5wdWJUb0FkZHJlc3Moc2VuZGVyUHViS2V5KTtcbiAgICAgICAgY29uc3Qgc2VuZGVyS2V5ID0gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG4gICAgICAgIGV0aFV0aWwuYnVmZmVyVG9IZXgoc2VuZGVyQWRkcmVzcykuc2hvdWxkLmVxdWFsKHNlbmRlcktleS5nZXRBZGRyZXNzKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdhIHNlbmQgdG9rZW4gdHJhbnNhY3Rpb25zIGZyb20gc2VyaWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEuU0VORF9UT0tFTl9UWF9CUk9BRENBU1QpO1xuICAgICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgICBjb25zdCBvcGVyYXRpb25IYXNoID0gZ2V0T3BlcmF0aW9uSGFzaCh0eCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5TRU5EX1RPS0VOX1RYX0JST0FEQ0FTVCk7XG5cbiAgICAgICAgY29uc3QgeyBzaWduYXR1cmUgfSA9IGRlY29kZVRyYW5zZmVyRGF0YSh0eC50b0pzb24oKS5kYXRhKTtcbiAgICAgICAgY29uc3QgeyB2LCByLCBzIH0gPSBldGhVdGlsLmZyb21ScGNTaWcoc2lnbmF0dXJlKTtcbiAgICAgICAgY29uc3Qgc2VuZGVyUHViS2V5ID0gZXRoVXRpbC5lY3JlY292ZXIoQnVmZmVyLmZyb20ob3BlcmF0aW9uSGFzaCB8fCAnJyksIHYsIHIsIHMpO1xuICAgICAgICBjb25zdCBzZW5kZXJBZGRyZXNzID0gZXRoVXRpbC5wdWJUb0FkZHJlc3Moc2VuZGVyUHViS2V5KTtcbiAgICAgICAgY29uc3Qgc2VuZGVyS2V5ID0gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG4gICAgICAgIGV0aFV0aWwuYnVmZmVyVG9IZXgoc2VuZGVyQWRkcmVzcykuc2hvdWxkLmVxdWFsKHNlbmRlcktleS5nZXRBZGRyZXNzKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFNlbmRGdW5kc1RyYW5zYWN0aW9uKHR4OiBhbnksIG9wZXJhdGlvbkhhc2g6IHN0cmluZywgdHhQYXJhbXMsIHRlc3REYXRhOiBhbnkpIHtcbiAgY29uc3QgeyByZWNpcGllbnQsIGFtb3VudCwgY29udHJhY3RBZGRyZXNzLCBleHBpcmVUaW1lLCBzZXF1ZW5jZUlkIH0gPSB0eFBhcmFtcztcbiAgc2hvdWxkLmVxdWFsKHR4LnRvSnNvbigpLmNoYWluSWQsIHRlc3REYXRhLlRYREFUQS5jaGFpbklkKTtcbiAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlNFTkRfVFhfQlJPQURDQVNUX0xFR0FDWSk7XG4gIHNob3VsZC5lcXVhbCh0eC5zaWduYXR1cmUubGVuZ3RoLCAyKTtcbiAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDEpO1xuICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLmFkZHJlc3MsIGNvbnRyYWN0QWRkcmVzcyk7XG4gIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0udmFsdWUsIGFtb3VudCk7XG5cbiAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0uYWRkcmVzcywgcmVjaXBpZW50KTtcbiAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0udmFsdWUsIGFtb3VudCk7XG5cbiAgY29uc3QgZGF0YSA9IHR4LnRvSnNvbigpLmRhdGE7XG4gIGNvbnN0IHtcbiAgICB0byxcbiAgICBhbW91bnQ6IHBhcnNlZEFtb3VudCxcbiAgICBleHBpcmVUaW1lOiBwYXJzZWRFeHBpcmVUaW1lLFxuICAgIHNlcXVlbmNlSWQ6IHBhcnNlZFNlcXVlbmNlSWQsXG4gICAgc2lnbmF0dXJlLFxuICB9ID0gZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGEpO1xuXG4gIHNob3VsZC5lcXVhbCh0bywgcmVjaXBpZW50KTtcbiAgc2hvdWxkLmVxdWFsKHBhcnNlZEFtb3VudCwgYW1vdW50KTtcbiAgc2hvdWxkLmVxdWFsKHBhcnNlZEV4cGlyZVRpbWUsIGV4cGlyZVRpbWUpO1xuICBzaG91bGQuZXF1YWwocGFyc2VkU2VxdWVuY2VJZCwgc2VxdWVuY2VJZCk7XG4gIGNvbnN0IHsgdiwgciwgcyB9ID0gZXRoVXRpbC5mcm9tUnBjU2lnKHNpZ25hdHVyZSk7XG4gIGNvbnN0IHNlbmRlclB1YktleSA9IGV0aFV0aWwuZWNyZWNvdmVyKEJ1ZmZlci5mcm9tKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgob3BlcmF0aW9uSGFzaCksICdoZXgnKSwgdiwgciwgcyk7XG4gIGNvbnN0IHNlbmRlckFkZHJlc3MgPSBldGhVdGlsLnB1YlRvQWRkcmVzcyhzZW5kZXJQdWJLZXkpO1xuICBjb25zdCBzZW5kZXJLZXkgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgZXRoVXRpbC5idWZmZXJUb0hleChzZW5kZXJBZGRyZXNzKS5zaG91bGQuZXF1YWwoc2VuZGVyS2V5LmdldEFkZHJlc3MoKSk7XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { TransactionBuilder } from '../../../src';
2
+ export declare function testInitTransaction(txBuilder: TransactionBuilder, testData: any): Promise<void>;
3
+ export declare function testWalletInitTransaction(txBuilder: TransactionBuilder, testData: any): Promise<void>;
4
+ export declare function testSignedInitTransaction(newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
5
+ export declare function testUnsignedInitTransaction(txBuilder: TransactionBuilder, newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
6
+ export declare function testUnsignedInitTransactionFromSerialized(txBuilder: TransactionBuilder, newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
7
+ export declare function testFinalVCheck(txBuilder: TransactionBuilder, testData: any): Promise<void>;
8
+ export declare function testRecoveryWalletDeployment(txBuilder: TransactionBuilder, testData: any): Promise<void>;
9
+ export declare function testRecoveryTransactionWithoutData(txBuilder: TransactionBuilder): Promise<void>;
10
+ //# sourceMappingURL=walletInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAerF;AAED,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAc3F;AAED,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAY9F;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,GAAG,iBAUd;AAED,wBAAsB,yCAAyC,CAC7D,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,GAAG,iBAUd;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAMjF;AAED,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAmB9F;AAED,wBAAsB,kCAAkC,CAAC,SAAS,EAAE,kBAAkB,iBAcrF"}