@bitgo-beta/sdk-coin-apt 1.0.1-beta.91 → 1.0.1-beta.911

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 (145) hide show
  1. package/dist/src/apt.d.ts +9 -2
  2. package/dist/src/apt.d.ts.map +1 -1
  3. package/dist/src/apt.js +37 -11
  4. package/dist/src/aptNFTCollection.d.ts +18 -0
  5. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  6. package/dist/src/aptNFTCollection.js +52 -0
  7. package/dist/src/aptToken.d.ts +19 -0
  8. package/dist/src/aptToken.d.ts.map +1 -0
  9. package/dist/src/aptToken.js +52 -0
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -1
  13. package/dist/src/lib/constants.d.ts +16 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -1
  15. package/dist/src/lib/constants.js +18 -2
  16. package/dist/src/lib/iface.d.ts +98 -2
  17. package/dist/src/lib/iface.d.ts.map +1 -1
  18. package/dist/src/lib/iface.js +1 -1
  19. package/dist/src/lib/index.d.ts +18 -4
  20. package/dist/src/lib/index.d.ts.map +1 -1
  21. package/dist/src/lib/index.js +35 -7
  22. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
  23. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
  25. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
  26. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
  28. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
  29. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
  32. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/customTransaction.js +278 -0
  34. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
  35. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
  37. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
  38. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
  40. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
  41. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
  43. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  44. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  45. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  46. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  47. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  49. package/dist/src/lib/transaction/transaction.d.ts +45 -7
  50. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  51. package/dist/src/lib/transaction/transaction.js +175 -61
  52. package/dist/src/lib/transaction/transferTransaction.d.ts +10 -8
  53. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
  54. package/dist/src/lib/transaction/transferTransaction.js +48 -41
  55. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  56. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  58. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
  59. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
  61. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
  62. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
  64. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
  65. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
  67. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  68. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  70. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  71. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  73. package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +25 -11
  74. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  76. package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -7
  77. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +26 -10
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +82 -18
  82. package/dist/src/lib/utils/validation.d.ts +32 -0
  83. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  84. package/dist/src/lib/utils/validation.js +99 -0
  85. package/dist/src/lib/utils.d.ts +29 -5
  86. package/dist/src/lib/utils.d.ts.map +1 -1
  87. package/dist/src/lib/utils.js +111 -28
  88. package/dist/src/register.d.ts.map +1 -1
  89. package/dist/src/register.js +9 -1
  90. package/dist/test/integration/index.d.ts +1 -0
  91. package/dist/test/integration/index.d.ts.map +1 -0
  92. package/dist/test/integration/index.js +1 -0
  93. package/dist/test/resources/apt.d.ts +56 -0
  94. package/dist/test/resources/apt.d.ts.map +1 -0
  95. package/dist/test/resources/apt.js +115 -0
  96. package/dist/test/unit/apt.d.ts +2 -0
  97. package/dist/test/unit/apt.d.ts.map +1 -0
  98. package/dist/test/unit/apt.js +375 -0
  99. package/dist/test/unit/aptToken.d.ts +2 -0
  100. package/dist/test/unit/aptToken.d.ts.map +1 -0
  101. package/dist/test/unit/aptToken.js +92 -0
  102. package/dist/test/unit/customTransaction.test.d.ts +2 -0
  103. package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
  104. package/dist/test/unit/customTransaction.test.js +264 -0
  105. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  106. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  107. package/dist/test/unit/getBuilderFactory.js +10 -0
  108. package/dist/test/unit/keyPair.d.ts +2 -0
  109. package/dist/test/unit/keyPair.d.ts.map +1 -0
  110. package/dist/test/unit/keyPair.js +71 -0
  111. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  112. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  113. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
  114. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
  115. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  116. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
  117. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
  118. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  119. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
  120. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
  121. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  122. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
  123. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
  124. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  125. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
  126. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
  127. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  128. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
  129. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  130. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  131. package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
  132. package/dist/test/unit/utils.d.ts +2 -0
  133. package/dist/test/unit/utils.d.ts.map +1 -0
  134. package/dist/test/unit/utils.js +108 -0
  135. package/dist/tsconfig.tsbuildinfo +1 -0
  136. package/package.json +14 -11
  137. package/.eslintignore +0 -4
  138. package/.gitignore +0 -3
  139. package/.mocharc.yml +0 -8
  140. package/.prettierignore +0 -2
  141. package/CHANGELOG.md +0 -72
  142. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  143. package/dist/src/lib/transactionBuilder.js +0 -118
  144. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  145. package/dist/src/lib/transferBuilder.js +0 -25
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=delegationPoolAddStakeTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolAddStakeTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
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 getBuilderFactory_1 = require("../getBuilderFactory");
40
+ const statics_1 = require("@bitgo-beta/statics");
41
+ const testData = __importStar(require("../../resources/apt"));
42
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
43
+ const should_1 = __importDefault(require("should"));
44
+ const delegationPoolAddStakeTransaction_1 = require("../../../src/lib/transaction/delegationPoolAddStakeTransaction");
45
+ describe('Apt Delegation Pool Add Stake Builder', () => {
46
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tapt');
47
+ describe('Succeed', () => {
48
+ it('should build a staking delegate transaction', async function () {
49
+ const transaction = new delegationPoolAddStakeTransaction_1.DelegationPoolAddStakeTransaction(statics_1.coins.get('tapt'));
50
+ const txBuilder = factory.getDelegationPoolAddStakeTransactionBuilder(transaction);
51
+ txBuilder.sender(testData.sender.address);
52
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
53
+ txBuilder.gasData({
54
+ maxGasAmount: 200000,
55
+ gasUnitPrice: 100,
56
+ });
57
+ txBuilder.sequenceNumber(14);
58
+ txBuilder.expirationTime(1736246155);
59
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
60
+ const tx = (await txBuilder.build());
61
+ should_1.default.equal(tx.sender, testData.sender.address);
62
+ should_1.default.deepEqual(tx.recipients, []);
63
+ should_1.default.equal(tx.validatorAddress, testData.delegationPoolData.validatorAddress);
64
+ should_1.default.equal(tx.amount, testData.delegationPoolData.amount);
65
+ should_1.default.equal(tx.maxGasAmount, 200000);
66
+ should_1.default.equal(tx.gasUnitPrice, 100);
67
+ should_1.default.equal(tx.sequenceNumber, 14);
68
+ should_1.default.equal(tx.expirationTime, 1736246155);
69
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingDelegate);
70
+ should_1.default.deepEqual(tx.inputs, [
71
+ {
72
+ address: testData.sender.address,
73
+ value: testData.delegationPoolData.amount,
74
+ coin: 'tapt',
75
+ },
76
+ ]);
77
+ should_1.default.deepEqual(tx.outputs, [
78
+ {
79
+ address: testData.delegationPoolData.validatorAddress,
80
+ value: testData.delegationPoolData.amount,
81
+ coin: 'tapt',
82
+ },
83
+ ]);
84
+ const rawTx = tx.toBroadcastFormat();
85
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
86
+ rawTx.should.equal(testData.DELEGATION_POOL_ADD_STAKE_TX_HEX);
87
+ });
88
+ it('should build and send a signed tx', async function () {
89
+ const txBuilder = factory.from(testData.DELEGATION_POOL_ADD_STAKE_TX_HEX);
90
+ const tx = (await txBuilder.build());
91
+ tx.inputs.should.deepEqual([
92
+ {
93
+ address: testData.sender.address,
94
+ value: testData.delegationPoolData.amount,
95
+ coin: 'tapt',
96
+ },
97
+ ]);
98
+ tx.outputs.should.deepEqual([
99
+ {
100
+ address: testData.delegationPoolData.validatorAddress,
101
+ value: testData.delegationPoolData.amount,
102
+ coin: 'tapt',
103
+ },
104
+ ]);
105
+ should_1.default.equal(tx.id, '0xc5b960d1bec149c77896344774352c61441307af564eaa8c84f857208e411bf3');
106
+ should_1.default.equal(tx.maxGasAmount, 200000);
107
+ should_1.default.equal(tx.gasUnitPrice, 100);
108
+ should_1.default.equal(tx.sequenceNumber, 14);
109
+ should_1.default.equal(tx.expirationTime, 1736246155);
110
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingDelegate);
111
+ const rawTx = tx.toBroadcastFormat();
112
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
113
+ should_1.default.equal(rawTx, testData.DELEGATION_POOL_ADD_STAKE_TX_HEX);
114
+ });
115
+ it('should succeed to validate a valid signablePayload', async function () {
116
+ const transaction = new delegationPoolAddStakeTransaction_1.DelegationPoolAddStakeTransaction(statics_1.coins.get('tapt'));
117
+ const txBuilder = factory.getDelegationPoolAddStakeTransactionBuilder(transaction);
118
+ txBuilder.sender(testData.sender.address);
119
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
120
+ txBuilder.gasData({
121
+ maxGasAmount: 200000,
122
+ gasUnitPrice: 100,
123
+ });
124
+ txBuilder.sequenceNumber(14);
125
+ txBuilder.expirationTime(1736246155);
126
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
127
+ const tx = (await txBuilder.build());
128
+ const signablePayload = tx.signablePayload;
129
+ should_1.default.equal(signablePayload.toString('hex'), testData.DELEGATION_POOL_ADD_STAKE_TX_HEX_SIGNABLE_PAYLOAD);
130
+ });
131
+ it('should build a unsigned tx and validate its toJson', async function () {
132
+ const transaction = new delegationPoolAddStakeTransaction_1.DelegationPoolAddStakeTransaction(statics_1.coins.get('tapt'));
133
+ const txBuilder = factory.getDelegationPoolAddStakeTransactionBuilder(transaction);
134
+ txBuilder.sender(testData.sender.address);
135
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
136
+ txBuilder.gasData({
137
+ maxGasAmount: 200000,
138
+ gasUnitPrice: 100,
139
+ });
140
+ txBuilder.sequenceNumber(14);
141
+ txBuilder.expirationTime(1736246155);
142
+ txBuilder.assetId(testData.fungibleTokenAddress.usdt);
143
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
144
+ const tx = (await txBuilder.build());
145
+ const toJson = tx.toJson();
146
+ should_1.default.equal(toJson.sender, testData.sender.address);
147
+ should_1.default.deepEqual(toJson.recipients, []);
148
+ should_1.default.equal(toJson.validatorAddress, testData.delegationPoolData.validatorAddress);
149
+ should_1.default.equal(toJson.amount, testData.delegationPoolData.amount);
150
+ should_1.default.equal(toJson.sequenceNumber, 14);
151
+ should_1.default.equal(toJson.maxGasAmount, 200000);
152
+ should_1.default.equal(toJson.gasUnitPrice, 100);
153
+ should_1.default.equal(toJson.expirationTime, 1736246155);
154
+ should_1.default.equal(toJson.feePayer, testData.feePayer.address);
155
+ });
156
+ it('should build a signed tx and validate its toJson', async function () {
157
+ const txBuilder = factory.from(testData.DELEGATION_POOL_ADD_STAKE_TX_HEX);
158
+ const tx = (await txBuilder.build());
159
+ const toJson = tx.toJson();
160
+ should_1.default.equal(toJson.id, '0xc5b960d1bec149c77896344774352c61441307af564eaa8c84f857208e411bf3');
161
+ should_1.default.equal(toJson.sender, testData.sender.address);
162
+ should_1.default.deepEqual(toJson.recipients, []);
163
+ should_1.default.equal(toJson.validatorAddress, testData.delegationPoolData.validatorAddress);
164
+ should_1.default.equal(toJson.amount, testData.delegationPoolData.amount);
165
+ should_1.default.equal(toJson.maxGasAmount, 200000);
166
+ should_1.default.equal(toJson.gasUnitPrice, 100);
167
+ should_1.default.equal(toJson.sequenceNumber, 14);
168
+ should_1.default.equal(toJson.expirationTime, 1736246155);
169
+ });
170
+ });
171
+ });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvZGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5RDtBQUN6RCxpREFBNEM7QUFDNUMsOERBQWdEO0FBQ2hELG1EQUF1RDtBQUN2RCxvREFBNEI7QUFDNUIsc0hBQW1IO0FBRW5ILFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7SUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtRQUN2QixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSztZQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLHFFQUFpQyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsMkNBQTJDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RyxTQUFTLENBQUMsT0FBTyxDQUFDO2dCQUNoQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLEdBQUc7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZ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QUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvYXB0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vZGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uJztcblxuZGVzY3JpYmUoJ0FwdCBEZWxlZ2F0aW9uIFBvb2wgQWRkIFN0YWtlIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndGFwdCcpO1xuXG4gIGRlc2NyaWJlKCdTdWNjZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIGRlbGVnYXRlIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGFwdCcpKTtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0RGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlcih0cmFuc2FjdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0b3IodGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgdHhCdWlsZGVyLmdhc0RhdGEoe1xuICAgICAgICBtYXhHYXNBbW91bnQ6IDIwMDAwMCxcbiAgICAgICAgZ2FzVW5pdFByaWNlOiAxMDAsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zZXF1ZW5jZU51bWJlcigxNCk7XG4gICAgICB0eEJ1aWxkZXIuZXhwaXJhdGlvblRpbWUoMTczNjI0NjE1NSk7XG4gICAgICB0eEJ1aWxkZXIuYWRkRmVlUGF5ZXJBZGRyZXNzKHRlc3REYXRhLmZlZVBheWVyLmFkZHJlc3MpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbjtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHgucmVjaXBpZW50cywgW10pO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnZhbGlkYXRvckFkZHJlc3MsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5hbW91bnQsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm1heEdhc0Ftb3VudCwgMjAwMDAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5nYXNVbml0UHJpY2UsIDEwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguc2VxdWVuY2VOdW1iZXIsIDE0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5leHBpcmF0aW9uVGltZSwgMTczNjI0NjE1NSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWxlZ2F0ZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmlucHV0cywgW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsXG4gICAgICAgICAgdmFsdWU6IHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQsXG4gICAgICAgICAgY29pbjogJ3RhcHQnLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4Lm91dHB1dHMsIFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEuYW1vdW50LFxuICAgICAgICAgIGNvaW46ICd0YXB0JyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4QnVpbGRlci5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHgpLCB0cnVlKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5ERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX1RYX0hFWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuZCBzZW5kIGEgc2lnbmVkIHR4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9BRERfU1RBS0VfVFhfSEVYKTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBEZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb247XG4gICAgICB0eC5pbnB1dHMuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGFwdCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIHR4Lm91dHB1dHMuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGFwdCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pZCwgJzB4YzViOTYwZDFiZWMxNDljNzc4OTYzNDQ3NzQzNTJjNjE0NDEzMDdhZjU2NGVhYThjODRmODU3MjA4ZTQxMWJmMycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm1heEdhc0Ftb3VudCwgMjAwMDAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5nYXNVbml0UHJpY2UsIDEwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguc2VxdWVuY2VOdW1iZXIsIDE0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5leHBpcmF0aW9uVGltZSwgMTczNjI0NjE1NSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWxlZ2F0ZSk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhCdWlsZGVyLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0RGF0YS5ERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX1RYX0hFWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmFsaWRhdGUgYSB2YWxpZCBzaWduYWJsZVBheWxvYWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBEZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0YXB0JykpO1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXREZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb25CdWlsZGVyKHRyYW5zYWN0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzRGF0YSh7XG4gICAgICAgIG1heEdhc0Ftb3VudDogMjAwMDAwLFxuICAgICAgICBnYXNVbml0UHJpY2U6IDEwMCxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNlcXVlbmNlTnVtYmVyKDE0KTtcbiAgICAgIHR4QnVpbGRlci5leHBpcmF0aW9uVGltZSgxNzM2MjQ2MTU1KTtcbiAgICAgIHR4QnVpbGRlci5hZGRGZWVQYXllckFkZHJlc3ModGVzdERhdGEuZmVlUGF5ZXIuYWRkcmVzcyk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uO1xuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdHguc2lnbmFibGVQYXlsb2FkO1xuICAgICAgc2hvdWxkLmVxdWFsKHNpZ25hYmxlUGF5bG9hZC50b1N0cmluZygnaGV4JyksIHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9BRERfU1RBS0VfVFhfSEVYX1NJR05BQkxFX1BBWUxPQUQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHVuc2lnbmVkIHR4IGFuZCB2YWxpZGF0ZSBpdHMgdG9Kc29uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGFwdCcpKTtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0RGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uQnVpbGRlcih0cmFuc2FjdGlvbik7XG4gICAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0b3IodGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgdHhCdWlsZGVyLmdhc0RhdGEoe1xuICAgICAgICBtYXhHYXNBbW91bnQ6IDIwMDAwMCxcbiAgICAgICAgZ2FzVW5pdFByaWNlOiAxMDAsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5zZXF1ZW5jZU51bWJlcigxNCk7XG4gICAgICB0eEJ1aWxkZXIuZXhwaXJhdGlvblRpbWUoMTczNjI0NjE1NSk7XG4gICAgICB0eEJ1aWxkZXIuYXNzZXRJZCh0ZXN0RGF0YS5mdW5naWJsZVRva2VuQWRkcmVzcy51c2R0KTtcbiAgICAgIHR4QnVpbGRlci5hZGRGZWVQYXllckFkZHJlc3ModGVzdERhdGEuZmVlUGF5ZXIuYWRkcmVzcyk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgRGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgdG9Kc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLnNlbmRlciwgdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0b0pzb24ucmVjaXBpZW50cywgW10pO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmFtb3VudCwgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLnNlcXVlbmNlTnVtYmVyLCAxNCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLm1heEdhc0Ftb3VudCwgMjAwMDAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uZ2FzVW5pdFByaWNlLCAxMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5leHBpcmF0aW9uVGltZSwgMTczNjI0NjE1NSk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmZlZVBheWVyLCB0ZXN0RGF0YS5mZWVQYXllci5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzaWduZWQgdHggYW5kIHZhbGlkYXRlIGl0cyB0b0pzb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20odGVzdERhdGEuREVMRUdBVElPTl9QT09MX0FERF9TVEFLRV9UWF9IRVgpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IHRvSnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5pZCwgJzB4YzViOTYwZDFiZWMxNDljNzc4OTYzNDQ3NzQzNTJjNjE0NDEzMDdhZjU2NGVhYThjODRmODU3MjA4ZTQxMWJmMycpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodG9Kc29uLnJlY2lwaWVudHMsIFtdKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24udmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5hbW91bnQsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5tYXhHYXNBbW91bnQsIDIwMDAwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uc2VxdWVuY2VOdW1iZXIsIDE0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uZXhwaXJhdGlvblRpbWUsIDE3MzYyNDYxNTUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=delegationPoolUnlockTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolUnlockTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
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 getBuilderFactory_1 = require("../getBuilderFactory");
40
+ const statics_1 = require("@bitgo-beta/statics");
41
+ const testData = __importStar(require("../../resources/apt"));
42
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
43
+ const should_1 = __importDefault(require("should"));
44
+ const delegationPoolUnlockTransaction_1 = require("../../../src/lib/transaction/delegationPoolUnlockTransaction");
45
+ describe('Apt Delegation Pool Unlock Builder', () => {
46
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tapt');
47
+ describe('Succeed', () => {
48
+ it('should build a staking delegate transaction', async function () {
49
+ const transaction = new delegationPoolUnlockTransaction_1.DelegationPoolUnlockTransaction(statics_1.coins.get('tapt'));
50
+ const txBuilder = factory.getDelegationPoolUnlockTransactionBuilder(transaction);
51
+ txBuilder.sender(testData.sender.address);
52
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
53
+ txBuilder.gasData({
54
+ maxGasAmount: 200000,
55
+ gasUnitPrice: 100,
56
+ });
57
+ txBuilder.sequenceNumber(14);
58
+ txBuilder.expirationTime(1736246155);
59
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
60
+ const tx = (await txBuilder.build());
61
+ should_1.default.equal(tx.sender, testData.sender.address);
62
+ should_1.default.deepEqual(tx.recipients, []);
63
+ should_1.default.deepEqual(tx.validatorAddress, testData.delegationPoolData.validatorAddress);
64
+ should_1.default.deepEqual(tx.amount, testData.delegationPoolData.amount);
65
+ should_1.default.equal(tx.maxGasAmount, 200000);
66
+ should_1.default.equal(tx.gasUnitPrice, 100);
67
+ should_1.default.equal(tx.sequenceNumber, 14);
68
+ should_1.default.equal(tx.expirationTime, 1736246155);
69
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingUnlock);
70
+ should_1.default.deepEqual(tx.inputs, []);
71
+ should_1.default.deepEqual(tx.outputs, []);
72
+ const rawTx = tx.toBroadcastFormat();
73
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
74
+ rawTx.should.equal(testData.DELEGATION_POOL_UNLOCK_TX_HEX);
75
+ });
76
+ it('should build and send a signed tx', async function () {
77
+ const txBuilder = factory.from(testData.DELEGATION_POOL_UNLOCK_TX_HEX);
78
+ const tx = (await txBuilder.build());
79
+ tx.inputs.should.deepEqual([]);
80
+ tx.outputs.should.deepEqual([]);
81
+ should_1.default.equal(tx.id, '0x471bb32955f9cff7c9c0a603ef2354e781fd80a221f9044f08df84d95473e86f');
82
+ should_1.default.equal(tx.maxGasAmount, 200000);
83
+ should_1.default.equal(tx.gasUnitPrice, 100);
84
+ should_1.default.equal(tx.sequenceNumber, 14);
85
+ should_1.default.equal(tx.expirationTime, 1736246155);
86
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingUnlock);
87
+ const rawTx = tx.toBroadcastFormat();
88
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
89
+ should_1.default.equal(rawTx, testData.DELEGATION_POOL_UNLOCK_TX_HEX);
90
+ });
91
+ it('should succeed to validate a valid signablePayload', async function () {
92
+ const transaction = new delegationPoolUnlockTransaction_1.DelegationPoolUnlockTransaction(statics_1.coins.get('tapt'));
93
+ const txBuilder = factory.getDelegationPoolUnlockTransactionBuilder(transaction);
94
+ txBuilder.sender(testData.sender.address);
95
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
96
+ txBuilder.gasData({
97
+ maxGasAmount: 200000,
98
+ gasUnitPrice: 100,
99
+ });
100
+ txBuilder.sequenceNumber(14);
101
+ txBuilder.expirationTime(1736246155);
102
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
103
+ const tx = (await txBuilder.build());
104
+ const signablePayload = tx.signablePayload;
105
+ should_1.default.equal(signablePayload.toString('hex'), testData.DELEGATION_POOL_UNLOCK_TX_HEX_SIGNABLE_PAYLOAD);
106
+ });
107
+ it('should build a unsigned tx and validate its toJson', async function () {
108
+ const transaction = new delegationPoolUnlockTransaction_1.DelegationPoolUnlockTransaction(statics_1.coins.get('tapt'));
109
+ const txBuilder = factory.getDelegationPoolUnlockTransactionBuilder(transaction);
110
+ txBuilder.sender(testData.sender.address);
111
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
112
+ txBuilder.gasData({
113
+ maxGasAmount: 200000,
114
+ gasUnitPrice: 100,
115
+ });
116
+ txBuilder.sequenceNumber(14);
117
+ txBuilder.expirationTime(1736246155);
118
+ txBuilder.assetId(testData.fungibleTokenAddress.usdt);
119
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
120
+ const tx = (await txBuilder.build());
121
+ const toJson = tx.toJson();
122
+ should_1.default.equal(toJson.sender, testData.sender.address);
123
+ should_1.default.deepEqual(toJson.recipients, []);
124
+ should_1.default.deepEqual(tx.validatorAddress, testData.delegationPoolData.validatorAddress);
125
+ should_1.default.deepEqual(tx.amount, testData.delegationPoolData.amount);
126
+ should_1.default.equal(toJson.sequenceNumber, 14);
127
+ should_1.default.equal(toJson.maxGasAmount, 200000);
128
+ should_1.default.equal(toJson.gasUnitPrice, 100);
129
+ should_1.default.equal(toJson.expirationTime, 1736246155);
130
+ should_1.default.equal(toJson.feePayer, testData.feePayer.address);
131
+ });
132
+ it('should build a signed tx and validate its toJson', async function () {
133
+ const txBuilder = factory.from(testData.DELEGATION_POOL_UNLOCK_TX_HEX);
134
+ const tx = (await txBuilder.build());
135
+ const toJson = tx.toJson();
136
+ should_1.default.equal(toJson.id, '0x471bb32955f9cff7c9c0a603ef2354e781fd80a221f9044f08df84d95473e86f');
137
+ should_1.default.equal(toJson.sender, testData.sender.address);
138
+ should_1.default.deepEqual(toJson.recipients, []);
139
+ should_1.default.deepEqual(tx.validatorAddress, testData.delegationPoolData.validatorAddress);
140
+ should_1.default.deepEqual(tx.amount, testData.delegationPoolData.amount);
141
+ should_1.default.equal(toJson.maxGasAmount, 200000);
142
+ should_1.default.equal(toJson.gasUnitPrice, 100);
143
+ should_1.default.equal(toJson.sequenceNumber, 14);
144
+ should_1.default.equal(toJson.expirationTime, 1736246155);
145
+ });
146
+ });
147
+ });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL2RlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQXlEO0FBQ3pELGlEQUE0QztBQUM1Qyw4REFBZ0Q7QUFDaEQsbURBQXVEO0FBQ3ZELG9EQUE0QjtBQUM1QixrSEFBK0c7QUFFL0csUUFBUSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtJQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHFDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLO1lBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksaUVBQStCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqRixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RHLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hCLFlBQVksRUFBRSxNQUFNO2dCQUNwQixZQUFZLEVBQUUsR0FBRzthQUNsQixDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdC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LENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELGdCQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BGLGdCQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi9nZXRCdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2FwdCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9kZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uJztcblxuZGVzY3JpYmUoJ0FwdCBEZWxlZ2F0aW9uIFBvb2wgVW5sb2NrIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndGFwdCcpO1xuXG4gIGRlc2NyaWJlKCdTdWNjZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzdGFraW5nIGRlbGVnYXRlIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldERlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb25CdWlsZGVyKHRyYW5zYWN0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzRGF0YSh7XG4gICAgICAgIG1heEdhc0Ftb3VudDogMjAwMDAwLFxuICAgICAgICBnYXNVbml0UHJpY2U6IDEwMCxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNlcXVlbmNlTnVtYmVyKDE0KTtcbiAgICAgIHR4QnVpbGRlci5leHBpcmF0aW9uVGltZSgxNzM2MjQ2MTU1KTtcbiAgICAgIHR4QnVpbGRlci5hZGRGZWVQYXllckFkZHJlc3ModGVzdERhdGEuZmVlUGF5ZXIuYWRkcmVzcyk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbjtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHgucmVjaXBpZW50cywgW10pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmFtb3VudCwgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICBzaG91bGQuZXF1YWwodHgubWF4R2FzQW1vdW50LCAyMDAwMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5zZXF1ZW5jZU51bWJlciwgMTQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmV4cGlyYXRpb25UaW1lLCAxNzM2MjQ2MTU1KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50eXBlLCBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmlucHV0cywgW10pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5vdXRwdXRzLCBbXSk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhCdWlsZGVyLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9VTkxPQ0tfVFhfSEVYKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYW5kIHNlbmQgYSBzaWduZWQgdHgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20odGVzdERhdGEuREVMRUdBVElPTl9QT09MX1VOTE9DS19UWF9IRVgpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb247XG4gICAgICB0eC5pbnB1dHMuc2hvdWxkLmRlZXBFcXVhbChbXSk7XG4gICAgICB0eC5vdXRwdXRzLnNob3VsZC5kZWVwRXF1YWwoW10pO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmlkLCAnMHg0NzFiYjMyOTU1ZjljZmY3YzljMGE2MDNlZjIzNTRlNzgxZmQ4MGEyMjFmOTA0NGYwOGRmODRkOTU0NzNlODZmJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgubWF4R2FzQW1vdW50LCAyMDAwMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5zZXF1ZW5jZU51bWJlciwgMTQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmV4cGlyYXRpb25UaW1lLCAxNzM2MjQ2MTU1KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50eXBlLCBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhCdWlsZGVyLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0RGF0YS5ERUxFR0FUSU9OX1BPT0xfVU5MT0NLX1RYX0hFWCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmFsaWRhdGUgYSB2YWxpZCBzaWduYWJsZVBheWxvYWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uKGNvaW5zLmdldCgndGFwdCcpKTtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0RGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbkJ1aWxkZXIodHJhbnNhY3Rpb24pO1xuICAgICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEuYW1vdW50KTtcbiAgICAgIHR4QnVpbGRlci5nYXNEYXRhKHtcbiAgICAgICAgbWF4R2FzQW1vdW50OiAyMDAwMDAsXG4gICAgICAgIGdhc1VuaXRQcmljZTogMTAwLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2VxdWVuY2VOdW1iZXIoMTQpO1xuICAgICAgdHhCdWlsZGVyLmV4cGlyYXRpb25UaW1lKDE3MzYyNDYxNTUpO1xuICAgICAgdHhCdWlsZGVyLmFkZEZlZVBheWVyQWRkcmVzcyh0ZXN0RGF0YS5mZWVQYXllci5hZGRyZXNzKTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uO1xuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdHguc2lnbmFibGVQYXlsb2FkO1xuICAgICAgc2hvdWxkLmVxdWFsKHNpZ25hYmxlUGF5bG9hZC50b1N0cmluZygnaGV4JyksIHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9VTkxPQ0tfVFhfSEVYX1NJR05BQkxFX1BBWUxPQUQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHVuc2lnbmVkIHR4IGFuZCB2YWxpZGF0ZSBpdHMgdG9Kc29uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgRGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldERlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb25CdWlsZGVyKHRyYW5zYWN0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzRGF0YSh7XG4gICAgICAgIG1heEdhc0Ftb3VudDogMjAwMDAwLFxuICAgICAgICBnYXNVbml0UHJpY2U6IDEwMCxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNlcXVlbmNlTnVtYmVyKDE0KTtcbiAgICAgIHR4QnVpbGRlci5leHBpcmF0aW9uVGltZSgxNzM2MjQ2MTU1KTtcbiAgICAgIHR4QnVpbGRlci5hc3NldElkKHRlc3REYXRhLmZ1bmdpYmxlVG9rZW5BZGRyZXNzLnVzZHQpO1xuICAgICAgdHhCdWlsZGVyLmFkZEZlZVBheWVyQWRkcmVzcyh0ZXN0RGF0YS5mZWVQYXllci5hZGRyZXNzKTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uO1xuICAgICAgY29uc3QgdG9Kc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLnNlbmRlciwgdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0b0pzb24ucmVjaXBpZW50cywgW10pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmFtb3VudCwgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLnNlcXVlbmNlTnVtYmVyLCAxNCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLm1heEdhc0Ftb3VudCwgMjAwMDAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uZ2FzVW5pdFByaWNlLCAxMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5leHBpcmF0aW9uVGltZSwgMTczNjI0NjE1NSk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmZlZVBheWVyLCB0ZXN0RGF0YS5mZWVQYXllci5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzaWduZWQgdHggYW5kIHZhbGlkYXRlIGl0cyB0b0pzb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20odGVzdERhdGEuREVMRUdBVElPTl9QT09MX1VOTE9DS19UWF9IRVgpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sVW5sb2NrVHJhbnNhY3Rpb247XG4gICAgICBjb25zdCB0b0pzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uaWQsICcweDQ3MWJiMzI5NTVmOWNmZjdjOWMwYTYwM2VmMjM1NGU3ODFmZDgwYTIyMWY5MDQ0ZjA4ZGY4NGQ5NTQ3M2U4NmYnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uc2VuZGVyLCB0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHRvSnNvbi5yZWNpcGllbnRzLCBbXSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnZhbGlkYXRvckFkZHJlc3MsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguYW1vdW50LCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEuYW1vdW50KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24ubWF4R2FzQW1vdW50LCAyMDAwMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5nYXNVbml0UHJpY2UsIDEwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLnNlcXVlbmNlTnVtYmVyLCAxNCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmV4cGlyYXRpb25UaW1lLCAxNzM2MjQ2MTU1KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=delegationPoolWithdrawTransactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolWithdrawTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
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 getBuilderFactory_1 = require("../getBuilderFactory");
40
+ const statics_1 = require("@bitgo-beta/statics");
41
+ const testData = __importStar(require("../../resources/apt"));
42
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
43
+ const should_1 = __importDefault(require("should"));
44
+ const delegationPoolWithdrawTransaction_1 = require("../../../src/lib/transaction/delegationPoolWithdrawTransaction");
45
+ describe('Apt Delegation Pool Withdraw Builder', () => {
46
+ const factory = (0, getBuilderFactory_1.getBuilderFactory)('tapt');
47
+ describe('Succeed', () => {
48
+ it('should build a staking withdraw transaction', async function () {
49
+ const transaction = new delegationPoolWithdrawTransaction_1.DelegationPoolWithdrawTransaction(statics_1.coins.get('tapt'));
50
+ const txBuilder = factory.getDelegationPoolWithdrawTransactionBuilder(transaction);
51
+ txBuilder.sender(testData.sender.address);
52
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
53
+ txBuilder.gasData({
54
+ maxGasAmount: 200000,
55
+ gasUnitPrice: 100,
56
+ });
57
+ txBuilder.sequenceNumber(14);
58
+ txBuilder.expirationTime(1736246155);
59
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
60
+ const tx = (await txBuilder.build());
61
+ should_1.default.equal(tx.sender, testData.sender.address);
62
+ should_1.default.deepEqual(tx.recipients, []);
63
+ should_1.default.equal(tx.validatorAddress, testData.delegationPoolData.validatorAddress);
64
+ should_1.default.equal(tx.amount, testData.delegationPoolData.amount);
65
+ should_1.default.equal(tx.maxGasAmount, 200000);
66
+ should_1.default.equal(tx.gasUnitPrice, 100);
67
+ should_1.default.equal(tx.sequenceNumber, 14);
68
+ should_1.default.equal(tx.expirationTime, 1736246155);
69
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingWithdraw);
70
+ should_1.default.deepEqual(tx.inputs, [
71
+ {
72
+ address: testData.delegationPoolData.validatorAddress,
73
+ value: testData.delegationPoolData.amount,
74
+ coin: 'tapt',
75
+ },
76
+ ]);
77
+ should_1.default.deepEqual(tx.outputs, [
78
+ {
79
+ address: testData.sender.address,
80
+ value: testData.delegationPoolData.amount,
81
+ coin: 'tapt',
82
+ },
83
+ ]);
84
+ const rawTx = tx.toBroadcastFormat();
85
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
86
+ rawTx.should.equal(testData.DELEGATION_POOL_WITHDRAW_TX_HEX);
87
+ });
88
+ it('should build and send a signed tx', async function () {
89
+ const txBuilder = factory.from(testData.DELEGATION_POOL_WITHDRAW_TX_HEX);
90
+ const tx = (await txBuilder.build());
91
+ tx.inputs.should.deepEqual([
92
+ {
93
+ address: testData.delegationPoolData.validatorAddress,
94
+ value: testData.delegationPoolData.amount,
95
+ coin: 'tapt',
96
+ },
97
+ ]);
98
+ tx.outputs.should.deepEqual([
99
+ {
100
+ address: testData.sender.address,
101
+ value: testData.delegationPoolData.amount,
102
+ coin: 'tapt',
103
+ },
104
+ ]);
105
+ should_1.default.equal(tx.id, '0xd795391e85ffd5e37b844db4206c5bd99ba28a42430df996969ee9b7f16a5f21');
106
+ should_1.default.equal(tx.maxGasAmount, 200000);
107
+ should_1.default.equal(tx.gasUnitPrice, 100);
108
+ should_1.default.equal(tx.sequenceNumber, 14);
109
+ should_1.default.equal(tx.expirationTime, 1736246155);
110
+ should_1.default.equal(tx.type, sdk_core_1.TransactionType.StakingWithdraw);
111
+ const rawTx = tx.toBroadcastFormat();
112
+ should_1.default.equal(txBuilder.isValidRawTransaction(rawTx), true);
113
+ should_1.default.equal(rawTx, testData.DELEGATION_POOL_WITHDRAW_TX_HEX);
114
+ });
115
+ it('should succeed to validate a valid signablePayload', async function () {
116
+ const transaction = new delegationPoolWithdrawTransaction_1.DelegationPoolWithdrawTransaction(statics_1.coins.get('tapt'));
117
+ const txBuilder = factory.getDelegationPoolWithdrawTransactionBuilder(transaction);
118
+ txBuilder.sender(testData.sender.address);
119
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
120
+ txBuilder.gasData({
121
+ maxGasAmount: 200000,
122
+ gasUnitPrice: 100,
123
+ });
124
+ txBuilder.sequenceNumber(14);
125
+ txBuilder.expirationTime(1736246155);
126
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
127
+ const tx = (await txBuilder.build());
128
+ const signablePayload = tx.signablePayload;
129
+ should_1.default.equal(signablePayload.toString('hex'), testData.DELEGATION_POOL_WITHDRAW_TX_HEX_SIGNABLE_PAYLOAD);
130
+ });
131
+ it('should build a unsigned tx and validate its toJson', async function () {
132
+ const transaction = new delegationPoolWithdrawTransaction_1.DelegationPoolWithdrawTransaction(statics_1.coins.get('tapt'));
133
+ const txBuilder = factory.getDelegationPoolWithdrawTransactionBuilder(transaction);
134
+ txBuilder.sender(testData.sender.address);
135
+ txBuilder.validator(testData.delegationPoolData.validatorAddress, testData.delegationPoolData.amount);
136
+ txBuilder.gasData({
137
+ maxGasAmount: 200000,
138
+ gasUnitPrice: 100,
139
+ });
140
+ txBuilder.sequenceNumber(14);
141
+ txBuilder.expirationTime(1736246155);
142
+ txBuilder.assetId(testData.fungibleTokenAddress.usdt);
143
+ txBuilder.addFeePayerAddress(testData.feePayer.address);
144
+ const tx = (await txBuilder.build());
145
+ const toJson = tx.toJson();
146
+ should_1.default.equal(toJson.sender, testData.sender.address);
147
+ should_1.default.deepEqual(toJson.recipients, []);
148
+ should_1.default.equal(toJson.validatorAddress, testData.delegationPoolData.validatorAddress);
149
+ should_1.default.equal(toJson.amount, testData.delegationPoolData.amount);
150
+ should_1.default.equal(toJson.sequenceNumber, 14);
151
+ should_1.default.equal(toJson.maxGasAmount, 200000);
152
+ should_1.default.equal(toJson.gasUnitPrice, 100);
153
+ should_1.default.equal(toJson.expirationTime, 1736246155);
154
+ should_1.default.equal(toJson.feePayer, testData.feePayer.address);
155
+ });
156
+ it('should build a signed tx and validate its toJson', async function () {
157
+ const txBuilder = factory.from(testData.DELEGATION_POOL_WITHDRAW_TX_HEX);
158
+ const tx = (await txBuilder.build());
159
+ const toJson = tx.toJson();
160
+ should_1.default.equal(toJson.id, '0xd795391e85ffd5e37b844db4206c5bd99ba28a42430df996969ee9b7f16a5f21');
161
+ should_1.default.equal(toJson.sender, testData.sender.address);
162
+ should_1.default.deepEqual(toJson.recipients, []);
163
+ should_1.default.equal(toJson.validatorAddress, testData.delegationPoolData.validatorAddress);
164
+ should_1.default.equal(toJson.amount, testData.delegationPoolData.amount);
165
+ should_1.default.equal(toJson.maxGasAmount, 200000);
166
+ should_1.default.equal(toJson.gasUnitPrice, 100);
167
+ should_1.default.equal(toJson.sequenceNumber, 14);
168
+ should_1.default.equal(toJson.expirationTime, 1736246155);
169
+ });
170
+ });
171
+ });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5RDtBQUN6RCxpREFBNEM7QUFDNUMsOERBQWdEO0FBQ2hELG1EQUF1RDtBQUN2RCxvREFBNEI7QUFDNUIsc0hBQW1IO0FBRW5ILFFBQVEsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7SUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtRQUN2QixFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSztZQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLHFFQUFpQyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsMkNBQTJDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkYsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RyxTQUFTLENBQUMsT0FBTyxDQUFDO2dCQUNoQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsWUFBWSxFQUFFLEdBQUc7YUFDbEIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZ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QUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvYXB0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uJztcblxuZGVzY3JpYmUoJ0FwdCBEZWxlZ2F0aW9uIFBvb2wgV2l0aGRyYXcgQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IGdldEJ1aWxkZXJGYWN0b3J5KCd0YXB0Jyk7XG5cbiAgZGVzY3JpYmUoJ1N1Y2NlZWQnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIHN0YWtpbmcgd2l0aGRyYXcgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0YXB0JykpO1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXREZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb25CdWlsZGVyKHRyYW5zYWN0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzRGF0YSh7XG4gICAgICAgIG1heEdhc0Ftb3VudDogMjAwMDAwLFxuICAgICAgICBnYXNVbml0UHJpY2U6IDEwMCxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnNlcXVlbmNlTnVtYmVyKDE0KTtcbiAgICAgIHR4QnVpbGRlci5leHBpcmF0aW9uVGltZSgxNzM2MjQ2MTU1KTtcbiAgICAgIHR4QnVpbGRlci5hZGRGZWVQYXllckFkZHJlc3ModGVzdERhdGEuZmVlUGF5ZXIuYWRkcmVzcyk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgRGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnNlbmRlciwgdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC5yZWNpcGllbnRzLCBbXSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmFtb3VudCwgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCk7XG4gICAgICBzaG91bGQuZXF1YWwodHgubWF4R2FzQW1vdW50LCAyMDAwMDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5zZXF1ZW5jZU51bWJlciwgMTQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LmV4cGlyYXRpb25UaW1lLCAxNzM2MjQ2MTU1KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50eXBlLCBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3KTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguaW5wdXRzLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGFwdCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHgub3V0cHV0cywgW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsXG4gICAgICAgICAgdmFsdWU6IHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQsXG4gICAgICAgICAgY29pbjogJ3RhcHQnLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhCdWlsZGVyLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9XSVRIRFJBV19UWF9IRVgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbmQgc2VuZCBhIHNpZ25lZCB0eCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbSh0ZXN0RGF0YS5ERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfVFhfSEVYKTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb247XG4gICAgICB0eC5pbnB1dHMuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEudmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGFwdCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIHR4Lm91dHB1dHMuc2hvdWxkLmRlZXBFcXVhbChbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLmFtb3VudCxcbiAgICAgICAgICBjb2luOiAndGFwdCcsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5pZCwgJzB4ZDc5NTM5MWU4NWZmZDVlMzdiODQ0ZGI0MjA2YzViZDk5YmEyOGE0MjQzMGRmOTk2OTY5ZWU5YjdmMTZhNWYyMScpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4Lm1heEdhc0Ftb3VudCwgMjAwMDAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5nYXNVbml0UHJpY2UsIDEwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodHguc2VxdWVuY2VOdW1iZXIsIDE0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC5leHBpcmF0aW9uVGltZSwgMTczNjI0NjE1NSk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdyk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBzaG91bGQuZXF1YWwodHhCdWlsZGVyLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0RGF0YS5ERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfVFhfSEVYKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2YWxpZGF0ZSBhIHZhbGlkIHNpZ25hYmxlUGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbkJ1aWxkZXIodHJhbnNhY3Rpb24pO1xuICAgICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEuYW1vdW50KTtcbiAgICAgIHR4QnVpbGRlci5nYXNEYXRhKHtcbiAgICAgICAgbWF4R2FzQW1vdW50OiAyMDAwMDAsXG4gICAgICAgIGdhc1VuaXRQcmljZTogMTAwLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2VxdWVuY2VOdW1iZXIoMTQpO1xuICAgICAgdHhCdWlsZGVyLmV4cGlyYXRpb25UaW1lKDE3MzYyNDYxNTUpO1xuICAgICAgdHhCdWlsZGVyLmFkZEZlZVBheWVyQWRkcmVzcyh0ZXN0RGF0YS5mZWVQYXllci5hZGRyZXNzKTtcbiAgICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBEZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb247XG4gICAgICBjb25zdCBzaWduYWJsZVBheWxvYWQgPSB0eC5zaWduYWJsZVBheWxvYWQ7XG4gICAgICBzaG91bGQuZXF1YWwoc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSwgdGVzdERhdGEuREVMRUdBVElPTl9QT09MX1dJVEhEUkFXX1RYX0hFWF9TSUdOQUJMRV9QQVlMT0FEKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSB1bnNpZ25lZCB0eCBhbmQgdmFsaWRhdGUgaXRzIHRvSnNvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gbmV3IERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbkJ1aWxkZXIodHJhbnNhY3Rpb24pO1xuICAgICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5zZW5kZXIuYWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS52YWxpZGF0b3JBZGRyZXNzLCB0ZXN0RGF0YS5kZWxlZ2F0aW9uUG9vbERhdGEuYW1vdW50KTtcbiAgICAgIHR4QnVpbGRlci5nYXNEYXRhKHtcbiAgICAgICAgbWF4R2FzQW1vdW50OiAyMDAwMDAsXG4gICAgICAgIGdhc1VuaXRQcmljZTogMTAwLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2VxdWVuY2VOdW1iZXIoMTQpO1xuICAgICAgdHhCdWlsZGVyLmV4cGlyYXRpb25UaW1lKDE3MzYyNDYxNTUpO1xuICAgICAgdHhCdWlsZGVyLmFzc2V0SWQodGVzdERhdGEuZnVuZ2libGVUb2tlbkFkZHJlc3MudXNkdCk7XG4gICAgICB0eEJ1aWxkZXIuYWRkRmVlUGF5ZXJBZGRyZXNzKHRlc3REYXRhLmZlZVBheWVyLmFkZHJlc3MpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IHRvSnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodG9Kc29uLnJlY2lwaWVudHMsIFtdKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24udmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5hbW91bnQsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5zZXF1ZW5jZU51bWJlciwgMTQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5tYXhHYXNBbW91bnQsIDIwMDAwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uZXhwaXJhdGlvblRpbWUsIDE3MzYyNDYxNTUpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5mZWVQYXllciwgdGVzdERhdGEuZmVlUGF5ZXIuYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgc2lnbmVkIHR4IGFuZCB2YWxpZGF0ZSBpdHMgdG9Kc29uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHRlc3REYXRhLkRFTEVHQVRJT05fUE9PTF9XSVRIRFJBV19UWF9IRVgpO1xuICAgICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbjtcbiAgICAgIGNvbnN0IHRvSnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5pZCwgJzB4ZDc5NTM5MWU4NWZmZDVlMzdiODQ0ZGI0MjA2YzViZDk5YmEyOGE0MjQzMGRmOTk2OTY5ZWU5YjdmMTZhNWYyMScpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5zZW5kZXIsIHRlc3REYXRhLnNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodG9Kc29uLnJlY2lwaWVudHMsIFtdKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24udmFsaWRhdG9yQWRkcmVzcywgdGVzdERhdGEuZGVsZWdhdGlvblBvb2xEYXRhLnZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5hbW91bnQsIHRlc3REYXRhLmRlbGVnYXRpb25Qb29sRGF0YS5hbW91bnQpO1xuICAgICAgc2hvdWxkLmVxdWFsKHRvSnNvbi5tYXhHYXNBbW91bnQsIDIwMDAwMCk7XG4gICAgICBzaG91bGQuZXF1YWwodG9Kc29uLmdhc1VuaXRQcmljZSwgMTAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uc2VxdWVuY2VOdW1iZXIsIDE0KTtcbiAgICAgIHNob3VsZC5lcXVhbCh0b0pzb24uZXhwaXJhdGlvblRpbWUsIDE3MzYyNDYxNTUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=digitalAssetTransferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalAssetTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/digitalAssetTransferBuilder.ts"],"names":[],"mappings":""}