@bitgo-beta/sdk-coin-tao 1.0.1-alpha.157 → 1.0.1-alpha.159

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 (49) hide show
  1. package/dist/test/integration/index.d.ts +1 -0
  2. package/dist/test/integration/index.d.ts.map +1 -0
  3. package/dist/test/integration/index.js +1 -0
  4. package/dist/test/resources/index.d.ts +150 -0
  5. package/dist/test/resources/index.d.ts.map +1 -0
  6. package/dist/test/resources/index.js +166 -0
  7. package/dist/test/resources/materialData.json +8 -0
  8. package/dist/test/resources/materialDataModified.json +8 -0
  9. package/dist/test/resources/testnet.d.ts +2 -0
  10. package/dist/test/resources/testnet.d.ts.map +1 -0
  11. package/dist/test/resources/testnet.js +5 -0
  12. package/dist/test/unit/fixtures.d.ts +31 -0
  13. package/dist/test/unit/fixtures.d.ts.map +1 -0
  14. package/dist/test/unit/fixtures.js +107 -0
  15. package/dist/test/unit/tao.d.ts +2 -0
  16. package/dist/test/unit/tao.d.ts.map +1 -0
  17. package/dist/test/unit/tao.js +415 -0
  18. package/dist/test/unit/transactionBuilder/base.d.ts +8 -0
  19. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  20. package/dist/test/unit/transactionBuilder/base.js +238 -0
  21. package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts +2 -0
  22. package/dist/test/unit/transactionBuilder/moveStakeBuilder.d.ts.map +1 -0
  23. package/dist/test/unit/transactionBuilder/moveStakeBuilder.js +472 -0
  24. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
  25. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
  26. package/dist/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
  27. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
  28. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  29. package/dist/test/unit/transactionBuilder/stakingBuilder.js +112 -0
  30. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
  31. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
  32. package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +92 -0
  33. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  34. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  35. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +75 -0
  36. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  37. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  38. package/dist/test/unit/transactionBuilder/transferBuilder.js +309 -0
  39. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
  40. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
  41. package/dist/test/unit/transactionBuilder/unstakeBuilder.js +112 -0
  42. package/dist/test/unit/util.d.ts +2 -0
  43. package/dist/test/unit/util.d.ts.map +1 -0
  44. package/dist/test/unit/util.js +29 -0
  45. package/dist/tsconfig.tsbuildinfo +1 -0
  46. package/package.json +11 -8
  47. package/.eslintignore +0 -4
  48. package/.mocharc.yml +0 -8
  49. package/CHANGELOG.md +0 -254
