@n1xyz/nord-ts 0.0.1 → 0.0.4
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/.eslintrc.js +11 -0
- package/README.md +148 -65
- package/dist/bridge/NordUser.d.ts +78 -0
- package/dist/bridge/NordUser.js +196 -0
- package/dist/bridge/client.d.ts +150 -0
- package/dist/bridge/client.js +394 -0
- package/dist/bridge/const.d.ts +23 -0
- package/dist/bridge/const.js +47 -0
- package/dist/bridge/index.d.ts +5 -0
- package/dist/bridge/index.js +23 -0
- package/dist/bridge/types.d.ts +118 -0
- package/dist/bridge/types.js +16 -0
- package/dist/bridge/utils.d.ts +64 -0
- package/dist/bridge/utils.js +131 -0
- package/dist/client.d.ts +70 -0
- package/dist/client.js +129 -0
- package/dist/const.d.ts +2 -5
- package/dist/const.js +18 -22
- package/dist/constants/endpoints.d.ts +65 -0
- package/dist/constants/endpoints.js +68 -0
- package/dist/gen/common.d.ts +6 -1
- package/dist/gen/common.js +19 -9
- package/dist/gen/nord.d.ts +75 -17
- package/dist/gen/nord.js +987 -423
- package/dist/idl/bridge.d.ts +2 -0
- package/dist/idl/bridge.js +703 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.js +18 -2
- package/dist/models/account.d.ts +58 -0
- package/dist/models/account.js +6 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.js +28 -0
- package/dist/models/market.d.ts +137 -0
- package/dist/models/market.js +6 -0
- package/dist/models/order.d.ts +211 -0
- package/dist/models/order.js +6 -0
- package/dist/models/token.d.ts +50 -0
- package/dist/models/token.js +6 -0
- package/dist/nord/Nord.d.ts +222 -49
- package/dist/nord/Nord.js +290 -278
- package/dist/nord/NordError.d.ts +23 -0
- package/dist/nord/NordError.js +48 -0
- package/dist/nord/NordImpl.d.ts +6 -2
- package/dist/nord/NordImpl.js +21 -1
- package/dist/nord/NordUser.d.ts +208 -42
- package/dist/nord/NordUser.js +389 -157
- package/dist/nord/Subscriber.d.ts +37 -0
- package/dist/nord/Subscriber.js +29 -0
- package/dist/nord/api/actions.d.ts +101 -0
- package/dist/nord/api/actions.js +250 -0
- package/dist/nord/api/core.d.ts +49 -0
- package/dist/nord/api/core.js +121 -0
- package/dist/nord/api/index.d.ts +1 -0
- package/dist/nord/api/index.js +17 -0
- package/dist/nord/api/market.d.ts +36 -0
- package/dist/nord/api/market.js +98 -0
- package/dist/nord/api/metrics.d.ts +67 -0
- package/dist/nord/api/metrics.js +132 -0
- package/dist/nord/api/orderFunctions.d.ts +168 -0
- package/dist/nord/api/orderFunctions.js +133 -0
- package/dist/nord/api/queries.d.ts +81 -0
- package/dist/nord/api/queries.js +187 -0
- package/dist/nord/client/Nord.d.ts +335 -0
- package/dist/nord/client/Nord.js +532 -0
- package/dist/nord/client/NordUser.d.ts +320 -0
- package/dist/nord/client/NordUser.js +701 -0
- package/dist/nord/core.d.ts +48 -0
- package/dist/nord/core.js +97 -0
- package/dist/nord/index.d.ts +9 -2
- package/dist/nord/index.js +30 -6
- package/dist/nord/market.d.ts +36 -0
- package/dist/nord/market.js +90 -0
- package/dist/nord/metrics.d.ts +67 -0
- package/dist/nord/metrics.js +124 -0
- package/dist/nord/models/Subscriber.d.ts +37 -0
- package/dist/nord/models/Subscriber.js +29 -0
- package/dist/nord/queries.d.ts +81 -0
- package/dist/nord/queries.js +181 -0
- package/dist/nord/types.d.ts +88 -0
- package/dist/nord/types.js +2 -0
- package/dist/nord/utils/NordError.d.ts +35 -0
- package/dist/nord/utils/NordError.js +46 -0
- package/dist/nord/websocket.d.ts +49 -0
- package/dist/nord/websocket.js +107 -0
- package/dist/operations/account.d.ts +58 -0
- package/dist/operations/account.js +112 -0
- package/dist/operations/market.d.ts +65 -0
- package/dist/operations/market.js +131 -0
- package/dist/operations/orders.d.ts +57 -0
- package/dist/operations/orders.js +129 -0
- package/dist/solana/NordUser.d.ts +78 -0
- package/dist/solana/NordUser.js +196 -0
- package/dist/solana/client.d.ts +139 -0
- package/dist/solana/client.js +360 -0
- package/dist/solana/const.d.ts +23 -0
- package/dist/solana/const.js +47 -0
- package/dist/solana/index.d.ts +5 -0
- package/dist/solana/index.js +23 -0
- package/dist/solana/types.d.ts +118 -0
- package/dist/solana/types.js +16 -0
- package/dist/solana/utils.d.ts +64 -0
- package/dist/solana/utils.js +131 -0
- package/dist/types/api.d.ts +152 -0
- package/dist/types/api.js +6 -0
- package/dist/types/config.d.ts +34 -0
- package/dist/types/config.js +6 -0
- package/dist/types.d.ts +144 -87
- package/dist/types.js +13 -2
- package/dist/utils/errors.d.ts +96 -0
- package/dist/utils/errors.js +132 -0
- package/dist/utils/http.d.ts +35 -0
- package/dist/utils/http.js +105 -0
- package/dist/utils.d.ts +14 -5
- package/dist/utils.js +26 -7
- package/dist/websocket/NordWebSocketClient.d.ts +71 -0
- package/dist/websocket/NordWebSocketClient.js +343 -0
- package/dist/websocket/client.d.ts +93 -0
- package/dist/websocket/client.js +222 -0
- package/dist/websocket/events.d.ts +19 -0
- package/dist/websocket/events.js +2 -0
- package/dist/websocket/index.d.ts +2 -0
- package/dist/websocket/index.js +5 -0
- package/dist/websocket.d.ts +55 -0
- package/dist/websocket.js +211 -0
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/Nord.html +2 -15
- package/docs/classes/NordUser.html +4 -4
- package/docs/enums/FillMode.html +2 -2
- package/docs/enums/KeyType.html +2 -2
- package/docs/enums/PeakTpsPeriodUnit.html +2 -2
- package/docs/enums/Side.html +2 -2
- package/docs/functions/assert.html +1 -1
- package/docs/functions/bigIntToProtoU128.html +1 -1
- package/docs/functions/checkPubKeyLength.html +1 -1
- package/docs/functions/checkedFetch.html +1 -1
- package/docs/functions/decodeLengthDelimited.html +1 -1
- package/docs/functions/encodeLengthDelimited.html +1 -1
- package/docs/functions/fillModeToProtoFillMode.html +1 -1
- package/docs/functions/findMarket.html +1 -1
- package/docs/functions/findToken.html +1 -1
- package/docs/functions/makeWalletSignFn.html +1 -1
- package/docs/functions/optExpect.html +1 -1
- package/docs/functions/optMap.html +1 -1
- package/docs/functions/optUnwrap.html +1 -1
- package/docs/functions/panic.html +1 -1
- package/docs/functions/signAction.html +1 -1
- package/docs/functions/toScaledU128.html +1 -1
- package/docs/functions/toScaledU64.html +1 -1
- package/docs/interfaces/Account.html +2 -2
- package/docs/interfaces/ActionInfo.html +2 -2
- package/docs/interfaces/ActionQuery.html +2 -2
- package/docs/interfaces/ActionResponse.html +2 -2
- package/docs/interfaces/ActionsExtendedInfo.html +2 -2
- package/docs/interfaces/ActionsQuery.html +2 -2
- package/docs/interfaces/ActionsResponse.html +2 -2
- package/docs/interfaces/AggregateMetrics.html +2 -2
- package/docs/interfaces/BlockQuery.html +2 -2
- package/docs/interfaces/BlockResponse.html +2 -2
- package/docs/interfaces/BlockSummary.html +2 -2
- package/docs/interfaces/BlockSummaryResponse.html +2 -2
- package/docs/interfaces/DeltaEvent.html +2 -2
- package/docs/interfaces/ERC20TokenInfo.html +2 -2
- package/docs/interfaces/Info.html +2 -2
- package/docs/interfaces/Market.html +2 -2
- package/docs/interfaces/MarketStats.html +2 -2
- package/docs/interfaces/MarketsStatsResponse.html +2 -2
- package/docs/interfaces/NordConfig.html +2 -2
- package/docs/interfaces/Order.html +2 -2
- package/docs/interfaces/OrderInfo.html +2 -2
- package/docs/interfaces/PerpMarketStats.html +2 -2
- package/docs/interfaces/RollmanActionExtendedInfo.html +2 -2
- package/docs/interfaces/RollmanActionInfo.html +2 -2
- package/docs/interfaces/RollmanActionResponse.html +2 -2
- package/docs/interfaces/RollmanActionsResponse.html +2 -2
- package/docs/interfaces/RollmanBlockResponse.html +2 -2
- package/docs/interfaces/SubscriberConfig.html +2 -2
- package/docs/interfaces/Token.html +2 -2
- package/docs/interfaces/Trade.html +2 -2
- package/docs/interfaces/Trades.html +2 -2
- package/docs/modules.html +0 -7
- package/docs/types/BigIntValue.html +1 -1
- package/docs/variables/DEBUG_KEYS.html +1 -1
- package/docs/variables/DEFAULT_FUNDING_AMOUNTS.html +1 -1
- package/docs/variables/DEV_CONTRACT_ADDRESS.html +1 -1
- package/docs/variables/DEV_TOKEN_INFOS.html +1 -1
- package/docs/variables/DEV_URL.html +1 -1
- package/docs/variables/ERC20_ABI.html +1 -1
- package/docs/variables/EVM_DEV_URL.html +1 -1
- package/docs/variables/FAUCET_PRIVATE_ADDRESS.html +1 -1
- package/docs/variables/MAX_BUFFER_LEN.html +1 -1
- package/docs/variables/NORD_GETTERS_FACET_ABI.html +1 -1
- package/docs/variables/NORD_RAMP_FACET_ABI.html +1 -1
- package/docs/variables/SESSION_TTL.html +1 -1
- package/docs/variables/WEBSERVER_DEV_URL.html +1 -1
- package/docs/variables/ZERO_DECIMAL.html +1 -1
- package/package.json +10 -12
- package/src/bridge/client.ts +487 -0
- package/src/bridge/const.ts +53 -0
- package/src/bridge/index.ts +7 -0
- package/src/bridge/types.ts +127 -0
- package/src/bridge/utils.ts +140 -0
- package/src/const.ts +20 -25
- package/src/gen/common.ts +27 -10
- package/src/gen/nord.ts +1044 -483
- package/src/idl/bridge.ts +702 -0
- package/src/index.ts +24 -5
- package/src/nord/{actions.ts → api/actions.ts} +33 -37
- package/src/nord/api/core.ts +130 -0
- package/src/nord/api/market.ts +125 -0
- package/src/nord/api/metrics.ts +154 -0
- package/src/nord/api/queries.ts +236 -0
- package/src/nord/client/Nord.ts +652 -0
- package/src/nord/client/NordUser.ts +1105 -0
- package/src/nord/index.ts +16 -2
- package/src/nord/models/Subscriber.ts +57 -0
- package/src/nord/utils/NordError.ts +72 -0
- package/src/types.ts +170 -99
- package/src/utils.ts +40 -19
- package/src/websocket/NordWebSocketClient.ts +432 -0
- package/src/websocket/events.ts +31 -0
- package/src/websocket/index.ts +2 -0
- package/tests/utils.spec.ts +24 -24
- package/docs/classes/Subscriber.html +0 -6
- package/docs/functions/createWebSocketSubscription.html +0 -12
- package/docs/interfaces/OrderbookOrder.html +0 -6
- package/docs/interfaces/OrderbookResponse.html +0 -10
- package/docs/interfaces/TradeInfo.html +0 -20
- package/docs/interfaces/TradesQueryParams.html +0 -10
- package/docs/interfaces/TradesResponse.html +0 -12
- package/src/abis/ERC20_ABI.ts +0 -310
- package/src/abis/NORD_GETTERS_FACET_ABI.ts +0 -192
- package/src/abis/NORD_RAMP_FACET_ABI.ts +0 -141
- package/src/abis/index.ts +0 -3
- package/src/nord/Nord.ts +0 -504
- package/src/nord/NordImpl.ts +0 -8
- package/src/nord/NordUser.ts +0 -469
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { PublicKey } from '@solana/web3.js';
|
|
2
|
+
import { BN } from '@coral-xyz/anchor';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for Solana bridge
|
|
5
|
+
*/
|
|
6
|
+
export interface SolanaBridgeConfig {
|
|
7
|
+
/** Solana RPC URL */
|
|
8
|
+
rpcUrl: string;
|
|
9
|
+
/** Program ID for the bridge program */
|
|
10
|
+
programId: string;
|
|
11
|
+
/** Commitment level for transactions */
|
|
12
|
+
commitment: 'processed' | 'confirmed' | 'finalized';
|
|
13
|
+
/** Token information for supported SPL tokens */
|
|
14
|
+
tokenInfos: SPLTokenInfo[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Information about an SPL token
|
|
18
|
+
*/
|
|
19
|
+
export interface SPLTokenInfo {
|
|
20
|
+
/** Token mint address */
|
|
21
|
+
mint: string;
|
|
22
|
+
/** Token decimals */
|
|
23
|
+
precision: number;
|
|
24
|
+
/** Token ID in the Layer-N system */
|
|
25
|
+
tokenId: number;
|
|
26
|
+
/** Token name */
|
|
27
|
+
name: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parameters for depositing SPL tokens
|
|
31
|
+
*/
|
|
32
|
+
export interface DepositSplParams {
|
|
33
|
+
/** Amount to deposit (in token's smallest unit) */
|
|
34
|
+
amount: BN;
|
|
35
|
+
/** Mint address of the token to deposit */
|
|
36
|
+
mint: PublicKey;
|
|
37
|
+
/** User's token account to deposit from */
|
|
38
|
+
fromAccount: PublicKey;
|
|
39
|
+
/** Bridge's token account to deposit to */
|
|
40
|
+
toAccount: PublicKey;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parameters for withdrawing tokens
|
|
44
|
+
*/
|
|
45
|
+
export interface WithdrawalParams {
|
|
46
|
+
/** Withdrawal claim data */
|
|
47
|
+
claim: WithdrawalClaim;
|
|
48
|
+
/** User's token account to receive tokens */
|
|
49
|
+
toAccount: PublicKey;
|
|
50
|
+
/** Bridge's token account to withdraw from */
|
|
51
|
+
fromAccount: PublicKey;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Withdrawal claim data
|
|
55
|
+
*/
|
|
56
|
+
export interface WithdrawalClaim {
|
|
57
|
+
/** Block ID containing the withdrawal */
|
|
58
|
+
blockId: BN;
|
|
59
|
+
/** Leaf index in the Merkle tree */
|
|
60
|
+
leafIndex: BN;
|
|
61
|
+
/** Amount to withdraw */
|
|
62
|
+
amount: BN;
|
|
63
|
+
/** Recipient address */
|
|
64
|
+
recipient: PublicKey;
|
|
65
|
+
/** Token mint address */
|
|
66
|
+
mint: PublicKey;
|
|
67
|
+
/** Merkle proof for the withdrawal */
|
|
68
|
+
proof: Buffer[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Block facts data structure
|
|
72
|
+
*/
|
|
73
|
+
export interface BlockFacts {
|
|
74
|
+
/** Previous state facts */
|
|
75
|
+
prevStateFacts: StateFacts;
|
|
76
|
+
/** Next state facts */
|
|
77
|
+
nextStateFacts: StateFacts;
|
|
78
|
+
/** Data availability commitment */
|
|
79
|
+
daCommitment: Buffer;
|
|
80
|
+
/** Withdrawal Merkle root */
|
|
81
|
+
withdrawalRoot: Buffer;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* State facts data structure
|
|
85
|
+
*/
|
|
86
|
+
export interface StateFacts {
|
|
87
|
+
/** Application state commitment */
|
|
88
|
+
appStateCommitment: Buffer;
|
|
89
|
+
/** Deposit root */
|
|
90
|
+
depositRoot: Buffer;
|
|
91
|
+
/** Last deposit index */
|
|
92
|
+
lastDepositIndex: BN;
|
|
93
|
+
/** Last action ID */
|
|
94
|
+
lastActionId: BN;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Transfer parameters
|
|
98
|
+
*/
|
|
99
|
+
export interface TransferParams {
|
|
100
|
+
/** User public key */
|
|
101
|
+
user: PublicKey;
|
|
102
|
+
/** Token mint */
|
|
103
|
+
mint: PublicKey;
|
|
104
|
+
/** Amount to transfer */
|
|
105
|
+
amount: BN;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* PDA seed types
|
|
109
|
+
*/
|
|
110
|
+
export declare enum PdaSeedType {
|
|
111
|
+
ContractStorage = "contract_storage",
|
|
112
|
+
AssetWhitelisted = "asset_whitelisted",
|
|
113
|
+
DepositStorage = "deposit_storage",
|
|
114
|
+
BlockStorage = "block_storage",
|
|
115
|
+
WithdrawalNullifier = "withdrawal_nullifier",
|
|
116
|
+
Authority = "authority",
|
|
117
|
+
DaFactStorage = "da_fact_storage"
|
|
118
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PdaSeedType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* PDA seed types
|
|
6
|
+
*/
|
|
7
|
+
var PdaSeedType;
|
|
8
|
+
(function (PdaSeedType) {
|
|
9
|
+
PdaSeedType["ContractStorage"] = "contract_storage";
|
|
10
|
+
PdaSeedType["AssetWhitelisted"] = "asset_whitelisted";
|
|
11
|
+
PdaSeedType["DepositStorage"] = "deposit_storage";
|
|
12
|
+
PdaSeedType["BlockStorage"] = "block_storage";
|
|
13
|
+
PdaSeedType["WithdrawalNullifier"] = "withdrawal_nullifier";
|
|
14
|
+
PdaSeedType["Authority"] = "authority";
|
|
15
|
+
PdaSeedType["DaFactStorage"] = "da_fact_storage";
|
|
16
|
+
})(PdaSeedType || (exports.PdaSeedType = PdaSeedType = {}));
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Keypair, PublicKey } from '@solana/web3.js';
|
|
2
|
+
import { BN } from '@coral-xyz/anchor';
|
|
3
|
+
import { PdaSeedType } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Convert a private key string to a Solana Keypair
|
|
6
|
+
*
|
|
7
|
+
* @param privateKey Private key as base58 string, hex string, or Uint8Array
|
|
8
|
+
* @returns Solana Keypair
|
|
9
|
+
*/
|
|
10
|
+
export declare function keypairFromPrivateKey(privateKey: string | Uint8Array): Keypair;
|
|
11
|
+
/**
|
|
12
|
+
* Create a signing function for Solana transactions
|
|
13
|
+
*
|
|
14
|
+
* @param keypair Solana keypair
|
|
15
|
+
* @returns Signing function
|
|
16
|
+
*/
|
|
17
|
+
export declare function makeSigningFunction(keypair: Keypair): (message: Uint8Array) => Promise<Uint8Array>;
|
|
18
|
+
/**
|
|
19
|
+
* Convert a number to a BN with the specified number of decimals
|
|
20
|
+
*
|
|
21
|
+
* @param amount Amount as a number
|
|
22
|
+
* @param decimals Number of decimals
|
|
23
|
+
* @returns BN representation of the amount
|
|
24
|
+
*/
|
|
25
|
+
export declare function bridgeToBN(amount: number, decimals: number): BN;
|
|
26
|
+
/**
|
|
27
|
+
* Format a BN as a human-readable number with the specified number of decimals
|
|
28
|
+
*
|
|
29
|
+
* @param amount Amount as a BN
|
|
30
|
+
* @param decimals Number of decimals
|
|
31
|
+
* @returns Formatted number
|
|
32
|
+
*/
|
|
33
|
+
export declare function fromBN(amount: BN, decimals: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Derive a PDA (Program Derived Address) for the given seeds
|
|
36
|
+
*
|
|
37
|
+
* @param programId Program ID
|
|
38
|
+
* @param type PDA seed type
|
|
39
|
+
* @param seeds Additional seeds
|
|
40
|
+
* @returns [PDA, bump]
|
|
41
|
+
*/
|
|
42
|
+
export declare function findPda(programId: PublicKey, type: PdaSeedType, ...seeds: (Buffer | PublicKey | string | number)[]): [PublicKey, number];
|
|
43
|
+
/**
|
|
44
|
+
* Convert a buffer to a hex string
|
|
45
|
+
*
|
|
46
|
+
* @param buffer Buffer to convert
|
|
47
|
+
* @returns Hex string
|
|
48
|
+
*/
|
|
49
|
+
export declare function bufferToHex(buffer: Buffer | Uint8Array): string;
|
|
50
|
+
/**
|
|
51
|
+
* Convert a hex string to a buffer
|
|
52
|
+
*
|
|
53
|
+
* @param hex Hex string
|
|
54
|
+
* @returns Buffer
|
|
55
|
+
*/
|
|
56
|
+
export declare function hexToBuffer(hex: string): Buffer;
|
|
57
|
+
/**
|
|
58
|
+
* Shorten a public key for display
|
|
59
|
+
*
|
|
60
|
+
* @param publicKey Public key to shorten
|
|
61
|
+
* @param chars Number of characters to show at the beginning and end
|
|
62
|
+
* @returns Shortened public key
|
|
63
|
+
*/
|
|
64
|
+
export declare function shortenPublicKey(publicKey: PublicKey | string, chars?: number): string;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.keypairFromPrivateKey = keypairFromPrivateKey;
|
|
7
|
+
exports.makeSigningFunction = makeSigningFunction;
|
|
8
|
+
exports.bridgeToBN = bridgeToBN;
|
|
9
|
+
exports.fromBN = fromBN;
|
|
10
|
+
exports.findPda = findPda;
|
|
11
|
+
exports.bufferToHex = bufferToHex;
|
|
12
|
+
exports.hexToBuffer = hexToBuffer;
|
|
13
|
+
exports.shortenPublicKey = shortenPublicKey;
|
|
14
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
15
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
16
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
17
|
+
/**
|
|
18
|
+
* Convert a private key string to a Solana Keypair
|
|
19
|
+
*
|
|
20
|
+
* @param privateKey Private key as base58 string, hex string, or Uint8Array
|
|
21
|
+
* @returns Solana Keypair
|
|
22
|
+
*/
|
|
23
|
+
function keypairFromPrivateKey(privateKey) {
|
|
24
|
+
if (typeof privateKey === 'string') {
|
|
25
|
+
// Check if it's a base58 encoded string
|
|
26
|
+
if (!privateKey.startsWith('0x')) {
|
|
27
|
+
return web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(privateKey));
|
|
28
|
+
}
|
|
29
|
+
// It's a hex string
|
|
30
|
+
const hex = privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey;
|
|
31
|
+
const bytes = new Uint8Array(hex.match(/.{1,2}/g).map((byte) => parseInt(byte, 16)));
|
|
32
|
+
return web3_js_1.Keypair.fromSecretKey(bytes);
|
|
33
|
+
}
|
|
34
|
+
// It's already a Uint8Array
|
|
35
|
+
return web3_js_1.Keypair.fromSecretKey(privateKey);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a signing function for Solana transactions
|
|
39
|
+
*
|
|
40
|
+
* @param keypair Solana keypair
|
|
41
|
+
* @returns Signing function
|
|
42
|
+
*/
|
|
43
|
+
function makeSigningFunction(keypair) {
|
|
44
|
+
return async (message) => {
|
|
45
|
+
// Use the correct API for signing with a Keypair
|
|
46
|
+
const signature = keypair.secretKey.slice(0, 32);
|
|
47
|
+
const publicKey = keypair.publicKey.toBytes();
|
|
48
|
+
// This is a simplified version - in a real implementation, you would use proper signing
|
|
49
|
+
// For now, we're just returning a placeholder signature
|
|
50
|
+
return new Uint8Array([...signature, ...publicKey].slice(0, 64));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convert a number to a BN with the specified number of decimals
|
|
55
|
+
*
|
|
56
|
+
* @param amount Amount as a number
|
|
57
|
+
* @param decimals Number of decimals
|
|
58
|
+
* @returns BN representation of the amount
|
|
59
|
+
*/
|
|
60
|
+
function bridgeToBN(amount, decimals) {
|
|
61
|
+
const factor = Math.pow(10, decimals);
|
|
62
|
+
const amountBN = new anchor_1.BN(Math.floor(amount * factor));
|
|
63
|
+
return amountBN;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Format a BN as a human-readable number with the specified number of decimals
|
|
67
|
+
*
|
|
68
|
+
* @param amount Amount as a BN
|
|
69
|
+
* @param decimals Number of decimals
|
|
70
|
+
* @returns Formatted number
|
|
71
|
+
*/
|
|
72
|
+
function fromBN(amount, decimals) {
|
|
73
|
+
const factor = Math.pow(10, decimals);
|
|
74
|
+
return amount.toNumber() / factor;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Derive a PDA (Program Derived Address) for the given seeds
|
|
78
|
+
*
|
|
79
|
+
* @param programId Program ID
|
|
80
|
+
* @param type PDA seed type
|
|
81
|
+
* @param seeds Additional seeds
|
|
82
|
+
* @returns [PDA, bump]
|
|
83
|
+
*/
|
|
84
|
+
function findPda(programId, type, ...seeds) {
|
|
85
|
+
const seedBuffers = [
|
|
86
|
+
Buffer.from(type),
|
|
87
|
+
...seeds.map((seed) => {
|
|
88
|
+
if (seed instanceof web3_js_1.PublicKey) {
|
|
89
|
+
return seed.toBuffer();
|
|
90
|
+
}
|
|
91
|
+
else if (typeof seed === 'string') {
|
|
92
|
+
return Buffer.from(seed);
|
|
93
|
+
}
|
|
94
|
+
else if (typeof seed === 'number') {
|
|
95
|
+
return Buffer.from([seed]);
|
|
96
|
+
}
|
|
97
|
+
return seed;
|
|
98
|
+
}),
|
|
99
|
+
];
|
|
100
|
+
return web3_js_1.PublicKey.findProgramAddressSync(seedBuffers, programId);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convert a buffer to a hex string
|
|
104
|
+
*
|
|
105
|
+
* @param buffer Buffer to convert
|
|
106
|
+
* @returns Hex string
|
|
107
|
+
*/
|
|
108
|
+
function bufferToHex(buffer) {
|
|
109
|
+
return '0x' + Buffer.from(buffer).toString('hex');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Convert a hex string to a buffer
|
|
113
|
+
*
|
|
114
|
+
* @param hex Hex string
|
|
115
|
+
* @returns Buffer
|
|
116
|
+
*/
|
|
117
|
+
function hexToBuffer(hex) {
|
|
118
|
+
const hexString = hex.startsWith('0x') ? hex.slice(2) : hex;
|
|
119
|
+
return Buffer.from(hexString, 'hex');
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Shorten a public key for display
|
|
123
|
+
*
|
|
124
|
+
* @param publicKey Public key to shorten
|
|
125
|
+
* @param chars Number of characters to show at the beginning and end
|
|
126
|
+
* @returns Shortened public key
|
|
127
|
+
*/
|
|
128
|
+
function shortenPublicKey(publicKey, chars = 4) {
|
|
129
|
+
const key = typeof publicKey === 'string' ? publicKey : publicKey.toBase58();
|
|
130
|
+
return `${key.slice(0, chars)}...${key.slice(-chars)}`;
|
|
131
|
+
}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main Nord client implementation with a flat API structure
|
|
3
|
+
* @module client
|
|
4
|
+
*/
|
|
5
|
+
import { NordClientConfig } from './types/config';
|
|
6
|
+
import { NordClient } from './types/api';
|
|
7
|
+
import { NordError, NordApiError, NordValidationError } from './utils/errors';
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new Nord client instance.
|
|
10
|
+
*
|
|
11
|
+
* @param {NordClientConfig} config - Configuration for the Nord client
|
|
12
|
+
* @returns {NordClient} A configured Nord client instance
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { createNordClient } from '@layer-n/nord-ts';
|
|
17
|
+
*
|
|
18
|
+
* const nord = createNordClient({
|
|
19
|
+
* webServerUrl: 'https://api.nord.io',
|
|
20
|
+
* tokenInfos: [
|
|
21
|
+
* { address: '0x...', precision: 8, tokenId: 1, name: 'BTC' },
|
|
22
|
+
* { address: '0x...', precision: 6, tokenId: 2, name: 'USDC' }
|
|
23
|
+
* ]
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Get market data
|
|
27
|
+
* const orderbook = await nord.getOrderbook('BTCUSDC');
|
|
28
|
+
* console.log(orderbook);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function createNordClient(config: NordClientConfig): NordClient;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a Nord client for a specific user with authentication
|
|
34
|
+
*
|
|
35
|
+
* @param {NordClientConfig} config - Configuration for the Nord client
|
|
36
|
+
* @param {string} address - User's blockchain address
|
|
37
|
+
* @param {Function} signFn - Function to sign messages with the user's wallet
|
|
38
|
+
* @returns {Promise<NordClient>} A configured Nord client instance with user authentication
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { createNordUserClient } from '@layer-n/nord-ts';
|
|
43
|
+
*
|
|
44
|
+
* const userClient = await createNordUserClient(
|
|
45
|
+
* {
|
|
46
|
+
* webServerUrl: 'https://api.nord.io',
|
|
47
|
+
* tokenInfos: [
|
|
48
|
+
* { address: '0x...', precision: 8, tokenId: 1, name: 'BTC' },
|
|
49
|
+
* { address: '0x...', precision: 6, tokenId: 2, name: 'USDC' }
|
|
50
|
+
* ]
|
|
51
|
+
* },
|
|
52
|
+
* '0xYourAddress',
|
|
53
|
+
* async (message) => {
|
|
54
|
+
* // Sign message with wallet
|
|
55
|
+
* return signatureHex;
|
|
56
|
+
* }
|
|
57
|
+
* );
|
|
58
|
+
*
|
|
59
|
+
* // Place an order
|
|
60
|
+
* const order = await userClient.placeOrder({
|
|
61
|
+
* market: 'BTCUSDC',
|
|
62
|
+
* side: 'buy',
|
|
63
|
+
* type: 'limit',
|
|
64
|
+
* size: 1.0,
|
|
65
|
+
* price: 50000.0
|
|
66
|
+
* });
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function createNordUserClient(config: NordClientConfig, address: string, signFn: (message: Uint8Array | string) => Promise<string>): Promise<NordClient>;
|
|
70
|
+
export { NordError, NordApiError, NordValidationError };
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Main Nord client implementation with a flat API structure
|
|
4
|
+
* @module client
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.NordValidationError = exports.NordApiError = exports.NordError = void 0;
|
|
8
|
+
exports.createNordClient = createNordClient;
|
|
9
|
+
exports.createNordUserClient = createNordUserClient;
|
|
10
|
+
const errors_1 = require("./utils/errors");
|
|
11
|
+
Object.defineProperty(exports, "NordError", { enumerable: true, get: function () { return errors_1.NordError; } });
|
|
12
|
+
Object.defineProperty(exports, "NordApiError", { enumerable: true, get: function () { return errors_1.NordApiError; } });
|
|
13
|
+
Object.defineProperty(exports, "NordValidationError", { enumerable: true, get: function () { return errors_1.NordValidationError; } });
|
|
14
|
+
const client_1 = require("./websocket/client");
|
|
15
|
+
const market_1 = require("./operations/market");
|
|
16
|
+
const account_1 = require("./operations/account");
|
|
17
|
+
const orders_1 = require("./operations/orders");
|
|
18
|
+
const metrics_1 = require("./operations/metrics");
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new Nord client instance.
|
|
21
|
+
*
|
|
22
|
+
* @param {NordClientConfig} config - Configuration for the Nord client
|
|
23
|
+
* @returns {NordClient} A configured Nord client instance
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { createNordClient } from '@layer-n/nord-ts';
|
|
28
|
+
*
|
|
29
|
+
* const nord = createNordClient({
|
|
30
|
+
* webServerUrl: 'https://api.nord.io',
|
|
31
|
+
* tokenInfos: [
|
|
32
|
+
* { address: '0x...', precision: 8, tokenId: 1, name: 'BTC' },
|
|
33
|
+
* { address: '0x...', precision: 6, tokenId: 2, name: 'USDC' }
|
|
34
|
+
* ]
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Get market data
|
|
38
|
+
* const orderbook = await nord.getOrderbook('BTCUSDC');
|
|
39
|
+
* console.log(orderbook);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function createNordClient(config) {
|
|
43
|
+
// Validate required config
|
|
44
|
+
if (!config.webServerUrl) {
|
|
45
|
+
throw new errors_1.NordValidationError('webServerUrl is required', 'webServerUrl');
|
|
46
|
+
}
|
|
47
|
+
// Initialize WebSocket client
|
|
48
|
+
const ws = new client_1.WebSocketClient(config.webServerUrl);
|
|
49
|
+
// Initialize operation modules
|
|
50
|
+
const marketOps = new market_1.MarketOperations(config);
|
|
51
|
+
const accountOps = new account_1.AccountOperations(config);
|
|
52
|
+
const orderOps = new orders_1.OrderOperations(config);
|
|
53
|
+
const metricsOps = new metrics_1.MetricsOperations(config);
|
|
54
|
+
// Create and return the client object with flat API
|
|
55
|
+
const client = {
|
|
56
|
+
// Core properties
|
|
57
|
+
config,
|
|
58
|
+
ws,
|
|
59
|
+
// Market operations
|
|
60
|
+
getMarkets: () => marketOps.getMarkets(),
|
|
61
|
+
getOrderbook: (market) => marketOps.getOrderbook(market),
|
|
62
|
+
getTrades: (market, limit) => marketOps.getTrades(market, limit),
|
|
63
|
+
getCandles: (market, timeframe, limit) => marketOps.getCandles(market, timeframe, limit),
|
|
64
|
+
getTimestamp: () => marketOps.getTimestamp(),
|
|
65
|
+
// Account operations
|
|
66
|
+
getAccount: (accountId) => accountOps.getAccount(accountId),
|
|
67
|
+
getAccounts: (address) => accountOps.getAccounts(address),
|
|
68
|
+
getBalance: (accountId, token) => accountOps.getBalance(accountId, token),
|
|
69
|
+
getBalances: (accountId) => accountOps.getBalances(accountId),
|
|
70
|
+
// Order operations
|
|
71
|
+
placeOrder: (params) => orderOps.placeOrder(params),
|
|
72
|
+
cancelOrder: (orderId) => orderOps.cancelOrder(orderId),
|
|
73
|
+
getOrder: (orderId) => orderOps.getOrder(orderId),
|
|
74
|
+
getOrders: (accountId) => orderOps.getOrders(accountId),
|
|
75
|
+
// Namespace for less common operations
|
|
76
|
+
metrics: {
|
|
77
|
+
getAggregate: () => metricsOps.getAggregate(),
|
|
78
|
+
getPeakTps: (timeframe) => metricsOps.getPeakTps(timeframe),
|
|
79
|
+
},
|
|
80
|
+
// WebSocket subscription methods
|
|
81
|
+
subscribeToOrderbook: (market, callback) => ws.subscribeToOrderbook(market, callback),
|
|
82
|
+
subscribeToTrades: (market, callback) => ws.subscribeToTrades(market, callback),
|
|
83
|
+
subscribeToUserUpdates: (accountId, callback) => ws.subscribeToUserUpdates(accountId, callback),
|
|
84
|
+
};
|
|
85
|
+
return client;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Creates a Nord client for a specific user with authentication
|
|
89
|
+
*
|
|
90
|
+
* @param {NordClientConfig} config - Configuration for the Nord client
|
|
91
|
+
* @param {string} address - User's blockchain address
|
|
92
|
+
* @param {Function} signFn - Function to sign messages with the user's wallet
|
|
93
|
+
* @returns {Promise<NordClient>} A configured Nord client instance with user authentication
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* import { createNordUserClient } from '@layer-n/nord-ts';
|
|
98
|
+
*
|
|
99
|
+
* const userClient = await createNordUserClient(
|
|
100
|
+
* {
|
|
101
|
+
* webServerUrl: 'https://api.nord.io',
|
|
102
|
+
* tokenInfos: [
|
|
103
|
+
* { address: '0x...', precision: 8, tokenId: 1, name: 'BTC' },
|
|
104
|
+
* { address: '0x...', precision: 6, tokenId: 2, name: 'USDC' }
|
|
105
|
+
* ]
|
|
106
|
+
* },
|
|
107
|
+
* '0xYourAddress',
|
|
108
|
+
* async (message) => {
|
|
109
|
+
* // Sign message with wallet
|
|
110
|
+
* return signatureHex;
|
|
111
|
+
* }
|
|
112
|
+
* );
|
|
113
|
+
*
|
|
114
|
+
* // Place an order
|
|
115
|
+
* const order = await userClient.placeOrder({
|
|
116
|
+
* market: 'BTCUSDC',
|
|
117
|
+
* side: 'buy',
|
|
118
|
+
* type: 'limit',
|
|
119
|
+
* size: 1.0,
|
|
120
|
+
* price: 50000.0
|
|
121
|
+
* });
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
async function createNordUserClient(config, address, signFn) {
|
|
125
|
+
// Create base client
|
|
126
|
+
const baseClient = createNordClient(config);
|
|
127
|
+
// TODO: Implement user authentication and session creation
|
|
128
|
+
return baseClient;
|
|
129
|
+
}
|
package/dist/const.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TokenInfo } from './types';
|
|
2
2
|
export declare const DEBUG_KEYS: string[];
|
|
3
3
|
export declare const DEV_URL = "http://localhost";
|
|
4
|
-
export declare const EVM_DEV_URL: string;
|
|
5
4
|
export declare const WEBSERVER_DEV_URL: string;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const DEV_TOKEN_INFOS: ERC20TokenInfo[];
|
|
8
|
-
export declare const FAUCET_PRIVATE_ADDRESS = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
5
|
+
export declare const DEV_TOKEN_INFOS: TokenInfo[];
|
|
9
6
|
export declare const DEFAULT_FUNDING_AMOUNTS: {
|
|
10
7
|
[key: string]: [string, number];
|
|
11
8
|
};
|
package/dist/const.js
CHANGED
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_FUNDING_AMOUNTS = exports.
|
|
4
|
-
const
|
|
5
|
-
const WEBSERVER_PORT = "80";
|
|
3
|
+
exports.DEFAULT_FUNDING_AMOUNTS = exports.DEV_TOKEN_INFOS = exports.WEBSERVER_DEV_URL = exports.DEV_URL = exports.DEBUG_KEYS = void 0;
|
|
4
|
+
const WEBSERVER_PORT = '80';
|
|
6
5
|
exports.DEBUG_KEYS = [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
|
|
7
|
+
'0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d',
|
|
8
|
+
'0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a',
|
|
9
|
+
'0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6',
|
|
10
|
+
'0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a',
|
|
11
|
+
'0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba',
|
|
12
|
+
'0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e',
|
|
13
|
+
'0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356',
|
|
14
|
+
'0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97',
|
|
15
|
+
'0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6',
|
|
17
16
|
];
|
|
18
|
-
exports.DEV_URL =
|
|
19
|
-
exports.
|
|
20
|
-
exports.WEBSERVER_DEV_URL = exports.DEV_URL + ":" + WEBSERVER_PORT;
|
|
21
|
-
exports.DEV_CONTRACT_ADDRESS = "0x8a791620dd6260079bf849dc5567adc3f2fdc318";
|
|
17
|
+
exports.DEV_URL = 'http://localhost';
|
|
18
|
+
exports.WEBSERVER_DEV_URL = exports.DEV_URL + ':' + WEBSERVER_PORT;
|
|
22
19
|
exports.DEV_TOKEN_INFOS = [
|
|
23
20
|
{
|
|
24
|
-
address:
|
|
21
|
+
address: '0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae',
|
|
25
22
|
precision: 6,
|
|
26
23
|
tokenId: 0,
|
|
27
|
-
name:
|
|
24
|
+
name: 'usdc',
|
|
28
25
|
},
|
|
29
26
|
];
|
|
30
|
-
exports.FAUCET_PRIVATE_ADDRESS = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
31
27
|
exports.DEFAULT_FUNDING_AMOUNTS = {
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
SOL: ['0.2', 0],
|
|
29
|
+
'0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae': ['10000', 6],
|
|
34
30
|
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API endpoint constants
|
|
3
|
+
* @module constants/endpoints
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* API endpoints
|
|
7
|
+
*/
|
|
8
|
+
export declare const ENDPOINTS: {
|
|
9
|
+
/**
|
|
10
|
+
* Markets endpoint
|
|
11
|
+
*/
|
|
12
|
+
MARKETS: string;
|
|
13
|
+
/**
|
|
14
|
+
* Orderbook endpoint
|
|
15
|
+
*/
|
|
16
|
+
ORDERBOOK: string;
|
|
17
|
+
/**
|
|
18
|
+
* Trades endpoint
|
|
19
|
+
*/
|
|
20
|
+
TRADES: string;
|
|
21
|
+
/**
|
|
22
|
+
* Candles endpoint
|
|
23
|
+
*/
|
|
24
|
+
CANDLES: string;
|
|
25
|
+
/**
|
|
26
|
+
* Timestamp endpoint
|
|
27
|
+
*/
|
|
28
|
+
TIMESTAMP: string;
|
|
29
|
+
/**
|
|
30
|
+
* Account endpoint
|
|
31
|
+
*/
|
|
32
|
+
ACCOUNT: string;
|
|
33
|
+
/**
|
|
34
|
+
* Accounts endpoint
|
|
35
|
+
*/
|
|
36
|
+
ACCOUNTS: string;
|
|
37
|
+
/**
|
|
38
|
+
* Balance endpoint
|
|
39
|
+
*/
|
|
40
|
+
BALANCE: string;
|
|
41
|
+
/**
|
|
42
|
+
* Balances endpoint
|
|
43
|
+
*/
|
|
44
|
+
BALANCES: string;
|
|
45
|
+
/**
|
|
46
|
+
* Order endpoint
|
|
47
|
+
*/
|
|
48
|
+
ORDER: string;
|
|
49
|
+
/**
|
|
50
|
+
* Orders endpoint
|
|
51
|
+
*/
|
|
52
|
+
ORDERS: string;
|
|
53
|
+
/**
|
|
54
|
+
* Place order endpoint
|
|
55
|
+
*/
|
|
56
|
+
PLACE_ORDER: string;
|
|
57
|
+
/**
|
|
58
|
+
* Cancel order endpoint
|
|
59
|
+
*/
|
|
60
|
+
CANCEL_ORDER: string;
|
|
61
|
+
/**
|
|
62
|
+
* Metrics endpoint
|
|
63
|
+
*/
|
|
64
|
+
METRICS: string;
|
|
65
|
+
};
|