@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
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../src/clients/constants");
4
+ const network_optimizer_1 = require("../src/network_optimizer");
5
+ async function testNodes() {
6
+ // all valid endpoints
7
+ try {
8
+ const optimizer = new network_optimizer_1.NetworkOptimizer();
9
+ const endpoints = [
10
+ 'https://validator.v4testnet1.dydx.exchange',
11
+ 'https://dydx-testnet.nodefleet.org',
12
+ 'https://dydx-testnet-archive.allthatnode.com:26657/XZvMM41hESf8PJrEQiTzbCOMVyFca79R',
13
+ ];
14
+ const optimal = await optimizer.findOptimalNode(endpoints, constants_1.TESTNET_CHAIN_ID);
15
+ console.log(optimal);
16
+ }
17
+ catch (error) {
18
+ console.log(error.message);
19
+ }
20
+ // one invalid endpoint
21
+ try {
22
+ const optimizer = new network_optimizer_1.NetworkOptimizer();
23
+ const endpoints = [
24
+ 'https://validator.v4testnet1.dydx.exchange',
25
+ 'https://dydx-testnet.nodefleet.org',
26
+ 'https://dydx-testnet-archive.allthatnode.com:26657/XZvMM41hESf8PJrEQiTzbCOMVyFca79R',
27
+ 'https://example.com',
28
+ ];
29
+ const optimal = await optimizer.findOptimalNode(endpoints, constants_1.TESTNET_CHAIN_ID);
30
+ console.log(optimal);
31
+ }
32
+ catch (error) {
33
+ console.log(error.message);
34
+ }
35
+ // all invalid endpoints
36
+ try {
37
+ const optimizer = new network_optimizer_1.NetworkOptimizer();
38
+ const endpoints = ['https://example.com', 'https://example.org'];
39
+ const optimal = await optimizer.findOptimalNode(endpoints, constants_1.TESTNET_CHAIN_ID);
40
+ console.log(optimal);
41
+ }
42
+ catch (error) {
43
+ console.log(error.message);
44
+ }
45
+ }
46
+ async function testIndexers() {
47
+ // all valid endpoints
48
+ try {
49
+ const optimizer = new network_optimizer_1.NetworkOptimizer();
50
+ const endpoints = ['https://indexer.v4testnet2.dydx.exchange'];
51
+ const optimal = await optimizer.findOptimalIndexer(endpoints);
52
+ console.log(optimal);
53
+ }
54
+ catch (error) {
55
+ console.log(error.message);
56
+ }
57
+ // all invalid endpoints
58
+ try {
59
+ const optimizer = new network_optimizer_1.NetworkOptimizer();
60
+ const endpoints = ['https://example.com', 'https://example.org'];
61
+ const optimal = await optimizer.findOptimalIndexer(endpoints);
62
+ console.log(optimal);
63
+ }
64
+ catch (error) {
65
+ console.log(error.message);
66
+ }
67
+ }
68
+ testNodes().catch(console.log);
69
+ testIndexers().catch(console.log);
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW1hbF9ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhhbXBsZXMvb3B0aW1hbF9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0RBQTREO0FBQzVELGdFQUE0RDtBQUU1RCxLQUFLLFVBQVUsU0FBUztJQUN0QixzQkFBc0I7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxvQ0FBZ0IsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLDRDQUE0QztZQUM1QyxvQ0FBb0M7WUFDcEMscUZBQXFGO1NBQ3RGLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLDRCQUFnQixDQUFDLENBQUM7UUFDN0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxvQ0FBZ0IsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLDRDQUE0QztZQUM1QyxvQ0FBb0M7WUFDcEMscUZBQXFGO1lBQ3JGLHFCQUFxQjtTQUN0QixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSw0QkFBZ0IsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsd0JBQXdCO0lBRXhCLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksb0NBQWdCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSw0QkFBZ0IsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxZQUFZO0lBQ3pCLHNCQUFzQjtJQUN0QixJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLG9DQUFnQixFQUFFLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsd0JBQXdCO0lBRXhCLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksb0NBQWdCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQixZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,104 @@
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 long_1 = __importDefault(require("long"));
7
+ const src_1 = require("../src");
8
+ const composite_client_1 = require("../src/clients/composite-client");
9
+ const constants_1 = require("../src/clients/constants");
10
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
11
+ const subaccount_1 = require("../src/clients/subaccount");
12
+ const trading_key_utils_1 = require("../src/lib/trading-key-utils");
13
+ const constants_2 = require("./constants");
14
+ async function test() {
15
+ var _a;
16
+ const wallet1 = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
17
+ const wallet2 = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC_2, src_1.BECH32_PREFIX);
18
+ const network = constants_1.Network.testnet();
19
+ const client = await composite_client_1.CompositeClient.connect(network);
20
+ client.setSelectedGasDenom(constants_1.SelectedGasDenom.NATIVE);
21
+ console.log('**Client**');
22
+ console.log(client);
23
+ const subaccount1 = subaccount_1.SubaccountInfo.forLocalWallet(wallet1, 0);
24
+ const subaccount2 = subaccount_1.SubaccountInfo.forLocalWallet(wallet2, 0);
25
+ // Change second wallet pubkey
26
+ // Add an authenticator to allow wallet2 to place orders
27
+ console.log('** Adding authenticator **');
28
+ // Record authenticator count before adding
29
+ const authsBefore = await client.getAuthenticators(wallet1.address);
30
+ const beforeCount = authsBefore.accountAuthenticators.length;
31
+ console.log(`Authenticators before: ${beforeCount}`);
32
+ const apiTradingWalletInfo1 = await createApiTradingWallet(client, subaccount1);
33
+ const apiTradingWallet1 = await local_wallet_1.default.fromPrivateKey(apiTradingWalletInfo1.privteKeyHex, src_1.BECH32_PREFIX);
34
+ console.log('** Waiting 3 seconds for txn to be confirmed **');
35
+ await new Promise((resolve) => setTimeout(resolve, 3000));
36
+ const authsAfter = await client.getAuthenticators(wallet1.address);
37
+ const afterCount = authsAfter.accountAuthenticators.length;
38
+ console.log(`Authenticators after: ${afterCount}`);
39
+ if (afterCount !== beforeCount + 1) {
40
+ console.error('Authenticator count did not increment by 1.');
41
+ process.exit(1);
42
+ }
43
+ else {
44
+ console.log('Authenticator count incremented by 1 as expected.');
45
+ }
46
+ const parsedAuths = (0, trading_key_utils_1.getAuthorizedTradingKeysMetadata)(authsAfter.accountAuthenticators);
47
+ const newAuthenticatorID = (_a = parsedAuths.find((a) => apiTradingWallet1.address != null && a.address === apiTradingWallet1.address)) === null || _a === void 0 ? void 0 : _a.id;
48
+ if (newAuthenticatorID == null) {
49
+ console.error('Unable to locate the created authenticator. Address: ', apiTradingWallet1.address);
50
+ throw new Error('Unable to locate the new authenticator');
51
+ }
52
+ console.log(`New authenticator ID: ${newAuthenticatorID}`);
53
+ // Placing order using subaccount2 for subaccount1 succeeds
54
+ console.log('** Placing order for subaccount1 with subaccount2 + authenticator, should succeed **');
55
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
56
+ // Placing order using subaccount2 for subaccount1 should fail
57
+ console.log('** Placing order for subaccount1 with subaccount3 + authenticator, should fail **');
58
+ await placeOrder(client, subaccount2.signingWallet, subaccount1.address, newAuthenticatorID);
59
+ // Remove authenticator
60
+ console.log('** Removing authenticator **');
61
+ await removeAuthenticator(client, subaccount1, newAuthenticatorID);
62
+ console.log('** Waiting 3 seconds for txn to be confirmed **');
63
+ await new Promise((resolve) => setTimeout(resolve, 3000));
64
+ // Placing an order using subaccount2 will now fail
65
+ console.log('** Placing order with removed authenticator should fail **');
66
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
67
+ }
68
+ async function removeAuthenticator(client, subaccount, id) {
69
+ await client.removeAuthenticator(subaccount, id);
70
+ }
71
+ async function createApiTradingWallet(client, subaccount) {
72
+ const wallet = await (0, trading_key_utils_1.createNewRandomDydxWallet)();
73
+ if (wallet == null) {
74
+ throw new Error("Couldn't create wallet");
75
+ }
76
+ const { data, type } = (0, trading_key_utils_1.getAuthorizeNewTradingKeyArguments)({
77
+ generatedWalletPubKey: wallet === null || wallet === void 0 ? void 0 : wallet.publicKey,
78
+ });
79
+ console.log('adding', wallet.address);
80
+ await client.addAuthenticator(subaccount, type, data);
81
+ return { privteKeyHex: wallet.privateKeyHex, forDydxAddress: subaccount.address };
82
+ }
83
+ async function placeOrder(client, apiTradingWallet, forAccountAddress, authenticatorId) {
84
+ try {
85
+ const side = constants_1.OrderSide.BUY;
86
+ const price = Number('10000');
87
+ const clientId = Math.floor(Math.random() * 10000);
88
+ const tx = await client.placeOrder(subaccount_1.SubaccountInfo.forPermissionedWallet(apiTradingWallet, forAccountAddress, 0, [
89
+ long_1.default.fromString(authenticatorId),
90
+ ]), 'ETH-USD', constants_1.OrderType.MARKET, side, price, 0.01, clientId, constants_1.OrderTimeInForce.IOC, 100, constants_1.OrderExecution.IOC, false, false);
91
+ console.log('**Order Tx**');
92
+ console.log(Buffer.from(tx.hash).toString('hex'));
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ }
95
+ catch (error) {
96
+ console.log(error.message);
97
+ }
98
+ }
99
+ test()
100
+ .then(() => { })
101
+ .catch((error) => {
102
+ console.log(error.message);
103
+ });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbmVkX2tleXNfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Blcm1pc3Npb25lZF9rZXlzX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFFeEIsZ0NBQXVDO0FBQ3ZDLHNFQUFrRTtBQUNsRSx3REFPa0M7QUFDbEMsdUZBQThEO0FBQzlELDBEQUEyRDtBQUMzRCxvRUFJc0M7QUFDdEMsMkNBQTZEO0FBRTdELEtBQUssVUFBVSxJQUFJOztJQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLHlCQUFhLEVBQUUsbUJBQWEsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsMkJBQWUsRUFBRSxtQkFBYSxDQUFDLENBQUM7SUFFL0UsTUFBTSxPQUFPLEdBQUcsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyw0QkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEIsTUFBTSxXQUFXLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sV0FBVyxHQUFHLDJCQUFjLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5RCw4QkFBOEI7SUFDOUIsd0RBQXdEO0lBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMxQywyQ0FBMkM7SUFDM0MsTUFB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
@@ -0,0 +1,130 @@
1
+ [
2
+ {
3
+ "timeInForce": 0,
4
+ "reduceOnly": false,
5
+ "orderFlags": 64,
6
+ "side": 1,
7
+ "quantums": 10000000,
8
+ "subticks": 40000000000
9
+ },
10
+ {
11
+ "timeInForce": 2,
12
+ "reduceOnly": false,
13
+ "orderFlags": 64,
14
+ "side": 1,
15
+ "quantums": 10000000,
16
+ "subticks": 40000000000
17
+ },
18
+ {
19
+ "timeInForce": 0,
20
+ "reduceOnly": true,
21
+ "orderFlags": 64,
22
+ "side": 1,
23
+ "quantums": 10000000,
24
+ "subticks": 40000000000
25
+ },
26
+ {
27
+ "timeInForce": 2,
28
+ "reduceOnly": true,
29
+ "orderFlags": 64,
30
+ "side": 1,
31
+ "quantums": 10000000,
32
+ "subticks": 40000000000
33
+ },
34
+ {
35
+ "timeInForce": 1,
36
+ "reduceOnly": false,
37
+ "orderFlags": 0,
38
+ "side": 1,
39
+ "quantums": 10000000,
40
+ "subticks": 40000000000
41
+ },
42
+ {
43
+ "timeInForce": 1,
44
+ "reduceOnly": true,
45
+ "orderFlags": 0,
46
+ "side": 1,
47
+ "quantums": 10000000,
48
+ "subticks": 40000000000
49
+ },
50
+ {
51
+ "timeInForce": 3,
52
+ "reduceOnly": false,
53
+ "orderFlags": 0,
54
+ "side": 1,
55
+ "quantums": 10000000,
56
+ "subticks": 40000000000
57
+ },
58
+ {
59
+ "timeInForce": 3,
60
+ "reduceOnly": true,
61
+ "orderFlags": 0,
62
+ "side": 1,
63
+ "quantums": 10000000,
64
+ "subticks": 40000000000
65
+ },
66
+ {
67
+ "timeInForce": 0,
68
+ "reduceOnly": false,
69
+ "orderFlags": 64,
70
+ "side": 2,
71
+ "quantums": 10000000,
72
+ "subticks": 1000000000
73
+ },
74
+ {
75
+ "timeInForce": 2,
76
+ "reduceOnly": false,
77
+ "orderFlags": 64,
78
+ "side": 2,
79
+ "quantums": 10000000,
80
+ "subticks": 1000000000
81
+ },
82
+ {
83
+ "timeInForce": 0,
84
+ "reduceOnly": true,
85
+ "orderFlags": 64,
86
+ "side": 2,
87
+ "quantums": 10000000,
88
+ "subticks": 1000000000
89
+ },
90
+ {
91
+ "timeInForce": 2,
92
+ "reduceOnly": true,
93
+ "orderFlags": 64,
94
+ "side": 2,
95
+ "quantums": 10000000,
96
+ "subticks": 1000000000
97
+ },
98
+ {
99
+ "timeInForce": 1,
100
+ "reduceOnly": false,
101
+ "orderFlags": 0,
102
+ "side": 2,
103
+ "quantums": 10000000,
104
+ "subticks": 1000000000
105
+ },
106
+ {
107
+ "timeInForce": 1,
108
+ "reduceOnly": true,
109
+ "orderFlags": 0,
110
+ "side": 2,
111
+ "quantums": 10000000,
112
+ "subticks": 1000000000
113
+ },
114
+ {
115
+ "timeInForce": 3,
116
+ "reduceOnly": false,
117
+ "orderFlags": 0,
118
+ "side": 2,
119
+ "quantums": 10000000,
120
+ "subticks": 1000000000
121
+ },
122
+ {
123
+ "timeInForce": 3,
124
+ "reduceOnly": true,
125
+ "orderFlags": 0,
126
+ "side": 2,
127
+ "quantums": 10000000,
128
+ "subticks": 1000000000
129
+ }
130
+ ]
@@ -0,0 +1,54 @@
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 src_1 = require("../src");
7
+ const composite_client_1 = require("../src/clients/composite-client");
8
+ const constants_1 = require("../src/clients/constants");
9
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
10
+ const subaccount_1 = require("../src/clients/subaccount");
11
+ const utils_1 = require("../src/lib/utils");
12
+ const constants_2 = require("./constants");
13
+ async function test() {
14
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
15
+ console.log(wallet);
16
+ const network = constants_1.Network.testnet();
17
+ const client = await composite_client_1.CompositeClient.connect(network);
18
+ console.log('**Client**');
19
+ console.log(client);
20
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
21
+ const currentBlock = await client.validatorClient.get.latestBlockHeight();
22
+ const nextValidBlockHeight = currentBlock + 1;
23
+ // Note, you can change this to any number between `next_valid_block_height`
24
+ // to `next_valid_block_height + SHORT_BLOCK_WINDOW`
25
+ const goodTilBlock = nextValidBlockHeight + 10;
26
+ const shortTermOrderClientId = (0, utils_1.randomInt)(constants_2.MAX_CLIENT_ID);
27
+ try {
28
+ // place a short term order
29
+ const tx = await client.placeShortTermOrder(subaccount, 'ETH-USD', constants_1.OrderSide.SELL, 40000, 0.01, shortTermOrderClientId, goodTilBlock, src_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED, false);
30
+ console.log('**Short Term Order Tx**');
31
+ console.log(tx.hash);
32
+ }
33
+ catch (error) {
34
+ console.log('**Short Term Order Failed**');
35
+ console.log(error.message);
36
+ }
37
+ await (0, utils_1.sleep)(5000); // wait for placeOrder to complete
38
+ try {
39
+ // cancel the short term order
40
+ const tx = await client.cancelOrder(subaccount, shortTermOrderClientId, src_1.OrderFlags.SHORT_TERM, 'ETH-USD', goodTilBlock + 10, 0);
41
+ console.log('**Cancel Short Term Order Tx**');
42
+ console.log(tx);
43
+ }
44
+ catch (error) {
45
+ console.log('**Cancel Short Term Order Failed**');
46
+ console.log(error.message);
47
+ }
48
+ }
49
+ test()
50
+ .then(() => { })
51
+ .catch((error) => {
52
+ console.log(error.message);
53
+ });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRfdGVybV9vcmRlcl9jYW5jZWxfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Nob3J0X3Rlcm1fb3JkZXJfY2FuY2VsX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnQ0FBc0U7QUFDdEUsc0VBQWtFO0FBQ2xFLHdEQUE4RDtBQUM5RCx1RkFBOEQ7QUFDOUQsMERBQTJEO0FBQzNELDRDQUFvRDtBQUNwRCwyQ0FBMkQ7QUFFM0QsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBYSxFQUFFLG1CQUFhLENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMxRSxNQUFNLG9CQUFvQixHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDOUMsNEVBQTRFO0lBQzVFLG9EQUFvRDtJQUNwRCxNQUFNLFlBQVksR0FBRyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFDL0MsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLGlCQUFTLEVBQUMseUJBQWEsQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQztRQUNILDJCQUEyQjtRQUMzQixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDekMsVUFBVSxFQUNWLFNBQVMsRUFDVCxxQkFBUyxDQUFDLElBQUksRUFDZCxLQUFLLEVBQ0wsSUFBSSxFQUNKLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osdUJBQWlCLENBQUMseUJBQXlCLEVBQzNDLEtBQUssQ0FDTixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLElBQUEsYUFBSyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBRXJELElBQUksQ0FBQztRQUNILDhCQUE4QjtRQUM5QixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQ2pDLFVBQVUsRUFDVixzQkFBc0IsRUFDdEIsZ0JBQVUsQ0FBQyxVQUFVLEVBQ3JCLFNBQVMsRUFDVCxZQUFZLEdBQUcsRUFBRSxFQUNqQixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNkLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,68 @@
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 order_1 = require("@ritbit/v4-proto/src/codegen/ritbit/clob/order");
7
+ const src_1 = require("../src");
8
+ const composite_client_1 = require("../src/clients/composite-client");
9
+ const constants_1 = require("../src/clients/constants");
10
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
11
+ const subaccount_1 = require("../src/clients/subaccount");
12
+ const utils_1 = require("../src/lib/utils");
13
+ const constants_2 = require("./constants");
14
+ const human_readable_short_term_orders_json_1 = __importDefault(require("./human_readable_short_term_orders.json"));
15
+ async function sleep(ms) {
16
+ return new Promise((resolve) => setTimeout(resolve, ms));
17
+ }
18
+ async function test() {
19
+ var _a;
20
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
21
+ console.log(wallet);
22
+ const network = constants_1.Network.testnet();
23
+ const client = await composite_client_1.CompositeClient.connect(network);
24
+ console.log('**Client**');
25
+ console.log(client);
26
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
27
+ for (const orderParams of human_readable_short_term_orders_json_1.default) {
28
+ try {
29
+ const side = constants_1.OrderSide[orderParams.side];
30
+ const price = (_a = orderParams.price) !== null && _a !== void 0 ? _a : 1350;
31
+ const currentBlock = await client.validatorClient.get.latestBlockHeight();
32
+ const nextValidBlockHeight = currentBlock + 1;
33
+ // Note, you can change this to any number between `next_valid_block_height`
34
+ // to `next_valid_block_height + SHORT_BLOCK_WINDOW`
35
+ const goodTilBlock = nextValidBlockHeight + 10;
36
+ const timeInForce = orderExecutionToTimeInForce(orderParams.timeInForce);
37
+ // uint32
38
+ const clientId = (0, utils_1.randomInt)(2 ** 32 - 1);
39
+ const tx = await client.placeShortTermOrder(subaccount, 'ETH-USD', side, price, 0.01, clientId, goodTilBlock, timeInForce, false);
40
+ console.log('**Order Tx**');
41
+ console.log(tx.hash.toString());
42
+ }
43
+ catch (error) {
44
+ console.log(error.message);
45
+ }
46
+ await sleep(5000); // wait for placeOrder to complete
47
+ }
48
+ }
49
+ function orderExecutionToTimeInForce(orderExecution) {
50
+ switch (orderExecution) {
51
+ case constants_1.OrderExecution.DEFAULT:
52
+ return order_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
53
+ case constants_1.OrderExecution.FOK:
54
+ return order_1.Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL;
55
+ case constants_1.OrderExecution.IOC:
56
+ return order_1.Order_TimeInForce.TIME_IN_FORCE_IOC;
57
+ case constants_1.OrderExecution.POST_ONLY:
58
+ return order_1.Order_TimeInForce.TIME_IN_FORCE_POST_ONLY;
59
+ default:
60
+ throw new Error('Unrecognized order execution');
61
+ }
62
+ }
63
+ test()
64
+ .then(() => { })
65
+ .catch((error) => {
66
+ console.log(error.message);
67
+ });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRfdGVybV9vcmRlcl9jb21wb3NpdGVfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Nob3J0X3Rlcm1fb3JkZXJfY29tcG9zaXRlX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwRUFBbUY7QUFFbkYsZ0NBQXVDO0FBQ3ZDLHNFQUFrRTtBQUNsRSx3REFBOEU7QUFDOUUsdUZBQThEO0FBQzlELDBEQUEyRDtBQUMzRCw0Q0FBNkM7QUFDN0MsMkNBQTRDO0FBQzVDLG9IQUFtRTtBQUVuRSxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSTs7SUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBYSxFQUFFLG1CQUFhLENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELEtBQUssTUFBTSxXQUFXLElBQUksK0NBQVksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLHFCQUFTLENBQUMsV0FBVyxDQUFDLElBQThCLENBQUMsQ0FBQztZQUNuRSxNQUFNLEtBQUssR0FBRyxNQUFBLFdBQVcsQ0FBQyxLQUFLLG1DQUFJLElBQUksQ0FBQztZQUV4QyxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLDRFQUE0RTtZQUM1RSxvREFBb0Q7WUFDcEQsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1lBRS9DLE1BQU0sV0FBVyxHQUFHLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV6RSxTQUFTO1lBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBQSxpQkFBUyxFQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFeEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQ3pDLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBQ3ZELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FBQyxjQUFzQjtJQUN6RCxRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssMEJBQWMsQ0FBQyxPQUFPO1lBQ3pCLE9BQU8seUJBQWlCLENBQUMseUJBQXlCLENBQUM7UUFDckQsS0FBSywwQkFBYyxDQUFDLEdBQUc7WUFDckIsT0FBTyx5QkFBaUIsQ0FBQywwQkFBMEIsQ0FBQztRQUN0RCxLQUFLLDBCQUFjLENBQUMsR0FBRztZQUNyQixPQUFPLHlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBQzdDLEtBQUssMEJBQWMsQ0FBQyxTQUFTO1lBQzNCLE9BQU8seUJBQWlCLENBQUMsdUJBQXVCLENBQUM7UUFDbkQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDcEQsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUU7S0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQ2QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,50 @@
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 src_1 = require("../src");
7
+ const composite_client_1 = require("../src/clients/composite-client");
8
+ const constants_1 = require("../src/clients/constants");
9
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
10
+ const subaccount_1 = require("../src/clients/subaccount");
11
+ const utils_1 = require("../src/lib/utils");
12
+ const constants_2 = require("./constants");
13
+ const human_readable_orders_json_1 = __importDefault(require("./human_readable_orders.json"));
14
+ async function sleep(ms) {
15
+ return new Promise((resolve) => setTimeout(resolve, ms));
16
+ }
17
+ async function test() {
18
+ var _a, _b, _c;
19
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
20
+ console.log(wallet);
21
+ const network = constants_1.Network.testnet();
22
+ const client = await composite_client_1.CompositeClient.connect(network);
23
+ console.log('**Client**');
24
+ console.log(client);
25
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
26
+ for (const orderParams of human_readable_orders_json_1.default) {
27
+ try {
28
+ const type = constants_1.OrderType[orderParams.type];
29
+ const side = constants_1.OrderSide[orderParams.side];
30
+ const timeInForceString = (_a = orderParams.timeInForce) !== null && _a !== void 0 ? _a : 'GTT';
31
+ const timeInForce = constants_1.OrderTimeInForce[timeInForceString];
32
+ const price = (_b = orderParams.price) !== null && _b !== void 0 ? _b : 1350;
33
+ const timeInForceSeconds = timeInForce === constants_1.OrderTimeInForce.GTT ? 60 : 0;
34
+ const postOnly = (_c = orderParams.postOnly) !== null && _c !== void 0 ? _c : false;
35
+ const tx = await client.placeOrder(subaccount, 'ETH-USD', type, side, price, 0.01, (0, utils_1.randomInt)(constants_2.MAX_CLIENT_ID), timeInForce, timeInForceSeconds, constants_1.OrderExecution.DEFAULT, postOnly, false);
36
+ console.log('**Order Tx**');
37
+ console.log(tx);
38
+ }
39
+ catch (error) {
40
+ console.log(error.message);
41
+ }
42
+ await sleep(5000); // wait for placeOrder to complete
43
+ }
44
+ }
45
+ test()
46
+ .then(() => { })
47
+ .catch((error) => {
48
+ console.log(error.message);
49
+ });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnQ0FBdUM7QUFDdkMsc0VBQWtFO0FBQ2xFLHdEQU1rQztBQUNsQyx1RkFBOEQ7QUFDOUQsMERBQTJEO0FBQzNELDRDQUE2QztBQUM3QywyQ0FBMkQ7QUFDM0QsOEZBQXdEO0FBRXhELEtBQUssVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM3QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJOztJQUNqQixNQUFNLE1BQU0sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLHlCQUFhLEVBQUUsbUJBQWEsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsTUFBTSxPQUFPLEdBQUcsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixNQUFNLFVBQVUsR0FBRywyQkFBYyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsS0FBSyxNQUFNLFdBQVcsSUFBSSxvQ0FBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcscUJBQVMsQ0FBQyxXQUFXLENBQUMsSUFBOEIsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sSUFBSSxHQUFHLHFCQUFTLENBQUMsV0FBVyxDQUFDLElBQThCLENBQUMsQ0FBQztZQUNuRSxNQUFNLGlCQUFpQixHQUFHLE1BQUEsV0FBVyxDQUFDLFdBQVcsbUNBQUksS0FBSyxDQUFDO1lBQzNELE1BQU0sV0FBVyxHQUFHLDRCQUFnQixDQUFDLGlCQUFrRCxDQUFDLENBQUM7WUFDekYsTUFBTSxLQUFLLEdBQUcsTUFBQSxXQUFXLENBQUMsS0FBSyxtQ0FBSSxJQUFJLENBQUM7WUFDeEMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLEtBQUssNEJBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLFFBQVEsR0FBRyxNQUFBLFdBQVcsQ0FBQyxRQUFRLG1DQUFJLEtBQUssQ0FBQztZQUMvQyxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQ2hDLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUEsaUJBQVMsRUFBQyx5QkFBYSxDQUFDLEVBQ3hCLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsMEJBQWMsQ0FBQyxPQUFPLEVBQ3RCLFFBQVEsRUFDUixLQUFLLENBQ04sQ0FBQztZQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksRUFBRTtLQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FDZCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,29 @@
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 long_1 = __importDefault(require("long"));
7
+ const src_1 = require("../src");
8
+ const constants_1 = require("../src/clients/constants");
9
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
10
+ const subaccount_1 = require("../src/clients/subaccount");
11
+ const validator_client_1 = require("../src/clients/validator-client");
12
+ const constants_2 = require("./constants");
13
+ async function test() {
14
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
15
+ console.log(wallet);
16
+ const client = await validator_client_1.ValidatorClient.connect(constants_1.Network.testnet().validatorConfig);
17
+ console.log('**Client**');
18
+ console.log(client);
19
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
20
+ const tx = await client.post.deposit(subaccount, 0, new long_1.default(10000000));
21
+ console.log('**Deposit Tx**');
22
+ console.log(tx);
23
+ }
24
+ test()
25
+ .then(() => { })
26
+ .catch((error) => {
27
+ console.log(error.message);
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJfZXhhbXBsZV9kZXBvc2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhhbXBsZXMvdHJhbnNmZXJfZXhhbXBsZV9kZXBvc2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLGdDQUF1QztBQUN2Qyx3REFBbUQ7QUFDbkQsdUZBQThEO0FBQzlELDBEQUEyRDtBQUMzRCxzRUFBa0U7QUFDbEUsMkNBQTRDO0FBRTVDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMseUJBQWEsRUFBRSxtQkFBYSxDQUFDLENBQUM7SUFDNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sVUFBVSxHQUFHLDJCQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxjQUFJLENBQUMsUUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNkLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,42 @@
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 tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
7
+ const long_1 = __importDefault(require("long"));
8
+ const constants_1 = require("../__tests__/helpers/constants");
9
+ const src_1 = require("../src");
10
+ const constants_2 = require("../src/clients/constants");
11
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
12
+ const subaccount_1 = require("../src/clients/subaccount");
13
+ const validator_client_1 = require("../src/clients/validator-client");
14
+ const constants_3 = require("./constants");
15
+ async function test() {
16
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_3.TEST_MNEMONIC, src_1.BECH32_PREFIX);
17
+ console.log(wallet);
18
+ const client = await validator_client_1.ValidatorClient.connect(constants_2.Network.testnet().validatorConfig);
19
+ console.log('**Client**');
20
+ console.log(client);
21
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
22
+ const amount = new long_1.default(100000000);
23
+ const msgs = new Promise((resolve) => {
24
+ const msg = client.post.composer.composeMsgSendToken(subaccount.address, constants_1.TEST_RECIPIENT_ADDRESS, client.config.denoms.CHAINTOKEN_DENOM, amount.toString());
25
+ resolve([msg]);
26
+ });
27
+ const totalFee = await client.post.simulate(subaccount, () => msgs, undefined, undefined);
28
+ console.log('**Total Fee**');
29
+ console.log(totalFee);
30
+ const amountAfterFee = amount.sub(long_1.default.fromString(totalFee.amount[0].amount));
31
+ console.log('**Amount after fee**');
32
+ console.log(amountAfterFee);
33
+ const tx = await client.post.sendToken(subaccount, constants_1.TEST_RECIPIENT_ADDRESS, client.config.denoms.CHAINTOKEN_DENOM, amountAfterFee.toString(), false, tendermint_rpc_1.Method.BroadcastTxCommit);
34
+ console.log('**Send**');
35
+ console.log(tx);
36
+ }
37
+ test()
38
+ .then(() => { })
39
+ .catch((error) => {
40
+ console.log(error.message);
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJfZXhhbXBsZV9zZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhhbXBsZXMvdHJhbnNmZXJfZXhhbXBsZV9zZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMkRBQWdEO0FBQ2hELGdEQUF3QjtBQUV4Qiw4REFBd0U7QUFDeEUsZ0NBQXVDO0FBQ3ZDLHdEQUFtRDtBQUNuRCx1RkFBOEQ7QUFDOUQsMERBQTJEO0FBQzNELHNFQUFrRTtBQUNsRSwyQ0FBNEM7QUFFNUMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBVyxDQUFDLFlBQVksQ0FBQyx5QkFBYSxFQUFFLG1CQUFhLENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEIsTUFBTSxVQUFVLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sTUFBTSxHQUFHLElBQUksY0FBSSxDQUFDLFNBQVcsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sSUFBSSxHQUE0QixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzVELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUNsRCxVQUFVLENBQUMsT0FBTyxFQUNsQixrQ0FBc0IsRUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQ3JDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FDbEIsQ0FBQztRQUVGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFGLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTVCLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3BDLFVBQVUsRUFDVixrQ0FBc0IsRUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQ3JDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFDekIsS0FBSyxFQUNMLHVCQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7SUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELElBQUksRUFBRTtLQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FDZCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,29 @@
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 long_1 = __importDefault(require("long"));
7
+ const src_1 = require("../src");
8
+ const constants_1 = require("../src/clients/constants");
9
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
10
+ const subaccount_1 = require("../src/clients/subaccount");
11
+ const validator_client_1 = require("../src/clients/validator-client");
12
+ const constants_2 = require("./constants");
13
+ async function test() {
14
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
15
+ console.log(wallet);
16
+ const client = await validator_client_1.ValidatorClient.connect(constants_1.Network.testnet().validatorConfig);
17
+ console.log('**Client**');
18
+ console.log(client);
19
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
20
+ const tx = await client.post.transfer(subaccount, subaccount.address, 1, 0, new long_1.default(10000000));
21
+ console.log('**Transfer Tx**');
22
+ console.log(tx);
23
+ }
24
+ test()
25
+ .then(() => { })
26
+ .catch((error) => {
27
+ console.log(error.message);
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJfZXhhbXBsZV9zdWJhY2NvdW50X3RyYW5zZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhhbXBsZXMvdHJhbnNmZXJfZXhhbXBsZV9zdWJhY2NvdW50X3RyYW5zZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLGdDQUF1QztBQUN2Qyx3REFBbUQ7QUFDbkQsdUZBQThEO0FBQzlELDBEQUEyRDtBQUMzRCxzRUFBa0U7QUFDbEUsMkNBQTRDO0FBRTVDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMseUJBQWEsRUFBRSxtQkFBYSxDQUFDLENBQUM7SUFDNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sVUFBVSxHQUFHLDJCQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxjQUFJLENBQUMsUUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNkLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,30 @@
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 long_1 = __importDefault(require("long"));
7
+ const src_1 = require("../src");
8
+ const constants_1 = require("../src/clients/constants");
9
+ const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
10
+ const subaccount_1 = require("../src/clients/subaccount");
11
+ const validator_client_1 = require("../src/clients/validator-client");
12
+ const constants_2 = require("./constants");
13
+ // TODO: Test after testnet deploy latest transfer contracts.
14
+ async function test() {
15
+ const wallet = await local_wallet_1.default.fromMnemonic(constants_2.TEST_MNEMONIC, src_1.BECH32_PREFIX);
16
+ console.log(wallet);
17
+ const client = await validator_client_1.ValidatorClient.connect(constants_1.Network.testnet().validatorConfig);
18
+ console.log('**Client**');
19
+ console.log(client);
20
+ const subaccount = subaccount_1.SubaccountInfo.forLocalWallet(wallet, 0);
21
+ const tx = await client.post.withdraw(subaccount, 0, new long_1.default(100000000));
22
+ console.log('**Withdraw Tx**');
23
+ console.log(tx);
24
+ }
25
+ test()
26
+ .then(() => { })
27
+ .catch((error) => {
28
+ console.log(error.message);
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJfZXhhbXBsZV93aXRoZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3RyYW5zZmVyX2V4YW1wbGVfd2l0aGRyYXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFFeEIsZ0NBQXVDO0FBQ3ZDLHdEQUFtRDtBQUNuRCx1RkFBOEQ7QUFDOUQsMERBQTJEO0FBQzNELHNFQUFrRTtBQUNsRSwyQ0FBNEM7QUFFNUMsNkRBQTZEO0FBRTdELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMseUJBQWEsRUFBRSxtQkFBYSxDQUFDLENBQUM7SUFDNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sVUFBVSxHQUFHLDJCQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RCxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxjQUFJLENBQUMsU0FBWSxDQUFDLENBQUMsQ0FBQztJQUM3RSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNkLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMifQ==