@ritbit/v4-client-js 2.5.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.js +19 -3
  2. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.js +28 -3
  3. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.js +92 -5
  4. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.js +7 -1
  5. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +19 -3
  6. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +1 -1
  7. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.js +134 -0
  8. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.js +204 -0
  9. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.js +57 -0
  10. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.js +4 -1
  11. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.js +3 -2
  12. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +4 -2
  13. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.js +1 -1
  14. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.js +151 -0
  15. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.js +134 -0
  16. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.js +248 -0
  17. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.js +34 -0
  18. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.js +71 -0
  19. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.js +282 -0
  20. package/build/cjs/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.js +63 -0
  21. package/build/cjs/src/clients/composite-client.js +7 -3
  22. package/build/cjs/src/clients/constants.js +15 -3
  23. package/build/cjs/src/clients/lib/accounts.js +44 -5
  24. package/build/cjs/src/clients/lib/agent-approval-tx.js +83 -0
  25. package/build/cjs/src/clients/lib/agent-approval.js +119 -0
  26. package/build/cjs/src/clients/lib/eip712.js +592 -0
  27. package/build/cjs/src/clients/lib/eth-pubkey.js +68 -0
  28. package/build/cjs/src/clients/modules/composer.js +15 -2
  29. package/build/cjs/src/clients/modules/eip712-signer.js +189 -0
  30. package/build/cjs/src/clients/modules/eth-agent-wallet.js +101 -0
  31. package/build/cjs/src/clients/modules/eth-wallet.js +91 -0
  32. package/build/cjs/src/clients/modules/local-wallet.js +9 -2
  33. package/build/cjs/src/clients/modules/post.js +14 -4
  34. package/build/cjs/src/clients/modules/signer.js +7 -2
  35. package/build/cjs/src/index.js +38 -2
  36. package/build/cjs/src/lib/evm-address.js +92 -0
  37. package/build/cjs/src/lib/trading-key-utils.js +41 -3
  38. package/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  39. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.d.ts +15 -0
  40. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.d.ts.map +1 -1
  41. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/models.js +19 -3
  42. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.d.ts +24 -1
  43. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.d.ts.map +1 -1
  44. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/params.js +28 -3
  45. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.d.ts +43 -1
  46. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.d.ts.map +1 -1
  47. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.js +91 -4
  48. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.d.ts +4 -1
  49. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.d.ts.map +1 -1
  50. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/accountplus/tx.rpc.msg.js +8 -2
  51. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts +9 -0
  52. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.d.ts.map +1 -1
  53. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/assets/tx.js +19 -3
  54. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts +14 -1
  55. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.d.ts.map +1 -1
  56. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/bridge/tx.js +1 -1
  57. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.d.ts +116 -0
  58. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.d.ts.map +1 -0
  59. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/params.js +98 -0
  60. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.d.ts +80 -0
  61. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.d.ts.map +1 -0
  62. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.js +168 -0
  63. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.d.ts +21 -0
  64. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.d.ts.map +1 -0
  65. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/denomwrap/tx.rpc.msg.js +20 -0
  66. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.d.ts +1 -0
  67. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.d.ts.map +1 -1
  68. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/lcd.js +4 -1
  69. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.d.ts +4 -0
  70. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.d.ts.map +1 -1
  71. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.query.js +3 -2
  72. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts +2 -0
  73. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.d.ts.map +1 -1
  74. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/rpc.tx.js +4 -2
  75. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.d.ts +0 -1
  76. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.d.ts.map +1 -1
  77. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/sending/tx.js +1 -1
  78. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.d.ts +79 -0
  79. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.d.ts.map +1 -0
  80. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/genesis.js +115 -0
  81. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.d.ts +116 -0
  82. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.d.ts.map +1 -0
  83. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/params.js +98 -0
  84. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.d.ts +82 -0
  85. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.d.ts.map +1 -0
  86. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.js +212 -0
  87. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.d.ts +11 -0
  88. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.d.ts.map +1 -0
  89. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.lcd.js +30 -0
  90. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.d.ts +29 -0
  91. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.d.ts.map +1 -0
  92. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/query.rpc.Query.js +33 -0
  93. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.d.ts +123 -0
  94. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.d.ts.map +1 -0
  95. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.js +246 -0
  96. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.d.ts +36 -0
  97. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.d.ts.map +1 -0
  98. package/build/esm/node_modules/@ritbit/v4-proto/src/codegen/ritbit/wrap/tx.rpc.msg.js +26 -0
  99. package/build/esm/src/clients/composite-client.d.ts +6 -1
  100. package/build/esm/src/clients/composite-client.d.ts.map +1 -1
  101. package/build/esm/src/clients/composite-client.js +7 -3
  102. package/build/esm/src/clients/constants.d.ts +13 -1
  103. package/build/esm/src/clients/constants.d.ts.map +1 -1
  104. package/build/esm/src/clients/constants.js +13 -1
  105. package/build/esm/src/clients/lib/accounts.d.ts +4 -3
  106. package/build/esm/src/clients/lib/accounts.d.ts.map +1 -1
  107. package/build/esm/src/clients/lib/accounts.js +44 -5
  108. package/build/esm/src/clients/lib/agent-approval-tx.d.ts +46 -0
  109. package/build/esm/src/clients/lib/agent-approval-tx.d.ts.map +1 -0
  110. package/build/esm/src/clients/lib/agent-approval-tx.js +79 -0
  111. package/build/esm/src/clients/lib/agent-approval.d.ts +64 -0
  112. package/build/esm/src/clients/lib/agent-approval.d.ts.map +1 -0
  113. package/build/esm/src/clients/lib/agent-approval.js +112 -0
  114. package/build/esm/src/clients/lib/eip712.d.ts +95 -0
  115. package/build/esm/src/clients/lib/eip712.d.ts.map +1 -0
  116. package/build/esm/src/clients/lib/eip712.js +581 -0
  117. package/build/esm/src/clients/lib/eth-pubkey.d.ts +44 -0
  118. package/build/esm/src/clients/lib/eth-pubkey.d.ts.map +1 -0
  119. package/build/esm/src/clients/lib/eth-pubkey.js +61 -0
  120. package/build/esm/src/clients/modules/composer.d.ts +12 -1
  121. package/build/esm/src/clients/modules/composer.d.ts.map +1 -1
  122. package/build/esm/src/clients/modules/composer.js +15 -2
  123. package/build/esm/src/clients/modules/eip712-signer.d.ts +99 -0
  124. package/build/esm/src/clients/modules/eip712-signer.d.ts.map +1 -0
  125. package/build/esm/src/clients/modules/eip712-signer.js +183 -0
  126. package/build/esm/src/clients/modules/eth-agent-wallet.d.ts +39 -0
  127. package/build/esm/src/clients/modules/eth-agent-wallet.d.ts.map +1 -0
  128. package/build/esm/src/clients/modules/eth-agent-wallet.js +97 -0
  129. package/build/esm/src/clients/modules/eth-wallet.d.ts +32 -0
  130. package/build/esm/src/clients/modules/eth-wallet.d.ts.map +1 -0
  131. package/build/esm/src/clients/modules/eth-wallet.js +83 -0
  132. package/build/esm/src/clients/modules/local-wallet.d.ts +2 -1
  133. package/build/esm/src/clients/modules/local-wallet.d.ts.map +1 -1
  134. package/build/esm/src/clients/modules/local-wallet.js +9 -2
  135. package/build/esm/src/clients/modules/post.d.ts +1 -1
  136. package/build/esm/src/clients/modules/post.d.ts.map +1 -1
  137. package/build/esm/src/clients/modules/post.js +14 -4
  138. package/build/esm/src/clients/modules/signer.d.ts +2 -1
  139. package/build/esm/src/clients/modules/signer.d.ts.map +1 -1
  140. package/build/esm/src/clients/modules/signer.js +7 -2
  141. package/build/esm/src/index.d.ts +13 -0
  142. package/build/esm/src/index.d.ts.map +1 -1
  143. package/build/esm/src/index.js +9 -1
  144. package/build/esm/src/lib/evm-address.d.ts +31 -0
  145. package/build/esm/src/lib/evm-address.d.ts.map +1 -0
  146. package/build/esm/src/lib/evm-address.js +85 -0
  147. package/build/esm/src/lib/trading-key-utils.d.ts +3 -0
  148. package/build/esm/src/lib/trading-key-utils.d.ts.map +1 -1
  149. package/build/esm/src/lib/trading-key-utils.js +42 -4
  150. package/build/esm/tsconfig.esm.tsbuildinfo +1 -1
  151. package/package.json +2 -2
