@bitgo-beta/abstract-eth 1.2.3-alpha.403 → 1.2.3-alpha.404

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 (152) hide show
  1. package/dist/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +7 -7
  3. package/dist/src/abstractEthLikeCoin.d.ts +0 -95
  4. package/dist/src/abstractEthLikeCoin.d.ts.map +0 -1
  5. package/dist/src/abstractEthLikeCoin.js +0 -160
  6. package/dist/src/abstractEthLikeNewCoins.d.ts +0 -749
  7. package/dist/src/abstractEthLikeNewCoins.d.ts.map +0 -1
  8. package/dist/src/abstractEthLikeNewCoins.js +0 -2229
  9. package/dist/src/ethLikeToken.d.ts +0 -70
  10. package/dist/src/ethLikeToken.d.ts.map +0 -1
  11. package/dist/src/ethLikeToken.js +0 -360
  12. package/dist/src/index.d.ts +0 -5
  13. package/dist/src/index.d.ts.map +0 -1
  14. package/dist/src/index.js +0 -21
  15. package/dist/src/lib/contractCall.d.ts +0 -8
  16. package/dist/src/lib/contractCall.d.ts.map +0 -1
  17. package/dist/src/lib/contractCall.js +0 -17
  18. package/dist/src/lib/iface.d.ts +0 -133
  19. package/dist/src/lib/iface.d.ts.map +0 -1
  20. package/dist/src/lib/iface.js +0 -8
  21. package/dist/src/lib/index.d.ts +0 -16
  22. package/dist/src/lib/index.d.ts.map +0 -1
  23. package/dist/src/lib/index.js +0 -57
  24. package/dist/src/lib/keyPair.d.ts +0 -26
  25. package/dist/src/lib/keyPair.d.ts.map +0 -1
  26. package/dist/src/lib/keyPair.js +0 -65
  27. package/dist/src/lib/messages/eip191/eip191Message.d.ts +0 -12
  28. package/dist/src/lib/messages/eip191/eip191Message.d.ts.map +0 -1
  29. package/dist/src/lib/messages/eip191/eip191Message.js +0 -25
  30. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts +0 -19
  31. package/dist/src/lib/messages/eip191/eip191MessageBuilder.d.ts.map +0 -1
  32. package/dist/src/lib/messages/eip191/eip191MessageBuilder.js +0 -27
  33. package/dist/src/lib/messages/eip191/index.d.ts +0 -3
  34. package/dist/src/lib/messages/eip191/index.d.ts.map +0 -1
  35. package/dist/src/lib/messages/eip191/index.js +0 -19
  36. package/dist/src/lib/messages/eip712/eip712Message.d.ts +0 -6
  37. package/dist/src/lib/messages/eip712/eip712Message.d.ts.map +0 -1
  38. package/dist/src/lib/messages/eip712/eip712Message.js +0 -27
  39. package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts +0 -7
  40. package/dist/src/lib/messages/eip712/eip712MessageBuilder.d.ts.map +0 -1
  41. package/dist/src/lib/messages/eip712/eip712MessageBuilder.js +0 -15
  42. package/dist/src/lib/messages/eip712/index.d.ts +0 -3
  43. package/dist/src/lib/messages/eip712/index.d.ts.map +0 -1
  44. package/dist/src/lib/messages/eip712/index.js +0 -19
  45. package/dist/src/lib/messages/index.d.ts +0 -4
  46. package/dist/src/lib/messages/index.d.ts.map +0 -1
  47. package/dist/src/lib/messages/index.js +0 -20
  48. package/dist/src/lib/messages/messageBuilderFactory.d.ts +0 -7
  49. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +0 -1
  50. package/dist/src/lib/messages/messageBuilderFactory.js +0 -23
  51. package/dist/src/lib/transaction.d.ts +0 -67
  52. package/dist/src/lib/transaction.d.ts.map +0 -1
  53. package/dist/src/lib/transaction.js +0 -142
  54. package/dist/src/lib/transactionBuilder.d.ts +0 -270
  55. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  56. package/dist/src/lib/transactionBuilder.js +0 -822
  57. package/dist/src/lib/transferBuilder.d.ts +0 -76
  58. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  59. package/dist/src/lib/transferBuilder.js +0 -307
  60. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +0 -54
  61. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +0 -1
  62. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +0 -120
  63. package/dist/src/lib/transferBuilders/index.d.ts +0 -4
  64. package/dist/src/lib/transferBuilders/index.d.ts.map +0 -1
  65. package/dist/src/lib/transferBuilders/index.js +0 -20
  66. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +0 -17
  67. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +0 -1
  68. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +0 -96
  69. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +0 -16
  70. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +0 -1
  71. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +0 -81
  72. package/dist/src/lib/types.d.ts +0 -39
  73. package/dist/src/lib/types.d.ts.map +0 -1
  74. package/dist/src/lib/types.js +0 -137
  75. package/dist/src/lib/utils.d.ts +0 -310
  76. package/dist/src/lib/utils.d.ts.map +0 -1
  77. package/dist/src/lib/utils.js +0 -829
  78. package/dist/src/lib/walletUtil.d.ts +0 -40
  79. package/dist/src/lib/walletUtil.d.ts.map +0 -1
  80. package/dist/src/lib/walletUtil.js +0 -43
  81. package/dist/src/types.d.ts +0 -9
  82. package/dist/src/types.d.ts.map +0 -1
  83. package/dist/src/types.js +0 -3
  84. package/dist/test/index.d.ts +0 -2
  85. package/dist/test/index.d.ts.map +0 -1
  86. package/dist/test/index.js +0 -18
  87. package/dist/test/unit/coin.d.ts +0 -8
  88. package/dist/test/unit/coin.d.ts.map +0 -1
  89. package/dist/test/unit/coin.js +0 -577
  90. package/dist/test/unit/index.d.ts +0 -6
  91. package/dist/test/unit/index.d.ts.map +0 -1
  92. package/dist/test/unit/index.js +0 -22
  93. package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts +0 -3
  94. package/dist/test/unit/messages/abstractEthMessageBuilderTests.d.ts.map +0 -1
  95. package/dist/test/unit/messages/abstractEthMessageBuilderTests.js +0 -110
  96. package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts +0 -43
  97. package/dist/test/unit/messages/abstractEthMessageTestTypes.d.ts.map +0 -1
  98. package/dist/test/unit/messages/abstractEthMessageTestTypes.js +0 -3
  99. package/dist/test/unit/messages/abstractEthMessagesTests.d.ts +0 -3
  100. package/dist/test/unit/messages/abstractEthMessagesTests.d.ts.map +0 -1
  101. package/dist/test/unit/messages/abstractEthMessagesTests.js +0 -129
  102. package/dist/test/unit/messages/eip191/eip191Message.d.ts +0 -2
  103. package/dist/test/unit/messages/eip191/eip191Message.d.ts.map +0 -1
  104. package/dist/test/unit/messages/eip191/eip191Message.js +0 -15
  105. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts +0 -2
  106. package/dist/test/unit/messages/eip191/eip191MessageBuilder.d.ts.map +0 -1
  107. package/dist/test/unit/messages/eip191/eip191MessageBuilder.js +0 -16
  108. package/dist/test/unit/messages/eip191/fixtures.d.ts +0 -109
  109. package/dist/test/unit/messages/eip191/fixtures.d.ts.map +0 -1
  110. package/dist/test/unit/messages/eip191/fixtures.js +0 -63
  111. package/dist/test/unit/messages/eip712/eip712Message.d.ts +0 -2
  112. package/dist/test/unit/messages/eip712/eip712Message.d.ts.map +0 -1
  113. package/dist/test/unit/messages/eip712/eip712Message.js +0 -15
  114. package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts +0 -2
  115. package/dist/test/unit/messages/eip712/eip712MessageBuilder.d.ts.map +0 -1
  116. package/dist/test/unit/messages/eip712/eip712MessageBuilder.js +0 -16
  117. package/dist/test/unit/messages/eip712/fixtures.d.ts +0 -76
  118. package/dist/test/unit/messages/eip712/fixtures.d.ts.map +0 -1
  119. package/dist/test/unit/messages/eip712/fixtures.js +0 -120
  120. package/dist/test/unit/messages/index.d.ts +0 -4
  121. package/dist/test/unit/messages/index.d.ts.map +0 -1
  122. package/dist/test/unit/messages/index.js +0 -20
  123. package/dist/test/unit/messages/messageBuilderFactory.d.ts +0 -2
  124. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
  125. package/dist/test/unit/messages/messageBuilderFactory.js +0 -52
  126. package/dist/test/unit/token.d.ts +0 -2
  127. package/dist/test/unit/token.d.ts.map +0 -1
  128. package/dist/test/unit/token.js +0 -37
  129. package/dist/test/unit/transaction.d.ts +0 -3
  130. package/dist/test/unit/transaction.d.ts.map +0 -1
  131. package/dist/test/unit/transaction.js +0 -60
  132. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +0 -8
  133. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +0 -1
  134. package/dist/test/unit/transactionBuilder/addressInitialization.js +0 -95
  135. package/dist/test/unit/transactionBuilder/flushNft.d.ts +0 -2
  136. package/dist/test/unit/transactionBuilder/flushNft.d.ts.map +0 -1
  137. package/dist/test/unit/transactionBuilder/flushNft.js +0 -381
  138. package/dist/test/unit/transactionBuilder/index.d.ts +0 -5
  139. package/dist/test/unit/transactionBuilder/index.d.ts.map +0 -1
  140. package/dist/test/unit/transactionBuilder/index.js +0 -21
  141. package/dist/test/unit/transactionBuilder/send.d.ts +0 -3
  142. package/dist/test/unit/transactionBuilder/send.d.ts.map +0 -1
  143. package/dist/test/unit/transactionBuilder/send.js +0 -197
  144. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +0 -10
  145. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +0 -1
  146. package/dist/test/unit/transactionBuilder/walletInitialization.js +0 -124
  147. package/dist/test/unit/transferBuilder.d.ts +0 -2
  148. package/dist/test/unit/transferBuilder.d.ts.map +0 -1
  149. package/dist/test/unit/transferBuilder.js +0 -76
  150. package/dist/test/unit/utils.d.ts +0 -2
  151. package/dist/test/unit/utils.d.ts.map +0 -1
  152. package/dist/test/unit/utils.js +0 -184
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./addressInitialization"), exports);
18
- __exportStar(require("./send"), exports);
19
- __exportStar(require("./walletInitialization"), exports);
20
- __exportStar(require("./flushNft"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBd0M7QUFDeEMseUNBQXVCO0FBQ3ZCLHlEQUF1QztBQUN2Qyw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZHJlc3NJbml0aWFsaXphdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlbmQnO1xuZXhwb3J0ICogZnJvbSAnLi93YWxsZXRJbml0aWFsaXphdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2ZsdXNoTmZ0JztcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export declare function runSendTests(coinName: string, txBuilder: any, getBuilder: any, testData: any): void;
2
- export declare function testSendFundsTransaction(tx: any, operationHash: string, txParams: any, testData: any): Promise<void>;
3
- //# sourceMappingURL=send.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,KAAA,EAAE,UAAU,KAAA,EAAE,QAAQ,KAAA,QA+I7E;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,GAAG,iBA+BrG"}
@@ -1,197 +0,0 @@
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
- exports.runSendTests = runSendTests;
40
- exports.testSendFundsTransaction = testSendFundsTransaction;
41
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
42
- const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
43
- const should_1 = __importDefault(require("should"));
44
- const ethUtil = __importStar(require("ethereumjs-util"));
45
- const src_1 = require("../../../src");
46
- function runSendTests(coinName, txBuilder, getBuilder, testData) {
47
- describe(`${coinName} transaction builder send`, () => {
48
- describe('should sign and build', () => {
49
- let key;
50
- let contractAddress;
51
- const networkTokenIdentifier = testData.NETWORK_TOKEN_IDENTIFIER;
52
- const coin = testData.COIN;
53
- const getOperationHash = function (tx) {
54
- const { data } = tx.toJson();
55
- const { tokenContractAddress, expireTime, sequenceId, amount, to } = (0, src_1.decodeTransferData)(data);
56
- const operationParams = [
57
- ['string', 'address', 'uint', 'address', 'uint', 'uint'],
58
- [
59
- `${testData.CHAIN_ID}-ERC20`,
60
- new ethUtil.BN(ethUtil.stripHexPrefix(to), 16),
61
- amount,
62
- new ethUtil.BN(ethUtil.stripHexPrefix(tokenContractAddress || ''), 16),
63
- expireTime,
64
- sequenceId,
65
- ],
66
- ];
67
- return ethereumjs_abi_1.default.soliditySHA3(...operationParams);
68
- };
69
- beforeEach(() => {
70
- contractAddress = '0x8f977e912ef500548a0c3be6ddde9899f1199b81';
71
- txBuilder = getBuilder(coin);
72
- key = testData.KEYPAIR_PRV.getKeys().prv;
73
- txBuilder.fee({
74
- fee: '1000000000',
75
- gasLimit: '12100000',
76
- });
77
- txBuilder.counter(2);
78
- txBuilder.type(sdk_core_1.TransactionType.Send);
79
- txBuilder.contract(contractAddress);
80
- });
81
- it('a send funds transaction', async () => {
82
- const recipient = '0x19645032c7f1533395d44a629462e751084d3e4c';
83
- const amount = '1000000000';
84
- const expireTime = 1590066728;
85
- const sequenceId = 5;
86
- txBuilder
87
- .transfer()
88
- .amount(amount)
89
- .to(recipient)
90
- .expirationTime(expireTime)
91
- .contractSequenceId(sequenceId)
92
- .key(key);
93
- txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
94
- const tx = await txBuilder.build();
95
- should_1.default.equal(tx.toJson().chainId, testData.TXDATA.chainId);
96
- should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_BROADCAST_LEGACY);
97
- should_1.default.equal(tx.signature.length, 2);
98
- should_1.default.equal(tx.inputs.length, 1);
99
- should_1.default.equal(tx.inputs[0].address, contractAddress);
100
- should_1.default.equal(tx.inputs[0].value, amount);
101
- should_1.default.equal(tx.outputs.length, 1);
102
- should_1.default.equal(tx.outputs[0].address, recipient);
103
- should_1.default.equal(tx.outputs[0].value, amount);
104
- const data = tx.toJson().data;
105
- const { to, amount: parsedAmount, expireTime: parsedExpireTime, sequenceId: parsedSequenceId, } = (0, src_1.decodeTransferData)(data);
106
- should_1.default.equal(to, recipient);
107
- should_1.default.equal(parsedAmount, amount);
108
- should_1.default.equal(parsedExpireTime, expireTime);
109
- should_1.default.equal(parsedSequenceId, sequenceId);
110
- });
111
- it('a send funds with amount 0 transaction', async () => {
112
- txBuilder
113
- .transfer()
114
- .amount('0')
115
- .to('0x19645032c7f1533395d44a629462e751084d3e4c')
116
- .expirationTime(1590066728)
117
- .contractSequenceId(5)
118
- .key(key);
119
- txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
120
- const tx = await txBuilder.build();
121
- should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_AMOUNT_ZERO_BROADCAST);
122
- });
123
- it('a send token transaction', async () => {
124
- const recipient = '0x72c2c8e08bf91d755cd7d26b49a2ee3dc99de1b9';
125
- const contractAddress = '0xdf7decb1baa8f529f0c8982cbb4be50357195299';
126
- const amount = '100';
127
- const key = testData.KEYPAIR_PRV.getKeys().prv;
128
- txBuilder.contract(contractAddress);
129
- txBuilder
130
- .transfer()
131
- .coin(networkTokenIdentifier)
132
- .amount(amount)
133
- .to(recipient)
134
- .expirationTime(1590066728)
135
- .contractSequenceId(5)
136
- .key(key);
137
- txBuilder.sign({
138
- key: testData.PRIVATE_KEY_1,
139
- });
140
- const tx = await txBuilder.build();
141
- const operationHash = getOperationHash(tx);
142
- should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TOKEN_TX_BROADCAST);
143
- should_1.default.equal(tx.signature.length, 2);
144
- should_1.default.equal(tx.inputs.length, 1);
145
- should_1.default.equal(tx.inputs[0].address, contractAddress);
146
- should_1.default.equal(tx.inputs[0].value, amount);
147
- should_1.default.equal(tx.inputs[0].coin, networkTokenIdentifier);
148
- should_1.default.equal(tx.outputs.length, 1);
149
- should_1.default.equal(tx.outputs[0].address, recipient);
150
- should_1.default.equal(tx.outputs[0].value, amount);
151
- should_1.default.equal(tx.outputs[0].coin, networkTokenIdentifier);
152
- const { signature } = (0, src_1.decodeTransferData)(tx.toJson().data);
153
- const { v, r, s } = ethUtil.fromRpcSig(signature);
154
- const senderPubKey = ethUtil.ecrecover(Buffer.from(operationHash, 'hex'), v, r, s);
155
- const senderAddress = ethUtil.pubToAddress(senderPubKey);
156
- const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
157
- ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
158
- });
159
- it('a send token transactions from serialized', async () => {
160
- txBuilder.from(testData.SEND_TOKEN_TX_BROADCAST);
161
- const tx = await txBuilder.build();
162
- const operationHash = getOperationHash(tx);
163
- should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TOKEN_TX_BROADCAST);
164
- const { signature } = (0, src_1.decodeTransferData)(tx.toJson().data);
165
- const { v, r, s } = ethUtil.fromRpcSig(signature);
166
- const senderPubKey = ethUtil.ecrecover(Buffer.from(operationHash || ''), v, r, s);
167
- const senderAddress = ethUtil.pubToAddress(senderPubKey);
168
- const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
169
- ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
170
- });
171
- });
172
- });
173
- }
174
- async function testSendFundsTransaction(tx, operationHash, txParams, testData) {
175
- const { recipient, amount, contractAddress, expireTime, sequenceId } = txParams;
176
- should_1.default.equal(tx.toJson().chainId, testData.TXDATA.chainId);
177
- should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_BROADCAST_LEGACY);
178
- should_1.default.equal(tx.signature.length, 2);
179
- should_1.default.equal(tx.inputs.length, 1);
180
- should_1.default.equal(tx.inputs[0].address, contractAddress);
181
- should_1.default.equal(tx.inputs[0].value, amount);
182
- should_1.default.equal(tx.outputs.length, 1);
183
- should_1.default.equal(tx.outputs[0].address, recipient);
184
- should_1.default.equal(tx.outputs[0].value, amount);
185
- const data = tx.toJson().data;
186
- const { to, amount: parsedAmount, expireTime: parsedExpireTime, sequenceId: parsedSequenceId, signature, } = (0, src_1.decodeTransferData)(data);
187
- should_1.default.equal(to, recipient);
188
- should_1.default.equal(parsedAmount, amount);
189
- should_1.default.equal(parsedExpireTime, expireTime);
190
- should_1.default.equal(parsedSequenceId, sequenceId);
191
- const { v, r, s } = ethUtil.fromRpcSig(signature);
192
- const senderPubKey = ethUtil.ecrecover(Buffer.from(ethUtil.stripHexPrefix(operationHash), 'hex'), v, r, s);
193
- const senderAddress = ethUtil.pubToAddress(senderPubKey);
194
- const senderKey = new src_1.KeyPair({ prv: testData.PRIVATE_KEY_1 });
195
- ethUtil.bufferToHex(senderAddress).should.equal(senderKey.getAddress());
196
- }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLG9DQStJQztBQUVELDREQStCQztBQXRMRCxtREFBd0U7QUFDeEUsb0VBQXlDO0FBQ3pDLG9EQUE0QjtBQUM1Qix5REFBMkM7QUFDM0Msc0NBQStFO0FBRS9FLFNBQWdCLFlBQVksQ0FBQyxRQUFnQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUTtJQUM1RSxRQUFRLENBQUMsR0FBRyxRQUFRLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNwRCxRQUFRLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1lBQ3JDLElBQUksR0FBRyxDQUFDO1lBQ1IsSUFBSSxlQUFlLENBQUM7WUFDcEIsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUM7WUFDakUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMzQixNQUFNLGdCQUFnQixHQUFHLFVBQVUsRUFBbUI7Z0JBQ3BELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFBLHdCQUFrQixFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5RixNQUFNLGVBQWUsR0FBRztvQkFDdEIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztvQkFDeEQ7d0JBQ0UsR0FBRyxRQUFRLENBQUMsUUFBUSxRQUFRO3dCQUM1QixJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFD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QVMsR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvRCxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSwgQmFzZVRyYW5zYWN0aW9uIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCAqIGFzIGV0aFV0aWwgZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCB7IGRlY29kZVRyYW5zZmVyRGF0YSwgS2V5UGFpciwgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1blNlbmRUZXN0cyhjb2luTmFtZTogc3RyaW5nLCB0eEJ1aWxkZXIsIGdldEJ1aWxkZXIsIHRlc3REYXRhKSB7XG4gIGRlc2NyaWJlKGAke2NvaW5OYW1lfSB0cmFuc2FjdGlvbiBidWlsZGVyIHNlbmRgLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ3Nob3VsZCBzaWduIGFuZCBidWlsZCcsICgpID0+IHtcbiAgICAgIGxldCBrZXk7XG4gICAgICBsZXQgY29udHJhY3RBZGRyZXNzO1xuICAgICAgY29uc3QgbmV0d29ya1Rva2VuSWRlbnRpZmllciA9IHRlc3REYXRhLk5FVFdPUktfVE9LRU5fSURFTlRJRklFUjtcbiAgICAgIGNvbnN0IGNvaW4gPSB0ZXN0RGF0YS5DT0lOO1xuICAgICAgY29uc3QgZ2V0T3BlcmF0aW9uSGFzaCA9IGZ1bmN0aW9uICh0eDogQmFzZVRyYW5zYWN0aW9uKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB0eC50b0pzb24oKTtcbiAgICAgICAgY29uc3QgeyB0b2tlbkNvbnRyYWN0QWRkcmVzcywgZXhwaXJlVGltZSwgc2VxdWVuY2VJZCwgYW1vdW50LCB0byB9ID0gZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGEpO1xuICAgICAgICBjb25zdCBvcGVyYXRpb25QYXJhbXMgPSBbXG4gICAgICAgICAgWydzdHJpbmcnLCAnYWRkcmVzcycsICd1aW50JywgJ2FkZHJlc3MnLCAndWludCcsICd1aW50J10sXG4gICAgICAgICAgW1xuICAgICAgICAgICAgYCR7dGVzdERhdGEuQ0hBSU5fSUR9LUVSQzIwYCxcbiAgICAgICAgICAgIG5ldyBldGhVdGlsLkJOKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgodG8pLCAxNiksXG4gICAgICAgICAgICBhbW91bnQsXG4gICAgICAgICAgICBuZXcgZXRoVXRpbC5CTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRva2VuQ29udHJhY3RBZGRyZXNzIHx8ICcnKSwgMTYpLFxuICAgICAgICAgICAgZXhwaXJlVGltZSxcbiAgICAgICAgICAgIHNlcXVlbmNlSWQsXG4gICAgICAgICAgXSxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIEV0aGVyZXVtQWJpLnNvbGlkaXR5U0hBMyguLi5vcGVyYXRpb25QYXJhbXMpO1xuICAgICAgfTtcblxuICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgIGNvbnRyYWN0QWRkcmVzcyA9ICcweDhmOTc3ZTkxMmVmNTAwNTQ4YTBjM2JlNmRkZGU5ODk5ZjExOTliODEnO1xuICAgICAgICB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKGNvaW4pIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgICAga2V5ID0gdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmc7XG4gICAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICAgIGZlZTogJzEwMDAwMDAwMDAnLFxuICAgICAgICAgIGdhc0xpbWl0OiAnMTIxMDAwMDAnLFxuICAgICAgICB9KTtcbiAgICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMik7XG4gICAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgICAgdHhCdWlsZGVyLmNvbnRyYWN0KGNvbnRyYWN0QWRkcmVzcyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Egc2VuZCBmdW5kcyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50ID0gJzB4MTk2NDUwMzJjN2YxNTMzMzk1ZDQ0YTYyOTQ2MmU3NTEwODRkM2U0Yyc7XG4gICAgICAgIGNvbnN0IGFtb3VudCA9ICcxMDAwMDAwMDAwJztcbiAgICAgICAgY29uc3QgZXhwaXJlVGltZSA9IDE1OTAwNjY3Mjg7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlSWQgPSA1O1xuICAgICAgICB0eEJ1aWxkZXJcbiAgICAgICAgICAudHJhbnNmZXIoKVxuICAgICAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgICAgIC50byhyZWNpcGllbnQpXG4gICAgICAgICAgLmV4cGlyYXRpb25UaW1lKGV4cGlyZVRpbWUpXG4gICAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZChzZXF1ZW5jZUlkKVxuICAgICAgICAgIC5rZXkoa2V5KTtcbiAgICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS5jaGFpbklkLCB0ZXN0RGF0YS5UWERBVEEuY2hhaW5JZCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5TRU5EX1RYX0JST0FEQ0FTVF9MRUdBQ1kpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMik7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS5hZGRyZXNzLCBjb250cmFjdEFkZHJlc3MpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLnZhbHVlLCBhbW91bnQpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLmFkZHJlc3MsIHJlY2lwaWVudCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLnZhbHVlLCBhbW91bnQpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0eC50b0pzb24oKS5kYXRhO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgdG8sXG4gICAgICAgICAgYW1vdW50OiBwYXJzZWRBbW91bnQsXG4gICAgICAgICAgZXhwaXJlVGltZTogcGFyc2VkRXhwaXJlVGltZSxcbiAgICAgICAgICBzZXF1ZW5jZUlkOiBwYXJzZWRTZXF1ZW5jZUlkLFxuICAgICAgICB9ID0gZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGEpO1xuICAgICAgICBzaG91bGQuZXF1YWwodG8sIHJlY2lwaWVudCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChwYXJzZWRBbW91bnQsIGFtb3VudCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChwYXJzZWRFeHBpcmVUaW1lLCBleHBpcmVUaW1lKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHBhcnNlZFNlcXVlbmNlSWQsIHNlcXVlbmNlSWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdhIHNlbmQgZnVuZHMgd2l0aCBhbW91bnQgMCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgdHhCdWlsZGVyXG4gICAgICAgICAgLnRyYW5zZmVyKClcbiAgICAgICAgICAuYW1vdW50KCcwJylcbiAgICAgICAgICAudG8oJzB4MTk2NDUwMzJjN2YxNTMzMzk1ZDQ0YTYyOTQ2MmU3NTEwODRkM2U0YycpXG4gICAgICAgICAgLmV4cGlyYXRpb25UaW1lKDE1OTAwNjY3MjgpXG4gICAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCg1KVxuICAgICAgICAgIC5rZXkoa2V5KTtcbiAgICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5TRU5EX1RYX0FNT1VOVF9aRVJPX0JST0FEQ0FTVCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Egc2VuZCB0b2tlbiB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50ID0gJzB4NzJjMmM4ZTA4YmY5MWQ3NTVjZDdkMjZiNDlhMmVlM2RjOTlkZTFiOSc7XG4gICAgICAgIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9ICcweGRmN2RlY2IxYmFhOGY1MjlmMGM4OTgyY2JiNGJlNTAzNTcxOTUyOTknO1xuICAgICAgICBjb25zdCBhbW91bnQgPSAnMTAwJztcbiAgICAgICAgY29uc3Qga2V5ID0gdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmc7XG4gICAgICAgIHR4QnVpbGRlci5jb250cmFjdChjb250cmFjdEFkZHJlc3MpO1xuICAgICAgICB0eEJ1aWxkZXJcbiAgICAgICAgICAudHJhbnNmZXIoKVxuICAgICAgICAgIC5jb2luKG5ldHdvcmtUb2tlbklkZW50aWZpZXIpXG4gICAgICAgICAgLmFtb3VudChhbW91bnQpXG4gICAgICAgICAgLnRvKHJlY2lwaWVudClcbiAgICAgICAgICAuZXhwaXJhdGlvblRpbWUoMTU5MDA2NjcyOClcbiAgICAgICAgICAuY29udHJhY3RTZXF1ZW5jZUlkKDUpXG4gICAgICAgICAgLmtleShrZXkpO1xuICAgICAgICB0eEJ1aWxkZXIuc2lnbih7XG4gICAgICAgICAga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uSGFzaCA9IGdldE9wZXJhdGlvbkhhc2godHgpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UT0tFTl9UWF9CUk9BRENBU1QpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMik7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHMubGVuZ3RoLCAxKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS5hZGRyZXNzLCBjb250cmFjdEFkZHJlc3MpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLnZhbHVlLCBhbW91bnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLmNvaW4sIG5ldHdvcmtUb2tlbklkZW50aWZpZXIpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzLmxlbmd0aCwgMSk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLmFkZHJlc3MsIHJlY2lwaWVudCk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLnZhbHVlLCBhbW91bnQpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5jb2luLCBuZXR3b3JrVG9rZW5JZGVudGlmaWVyKTtcblxuICAgICAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gZGVjb2RlVHJhbnNmZXJEYXRhKHR4LnRvSnNvbigpLmRhdGEpO1xuXG4gICAgICAgIGNvbnN0IHsgdiwgciwgcyB9ID0gZXRoVXRpbC5mcm9tUnBjU2lnKHNpZ25hdHVyZSk7XG4gICAgICAgIGNvbnN0IHNlbmRlclB1YktleSA9IGV0aFV0aWwuZWNyZWNvdmVyKEJ1ZmZlci5mcm9tKG9wZXJhdGlvbkhhc2gsICdoZXgnKSwgdiwgciwgcyk7XG4gICAgICAgIGNvbnN0IHNlbmRlckFkZHJlc3MgPSBldGhVdGlsLnB1YlRvQWRkcmVzcyhzZW5kZXJQdWJLZXkpO1xuICAgICAgICBjb25zdCBzZW5kZXJLZXkgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgICAgICAgZXRoVXRpbC5idWZmZXJUb0hleChzZW5kZXJBZGRyZXNzKS5zaG91bGQuZXF1YWwoc2VuZGVyS2V5LmdldEFkZHJlc3MoKSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Egc2VuZCB0b2tlbiB0cmFuc2FjdGlvbnMgZnJvbSBzZXJpYWxpemVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5TRU5EX1RPS0VOX1RYX0JST0FEQ0FTVCk7XG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbkhhc2ggPSBnZXRPcGVyYXRpb25IYXNoKHR4KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlNFTkRfVE9LRU5fVFhfQlJPQURDQVNUKTtcblxuICAgICAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gZGVjb2RlVHJhbnNmZXJEYXRhKHR4LnRvSnNvbigpLmRhdGEpO1xuICAgICAgICBjb25zdCB7IHYsIHIsIHMgfSA9IGV0aFV0aWwuZnJvbVJwY1NpZyhzaWduYXR1cmUpO1xuICAgICAgICBjb25zdCBzZW5kZXJQdWJLZXkgPSBldGhVdGlsLmVjcmVjb3ZlcihCdWZmZXIuZnJvbShvcGVyYXRpb25IYXNoIHx8ICcnKSwgdiwgciwgcyk7XG4gICAgICAgIGNvbnN0IHNlbmRlckFkZHJlc3MgPSBldGhVdGlsLnB1YlRvQWRkcmVzcyhzZW5kZXJQdWJLZXkpO1xuICAgICAgICBjb25zdCBzZW5kZXJLZXkgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgICAgICAgZXRoVXRpbC5idWZmZXJUb0hleChzZW5kZXJBZGRyZXNzKS5zaG91bGQuZXF1YWwoc2VuZGVyS2V5LmdldEFkZHJlc3MoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0U2VuZEZ1bmRzVHJhbnNhY3Rpb24odHg6IGFueSwgb3BlcmF0aW9uSGFzaDogc3RyaW5nLCB0eFBhcmFtcywgdGVzdERhdGE6IGFueSkge1xuICBjb25zdCB7IHJlY2lwaWVudCwgYW1vdW50LCBjb250cmFjdEFkZHJlc3MsIGV4cGlyZVRpbWUsIHNlcXVlbmNlSWQgfSA9IHR4UGFyYW1zO1xuICBzaG91bGQuZXF1YWwodHgudG9Kc29uKCkuY2hhaW5JZCwgdGVzdERhdGEuVFhEQVRBLmNoYWluSWQpO1xuICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UWF9CUk9BRENBU1RfTEVHQUNZKTtcbiAgc2hvdWxkLmVxdWFsKHR4LnNpZ25hdHVyZS5sZW5ndGgsIDIpO1xuICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uYWRkcmVzcywgY29udHJhY3RBZGRyZXNzKTtcbiAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS52YWx1ZSwgYW1vdW50KTtcblxuICBzaG91bGQuZXF1YWwodHgub3V0cHV0cy5sZW5ndGgsIDEpO1xuICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5hZGRyZXNzLCByZWNpcGllbnQpO1xuICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS52YWx1ZSwgYW1vdW50KTtcblxuICBjb25zdCBkYXRhID0gdHgudG9Kc29uKCkuZGF0YTtcbiAgY29uc3Qge1xuICAgIHRvLFxuICAgIGFtb3VudDogcGFyc2VkQW1vdW50LFxuICAgIGV4cGlyZVRpbWU6IHBhcnNlZEV4cGlyZVRpbWUsXG4gICAgc2VxdWVuY2VJZDogcGFyc2VkU2VxdWVuY2VJZCxcbiAgICBzaWduYXR1cmUsXG4gIH0gPSBkZWNvZGVUcmFuc2ZlckRhdGEoZGF0YSk7XG5cbiAgc2hvdWxkLmVxdWFsKHRvLCByZWNpcGllbnQpO1xuICBzaG91bGQuZXF1YWwocGFyc2VkQW1vdW50LCBhbW91bnQpO1xuICBzaG91bGQuZXF1YWwocGFyc2VkRXhwaXJlVGltZSwgZXhwaXJlVGltZSk7XG4gIHNob3VsZC5lcXVhbChwYXJzZWRTZXF1ZW5jZUlkLCBzZXF1ZW5jZUlkKTtcbiAgY29uc3QgeyB2LCByLCBzIH0gPSBldGhVdGlsLmZyb21ScGNTaWcoc2lnbmF0dXJlKTtcbiAgY29uc3Qgc2VuZGVyUHViS2V5ID0gZXRoVXRpbC5lY3JlY292ZXIoQnVmZmVyLmZyb20oZXRoVXRpbC5zdHJpcEhleFByZWZpeChvcGVyYXRpb25IYXNoKSwgJ2hleCcpLCB2LCByLCBzKTtcbiAgY29uc3Qgc2VuZGVyQWRkcmVzcyA9IGV0aFV0aWwucHViVG9BZGRyZXNzKHNlbmRlclB1YktleSk7XG4gIGNvbnN0IHNlbmRlcktleSA9IG5ldyBLZXlQYWlyKHsgcHJ2OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuICBldGhVdGlsLmJ1ZmZlclRvSGV4KHNlbmRlckFkZHJlc3MpLnNob3VsZC5lcXVhbChzZW5kZXJLZXkuZ2V0QWRkcmVzcygpKTtcbn1cbiJdfQ==
@@ -1,10 +0,0 @@
1
- import { TransactionBuilder } from '../../../src';
2
- export declare function testInitTransaction(txBuilder: TransactionBuilder, testData: any): Promise<void>;
3
- export declare function testWalletInitTransaction(txBuilder: TransactionBuilder, testData: any): Promise<void>;
4
- export declare function testSignedInitTransaction(newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
5
- export declare function testUnsignedInitTransaction(txBuilder: TransactionBuilder, newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
6
- export declare function testUnsignedInitTransactionFromSerialized(txBuilder: TransactionBuilder, newTxBuilder: TransactionBuilder, testData: any): Promise<void>;
7
- export declare function testFinalVCheck(txBuilder: TransactionBuilder, testData: any): Promise<void>;
8
- export declare function testRecoveryWalletDeployment(txBuilder: TransactionBuilder, testData: any): Promise<void>;
9
- export declare function testRecoveryTransactionWithoutData(txBuilder: TransactionBuilder): Promise<void>;
10
- //# sourceMappingURL=walletInitialization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAerF;AAED,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAc3F;AAED,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAY9F;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,GAAG,iBAUd;AAED,wBAAsB,yCAAyC,CAC7D,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,GAAG,iBAUd;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAMjF;AAED,wBAAsB,4BAA4B,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,iBAmB9F;AAED,wBAAsB,kCAAkC,CAAC,SAAS,EAAE,kBAAkB,iBAcrF"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testInitTransaction = testInitTransaction;
7
- exports.testWalletInitTransaction = testWalletInitTransaction;
8
- exports.testSignedInitTransaction = testSignedInitTransaction;
9
- exports.testUnsignedInitTransaction = testUnsignedInitTransaction;
10
- exports.testUnsignedInitTransactionFromSerialized = testUnsignedInitTransactionFromSerialized;
11
- exports.testFinalVCheck = testFinalVCheck;
12
- exports.testRecoveryWalletDeployment = testRecoveryWalletDeployment;
13
- exports.testRecoveryTransactionWithoutData = testRecoveryTransactionWithoutData;
14
- const should_1 = __importDefault(require("should"));
15
- const sdk_core_1 = require("@bitgo-beta/sdk-core");
16
- function addOwner(txBuilder, testData) {
17
- txBuilder.owner(testData.ACCOUNT_1);
18
- txBuilder.owner(testData.ACCOUNT_2);
19
- txBuilder.owner(testData.ACCOUNT_3);
20
- }
21
- async function testInitTransaction(txBuilder, testData) {
22
- it('an init transaction', async () => {
23
- addOwner(txBuilder, testData);
24
- txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
25
- const tx = await txBuilder.build();
26
- tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
27
- const txJson = tx.toJson();
28
- txJson.gasLimit.should.equal('6800000');
29
- txJson.gasPrice.should.equal('10000000000');
30
- should_1.default.equal(txJson.nonce, 1);
31
- should_1.default.equal(txJson.chainId, testData.TXDATA.chainId);
32
- should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST);
33
- });
34
- }
35
- async function testWalletInitTransaction(txBuilder, testData) {
36
- it('a wallet initialization transaction with nonce 0', async () => {
37
- addOwner(txBuilder, testData);
38
- txBuilder.counter(0);
39
- txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
40
- const tx = await txBuilder.build();
41
- tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
42
- const txJson = tx.toJson();
43
- txJson.gasLimit.should.equal('6800000');
44
- txJson.gasPrice.should.equal('10000000000');
45
- should_1.default.equal(txJson.nonce, 0);
46
- should_1.default.equal(txJson.chainId, testData.TXDATA.chainId);
47
- });
48
- }
49
- async function testSignedInitTransaction(newTxBuilder, testData) {
50
- it('a signed init transaction from serialized', async () => {
51
- newTxBuilder.from(testData.TX_BROADCAST);
52
- const newTx = await newTxBuilder.build();
53
- should_1.default.equal(newTx.toBroadcastFormat(), testData.TX_BROADCAST);
54
- should_1.default.equal(newTx.id, testData.EXPECTED_NEW_TX_ID);
55
- const txJson = newTx.toJson();
56
- should_1.default.exist(txJson.v);
57
- should_1.default.exist(txJson.r);
58
- should_1.default.exist(txJson.s);
59
- should_1.default.exist(txJson.from);
60
- });
61
- }
62
- async function testUnsignedInitTransaction(txBuilder, newTxBuilder, testData) {
63
- it('an unsigned init transaction from serialized with 0-prefixed address', async () => {
64
- addOwner(txBuilder, testData);
65
- const tx = await txBuilder.build();
66
- const serialized = tx.toBroadcastFormat();
67
- newTxBuilder.from(serialized);
68
- const newTx = await newTxBuilder.build();
69
- should_1.default.equal(newTx.toBroadcastFormat(), serialized);
70
- });
71
- }
72
- async function testUnsignedInitTransactionFromSerialized(txBuilder, newTxBuilder, testData) {
73
- it('an unsigned init transaction from serialized', async () => {
74
- addOwner(txBuilder, testData);
75
- const tx = await txBuilder.build();
76
- const serialized = tx.toBroadcastFormat();
77
- newTxBuilder.from(serialized);
78
- const newTx = await newTxBuilder.build();
79
- should_1.default.equal(newTx.toBroadcastFormat(), serialized);
80
- });
81
- }
82
- async function testFinalVCheck(txBuilder, testData) {
83
- it('an unsigned transaction with final v check', async () => {
84
- addOwner(txBuilder, testData);
85
- const tx = await txBuilder.build();
86
- should_1.default.equal(tx.toJson().v, testData.FINAL_V);
87
- });
88
- }
89
- async function testRecoveryWalletDeployment(txBuilder, testData) {
90
- it('wallet deployment transaction for recovery', async () => {
91
- txBuilder.type(sdk_core_1.TransactionType.RecoveryWalletDeployment);
92
- txBuilder.data(testData.RECOVERY_WALLET_BYTE_CODE);
93
- txBuilder.fee({
94
- eip1559: {
95
- maxFeePerGas: '100',
96
- maxPriorityFeePerGas: '10',
97
- },
98
- fee: '100',
99
- gasLimit: '10000',
100
- });
101
- txBuilder.counter(1);
102
- const tx = await txBuilder.build();
103
- const txJson = tx.toJson();
104
- should_1.default.equal(txJson._type, 'EIP1559');
105
- should_1.default.equal(txJson.gasLimit, '10000');
106
- should_1.default.exists(tx.toBroadcastFormat());
107
- });
108
- }
109
- async function testRecoveryTransactionWithoutData(txBuilder) {
110
- it('fail when data is not passed recovery', async () => {
111
- txBuilder.type(sdk_core_1.TransactionType.RecoveryWalletDeployment);
112
- txBuilder.fee({
113
- eip1559: {
114
- maxFeePerGas: '100',
115
- maxPriorityFeePerGas: '10',
116
- },
117
- fee: '100',
118
- gasLimit: '10000',
119
- });
120
- txBuilder.counter(1);
121
- await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing contract call data field');
122
- });
123
- }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3dhbGxldEluaXRpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBVUEsa0RBZUM7QUFFRCw4REFjQztBQUVELDhEQVlDO0FBRUQsa0VBYUM7QUFFRCw4RkFhQztBQUVELDBDQU1DO0FBRUQsb0VBbUJDO0FBRUQsZ0ZBY0M7QUFsSUQsb0RBQTRCO0FBQzVCLG1EQUF1RDtBQUd2RCxTQUFTLFFBQVEsQ0FBQyxTQUE2QixFQUFFLFFBQVE7SUFDdkQsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxTQUE2QixFQUFFLFFBQWE7SUFDcEYsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ25DLFFBQVEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUVoRCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVuQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMs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QUMsSUFBSSxDQUFDLDBCQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN6RCxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osT0FBTyxFQUFFO2dCQUNQLFlBQVksRUFBRSxLQUFLO2dCQUNuQixvQkFBb0IsRUFBRSxJQUFJO2FBQzNCO1lBQ0QsR0FBRyxFQUFFLEtBQUs7WUFDVixRQUFRLEVBQUUsT0FBTztTQUNsQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDMUcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcblxuZnVuY3Rpb24gYWRkT3duZXIodHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIsIHRlc3REYXRhKSB7XG4gIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5BQ0NPVU5UXzEpO1xuICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuQUNDT1VOVF8yKTtcbiAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLkFDQ09VTlRfMyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0SW5pdFRyYW5zYWN0aW9uKHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyLCB0ZXN0RGF0YTogYW55KSB7XG4gIGl0KCdhbiBpbml0IHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGFkZE93bmVyKHR4QnVpbGRlciwgdGVzdERhdGEpO1xuICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuXG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgdHhKc29uLmdhc0xpbWl0LnNob3VsZC5lcXVhbCgnNjgwMDAwMCcpO1xuICAgIHR4SnNvbi5nYXNQcmljZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAwMDAwJyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMSk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5jaGFpbklkLCB0ZXN0RGF0YS5UWERBVEEuY2hhaW5JZCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlRYX0JST0FEQ0FTVCk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhbGxldEluaXRUcmFuc2FjdGlvbih0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlciwgdGVzdERhdGE6IGFueSkge1xuICBpdCgnYSB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gd2l0aCBub25jZSAwJywgYXN5bmMgKCkgPT4ge1xuICAgIGFkZE93bmVyKHR4QnVpbGRlciwgdGVzdERhdGEpO1xuICAgIHR4QnVpbGRlci5jb3VudGVyKDApO1xuICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzY4MDAwMDAnKTtcbiAgICB0eEpzb24uZ2FzUHJpY2Uuc2hvdWxkLmVxdWFsKCcxMDAwMDAwMDAwMCcpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24ubm9uY2UsIDApO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24uY2hhaW5JZCwgdGVzdERhdGEuVFhEQVRBLmNoYWluSWQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RTaWduZWRJbml0VHJhbnNhY3Rpb24obmV3VHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIsIHRlc3REYXRhOiBhbnkpIHtcbiAgaXQoJ2Egc2lnbmVkIGluaXQgdHJhbnNhY3Rpb24gZnJvbSBzZXJpYWxpemVkJywgYXN5bmMgKCkgPT4ge1xuICAgIG5ld1R4QnVpbGRlci5mcm9tKHRlc3REYXRhLlRYX0JST0FEQ0FTVCk7XG4gICAgY29uc3QgbmV3VHggPSBhd2FpdCBuZXdUeEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICBzaG91bGQuZXF1YWwobmV3VHguaWQsIHRlc3REYXRhLkVYUEVDVEVEX05FV19UWF9JRCk7XG4gICAgY29uc3QgdHhKc29uID0gbmV3VHgudG9Kc29uKCk7XG4gICAgc2hvdWxkLmV4aXN0KHR4SnNvbi52KTtcbiAgICBzaG91bGQuZXhpc3QodHhKc29uLnIpO1xuICAgIHNob3VsZC5leGlzdCh0eEpzb24ucyk7XG4gICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5mcm9tKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0VW5zaWduZWRJbml0VHJhbnNhY3Rpb24oXG4gIHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBuZXdUeEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdGVzdERhdGE6IGFueVxuKSB7XG4gIGl0KCdhbiB1bnNpZ25lZCBpbml0IHRyYW5zYWN0aW9uIGZyb20gc2VyaWFsaXplZCB3aXRoIDAtcHJlZml4ZWQgYWRkcmVzcycsIGFzeW5jICgpID0+IHtcbiAgICBhZGRPd25lcih0eEJ1aWxkZXIsIHRlc3REYXRhKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIG5ld1R4QnVpbGRlci5mcm9tKHNlcmlhbGl6ZWQpO1xuICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKG5ld1R4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHNlcmlhbGl6ZWQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RVbnNpZ25lZEluaXRUcmFuc2FjdGlvbkZyb21TZXJpYWxpemVkKFxuICB0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcixcbiAgbmV3VHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHRlc3REYXRhOiBhbnlcbikge1xuICBpdCgnYW4gdW5zaWduZWQgaW5pdCB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgYWRkT3duZXIodHhCdWlsZGVyLCB0ZXN0RGF0YSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICBjb25zdCBuZXdUeCA9IGF3YWl0IG5ld1R4QnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChuZXdUeC50b0Jyb2FkY2FzdEZvcm1hdCgpLCBzZXJpYWxpemVkKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0RmluYWxWQ2hlY2sodHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXIsIHRlc3REYXRhOiBhbnkpIHtcbiAgaXQoJ2FuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIHdpdGggZmluYWwgdiBjaGVjaycsIGFzeW5jICgpID0+IHtcbiAgICBhZGRPd25lcih0eEJ1aWxkZXIsIHRlc3REYXRhKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS52LCB0ZXN0RGF0YS5GSU5BTF9WKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0UmVjb3ZlcnlXYWxsZXREZXBsb3ltZW50KHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyLCB0ZXN0RGF0YTogYW55KSB7XG4gIGl0KCd3YWxsZXQgZGVwbG95bWVudCB0cmFuc2FjdGlvbiBmb3IgcmVjb3ZlcnknLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlJlY292ZXJ5V2FsbGV0RGVwbG95bWVudCk7XG4gICAgdHhCdWlsZGVyLmRhdGEodGVzdERhdGEuUkVDT1ZFUllfV0FMTEVUX0JZVEVfQ09ERSk7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBlaXAxNTU5OiB7XG4gICAgICAgIG1heEZlZVBlckdhczogJzEwMCcsXG4gICAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzOiAnMTAnLFxuICAgICAgfSxcbiAgICAgIGZlZTogJzEwMCcsXG4gICAgICBnYXNMaW1pdDogJzEwMDAwJyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24uX3R5cGUsICdFSVAxNTU5Jyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5nYXNMaW1pdCwgJzEwMDAwJyk7XG4gICAgc2hvdWxkLmV4aXN0cyh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0UmVjb3ZlcnlUcmFuc2FjdGlvbldpdGhvdXREYXRhKHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyKSB7XG4gIGl0KCdmYWlsIHdoZW4gZGF0YSBpcyBub3QgcGFzc2VkIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5SZWNvdmVyeVdhbGxldERlcGxveW1lbnQpO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZWlwMTU1OToge1xuICAgICAgICBtYXhGZWVQZXJHYXM6ICcxMDAnLFxuICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogJzEwJyxcbiAgICAgIH0sXG4gICAgICBmZWU6ICcxMDAnLFxuICAgICAgZ2FzTGltaXQ6ICcxMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBjb250cmFjdCBjYWxsIGRhdGEgZmllbGQnKTtcbiAgfSk7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transferBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transferBuilder.ts"],"names":[],"mappings":""}
@@ -1,76 +0,0 @@
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 statics_1 = require("@bitgo-beta/statics");
9
- const src_1 = require("../../src");
10
- describe('Eth send multi sig builder', function () {
11
- const toAddress = '0x7325A3F7d4f9E86AE62Cf742426078C3755730d5';
12
- const xprv = 'xprv9s21ZrQH143K3D8TXfvAJgHVfTEeQNW5Ys9wZtnUZkqPzFzSjbEJrWC1vZ4GnXCvR7rQL2UFX3RSuYeU9MrERm1XBvACow7c36vnz5iYyj2';
13
- const key = new src_1.KeyPair({ prv: xprv }).getKeys().prv;
14
- const amount = '100000000000000000'; // equivalent to 0.1 ether
15
- const ethLikeCoins = ['hteth', 'tarbeth', 'topeth', 'zketh'];
16
- describe('should fail', () => {
17
- it('should fail if a coin does not exists in @bitgo-beta/statics', () => {
18
- (0, should_1.default)(() => {
19
- new src_1.TransferBuilder().coin('inexistentcoin');
20
- }).throw();
21
- });
22
- ethLikeCoins.forEach((coin) => {
23
- it('should fail with an invalid key', () => {
24
- const staticsCoin = statics_1.coins.get(coin);
25
- const builder = new src_1.TransferBuilder()
26
- .coin(coin)
27
- .expirationTime(1590078260)
28
- .amount(amount)
29
- .to(toAddress)
30
- .contractSequenceId(2)
31
- .key('invalidkey');
32
- (0, should_1.default)(() => {
33
- builder.signAndBuild(`${staticsCoin.chainId}`);
34
- }).throw('private key length is invalid');
35
- });
36
- });
37
- it('should fail with an invalid sequence id', () => {
38
- (0, should_1.default)(() => {
39
- new src_1.TransferBuilder().contractSequenceId(-1);
40
- }).throw('Invalid contract sequence id');
41
- });
42
- it('should fail with an invalid destination address', () => {
43
- (0, should_1.default)(() => {
44
- new src_1.TransferBuilder().to('invalidaddress');
45
- }).throw('Invalid address');
46
- });
47
- it('should fail with an invalid amount: text value', () => {
48
- (0, should_1.default)(() => {
49
- new src_1.TransferBuilder().amount('invalidamount');
50
- }).throw('Invalid amount');
51
- });
52
- it('should fail with an invalid amount: negative value', () => {
53
- (0, should_1.default)(() => {
54
- new src_1.TransferBuilder().amount('-10');
55
- }).throw('Invalid amount');
56
- });
57
- it('should fail with an invalid expiration time', () => {
58
- (0, should_1.default)(() => {
59
- new src_1.TransferBuilder().expirationTime(-1);
60
- }).throw('Invalid expiration time');
61
- });
62
- it('should fail if a sequenceId param is missing', () => {
63
- const builder = new src_1.TransferBuilder().amount(amount).to(toAddress).key(key);
64
- assert_1.default.throws(() => builder.signAndBuild(''));
65
- });
66
- it('should fail if a destination param is missing', () => {
67
- const builder = new src_1.TransferBuilder().amount(amount).contractSequenceId(2).key(key);
68
- assert_1.default.throws(() => builder.signAndBuild(''));
69
- });
70
- it('should fail if a amount param is missing', () => {
71
- const builder = new src_1.TransferBuilder().to(toAddress).contractSequenceId(2).key(key);
72
- assert_1.default.throws(() => builder.signAndBuild(''));
73
- });
74
- });
75
- });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsaURBQStFO0FBQy9FLG1DQUFxRDtBQUVyRCxRQUFRLENBQUMsNEJBQTRCLEVBQUU7SUFDckMsTUFBTSxTQUFTLEdBQUcsNENBQTRDLENBQUM7SUFDL0QsTUFBTSxJQUFJLEdBQ1IsaUhBQWlILENBQUM7SUFDcEgsTUFBTSxHQUFHLEdBQUcsSUFBSSxhQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFhLENBQUM7SUFDL0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsQ0FBQywwQkFBMEI7SUFDL0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU3RCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUMzQixFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1lBQ3RFLElBQUEsZ0JBQU0sRUFBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxxQkFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO2dCQUN6QyxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBOEIsQ0FBQztnQkFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxxQkFBZSxFQUFFO3FCQUNsQyxJQUFJ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Q2hELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25GLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucywgRXRoZXJldW1OZXR3b3JrIGFzIEV0aExpa2VOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnRXRoIHNlbmQgbXVsdGkgc2lnIGJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHRvQWRkcmVzcyA9ICcweDczMjVBM0Y3ZDRmOUU4NkFFNjJDZjc0MjQyNjA3OEMzNzU1NzMwZDUnO1xuICBjb25zdCB4cHJ2ID1cbiAgICAneHBydjlzMjFaclFIMTQzSzNEOFRYZnZBSmdIVmZURWVRTlc1WXM5d1p0blVaa3FQekZ6U2piRUpyV0Mxdlo0R25YQ3ZSN3JRTDJVRlgzUlN1WWVVOU1yRVJtMVhCdkFDb3c3YzM2dm56NWlZeWoyJztcbiAgY29uc3Qga2V5ID0gbmV3IEtleVBhaXIoeyBwcnY6IHhwcnYgfSkuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmc7XG4gIGNvbnN0IGFtb3VudCA9ICcxMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyBlcXVpdmFsZW50IHRvIDAuMSBldGhlclxuICBjb25zdCBldGhMaWtlQ29pbnMgPSBbJ2h0ZXRoJywgJ3RhcmJldGgnLCAndG9wZXRoJywgJ3prZXRoJ107XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZmFpbCBpZiBhIGNvaW4gZG9lcyBub3QgZXhpc3RzIGluIEBiaXRnby1iZXRhL3N0YXRpY3MnLCAoKSA9PiB7XG4gICAgICBzaG91bGQoKCkgPT4ge1xuICAgICAgICBuZXcgVHJhbnNmZXJCdWlsZGVyKCkuY29pbignaW5leGlzdGVudGNvaW4nKTtcbiAgICAgIH0pLnRocm93KCk7XG4gICAgfSk7XG5cbiAgICBldGhMaWtlQ29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggYW4gaW52YWxpZCBrZXknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRpY3NDb2luID0gY29pbnMuZ2V0KGNvaW4pIGFzIHVua25vd24gYXMgRXRoTGlrZU5ldHdvcms7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgICAuY29pbihjb2luKVxuICAgICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDc4MjYwKVxuICAgICAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgICAgIC50byh0b0FkZHJlc3MpXG4gICAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgyKVxuICAgICAgICAgIC5rZXkoJ2ludmFsaWRrZXknKTtcbiAgICAgICAgc2hvdWxkKCgpID0+IHtcbiAgICAgICAgICBidWlsZGVyLnNpZ25BbmRCdWlsZChgJHtzdGF0aWNzQ29pbi5jaGFpbklkfWApO1xuICAgICAgICB9KS50aHJvdygncHJpdmF0ZSBrZXkgbGVuZ3RoIGlzIGludmFsaWQnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggYW4gaW52YWxpZCBzZXF1ZW5jZSBpZCcsICgpID0+IHtcbiAgICAgIHNob3VsZCgoKSA9PiB7XG4gICAgICAgIG5ldyBUcmFuc2ZlckJ1aWxkZXIoKS5jb250cmFjdFNlcXVlbmNlSWQoLTEpO1xuICAgICAgfSkudGhyb3coJ0ludmFsaWQgY29udHJhY3Qgc2VxdWVuY2UgaWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoIGFuIGludmFsaWQgZGVzdGluYXRpb24gYWRkcmVzcycsICgpID0+IHtcbiAgICAgIHNob3VsZCgoKSA9PiB7XG4gICAgICAgIG5ldyBUcmFuc2ZlckJ1aWxkZXIoKS50bygnaW52YWxpZGFkZHJlc3MnKTtcbiAgICAgIH0pLnRocm93KCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoIGFuIGludmFsaWQgYW1vdW50OiB0ZXh0IHZhbHVlJywgKCkgPT4ge1xuICAgICAgc2hvdWxkKCgpID0+IHtcbiAgICAgICAgbmV3IFRyYW5zZmVyQnVpbGRlcigpLmFtb3VudCgnaW52YWxpZGFtb3VudCcpO1xuICAgICAgfSkudGhyb3coJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgd2l0aCBhbiBpbnZhbGlkIGFtb3VudDogbmVnYXRpdmUgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBzaG91bGQoKCkgPT4ge1xuICAgICAgICBuZXcgVHJhbnNmZXJCdWlsZGVyKCkuYW1vdW50KCctMTAnKTtcbiAgICAgIH0pLnRocm93KCdJbnZhbGlkIGFtb3VudCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggYW4gaW52YWxpZCBleHBpcmF0aW9uIHRpbWUnLCAoKSA9PiB7XG4gICAgICBzaG91bGQoKCkgPT4ge1xuICAgICAgICBuZXcgVHJhbnNmZXJCdWlsZGVyKCkuZXhwaXJhdGlvblRpbWUoLTEpO1xuICAgICAgfSkudGhyb3coJ0ludmFsaWQgZXhwaXJhdGlvbiB0aW1lJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgaWYgYSBzZXF1ZW5jZUlkIHBhcmFtIGlzIG1pc3NpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFRyYW5zZmVyQnVpbGRlcigpLmFtb3VudChhbW91bnQpLnRvKHRvQWRkcmVzcykua2V5KGtleSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJ1aWxkZXIuc2lnbkFuZEJ1aWxkKCcnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgaWYgYSBkZXN0aW5hdGlvbiBwYXJhbSBpcyBtaXNzaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoKS5hbW91bnQoYW1vdW50KS5jb250cmFjdFNlcXVlbmNlSWQoMikua2V5KGtleSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJ1aWxkZXIuc2lnbkFuZEJ1aWxkKCcnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgaWYgYSBhbW91bnQgcGFyYW0gaXMgbWlzc2luZycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKCkudG8odG9BZGRyZXNzKS5jb250cmFjdFNlcXVlbmNlSWQoMikua2V5KGtleSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGJ1aWxkZXIuc2lnbkFuZEJ1aWxkKCcnKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/unit/utils.ts"],"names":[],"mappings":""}