@bitgo-beta/sdk-coin-dot 2.2.8-beta.132 → 2.2.8-beta.1321

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 (112) hide show
  1. package/dist/src/dot.d.ts +8 -12
  2. package/dist/src/dot.d.ts.map +1 -1
  3. package/dist/src/dot.js +55 -41
  4. package/dist/src/index.js +6 -2
  5. package/dist/src/lib/addressInitializationBuilder.js +8 -10
  6. package/dist/src/lib/batchTransactionBuilder.d.ts +1 -0
  7. package/dist/src/lib/batchTransactionBuilder.d.ts.map +1 -1
  8. package/dist/src/lib/batchTransactionBuilder.js +21 -12
  9. package/dist/src/lib/claimBuilder.js +4 -6
  10. package/dist/src/lib/iface.d.ts +16 -13
  11. package/dist/src/lib/iface.d.ts.map +1 -1
  12. package/dist/src/lib/iface.js +5 -5
  13. package/dist/src/lib/iface_utils.js +8 -9
  14. package/dist/src/lib/index.js +23 -9
  15. package/dist/src/lib/keyPair.d.ts +7 -0
  16. package/dist/src/lib/keyPair.d.ts.map +1 -1
  17. package/dist/src/lib/keyPair.js +51 -4
  18. package/dist/src/lib/nativeTransferBuilder.js +10 -12
  19. package/dist/src/lib/proxyBuilder.js +6 -8
  20. package/dist/src/lib/singletonRegistry.js +2 -2
  21. package/dist/src/lib/stakingBuilder.js +6 -8
  22. package/dist/src/lib/transaction.d.ts +0 -1
  23. package/dist/src/lib/transaction.d.ts.map +1 -1
  24. package/dist/src/lib/transaction.js +72 -52
  25. package/dist/src/lib/transactionBuilder.d.ts +0 -1
  26. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  27. package/dist/src/lib/transactionBuilder.js +30 -16
  28. package/dist/src/lib/transactionBuilderFactory.js +3 -4
  29. package/dist/src/lib/txnSchema.js +3 -3
  30. package/dist/src/lib/unnominateBuilder.js +4 -6
  31. package/dist/src/lib/unstakeBuilder.js +4 -6
  32. package/dist/src/lib/utils.d.ts +10 -2
  33. package/dist/src/lib/utils.d.ts.map +1 -1
  34. package/dist/src/lib/utils.js +67 -34
  35. package/dist/src/lib/withdrawUnstakedBuilder.js +4 -6
  36. package/dist/src/resources/index.d.ts +2 -0
  37. package/dist/src/resources/index.d.ts.map +1 -1
  38. package/dist/src/resources/index.js +8 -2
  39. package/dist/src/resources/polkadotAssetHub.d.ts +2 -0
  40. package/dist/src/resources/polkadotAssetHub.d.ts.map +1 -0
  41. package/dist/src/resources/polkadotAssetHub.js +5 -0
  42. package/dist/src/resources/westendAssetHub.d.ts +2 -0
  43. package/dist/src/resources/westendAssetHub.d.ts.map +1 -0
  44. package/dist/src/resources/westendAssetHub.js +5 -0
  45. package/dist/src/tdot.js +1 -1
  46. package/dist/test/fixtures.d.ts +283 -0
  47. package/dist/test/fixtures.d.ts.map +1 -0
  48. package/dist/test/fixtures.js +439 -0
  49. package/dist/test/resources/index.d.ts +141 -0
  50. package/dist/test/resources/index.d.ts.map +1 -0
  51. package/dist/test/resources/index.js +157 -0
  52. package/dist/test/resources/materialData.json +8 -0
  53. package/dist/test/resources/materialDataModified.json +8 -0
  54. package/dist/test/resources/testnet.d.ts +2 -0
  55. package/dist/test/resources/testnet.d.ts.map +1 -0
  56. package/dist/test/resources/testnet.js +5 -0
  57. package/dist/test/unit/address.d.ts +2 -0
  58. package/dist/test/unit/address.d.ts.map +1 -0
  59. package/dist/test/unit/address.js +45 -0
  60. package/dist/test/unit/dot.d.ts +2 -0
  61. package/dist/test/unit/dot.d.ts.map +1 -0
  62. package/dist/test/unit/dot.js +690 -0
  63. package/dist/test/unit/keypair.d.ts +2 -0
  64. package/dist/test/unit/keypair.d.ts.map +1 -0
  65. package/dist/test/unit/keypair.js +111 -0
  66. package/dist/test/unit/transaction.d.ts +2 -0
  67. package/dist/test/unit/transaction.d.ts.map +1 -0
  68. package/dist/test/unit/transaction.js +269 -0
  69. package/dist/test/unit/transactionBuilder/addressInitializationBuilder.d.ts +2 -0
  70. package/dist/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
  71. package/dist/test/unit/transactionBuilder/addressInitializationBuilder.js +265 -0
  72. package/dist/test/unit/transactionBuilder/base.d.ts +8 -0
  73. package/dist/test/unit/transactionBuilder/base.d.ts.map +1 -0
  74. package/dist/test/unit/transactionBuilder/base.js +233 -0
  75. package/dist/test/unit/transactionBuilder/batchTransactionBuilder.d.ts +2 -0
  76. package/dist/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +1 -0
  77. package/dist/test/unit/transactionBuilder/batchTransactionBuilder.js +521 -0
  78. package/dist/test/unit/transactionBuilder/claimBuilder.d.ts +2 -0
  79. package/dist/test/unit/transactionBuilder/claimBuilder.d.ts.map +1 -0
  80. package/dist/test/unit/transactionBuilder/claimBuilder.js +129 -0
  81. package/dist/test/unit/transactionBuilder/proxyBuilder.d.ts +2 -0
  82. package/dist/test/unit/transactionBuilder/proxyBuilder.d.ts.map +1 -0
  83. package/dist/test/unit/transactionBuilder/proxyBuilder.js +88 -0
  84. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts +2 -0
  85. package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
  86. package/dist/test/unit/transactionBuilder/singeltonRegistry.js +59 -0
  87. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts +2 -0
  88. package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
  89. package/dist/test/unit/transactionBuilder/stakingBuilder.js +235 -0
  90. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
  91. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
  92. package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +107 -0
  93. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  94. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  95. package/dist/test/unit/transactionBuilder/transferBuilder.js +437 -0
  96. package/dist/test/unit/transactionBuilder/unnominateBuilder.d.ts +2 -0
  97. package/dist/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +1 -0
  98. package/dist/test/unit/transactionBuilder/unnominateBuilder.js +97 -0
  99. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts +2 -0
  100. package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
  101. package/dist/test/unit/transactionBuilder/unstakeBuilder.js +116 -0
  102. package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts +2 -0
  103. package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +1 -0
  104. package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +115 -0
  105. package/dist/test/unit/utils.d.ts +2 -0
  106. package/dist/test/unit/utils.d.ts.map +1 -0
  107. package/dist/test/unit/utils.js +117 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -0
  109. package/package.json +20 -16
  110. package/.eslintignore +0 -5
  111. package/.mocharc.yml +0 -8
  112. package/CHANGELOG.md +0 -400