@@ -11,6 +11,7 @@ const long_1 = __importDefault(require("long"));
11
11
  const protobufjs_1 = __importDefault(require("protobufjs"));
12
12
  const constants_1 = require("../constants");
13
13
  const errors_1 = require("../lib/errors");
14
+ const eth_pubkey_1 = require("../lib/eth-pubkey");
14
15
  const registry_1 = require("../lib/registry");
15
16
  const types_1 = require("../types");
16
17
  const composer_1 = require("./composer");
@@ -226,9 +227,18 @@ class Post {
226
227
  * @returns The Fee for broadcasting a transaction.
227
228
  */
228
229
  async simulateTransaction(pubKey, sequence, messages, gasPrice = this.getGasPrice(), memo, gasAdjustment = constants_1.GAS_MULTIPLIER) {
230
+ // cosmjs's tx.simulate() encodes the pubkey via encodePubkey(), which
231
+ // cannot encode the eth_secp256k1 type. Simulation skips signature
232
+ // verification and the pubkey<->address match check (the SDK gates it on
233
+ // !simulate), and cosmos/evm prices ethsecp256k1 gas identically to
234
+ // secp256k1, so simulating with the cosmos secp256k1 typeUrl over the
235
+ // same key bytes yields the same gas estimate.
236
+ const simulationPubKey = (0, eth_pubkey_1.isEthSecp256k1Pubkey)(pubKey)
237
+ ? { type: 'tendermint/PubKeySecp256k1', value: pubKey.value }
238
+ : pubKey;
229
239
  // Get simulated response.
230
240
  const encodedMessages = messages.map((message) => this.registry.encodeAsAny(message));
231
- const simulationResponse = await this.get.stargateQueryClient.tx.simulate(encodedMessages, memo, pubKey, sequence);
241
+ const simulationResponse = await this.get.stargateQueryClient.tx.simulate(encodedMessages, memo, simulationPubKey, sequence);
232
242
  // The promise should have been rejected if the gasInfo was undefined.
233
243
  if (simulationResponse.gasInfo === undefined) {
234
244
  throw new errors_1.UnexpectedClientError();
@@ -398,8 +408,8 @@ class Post {
398
408
  const msg = this.launchMarketMsg(subaccount.address, ticker, subaccount.subaccountNumber);
399
409
  return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, memo, broadcastMode, undefined, gasAdjustment);
400
410
  }
401
- async addAuthenticator(subaccount, authenticatorType, data) {
402
- const msg = this.composer.composeMsgAddAuthenticator(subaccount.address, authenticatorType, data);
411
+ async addAuthenticator(subaccount, authenticatorType, data, name = '', expiresAt = 0) {
412
+ const msg = this.composer.composeMsgAddAuthenticator(subaccount.address, authenticatorType, data, name, expiresAt);
403
413
  return this.send(subaccount, () => Promise.resolve([msg]), false, undefined, undefined, tendermint_rpc_1.Method.BroadcastTxSync, undefined, undefined);
404
414
  }
405
415
  async removeAuthenticator(subaccount, id) {
@@ -408,4 +418,4 @@ class Post {
408
418
  }
409
419
  }
410
420
  exports.Post = Post;
411
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFFdEMsK0NBQTZFO0FBQzdFLDJEQUE4RDtBQUM5RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBS2xDLDRDQUFtRjtBQUVuRiwwQ0FBc0Q7QUFDdEQsOENBQW1EO0FBRW5ELG9DQVNrQjtBQUNsQix5Q0FBc0M7QUFFdEMscURBUTBCO0FBRTFCLG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxJQUFJO0lBZ0JmLFlBQ0UsR0FBUSxFQUNSLE9BQWUsRUFDZixNQUFtQixFQUNuQixpQkFBMEIsRUFDMUIsaUJBQTJCLEVBQzNCLHNCQUErQjtRQWQxQixxQkFBZ0IsR0FBcUIsNEJBQWdCLENBQUMsSUFBSSxDQUFDO1FBSTNELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFDbEMsdUJBQWtCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFVM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsZUFBZSxHQUFH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
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvcG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBc0M7QUFFdEMsK0NBQTZFO0FBQzdFLDJEQUE4RDtBQUM5RCxnREFBd0I7QUFDeEIsNERBQWtDO0FBS2xDLDRDQUFtRjtBQUVuRiwwQ0FBc0Q7QUFDdEQsa0RBQTZFO0FBQzdFLDhDQUFtRDtBQUVuRCxvQ0FTa0I7QUFDbEIseUNBQXNDO0FBRXRDLHFEQVEwQjtBQUUxQixvRUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsb0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQztBQUMxQixvQkFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBRXJCLE1BQWEsSUFBSTtJQWdCZixZQUNFLEdBQVEsRUFDUixPQUFlLEVBQ2YsTUFBbUIsRUFDbkIsaUJBQTBCLEVBQzFCLGlCQUEyQixFQUMzQixzQkFBK0I7UUFkMUIscUJBQWdCLEdBQXFCLDRCQUFnQixDQUFDLElBQUksQ0FBQztRQUkzRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsMkJBQXNCLEdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHVCQUFrQixHQUF5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBVTNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFBLDJCQUFnQixHQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1CQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxD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
@@ -12,6 +12,7 @@ const tx_2 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
12
12
  const any_1 = require("cosmjs-types/google/protobuf/any");
13
13
  const long_1 = __importDefault(require("long"));
14
14
  const protobufjs_1 = __importDefault(require("protobufjs"));
15
+ const eth_pubkey_1 = require("../lib/eth-pubkey");
15
16
  const registry_1 = require("../lib/registry");
16
17
  // Required for encoding and decoding queries that are of type Long.
17
18
  // Must be done once but since the individal modules should be usable
@@ -63,7 +64,11 @@ class TransactionSigner {
63
64
  if (!publicKey) {
64
65
  throw new Error('Public key cannot be undefined');
65
66
  }
66
- const pubkey = (0, proto_signing_1.encodePubkey)(publicKey); // Use the public key of the signer
67
+ // Use the public key of the signer. cosmjs's encodePubkey() only knows the
68
+ // cosmos key types, so the eth pubkey gets its own Any construction.
69
+ const pubkey = (0, eth_pubkey_1.isEthSecp256k1Pubkey)(publicKey)
70
+ ? (0, eth_pubkey_1.ethSecp256k1PubkeyToAny)(publicKey)
71
+ : (0, proto_signing_1.encodePubkey)(publicKey);
67
72
  const gasLimit = math_1.Int53.fromString(String(fee.gas)).toNumber();
68
73
  const authInfoBytes = (0, proto_signing_1.makeAuthInfoBytes)([{ pubkey, sequence: transactionOptions.sequence }], fee.amount, gasLimit, undefined, undefined);
69
74
  // Create the SignDoc.
@@ -95,4 +100,4 @@ class TransactionSigner {
95
100
  }
96
101
  }
97
102
  exports.TransactionSigner = TransactionSigner;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9zaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsK0NBQThDO0FBQzlDLHVDQUFxQztBQUNyQyx5REFPK0I7QUFFL0IsMkVBQWlGO0FBQ2pGLDBEQUFrRTtBQUNsRSwwREFBdUQ7QUFDdkQsZ0RBQXdCO0FBQ3hCLDREQUFrQztBQUVsQyw4Q0FBbUQ7QUFHbkQsb0VBQW9FO0FBQ3BFLHFFQUFxRTtBQUNyRSx3RUFBd0U7QUFDeEUsa0VBQWtFO0FBQ2xFLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFhLGlCQUFpQjtJQUs1QixZQUNFLE9BQWUsRUFDZixxQkFBNEMsRUFDNUMsYUFBNEI7UUFFNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixRQUF3QixFQUN4QixrQkFBc0MsRUFDdEMsR0FBWSxFQUNaLE9BQWUsRUFBRSxFQUNqQixTQUEyQjs7UUFFM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJCQUFnQixHQUFFLENBQUM7UUFFcEMsc0JBQXNCO1FBQ3RCLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENB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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudHMvbW9kdWxlcy9zaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsK0NBQThDO0FBQzlDLHVDQUFxQztBQUNyQyx5REFPK0I7QUFFL0IsMkVBQWlGO0FBQ2pGLDBEQUFrRTtBQUNsRSwwREFBdUQ7QUFDdkQsZ0RBQXdCO0FBQ3hCLDREQUFrQztBQUVsQyxrREFJMkI7QUFDM0IsOENBQW1EO0FBR25ELG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxpQkFBaUI7SUFLNUIsWUFDRSxPQUFlLEVBQ2YscUJBQTRDLEVBQzVDLGFBQTRCO1FBRTVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsUUFBd0IsRUFDeEIsa0JBQXNDLEVBQ3RDLEdBQVksRUFDWixPQUFlLEVBQUUsRUFDakIsU0FBZ0Q7O1FBRWhELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSwyQkFBZ0IsR0FBRSxDQUFDO1FBRXBDLHNCQUFzQjtRQUN0QixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFD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
@@ -39,10 +39,11 @@ 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.tradingKeyUtils = exports.onboarding = exports.helpers = void 0;
42
+ exports.NetworkOptimizer = exports.ByteArrayEncoding = exports.encodeJson = exports.ValidatorClient = exports.SubaccountInfo = exports.SubaccountClient = exports.SocketClient = exports.NobleClient = exports.EthAgentWallet = exports.signAgentApprovalTx = exports.composeAgentApprovalMsg = exports.agentApprovalTypedData = exports.agentApprovalDigest = exports.agentAddressToHex = exports.agentAddressBytes = exports.AGENT_REVOCATION_ADDRESS = exports.AGENT_AUTHENTICATOR_TYPE = exports.AGENT_APPROVAL_PRIMARY_TYPE = exports.AGENT_APPROVAL_DOMAIN_VERSION = exports.AGENT_APPROVAL_DOMAIN_NAME = exports.signCosmosTxWithEip712 = exports.recoverPubKeyFromTypedDataSignature = exports.Eip712Signer = exports.signDocToEip712TypedData = exports.signDocBytesToEip712TypedData = exports.registerEip712AminoConverter = exports.eip712Digest = exports.createEip712Domain = exports.ETH_SECP256K1_PUBKEY_TYPE_URL = exports.ETH_SECP256K1_PUBKEY_TYPE = exports.ethSecp256k1PubkeyToAny = exports.isEthSecp256k1Pubkey = exports.encodeEthSecp256k1Pubkey = exports.ETH_BIP44_HD_PATH = exports.DirectEthSecp256k1Signer = exports.EthLocalWallet = exports.LocalWallet = exports.IndexerClient = exports.FaucetClient = exports.CompositeClient = exports.validation = exports.utils = exports.tradingKeyUtils = exports.onboarding = exports.helpers = exports.evmAddress = void 0;
43
43
  // Types.
44
44
  __exportStar(require("./types"), exports);
45
45
  // Utility functions.
46
+ exports.evmAddress = __importStar(require("./lib/evm-address"));
46
47
  exports.helpers = __importStar(require("./lib/helpers"));
47
48
  exports.onboarding = __importStar(require("./lib/onboarding"));
48
49
  exports.tradingKeyUtils = __importStar(require("./lib/trading-key-utils"));
@@ -56,6 +57,41 @@ var indexer_client_1 = require("./clients/indexer-client");
56
57
  Object.defineProperty(exports, "IndexerClient", { enumerable: true, get: function () { return indexer_client_1.IndexerClient; } });
57
58
  var local_wallet_1 = require("./clients/modules/local-wallet");
58
59
  Object.defineProperty(exports, "LocalWallet", { enumerable: true, get: function () { return __importDefault(local_wallet_1).default; } });
60
+ var eth_wallet_1 = require("./clients/modules/eth-wallet");
61
+ Object.defineProperty(exports, "EthLocalWallet", { enumerable: true, get: function () { return __importDefault(eth_wallet_1).default; } });
62
+ Object.defineProperty(exports, "DirectEthSecp256k1Signer", { enumerable: true, get: function () { return eth_wallet_1.DirectEthSecp256k1Signer; } });
63
+ Object.defineProperty(exports, "ETH_BIP44_HD_PATH", { enumerable: true, get: function () { return eth_wallet_1.ETH_BIP44_HD_PATH; } });
64
+ var eth_pubkey_1 = require("./clients/lib/eth-pubkey");
65
+ Object.defineProperty(exports, "encodeEthSecp256k1Pubkey", { enumerable: true, get: function () { return eth_pubkey_1.encodeEthSecp256k1Pubkey; } });
66
+ Object.defineProperty(exports, "isEthSecp256k1Pubkey", { enumerable: true, get: function () { return eth_pubkey_1.isEthSecp256k1Pubkey; } });
67
+ Object.defineProperty(exports, "ethSecp256k1PubkeyToAny", { enumerable: true, get: function () { return eth_pubkey_1.ethSecp256k1PubkeyToAny; } });
68
+ Object.defineProperty(exports, "ETH_SECP256K1_PUBKEY_TYPE", { enumerable: true, get: function () { return eth_pubkey_1.ETH_SECP256K1_PUBKEY_TYPE; } });
69
+ Object.defineProperty(exports, "ETH_SECP256K1_PUBKEY_TYPE_URL", { enumerable: true, get: function () { return eth_pubkey_1.ETH_SECP256K1_PUBKEY_TYPE_URL; } });
70
+ var eip712_1 = require("./clients/lib/eip712");
71
+ Object.defineProperty(exports, "createEip712Domain", { enumerable: true, get: function () { return eip712_1.createEip712Domain; } });
72
+ Object.defineProperty(exports, "eip712Digest", { enumerable: true, get: function () { return eip712_1.eip712Digest; } });
73
+ Object.defineProperty(exports, "registerEip712AminoConverter", { enumerable: true, get: function () { return eip712_1.registerEip712AminoConverter; } });
74
+ Object.defineProperty(exports, "signDocBytesToEip712TypedData", { enumerable: true, get: function () { return eip712_1.signDocBytesToEip712TypedData; } });
75
+ Object.defineProperty(exports, "signDocToEip712TypedData", { enumerable: true, get: function () { return eip712_1.signDocToEip712TypedData; } });
76
+ var eip712_signer_1 = require("./clients/modules/eip712-signer");
77
+ Object.defineProperty(exports, "Eip712Signer", { enumerable: true, get: function () { return eip712_signer_1.Eip712Signer; } });
78
+ Object.defineProperty(exports, "recoverPubKeyFromTypedDataSignature", { enumerable: true, get: function () { return eip712_signer_1.recoverPubKeyFromTypedDataSignature; } });
79
+ Object.defineProperty(exports, "signCosmosTxWithEip712", { enumerable: true, get: function () { return eip712_signer_1.signCosmosTxWithEip712; } });
80
+ var agent_approval_1 = require("./clients/lib/agent-approval");
81
+ Object.defineProperty(exports, "AGENT_APPROVAL_DOMAIN_NAME", { enumerable: true, get: function () { return agent_approval_1.AGENT_APPROVAL_DOMAIN_NAME; } });
82
+ Object.defineProperty(exports, "AGENT_APPROVAL_DOMAIN_VERSION", { enumerable: true, get: function () { return agent_approval_1.AGENT_APPROVAL_DOMAIN_VERSION; } });
83
+ Object.defineProperty(exports, "AGENT_APPROVAL_PRIMARY_TYPE", { enumerable: true, get: function () { return agent_approval_1.AGENT_APPROVAL_PRIMARY_TYPE; } });
84
+ Object.defineProperty(exports, "AGENT_AUTHENTICATOR_TYPE", { enumerable: true, get: function () { return agent_approval_1.AGENT_AUTHENTICATOR_TYPE; } });
85
+ Object.defineProperty(exports, "AGENT_REVOCATION_ADDRESS", { enumerable: true, get: function () { return agent_approval_1.AGENT_REVOCATION_ADDRESS; } });
86
+ Object.defineProperty(exports, "agentAddressBytes", { enumerable: true, get: function () { return agent_approval_1.agentAddressBytes; } });
87
+ Object.defineProperty(exports, "agentAddressToHex", { enumerable: true, get: function () { return agent_approval_1.agentAddressToHex; } });
88
+ Object.defineProperty(exports, "agentApprovalDigest", { enumerable: true, get: function () { return agent_approval_1.agentApprovalDigest; } });
89
+ Object.defineProperty(exports, "agentApprovalTypedData", { enumerable: true, get: function () { return agent_approval_1.agentApprovalTypedData; } });
90
+ var agent_approval_tx_1 = require("./clients/lib/agent-approval-tx");
91
+ Object.defineProperty(exports, "composeAgentApprovalMsg", { enumerable: true, get: function () { return agent_approval_tx_1.composeAgentApprovalMsg; } });
92
+ Object.defineProperty(exports, "signAgentApprovalTx", { enumerable: true, get: function () { return agent_approval_tx_1.signAgentApprovalTx; } });
93
+ var eth_agent_wallet_1 = require("./clients/modules/eth-agent-wallet");
94
+ Object.defineProperty(exports, "EthAgentWallet", { enumerable: true, get: function () { return eth_agent_wallet_1.EthAgentWallet; } });
59
95
  var noble_client_1 = require("./clients/noble-client");
60
96
  Object.defineProperty(exports, "NobleClient", { enumerable: true, get: function () { return noble_client_1.NobleClient; } });
61
97
  var socket_client_1 = require("./clients/socket-client");
@@ -73,4 +109,4 @@ Object.defineProperty(exports, "NetworkOptimizer", { enumerable: true, get: func
73
109
  // Dual / multi-asset collateral helpers.
74
110
  __exportStar(require("./clients/helpers/asset-registry"), exports);
75
111
  __exportStar(require("./clients/helpers/collateral"), exports);
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIseURBQXlDO0FBQ3pDLCtEQUErQztBQUMvQywyRUFBMkQ7QUFDM0QscURBQXFDO0FBQ3JDLCtEQUErQztBQUMvQywrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUF1RDtBQUE5Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIsMkRBQXlEO0FBQWhELCtHQUFBLGFBQWEsT0FBQTtBQUN0QiwrREFBd0U7QUFBL0QsNEhBQUEsT0FBTyxPQUFlO0FBQy9CLHVEQUFxRDtBQUE1QywyR0FBQSxXQUFXLE9BQUE7QUFDcEIseURBQXVEO0FBQTlDLDZHQUFBLFlBQVksT0FBQTtBQUNyQixtREFBMEY7QUFBakYsOEdBQUEsY0FBYyxPQUFvQjtBQUFFLDRHQUFBLGNBQWMsT0FBQTtBQUMzRCwrREFBNkQ7QUFBcEQsbUhBQUEsZUFBZSxPQUFBO0FBQ3hCLHlDQUE4RDtBQUFyRCxxR0FBQSxVQUFVLE9BQUE7QUFBRSw0R0FBQSxpQkFBaUIsT0FBQTtBQUN0Qyx5REFBdUQ7QUFBOUMscUhBQUEsZ0JBQWdCLE9BQUE7QUFFekIseUNBQXlDO0FBQ3pDLG1FQUFpRDtBQUNqRCwrREFBNkMifQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULDBDQUF3QjtBQUV4QixxQkFBcUI7QUFDckIsZ0VBQWdEO0FBQ2hELHlEQUF5QztBQUN6QywrREFBK0M7QUFDL0MsMkVBQTJEO0FBQzNELHFEQUFxQztBQUNyQywrREFBK0M7QUFDL0MsK0RBQTZEO0FBQXBELG1IQUFBLGVBQWUsT0FBQTtBQUN4Qix5REFBdUQ7QUFBOUMsNkdBQUEsWUFBWSxPQUFBO0FBQ3JCLDJEQUF5RDtBQUFoRCwrR0FBQSxhQUFhLE9BQUE7QUFDdEIsK0RBQXdFO0FBQS9ELDRIQUFBLE9BQU8sT0FBZTtBQUMvQiwyREFJc0M7QUFIcEMsNkhBQUEsT0FBTyxPQUFrQjtBQUN6QixzSEFBQSx3QkFBd0IsT0FBQTtBQUN4QiwrR0FBQSxpQkFBaUIsT0FBQTtBQUVuQix1REFNa0M7QUFMaEMsc0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsa0hBQUEsb0JBQW9CLE9BQUE7QUFDcEIscUhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsdUhBQUEseUJBQXlCLE9BQUE7QUFDekIsMkhBQUEsNkJBQTZCLE9BQUE7QUFHL0IsK0NBTThCO0FBTDVCLDRHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHNHQUFBLFlBQVksT0FBQTtBQUNaLHNIQUFBLDRCQUE0QixPQUFBO0FBQzVCLHVIQUFBLDZCQUE2QixPQUFBO0FBQzdCLGtIQUFBLHdCQUF3QixPQUFBO0FBVTFCLGlFQUl5QztBQUh2Qyw2R0FBQSxZQUFZLE9BQUE7QUFDWixvSUFBQSxtQ0FBbUMsT0FBQTtBQUNuQyx1SEFBQSxzQkFBc0IsT0FBQTtBQUd4QiwrREFVc0M7QUFUcEMsNEhBQUEsMEJBQTBCLE9BQUE7QUFDMUIsK0hBQUEsNkJBQTZCLE9BQUE7QUFDN0IsNkhBQUEsMkJBQTJCLE9BQUE7QUFDM0IsMEhBQUEsd0JBQXdCLE9BQUE7QUFDeEIsMEhBQUEsd0JBQXdCLE9BQUE7QUFDeEIsbUhBQUEsaUJBQWlCLE9BQUE7QUFDakIsbUhBQUEsaUJBQWlCLE9BQUE7QUFDakIscUhBQUEsbUJBQW1CLE9BQUE7QUFDbkIsd0hBQUEsc0JBQXNCLE9BQUE7QUFHeEIscUVBR3lDO0FBRnZDLDRIQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLHdIQUFBLG1CQUFtQixPQUFBO0FBTXJCLHVFQUFvRTtBQUEzRCxrSEFBQSxjQUFjLE9BQUE7QUFDdkIsdURBQXFEO0FBQTVDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQix5REFBdUQ7QUFBOUMsNkdBQUEsWUFBWSxPQUFBO0FBQ3JCLG1EQUEwRjtBQUFqRiw4R0FBQSxjQUFjLE9BQW9CO0FBQUUsNEdBQUEsY0FBYyxPQUFBO0FBQzNELCtEQUE2RDtBQUFwRCxtSEFBQSxlQUFlLE9BQUE7QUFDeEIseUNBQThEO0FBQXJELHFHQUFBLFVBQVUsT0FBQTtBQUFFLDRHQUFBLGlCQUFpQixPQUFBO0FBQ3RDLHlEQUF1RDtBQUE5QyxxSEFBQSxnQkFBZ0IsT0FBQTtBQUV6Qix5Q0FBeUM7QUFDekMsbUVBQWlEO0FBQ2pELCtEQUE2QyJ9
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ethAddressBytesFromPubkey = ethAddressBytesFromPubkey;
4
+ exports.toChecksumEthAddress = toChecksumEthAddress;
5
+ exports.isValidEthAddress = isValidEthAddress;
6
+ exports.ethAddressToBech32 = ethAddressToBech32;
7
+ exports.bech32ToEthAddress = bech32ToEthAddress;
8
+ const encoding_1 = require("@cosmjs/encoding");
9
+ const keccak_1 = require("ethereum-cryptography/keccak");
10
+ const secp256k1_1 = require("ethereum-cryptography/secp256k1");
11
+ const constants_1 = require("./constants");
12
+ const helpers_1 = require("./helpers");
13
+ /**
14
+ * Ethereum-style address helpers for the 0x == rit1 wallet model: an
15
+ * eth_secp256k1 account's address is keccak256(uncompressed pubkey without the
16
+ * 04 prefix)[12:], and the 0x and bech32 representations are the same 20
17
+ * bytes.
18
+ */
19
+ const ETH_ADDRESS_BYTE_LENGTH = 20;
20
+ const ETH_ADDRESS_REGEX = /^(0x)?[0-9a-fA-F]{40}$/;
21
+ /**
22
+ * @description Derive the ethereum-style 20-byte address from a secp256k1
23
+ * public key (compressed 33-byte or uncompressed 65-byte form).
24
+ *
25
+ * @returns keccak256(uncompressed pubkey without the 04 prefix)[12:].
26
+ */
27
+ function ethAddressBytesFromPubkey(pubkey) {
28
+ const uncompressed = pubkey.length === 65 && pubkey[0] === 0x04
29
+ ? pubkey
30
+ : secp256k1_1.secp256k1.ProjectivePoint.fromHex(pubkey).toRawBytes(false);
31
+ // Last 20 bytes of the 32-byte keccak hash.
32
+ return (0, keccak_1.keccak256)(uncompressed.slice(1)).slice(-ETH_ADDRESS_BYTE_LENGTH);
33
+ }
34
+ /**
35
+ * @description Apply the EIP-55 mixed-case checksum to a hex address.
36
+ *
37
+ * @returns Checksummed address with 0x prefix.
38
+ */
39
+ function toChecksumEthAddress(ethAddress) {
40
+ const hex = (0, helpers_1.stripHexPrefix)(ethAddress).toLowerCase();
41
+ if (!ETH_ADDRESS_REGEX.test(hex)) {
42
+ throw new Error(`Invalid ethereum address: ${ethAddress}`);
43
+ }
44
+ const hash = (0, encoding_1.toHex)((0, keccak_1.keccak256)(new Uint8Array(Buffer.from(hex, 'ascii'))));
45
+ let checksummed = '';
46
+ for (let i = 0; i < hex.length; i++) {
47
+ checksummed += parseInt(hash[i], 16) >= 8 ? hex[i].toUpperCase() : hex[i];
48
+ }
49
+ return `0x${checksummed}`;
50
+ }
51
+ /**
52
+ * @description An address is valid if it is 0x + 40 hex characters and, when
53
+ * mixed-case, carries a correct EIP-55 checksum. All-lowercase and
54
+ * all-uppercase addresses are accepted as checksum-less.
55
+ */
56
+ function isValidEthAddress(address) {
57
+ if (!/^0x[0-9a-fA-F]{40}$/.test(address)) {
58
+ return false;
59
+ }
60
+ const hex = address.slice(2);
61
+ if (hex === hex.toLowerCase() || hex === hex.toUpperCase()) {
62
+ return true;
63
+ }
64
+ return address === toChecksumEthAddress(address);
65
+ }
66
+ /**
67
+ * @description Convert a 0x address to its bech32 representation (the same 20
68
+ * bytes). Accepts the address with or without the 0x prefix; a mixed-case
69
+ * address must carry a valid EIP-55 checksum.
70
+ */
71
+ function ethAddressToBech32(ethAddress, prefix = constants_1.BECH32_PREFIX) {
72
+ const hex = (0, helpers_1.stripHexPrefix)(ethAddress);
73
+ if (!ETH_ADDRESS_REGEX.test(hex)) {
74
+ throw new Error(`Invalid ethereum address: ${ethAddress}`);
75
+ }
76
+ if (hex !== hex.toLowerCase() && hex !== hex.toUpperCase() && !isValidEthAddress(`0x${hex}`)) {
77
+ throw new Error(`Invalid EIP-55 checksum in ethereum address: ${ethAddress}`);
78
+ }
79
+ return (0, encoding_1.toBech32)(prefix, (0, encoding_1.fromHex)(hex.toLowerCase()));
80
+ }
81
+ /**
82
+ * @description Convert a bech32 account address to its 0x representation (the
83
+ * same 20 bytes) with EIP-55 checksum casing.
84
+ */
85
+ function bech32ToEthAddress(address) {
86
+ const { data } = (0, encoding_1.fromBech32)(address);
87
+ if (data.length !== ETH_ADDRESS_BYTE_LENGTH) {
88
+ throw new Error(`Address ${address} decodes to ${data.length} bytes, expected ${ETH_ADDRESS_BYTE_LENGTH}`);
89
+ }
90
+ return toChecksumEthAddress((0, encoding_1.toHex)(data));
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtLWFkZHJlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2bS1hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUJBLDhEQU9DO0FBT0Qsb0RBV0M7QUFPRCw4Q0FTQztBQU9ELGdEQVNDO0FBTUQsZ0RBUUM7QUE5RkQsK0NBQXdFO0FBQ3hFLHlEQUF5RDtBQUN6RCwrREFBNEQ7QUFFNUQsMkNBQTRDO0FBQzVDLHVDQUEyQztBQUUzQzs7Ozs7R0FLRztBQUVILE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ25DLE1BQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUM7QUFFbkQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxNQUFrQjtJQUMxRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUk7UUFDeEMsQ0FBQyxDQUFDLE1BQU07UUFDUixDQUFDLENBQUMscUJBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSw0Q0FBNEM7SUFDNUMsT0FBTyxJQUFBLGtCQUFTLEVBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxVQUFrQjtJQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFBLHdCQUFjLEVBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLElBQUEsZ0JBQUssRUFBQyxJQUFBLGtCQUFTLEVBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZTtJQUMvQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sT0FBTyxLQUFLLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxTQUFpQix5QkFBYTtJQUNuRixNQUFNLEdBQUcsR0FBRyxJQUFBLHdCQUFjLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDN0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsT0FBTyxJQUFBLG1CQUFRLEVBQUMsTUFBTSxFQUFFLElBQUEsa0JBQU8sRUFBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFlO0lBQ2hELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLHVCQUF1QixFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLE9BQU8sZUFBZSxJQUFJLENBQUMsTUFBTSxvQkFBb0IsdUJBQXVCLEVBQUUsQ0FDMUYsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLG9CQUFvQixDQUFDLElBQUEsZ0JBQUssRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMifQ==
@@ -51,6 +51,22 @@ const getAuthorizeNewTradingKeyArguments = ({ generatedWalletPubKey, }) => {
51
51
  type: constants_1.AuthenticatorType.MESSAGE_FILTER,
52
52
  config: wrapAndEncode64(constants_1.TYPE_URL_BATCH_CANCEL),
53
53
  },
54
+ // Fund movements *within* the account: topping the subaccount up from the
55
+ // wallet, pulling the gas reserve back, moving margin between subaccounts.
56
+ // Safe only because SelfTransferFilter below pins both parties to the owner
57
+ // — on their own these three would let the key send funds to a stranger.
58
+ {
59
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
60
+ config: wrapAndEncode64(constants_1.TYPE_URL_MSG_DEPOSIT_TO_SUBACCOUNT),
61
+ },
62
+ {
63
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
64
+ config: wrapAndEncode64(constants_1.TYPE_URL_MSG_WITHDRAW_FROM_SUBACCOUNT),
65
+ },
66
+ {
67
+ type: constants_1.AuthenticatorType.MESSAGE_FILTER,
68
+ config: wrapAndEncode64(constants_1.TYPE_URL_MSG_CREATE_TRANSFER),
69
+ },
54
70
  ];
55
71
  const anyOfMessageFilterConfigB64 = wrapAndEncode64(JSON.stringify(messageFilterSubAuth));
56
72
  const subAuth = [
@@ -68,6 +84,13 @@ const getAuthorizeNewTradingKeyArguments = ({ generatedWalletPubKey, }) => {
68
84
  type: constants_1.AuthenticatorType.SUBACCOUNT_FILTER,
69
85
  config: wrapAndEncode64('0'),
70
86
  },
87
+ // Money may move inside the account and nowhere else. SubaccountFilter above
88
+ // only inspects the three clob messages, so without this the transfer
89
+ // messages would be unconstrained.
90
+ {
91
+ type: constants_1.AuthenticatorType.SELF_TRANSFER_FILTER,
92
+ config: '',
93
+ },
71
94
  ];
72
95
  const jsonString = JSON.stringify(subAuth);
73
96
  const encodedData = new TextEncoder().encode(jsonString);
@@ -82,8 +105,8 @@ const isTruthy = (n) => Boolean(n);
82
105
  // just parses out keys that match the format created in getAuthorizeNewTradingKeyArguments
83
106
  const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
84
107
  return authorizedKeys
85
- .map(({ config, id, type }) => {
86
- var _a;
108
+ .map(({ config, id, type, name, expiresAt }) => {
109
+ var _a, _b;
87
110
  if (type !== constants_1.AuthenticatorType.ALL_OF) {
88
111
  return null;
89
112
  }
@@ -91,7 +114,20 @@ const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
91
114
  if (parsedConfig == null) {
92
115
  return null;
93
116
  }
117
+ // Two ways a key can be authorized. A public key is the original form;
118
+ // an address is the agent form, where the key is recovered from each
119
+ // signature instead of being stored (see EthAddressSignatureVerification).
94
120
  const publicKey = (_a = parsedConfig.find((t) => t.type === constants_1.AuthenticatorType.SIGNATURE_VERIFICATION)) === null || _a === void 0 ? void 0 : _a.config;
121
+ const agentAddress = (_b = parsedConfig.find((t) => t.type === constants_1.AuthenticatorType.ETH_ADDRESS_SIGNATURE_VERIFICATION)) === null || _b === void 0 ? void 0 : _b.config;
122
+ if (typeof agentAddress === 'string') {
123
+ return {
124
+ id: id.toString(),
125
+ publicKey: '',
126
+ address: (0, encoding_1.toBech32)(constants_2.BECH32_PREFIX, (0, encoding_1.fromBase64)(agentAddress)),
127
+ name: name !== null && name !== void 0 ? name : '',
128
+ expiresAt: expiresAt == null ? 0 : Number(expiresAt.toString()),
129
+ };
130
+ }
95
131
  if (publicKey == null || typeof publicKey !== 'string') {
96
132
  return null;
97
133
  }
@@ -100,9 +136,11 @@ const getAuthorizedTradingKeysMetadata = (authorizedKeys) => {
100
136
  id: id.toString(),
101
137
  publicKey,
102
138
  address,
139
+ name: name !== null && name !== void 0 ? name : '',
140
+ expiresAt: expiresAt == null ? 0 : Number(expiresAt.toString()),
103
141
  };
104
142
  })
105
143
  .filter(isTruthy);
106
144
  };
107
145
  exports.getAuthorizedTradingKeysMetadata = getAuthorizedTradingKeysMetadata;
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZy1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYWRpbmcta2V5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQUF5RTtBQUN6RSwyREFBd0U7QUFDeEUsd0NBQWdEO0FBQ2hELDREQUEwRDtBQUUxRCxvREFNOEI7QUFFOUIsbUZBQTBEO0FBQzFELDJDQUE0QztBQUM1Qyw2Q0FBdUQ7QUFFaEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLElBRTdDLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGtCQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFBLG9DQUF1QixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUFhLENBQUMsQ0FBQztJQUV2RSxNQUFNLGFBQWEsR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUEsZ0JBQUssRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRS9CLElBQUksYUFBYSxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNMLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1Isb0NBQW9DO1FBQ3BDLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQzFC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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZy1rZXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYWRpbmcta2V5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQUF5RTtBQUN6RSwyREFBd0U7QUFDeEUsd0NBQWdEO0FBQ2hELDREQUEwRDtBQUUxRCxvREFTOEI7QUFHOUIsbUZBQTBEO0FBQzFELDJDQUE0QztBQUM1Qyw2Q0FBdUQ7QUFFaEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLElBRTdDLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGtCQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFBLG9DQUF1QixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUFhLENBQUMsQ0FBQztJQUV2RSxNQUFNLGFBQWEsR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUEsZ0JBQUssRUFBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdEYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBRS9CLElBQUksYUFBYSxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNMLG1CQUFtQjtRQUNuQixRQUFRO1FBQ1Isb0NBQW9DO1FBQ3BDLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1FBQzFC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