@ritbit/v4-client-js 2.1.0 → 2.1.2

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 (98) hide show
  1. package/__tests__/lib/helpers.test.ts +2 -0
  2. package/build/cjs/__tests__/clients/composite-client.test.js +130 -0
  3. package/build/cjs/__tests__/helpers/baseClients.js +29 -0
  4. package/build/cjs/__tests__/helpers/constants.js +110 -0
  5. package/build/cjs/__tests__/lib/helpers.test.js +46 -0
  6. package/build/cjs/__tests__/lib/util.test.js +67 -0
  7. package/build/cjs/__tests__/lib/validation.test.js +254 -0
  8. package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +171 -0
  9. package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +15 -0
  10. package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +69 -0
  11. package/build/cjs/__tests__/modules/client/Transfers.test.js +44 -0
  12. package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
  13. package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +46 -0
  14. package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +53 -0
  15. package/build/cjs/__tests__/modules/client/constants.js +7 -0
  16. package/build/cjs/__tests__/modules/onboarding.test.js +50 -0
  17. package/build/cjs/examples/account_endpoints.js +129 -0
  18. package/build/cjs/examples/batch_cancel_orders_example.js +93 -0
  19. package/build/cjs/examples/composite_example.js +50 -0
  20. package/build/cjs/examples/constants.js +35 -0
  21. package/build/cjs/examples/faucet_endpoint.js +23 -0
  22. package/build/cjs/examples/gov_add_new_market.js +77 -0
  23. package/build/cjs/examples/human_readable_orders.json +86 -0
  24. package/build/cjs/examples/human_readable_short_term_orders.json +42 -0
  25. package/build/cjs/examples/json-encoding.js +32 -0
  26. package/build/cjs/examples/long_term_order_cancel_example.js +63 -0
  27. package/build/cjs/examples/markets_endpoints.js +134 -0
  28. package/build/cjs/examples/native_examples.js +112 -0
  29. package/build/cjs/examples/noble_example.js +88 -0
  30. package/build/cjs/examples/optimal_node.js +70 -0
  31. package/build/cjs/examples/permissioned_keys_example.js +104 -0
  32. package/build/cjs/examples/raw_orders.json +130 -0
  33. package/build/cjs/examples/short_term_order_cancel_example.js +54 -0
  34. package/build/cjs/examples/short_term_order_composite_example.js +68 -0
  35. package/build/cjs/examples/test.js +50 -0
  36. package/build/cjs/examples/transfer_example_deposit.js +29 -0
  37. package/build/cjs/examples/transfer_example_send.js +42 -0
  38. package/build/cjs/examples/transfer_example_subaccount_transfer.js +29 -0
  39. package/build/cjs/examples/transfer_example_withdraw.js +30 -0
  40. package/build/cjs/examples/transfer_example_withdraw_other.js +42 -0
  41. package/build/cjs/examples/utility_endpoints.js +42 -0
  42. package/build/cjs/examples/validator_get_example.js +158 -0
  43. package/build/cjs/examples/validator_post_example.js +76 -0
  44. package/build/cjs/examples/wallet_address.js +22 -0
  45. package/build/cjs/examples/websocket_example.js +36 -0
  46. package/build/cjs/examples/websocket_orderbook_example.js +196 -0
  47. package/build/cjs/{clients → src/clients}/composite-client.js +1 -1
  48. package/build/cjs/{clients → src/clients}/constants.js +1 -1
  49. package/build/cjs/{clients → src/clients}/faucet-client.js +1 -1
  50. package/build/cjs/{clients → src/clients}/helpers/chain-helpers.js +1 -1
  51. package/build/cjs/src/clients/helpers/request-helpers.js +65 -0
  52. package/build/cjs/{clients → src/clients}/indexer-client.js +1 -1
  53. package/build/cjs/{clients → src/clients}/lib/axios/axiosRequest.js +1 -1
  54. package/build/cjs/{clients → src/clients}/lib/axios/errors.js +1 -1
  55. package/build/cjs/{clients → src/clients}/lib/axios/index.js +1 -1
  56. package/build/cjs/{clients → src/clients}/lib/axios/types.js +1 -1
  57. package/build/cjs/{clients → src/clients}/lib/cctpProto.js +1 -1
  58. package/build/cjs/{clients → src/clients}/lib/errors.js +1 -1
  59. package/build/cjs/{clients → src/clients}/lib/registry.js +1 -1
  60. package/build/cjs/{clients → src/clients}/modules/account.js +1 -1
  61. package/build/cjs/{clients → src/clients}/modules/composer.js +1 -1
  62. package/build/cjs/{clients → src/clients}/modules/get.js +1 -1
  63. package/build/cjs/{clients → src/clients}/modules/local-wallet.js +1 -1
  64. package/build/cjs/{clients → src/clients}/modules/markets.js +1 -1
  65. package/build/cjs/{clients → src/clients}/modules/post.js +1 -1
  66. package/build/cjs/{clients → src/clients}/modules/proto-includes.js +1 -1
  67. package/build/cjs/{clients → src/clients}/modules/rest.js +1 -1
  68. package/build/cjs/{clients → src/clients}/modules/signer.js +1 -1
  69. package/build/cjs/{clients → src/clients}/modules/tendermintClient.js +1 -1
  70. package/build/cjs/{clients → src/clients}/modules/utility.js +1 -1
  71. package/build/cjs/{clients → src/clients}/modules/vault.js +1 -1
  72. package/build/cjs/src/clients/native.js +1330 -0
  73. package/build/cjs/{clients → src/clients}/noble-client.js +1 -1
  74. package/build/cjs/{clients → src/clients}/socket-client.js +1 -1
  75. package/build/cjs/{clients → src/clients}/subaccount.js +1 -1
  76. package/build/cjs/{clients → src/clients}/types.js +1 -1
  77. package/build/cjs/{clients → src/clients}/validator-client.js +1 -1
  78. package/build/cjs/{index.js → src/index.js} +1 -1
  79. package/build/cjs/{lib → src/lib}/constants.js +1 -1
  80. package/build/cjs/{lib → src/lib}/errors.js +1 -1
  81. package/build/cjs/{lib → src/lib}/helpers.js +1 -1
  82. package/build/cjs/{lib → src/lib}/onboarding.js +1 -1
  83. package/build/cjs/{lib → src/lib}/trading-key-utils.js +1 -1
  84. package/build/cjs/{lib → src/lib}/utils.js +1 -1
  85. package/build/cjs/{lib → src/lib}/validation.js +1 -1
  86. package/build/cjs/src/network_optimizer.js +96 -0
  87. package/build/cjs/{types.js → src/types.js} +1 -1
  88. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  89. package/build/esm/__tests__/lib/helpers.test.js +2 -1
  90. package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
  91. package/package.json +11 -11
  92. package/ritbit-v4-client-js-2.1.1.tgz +0 -0
  93. package/tsconfig.base.json +1 -2
  94. package/tsconfig.cjs.json +3 -13
  95. package/tsconfig.eslint.json +1 -4
  96. package/tsconfig.esm.json +1 -2
  97. package/build/cjs/clients/helpers/request-helpers.js +0 -65
  98. 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';
