@dydxprotocol/v4-client-js 3.0.2 → 3.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.
@@ -3,26 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const encoding_1 = require("@cosmjs/encoding");
7
- const order_1 = require("@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order");
6
+ const long_1 = __importDefault(require("long"));
8
7
  const src_1 = require("../src");
9
8
  const composite_client_1 = require("../src/clients/composite-client");
10
9
  const constants_1 = require("../src/clients/constants");
11
10
  const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
12
11
  const subaccount_1 = require("../src/clients/subaccount");
12
+ const trading_key_utils_1 = require("../src/lib/trading-key-utils");
13
13
  const constants_2 = require("./constants");
14
14
  async function test() {
15
+ var _a;
15
16
  const wallet1 = await local_wallet_1.default.fromMnemonic(constants_2.DYDX_TEST_MNEMONIC, src_1.BECH32_PREFIX);
16
17
  const wallet2 = await local_wallet_1.default.fromMnemonic(constants_2.DYDX_TEST_MNEMONIC_2, src_1.BECH32_PREFIX);
17
- const wallet3 = await local_wallet_1.default.fromMnemonic(constants_2.DYDX_TEST_MNEMONIC_3, src_1.BECH32_PREFIX);
18
- const network = constants_1.Network.staging();
18
+ const network = constants_1.Network.testnet();
19
19
  const client = await composite_client_1.CompositeClient.connect(network);
20
20
  client.setSelectedGasDenom(constants_1.SelectedGasDenom.NATIVE);
21
21
  console.log('**Client**');
22
22
  console.log(client);
23
23
  const subaccount1 = subaccount_1.SubaccountInfo.forLocalWallet(wallet1, 0);
24
24
  const subaccount2 = subaccount_1.SubaccountInfo.forLocalWallet(wallet2, 0);
25
- const subaccount3 = subaccount_1.SubaccountInfo.forLocalWallet(wallet3, 0);
26
25
  // Change second wallet pubkey
27
26
  // Add an authenticator to allow wallet2 to place orders
28
27
  console.log('** Adding authenticator **');
@@ -30,7 +29,8 @@ async function test() {
30
29
  const authsBefore = await client.getAuthenticators(wallet1.address);
31
30
  const beforeCount = authsBefore.accountAuthenticators.length;
32
31
  console.log(`Authenticators before: ${beforeCount}`);
33
- await addTestAuthenticator(client, subaccount1, wallet2.pubKey.value);
32
+ const apiTradingWalletInfo1 = await createApiTradingWallet(client, subaccount1);
33
+ const apiTradingWallet1 = await local_wallet_1.default.fromPrivateKey(apiTradingWalletInfo1.privteKeyHex, src_1.BECH32_PREFIX);
34
34
  console.log('** Waiting 3 seconds for txn to be confirmed **');
35
35
  await new Promise((resolve) => setTimeout(resolve, 3000));
36
36
  const authsAfter = await client.getAuthenticators(wallet1.address);
@@ -43,16 +43,19 @@ async function test() {
43
43
  else {
44
44
  console.log('Authenticator count incremented by 1 as expected.');
45
45
  }
46
- // Last element in authenticators array is the most recently created
47
- const lastElement = authsAfter.accountAuthenticators.length - 1;
48
- const newAuthenticatorID = authsAfter.accountAuthenticators[lastElement].id;
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
+ }
49
52
  console.log(`New authenticator ID: ${newAuthenticatorID}`);
50
53
  // Placing order using subaccount2 for subaccount1 succeeds
51
54
  console.log('** Placing order for subaccount1 with subaccount2 + authenticator, should succeed **');
52
- await placeOrder(client, subaccount2, subaccount1, newAuthenticatorID);
53
- // Placing order using subaccount3 for subaccount1 should fail
55
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
56
+ // Placing order using subaccount2 for subaccount1 should fail
54
57
  console.log('** Placing order for subaccount1 with subaccount3 + authenticator, should fail **');
55
- await placeOrder(client, subaccount3, subaccount1, newAuthenticatorID);
58
+ await placeOrder(client, subaccount2.signingWallet, subaccount1.address, newAuthenticatorID);
56
59
  // Remove authenticator
57
60
  console.log('** Removing authenticator **');
58
61
  await removeAuthenticator(client, subaccount1, newAuthenticatorID);
@@ -60,51 +63,34 @@ async function test() {
60
63
  await new Promise((resolve) => setTimeout(resolve, 3000));
61
64
  // Placing an order using subaccount2 will now fail
62
65
  console.log('** Placing order with removed authenticator should fail **');
63
- await placeOrder(client, subaccount2, subaccount1, newAuthenticatorID);
66
+ await placeOrder(client, apiTradingWallet1, subaccount1.address, newAuthenticatorID);
64
67
  }
65
68
  async function removeAuthenticator(client, subaccount, id) {
66
- await client.removeAuthenticator(subaccount, id.toString());
69
+ await client.removeAuthenticator(subaccount, id);
67
70
  }
68
- async function addTestAuthenticator(client, subaccount, authedPubKey) {
69
- const msgType = (s) => (0, encoding_1.toBase64)(new TextEncoder().encode(s));
70
- const anyOfSubAuth = [
71
- {
72
- type: constants_1.AuthenticatorType.MESSAGE_FILTER,
73
- config: msgType('/dydxprotocol.clob.MsgPlaceOrder'),
74
- },
75
- {
76
- type: constants_1.AuthenticatorType.MESSAGE_FILTER,
77
- config: msgType('/dydxprotocol.sending.MsgCreateTransfer'),
78
- },
79
- ];
80
- // Nested AnyOf config must be base64(JSON([...])) as on-chain expects []byte
81
- const anyOfConfigB64 = (0, encoding_1.toBase64)(new TextEncoder().encode(JSON.stringify(anyOfSubAuth)));
82
- const subAuth = [
83
- {
84
- type: constants_1.AuthenticatorType.SIGNATURE_VERIFICATION,
85
- config: authedPubKey,
86
- },
87
- {
88
- type: constants_1.AuthenticatorType.ANY_OF,
89
- config: anyOfConfigB64,
90
- },
91
- ];
92
- const jsonString = JSON.stringify(subAuth);
93
- const encodedData = new TextEncoder().encode(jsonString);
94
- await client.addAuthenticator(subaccount, constants_1.AuthenticatorType.ALL_OF, encodedData);
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 };
95
82
  }
96
- async function placeOrder(client, fromAccount, forAccount, authenticatorId) {
83
+ async function placeOrder(client, apiTradingWallet, forAccountAddress, authenticatorId) {
97
84
  try {
98
85
  const side = constants_1.OrderSide.BUY;
99
- const price = Number('1000');
100
- const currentBlock = await client.validatorClient.get.latestBlockHeight();
101
- const nextValidBlockHeight = currentBlock + 5;
102
- const goodTilBlock = nextValidBlockHeight + 10;
103
- const timeInForce = order_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
86
+ const price = Number('10000');
104
87
  const clientId = Math.floor(Math.random() * 10000);
105
- const tx = await client.placeShortTermOrder(subaccount_1.SubaccountInfo.forPermissionedWallet(fromAccount.signingWallet, forAccount.address, forAccount.subaccountNumber, [authenticatorId]), 'ETH-USD', side, price, 0.01, clientId, goodTilBlock, timeInForce, false, undefined);
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);
106
91
  console.log('**Order Tx**');
107
92
  console.log(Buffer.from(tx.hash).toString('hex'));
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
94
  }
109
95
  catch (error) {
110
96
  console.log(error.message);
@@ -115,4 +101,4 @@ test()
115
101
  .catch((error) => {
116
102
  console.log(error.message);
117
103
  });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbmVkX2tleXNfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Blcm1pc3Npb25lZF9rZXlzX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQ0FBNEM7QUFDNUMsc0ZBQStGO0FBRS9GLGdDQUF1QztBQUN2QyxzRUFBa0U7QUFDbEUsd0RBQW1HO0FBQ25HLHVGQUE4RDtBQUM5RCwwREFBMkQ7QUFDM0QsMkNBQTZGO0FBRTdGLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsOEJBQWtCLEVBQUUsbUJBQWEsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sT0FBTyxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsZ0NBQW9CLEVBQUUsbUJBQWEsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sT0FBTyxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsZ0NBQW9CLEVBQUUsbUJBQWEsQ0FBQyxDQUFDO0lBRXBGLE1BQU0sT0FBTyxHQUFHLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsNEJBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sV0FBVyxHQUFHLDJCQUFjLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxNQUFNLFdBQVcsR0FBRywyQkFBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUQsTUFBTSxXQUFXLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTlELDhCQUE4QjtJQUM5Qix3REFBd0Q7SUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzFDLDJDQUEyQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBUSxDQUFDLENBQUM7SUFDckUsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztJQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sb0JBQW9CLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXZFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUMvRCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFMUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQVEsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRCxJQUFJLFVBQVUsS0FBSyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELG9FQUFvRTtJQUNwRSxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoRSxNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFNUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBRTNELDJEQUEyRDtJQUMzRCxPQUFPLENBQUMsR0FBRyxDQUNULHNGQUFzRixDQUN2RixDQUFDO0lBQ0YsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUV2RSw4REFBOEQ7SUFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFdkUsdUJBQXVCO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUM1QyxNQUFNLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUVuRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFDL0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRTFELG1EQUFtRDtJQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFDMUUsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUNoQyxNQUF1QixFQUN2QixVQUEwQixFQUMxQixFQUFRO0lBRVIsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxLQUFLLFVBQVUsb0JBQW9CLENBQ2pDLE1BQXVCLEVBQ3ZCLFVBQTBCLEVBQzFCLFlBQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFVLEVBQUUsQ0FBQyxJQUFBLG1CQUFRLEVBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxNQUFNLFlBQVksR0FBRztRQUNuQjtZQUNFLElBQUksRUFBRSw2QkFBaUIsQ0FBQyxjQUFjO1lBQ3RDLE1BQU0sRUFBRSxPQUFPLENBQUMsa0NBQWtDLENBQUM7U0FDcEQ7UUFDRDtZQUNFLElBQUksRUFBRSw2QkFBaUIsQ0FBQyxjQUFjO1lBQ3RDLE1BQU0sRUFBRSxPQUFPLENBQUMseUNBQXlDLENBQUM7U0FDM0Q7S0FDRixDQUFDO0lBRUYsNkVBQTZFO0lBQzdFLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQVEsRUFBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RixNQUFNLE9BQU8sR0FBRztRQUNkO1lBQ0UsSUFBSSxFQUFFLDZCQUFpQixDQUFDLHNCQUFzQjtZQUM5QyxNQUFNLEVBQUUsWUFBWTtTQUNyQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLDZCQUFpQixDQUFDLE1BQU07WUFDOUIsTUFBTSxFQUFFLGNBQWM7U0FDdkI7S0FDRixDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6RCxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsNkJBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxLQUFLLFVBQVUsVUFBVSxDQUN2QixNQUF1QixFQUN2QixXQUEyQixFQUMzQixVQUEwQixFQUMxQixlQUFxQjtJQUVyQixJQUFJLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxxQkFBUyxDQUFDLEdBQUcsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFFLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBRyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFL0MsTUFBTSxXQUFXLEdBQUcseUJBQWlCLENBQUMseUJBQXlCLENBQUM7UUFFaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFbkQsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQ3pDLDJCQUFjLENBQUMscUJBQXFCLENBQ2xDLFdBQVcsQ0FBQyxhQUFhLEVBQ3pCLFVBQVUsQ0FBQyxPQUFPLEVBQ2xCLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDM0IsQ0FBQyxlQUFlLENBQUMsQ0FDbEIsRUFDRCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsQ0FDVixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUU7S0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQ2QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyJ9
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbmVkX2tleXNfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V4YW1wbGVzL3Blcm1pc3Npb25lZF9rZXlzX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFFeEIsZ0NBQXVDO0FBQ3ZDLHNFQUFrRTtBQUNsRSx3REFPa0M7QUFDbEMsdUZBQThEO0FBQzlELDBEQUEyRDtBQUMzRCxvRUFJc0M7QUFDdEMsMkNBQXVFO0FBRXZFLEtBQUssVUFBVSxJQUFJOztJQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLDhCQUFrQixFQUFFLG1CQUFhLENBQUMsQ0FBQztJQUNsRixNQUFNLE9BQU8sR0FBRyxNQUFNLHNCQUFXLENBQUMsWUFBWSxDQUFDLGdDQUFvQixFQUFFLG1CQUFhLENBQUMsQ0FBQztJQUVwRixNQUFNLE9BQU8sR0FBRyxtQkFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLDRCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQixNQUFNLFdBQVcsR0FBRywyQkFBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUQsTUFBTSxXQUFXLEdBQUcsMkJBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTlELDhCQUE4QjtJQUM5Qix3REFBd0Q7SUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzFDLDJDQUEyQztJQUMzQyxN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
@@ -39,12 +39,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.NetworkOptimizer = exports.ByteArrayEncoding = exports.encodeJson = exports.ValidatorClient = exports.SubaccountInfo = exports.SubaccountClient = exports.SocketClient = exports.NobleClient = exports.LocalWallet = exports.IndexerClient = exports.FaucetClient = exports.CompositeClient = exports.validation = exports.utils = exports.onboarding = exports.helpers = void 0;
42
+ exports.NetworkOptimizer = exports.ByteArrayEncoding = exports.encodeJson = exports.ValidatorClient = exports.SubaccountInfo = exports.SubaccountClient = exports.SocketClient = exports.NobleClient = exports.LocalWallet = exports.IndexerClient = exports.FaucetClient = exports.CompositeClient = exports.validation = exports.utils = exports.tradingKeyUtils = exports.onboarding = exports.helpers = void 0;
43
43
  // Types.
44
44
  __exportStar(require("./types"), exports);
45
45
  // Utility functions.
46
46
  exports.helpers = __importStar(require("./lib/helpers"));
47
47
  exports.onboarding = __importStar(require("./lib/onboarding"));
48
+ exports.tradingKeyUtils = __importStar(require("./lib/trading-key-utils"));
48
49
  exports.utils = __importStar(require("./lib/utils"));
49
50
  exports.validation = __importStar(require("./lib/validation"));
50
51
  var composite_client_1 = require("./clients/composite-client");
@@ -69,4 +70,4 @@ Object.defineProperty(exports, "encodeJson", { enumerable: true, get: function (
69
70
  Object.defineProperty(exports, "ByteArrayEncoding", { enumerable: true, get: function () { return helpers_1.ByteArrayEncoding; } });
70
71
  var network_optimizer_1 = require("./network_optimizer");
71
72
  Object.defineProperty(exports, "NetworkOptimizer", { enumerable: true, get: function () { return network_optimizer_1.NetworkOptimizer; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIseURBQXlDO0FBQ3pDLCtEQUErQztBQUMvQyxxREFBcUM7QUFDckMsK0RBQStDO0FBRS9DLCtEQUE2RDtBQUFwRCxtSEFBQSxlQUFlLE9BQUE7QUFDeEIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiwyREFBeUQ7QUFBaEQsK0dBQUEsYUFBYSxPQUFBO0FBQ3RCLCtEQUF3RTtBQUEvRCw0SEFBQSxPQUFPLE9BQWU7QUFDL0IsdURBQXFEO0FBQTVDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQix5REFBdUQ7QUFBOUMsNkdBQUEsWUFBWSxPQUFBO0FBQ3JCLG1EQUEwRjtBQUFqRiw4R0FBQSxjQUFjLE9BQW9CO0FBQUUsNEdBQUEsY0FBYyxPQUFBO0FBQzNELCtEQUE2RDtBQUFwRCxtSEFBQSxlQUFlLE9BQUE7QUFDeEIseUNBQThEO0FBQXJELHFHQUFBLFVBQVUsT0FBQTtBQUFFLDRHQUFBLGlCQUFpQixPQUFBO0FBQ3RDLHlEQUF1RDtBQUE5QyxxSEFBQSxnQkFBZ0IsT0FBQSJ9
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIseURBQXlDO0FBQ3pDLCtEQUErQztBQUMvQywyRUFBMkQ7QUFDM0QscURBQXFDO0FBQ3JDLCtEQUErQztBQUUvQywrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUF1RDtBQUE5Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIsMkRBQXlEO0FBQWhELCtHQUFBLGFBQWEsT0FBQTtBQUN0QiwrREFBd0U7QUFBL0QsNEhBQUEsT0FBTyxPQUFlO0FBQy9CLHVEQUFxRDtBQUE1QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQixtREFBMEY7QUFBakYsOEdBQUEsY0FBYyxPQUFvQjtBQUFFLDRHQUFBLGNBQWMsT0FBQTtBQUMzRCwrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlDQUE4RDtBQUFyRCxxR0FBQSxVQUFVLE9BQUE7QUFBRSw0R0FBQSxpQkFBaUIsT0FBQTtBQUN0Qyx5REFBdUQ7QUFBOUMscUhBQUEsZ0JBQWdCLE9BQUEifQ==
@@ -0,0 +1,108 @@
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.getAuthorizedTradingKeysMetadata = exports.getAuthorizeNewTradingKeyArguments = exports.createNewRandomDydxWallet = void 0;
7
+ const encoding_1 = require("@cosmjs/encoding");
8
+ const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
9
+ const bip39_1 = require("@scure/bip39");
10
+ const english_1 = require("@scure/bip39/wordlists/english");
11
+ const constants_1 = require("../clients/constants");
12
+ const local_wallet_1 = __importDefault(require("../clients/modules/local-wallet"));
13
+ const constants_2 = require("./constants");
14
+ const onboarding_1 = require("./onboarding");
15
+ const createNewRandomDydxWallet = async () => {
16
+ const mnemonic = (0, bip39_1.generateMnemonic)(english_1.wordlist, 128);
17
+ const { privateKey: privateKeyRaw } = (0, onboarding_1.deriveHDKeyFromMnemonic)(mnemonic);
18
+ const wallet = await local_wallet_1.default.fromMnemonic(mnemonic, constants_2.BECH32_PREFIX);
19
+ const privateKeyHex = privateKeyRaw != null ? `0x${(0, encoding_1.toHex)(privateKeyRaw)}` : undefined;
20
+ const publicKey = wallet.pubKey;
21
+ const address = wallet.address;
22
+ if (privateKeyHex == null || publicKey == null || address == null) {
23
+ return undefined;
24
+ }
25
+ return {
26
+ // 12 english words
27
+ mnemonic,
28
+ // toHex of the raw private key bits
29
+ privateKeyHex,
30
+ // base64, not hex
31
+ publicKey: publicKey.value,
32
+ // valid dydx address corresponding to the key pair
33
+ address,
34
+ };
35
+ };
36
+ exports.createNewRandomDydxWallet = createNewRandomDydxWallet;
37
+ // arguments to authorize a given wallet public key to trade on behalf of the user.
38
+ // allows place order, cancel order, batch cancel on subaccount 0 only.
39
+ const getAuthorizeNewTradingKeyArguments = ({ generatedWalletPubKey, }) => {
40
+ const wrapAndEncode64 = (s) => (0, encoding_1.toBase64)(new TextEncoder().encode(s));
41
+ const messageFilterSubAuth = [
42
+ {
43
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
44
+ config: wrapAndEncode64(constants_1.TYPE_URL_MSG_PLACE_ORDER),
45
+ },
46
+ {
47
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
48
+ config: wrapAndEncode64(constants_1.TYPE_URL_MSG_CANCEL_ORDER),
49
+ },
50
+ {
51
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
52
+ config: wrapAndEncode64(constants_1.TYPE_URL_BATCH_CANCEL),
53
+ },
54
+ ];
55
+ const anyOfMessageFilterConfigB64 = wrapAndEncode64(JSON.stringify(messageFilterSubAuth));
56
+ const subAuth = [
57
+ {
58
+ type: constants_1.AuthenticatorType.SIGNATURE_VERIFICATION,
59
+ config: generatedWalletPubKey,
60
+ },
61
+ {
62
+ type: constants_1.AuthenticatorType.ANY_OF,
63
+ config: anyOfMessageFilterConfigB64,
64
+ },
65
+ // we limit to cross markets to make it slightly harder to drain user funds on low liquidity markets with trading keys
66
+ // could undo this in the future if people are angry about it
67
+ {
68
+ type: constants_1.AuthenticatorType.SUBACCOUNT_FILTER,
69
+ config: wrapAndEncode64('0'),
70
+ },
71
+ ];
72
+ const jsonString = JSON.stringify(subAuth);
73
+ const encodedData = new TextEncoder().encode(jsonString);
74
+ const topLevelType = constants_1.AuthenticatorType.ALL_OF;
75
+ return {
76
+ type: topLevelType,
77
+ data: encodedData,
78
+ };
79
+ };
80
+ exports.getAuthorizeNewTradingKeyArguments = getAuthorizeNewTradingKeyArguments;
81
+ const isTruthy = (n) => Boolean(n);
82
+ // just parses out keys that match the format created in getAuthorizeNewTradingKeyArguments
83
+ const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
84
+ return authorizedKeys
85
+ .map(({ config, id, type }) => {
86
+ var _a;
87
+ if (type !== constants_1.AuthenticatorType.ALL_OF) {
88
+ return null;
89
+ }
90
+ const parsedConfig = JSON.parse(new TextDecoder().decode(config));
91
+ if (parsedConfig == null) {
92
+ return null;
93
+ }
94
+ const publicKey = (_a = parsedConfig.find((t) => t.type === constants_1.AuthenticatorType.SIGNATURE_VERIFICATION)) === null || _a === void 0 ? void 0 : _a.config;
95
+ if (publicKey == null || typeof publicKey !== 'string') {
96
+ return null;
97
+ }
98
+ const address = (0, encoding_1.toBech32)(constants_2.BECH32_PREFIX, (0, tendermint_rpc_1.rawSecp256k1PubkeyToRawAddress)((0, encoding_1.fromBase64)(publicKey)));
99
+ return {
100
+ id: id.toString(),
101
+ publicKey,
102
+ address,
103
+ };
104
+ })
105
+ .filter(isTruthy);
106
+ };
107
+ exports.getAuthorizedTradingKeysMetadata = getAuthorizedTradingKeysMetadata;
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZy1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYWRpbmcta2V5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQUF5RTtBQUN6RSwyREFBd0U7QUFDeEUsd0NBQWdEO0FBQ2hELDREQUEwRDtBQUUxRCxvREFNOEI7QUFFOUIsbUZBQTBEO0FBQzFELDJDQUE0QztBQUM1Qyw2Q0FBdUQ7QUFFaEQsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLElBRTVDLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGtCQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFBLG9DQUF1QixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUFhLENBQUMsQ0FBQztJQUV2RSxNQUFNLGFBQWEsR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUEsZ0JBQUssRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRS9CLElBQUksYUFBYSxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNMLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1Isb0NBQW9DO1FBQ3BDLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQzFC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