@@ -0,0 +1,59 @@
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 lib_1 = require("../../../src/lib");
41
+ const material = __importStar(require("../../resources/materialData.json"));
42
+ const modifiedMaterial = __importStar(require("../../resources/materialDataModified.json"));
43
+ describe('SingletonRegistry', function () {
44
+ let oldRegistry;
45
+ let newRegistry;
46
+ it('should get the same registry when material is the same', function () {
47
+ oldRegistry = lib_1.SingletonRegistry.getInstance(material);
48
+ should_1.default.notEqual(oldRegistry, null);
49
+ newRegistry = lib_1.SingletonRegistry.getInstance(material);
50
+ oldRegistry.should.equal(newRegistry);
51
+ });
52
+ it('should get a different registry when material is different', function () {
53
+ oldRegistry = lib_1.SingletonRegistry.getInstance(material);
54
+ should_1.default.notEqual(oldRegistry, null);
55
+ newRegistry = lib_1.SingletonRegistry.getInstance(modifiedMaterial);
56
+ oldRegistry.should.not.equal(newRegistry);
57
+ });
58
+ });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2VsdG9uUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3NpbmdlbHRvblJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDBDQUFxRDtBQUdyRCw0RUFBOEQ7QUFDOUQsNEZBQThFO0FBRTlFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixJQUFJLFdBQXlCLENBQUM7SUFDOUIsSUFBSSxXQUF5QixDQUFDO0lBRTlCLEVBQUUsQ0FBQyx3REFBd0QsRUFBRTtRQUMzRCxXQUFXLEdBQUcsdUJBQWlCLENBQUMsV0FBVyxDQUFDLFFBQThCLENBQUMsQ0FBQztRQUM1RSxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsV0FBVyxHQUFHLHVCQUFpQixDQUFDLFdBQVcsQ0FBQyxRQUE4QixDQUFDLENBQUM7UUFDNUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNERBQTRELEVBQUU7UUFDL0QsV0FBVyxHQUFHLHVCQUFpQixDQUFDLFdBQVcsQ0FBQyxRQUE4QixDQUFDLENBQUM7UUFDNUUsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLFdBQVcsR0FBRyx1QkFBaUIsQ0FBQyxXQUFXLENBQUMsZ0JBQXNDLENBQUMsQ0FBQztRQUNwRixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFNpbmdsZXRvblJlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYic7XG5pbXBvcnQgeyBUeXBlUmVnaXN0cnkgfSBmcm9tICdAc3Vic3RyYXRlL3R4d3JhcHBlci1jb3JlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgbWF0ZXJpYWwgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL21hdGVyaWFsRGF0YS5qc29uJztcbmltcG9ydCAqIGFzIG1vZGlmaWVkTWF0ZXJpYWwgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL21hdGVyaWFsRGF0YU1vZGlmaWVkLmpzb24nO1xuXG5kZXNjcmliZSgnU2luZ2xldG9uUmVnaXN0cnknLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBvbGRSZWdpc3RyeTogVHlwZVJlZ2lzdHJ5O1xuICBsZXQgbmV3UmVnaXN0cnk6IFR5cGVSZWdpc3RyeTtcblxuICBpdCgnc2hvdWxkIGdldCB0aGUgc2FtZSByZWdpc3RyeSB3aGVuIG1hdGVyaWFsIGlzIHRoZSBzYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIG9sZFJlZ2lzdHJ5ID0gU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UobWF0ZXJpYWwgYXMgSW50ZXJmYWNlLk1hdGVyaWFsKTtcbiAgICBzaG91bGQubm90RXF1YWwob2xkUmVnaXN0cnksIG51bGwpO1xuICAgIG5ld1JlZ2lzdHJ5ID0gU2luZ2xldG9uUmVnaXN0cnkuZ2V0SW5zdGFuY2UobWF0ZXJpYWwgYXMgSW50ZXJmYWNlLk1hdGVyaWFsKTtcbiAgICBvbGRSZWdpc3RyeS5zaG91bGQuZXF1YWwobmV3UmVnaXN0cnkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCBhIGRpZmZlcmVudCByZWdpc3RyeSB3aGVuIG1hdGVyaWFsIGlzIGRpZmZlcmVudCcsIGZ1bmN0aW9uICgpIHtcbiAgICBvbGRSZWdpc3RyeSA9IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKG1hdGVyaWFsIGFzIEludGVyZmFjZS5NYXRlcmlhbCk7XG4gICAgc2hvdWxkLm5vdEVxdWFsKG9sZFJlZ2lzdHJ5LCBudWxsKTtcbiAgICBuZXdSZWdpc3RyeSA9IFNpbmdsZXRvblJlZ2lzdHJ5LmdldEluc3RhbmNlKG1vZGlmaWVkTWF0ZXJpYWwgYXMgSW50ZXJmYWNlLk1hdGVyaWFsKTtcbiAgICBvbGRSZWdpc3RyeS5zaG91bGQubm90LmVxdWFsKG5ld1JlZ2lzdHJ5KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -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/transactionBuilder/stakingBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const should_1 = __importDefault(require("should"));
8
+ const sinon_1 = require("sinon");
9
+ const stakingBuilder_1 = require("../../../src/lib/stakingBuilder");
10
+ const resources_1 = require("../../resources");
11
+ const base_1 = require("./base");
12
+ const utils_1 = __importDefault(require("../../../src/lib/utils"));
13
+ const resources_2 = require("../../../src/resources");
14
+ describe('Tao Stake Builder', function () {
15
+ const referenceBlock = '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d';
16
+ let builder;
17
+ const sender = resources_1.accounts.account1;
18
+ beforeEach(function () {
19
+ const config = (0, base_1.buildTestConfig)();
20
+ const material = utils_1.default.getMaterial(config.network.type);
21
+ builder = new stakingBuilder_1.StakingBuilder(config).material(material);
22
+ });
23
+ describe('setter validation', function () {
24
+ it('should validate stake amount', function () {
25
+ const spyValidateValue = (0, sinon_1.spy)(builder, 'validateValue');
26
+ assert_1.default.throws(() => builder.amount('-1'), (e) => e.message === 'Value cannot be less than zero');
27
+ should_1.default.doesNotThrow(() => builder.amount('1000'));
28
+ sinon_1.assert.calledTwice(spyValidateValue);
29
+ });
30
+ it('should validate hotkey address', function () {
31
+ const spyValidateAddress = (0, sinon_1.spy)(builder, 'validateAddress');
32
+ assert_1.default.throws(() => builder.hotkey({ address: 'abc' }), (e) => e.message === `The address 'abc' is not a well-formed dot address`);
33
+ should_1.default.doesNotThrow(() => builder.hotkey({ address: '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT' }));
34
+ sinon_1.assert.calledTwice(spyValidateAddress);
35
+ });
36
+ });
37
+ describe('build stake transaction', function () {
38
+ it('should build a stake transaction', async function () {
39
+ builder
40
+ .amount('9007199254740995')
41
+ .hotkey({ address: '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT' })
42
+ .netuid('0')
43
+ .sender({ address: sender.address })
44
+ .validity({ firstValid: 3933, maxDuration: 64 })
45
+ .referenceBlock(referenceBlock)
46
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
47
+ .fee({ amount: 0, type: 'tip' })
48
+ .addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
49
+ const tx = await builder.build();
50
+ const txJson = tx.toJson();
51
+ should_1.default.deepEqual(txJson.amount, '9007199254740995');
52
+ should_1.default.deepEqual(txJson.to, '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT');
53
+ should_1.default.deepEqual(txJson.netuid, '0');
54
+ should_1.default.deepEqual(txJson.sender, sender.address);
55
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
56
+ should_1.default.deepEqual(txJson.referenceBlock, referenceBlock);
57
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
58
+ should_1.default.deepEqual(txJson.specVersion, Number(resources_2.testnetMaterial.specVersion));
59
+ should_1.default.deepEqual(txJson.nonce, 200);
60
+ should_1.default.deepEqual(txJson.tip, 0);
61
+ should_1.default.deepEqual(txJson.transactionVersion, Number(resources_2.testnetMaterial.txVersion));
62
+ should_1.default.deepEqual(txJson.chainName.toLowerCase(), resources_1.chainName);
63
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
64
+ });
65
+ it('should build an unsigned stake transaction', async function () {
66
+ builder
67
+ .amount('50000000')
68
+ .hotkey({ address: '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT' })
69
+ .netuid('0')
70
+ .sender({ address: sender.address })
71
+ .validity({ firstValid: 3933, maxDuration: 64 })
72
+ .referenceBlock(referenceBlock)
73
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
74
+ .fee({ amount: 0, type: 'tip' });
75
+ const tx = await builder.build();
76
+ const txJson = tx.toJson();
77
+ should_1.default.deepEqual(txJson.amount, '50000000');
78
+ should_1.default.deepEqual(txJson.to, '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT');
79
+ should_1.default.deepEqual(txJson.netuid, '0');
80
+ should_1.default.deepEqual(txJson.sender, sender.address);
81
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
82
+ should_1.default.deepEqual(txJson.referenceBlock, referenceBlock);
83
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
84
+ should_1.default.deepEqual(txJson.specVersion, Number(resources_2.testnetMaterial.specVersion));
85
+ should_1.default.deepEqual(txJson.nonce, 200);
86
+ should_1.default.deepEqual(txJson.tip, 0);
87
+ should_1.default.deepEqual(txJson.transactionVersion, Number(resources_2.testnetMaterial.txVersion));
88
+ should_1.default.deepEqual(txJson.chainName.toLowerCase(), resources_1.chainName);
89
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
90
+ });
91
+ it('should build from raw signed tx', async function () {
92
+ builder.from(resources_1.rawTx.stake.signed);
93
+ builder.validity({ firstValid: 3933, maxDuration: 64 }).referenceBlock(referenceBlock);
94
+ const tx = await builder.build();
95
+ const txJson = tx.toJson();
96
+ should_1.default.deepEqual(txJson.amount, '100000000');
97
+ should_1.default.deepEqual(txJson.to, '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT');
98
+ should_1.default.deepEqual(txJson.netuid, '0');
99
+ should_1.default.deepEqual(txJson.sender, '5FvSWbV4hGC7GvXQKKtiVmmHSH3JELK8R3JS8Z5adnACFBwh');
100
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
101
+ should_1.default.deepEqual(txJson.referenceBlock, referenceBlock);
102
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
103
+ should_1.default.deepEqual(txJson.specVersion, Number(resources_2.testnetMaterial.specVersion));
104
+ should_1.default.deepEqual(txJson.nonce, 360);
105
+ should_1.default.deepEqual(txJson.tip, 0);
106
+ should_1.default.deepEqual(txJson.transactionVersion, Number(resources_2.testnetMaterial.txVersion));
107
+ should_1.default.deepEqual(txJson.chainName.toLowerCase(), resources_1.chainName);
108
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
109
+ });
110
+ });
111
+ });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixpQ0FBbUQ7QUFDbkQsb0VBQWlFO0FBQ2pFLCtDQUE0RjtBQUM1RixpQ0FBeUM7QUFDekMsbUVBQTJDO0FBQzNDLHNEQUF5RDtBQUV6RCxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsTUFBTSxjQUFjLEdBQUcsb0VBQW9FLENBQUM7SUFDNUYsSUFBSSxPQUF1QixDQUFDO0lBQzVCLE1BQU0sTUFBTSxHQUFHLG9CQUFRLENBQUMsUUFBUSxDQUFDO0lBRWpDLFVBQVUsQ0FBQztRQUNULE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLEdBQUcsSUFBSSwrQkFBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtRQUM1QixFQUFFLENBQUMsOEJBQThCLEVBQUU7WUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLFdBQUcsRUFBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDdkQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDMUIsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssZ0NBQWdDLENBQzdELENBQUM7WUFDRixnQkFBTSxDQUFDLFlBQVksQ0FBQyxHQUFH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QUNwQyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLGdCQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsMkJBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQy9FLGdCQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUscUJBQVMsQ0FBQyxDQUFDO1lBQzVELGdCQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgc3B5LCBhc3NlcnQgYXMgU2lub25Bc3NlcnQgfSBmcm9tICdzaW5vbic7XG5pbXBvcnQgeyBTdGFraW5nQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ0J1aWxkZXInO1xuaW1wb3J0IHsgYWNjb3VudHMsIG1vY2tUc3NTaWduYXR1cmUsIGdlbmVzaXNIYXNoLCBjaGFpbk5hbWUsIHJhd1R4IH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzJztcbmltcG9ydCB7IGJ1aWxkVGVzdENvbmZpZyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyB0ZXN0bmV0TWF0ZXJpYWwgfSBmcm9tICcuLi8uLi8uLi9zcmMvcmVzb3VyY2VzJztcblxuZGVzY3JpYmUoJ1RhbyBTdGFrZSBCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCByZWZlcmVuY2VCbG9jayA9ICcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnO1xuICBsZXQgYnVpbGRlcjogU3Rha2luZ0J1aWxkZXI7XG4gIGNvbnN0IHNlbmRlciA9IGFjY291bnRzLmFjY291bnQxO1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGJ1aWxkVGVzdENvbmZpZygpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29uZmlnLm5ldHdvcmsudHlwZSk7XG4gICAgYnVpbGRlciA9IG5ldyBTdGFraW5nQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NldHRlciB2YWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgc3Rha2UgYW1vdW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc3B5VmFsaWRhdGVWYWx1ZSA9IHNweShidWlsZGVyLCAndmFsaWRhdGVWYWx1ZScpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5hbW91bnQoJy0xJyksXG4gICAgICAgIChlOiBFcnJvcikgPT4gZS5tZXNzYWdlID09PSAnVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJ1xuICAgICAgKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5hbW91bnQoJzEwMDAnKSk7XG4gICAgICBTaW5vbkFzc2VydC5jYWxsZWRUd2ljZShzcHlWYWxpZGF0ZVZhbHVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgaG90a2V5IGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBzcHlWYWxpZGF0ZUFkZHJlc3MgPSBzcHkoYnVpbGRlciwgJ3ZhbGlkYXRlQWRkcmVzcycpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5ob3RrZXkoeyBhZGRyZXNzOiAnYWJjJyB9KSxcbiAgICAgICAgKGU6IEVycm9yKSA9PiBlLm1lc3NhZ2UgPT09IGBUaGUgYWRkcmVzcyAnYWJjJyBpcyBub3QgYSB3ZWxsLWZvcm1lZCBkb3QgYWRkcmVzc2BcbiAgICAgICk7XG4gICAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IGJ1aWxkZXIuaG90a2V5KHsgYWRkcmVzczogJzVGQ1BUbmpldkdxQXVUdHRldEJ5NGEyNEVqM3BIOWZpUThmbXZQMVprclZzTFVvVCcgfSkpO1xuICAgICAgU2lub25Bc3NlcnQuY2FsbGVkVHdpY2Uoc3B5VmFsaWRhdGVBZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIHN0YWtlIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFrZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLmFtb3VudCgnOTAwNzE5OTI1NDc0MDk5NScpXG4gICAgICAgIC5ob3RrZXkoeyBhZGRyZXNzOiAnNUZDUFRuamV2R3FBdVR0dGV0Qnk0YTI0RWozcEg5ZmlROGZtdlAxWmtyVnNMVW9UJyB9KVxuICAgICAgICAubmV0dWlkKCcwJylcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlci5hZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2spXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDIwMCB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAuYWRkU2lnbmF0dXJlKHsgcHViOiBzZW5kZXIucHVibGljS2V5IH0sIEJ1ZmZlci5mcm9tKG1vY2tUc3NTaWduYXR1cmUsICdoZXgnKSk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5hbW91bnQsICc5MDA3MTk5MjU0NzQwOTk1Jyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50bywgJzVGQ1BUbmpldkdxQXVUdHRldEJ5NGEyNEVqM3BIOWZpUThmbXZQMVprclZzTFVvVCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ubmV0dWlkLCAnMCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc2VuZGVyLCBzZW5kZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ibG9ja051bWJlciwgMzkzMyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5yZWZlcmVuY2VCbG9jaywgcmVmZXJlbmNlQmxvY2spO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZ2VuZXNpc0hhc2gsIGdlbmVzaXNIYXNoKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNwZWNWZXJzaW9uLCBOdW1iZXIodGVzdG5ldE1hdGVyaWFsLnNwZWNWZXJzaW9uKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRpcCwgMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50cmFuc2FjdGlvblZlcnNpb24sIE51bWJlcih0ZXN0bmV0TWF0ZXJpYWwudHhWZXJzaW9uKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5jaGFpbk5hbWUudG9Mb3dlckNhc2UoKSwgY2hhaW5OYW1lKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmVyYVBlcmlvZCwgNjQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCBzdGFrZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLmFtb3VudCgnNTAwMDAwMDAnKVxuICAgICAgICAuaG90a2V5KHsgYWRkcmVzczogJzVGQ1BUbmpldkdxQXVUdHRldEJ5NGEyNEVqM3BIOWZpUThmbXZQMVprclZzTFVvVCcgfSlcbiAgICAgICAgLm5ldHVpZCgnMCcpXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXIuYWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKHJlZmVyZW5jZUJsb2NrKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAyMDAgfSlcbiAgICAgICAgLmZlZSh7IGFtb3VudDogMCwgdHlwZTogJ3RpcCcgfSk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5hbW91bnQsICc1MDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udG8sICc1RkNQVG5qZXZHcUF1VHR0ZXRCeTRhMjRFajNwSDlmaVE4Zm12UDFaa3JWc0xVb1QnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLm5ldHVpZCwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNlbmRlciwgc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uYmxvY2tOdW1iZXIsIDM5MzMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucmVmZXJlbmNlQmxvY2ssIHJlZmVyZW5jZUJsb2NrKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmdlbmVzaXNIYXNoLCBnZW5lc2lzSGFzaCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zcGVjVmVyc2lvbiwgTnVtYmVyKHRlc3RuZXRNYXRlcmlhbC5zcGVjVmVyc2lvbikpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ubm9uY2UsIDIwMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50aXAsIDApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udHJhbnNhY3Rpb25WZXJzaW9uLCBOdW1iZXIodGVzdG5ldE1hdGVyaWFsLnR4VmVyc2lvbikpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uY2hhaW5OYW1lLnRvTG93ZXJDYXNlKCksIGNoYWluTmFtZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5lcmFQZXJpb2QsIDY0KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgZnJvbSByYXcgc2lnbmVkIHR4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYnVpbGRlci5mcm9tKHJhd1R4LnN0YWtlLnNpZ25lZCk7XG4gICAgICBidWlsZGVyLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMywgbWF4RHVyYXRpb246IDY0IH0pLnJlZmVyZW5jZUJsb2NrKHJlZmVyZW5jZUJsb2NrKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5hbW91bnQsICcxMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRvLCAnNUZDUFRuamV2R3FBdVR0dGV0Qnk0YTI0RWozcEg5ZmlROGZtdlAxWmtyVnNMVW9UJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5uZXR1aWQsICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zZW5kZXIsICc1RnZTV2JWNGhHQzdHdlhRS0t0aVZtbUhTSDNKRUxLOFIzSlM4WjVhZG5BQ0ZCd2gnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmJsb2NrTnVtYmVyLCAzOTMzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnJlZmVyZW5jZUJsb2NrLCByZWZlcmVuY2VCbG9jayk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5nZW5lc2lzSGFzaCwgZ2VuZXNpc0hhc2gpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc3BlY1ZlcnNpb24sIE51bWJlcih0ZXN0bmV0TWF0ZXJpYWwuc3BlY1ZlcnNpb24pKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLm5vbmNlLCAzNjApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udGlwLCAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRyYW5zYWN0aW9uVmVyc2lvbiwgTnVtYmVyKHRlc3RuZXRNYXRlcmlhbC50eFZlcnNpb24pKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmNoYWluTmFtZS50b0xvd2VyQ2FzZSgpLCBjaGFpbk5hbWUpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZXJhUGVyaW9kLCA2NCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokenTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/tokenTransferBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const should_1 = __importDefault(require("should"));
8
+ const sinon_1 = require("sinon");
9
+ const tokenTransferBuilder_1 = require("../../../src/lib/tokenTransferBuilder");
10
+ const utils_1 = __importDefault(require("../../../src/lib/utils"));
11
+ const resources_1 = require("../../resources");
12
+ const base_1 = require("./base");
13
+ describe('Tao Token Transfer Builder', function () {
14
+ const referenceBlock = '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d';
15
+ let builder;
16
+ const sender = resources_1.accounts.account1;
17
+ beforeEach(function () {
18
+ const config = (0, base_1.buildTestConfig)();
19
+ const material = utils_1.default.getMaterial(config.network.type);
20
+ builder = new tokenTransferBuilder_1.TokenTransferBuilder(config).material(material);
21
+ });
22
+ describe('setter validation', function () {
23
+ it('should validate amount', function () {
24
+ const spyValidateValue = (0, sinon_1.spy)(builder, 'validateValue');
25
+ assert_1.default.throws(() => builder.amount('-1'), (e) => e.message === 'Value cannot be less than zero');
26
+ should_1.default.doesNotThrow(() => builder.amount('1000'));
27
+ sinon_1.assert.calledTwice(spyValidateValue);
28
+ });
29
+ it('should validate address', function () {
30
+ const spyValidateAddress = (0, sinon_1.spy)(builder, 'validateAddress');
31
+ assert_1.default.throws(() => builder.hotkey('abc'), (e) => e.message === `The address 'abc' is not a well-formed dot address`);
32
+ assert_1.default.throws(() => builder.destinationColdkey('abc'), (e) => e.message === `The address 'abc' is not a well-formed dot address`);
33
+ should_1.default.doesNotThrow(() => builder.hotkey('5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT'));
34
+ should_1.default.doesNotThrow(() => builder.destinationColdkey('5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT'));
35
+ sinon_1.assert.callCount(spyValidateAddress, 4);
36
+ });
37
+ });
38
+ describe('build transfer stake transaction', function () {
39
+ it('should build a transfer stake transaction', async function () {
40
+ builder
41
+ .amount('9007199254740995')
42
+ .destinationColdkey('5Ffp1wJCPu4hzVDTo7XaMLqZSvSadyUQmxWPDw74CBjECSoq')
43
+ .hotkey('5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT')
44
+ .originNetuid('1')
45
+ .destinationNetuid('1')
46
+ .sender({ address: sender.address })
47
+ .validity({ firstValid: 3933, maxDuration: 64 })
48
+ .referenceBlock(referenceBlock)
49
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
50
+ .fee({ amount: 0, type: 'tip' })
51
+ .addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
52
+ const tx = await builder.build();
53
+ const serializedTx = tx.toBroadcastFormat();
54
+ serializedTx.should.equal(resources_1.rawTx.transferStake.signed);
55
+ tx.toJson().should.deepEqual({
56
+ id: '0xe5ce9ff1bbdf54d1dbd5adee8648027aa7efa99d319b041afb4b57be2042fc11',
57
+ sender: '5EGoFA95omzemRssELLDjVenNZ68aXyUeqtKQScXSEBvVJkr',
58
+ referenceBlock: '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d',
59
+ blockNumber: 3933,
60
+ genesisHash: '0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105',
61
+ nonce: 200,
62
+ specVersion: 224,
63
+ transactionVersion: 1,
64
+ eraPeriod: 64,
65
+ chainName: 'Bittensor',
66
+ tip: 0,
67
+ destinationColdkey: '5Ffp1wJCPu4hzVDTo7XaMLqZSvSadyUQmxWPDw74CBjECSoq',
68
+ hotkey: '5FCPTnjevGqAuTttetBy4a24Ej3pH9fiQ8fmvP1ZkrVsLUoT',
69
+ originNetuid: '1',
70
+ destinationNetuid: '1',
71
+ alphaAmount: '9007199254740995',
72
+ });
73
+ tx.explainTransaction().should.containDeep({
74
+ outputs: [
75
+ {
76
+ address: '5Ffp1wJCPu4hzVDTo7XaMLqZSvSadyUQmxWPDw74CBjECSoq',
77
+ amount: '9007199254740995',
78
+ tokenName: 'ttao:apex',
79
+ },
80
+ ],
81
+ });
82
+ });
83
+ it('should re-build from raw signed tx', async function () {
84
+ builder.from(resources_1.rawTx.transferStake.signed);
85
+ builder.validity({ firstValid: 3933, maxDuration: 64 }).referenceBlock(referenceBlock);
86
+ const tx = await builder.build();
87
+ const serializedTx = tx.toBroadcastFormat();
88
+ serializedTx.should.equal(resources_1.rawTx.transferStake.signed);
89
+ });
90
+ });
91
+ });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixpQ0FBbUQ7QUFDbkQsZ0ZBQTZFO0FBQzdFLG1FQUEyQztBQUMzQywrQ0FBb0U7QUFDcEUsaUNBQXlDO0FBRXpDLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRTtJQUNyQyxNQUFNLGNBQWMsR0FBRyxvRUFBb0UsQ0FBQztJQUM1RixJQUFJLE9BQTZCLENBQUM7SUFDbEMsTUFBTSxNQUFNLEdBQUcsb0JBQVEsQ0FBQyxRQUFRLENBQUM7SUFFakMsVUFBVSxDQUFDO1FBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBQSxzQkFBZSxHQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxJQUFJLDJDQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtRQUM1QixFQUFFLENBQUMsd0JBQXdCLEVBQUU7WUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLFdBQUcsRUFBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDdkQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDMUIsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssZ0NBQWdDLENBQzdELENBQUM7WUFDRixnQkFBTSxDQUFDLFlBQVksQ0FBQyxHQUFH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LEVBQUUsRUFBRTtnQkFDYixTQUFTLEVBQUUsV0FBVztnQkFDdEIsR0FBRyxFQUFFLENBQUM7Z0JBQ04sa0JBQWtCLEVBQUUsa0RBQWtEO2dCQUN0RSxNQUFNLEVBQUUsa0RBQWtEO2dCQUMxRCxZQUFZLEVBQUUsR0FBRztnQkFDakIsaUJBQWlCLEVBQUUsR0FBRztnQkFDdEIsV0FBVyxFQUFFLGtCQUFrQjthQUNoQyxDQUFDLENBQUM7WUFDSCxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO2dCQUN6QyxPQUFPLEVBQUU7b0JBQ1A7d0JBQ0UsT0FBTyxFQUFFLGtEQUFrRDt3QkFDM0QsTUFBTSxFQUFFLGtCQUFrQjt3QkFDMUIsU0FBUyxFQUFFLFdBQVc7cUJBQ3ZCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSztZQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBhc3NlcnQgYXMgU2lub25Bc3NlcnQsIHNweSB9IGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyBhY2NvdW50cywgbW9ja1Rzc1NpZ25hdHVyZSwgcmF3VHggfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgYnVpbGRUZXN0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcblxuZGVzY3JpYmUoJ1RhbyBUb2tlbiBUcmFuc2ZlciBCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCByZWZlcmVuY2VCbG9jayA9ICcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnO1xuICBsZXQgYnVpbGRlcjogVG9rZW5UcmFuc2ZlckJ1aWxkZXI7XG4gIGNvbnN0IHNlbmRlciA9IGFjY291bnRzLmFjY291bnQxO1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGJ1aWxkVGVzdENvbmZpZygpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29uZmlnLm5ldHdvcmsudHlwZSk7XG4gICAgYnVpbGRlciA9IG5ldyBUb2tlblRyYW5zZmVyQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NldHRlciB2YWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYW1vdW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc3B5VmFsaWRhdGVWYWx1ZSA9IHNweShidWlsZGVyLCAndmFsaWRhdGVWYWx1ZScpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5hbW91bnQoJy0xJyksXG4gICAgICAgIChlOiBFcnJvcikgPT4gZS5tZXNzYWdlID09PSAnVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJ1xuICAgICAgKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5hbW91bnQoJzEwMDAnKSk7XG4gICAgICBTaW5vbkFzc2VydC5jYWxsZWRUd2ljZShzcHlWYWxpZGF0ZVZhbHVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHNweVZhbGlkYXRlQWRkcmVzcyA9IHNweShidWlsZGVyLCAndmFsaWRhdGVBZGRyZXNzJyk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBidWlsZGVyLmhvdGtleSgnYWJjJyksXG4gICAgICAgIChlOiBFcnJvcikgPT4gZS5tZXNzYWdlID09PSBgVGhlIGFkZHJlc3MgJ2FiYycgaXMgbm90IGEgd2VsbC1mb3JtZWQgZG90IGFkZHJlc3NgXG4gICAgICApO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5kZXN0aW5hdGlvbkNvbGRrZXkoJ2FiYycpLFxuICAgICAgICAoZTogRXJyb3IpID0+IGUubWVzc2FnZSA9PT0gYFRoZSBhZGRyZXNzICdhYmMnIGlzIG5vdCBhIHdlbGwtZm9ybWVkIGRvdCBhZGRyZXNzYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5ob3RrZXkoJzVGQ1BUbmpldkdxQXVUdHRldEJ5NGEyNEVqM3BIOWZpUThmbXZQMVprclZzTFVvVCcpKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5kZXN0aW5hdGlvbkNvbGRrZXkoJzVGQ1BUbmpldkdxQXVUdHRldEJ5NGEyNEVqM3BIOWZpUThmbXZQMVprclZzTFVvVCcpKTtcblxuICAgICAgU2lub25Bc3NlcnQuY2FsbENvdW50KHNweVZhbGlkYXRlQWRkcmVzcywgNCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZCB0cmFuc2ZlciBzdGFrZSB0cmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgdHJhbnNmZXIgc3Rha2UgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC5hbW91bnQoJzkwMDcxOTkyNTQ3NDA5OTUnKVxuICAgICAgICAuZGVzdGluYXRpb25Db2xka2V5KCc1RmZwMXdKQ1B1NGh6VkRUbzdYYU1McVpTdlNhZHlVUW14V1BEdzc0Q0JqRUNTb3EnKVxuICAgICAgICAuaG90a2V5KCc1RkNQVG5qZXZHcUF1VHR0ZXRCeTRhMjRFajNwSDlmaVE4Zm12UDFaa3JWc0xVb1QnKVxuICAgICAgICAub3JpZ2luTmV0dWlkKCcxJylcbiAgICAgICAgLmRlc3RpbmF0aW9uTmV0dWlkKCcxJylcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlci5hZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2spXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDIwMCB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KVxuICAgICAgICAuYWRkU2lnbmF0dXJlKHsgcHViOiBzZW5kZXIucHVibGljS2V5IH0sIEJ1ZmZlci5mcm9tKG1vY2tUc3NTaWduYXR1cmUsICdoZXgnKSk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZFR4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgICAgc2VyaWFsaXplZFR4LnNob3VsZC5lcXVhbChyYXdUeC50cmFuc2ZlclN0YWtlLnNpZ25lZCk7XG4gICAgICB0eC50b0pzb24oKS5zaG91bGQuZGVlcEVxdWFsKHtcbiAgICAgICAgaWQ6ICcweGU1Y2U5ZmYxYmJkZjU0ZDFkYmQ1YWRlZTg2NDgwMjdhYTdlZmE5OWQzMTliMDQxYWZiNGI1N2JlMjA0MmZjMTEnLFxuICAgICAgICBzZW5kZXI6ICc1RUdvRkE5NW9temVtUnNzRUxMRGpWZW5OWjY4YVh5VWVxdEtRU2NYU0VCdlZKa3InLFxuICAgICAgICByZWZlcmVuY2VCbG9jazogJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcsXG4gICAgICAgIGJsb2NrTnVtYmVyOiAzOTMzLFxuICAgICAgICBnZW5lc2lzSGFzaDogJzB4OGY5Y2Y4NTZiZjU1OGExNDQ0MGU3NTU2OWM5ZTU4NTk0NzU3MDQ4ZDdiM2E4NGI1ZDI1ZjZiZDk3ODI2MzEwNScsXG4gICAgICAgIG5vbmNlOiAyMDAsXG4gICAgICAgIHNwZWNWZXJzaW9uOiAyMjQsXG4gICAgICAgIHRyYW5zYWN0aW9uVmVyc2lvbjogMSxcbiAgICAgICAgZXJhUGVyaW9kOiA2NCxcbiAgICAgICAgY2hhaW5OYW1lOiAnQml0dGVuc29yJyxcbiAgICAgICAgdGlwOiAwLFxuICAgICAgICBkZXN0aW5hdGlvbkNvbGRrZXk6ICc1RmZwMXdKQ1B1NGh6VkRUbzdYYU1McVpTdlNhZHlVUW14V1BEdzc0Q0JqRUNTb3EnLFxuICAgICAgICBob3RrZXk6ICc1RkNQVG5qZXZHcUF1VHR0ZXRCeTRhMjRFajNwSDlmaVE4Zm12UDFaa3JWc0xVb1QnLFxuICAgICAgICBvcmlnaW5OZXR1aWQ6ICcxJyxcbiAgICAgICAgZGVzdGluYXRpb25OZXR1aWQ6ICcxJyxcbiAgICAgICAgYWxwaGFBbW91bnQ6ICc5MDA3MTk5MjU0NzQwOTk1JyxcbiAgICAgIH0pO1xuICAgICAgdHguZXhwbGFpblRyYW5zYWN0aW9uKCkuc2hvdWxkLmNvbnRhaW5EZWVwKHtcbiAgICAgICAgb3V0cHV0czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFkZHJlc3M6ICc1RmZwMXdKQ1B1NGh6VkRUbzdYYU1McVpTdlNhZHlVUW14V1BEdzc0Q0JqRUNTb3EnLFxuICAgICAgICAgICAgYW1vdW50OiAnOTAwNzE5OTI1NDc0MDk5NScsXG4gICAgICAgICAgICB0b2tlbk5hbWU6ICd0dGFvOmFwZXgnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmUtYnVpbGQgZnJvbSByYXcgc2lnbmVkIHR4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYnVpbGRlci5mcm9tKHJhd1R4LnRyYW5zZmVyU3Rha2Uuc2lnbmVkKTtcbiAgICAgIGJ1aWxkZXIudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSkucmVmZXJlbmNlQmxvY2socmVmZXJlbmNlQmxvY2spO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCBzZXJpYWxpemVkVHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2VyaWFsaXplZFR4LnNob3VsZC5lcXVhbChyYXdUeC50cmFuc2ZlclN0YWtlLnNpZ25lZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transactionBuilderFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/transactionBuilderFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
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 statics_1 = require("@bitgo-beta/statics");
40
+ const should_1 = __importDefault(require("should"));
41
+ const lib_1 = require("../../../src/lib");
42
+ const resources_1 = require("../../resources");
43
+ const materialData = __importStar(require("../../resources/materialData.json"));
44
+ describe('Tao Transaction Builder Factory', function () {
45
+ const sender = resources_1.accounts.account1;
46
+ let factory;
47
+ // TODO: BG-43197 & STLX-14374
48
+ xdescribe('parse generic builders', function () {
49
+ before(function () {
50
+ factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('ttao'));
51
+ });
52
+ [{ type: 'transfer', builder: lib_1.TransferBuilder }].forEach((txn) => {
53
+ it(`should parse an unsigned ${txn.type} txn and return a ${txn.type} builder`, async () => {
54
+ const builder = factory.from(resources_1.rawTx[txn.type].unsigned).material(materialData);
55
+ builder.should.be.instanceOf(txn.builder);
56
+ builder
57
+ .validity({ firstValid: 3933 })
58
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
59
+ .sender({ address: sender.address });
60
+ const tx = await builder.build();
61
+ should_1.default.equal(tx.toBroadcastFormat(), resources_1.rawTx[txn.type].unsigned);
62
+ });
63
+ it(`should parse a signed ${txn.type} txn and return a ${txn.type} builder`, async () => {
64
+ const builder = factory.from(resources_1.rawTx[txn.type].signed).material(materialData);
65
+ builder.should.be.instanceOf(txn.builder);
66
+ builder
67
+ .validity({ firstValid: 3933 })
68
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
69
+ const tx = await builder.build();
70
+ should_1.default.equal(tx.toBroadcastFormat(), resources_1.rawTx[txn.type].signed);
71
+ });
72
+ });
73
+ });
74
+ });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUE0QztBQUM1QyxvREFBNEI7QUFDNUIsMENBQThFO0FBRTlFLCtDQUFrRDtBQUNsRCxnRkFBa0U7QUFFbEUsUUFBUSxDQUFDLGlDQUFpQyxFQUFFO0lBQzFDLE1BQU0sTUFBTSxHQUFHLG9CQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2pDLElBQUksT0FBa0MsQ0FBQztJQUV2Qyw4QkFBOEI7SUFDOUIsU0FBUyxDQUFDLHdCQUF3QixFQUFFO1FBQ2xDLE1BQU0sQ0FBQztZQUNMLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxxQkFBZSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvRCxFQUFFLENBQUMsNEJBQTRCLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLENBQUMsSUFBSSxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQWtDLENBQUMsQ0FBQztnQkFFcEcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFMUMsT0FBTztxQkFDSixRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQzlCLGNBQWMsQ0FBQyxvRUFBb0UsQ0FBQztxQkFDcEYsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsaUJBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7WUFFSCxFQUFFLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixHQUFHLENBQUMsSUFBSSxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3RGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQWtDLENBQUMsQ0FBQztnQkFFbEcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFMUMsT0FBTztxQkFDSixRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQzlCLGNBQWMsQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO2dCQUN4RixNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsaUJBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYic7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgcmF3VHgsIGFjY291bnRzIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzJztcbmltcG9ydCAqIGFzIG1hdGVyaWFsRGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvbWF0ZXJpYWxEYXRhLmpzb24nO1xuXG5kZXNjcmliZSgnVGFvIFRyYW5zYWN0aW9uIEJ1aWxkZXIgRmFjdG9yeScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qgc2VuZGVyID0gYWNjb3VudHMuYWNjb3VudDE7XG4gIGxldCBmYWN0b3J5OiBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5O1xuXG4gIC8vIFRPRE86IEJHLTQzMTk3ICYgU1RMWC0xNDM3NFxuICB4ZGVzY3JpYmUoJ3BhcnNlIGdlbmVyaWMgYnVpbGRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3R0YW8nKSk7XG4gICAgfSk7XG5cbiAgICBbeyB0eXBlOiAndHJhbnNmZXInLCBidWlsZGVyOiBUcmFuc2ZlckJ1aWxkZXIgfV0uZm9yRWFjaCgodHhuKSA9PiB7XG4gICAgICBpdChgc2hvdWxkIHBhcnNlIGFuIHVuc2lnbmVkICR7dHhuLnR5cGV9IHR4biBhbmQgcmV0dXJuIGEgJHt0eG4udHlwZX0gYnVpbGRlcmAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbShyYXdUeFt0eG4udHlwZV0udW5zaWduZWQpLm1hdGVyaWFsKG1hdGVyaWFsRGF0YSBhcyBJbnRlcmZhY2UuTWF0ZXJpYWwpO1xuXG4gICAgICAgIGJ1aWxkZXIuc2hvdWxkLmJlLmluc3RhbmNlT2YodHhuLmJ1aWxkZXIpO1xuXG4gICAgICAgIGJ1aWxkZXJcbiAgICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXIuYWRkcmVzcyB9KTtcbiAgICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCByYXdUeFt0eG4udHlwZV0udW5zaWduZWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KGBzaG91bGQgcGFyc2UgYSBzaWduZWQgJHt0eG4udHlwZX0gdHhuIGFuZCByZXR1cm4gYSAke3R4bi50eXBlfSBidWlsZGVyYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tKHJhd1R4W3R4bi50eXBlXS5zaWduZWQpLm1hdGVyaWFsKG1hdGVyaWFsRGF0YSBhcyBJbnRlcmZhY2UuTWF0ZXJpYWwpO1xuXG4gICAgICAgIGJ1aWxkZXIuc2hvdWxkLmJlLmluc3RhbmNlT2YodHhuLmJ1aWxkZXIpO1xuXG4gICAgICAgIGJ1aWxkZXJcbiAgICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKTtcbiAgICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCByYXdUeFt0eG4udHlwZV0uc2lnbmVkKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/transferBuilder.ts"],"names":[],"mappings":""}