@ritbit/v4-client-js 2.4.0 → 2.4.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.
- package/build/cjs/src/clients/composite-client.js +10 -9
- package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/build/esm/src/clients/composite-client.d.ts +3 -3
- package/build/esm/src/clients/composite-client.d.ts.map +1 -1
- package/build/esm/src/clients/composite-client.js +10 -9
- package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +11 -3
- package/.env +0 -1
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -15
- package/.gitleaks.toml +0 -24
- package/.gitleaksignore +0 -1
- package/.nvmrc +0 -1
- package/.prettierignore +0 -3
- package/.prettierrc.json +0 -6
- package/.releaserc +0 -10
- package/.vscode/launch.json +0 -11
- package/__native__/__ios__/v4-native-client.js +0 -251395
- package/__native__/__ios__/v4-native-client.js.map +0 -1
- package/__tests__/clients/composite-client.test.ts +0 -140
- package/__tests__/helpers/baseClients.ts +0 -23
- package/__tests__/helpers/constants.ts +0 -131
- package/__tests__/lib/helpers.test.ts +0 -55
- package/__tests__/lib/util.test.ts +0 -77
- package/__tests__/lib/validation.test.ts +0 -289
- package/__tests__/modules/client/AccountEndpoints.test.ts +0 -236
- package/__tests__/modules/client/FaucetEndpoint.test.ts +0 -14
- package/__tests__/modules/client/MarketsEndpoints.test.ts +0 -84
- package/__tests__/modules/client/Transfers.test.ts +0 -44
- package/__tests__/modules/client/UtilityEndpoints.test.ts +0 -29
- package/__tests__/modules/client/ValidatorGetEndpoints.test.ts +0 -50
- package/__tests__/modules/client/ValidatorPostEndpoints.test.ts +0 -52
- package/__tests__/modules/client/constants.ts +0 -5
- package/__tests__/modules/onboarding.test.ts +0 -66
- package/build/cjs/__tests__/clients/composite-client.test.js +0 -130
- package/build/cjs/__tests__/helpers/baseClients.js +0 -29
- package/build/cjs/__tests__/helpers/constants.js +0 -110
- package/build/cjs/__tests__/lib/helpers.test.js +0 -46
- package/build/cjs/__tests__/lib/util.test.js +0 -67
- package/build/cjs/__tests__/lib/validation.test.js +0 -254
- package/build/cjs/__tests__/modules/client/AccountEndpoints.test.js +0 -171
- package/build/cjs/__tests__/modules/client/FaucetEndpoint.test.js +0 -15
- package/build/cjs/__tests__/modules/client/MarketsEndpoints.test.js +0 -69
- package/build/cjs/__tests__/modules/client/Transfers.test.js +0 -44
- package/build/cjs/__tests__/modules/client/UtilityEndpoints.test.js +0 -28
- package/build/cjs/__tests__/modules/client/ValidatorGetEndpoints.test.js +0 -46
- package/build/cjs/__tests__/modules/client/ValidatorPostEndpoints.test.js +0 -53
- package/build/cjs/__tests__/modules/client/constants.js +0 -7
- package/build/cjs/__tests__/modules/onboarding.test.js +0 -50
- package/build/cjs/examples/account_endpoints.js +0 -129
- package/build/cjs/examples/batch_cancel_orders_example.js +0 -93
- package/build/cjs/examples/composite_example.js +0 -50
- package/build/cjs/examples/constants.js +0 -35
- package/build/cjs/examples/faucet_endpoint.js +0 -23
- package/build/cjs/examples/gov_add_new_market.js +0 -77
- package/build/cjs/examples/human_readable_orders.json +0 -86
- package/build/cjs/examples/human_readable_short_term_orders.json +0 -42
- package/build/cjs/examples/json-encoding.js +0 -32
- package/build/cjs/examples/long_term_order_cancel_example.js +0 -63
- package/build/cjs/examples/markets_endpoints.js +0 -134
- package/build/cjs/examples/native_examples.js +0 -112
- package/build/cjs/examples/noble_example.js +0 -88
- package/build/cjs/examples/optimal_node.js +0 -70
- package/build/cjs/examples/permissioned_keys_example.js +0 -104
- package/build/cjs/examples/raw_orders.json +0 -130
- package/build/cjs/examples/short_term_order_cancel_example.js +0 -54
- package/build/cjs/examples/short_term_order_composite_example.js +0 -68
- package/build/cjs/examples/test.js +0 -50
- package/build/cjs/examples/transfer_example_deposit.js +0 -29
- package/build/cjs/examples/transfer_example_send.js +0 -42
- package/build/cjs/examples/transfer_example_subaccount_transfer.js +0 -29
- package/build/cjs/examples/transfer_example_withdraw.js +0 -30
- package/build/cjs/examples/transfer_example_withdraw_other.js +0 -42
- package/build/cjs/examples/utility_endpoints.js +0 -42
- package/build/cjs/examples/validator_get_example.js +0 -158
- package/build/cjs/examples/validator_post_example.js +0 -76
- package/build/cjs/examples/wallet_address.js +0 -22
- package/build/cjs/examples/websocket_example.js +0 -36
- package/build/cjs/examples/websocket_orderbook_example.js +0 -196
- package/build/esm/__tests__/clients/composite-client.test.d.ts +0 -2
- package/build/esm/__tests__/clients/composite-client.test.d.ts.map +0 -1
- package/build/esm/__tests__/clients/composite-client.test.js +0 -128
- package/build/esm/__tests__/helpers/baseClients.d.ts +0 -19
- package/build/esm/__tests__/helpers/baseClients.d.ts.map +0 -1
- package/build/esm/__tests__/helpers/baseClients.js +0 -22
- package/build/esm/__tests__/helpers/constants.d.ts +0 -19
- package/build/esm/__tests__/helpers/constants.d.ts.map +0 -1
- package/build/esm/__tests__/helpers/constants.js +0 -104
- package/build/esm/__tests__/lib/helpers.test.d.ts +0 -2
- package/build/esm/__tests__/lib/helpers.test.d.ts.map +0 -1
- package/build/esm/__tests__/lib/helpers.test.js +0 -41
- package/build/esm/__tests__/lib/util.test.d.ts +0 -2
- package/build/esm/__tests__/lib/util.test.d.ts.map +0 -1
- package/build/esm/__tests__/lib/util.test.js +0 -65
- package/build/esm/__tests__/lib/validation.test.d.ts +0 -2
- package/build/esm/__tests__/lib/validation.test.d.ts.map +0 -1
- package/build/esm/__tests__/lib/validation.test.js +0 -249
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/AccountEndpoints.test.js +0 -169
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/FaucetEndpoint.test.js +0 -13
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/MarketsEndpoints.test.js +0 -66
- package/build/esm/__tests__/modules/client/Transfers.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/Transfers.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/Transfers.test.js +0 -39
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/UtilityEndpoints.test.js +0 -26
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/ValidatorGetEndpoints.test.js +0 -44
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts +0 -2
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/ValidatorPostEndpoints.test.js +0 -48
- package/build/esm/__tests__/modules/client/constants.d.ts +0 -4
- package/build/esm/__tests__/modules/client/constants.d.ts.map +0 -1
- package/build/esm/__tests__/modules/client/constants.js +0 -4
- package/build/esm/__tests__/modules/onboarding.test.d.ts +0 -2
- package/build/esm/__tests__/modules/onboarding.test.d.ts.map +0 -1
- package/build/esm/__tests__/modules/onboarding.test.js +0 -48
- package/build/esm/examples/account_endpoints.d.ts +0 -5
- package/build/esm/examples/account_endpoints.d.ts.map +0 -1
- package/build/esm/examples/account_endpoints.js +0 -127
- package/build/esm/examples/batch_cancel_orders_example.d.ts +0 -2
- package/build/esm/examples/batch_cancel_orders_example.d.ts.map +0 -1
- package/build/esm/examples/batch_cancel_orders_example.js +0 -88
- package/build/esm/examples/composite_example.d.ts +0 -2
- package/build/esm/examples/composite_example.d.ts.map +0 -1
- package/build/esm/examples/composite_example.js +0 -45
- package/build/esm/examples/constants.d.ts +0 -13
- package/build/esm/examples/constants.d.ts.map +0 -1
- package/build/esm/examples/constants.js +0 -29
- package/build/esm/examples/faucet_endpoint.d.ts +0 -5
- package/build/esm/examples/faucet_endpoint.d.ts.map +0 -1
- package/build/esm/examples/faucet_endpoint.js +0 -21
- package/build/esm/examples/gov_add_new_market.d.ts +0 -2
- package/build/esm/examples/gov_add_new_market.d.ts.map +0 -1
- package/build/esm/examples/gov_add_new_market.js +0 -72
- package/build/esm/examples/human_readable_orders.json +0 -86
- package/build/esm/examples/human_readable_short_term_orders.json +0 -42
- package/build/esm/examples/json-encoding.d.ts +0 -2
- package/build/esm/examples/json-encoding.d.ts.map +0 -1
- package/build/esm/examples/json-encoding.js +0 -27
- package/build/esm/examples/long_term_order_cancel_example.d.ts +0 -2
- package/build/esm/examples/long_term_order_cancel_example.d.ts.map +0 -1
- package/build/esm/examples/long_term_order_cancel_example.js +0 -58
- package/build/esm/examples/markets_endpoints.d.ts +0 -5
- package/build/esm/examples/markets_endpoints.d.ts.map +0 -1
- package/build/esm/examples/markets_endpoints.js +0 -131
- package/build/esm/examples/native_examples.d.ts +0 -2
- package/build/esm/examples/native_examples.d.ts.map +0 -1
- package/build/esm/examples/native_examples.js +0 -110
- package/build/esm/examples/noble_example.d.ts +0 -2
- package/build/esm/examples/noble_example.d.ts.map +0 -1
- package/build/esm/examples/noble_example.js +0 -83
- package/build/esm/examples/optimal_node.d.ts +0 -2
- package/build/esm/examples/optimal_node.d.ts.map +0 -1
- package/build/esm/examples/optimal_node.js +0 -68
- package/build/esm/examples/permissioned_keys_example.d.ts +0 -2
- package/build/esm/examples/permissioned_keys_example.d.ts.map +0 -1
- package/build/esm/examples/permissioned_keys_example.js +0 -99
- package/build/esm/examples/raw_orders.json +0 -130
- package/build/esm/examples/short_term_order_cancel_example.d.ts +0 -2
- package/build/esm/examples/short_term_order_cancel_example.d.ts.map +0 -1
- package/build/esm/examples/short_term_order_cancel_example.js +0 -49
- package/build/esm/examples/short_term_order_composite_example.d.ts +0 -2
- package/build/esm/examples/short_term_order_composite_example.d.ts.map +0 -1
- package/build/esm/examples/short_term_order_composite_example.js +0 -63
- package/build/esm/examples/test.d.ts +0 -2
- package/build/esm/examples/test.d.ts.map +0 -1
- package/build/esm/examples/test.js +0 -45
- package/build/esm/examples/transfer_example_deposit.d.ts +0 -2
- package/build/esm/examples/transfer_example_deposit.d.ts.map +0 -1
- package/build/esm/examples/transfer_example_deposit.js +0 -24
- package/build/esm/examples/transfer_example_send.d.ts +0 -2
- package/build/esm/examples/transfer_example_send.d.ts.map +0 -1
- package/build/esm/examples/transfer_example_send.js +0 -37
- package/build/esm/examples/transfer_example_subaccount_transfer.d.ts +0 -2
- package/build/esm/examples/transfer_example_subaccount_transfer.d.ts.map +0 -1
- package/build/esm/examples/transfer_example_subaccount_transfer.js +0 -24
- package/build/esm/examples/transfer_example_withdraw.d.ts +0 -2
- package/build/esm/examples/transfer_example_withdraw.d.ts.map +0 -1
- package/build/esm/examples/transfer_example_withdraw.js +0 -25
- package/build/esm/examples/transfer_example_withdraw_other.d.ts +0 -2
- package/build/esm/examples/transfer_example_withdraw_other.d.ts.map +0 -1
- package/build/esm/examples/transfer_example_withdraw_other.js +0 -37
- package/build/esm/examples/utility_endpoints.d.ts +0 -5
- package/build/esm/examples/utility_endpoints.d.ts.map +0 -1
- package/build/esm/examples/utility_endpoints.js +0 -40
- package/build/esm/examples/validator_get_example.d.ts +0 -2
- package/build/esm/examples/validator_get_example.d.ts.map +0 -1
- package/build/esm/examples/validator_get_example.js +0 -156
- package/build/esm/examples/validator_post_example.d.ts +0 -2
- package/build/esm/examples/validator_post_example.d.ts.map +0 -1
- package/build/esm/examples/validator_post_example.js +0 -71
- package/build/esm/examples/wallet_address.d.ts +0 -2
- package/build/esm/examples/wallet_address.d.ts.map +0 -1
- package/build/esm/examples/wallet_address.js +0 -17
- package/build/esm/examples/websocket_example.d.ts +0 -2
- package/build/esm/examples/websocket_example.d.ts.map +0 -1
- package/build/esm/examples/websocket_example.js +0 -34
- package/build/esm/examples/websocket_orderbook_example.d.ts +0 -2
- package/build/esm/examples/websocket_orderbook_example.d.ts.map +0 -1
- package/build/esm/examples/websocket_orderbook_example.js +0 -194
- package/commitlint.config.js +0 -8
- package/examples/account_endpoints.ts +0 -129
- package/examples/batch_cancel_orders_example.ts +0 -130
- package/examples/composite_example.ts +0 -65
- package/examples/constants.ts +0 -42
- package/examples/faucet_endpoint.ts +0 -24
- package/examples/gov_add_new_market.json +0 -64
- package/examples/gov_add_new_market.ts +0 -95
- package/examples/human_readable_orders.json +0 -86
- package/examples/human_readable_short_term_orders.json +0 -42
- package/examples/json-encoding.ts +0 -33
- package/examples/long_term_order_cancel_example.ts +0 -87
- package/examples/markets_endpoints.ts +0 -134
- package/examples/native_examples.ts +0 -151
- package/examples/noble_example.ts +0 -107
- package/examples/optimal_node.ts +0 -70
- package/examples/permissioned_keys_example.ts +0 -162
- package/examples/raw_orders.json +0 -130
- package/examples/short_term_order_cancel_example.ts +0 -68
- package/examples/short_term_order_composite_example.ts +0 -80
- package/examples/test.ts +0 -65
- package/examples/transfer_example_deposit.ts +0 -28
- package/examples/transfer_example_send.ts +0 -60
- package/examples/transfer_example_subaccount_transfer.ts +0 -29
- package/examples/transfer_example_withdraw.ts +0 -31
- package/examples/transfer_example_withdraw_other.ts +0 -60
- package/examples/utility_endpoints.ts +0 -42
- package/examples/validator_get_example.ts +0 -160
- package/examples/validator_post_example.ts +0 -81
- package/examples/wallet_address.ts +0 -18
- package/examples/websocket_example.ts +0 -44
- package/examples/websocket_orderbook_example.ts +0 -239
- package/jest.config.js +0 -12
- package/jest.globalSetup.js +0 -5
- package/jest.setup.js +0 -1
- package/ritbit-v4-client-js-2.2.6.tgz +0 -0
- package/scripts/bump_version.sh +0 -16
- package/scripts/generate-cctp-protos.sh +0 -41
- package/scripts/mobile_build_pack.sh +0 -5
- package/scripts/publish-if-not-exists.sh +0 -21
- package/src/clients/composite-client.ts +0 -1469
- package/src/clients/constants.ts +0 -361
- package/src/clients/faucet-client.ts +0 -48
- package/src/clients/helpers/chain-helpers.ts +0 -231
- package/src/clients/helpers/request-helpers.ts +0 -71
- package/src/clients/indexer-client.ts +0 -61
- package/src/clients/lib/axios/axiosRequest.ts +0 -41
- package/src/clients/lib/axios/errors.ts +0 -41
- package/src/clients/lib/axios/index.ts +0 -7
- package/src/clients/lib/axios/types.ts +0 -6
- package/src/clients/lib/cctpProto.ts +0 -4197
- package/src/clients/lib/errors.ts +0 -63
- package/src/clients/lib/registry.ts +0 -93
- package/src/clients/modules/account.ts +0 -438
- package/src/clients/modules/composer.ts +0 -669
- package/src/clients/modules/get.ts +0 -791
- package/src/clients/modules/local-wallet.ts +0 -79
- package/src/clients/modules/markets.ts +0 -76
- package/src/clients/modules/post.ts +0 -1043
- package/src/clients/modules/proto-includes.ts +0 -34
- package/src/clients/modules/rest.ts +0 -40
- package/src/clients/modules/signer.ts +0 -139
- package/src/clients/modules/tendermintClient.ts +0 -168
- package/src/clients/modules/utility.ts +0 -47
- package/src/clients/modules/vault.ts +0 -23
- package/src/clients/native.ts +0 -1689
- package/src/clients/noble-client.ts +0 -108
- package/src/clients/socket-client.ts +0 -331
- package/src/clients/subaccount.ts +0 -57
- package/src/clients/types.ts +0 -191
- package/src/clients/validator-client.ts +0 -106
- package/src/index.ts +0 -19
- package/src/lib/constants.ts +0 -28
- package/src/lib/errors.ts +0 -38
- package/src/lib/helpers.ts +0 -99
- package/src/lib/onboarding.ts +0 -96
- package/src/lib/trading-key-utils.ts +0 -136
- package/src/lib/utils.ts +0 -84
- package/src/lib/validation.ts +0 -197
- package/src/network_optimizer.ts +0 -132
- package/src/types.ts +0 -44
- package/tasks.json +0 -16
- package/tsconfig.base.json +0 -21
- package/tsconfig.cjs.json +0 -10
- package/tsconfig.eslint.json +0 -14
- package/tsconfig.esm.json +0 -11
- package/tsconfig.json +0 -6
- package/webpack.config.js +0 -56
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { EncodeObject } from '@cosmjs/proto-signing';
|
|
2
|
-
import Long from 'long';
|
|
3
|
-
|
|
4
|
-
import { SubaccountInfo } from '../src';
|
|
5
|
-
import { Network } from '../src/clients/constants';
|
|
6
|
-
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import { NobleClient } from '../src/clients/noble-client';
|
|
8
|
-
import { ValidatorClient } from '../src/clients/validator-client';
|
|
9
|
-
import { BECH32_PREFIX, NOBLE_BECH32_PREFIX } from '../src/lib/constants';
|
|
10
|
-
import { sleep } from '../src/lib/utils';
|
|
11
|
-
import { TEST_MNEMONIC } from './constants';
|
|
12
|
-
|
|
13
|
-
async function test(): Promise<void> {
|
|
14
|
-
const dydxClient = await ValidatorClient.connect(Network.testnet().validatorConfig);
|
|
15
|
-
|
|
16
|
-
const dydxWallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
|
|
17
|
-
const nobleWallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, NOBLE_BECH32_PREFIX);
|
|
18
|
-
|
|
19
|
-
const client = new NobleClient('https://rpc.testnet.noble.strange.love', 'Noble example');
|
|
20
|
-
await client.connect(nobleWallet);
|
|
21
|
-
|
|
22
|
-
if (nobleWallet.address === undefined || dydxWallet.address === undefined) {
|
|
23
|
-
throw new Error('Wallet not found');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// IBC to noble
|
|
27
|
-
|
|
28
|
-
const ibcToNobleMsg: EncodeObject = {
|
|
29
|
-
typeUrl: '/ibc.applications.transfer.v1.MsgTransfer',
|
|
30
|
-
value: {
|
|
31
|
-
sourcePort: 'transfer',
|
|
32
|
-
sourceChannel: 'channel-0',
|
|
33
|
-
token: {
|
|
34
|
-
denom: 'ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5',
|
|
35
|
-
amount: '1000000',
|
|
36
|
-
},
|
|
37
|
-
sender: dydxWallet.address,
|
|
38
|
-
receiver: nobleWallet.address,
|
|
39
|
-
timeoutTimestamp: Long.fromNumber(Math.floor(Date.now() / 1000) * 1e9 + 10 * 60 * 1e9),
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const msgs = [ibcToNobleMsg];
|
|
44
|
-
const encodeObjects: Promise<EncodeObject[]> = new Promise((resolve) => resolve(msgs));
|
|
45
|
-
|
|
46
|
-
await dydxClient.post.send(
|
|
47
|
-
SubaccountInfo.forLocalWallet(dydxWallet),
|
|
48
|
-
() => {
|
|
49
|
-
return encodeObjects;
|
|
50
|
-
},
|
|
51
|
-
false,
|
|
52
|
-
undefined,
|
|
53
|
-
undefined,
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
await sleep(30000);
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
const coins = await client.getAccountBalances();
|
|
60
|
-
console.log('Balances');
|
|
61
|
-
console.log(JSON.stringify(coins));
|
|
62
|
-
|
|
63
|
-
// IBC from noble
|
|
64
|
-
|
|
65
|
-
const ibcFromNobleMsg: EncodeObject = {
|
|
66
|
-
typeUrl: '/ibc.applications.transfer.v1.MsgTransfer',
|
|
67
|
-
value: {
|
|
68
|
-
sourcePort: 'transfer',
|
|
69
|
-
sourceChannel: 'channel-21',
|
|
70
|
-
token: {
|
|
71
|
-
denom: 'uusdc',
|
|
72
|
-
amount: coins[0].amount,
|
|
73
|
-
},
|
|
74
|
-
sender: nobleWallet.address,
|
|
75
|
-
receiver: dydxWallet.address,
|
|
76
|
-
timeoutTimestamp: Long.fromNumber(Math.floor(Date.now() / 1000) * 1e9 + 10 * 60 * 1e9),
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
const fee = await client.simulateTransaction([ibcFromNobleMsg]);
|
|
80
|
-
|
|
81
|
-
ibcFromNobleMsg.value.token.amount = (
|
|
82
|
-
parseInt(ibcFromNobleMsg.value.token.amount, 10) -
|
|
83
|
-
Math.floor(parseInt(fee.amount[0].amount, 10) * 1.4)
|
|
84
|
-
).toString();
|
|
85
|
-
|
|
86
|
-
await client.send([ibcFromNobleMsg]);
|
|
87
|
-
} catch (error) {
|
|
88
|
-
console.log(JSON.stringify(error.message));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
await sleep(30000);
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
const coin = await client.getAccountBalance('uusdc');
|
|
95
|
-
console.log('Balance');
|
|
96
|
-
console.log(JSON.stringify(coin));
|
|
97
|
-
} catch (error) {
|
|
98
|
-
console.log(JSON.stringify(error.message));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
test()
|
|
103
|
-
.then(() => {})
|
|
104
|
-
.catch((error) => {
|
|
105
|
-
console.log(error.message);
|
|
106
|
-
console.log(error);
|
|
107
|
-
});
|
package/examples/optimal_node.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { TESTNET_CHAIN_ID } from '../src/clients/constants';
|
|
2
|
-
import { NetworkOptimizer } from '../src/network_optimizer';
|
|
3
|
-
|
|
4
|
-
async function testNodes(): Promise<void> {
|
|
5
|
-
// all valid endpoints
|
|
6
|
-
try {
|
|
7
|
-
const optimizer = new NetworkOptimizer();
|
|
8
|
-
const endpoints = [
|
|
9
|
-
'https://validator.v4testnet1.ritbit.trade',
|
|
10
|
-
'https://ritbit-testnet.nodefleet.org',
|
|
11
|
-
'https://ritbit-testnet-archive.allthatnode.com:26657/XZvMM41hESf8PJrEQiTzbCOMVyFca79R',
|
|
12
|
-
];
|
|
13
|
-
const optimal = await optimizer.findOptimalNode(endpoints, TESTNET_CHAIN_ID);
|
|
14
|
-
console.log(optimal);
|
|
15
|
-
} catch (error) {
|
|
16
|
-
console.log(error.message);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// one invalid endpoint
|
|
20
|
-
try {
|
|
21
|
-
const optimizer = new NetworkOptimizer();
|
|
22
|
-
const endpoints = [
|
|
23
|
-
'https://validator.v4testnet1.ritbit.trade',
|
|
24
|
-
'https://ritbit-testnet.nodefleet.org',
|
|
25
|
-
'https://ritbit-testnet-archive.allthatnode.com:26657/XZvMM41hESf8PJrEQiTzbCOMVyFca79R',
|
|
26
|
-
'https://example.com',
|
|
27
|
-
];
|
|
28
|
-
const optimal = await optimizer.findOptimalNode(endpoints, TESTNET_CHAIN_ID);
|
|
29
|
-
console.log(optimal);
|
|
30
|
-
} catch (error) {
|
|
31
|
-
console.log(error.message);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// all invalid endpoints
|
|
35
|
-
|
|
36
|
-
try {
|
|
37
|
-
const optimizer = new NetworkOptimizer();
|
|
38
|
-
const endpoints = ['https://example.com', 'https://example.org'];
|
|
39
|
-
const optimal = await optimizer.findOptimalNode(endpoints, TESTNET_CHAIN_ID);
|
|
40
|
-
console.log(optimal);
|
|
41
|
-
} catch (error) {
|
|
42
|
-
console.log(error.message);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async function testIndexers(): Promise<void> {
|
|
47
|
-
// all valid endpoints
|
|
48
|
-
try {
|
|
49
|
-
const optimizer = new NetworkOptimizer();
|
|
50
|
-
const endpoints = ['https://indexer.v4testnet2.ritbit.trade'];
|
|
51
|
-
const optimal = await optimizer.findOptimalIndexer(endpoints);
|
|
52
|
-
console.log(optimal);
|
|
53
|
-
} catch (error) {
|
|
54
|
-
console.log(error.message);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// all invalid endpoints
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
const optimizer = new NetworkOptimizer();
|
|
61
|
-
const endpoints = ['https://example.com', 'https://example.org'];
|
|
62
|
-
const optimal = await optimizer.findOptimalIndexer(endpoints);
|
|
63
|
-
console.log(optimal);
|
|
64
|
-
} catch (error) {
|
|
65
|
-
console.log(error.message);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
testNodes().catch(console.log);
|
|
70
|
-
testIndexers().catch(console.log);
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import Long from 'long';
|
|
2
|
-
|
|
3
|
-
import { BECH32_PREFIX } from '../src';
|
|
4
|
-
import { CompositeClient } from '../src/clients/composite-client';
|
|
5
|
-
import {
|
|
6
|
-
Network,
|
|
7
|
-
OrderExecution,
|
|
8
|
-
OrderSide,
|
|
9
|
-
OrderTimeInForce,
|
|
10
|
-
OrderType,
|
|
11
|
-
SelectedGasDenom,
|
|
12
|
-
} from '../src/clients/constants';
|
|
13
|
-
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
14
|
-
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
15
|
-
import {
|
|
16
|
-
createNewRandomChainWallet,
|
|
17
|
-
getAuthorizeNewTradingKeyArguments,
|
|
18
|
-
getAuthorizedTradingKeysMetadata,
|
|
19
|
-
} from '../src/lib/trading-key-utils';
|
|
20
|
-
import { TEST_MNEMONIC, TEST_MNEMONIC_2 } from './constants';
|
|
21
|
-
|
|
22
|
-
async function test(): Promise<void> {
|
|
23
|
-
const wallet1 = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
|
|
24
|
-
const wallet2 = await LocalWallet.fromMnemonic(TEST_MNEMONIC_2, BECH32_PREFIX);
|
|
25
|
-
|
|
26
|
-
const network = Network.testnet();
|
|
27
|
-
const client = await CompositeClient.connect(network);
|
|
28
|
-
client.setSelectedGasDenom(SelectedGasDenom.NATIVE);
|
|
29
|
-
|
|
30
|
-
console.log('**Client**');
|
|
31
|
-
console.log(client);
|
|
32
|
-
|
|
33
|
-
const subaccount1 = SubaccountInfo.forLocalWallet(wallet1, 0);
|
|
34
|
-
const subaccount2 = SubaccountInfo.forLocalWallet(wallet2, 0);
|
|
35
|
-
|
|
36
|
-
// Change second wallet pubkey
|
|
37
|
-
// Add an authenticator to allow wallet2 to place orders
|
|
38
|
-
console.log('** Adding authenticator **');
|
|
39
|
-
// Record authenticator count before adding
|
|
40
|
-
const authsBefore = await client.getAuthenticators(wallet1.address!);
|
|
41
|
-
const beforeCount = authsBefore.accountAuthenticators.length;
|
|
42
|
-
console.log(`Authenticators before: ${beforeCount}`);
|
|
43
|
-
|
|
44
|
-
const apiTradingWalletInfo1 = await createApiTradingWallet(client, subaccount1);
|
|
45
|
-
const apiTradingWallet1 = await LocalWallet.fromPrivateKey(
|
|
46
|
-
apiTradingWalletInfo1.privteKeyHex,
|
|
47
|
-
BECH32_PREFIX,
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
console.log('** Waiting 3 seconds for txn to be confirmed **');
|
|
51
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
52
|
-
|
|
53
|
-
const authsAfter = await client.getAuthenticators(wallet1.address!);
|
|
54
|
-
const afterCount = authsAfter.accountAuthenticators.length;
|
|
55
|
-
console.log(`Authenticators after: ${afterCount}`);
|
|
56
|
-
if (afterCount !== beforeCount + 1) {
|
|
57
|
-
console.error('Authenticator count did not increment by 1.');
|
|
58
|
-
process.exit(1);
|
|
59
|
-
} else {
|
|
60
|
-
console.log('Authenticator count incremented by 1 as expected.');
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const parsedAuths = getAuthorizedTradingKeysMetadata(authsAfter.accountAuthenticators);
|
|
64
|
-
const newAuthenticatorID = parsedAuths.find(
|
|
65
|
-
(a) => apiTradingWallet1.address != null && a.address === apiTradingWallet1.address,
|
|
66
|
-
)?.id;
|
|
67
|
-
if (newAuthenticatorID == null) {
|
|
68
|
-
console.error(
|
|
69
|
-
'Unable to locate the created authenticator. Address: ',
|
|
70
|
-
apiTradingWallet1.address,
|
|
71
|
-
);
|
|
72
|
-
throw new Error('Unable to locate the new authenticator');
|
|
73
|
-
}
|
|
74
|
-
console.log(`New authenticator ID: ${newAuthenticatorID}`);
|
|
75
|
-
|
|
76
|
-
// Placing order using subaccount2 for subaccount1 succeeds
|
|
77
|
-
console.log(
|
|
78
|
-
'** Placing order for subaccount1 with subaccount2 + authenticator, should succeed **',
|
|
79
|
-
);
|
|
80
|
-
await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
|
|
81
|
-
|
|
82
|
-
// Placing order using subaccount2 for subaccount1 should fail
|
|
83
|
-
console.log('** Placing order for subaccount1 with subaccount3 + authenticator, should fail **');
|
|
84
|
-
await placeOrder(client, subaccount2.signingWallet, subaccount1.address, newAuthenticatorID);
|
|
85
|
-
|
|
86
|
-
// Remove authenticator
|
|
87
|
-
console.log('** Removing authenticator **');
|
|
88
|
-
await removeAuthenticator(client, subaccount1, newAuthenticatorID);
|
|
89
|
-
|
|
90
|
-
console.log('** Waiting 3 seconds for txn to be confirmed **');
|
|
91
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
92
|
-
|
|
93
|
-
// Placing an order using subaccount2 will now fail
|
|
94
|
-
console.log('** Placing order with removed authenticator should fail **');
|
|
95
|
-
await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
async function removeAuthenticator(
|
|
99
|
-
client: CompositeClient,
|
|
100
|
-
subaccount: SubaccountInfo,
|
|
101
|
-
id: string,
|
|
102
|
-
): Promise<void> {
|
|
103
|
-
await client.removeAuthenticator(subaccount, id);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async function createApiTradingWallet(
|
|
107
|
-
client: CompositeClient,
|
|
108
|
-
subaccount: SubaccountInfo,
|
|
109
|
-
): Promise<{ privteKeyHex: string; forChainAddress: string }> {
|
|
110
|
-
const wallet = await createNewRandomChainWallet();
|
|
111
|
-
if (wallet == null) {
|
|
112
|
-
throw new Error("Couldn't create wallet");
|
|
113
|
-
}
|
|
114
|
-
const { data, type } = getAuthorizeNewTradingKeyArguments({
|
|
115
|
-
generatedWalletPubKey: wallet?.publicKey,
|
|
116
|
-
});
|
|
117
|
-
console.log('adding', wallet.address);
|
|
118
|
-
await client.addAuthenticator(subaccount, type, data);
|
|
119
|
-
return { privteKeyHex: wallet.privateKeyHex, forChainAddress: subaccount.address };
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
async function placeOrder(
|
|
123
|
-
client: CompositeClient,
|
|
124
|
-
apiTradingWallet: LocalWallet,
|
|
125
|
-
forAccountAddress: string,
|
|
126
|
-
authenticatorId: string,
|
|
127
|
-
): Promise<void> {
|
|
128
|
-
try {
|
|
129
|
-
const side = OrderSide.BUY;
|
|
130
|
-
const price = Number('10000');
|
|
131
|
-
|
|
132
|
-
const clientId = Math.floor(Math.random() * 10000);
|
|
133
|
-
|
|
134
|
-
const tx = await client.placeOrder(
|
|
135
|
-
SubaccountInfo.forPermissionedWallet(apiTradingWallet, forAccountAddress, 0, [
|
|
136
|
-
Long.fromString(authenticatorId),
|
|
137
|
-
]),
|
|
138
|
-
'ETH-USD',
|
|
139
|
-
OrderType.MARKET,
|
|
140
|
-
side,
|
|
141
|
-
price,
|
|
142
|
-
0.01,
|
|
143
|
-
clientId,
|
|
144
|
-
OrderTimeInForce.IOC,
|
|
145
|
-
100,
|
|
146
|
-
OrderExecution.IOC,
|
|
147
|
-
false,
|
|
148
|
-
false,
|
|
149
|
-
);
|
|
150
|
-
console.log('**Order Tx**');
|
|
151
|
-
console.log(Buffer.from(tx.hash).toString('hex'));
|
|
152
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
153
|
-
} catch (error: any) {
|
|
154
|
-
console.log(error.message);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
test()
|
|
159
|
-
.then(() => {})
|
|
160
|
-
.catch((error) => {
|
|
161
|
-
console.log(error.message);
|
|
162
|
-
});
|
package/examples/raw_orders.json
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
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
|
-
]
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { BECH32_PREFIX, OrderFlags, Order_TimeInForce } from '../src';
|
|
2
|
-
import { CompositeClient } from '../src/clients/composite-client';
|
|
3
|
-
import { Network, OrderSide } from '../src/clients/constants';
|
|
4
|
-
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
5
|
-
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
6
|
-
import { randomInt, sleep } from '../src/lib/utils';
|
|
7
|
-
import { TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
8
|
-
|
|
9
|
-
async function test(): Promise<void> {
|
|
10
|
-
const wallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
|
|
11
|
-
console.log(wallet);
|
|
12
|
-
const network = Network.testnet();
|
|
13
|
-
const client = await CompositeClient.connect(network);
|
|
14
|
-
console.log('**Client**');
|
|
15
|
-
console.log(client);
|
|
16
|
-
const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
|
|
17
|
-
|
|
18
|
-
const currentBlock = await client.validatorClient.get.latestBlockHeight();
|
|
19
|
-
const nextValidBlockHeight = currentBlock + 1;
|
|
20
|
-
// Note, you can change this to any number between `next_valid_block_height`
|
|
21
|
-
// to `next_valid_block_height + SHORT_BLOCK_WINDOW`
|
|
22
|
-
const goodTilBlock = nextValidBlockHeight + 10;
|
|
23
|
-
const shortTermOrderClientId = randomInt(MAX_CLIENT_ID);
|
|
24
|
-
try {
|
|
25
|
-
// place a short term order
|
|
26
|
-
const tx = await client.placeShortTermOrder(
|
|
27
|
-
subaccount,
|
|
28
|
-
'ETH-USD',
|
|
29
|
-
OrderSide.SELL,
|
|
30
|
-
40000,
|
|
31
|
-
0.01,
|
|
32
|
-
shortTermOrderClientId,
|
|
33
|
-
goodTilBlock,
|
|
34
|
-
Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED,
|
|
35
|
-
false,
|
|
36
|
-
);
|
|
37
|
-
console.log('**Short Term Order Tx**');
|
|
38
|
-
console.log(tx.hash);
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.log('**Short Term Order Failed**');
|
|
41
|
-
console.log(error.message);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
await sleep(5000); // wait for placeOrder to complete
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
// cancel the short term order
|
|
48
|
-
const tx = await client.cancelOrder(
|
|
49
|
-
subaccount,
|
|
50
|
-
shortTermOrderClientId,
|
|
51
|
-
OrderFlags.SHORT_TERM,
|
|
52
|
-
'ETH-USD',
|
|
53
|
-
goodTilBlock + 10,
|
|
54
|
-
0,
|
|
55
|
-
);
|
|
56
|
-
console.log('**Cancel Short Term Order Tx**');
|
|
57
|
-
console.log(tx);
|
|
58
|
-
} catch (error) {
|
|
59
|
-
console.log('**Cancel Short Term Order Failed**');
|
|
60
|
-
console.log(error.message);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
test()
|
|
65
|
-
.then(() => {})
|
|
66
|
-
.catch((error) => {
|
|
67
|
-
console.log(error.message);
|
|
68
|
-
});
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Order_TimeInForce } from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
|
|
2
|
-
|
|
3
|
-
import { BECH32_PREFIX } from '../src';
|
|
4
|
-
import { CompositeClient } from '../src/clients/composite-client';
|
|
5
|
-
import { Network, OrderExecution, OrderSide } from '../src/clients/constants';
|
|
6
|
-
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
7
|
-
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
8
|
-
import { randomInt } from '../src/lib/utils';
|
|
9
|
-
import { TEST_MNEMONIC } from './constants';
|
|
10
|
-
import ordersParams from './human_readable_short_term_orders.json';
|
|
11
|
-
|
|
12
|
-
async function sleep(ms: number): Promise<void> {
|
|
13
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
async function test(): Promise<void> {
|
|
17
|
-
const wallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
|
|
18
|
-
console.log(wallet);
|
|
19
|
-
const network = Network.testnet();
|
|
20
|
-
const client = await CompositeClient.connect(network);
|
|
21
|
-
console.log('**Client**');
|
|
22
|
-
console.log(client);
|
|
23
|
-
const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
|
|
24
|
-
for (const orderParams of ordersParams) {
|
|
25
|
-
try {
|
|
26
|
-
const side = OrderSide[orderParams.side as keyof typeof OrderSide];
|
|
27
|
-
const price = orderParams.price ?? 1350;
|
|
28
|
-
|
|
29
|
-
const currentBlock = await client.validatorClient.get.latestBlockHeight();
|
|
30
|
-
const nextValidBlockHeight = currentBlock + 1;
|
|
31
|
-
// Note, you can change this to any number between `next_valid_block_height`
|
|
32
|
-
// to `next_valid_block_height + SHORT_BLOCK_WINDOW`
|
|
33
|
-
const goodTilBlock = nextValidBlockHeight + 10;
|
|
34
|
-
|
|
35
|
-
const timeInForce = orderExecutionToTimeInForce(orderParams.timeInForce);
|
|
36
|
-
|
|
37
|
-
// uint32
|
|
38
|
-
const clientId = randomInt(2 ** 32 - 1);
|
|
39
|
-
|
|
40
|
-
const tx = await client.placeShortTermOrder(
|
|
41
|
-
subaccount,
|
|
42
|
-
'ETH-USD',
|
|
43
|
-
side,
|
|
44
|
-
price,
|
|
45
|
-
0.01,
|
|
46
|
-
clientId,
|
|
47
|
-
goodTilBlock,
|
|
48
|
-
timeInForce,
|
|
49
|
-
false,
|
|
50
|
-
);
|
|
51
|
-
console.log('**Order Tx**');
|
|
52
|
-
console.log(tx.hash.toString());
|
|
53
|
-
} catch (error) {
|
|
54
|
-
console.log(error.message);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
await sleep(5000); // wait for placeOrder to complete
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function orderExecutionToTimeInForce(orderExecution: string): Order_TimeInForce {
|
|
62
|
-
switch (orderExecution) {
|
|
63
|
-
case OrderExecution.DEFAULT:
|
|
64
|
-
return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
|
|
65
|
-
case OrderExecution.FOK:
|
|
66
|
-
return Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL;
|
|
67
|
-
case OrderExecution.IOC:
|
|
68
|
-
return Order_TimeInForce.TIME_IN_FORCE_IOC;
|
|
69
|
-
case OrderExecution.POST_ONLY:
|
|
70
|
-
return Order_TimeInForce.TIME_IN_FORCE_POST_ONLY;
|
|
71
|
-
default:
|
|
72
|
-
throw new Error('Unrecognized order execution');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
test()
|
|
77
|
-
.then(() => {})
|
|
78
|
-
.catch((error) => {
|
|
79
|
-
console.log(error.message);
|
|
80
|
-
});
|
package/examples/test.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { BECH32_PREFIX } from '../src';
|
|
2
|
-
import { CompositeClient } from '../src/clients/composite-client';
|
|
3
|
-
import {
|
|
4
|
-
Network,
|
|
5
|
-
OrderExecution,
|
|
6
|
-
OrderSide,
|
|
7
|
-
OrderTimeInForce,
|
|
8
|
-
OrderType,
|
|
9
|
-
} from '../src/clients/constants';
|
|
10
|
-
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
11
|
-
import { SubaccountInfo } from '../src/clients/subaccount';
|
|
12
|
-
import { randomInt } from '../src/lib/utils';
|
|
13
|
-
import { TEST_MNEMONIC, MAX_CLIENT_ID } from './constants';
|
|
14
|
-
import ordersParams from './human_readable_orders.json';
|
|
15
|
-
|
|
16
|
-
async function sleep(ms: number): Promise<void> {
|
|
17
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async function test(): Promise<void> {
|
|
21
|
-
const wallet = await LocalWallet.fromMnemonic(TEST_MNEMONIC, BECH32_PREFIX);
|
|
22
|
-
console.log(wallet);
|
|
23
|
-
const network = Network.testnet();
|
|
24
|
-
const client = await CompositeClient.connect(network);
|
|
25
|
-
console.log('**Client**');
|
|
26
|
-
console.log(client);
|
|
27
|
-
const subaccount = SubaccountInfo.forLocalWallet(wallet, 0);
|
|
28
|
-
for (const orderParams of ordersParams) {
|
|
29
|
-
try {
|
|
30
|
-
const type = OrderType[orderParams.type as keyof typeof OrderType];
|
|
31
|
-
const side = OrderSide[orderParams.side as keyof typeof OrderSide];
|
|
32
|
-
const timeInForceString = orderParams.timeInForce ?? 'GTT';
|
|
33
|
-
const timeInForce = OrderTimeInForce[timeInForceString as keyof typeof OrderTimeInForce];
|
|
34
|
-
const price = orderParams.price ?? 1350;
|
|
35
|
-
const timeInForceSeconds = timeInForce === OrderTimeInForce.GTT ? 60 : 0;
|
|
36
|
-
const postOnly = orderParams.postOnly ?? false;
|
|
37
|
-
const tx = await client.placeOrder(
|
|
38
|
-
subaccount,
|
|
39
|
-
'ETH-USD',
|
|
40
|
-
type,
|
|
41
|
-
side,
|
|
42
|
-
price,
|
|
43
|
-
0.01,
|
|
44
|
-
randomInt(MAX_CLIENT_ID),
|
|
45
|
-
timeInForce,
|
|
46
|
-
timeInForceSeconds,
|
|
47
|
-
OrderExecution.DEFAULT,
|
|
48
|
-
postOnly,
|
|
49
|
-
false,
|
|
50
|
-
);
|
|
51
|
-
console.log('**Order Tx**');
|
|
52
|
-
console.log(tx);
|
|
53
|
-
} catch (error) {
|
|
54
|
-
console.log(error.message);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
await sleep(5000); // wait for placeOrder to complete
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
test()
|
|
62
|
-
.then(() => {})
|
|
63
|
-
.catch((error) => {
|
|
64
|
-
console.log(error.message);
|
|
65
|
-
});
|