@@ -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=
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../../src/lib/constants");
4
+ const utils_1 = require("../../src/lib/utils");
5
+ describe('lib/util', () => {
6
+ describe('randomInt', () => {
7
+ it('random values', () => {
8
+ const maxValue = 9999;
9
+ let lastValue = 0;
10
+ for (let i = 0; i < 100; i++) {
11
+ const value = (0, utils_1.randomInt)(maxValue);
12
+ // Within the expected bounds.
13
+ expect(value).toBeGreaterThanOrEqual(0);
14
+ expect(value).toBeLessThanOrEqual(maxValue);
15
+ // No collision.
16
+ expect(value).not.toEqual(lastValue);
17
+ lastValue = value;
18
+ }
19
+ });
20
+ it('zero', () => {
21
+ expect((0, utils_1.randomInt)(0)).toEqual(0);
22
+ });
23
+ });
24
+ describe('generateRandomClientId', () => {
25
+ it('random values', () => {
26
+ let lastValue = 0;
27
+ for (let i = 0; i < 100; i++) {
28
+ const value = (0, utils_1.generateRandomClientId)();
29
+ // Within the expected bounds.
30
+ expect(value).toBeGreaterThanOrEqual(0);
31
+ expect(value).toBeLessThanOrEqual(constants_1.MAX_UINT_32);
32
+ // No collision.
33
+ expect(value).not.toEqual(lastValue);
34
+ lastValue = value;
35
+ }
36
+ });
37
+ });
38
+ describe('clientIdFromString', () => {
39
+ it('hard-coded', () => {
40
+ expect((0, utils_1.clientIdFromString)('test')).toEqual(2151040146);
41
+ });
42
+ it('random values', () => {
43
+ let lastValue = 0;
44
+ let lastInput = 0;
45
+ for (let i = 0; i < 1000; i++) {
46
+ // Prevent input collision.
47
+ let input = (0, utils_1.randomInt)(constants_1.MAX_UINT_32);
48
+ if (input === lastInput) {
49
+ input += 1;
50
+ }
51
+ const value = (0, utils_1.clientIdFromString)(`${input}`);
52
+ const valueAgain = (0, utils_1.clientIdFromString)(`${input}`);
53
+ // Deterministic.
54
+ expect(value).toEqual(valueAgain);
55
+ // Within the expected bounds.
56
+ expect(value).toBeGreaterThanOrEqual(0);
57
+ expect(value).toBeLessThanOrEqual(constants_1.MAX_UINT_32);
58
+ // No collision.
59
+ expect(value).not.toEqual(lastValue);
60
+ expect(value).not.toEqual(input);
61
+ lastValue = value;
62
+ lastInput = input;
63
+ }
64
+ });
65
+ });
66
+ });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL2xpYi91dGlsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBc0Q7QUFDdEQsK0NBQTRGO0FBRTVGLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQztZQUM5QixJQUFJLFNBQVMsR0FBVyxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixNQUFNLEtBQUssR0FBVyxJQUFBLGlCQUFTLEVBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTFDLDhCQUE4QjtnQkFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTVDLGdCQUFnQjtnQkFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDZCxNQUFNLENBQUMsSUFBQSxpQkFBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3ZCLElBQUksU0FBUyxHQUFXLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUFXLElBQUEsOEJBQXNCLEdBQUUsQ0FBQztnQkFFL0MsOEJBQThCO2dCQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBVyxDQUFDLENBQUM7Z0JBRS9DLGdCQUFnQjtnQkFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxJQUFBLDBCQUFrQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDdkIsSUFBSSxTQUFTLEdBQVcsQ0FBQyxDQUFDO1lBQzFCLElBQUksU0FBUyxHQUFXLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzlCLDJCQUEyQjtnQkFDM0IsSUFBSSxLQUFLLEdBQVcsSUFBQSxpQkFBUyxFQUFDLHVCQUFXLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3hCLEtBQUssSUFBSSxDQUFDLENBQUM7Z0JBQ2IsQ0FBQztnQkFFRCxNQUFNLEtBQUssR0FBVyxJQUFBLDBCQUFrQixFQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDckQsTUFBTSxVQUFVLEdBQVcsSUFBQSwwQkFBa0IsRUFBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBRTFELGlCQUFpQjtnQkFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFbEMsOEJBQThCO2dCQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBVyxDQUFDLENBQUM7Z0JBRS9DLGdCQUFnQjtnQkFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==