@@ -0,0 +1,265 @@
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 = __importDefault(require("sinon"));
9
+ const src_1 = require("../../../src");
10
+ const iface_1 = require("../../../src/lib/iface");
11
+ const utils_1 = __importDefault(require("../../../src/lib/utils"));
12
+ const resources_1 = require("../../resources");
13
+ const base_1 = require("./base");
14
+ describe('Dot Address Initialization Builder', () => {
15
+ let builder;
16
+ const sender = resources_1.accounts.account1;
17
+ const receiver = resources_1.accounts.account3;
18
+ beforeEach(() => {
19
+ const config = (0, base_1.buildTestConfig)();
20
+ builder = new src_1.AddressInitializationBuilder(config).material(utils_1.default.getMaterial(config));
21
+ });
22
+ describe('setter validation', () => {
23
+ it('should validate delay', () => {
24
+ const spy = sinon_1.default.spy(builder, 'validateValue');
25
+ assert_1.default.throws(() => builder.delay('-1'), (e) => e.message === 'Value cannot be less than zero');
26
+ should_1.default.doesNotThrow(() => builder.delay('0'));
27
+ sinon_1.default.assert.calledTwice(spy);
28
+ });
29
+ it('should validate owner address', () => {
30
+ const spy = sinon_1.default.spy(builder, 'validateAddress');
31
+ assert_1.default.throws(() => builder.owner({ address: 'asd' }), (e) => e.message === `The address 'asd' is not a well-formed dot address`);
32
+ should_1.default.doesNotThrow(() => builder.owner({ address: sender.address }));
33
+ sinon_1.default.assert.calledTwice(spy);
34
+ });
35
+ it('should validate index', () => {
36
+ const spy = sinon_1.default.spy(builder, 'validateValue');
37
+ assert_1.default.throws(() => builder.index(-1), (e) => e.message === 'Value cannot be less than zero');
38
+ should_1.default.doesNotThrow(() => builder.index(0));
39
+ sinon_1.default.assert.calledTwice(spy);
40
+ });
41
+ });
42
+ describe('build addProxy transaction', () => {
43
+ it('should build a addProxy transaction', async () => {
44
+ builder
45
+ .owner({ address: receiver.address })
46
+ .type(iface_1.ProxyType.ANY)
47
+ .delay('0')
48
+ .sender({ address: sender.address })
49
+ .validity({ firstValid: 3933, maxDuration: 64 })
50
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
51
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
52
+ .fee({ amount: 0, type: 'tip' });
53
+ builder.addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
54
+ const tx = await builder.build();
55
+ const txJson = tx.toJson();
56
+ should_1.default.deepEqual(txJson.owner, receiver.address);
57
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
58
+ should_1.default.deepEqual(txJson.delay, '0');
59
+ should_1.default.deepEqual(txJson.sender, sender.address);
60
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
61
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
62
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
63
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
64
+ should_1.default.deepEqual(txJson.nonce, 200);
65
+ should_1.default.deepEqual(txJson.tip, 0);
66
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
67
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
68
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
69
+ });
70
+ it('should build an unsigned addProxy transaction', async () => {
71
+ builder
72
+ .owner({ address: receiver.address })
73
+ .type(iface_1.ProxyType.ANY)
74
+ .delay('0')
75
+ .sender({ address: sender.address })
76
+ .validity({ firstValid: 3933, maxDuration: 64 })
77
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
78
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
79
+ .fee({ amount: 0, type: 'tip' });
80
+ const tx = await builder.build();
81
+ const txJson = tx.toJson();
82
+ should_1.default.deepEqual(txJson.owner, receiver.address);
83
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
84
+ should_1.default.deepEqual(txJson.delay, '0');
85
+ should_1.default.deepEqual(txJson.sender, sender.address);
86
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
87
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
88
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
89
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
90
+ should_1.default.deepEqual(txJson.nonce, 200);
91
+ should_1.default.deepEqual(txJson.tip, 0);
92
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
93
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
94
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
95
+ });
96
+ it('should build from raw signed tx', async () => {
97
+ builder.from(resources_1.rawTx.addProxy.signed);
98
+ builder
99
+ .validity({ firstValid: 3933, maxDuration: 64 })
100
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
101
+ const tx = await builder.build();
102
+ const txJson = tx.toJson();
103
+ should_1.default.deepEqual(txJson.owner, receiver.address);
104
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
105
+ should_1.default.deepEqual(txJson.delay, '0');
106
+ should_1.default.deepEqual(txJson.sender, sender.address);
107
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
108
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
109
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
110
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
111
+ should_1.default.deepEqual(txJson.nonce, 200);
112
+ should_1.default.deepEqual(txJson.tip, 0);
113
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
114
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
115
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
116
+ });
117
+ it('should build from raw unsigned tx', async () => {
118
+ builder.from(resources_1.rawTx.addProxy.unsigned);
119
+ builder
120
+ .validity({ firstValid: 3933, maxDuration: 64 })
121
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
122
+ .sender({ address: sender.address })
123
+ .addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
124
+ const tx = await builder.build();
125
+ const txJson = tx.toJson();
126
+ should_1.default.deepEqual(txJson.owner, receiver.address);
127
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
128
+ should_1.default.deepEqual(txJson.delay, '0');
129
+ should_1.default.deepEqual(txJson.sender, sender.address);
130
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
131
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
132
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
133
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
134
+ should_1.default.deepEqual(txJson.nonce, 200);
135
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
136
+ should_1.default.deepEqual(txJson.tip, 0);
137
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
138
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
139
+ });
140
+ });
141
+ describe('build anonymous proxy creation transaction', () => {
142
+ it('should build an anonymous proxy transaction', async () => {
143
+ builder
144
+ .type(iface_1.ProxyType.ANY)
145
+ .delay('0')
146
+ .index(0)
147
+ .sender({ address: sender.address })
148
+ .validity({ firstValid: 3933, maxDuration: 64 })
149
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
150
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
151
+ .fee({ amount: 0, type: 'tip' });
152
+ builder.addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
153
+ const tx = await builder.build();
154
+ const txJson = tx.toJson();
155
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
156
+ should_1.default.deepEqual(txJson.delay, '0');
157
+ should_1.default.deepEqual(txJson.index, '0');
158
+ should_1.default.deepEqual(txJson.sender, sender.address);
159
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
160
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
161
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
162
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
163
+ should_1.default.deepEqual(txJson.nonce, 200);
164
+ should_1.default.deepEqual(txJson.tip, 0);
165
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
166
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
167
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
168
+ });
169
+ it('should build an unsigned anonymous proxy transaction', async () => {
170
+ builder
171
+ .type(iface_1.ProxyType.ANY)
172
+ .delay('0')
173
+ .index(0)
174
+ .sender({ address: sender.address })
175
+ .validity({ firstValid: 3933, maxDuration: 64 })
176
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
177
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
178
+ .fee({ amount: 0, type: 'tip' });
179
+ const tx = await builder.build();
180
+ const txJson = tx.toJson();
181
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
182
+ should_1.default.deepEqual(txJson.delay, '0');
183
+ should_1.default.deepEqual(txJson.index, '0');
184
+ should_1.default.deepEqual(txJson.sender, sender.address);
185
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
186
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
187
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
188
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
189
+ should_1.default.deepEqual(txJson.nonce, 200);
190
+ should_1.default.deepEqual(txJson.tip, 0);
191
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
192
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
193
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
194
+ });
195
+ it('should default to building anonymous proxy if owner is not called', async () => {
196
+ builder
197
+ .type(iface_1.ProxyType.ANY)
198
+ .delay('0')
199
+ .sender({ address: sender.address })
200
+ .validity({ firstValid: 3933, maxDuration: 64 })
201
+ .referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
202
+ .sequenceId({ name: 'Nonce', keyword: 'nonce', value: 200 })
203
+ .fee({ amount: 0, type: 'tip' });
204
+ builder.addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
205
+ const tx = await builder.build();
206
+ const txJson = tx.toJson();
207
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
208
+ should_1.default.deepEqual(txJson.delay, '0');
209
+ should_1.default.deepEqual(txJson.index, '0');
210
+ should_1.default.deepEqual(txJson.sender, sender.address);
211
+ should_1.default.deepEqual(txJson.blockNumber, 3933);
212
+ should_1.default.deepEqual(txJson.referenceBlock, '0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
213
+ should_1.default.deepEqual(txJson.genesisHash, resources_1.genesisHash);
214
+ should_1.default.deepEqual(txJson.specVersion, resources_1.specVersion);
215
+ should_1.default.deepEqual(txJson.nonce, 200);
216
+ should_1.default.deepEqual(txJson.tip, 0);
217
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
218
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
219
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
220
+ });
221
+ it('should build from raw signed tx', async () => {
222
+ builder.from(resources_1.rawTx.pureProxy.signed);
223
+ builder
224
+ .validity({ firstValid: 8975007, maxDuration: 64 })
225
+ .referenceBlock('0x9ed0c8ee5fdc375ee57f79591d7d0db4d7cd2aa0e5403a2ed84edf0f859e3f05');
226
+ const tx = await builder.build();
227
+ const txJson = tx.toJson();
228
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
229
+ should_1.default.deepEqual(txJson.index, '0');
230
+ should_1.default.deepEqual(txJson.delay, '0');
231
+ should_1.default.deepEqual(txJson.sender, sender.address);
232
+ should_1.default.deepEqual(txJson.blockNumber, 8975007);
233
+ should_1.default.deepEqual(txJson.referenceBlock, '0x9ed0c8ee5fdc375ee57f79591d7d0db4d7cd2aa0e5403a2ed84edf0f859e3f05');
234
+ should_1.default.deepEqual(txJson.genesisHash, '0x67f9723393ef76214df0118c34bbbd3dbebc8ed46a10973a8c969d48fe7598c9');
235
+ should_1.default.deepEqual(txJson.nonce, 200);
236
+ should_1.default.deepEqual(txJson.tip, 0);
237
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
238
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
239
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
240
+ });
241
+ it('should build from raw unsigned tx', async () => {
242
+ builder.from(resources_1.rawTx.pureProxy.unsigned);
243
+ builder
244
+ .validity({ firstValid: 8975007, maxDuration: 64 })
245
+ .referenceBlock('0x9ed0c8ee5fdc375ee57f79591d7d0db4d7cd2aa0e5403a2ed84edf0f859e3f05')
246
+ .sender({ address: sender.address })
247
+ .addSignature({ pub: sender.publicKey }, Buffer.from(resources_1.mockTssSignature, 'hex'));
248
+ const tx = await builder.build();
249
+ const txJson = tx.toJson();
250
+ should_1.default.deepEqual(txJson.proxyType, iface_1.ProxyType.ANY);
251
+ should_1.default.deepEqual(txJson.index, '0');
252
+ should_1.default.deepEqual(txJson.delay, '0');
253
+ should_1.default.deepEqual(txJson.sender, sender.address);
254
+ should_1.default.deepEqual(txJson.blockNumber, 8975007);
255
+ should_1.default.deepEqual(txJson.referenceBlock, '0x9ed0c8ee5fdc375ee57f79591d7d0db4d7cd2aa0e5403a2ed84edf0f859e3f05');
256
+ should_1.default.deepEqual(txJson.genesisHash, '0x67f9723393ef76214df0118c34bbbd3dbebc8ed46a10973a8c969d48fe7598c9');
257
+ should_1.default.deepEqual(txJson.nonce, 200);
258
+ should_1.default.deepEqual(txJson.tip, 0);
259
+ should_1.default.deepEqual(txJson.transactionVersion, resources_1.txVersion);
260
+ should_1.default.deepEqual(txJson.chainName, resources_1.chainName);
261
+ should_1.default.deepEqual(txJson.eraPeriod, 64);
262
+ });
263
+ });
264
+ });
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvYWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsa0RBQTBCO0FBQzFCLHNDQUE0RDtBQUM1RCxrREFBbUQ7QUFDbkQsbUVBQTJDO0FBQzNDLCtDQUFvSDtBQUNwSCxpQ0FBeUM7QUFFekMsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRTtJQUNsRCxJQUFJLE9BQXFDLENBQUM7SUFFMUMsTUFBTSxNQUFNLEdBQUcsb0JBQVEsQ0FBQyxRQUFRLENBQUM7SUFDakMsTUFBTSxRQUFRLEdBQUcsb0JBQVEsQ0FBQyxRQUFRLENBQUM7SUFFbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLGtDQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7WUFDL0IsTUFBTSxHQUFHLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDaEQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDekIsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssZ0NBQWdDLENBQzdELENBQUM7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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgUHJveHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyByYXdUeCwgYWNjb3VudHMsIHR4VmVyc2lvbiwgc3BlY1ZlcnNpb24sIGdlbmVzaXNIYXNoLCBjaGFpbk5hbWUsIG1vY2tUc3NTaWduYXR1cmUgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgYnVpbGRUZXN0Q29uZmlnIH0gZnJvbSAnLi9iYXNlJztcblxuZGVzY3JpYmUoJ0RvdCBBZGRyZXNzIEluaXRpYWxpemF0aW9uIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGxldCBidWlsZGVyOiBBZGRyZXNzSW5pdGlhbGl6YXRpb25CdWlsZGVyO1xuXG4gIGNvbnN0IHNlbmRlciA9IGFjY291bnRzLmFjY291bnQxO1xuICBjb25zdCByZWNlaXZlciA9IGFjY291bnRzLmFjY291bnQzO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGJ1aWxkVGVzdENvbmZpZygpO1xuICAgIGJ1aWxkZXIgPSBuZXcgQWRkcmVzc0luaXRpYWxpemF0aW9uQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKHV0aWxzLmdldE1hdGVyaWFsKGNvbmZpZykpO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2V0dGVyIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBkZWxheScsICgpID0+IHtcbiAgICAgIGNvbnN0IHNweSA9IHNpbm9uLnNweShidWlsZGVyLCAndmFsaWRhdGVWYWx1ZScpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5kZWxheSgnLTEnKSxcbiAgICAgICAgKGU6IEVycm9yKSA9PiBlLm1lc3NhZ2UgPT09ICdWYWx1ZSBjYW5ub3QgYmUgbGVzcyB0aGFuIHplcm8nXG4gICAgICApO1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLmRlbGF5KCcwJykpO1xuICAgICAgc2lub24uYXNzZXJ0LmNhbGxlZFR3aWNlKHNweSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIG93bmVyIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzcHkgPSBzaW5vbi5zcHkoYnVpbGRlciwgJ3ZhbGlkYXRlQWRkcmVzcycpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5vd25lcih7IGFkZHJlc3M6ICdhc2QnIH0pLFxuICAgICAgICAoZTogRXJyb3IpID0+IGUubWVzc2FnZSA9PT0gYFRoZSBhZGRyZXNzICdhc2QnIGlzIG5vdCBhIHdlbGwtZm9ybWVkIGRvdCBhZGRyZXNzYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5vd25lcih7IGFkZHJlc3M6IHNlbmRlci5hZGRyZXNzIH0pKTtcbiAgICAgIHNpbm9uLmFzc2VydC5jYWxsZWRUd2ljZShzcHkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBpbmRleCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHNweSA9IHNpbm9uLnNweShidWlsZGVyLCAndmFsaWRhdGVWYWx1ZScpO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gYnVpbGRlci5pbmRleCgtMSksXG4gICAgICAgIChlOiBFcnJvcikgPT4gZS5tZXNzYWdlID09PSAnVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJ1xuICAgICAgKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gYnVpbGRlci5pbmRleCgwKSk7XG4gICAgICBzaW5vbi5hc3NlcnQuY2FsbGVkVHdpY2Uoc3B5KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIGFkZFByb3h5IHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBhZGRQcm94eSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLm93bmVyKHsgYWRkcmVzczogcmVjZWl2ZXIuYWRkcmVzcyB9KVxuICAgICAgICAudHlwZShQcm94eVR5cGUuQU5ZKVxuICAgICAgICAuZGVsYXkoJzAnKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyLmFkZHJlc3MgfSlcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMywgbWF4RHVyYXRpb246IDY0IH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlcXVlbmNlSWQoeyBuYW1lOiAnTm9uY2UnLCBrZXl3b3JkOiAnbm9uY2UnLCB2YWx1ZTogMjAwIH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pO1xuICAgICAgYnVpbGRlci5hZGRTaWduYXR1cmUoeyBwdWI6IHNlbmRlci5wdWJsaWNLZXkgfSwgQnVmZmVyLmZyb20obW9ja1Rzc1NpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5vd25lciwgcmVjZWl2ZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5wcm94eVR5cGUsIFByb3h5VHlwZS5BTlkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZGVsYXksICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zZW5kZXIsIHNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmJsb2NrTnVtYmVyLCAzOTMzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnJlZmVyZW5jZUJsb2NrLCAnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5nZW5lc2lzSGFzaCwgZ2VuZXNpc0hhc2gpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc3BlY1ZlcnNpb24sIHNwZWNWZXJzaW9uKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLm5vbmNlLCAyMDApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udGlwLCAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRyYW5zYWN0aW9uVmVyc2lvbiwgdHhWZXJzaW9uKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmNoYWluTmFtZSwgY2hhaW5OYW1lKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmVyYVBlcmlvZCwgNjQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCBhZGRQcm94eSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLm93bmVyKHsgYWRkcmVzczogcmVjZWl2ZXIuYWRkcmVzcyB9KVxuICAgICAgICAudHlwZShQcm94eVR5cGUuQU5ZKVxuICAgICAgICAuZGVsYXkoJzAnKVxuICAgICAgICAuc2VuZGVyKHsgYWRkcmVzczogc2VuZGVyLmFkZHJlc3MgfSlcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMywgbWF4RHVyYXRpb246IDY0IH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlcXVlbmNlSWQoeyBuYW1lOiAnTm9uY2UnLCBrZXl3b3JkOiAnbm9uY2UnLCB2YWx1ZTogMjAwIH0pXG4gICAgICAgIC5mZWUoeyBhbW91bnQ6IDAsIHR5cGU6ICd0aXAnIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLm93bmVyLCByZWNlaXZlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnByb3h5VHlwZSwgUHJveHlUeXBlLkFOWSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5kZWxheSwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNlbmRlciwgc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uYmxvY2tOdW1iZXIsIDM5MzMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucmVmZXJlbmNlQmxvY2ssICcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmdlbmVzaXNIYXNoLCBnZW5lc2lzSGFzaCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zcGVjVmVyc2lvbiwgc3BlY1ZlcnNpb24pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ubm9uY2UsIDIwMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50aXAsIDApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udHJhbnNhY3Rpb25WZXJzaW9uLCB0eFZlcnNpb24pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uY2hhaW5OYW1lLCBjaGFpbk5hbWUpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZXJhUGVyaW9kLCA2NCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGZyb20gcmF3IHNpZ25lZCB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGJ1aWxkZXIuZnJvbShyYXdUeC5hZGRQcm94eS5zaWduZWQpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5vd25lciwgcmVjZWl2ZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5wcm94eVR5cGUsIFByb3h5VHlwZS5BTlkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZGVsYXksICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zZW5kZXIsIHNlbmRlci5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmJsb2NrTnVtYmVyLCAzOTMzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnJlZmVyZW5jZUJsb2NrLCAnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5nZW5lc2lzSGFzaCwgZ2VuZXNpc0hhc2gpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc3BlY1ZlcnNpb24sIHNwZWNWZXJzaW9uKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLm5vbmNlLCAyMDApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udGlwLCAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRyYW5zYWN0aW9uVmVyc2lvbiwgdHhWZXJzaW9uKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmNoYWluTmFtZSwgY2hhaW5OYW1lKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmVyYVBlcmlvZCwgNjQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBmcm9tIHJhdyB1bnNpZ25lZCB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGJ1aWxkZXIuZnJvbShyYXdUeC5hZGRQcm94eS51bnNpZ25lZCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXIuYWRkcmVzcyB9KVxuICAgICAgICAuYWRkU2lnbmF0dXJlKHsgcHViOiBzZW5kZXIucHVibGljS2V5IH0sIEJ1ZmZlci5mcm9tKG1vY2tUc3NTaWduYXR1cmUsICdoZXgnKSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ub3duZXIsIHJlY2VpdmVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucHJveHlUeXBlLCBQcm94eVR5cGUuQU5ZKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmRlbGF5LCAnMCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc2VuZGVyLCBzZW5kZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ibG9ja051bWJlciwgMzkzMyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5yZWZlcmVuY2VCbG9jaywgJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZ2VuZXNpc0hhc2gsIGdlbmVzaXNIYXNoKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNwZWNWZXJzaW9uLCBzcGVjVmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmVyYVBlcmlvZCwgNjQpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udGlwLCAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRyYW5zYWN0aW9uVmVyc2lvbiwgdHhWZXJzaW9uKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmNoYWluTmFtZSwgY2hhaW5OYW1lKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkIGFub255bW91cyBwcm94eSBjcmVhdGlvbiB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuIGFub255bW91cyBwcm94eSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnR5cGUoUHJveHlUeXBlLkFOWSlcbiAgICAgICAgLmRlbGF5KCcwJylcbiAgICAgICAgLmluZGV4KDApXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXIuYWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAyMDAgfSlcbiAgICAgICAgLmZlZSh7IGFtb3VudDogMCwgdHlwZTogJ3RpcCcgfSk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25hdHVyZSh7IHB1Yjogc2VuZGVyLnB1YmxpY0tleSB9LCBCdWZmZXIuZnJvbShtb2NrVHNzU2lnbmF0dXJlLCAnaGV4JykpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnByb3h5VHlwZSwgUHJveHlUeXBlLkFOWSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5kZWxheSwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmluZGV4LCAnMCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc2VuZGVyLCBzZW5kZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ibG9ja051bWJlciwgMzkzMyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5yZWZlcmVuY2VCbG9jaywgJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZ2VuZXNpc0hhc2gsIGdlbmVzaXNIYXNoKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNwZWNWZXJzaW9uLCBzcGVjVmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRpcCwgMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50cmFuc2FjdGlvblZlcnNpb24sIHR4VmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5jaGFpbk5hbWUsIGNoYWluTmFtZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5lcmFQZXJpb2QsIDY0KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYW4gdW5zaWduZWQgYW5vbnltb3VzIHByb3h5IHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYnVpbGRlclxuICAgICAgICAudHlwZShQcm94eVR5cGUuQU5ZKVxuICAgICAgICAuZGVsYXkoJzAnKVxuICAgICAgICAuaW5kZXgoMClcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlci5hZGRyZXNzIH0pXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMsIG1heER1cmF0aW9uOiA2NCB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZXF1ZW5jZUlkKHsgbmFtZTogJ05vbmNlJywga2V5d29yZDogJ25vbmNlJywgdmFsdWU6IDIwMCB9KVxuICAgICAgICAuZmVlKHsgYW1vdW50OiAwLCB0eXBlOiAndGlwJyB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5wcm94eVR5cGUsIFByb3h5VHlwZS5BTlkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZGVsYXksICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5pbmRleCwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNlbmRlciwgc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uYmxvY2tOdW1iZXIsIDM5MzMpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucmVmZXJlbmNlQmxvY2ssICcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmdlbmVzaXNIYXNoLCBnZW5lc2lzSGFzaCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5zcGVjVmVyc2lvbiwgc3BlY1ZlcnNpb24pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ubm9uY2UsIDIwMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50aXAsIDApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24udHJhbnNhY3Rpb25WZXJzaW9uLCB0eFZlcnNpb24pO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uY2hhaW5OYW1lLCBjaGFpbk5hbWUpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZXJhUGVyaW9kLCA2NCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRlZmF1bHQgdG8gYnVpbGRpbmcgYW5vbnltb3VzIHByb3h5IGlmIG93bmVyIGlzIG5vdCBjYWxsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC50eXBlKFByb3h5VHlwZS5BTlkpXG4gICAgICAgIC5kZWxheSgnMCcpXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBzZW5kZXIuYWRkcmVzcyB9KVxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzLCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKVxuICAgICAgICAuc2VxdWVuY2VJZCh7IG5hbWU6ICdOb25jZScsIGtleXdvcmQ6ICdub25jZScsIHZhbHVlOiAyMDAgfSlcbiAgICAgICAgLmZlZSh7IGFtb3VudDogMCwgdHlwZTogJ3RpcCcgfSk7XG4gICAgICBidWlsZGVyLmFkZFNpZ25hdHVyZSh7IHB1Yjogc2VuZGVyLnB1YmxpY0tleSB9LCBCdWZmZXIuZnJvbShtb2NrVHNzU2lnbmF0dXJlLCAnaGV4JykpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnByb3h5VHlwZSwgUHJveHlUeXBlLkFOWSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5kZWxheSwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmluZGV4LCAnMCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uc2VuZGVyLCBzZW5kZXIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ibG9ja051bWJlciwgMzkzMyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5yZWZlcmVuY2VCbG9jaywgJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uZ2VuZXNpc0hhc2gsIGdlbmVzaXNIYXNoKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNwZWNWZXJzaW9uLCBzcGVjVmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRpcCwgMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50cmFuc2FjdGlvblZlcnNpb24sIHR4VmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5jaGFpbk5hbWUsIGNoYWluTmFtZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5lcmFQZXJpb2QsIDY0KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgZnJvbSByYXcgc2lnbmVkIHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgYnVpbGRlci5mcm9tKHJhd1R4LnB1cmVQcm94eS5zaWduZWQpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiA4OTc1MDA3LCBtYXhEdXJhdGlvbjogNjQgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDllZDBjOGVlNWZkYzM3NWVlNTdmNzk1OTFkN2QwZGI0ZDdjZDJhYTBlNTQwM2EyZWQ4NGVkZjBmODU5ZTNmMDUnKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5wcm94eVR5cGUsIFByb3h5VHlwZS5BTlkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uaW5kZXgsICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5kZWxheSwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNlbmRlciwgc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uYmxvY2tOdW1iZXIsIDg5NzUwMDcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucmVmZXJlbmNlQmxvY2ssICcweDllZDBjOGVlNWZkYzM3NWVlNTdmNzk1OTFkN2QwZGI0ZDdjZDJhYTBlNTQwM2EyZWQ4NGVkZjBmODU5ZTNmMDUnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmdlbmVzaXNIYXNoLCAnMHg2N2Y5NzIzMzkzZWY3NjIxNGRmMDExOGMzNGJiYmQzZGJlYmM4ZWQ0NmExMDk3M2E4Yzk2OWQ0OGZlNzU5OGM5Jyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRpcCwgMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50cmFuc2FjdGlvblZlcnNpb24sIHR4VmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5jaGFpbk5hbWUsIGNoYWluTmFtZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5lcmFQZXJpb2QsIDY0KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgZnJvbSByYXcgdW5zaWduZWQgdHgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBidWlsZGVyLmZyb20ocmF3VHgucHVyZVByb3h5LnVuc2lnbmVkKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogODk3NTAwNywgbWF4RHVyYXRpb246IDY0IH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHg5ZWQwYzhlZTVmZGMzNzVlZTU3Zjc5NTkxZDdkMGRiNGQ3Y2QyYWEwZTU0MDNhMmVkODRlZGYwZjg1OWUzZjA1JylcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IHNlbmRlci5hZGRyZXNzIH0pXG4gICAgICAgIC5hZGRTaWduYXR1cmUoeyBwdWI6IHNlbmRlci5wdWJsaWNLZXkgfSwgQnVmZmVyLmZyb20obW9ja1Rzc1NpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5wcm94eVR5cGUsIFByb3h5VHlwZS5BTlkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uaW5kZXgsICcwJyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5kZWxheSwgJzAnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnNlbmRlciwgc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24uYmxvY2tOdW1iZXIsIDg5NzUwMDcpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eEpzb24ucmVmZXJlbmNlQmxvY2ssICcweDllZDBjOGVlNWZkYzM3NWVlNTdmNzk1OTFkN2QwZGI0ZDdjZDJhYTBlNTQwM2EyZWQ4NGVkZjBmODU5ZTNmMDUnKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmdlbmVzaXNIYXNoLCAnMHg2N2Y5NzIzMzkzZWY3NjIxNGRmMDExOGMzNGJiYmQzZGJlYmM4ZWQ0NmExMDk3M2E4Yzk2OWQ0OGZlNzU5OGM5Jyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5ub25jZSwgMjAwKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLnRpcCwgMCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi50cmFuc2FjdGlvblZlcnNpb24sIHR4VmVyc2lvbik7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5jaGFpbk5hbWUsIGNoYWluTmFtZSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4SnNvbi5lcmFQZXJpb2QsIDY0KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { BaseCoin as CoinConfig, DotNetwork } from '@bitgo-beta/statics';
2
+ export interface TestDotNetwork extends DotNetwork {
3
+ genesisHash: string;
4
+ specVersion: number;
5
+ metadataRpc: `0x${string}`;
6
+ }
7
+ export declare const buildTestConfig: () => Readonly<CoinConfig>;
8
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAS,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUhF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,QAAO,QAAQ,CAAC,UAAU,CAErD,CAAC"}