@ritbit/v4-client-js 2.0.0 → 2.1.1

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 (160) hide show
  1. package/__native__/__ios__/v4-native-client.js +462 -462
  2. package/__native__/__ios__/v4-native-client.js.map +1 -1
  3. package/__tests__/lib/helpers.test.ts +2 -0
  4. package/__tests__/modules/client/AccountEndpoints.test.ts +16 -16
  5. package/__tests__/modules/client/FaucetEndpoint.test.ts +2 -2
  6. package/__tests__/modules/client/Transfers.test.ts +2 -2
  7. package/__tests__/modules/client/UtilityEndpoints.test.ts +2 -2
  8. package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +5 -5
  9. package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +2 -2
  10. package/__tests__/modules/client/constants.ts +3 -3
  11. package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
  12. package/build/cjs/__tests__/helpers/baseClients.js +29 -0
  13. package/build/cjs/__tests__/helpers/constants.js +110 -0
  14. package/build/cjs/__tests__/lib/helpers.test.js +46 -0
  15. package/build/cjs/__tests__/lib/util.test.js +67 -0
  16. package/build/cjs/__tests__/lib/validation.test.js +254 -0
  17. package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +171 -0
  18. package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
  19. package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
  20. package/build/cjs/__tests__/modules/client/Transfers.test.js +44 -0
  21. package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
  22. package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
  23. package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +53 -0
  24. package/build/cjs/__tests__/modules/client/constants.js +7 -0
  25. package/build/cjs/__tests__/modules/onboarding.test.js +50 -0
  26. package/build/cjs/examples/account_endpoints.js +129 -0
  27. package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
  28. package/build/cjs/examples/composite_example.js +50 -0
  29. package/build/cjs/examples/constants.js +35 -0
  30. package/build/cjs/examples/faucet_endpoint.js +23 -0
  31. package/build/cjs/examples/gov_add_new_market.js +77 -0
  32. package/build/cjs/examples/human_readable_orders.json +86 -0
  33. package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
  34. package/build/cjs/examples/json-encoding.js +32 -0
  35. package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
  36. package/build/cjs/examples/markets_endpoints.js +134 -0
  37. package/build/cjs/examples/native_examples.js +112 -0
  38. package/build/cjs/examples/noble_example.js +88 -0
  39. package/build/cjs/examples/optimal_node.js +70 -0
  40. package/build/cjs/examples/permissioned_keys_example.js +104 -0
  41. package/build/cjs/examples/raw_orders.json +130 -0
  42. package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
  43. package/build/cjs/examples/short_term_order_composite_example.js +68 -0
  44. package/build/cjs/examples/test.js +50 -0
  45. package/build/cjs/examples/transfer_example_deposit.js +29 -0
  46. package/build/cjs/examples/transfer_example_send.js +42 -0
  47. package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
  48. package/build/cjs/examples/transfer_example_withdraw.js +30 -0
  49. package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
  50. package/build/cjs/examples/utility_endpoints.js +42 -0
  51. package/build/cjs/examples/validator_get_example.js +158 -0
  52. package/build/cjs/examples/validator_post_example.js +76 -0
  53. package/build/cjs/examples/wallet_address.js +22 -0
  54. package/build/cjs/examples/websocket_example.js +36 -0
  55. package/build/cjs/examples/websocket_orderbook_example.js +196 -0
  56. package/build/cjs/{clients → src/clients}/composite-client.js +1 -1
  57. package/build/cjs/{clients → src/clients}/constants.js +1 -1
  58. package/build/cjs/{clients → src/clients}/faucet-client.js +1 -1
  59. package/build/cjs/{clients → src/clients}/helpers/chain-helpers.js +1 -1
  60. package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
  61. package/build/cjs/{clients → src/clients}/indexer-client.js +1 -1
  62. package/build/cjs/{clients → src/clients}/lib/axios/axiosRequest.js +1 -1
  63. package/build/cjs/{clients → src/clients}/lib/axios/errors.js +1 -1
  64. package/build/cjs/{clients → src/clients}/lib/axios/index.js +1 -1
  65. package/build/cjs/{clients → src/clients}/lib/axios/types.js +1 -1
  66. package/build/cjs/{clients → src/clients}/lib/cctpProto.js +1 -1
  67. package/build/cjs/{clients → src/clients}/lib/errors.js +1 -1
  68. package/build/cjs/{clients → src/clients}/lib/registry.js +1 -1
  69. package/build/cjs/{clients → src/clients}/modules/account.js +1 -1
  70. package/build/cjs/{clients → src/clients}/modules/composer.js +1 -1
  71. package/build/cjs/{clients → src/clients}/modules/get.js +1 -1
  72. package/build/cjs/{clients → src/clients}/modules/local-wallet.js +1 -1
  73. package/build/cjs/{clients → src/clients}/modules/markets.js +1 -1
  74. package/build/cjs/{clients → src/clients}/modules/post.js +1 -1
  75. package/build/cjs/{clients → src/clients}/modules/proto-includes.js +1 -1
  76. package/build/cjs/{clients → src/clients}/modules/rest.js +1 -1
  77. package/build/cjs/{clients → src/clients}/modules/signer.js +1 -1
  78. package/build/cjs/{clients → src/clients}/modules/tendermintClient.js +1 -1
  79. package/build/cjs/{clients → src/clients}/modules/utility.js +1 -1
  80. package/build/cjs/{clients → src/clients}/modules/vault.js +1 -1
  81. package/build/cjs/src/clients/native.js +1330 -0
  82. package/build/cjs/{clients → src/clients}/noble-client.js +1 -1
  83. package/build/cjs/{clients → src/clients}/socket-client.js +1 -1
  84. package/build/cjs/{clients → src/clients}/subaccount.js +1 -1
  85. package/build/cjs/{clients → src/clients}/types.js +1 -1
  86. package/build/cjs/{clients → src/clients}/validator-client.js +1 -1
  87. package/build/cjs/{index.js → src/index.js} +1 -1
  88. package/build/cjs/{lib → src/lib}/constants.js +1 -1
  89. package/build/cjs/{lib → src/lib}/errors.js +1 -1
  90. package/build/cjs/{lib → src/lib}/helpers.js +1 -1
  91. package/build/cjs/{lib → src/lib}/onboarding.js +1 -1
  92. package/build/cjs/{lib → src/lib}/trading-key-utils.js +1 -1
  93. package/build/cjs/{lib → src/lib}/utils.js +1 -1
  94. package/build/cjs/{lib → src/lib}/validation.js +1 -1
  95. package/build/cjs/src/network_optimizer.js +96 -0
  96. package/build/cjs/{types.js → src/types.js} +1 -1
  97. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  98. package/build/esm/__tests__/lib/helpers.test.js +2 -1
  99. package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +17 -17
  100. package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +3 -3
  101. package/build/esm/__tests__/modules/client/Transfers.test.js +3 -3
  102. package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +3 -3
  103. package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +6 -6
  104. package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +3 -3
  105. package/build/esm/__tests__/modules/client/constants.d.ts +3 -3
  106. package/build/esm/__tests__/modules/client/constants.d.ts.map +1 -1
  107. package/build/esm/__tests__/modules/client/constants.js +4 -4
  108. package/build/esm/examples/account_endpoints.js +3 -3
  109. package/build/esm/examples/batch_cancel_orders_example.js +3 -3
  110. package/build/esm/examples/composite_example.js +3 -3
  111. package/build/esm/examples/constants.d.ts +7 -7
  112. package/build/esm/examples/constants.d.ts.map +1 -1
  113. package/build/esm/examples/constants.js +9 -9
  114. package/build/esm/examples/faucet_endpoint.js +3 -3
  115. package/build/esm/examples/gov_add_new_market.js +3 -3
  116. package/build/esm/examples/long_term_order_cancel_example.js +3 -3
  117. package/build/esm/examples/native_examples.js +5 -5
  118. package/build/esm/examples/noble_example.js +4 -4
  119. package/build/esm/examples/permissioned_keys_example.js +4 -4
  120. package/build/esm/examples/short_term_order_cancel_example.js +3 -3
  121. package/build/esm/examples/short_term_order_composite_example.js +3 -3
  122. package/build/esm/examples/test.js +3 -3
  123. package/build/esm/examples/transfer_example_deposit.js +3 -3
  124. package/build/esm/examples/transfer_example_send.js +3 -3
  125. package/build/esm/examples/transfer_example_subaccount_transfer.js +3 -3
  126. package/build/esm/examples/transfer_example_withdraw.js +3 -3
  127. package/build/esm/examples/transfer_example_withdraw_other.js +3 -3
  128. package/build/esm/examples/validator_get_example.js +12 -12
  129. package/build/esm/examples/validator_post_example.js +3 -3
  130. package/build/esm/examples/wallet_address.js +4 -4
  131. package/build/esm/examples/websocket_example.js +3 -3
  132. package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
  133. package/examples/account_endpoints.ts +2 -2
  134. package/examples/batch_cancel_orders_example.ts +2 -2
  135. package/examples/composite_example.ts +2 -2
  136. package/examples/constants.ts +8 -8
  137. package/examples/faucet_endpoint.ts +2 -2
  138. package/examples/gov_add_new_market.json +6 -6
  139. package/examples/gov_add_new_market.ts +2 -2
  140. package/examples/long_term_order_cancel_example.ts +2 -2
  141. package/examples/native_examples.ts +4 -4
  142. package/examples/noble_example.ts +3 -3
  143. package/examples/permissioned_keys_example.ts +3 -3
  144. package/examples/short_term_order_cancel_example.ts +2 -2
  145. package/examples/short_term_order_composite_example.ts +2 -2
  146. package/examples/test.ts +2 -2
  147. package/examples/transfer_example_deposit.ts +2 -2
  148. package/examples/transfer_example_send.ts +2 -2
  149. package/examples/transfer_example_subaccount_transfer.ts +2 -2
  150. package/examples/transfer_example_withdraw.ts +2 -2
  151. package/examples/transfer_example_withdraw_other.ts +2 -2
  152. package/examples/validator_get_example.ts +11 -11
  153. package/examples/validator_post_example.ts +2 -2
  154. package/examples/wallet_address.ts +3 -3
  155. package/examples/websocket_example.ts +2 -2
  156. package/package.json +11 -11
  157. package/tsconfig.base.json +2 -1
  158. package/tsconfig.cjs.json +3 -13
  159. package/build/cjs/clients/helpers/request-helpers.js +0 -65
  160. package/build/cjs/network_optimizer.js +0 -96
@@ -1,3 +1,5 @@
1
+ /// <reference types="jest" />
2
+
1
3
  import { PartialTransactionOptions, TransactionOptions } from '../../src';
2
4
  import { DEFAULT_SEQUENCE } from '../../src/lib/constants';
3
5
  import { convertPartialTransactionOptionsToFull, stripHexPrefix } from '../../src/lib/helpers';
@@ -1,13 +1,13 @@
1
1
  import { Network } from '../../../src/clients/constants';
2
2
  import { IndexerClient } from '../../../src/clients/indexer-client';
3
- import { DYDX_TEST_ADDRESS } from './constants';
3
+ import { TEST_ADDRESS } from './constants';
4
4
 
5
5
  describe('IndexerClient', () => {
6
6
  const client = new IndexerClient(Network.testnet().indexerConfig);
7
7
 
8
8
  describe('Private Endpoints', () => {
9
9
  it('Subaccounts', async () => {
10
- const response = await client.account.getSubaccounts(DYDX_TEST_ADDRESS);
10
+ const response = await client.account.getSubaccounts(TEST_ADDRESS);
11
11
  const subaccounts = response.subaccounts;
12
12
  expect(subaccounts.size).not.toBeNull();
13
13
  const subaccount0 = subaccounts[0];
@@ -16,7 +16,7 @@ describe('IndexerClient', () => {
16
16
  });
17
17
 
18
18
  it('Subaccount 0', async () => {
19
- const response = await client.account.getSubaccount(DYDX_TEST_ADDRESS, 0);
19
+ const response = await client.account.getSubaccount(TEST_ADDRESS, 0);
20
20
  const subaccount = response.subaccount;
21
21
  expect(subaccount).not.toBeNull();
22
22
  const subaccountNumber = subaccount.subaccountNumber;
@@ -24,7 +24,7 @@ describe('IndexerClient', () => {
24
24
  });
25
25
 
26
26
  it('Asset Positions', async () => {
27
- const response = await client.account.getSubaccountAssetPositions(DYDX_TEST_ADDRESS, 0);
27
+ const response = await client.account.getSubaccountAssetPositions(TEST_ADDRESS, 0);
28
28
  expect(response).not.toBeNull();
29
29
  const positions = response.positions;
30
30
  expect(positions).not.toBeNull();
@@ -35,7 +35,7 @@ describe('IndexerClient', () => {
35
35
  });
36
36
 
37
37
  it('Perpetual Positions', async () => {
38
- const response = await client.account.getSubaccountPerpetualPositions(DYDX_TEST_ADDRESS, 0);
38
+ const response = await client.account.getSubaccountPerpetualPositions(TEST_ADDRESS, 0);
39
39
  expect(response).not.toBeNull();
40
40
  const positions = response.positions;
41
41
  expect(positions).not.toBeNull();
@@ -46,7 +46,7 @@ describe('IndexerClient', () => {
46
46
  });
47
47
 
48
48
  it('Transfers', async () => {
49
- const response = await client.account.getSubaccountTransfers(DYDX_TEST_ADDRESS, 0);
49
+ const response = await client.account.getSubaccountTransfers(TEST_ADDRESS, 0);
50
50
  expect(response).not.toBeNull();
51
51
  const transfers = response.transfers;
52
52
  expect(transfers).not.toBeNull();
@@ -57,7 +57,7 @@ describe('IndexerClient', () => {
57
57
  });
58
58
 
59
59
  it('Transfers ParentSubaccountNumber', async () => {
60
- const response = await client.account.getParentSubaccountNumberTransfers(DYDX_TEST_ADDRESS, 0);
60
+ const response = await client.account.getParentSubaccountNumberTransfers(TEST_ADDRESS, 0);
61
61
  expect(response).not.toBeNull();
62
62
  const transfers = response.transfers;
63
63
  expect(transfers).not.toBeNull();
@@ -69,7 +69,7 @@ describe('IndexerClient', () => {
69
69
 
70
70
  it('Transfers Pagination', async () => {
71
71
  const response = await client.account.getSubaccountTransfers(
72
- DYDX_TEST_ADDRESS,
72
+ TEST_ADDRESS,
73
73
  0,
74
74
  1,
75
75
  undefined,
@@ -93,7 +93,7 @@ describe('IndexerClient', () => {
93
93
 
94
94
  it('Transfers ParentSubaccountNumber Pagination', async () => {
95
95
  const response = await client.account.getParentSubaccountNumberTransfers(
96
- DYDX_TEST_ADDRESS,
96
+ TEST_ADDRESS,
97
97
  0,
98
98
  1,
99
99
  undefined,
@@ -116,7 +116,7 @@ describe('IndexerClient', () => {
116
116
  });
117
117
 
118
118
  it('Orders', async () => {
119
- const response = await client.account.getSubaccountOrders(DYDX_TEST_ADDRESS, 0);
119
+ const response = await client.account.getSubaccountOrders(TEST_ADDRESS, 0);
120
120
  expect(response).not.toBeNull();
121
121
  const orders = response;
122
122
  expect(orders).not.toBeNull();
@@ -127,7 +127,7 @@ describe('IndexerClient', () => {
127
127
  });
128
128
 
129
129
  it('Fills', async () => {
130
- const response = await client.account.getSubaccountFills(DYDX_TEST_ADDRESS, 0);
130
+ const response = await client.account.getSubaccountFills(TEST_ADDRESS, 0);
131
131
  expect(response).not.toBeNull();
132
132
  const fills = response.fills;
133
133
  expect(fills).not.toBeNull();
@@ -138,7 +138,7 @@ describe('IndexerClient', () => {
138
138
  });
139
139
 
140
140
  it('Fills ParentSubaccountNumber', async () => {
141
- const response = await client.account.getParentSubaccountNumberFills(DYDX_TEST_ADDRESS, 0);
141
+ const response = await client.account.getParentSubaccountNumberFills(TEST_ADDRESS, 0);
142
142
  expect(response).not.toBeNull();
143
143
  const fills = response.fills;
144
144
  expect(fills).not.toBeNull();
@@ -150,7 +150,7 @@ describe('IndexerClient', () => {
150
150
 
151
151
  it('Fills Pagination', async () => {
152
152
  const response = await client.account.getSubaccountFills(
153
- DYDX_TEST_ADDRESS,
153
+ TEST_ADDRESS,
154
154
  0,
155
155
  undefined,
156
156
  undefined,
@@ -175,7 +175,7 @@ describe('IndexerClient', () => {
175
175
 
176
176
  it('Fills ParentSubaccountNumber Pagination', async () => {
177
177
  const response = await client.account.getParentSubaccountNumberFills(
178
- DYDX_TEST_ADDRESS,
178
+ TEST_ADDRESS,
179
179
  0,
180
180
  undefined,
181
181
  undefined,
@@ -199,7 +199,7 @@ describe('IndexerClient', () => {
199
199
  });
200
200
 
201
201
  it('Historical PNL', async () => {
202
- const response = await client.account.getSubaccountHistoricalPNLs(DYDX_TEST_ADDRESS, 0);
202
+ const response = await client.account.getSubaccountHistoricalPNLs(TEST_ADDRESS, 0);
203
203
  expect(response).not.toBeNull();
204
204
  const historicalPnl = response.historicalPnl;
205
205
  expect(historicalPnl).not.toBeNull();
@@ -211,7 +211,7 @@ describe('IndexerClient', () => {
211
211
 
212
212
  it('Historical PNL Pagination', async () => {
213
213
  const response = await client.account.getSubaccountHistoricalPNLs(
214
- DYDX_TEST_ADDRESS,
214
+ TEST_ADDRESS,
215
215
  0,
216
216
  undefined,
217
217
  undefined,
@@ -1,13 +1,13 @@
1
1
  import { FaucetApiHost } from '../../../src/clients/constants';
2
2
  import { FaucetClient } from '../../../src/clients/faucet-client';
3
- import { DYDX_TEST_ADDRESS } from './constants';
3
+ import { TEST_ADDRESS } from './constants';
4
4
 
5
5
  describe('FaucetClient', () => {
6
6
  const client = new FaucetClient(FaucetApiHost.TESTNET);
7
7
 
8
8
  describe('Faucet Endpoints', () => {
9
9
  it('Fill', async () => {
10
- const response = await client.fill(DYDX_TEST_ADDRESS, 0, 2000);
10
+ const response = await client.fill(TEST_ADDRESS, 0, 2000);
11
11
  expect(response?.status).toBe(202);
12
12
  });
13
13
  });
@@ -2,7 +2,7 @@ import { Network } from '../../../src/clients/constants';
2
2
  import LocalWallet from '../../../src/clients/modules/local-wallet';
3
3
  import { SubaccountInfo } from '../../../src/clients/subaccount';
4
4
  import { ValidatorClient } from '../../../src/clients/validator-client';
5
- import { DYDX_TEST_MNEMONIC } from '../../../examples/constants';
5
+ import { TEST_MNEMONIC } from '../../../examples/constants';
6
6
  import Long from 'long';
7
7
  import { BECH32_PREFIX } from '../../../src';
8
8
 
@@ -17,7 +17,7 @@ describe('Validator Client', () => {
17
17
 
18
18
  describe('Transfers', () => {
19
19
  beforeEach(async () => {
20
- wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
20
+ wallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
21
21
  subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
22
22
  client = await ValidatorClient.connect(Network.testnet().validatorConfig);
23
23
  await sleep(5000); // wait for withdraw to complete
@@ -1,6 +1,6 @@
1
1
  import { IndexerClient } from '../../../src';
2
2
  import { Network } from '../../../src/clients/constants';
3
- import { DYDX_TEST_ADDRESS } from './constants';
3
+ import { TEST_ADDRESS } from './constants';
4
4
 
5
5
  describe('IndexerClient', () => {
6
6
  const client = new IndexerClient(Network.testnet().indexerConfig);
@@ -21,7 +21,7 @@ describe('IndexerClient', () => {
21
21
  });
22
22
 
23
23
  it('Screen Address', async () => {
24
- const response = await client.utility.screen(DYDX_TEST_ADDRESS);
24
+ const response = await client.utility.screen(TEST_ADDRESS);
25
25
  const { restricted } = response ?? {};
26
26
  expect(restricted).toBeDefined();
27
27
  });
@@ -1,6 +1,6 @@
1
1
  import { ValidatorClient } from '../../../src/clients/validator-client';
2
2
  import { Network } from '../../../src/clients/constants';
3
- import { DYDX_TEST_ADDRESS } from './constants';
3
+ import { TEST_ADDRESS } from './constants';
4
4
 
5
5
  describe('Validator Client', () => {
6
6
  let client: ValidatorClient;
@@ -10,12 +10,12 @@ describe('Validator Client', () => {
10
10
  });
11
11
 
12
12
  it('Account', async () => {
13
- const account = await client.get.getAccount(DYDX_TEST_ADDRESS);
14
- expect(account.address).toBe(DYDX_TEST_ADDRESS);
13
+ const account = await client.get.getAccount(TEST_ADDRESS);
14
+ expect(account.address).toBe(TEST_ADDRESS);
15
15
  });
16
16
 
17
17
  it('Balance', async () => {
18
- const balances = await client.get.getAccountBalances(DYDX_TEST_ADDRESS);
18
+ const balances = await client.get.getAccountBalances(TEST_ADDRESS);
19
19
  expect(balances).not.toBeUndefined();
20
20
  });
21
21
 
@@ -25,7 +25,7 @@ describe('Validator Client', () => {
25
25
  });
26
26
 
27
27
  it('Subaccount', async () => {
28
- const subaccount = await client.get.getSubaccount(DYDX_TEST_ADDRESS, 0);
28
+ const subaccount = await client.get.getSubaccount(TEST_ADDRESS, 0);
29
29
  expect(subaccount.subaccount).not.toBeUndefined();
30
30
  });
31
31
 
@@ -6,7 +6,7 @@ import { SubaccountInfo } from '../../../src/clients/subaccount';
6
6
  import { IPlaceOrder } from '../../../src/clients/types';
7
7
  import { ValidatorClient } from '../../../src/clients/validator-client';
8
8
  import { randomInt } from '../../../src/lib/utils';
9
- import { DYDX_TEST_MNEMONIC, defaultOrder } from '../../../examples/constants';
9
+ import { TEST_MNEMONIC, defaultOrder } from '../../../examples/constants';
10
10
  import { BECH32_PREFIX } from '../../../src';
11
11
 
12
12
  function dummyOrder(height: number): IPlaceOrder {
@@ -29,7 +29,7 @@ describe('Validator Client', () => {
29
29
 
30
30
  describe('Post', () => {
31
31
  beforeEach(async () => {
32
- wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
32
+ wallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
33
33
  client = await ValidatorClient.connect(Network.testnet().validatorConfig);
34
34
  });
35
35
 
@@ -1,5 +1,5 @@
1
- export const DYDX_TEST_ADDRESS = 'dydx14zzueazeh0hj67cghhf9jypslcf9sh2n5k6art';
2
- export const DYDX_TEST_PRIVATE_KEY =
1
+ export const TEST_ADDRESS = 'rit14zzueazeh0hj67cghhf9jypslcf9sh2n5k6art';
2
+ export const TEST_PRIVATE_KEY =
3
3
  'e92a6595c934c991d3b3e987ea9b3125bf61a076deab3a9cb519787b7b3e8d77';
4
- export const DYDX_TEST_MNEMONIC =
4
+ export const TEST_MNEMONIC =
5
5
  'mirror actor skill push coach wait confirm orchard lunch mobile athlete gossip awake miracle matter bus reopen team ladder lazy list timber render wait';
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const src_1 = require("../../src");
4
+ const composite_client_1 = require("../../src/clients/composite-client");
5
+ describe('CompositeClient', () => {
6
+ describe('validateAuthenticators', () => {
7
+ const network = src_1.Network.staging();
8
+ it('Validates top level AnyOf authenticators', async () => {
9
+ const client = await composite_client_1.CompositeClient.connect(network);
10
+ const auth = {
11
+ type: src_1.AuthenticatorType.ANY_OF,
12
+ config: [
13
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
14
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
15
+ ],
16
+ };
17
+ expect(client.validateAuthenticator(auth)).toEqual(true);
18
+ });
19
+ it('Fails top level AnyOf authenticators with non-signature nested authenticator', async () => {
20
+ const client = await composite_client_1.CompositeClient.connect(network);
21
+ const auth = {
22
+ type: src_1.AuthenticatorType.ANY_OF,
23
+ config: [
24
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
25
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
26
+ ],
27
+ };
28
+ expect(client.validateAuthenticator(auth)).toEqual(false);
29
+ });
30
+ it('Validates top level AllOf authenticators', async () => {
31
+ const client = await composite_client_1.CompositeClient.connect(network);
32
+ const auth = {
33
+ type: src_1.AuthenticatorType.ALL_OF,
34
+ config: [
35
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
36
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
37
+ ],
38
+ };
39
+ expect(client.validateAuthenticator(auth)).toEqual(true);
40
+ });
41
+ it('Fails top level AllOf authenticators, without signature verification', async () => {
42
+ const client = await composite_client_1.CompositeClient.connect(network);
43
+ const auth = {
44
+ type: src_1.AuthenticatorType.ALL_OF,
45
+ config: [
46
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
47
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
48
+ ],
49
+ };
50
+ expect(client.validateAuthenticator(auth)).toEqual(false);
51
+ });
52
+ it('Validates nested anyOf authenticators', async () => {
53
+ const client = await composite_client_1.CompositeClient.connect(network);
54
+ const nestedAnyOf = {
55
+ type: src_1.AuthenticatorType.ANY_OF,
56
+ config: [
57
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
58
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
59
+ ]
60
+ };
61
+ const signatureVerification = {
62
+ type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION,
63
+ config: ""
64
+ };
65
+ const auth = {
66
+ type: src_1.AuthenticatorType.ALL_OF,
67
+ config: [signatureVerification, nestedAnyOf],
68
+ };
69
+ expect(client.validateAuthenticator(auth)).toEqual(true);
70
+ });
71
+ it('Validates nested allOf authenticators', async () => {
72
+ const client = await composite_client_1.CompositeClient.connect(network);
73
+ const nestedAllOf = {
74
+ type: src_1.AuthenticatorType.ALL_OF,
75
+ config: [
76
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
77
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
78
+ ]
79
+ };
80
+ const messageVerification = {
81
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
82
+ config: ""
83
+ };
84
+ const auth = {
85
+ type: src_1.AuthenticatorType.ALL_OF,
86
+ config: [messageVerification, nestedAllOf],
87
+ };
88
+ expect(client.validateAuthenticator(auth)).toEqual(true);
89
+ });
90
+ it('Fails nested anyOf signatureVerification authenticators', async () => {
91
+ const client = await composite_client_1.CompositeClient.connect(network);
92
+ const nestedAnyOf = {
93
+ type: src_1.AuthenticatorType.ANY_OF,
94
+ config: [
95
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
96
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
97
+ ]
98
+ };
99
+ const messageVerification = {
100
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
101
+ config: ""
102
+ };
103
+ const auth = {
104
+ type: src_1.AuthenticatorType.ALL_OF,
105
+ config: [messageVerification, nestedAnyOf],
106
+ };
107
+ expect(client.validateAuthenticator(auth)).toEqual(false);
108
+ });
109
+ it('Fails nested anyOf authenticators', async () => {
110
+ const client = await composite_client_1.CompositeClient.connect(network);
111
+ const nestedAnyOf = {
112
+ type: src_1.AuthenticatorType.ANY_OF,
113
+ config: [
114
+ { type: src_1.AuthenticatorType.MESSAGE_FILTER, config: "" },
115
+ { type: src_1.AuthenticatorType.SIGNATURE_VERIFICATION, config: "" },
116
+ ]
117
+ };
118
+ const messageVerification = {
119
+ type: src_1.AuthenticatorType.MESSAGE_FILTER,
120
+ config: ""
121
+ };
122
+ const auth = {
123
+ type: src_1.AuthenticatorType.ANY_OF,
124
+ config: [messageVerification, nestedAnyOf],
125
+ };
126
+ expect(client.validateAuthenticator(auth)).toEqual(false);
127
+ });
128
+ });
129
+ });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2NsaWVudHMvY29tcG9zaXRlLWNsaWVudC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXNFO0FBQ3RFLHlFQUFvRTtBQUVwRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7UUFDdEMsTUFBTSxPQUFPLEdBQUcsYUFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWxDLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sSUFBSSxHQUFrQjtnQkFDMUIsSUFBSSxFQUFFLHVCQUFpQixDQUFDLE1BQU07Z0JBQzlCLE1BQU0sRUFBRTtvQkFDTixFQUFFLElBQUksRUFBRSx1QkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO29CQUM5RCxFQUFFLElBQUksRUFBRSx1QkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2lCQUMvRDthQUNGLENBQUE7WUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhFQUE4RSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQWtCO2dCQUMxQixJQUFJLEVBQUUsdUJBQWlCLENBQUMsTUFBTTtnQkFDOUIs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
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseWallet = exports.BaseStargateSigningClient = exports.BaseQueryClient = exports.BaseTendermintClient = void 0;
4
+ /* eslint-disable @typescript-eslint/no-empty-function */
5
+ class BaseTendermintClient {
6
+ async block() { }
7
+ async broadcastTxSync() { }
8
+ async broadcastTxAsync() { }
9
+ async txSearchAll() { }
10
+ }
11
+ exports.BaseTendermintClient = BaseTendermintClient;
12
+ class BaseQueryClient {
13
+ constructor() {
14
+ this.tx = {
15
+ async simulate() { },
16
+ };
17
+ }
18
+ async queryUnverified() { }
19
+ }
20
+ exports.BaseQueryClient = BaseQueryClient;
21
+ class BaseStargateSigningClient {
22
+ async sign() { }
23
+ }
24
+ exports.BaseStargateSigningClient = BaseStargateSigningClient;
25
+ class BaseWallet {
26
+ async getAccounts() { }
27
+ }
28
+ exports.BaseWallet = BaseWallet;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUNsaWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9fX3Rlc3RzX18vaGVscGVycy9iYXNlQ2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBeUQ7QUFDekQsTUFBYSxvQkFBb0I7SUFDL0IsS0FBSyxDQUFDLEtBQUssS0FBbUIsQ0FBQztJQUMvQixLQUFLLENBQUMsZUFBZSxLQUFtQixDQUFDO0lBQ3pDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBbUIsQ0FBQztJQUMxQyxLQUFLLENBQUMsV0FBVyxLQUFtQixDQUFDO0NBQ3RDO0FBTEQsb0RBS0M7QUFFRCxNQUFhLGVBQWU7SUFBNUI7UUFDRSxPQUFFLEdBQUc7WUFDSCxLQUFLLENBQUMsUUFBUSxLQUFtQixDQUFDO1NBQ25DLENBQUM7SUFHSixDQUFDO0lBREMsS0FBSyxDQUFDLGVBQWUsS0FBbUIsQ0FBQztDQUMxQztBQU5ELDBDQU1DO0FBRUQsTUFBYSx5QkFBeUI7SUFDcEMsS0FBSyxDQUFDLElBQUksS0FBbUIsQ0FBQztDQUMvQjtBQUZELDhEQUVDO0FBRUQsTUFBYSxVQUFVO0lBQ3JCLEtBQUssQ0FBQyxXQUFXLEtBQW1CLENBQUM7Q0FDdEM7QUFGRCxnQ0FFQyJ9
@@ -0,0 +1,110 @@
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.MNEMONIC_FROM_SIGNATURE_RESULT = exports.PUBLIC_KEY_FROM_SIGNATURE_RESULT = exports.PRIVATE_KEY_FROM_SIGNATURE_RESULT = exports.ENTROPY_FROM_SIGNATURE_RESULT = exports.SIGNATURE_RESULT = exports.defaultTransfer = exports.defaultBatchCancelOrder = exports.defaultCancelOrder = exports.orderRouterOrder = exports.builderOrder = exports.twapOrder = exports.defaultOrder = exports.defaultTransactionOptions = exports.TEST_HOST = exports.TEST_CHAIN_ID = exports.TEST_RECIPIENT_ADDRESS = exports.TEST_ADDRESS = void 0;
7
+ const long_1 = __importDefault(require("long"));
8
+ const utils_1 = require("../../src/lib/utils");
9
+ const types_1 = require("../../src/types");
10
+ exports.TEST_ADDRESS = 'dydx1vl9h9nkmau4e9v7tm30wekespu3d2qhd9404wa';
11
+ exports.TEST_RECIPIENT_ADDRESS = 'dydx1slanxj8x9ntk9knwa6cvfv2tzlsq5gk3dshml0';
12
+ exports.TEST_CHAIN_ID = 'ritbit';
13
+ exports.TEST_HOST = 'http://localhost:26657';
14
+ exports.defaultTransactionOptions = {
15
+ accountNumber: 1,
16
+ sequence: 10,
17
+ chainId: exports.TEST_CHAIN_ID,
18
+ };
19
+ // PlaceOrder variables
20
+ exports.defaultOrder = {
21
+ clientId: 0,
22
+ orderFlags: types_1.OrderFlags.SHORT_TERM,
23
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
24
+ side: types_1.Order_Side.SIDE_BUY,
25
+ quantums: long_1.default.fromNumber(10),
26
+ subticks: long_1.default.fromNumber(100),
27
+ goodTilBlock: 10000,
28
+ timeInForce: types_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED,
29
+ reduceOnly: false,
30
+ clientMetadata: 0,
31
+ // New optional fields
32
+ twapParameters: undefined,
33
+ builderCodeParameters: undefined,
34
+ orderRouterAddress: undefined,
35
+ };
36
+ // PlaceOrder with TWAP parameters for testing
37
+ exports.twapOrder = {
38
+ ...exports.defaultOrder,
39
+ clientId: 1,
40
+ twapParameters: {
41
+ duration: 3600, // 1 hour
42
+ interval: 300, // 5 minutes
43
+ priceTolerance: 50000, // 5% in ppm
44
+ },
45
+ };
46
+ // PlaceOrder with builder code parameters for testing
47
+ exports.builderOrder = {
48
+ ...exports.defaultOrder,
49
+ clientId: 2,
50
+ builderCodeParameters: {
51
+ builderAddress: 'dydx1test_builder_address',
52
+ feePpm: 1000, // 0.1% fee
53
+ }
54
+ };
55
+ exports.orderRouterOrder = {
56
+ ...exports.defaultOrder,
57
+ clientId: 2,
58
+ orderRouterAddress: 'dydx1test_router_address',
59
+ };
60
+ // CancelOrder variables
61
+ exports.defaultCancelOrder = {
62
+ clientId: (0, utils_1.generateRandomClientId)(),
63
+ orderFlags: types_1.OrderFlags.SHORT_TERM,
64
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
65
+ goodTilBlock: 4250,
66
+ };
67
+ // BatchCancelOrder variables
68
+ exports.defaultBatchCancelOrder = {
69
+ shortTermOrders: [
70
+ {
71
+ clobPairId: types_1.ClobPairId.PERPETUAL_PAIR_BTC_USD,
72
+ clientIds: [(0, utils_1.generateRandomClientId)(), (0, utils_1.generateRandomClientId)()],
73
+ },
74
+ ],
75
+ goodTilBlock: 4250,
76
+ };
77
+ // Transfer variables
78
+ exports.defaultTransfer = {
79
+ sender: {
80
+ owner: exports.TEST_ADDRESS,
81
+ number: 0,
82
+ },
83
+ recipient: {
84
+ owner: 'dydx14063jves4u9zhm7eja5ltf3t8zspxd92qnk23t',
85
+ number: 0,
86
+ },
87
+ assetId: 0,
88
+ amount: long_1.default.fromNumber(1000),
89
+ };
90
+ // ------ Onboarding Constants ------ //
91
+ // Base Signature Result
92
+ exports.SIGNATURE_RESULT = '0xf2006b4fc0afa08a6048b40d3d67e437ac2e20e6bacf3f947f9b33aa2756d204287f5fb2155bec067d879a25d7ddac791826cf28e2786919065e19848020f1531b';
93
+ // Derived privateKeyBytes from Base Signature Result
94
+ exports.ENTROPY_FROM_SIGNATURE_RESULT = new Uint8Array([
95
+ 247, 183, 226, 106, 76, 125, 241, 35, 149, 75, 103, 180, 165, 243, 80, 128, 34, 20, 238, 201, 131,
96
+ 180, 61, 76, 223, 179, 37, 211, 144, 197, 171, 251,
97
+ ]);
98
+ // Derived HDKey privateKey from Base Signature Result
99
+ exports.PRIVATE_KEY_FROM_SIGNATURE_RESULT = new Uint8Array([
100
+ 14, 92, 178, 198, 64, 65, 27, 153, 11, 45, 118, 194, 71, 194, 10, 140, 145, 40, 203, 107, 231,
101
+ 191, 138, 220, 168, 104, 28, 69, 58, 193, 203, 213,
102
+ ]);
103
+ // Derived HDKey publicKey from Base Signature Result
104
+ exports.PUBLIC_KEY_FROM_SIGNATURE_RESULT = new Uint8Array([
105
+ 2, 204, 94, 45, 7, 83, 196, 55, 195, 107, 10, 35, 169, 32, 24, 37, 193, 196, 34, 210, 84, 26, 107,
106
+ 89, 119, 240, 211, 63, 187, 34, 162, 197, 36,
107
+ ]);
108
+ // Derived HDKey mnemonic from Base Signature Result
109
+ exports.MNEMONIC_FROM_SIGNATURE_RESULT = 'waste sample once ocean tenant mushroom festival hollow regret convince stage able candy jazz champion isolate diary group under entry decorate glare quiz job';
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2hlbHBlcnMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUV4QiwrQ0FBNkQ7QUFDN0QsMkNBVXlCO0FBRVosUUFBQSxZQUFZLEdBQVcsNkNBQTZDLENBQUM7QUFDckUsUUFBQSxzQkFBc0IsR0FBVyw2Q0FBNkMsQ0FBQztBQUMvRSxRQUFBLGFBQWEsR0FBVyxRQUFRLENBQUM7QUFDakMsUUFBQSxTQUFTLEdBQVcsd0JBQXdCLENBQUM7QUFFN0MsUUFBQSx5QkFBeUIsR0FBdUI7SUFDM0QsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixPQUFPLEVBQUUscUJBQWE7Q0FDdkIsQ0FBQztBQUVGLHVCQUF1QjtBQUNWLFFBQUEsWUFBWSxHQUFnQjtJQUN2QyxRQUFRLEVBQUUsQ0FBQztJQUNYLFVBQVUsRUFBRSxrQkFBVSxDQUFDLFVBQVU7SUFDakMsVUFBVSxFQUFFLGtCQUFVLENBQUMsc0JBQXNCO0lBQzdDLElBQUksRUFBRSxrQkFBVSxDQUFDLFFBQVE7SUFDekIsUUFBUSxFQUFFLGNBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQzdCLFFBQVEsRUFBRSxjQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztJQUM5QixZQUFZLEVBQUUsS0FBSztJQUNuQixXQUFXLEVBQUUseUJBQWlCLENBQUMseUJBQXlCO0lBQ3hELFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLHNCQUFzQjtJQUN0QixjQUFjLEVBQUUsU0FBUztJQUN6QixxQkFBcUIsRUFBRSxTQUFTO0lBQ2hDLGtCQUFrQixFQUFFLFNBQVM7Q0FDOUIsQ0FBQztBQUVGLDhDQUE4QztBQUNqQyxRQUFBLFNBQVMsR0FBZ0I7SUFDcEMsR0FBRyxvQkFBWTtJQUNmLFFBQVEsRUFB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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /// <reference types="jest" />
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const constants_1 = require("../../src/lib/constants");
8
+ const helpers_1 = require("../../src/lib/helpers");
9
+ const constants_2 = require("../helpers/constants");
10
+ const chain_helpers_1 = require("../../src/clients/helpers/chain-helpers");
11
+ const long_1 = __importDefault(require("long"));
12
+ describe('helpers', () => {
13
+ describe('calculateSubticks', () => {
14
+ it('correctly handles decimals', () => {
15
+ expect((0, chain_helpers_1.calculateSubticks)(8.45, -7, -9, 1000000)).toEqual(new long_1.default(845000000));
16
+ });
17
+ });
18
+ describe('calculateQuantums', () => {
19
+ it('correctly handles decimals', () => {
20
+ expect((0, chain_helpers_1.calculateQuantums)(0.0003, -10, 1000000)).toEqual(new long_1.default(3000000));
21
+ });
22
+ });
23
+ describe('convertPartialTransactionOptionsToFull', () => it.each([
24
+ [
25
+ 'partial transactionOptions',
26
+ {
27
+ accountNumber: constants_2.defaultTransactionOptions.accountNumber,
28
+ chainId: constants_2.defaultTransactionOptions.chainId,
29
+ },
30
+ { ...constants_2.defaultTransactionOptions, sequence: constants_1.DEFAULT_SEQUENCE },
31
+ ],
32
+ ['undefined transactionOptions', undefined, undefined],
33
+ ])('convertPartialTransactionOptionsToFull: %s', (_name, partialTransactionOptions, expectedResult) => {
34
+ const transactionOptions = (0, helpers_1.convertPartialTransactionOptionsToFull)(partialTransactionOptions);
35
+ expect(expectedResult).toEqual(transactionOptions);
36
+ }));
37
+ describe('stripHexPrefix', () => {
38
+ it('strips 0x prefix', () => {
39
+ expect((0, helpers_1.stripHexPrefix)('0x123')).toEqual('123');
40
+ });
41
+ it('returns input if no prefix', () => {
42
+ expect((0, helpers_1.stripHexPrefix)('10x23')).toEqual('10x23');
43
+ });
44
+ });
45
+ });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2xpYi9oZWxwZXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhCQUE4Qjs7Ozs7QUFHOUIsdURBQTJEO0FBQzNELG1EQUErRjtBQUMvRixvREFBaUU7QUFDakUsMkVBQStGO0FBQy9GLGdEQUF3QjtBQUV4QixRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUEsaUNBQWlCLEVBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksY0FBSSxDQUFDLFNBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBQSxpQ0FBaUIsRUFBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxjQUFJLENBQUMsT0FBUyxDQUFDLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRSxDQUN0RCxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ047WUFDRSw0QkFBNEI7WUFDNUI7Z0JBQ0UsYUFBYSxFQUFFLHFDQUF5QixDQUFDLGFBQWE7Z0JBQ3RELE9BQU8sRUFBRSxxQ0FBeUIsQ0FBQyxPQUFPO2FBQzNDO1lBQ0QsRUFBRSxHQUFHLHFDQUF5QixFQUFFLFFBQVEsRUFBRSw0QkFBZ0IsRUFBRTtTQUM3RDtRQUNELENBQUMsOEJBQThCLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztLQUN2RCxDQUFDLENBQ0EsNENBQTRDLEVBQzVDLENBQ0UsS0FBYSxFQUNiLHlCQUFnRSxFQUNoRSxjQUE4QyxFQUM5QyxFQUFFO1FBQ0YsTUFBTSxrQkFBa0IsR0FDdEIsSUFBQSxnREFBc0MsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQ0YsQ0FBQyxDQUFDO0lBRUwsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUM5QixFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxJQUFBLHdCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxJQUFBLHdCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=