extended-typescript-sdk 0.0.1

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 (173) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +445 -0
  3. package/dist/config.d.ts +11 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +15 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/errors.d.ts +25 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +45 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/index.d.ts +39 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +142 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/perpetual/accounts.d.ts +88 -0
  16. package/dist/perpetual/accounts.d.ts.map +1 -0
  17. package/dist/perpetual/accounts.js +152 -0
  18. package/dist/perpetual/accounts.js.map +1 -0
  19. package/dist/perpetual/amounts.d.ts +41 -0
  20. package/dist/perpetual/amounts.d.ts.map +1 -0
  21. package/dist/perpetual/amounts.js +79 -0
  22. package/dist/perpetual/amounts.js.map +1 -0
  23. package/dist/perpetual/assets.d.ts +74 -0
  24. package/dist/perpetual/assets.d.ts.map +1 -0
  25. package/dist/perpetual/assets.js +119 -0
  26. package/dist/perpetual/assets.js.map +1 -0
  27. package/dist/perpetual/bridges.d.ts +29 -0
  28. package/dist/perpetual/bridges.d.ts.map +1 -0
  29. package/dist/perpetual/bridges.js +45 -0
  30. package/dist/perpetual/bridges.js.map +1 -0
  31. package/dist/perpetual/candles.d.ts +26 -0
  32. package/dist/perpetual/candles.d.ts.map +1 -0
  33. package/dist/perpetual/candles.js +29 -0
  34. package/dist/perpetual/candles.js.map +1 -0
  35. package/dist/perpetual/clients.d.ts +15 -0
  36. package/dist/perpetual/clients.d.ts.map +1 -0
  37. package/dist/perpetual/clients.js +25 -0
  38. package/dist/perpetual/clients.js.map +1 -0
  39. package/dist/perpetual/configuration.d.ts +39 -0
  40. package/dist/perpetual/configuration.d.ts.map +1 -0
  41. package/dist/perpetual/configuration.js +61 -0
  42. package/dist/perpetual/configuration.js.map +1 -0
  43. package/dist/perpetual/crypto/signer.d.ts +164 -0
  44. package/dist/perpetual/crypto/signer.d.ts.map +1 -0
  45. package/dist/perpetual/crypto/signer.js +318 -0
  46. package/dist/perpetual/crypto/signer.js.map +1 -0
  47. package/dist/perpetual/fees.d.ts +20 -0
  48. package/dist/perpetual/fees.d.ts.map +1 -0
  49. package/dist/perpetual/fees.js +35 -0
  50. package/dist/perpetual/fees.js.map +1 -0
  51. package/dist/perpetual/funding-rates.d.ts +15 -0
  52. package/dist/perpetual/funding-rates.d.ts.map +1 -0
  53. package/dist/perpetual/funding-rates.js +23 -0
  54. package/dist/perpetual/funding-rates.js.map +1 -0
  55. package/dist/perpetual/markets.d.ts +83 -0
  56. package/dist/perpetual/markets.d.ts.map +1 -0
  57. package/dist/perpetual/markets.js +124 -0
  58. package/dist/perpetual/markets.js.map +1 -0
  59. package/dist/perpetual/order-object-settlement.d.ts +43 -0
  60. package/dist/perpetual/order-object-settlement.d.ts.map +1 -0
  61. package/dist/perpetual/order-object-settlement.js +121 -0
  62. package/dist/perpetual/order-object-settlement.js.map +1 -0
  63. package/dist/perpetual/order-object.d.ts +38 -0
  64. package/dist/perpetual/order-object.d.ts.map +1 -0
  65. package/dist/perpetual/order-object.js +90 -0
  66. package/dist/perpetual/order-object.js.map +1 -0
  67. package/dist/perpetual/orderbooks.d.ts +23 -0
  68. package/dist/perpetual/orderbooks.d.ts.map +1 -0
  69. package/dist/perpetual/orderbooks.js +36 -0
  70. package/dist/perpetual/orderbooks.js.map +1 -0
  71. package/dist/perpetual/orders.d.ts +207 -0
  72. package/dist/perpetual/orders.d.ts.map +1 -0
  73. package/dist/perpetual/orders.js +266 -0
  74. package/dist/perpetual/orders.js.map +1 -0
  75. package/dist/perpetual/positions.d.ts +80 -0
  76. package/dist/perpetual/positions.d.ts.map +1 -0
  77. package/dist/perpetual/positions.js +94 -0
  78. package/dist/perpetual/positions.js.map +1 -0
  79. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts +47 -0
  80. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts.map +1 -0
  81. package/dist/perpetual/stream-client/perpetual-stream-connection.js +125 -0
  82. package/dist/perpetual/stream-client/perpetual-stream-connection.js.map +1 -0
  83. package/dist/perpetual/stream-client/stream-client.d.ts +46 -0
  84. package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -0
  85. package/dist/perpetual/stream-client/stream-client.js +79 -0
  86. package/dist/perpetual/stream-client/stream-client.js.map +1 -0
  87. package/dist/perpetual/trades.d.ts +44 -0
  88. package/dist/perpetual/trades.d.ts.map +1 -0
  89. package/dist/perpetual/trades.js +48 -0
  90. package/dist/perpetual/trades.js.map +1 -0
  91. package/dist/perpetual/trading-client/account-module.d.ts +192 -0
  92. package/dist/perpetual/trading-client/account-module.d.ts.map +1 -0
  93. package/dist/perpetual/trading-client/account-module.js +357 -0
  94. package/dist/perpetual/trading-client/account-module.js.map +1 -0
  95. package/dist/perpetual/trading-client/base-module.d.ts +27 -0
  96. package/dist/perpetual/trading-client/base-module.d.ts.map +1 -0
  97. package/dist/perpetual/trading-client/base-module.js +49 -0
  98. package/dist/perpetual/trading-client/base-module.js.map +1 -0
  99. package/dist/perpetual/trading-client/info-module.d.ts +24 -0
  100. package/dist/perpetual/trading-client/info-module.d.ts.map +1 -0
  101. package/dist/perpetual/trading-client/info-module.js +33 -0
  102. package/dist/perpetual/trading-client/info-module.js.map +1 -0
  103. package/dist/perpetual/trading-client/markets-information-module.d.ts +53 -0
  104. package/dist/perpetual/trading-client/markets-information-module.d.ts.map +1 -0
  105. package/dist/perpetual/trading-client/markets-information-module.js +106 -0
  106. package/dist/perpetual/trading-client/markets-information-module.js.map +1 -0
  107. package/dist/perpetual/trading-client/order-management-module.d.ts +40 -0
  108. package/dist/perpetual/trading-client/order-management-module.d.ts.map +1 -0
  109. package/dist/perpetual/trading-client/order-management-module.js +71 -0
  110. package/dist/perpetual/trading-client/order-management-module.js.map +1 -0
  111. package/dist/perpetual/trading-client/testnet-module.d.ts +27 -0
  112. package/dist/perpetual/trading-client/testnet-module.d.ts.map +1 -0
  113. package/dist/perpetual/trading-client/testnet-module.js +45 -0
  114. package/dist/perpetual/trading-client/testnet-module.js.map +1 -0
  115. package/dist/perpetual/trading-client/trading-client.d.ts +75 -0
  116. package/dist/perpetual/trading-client/trading-client.d.ts.map +1 -0
  117. package/dist/perpetual/trading-client/trading-client.js +115 -0
  118. package/dist/perpetual/trading-client/trading-client.js.map +1 -0
  119. package/dist/perpetual/transfer-object.d.ts +12 -0
  120. package/dist/perpetual/transfer-object.d.ts.map +1 -0
  121. package/dist/perpetual/transfer-object.js +57 -0
  122. package/dist/perpetual/transfer-object.js.map +1 -0
  123. package/dist/perpetual/transfers.d.ts +54 -0
  124. package/dist/perpetual/transfers.d.ts.map +1 -0
  125. package/dist/perpetual/transfers.js +90 -0
  126. package/dist/perpetual/transfers.js.map +1 -0
  127. package/dist/perpetual/user-client/onboarding.d.ts +101 -0
  128. package/dist/perpetual/user-client/onboarding.d.ts.map +1 -0
  129. package/dist/perpetual/user-client/onboarding.js +247 -0
  130. package/dist/perpetual/user-client/onboarding.js.map +1 -0
  131. package/dist/perpetual/user-client/user-client.d.ts +45 -0
  132. package/dist/perpetual/user-client/user-client.d.ts.map +1 -0
  133. package/dist/perpetual/user-client/user-client.js +185 -0
  134. package/dist/perpetual/user-client/user-client.js.map +1 -0
  135. package/dist/perpetual/withdrawal-object.d.ts +12 -0
  136. package/dist/perpetual/withdrawal-object.d.ts.map +1 -0
  137. package/dist/perpetual/withdrawal-object.js +51 -0
  138. package/dist/perpetual/withdrawal-object.js.map +1 -0
  139. package/dist/perpetual/withdrawals.d.ts +40 -0
  140. package/dist/perpetual/withdrawals.d.ts.map +1 -0
  141. package/dist/perpetual/withdrawals.js +65 -0
  142. package/dist/perpetual/withdrawals.js.map +1 -0
  143. package/dist/utils/date.d.ts +13 -0
  144. package/dist/utils/date.d.ts.map +1 -0
  145. package/dist/utils/date.js +21 -0
  146. package/dist/utils/date.js.map +1 -0
  147. package/dist/utils/env.d.ts +50 -0
  148. package/dist/utils/env.d.ts.map +1 -0
  149. package/dist/utils/env.js +157 -0
  150. package/dist/utils/env.js.map +1 -0
  151. package/dist/utils/http.d.ts +98 -0
  152. package/dist/utils/http.d.ts.map +1 -0
  153. package/dist/utils/http.js +290 -0
  154. package/dist/utils/http.js.map +1 -0
  155. package/dist/utils/model.d.ts +35 -0
  156. package/dist/utils/model.d.ts.map +1 -0
  157. package/dist/utils/model.js +86 -0
  158. package/dist/utils/model.js.map +1 -0
  159. package/dist/utils/nonce.d.ts +9 -0
  160. package/dist/utils/nonce.d.ts.map +1 -0
  161. package/dist/utils/nonce.js +14 -0
  162. package/dist/utils/nonce.js.map +1 -0
  163. package/dist/utils/string.d.ts +10 -0
  164. package/dist/utils/string.d.ts.map +1 -0
  165. package/dist/utils/string.js +20 -0
  166. package/dist/utils/string.js.map +1 -0
  167. package/package.json +56 -0
  168. package/wasm/stark_crypto_wasm-web.js +5 -0
  169. package/wasm/stark_crypto_wasm.d-web.ts +63 -0
  170. package/wasm/stark_crypto_wasm.d.ts +63 -0
  171. package/wasm/stark_crypto_wasm.js +362 -0
  172. package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
  173. package/wasm/stark_crypto_wasm_bg.wasm +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/perpetual/transfers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,QAAQ,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,QAAQ,CAAC;IAC1B,SAAS,EAAE,wBAAwB,CAAC;gBAGlC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,QAAQ,EAC3B,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,QAAQ,EACzB,SAAS,EAAE,wBAAwB;CAatC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,uBAAuB,CAAC;gBAGlC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,uBAAuB;CAStC;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,YAAY;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;gBAGvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,uBAAuB,EACnC,gBAAgB,EAAE,MAAM;CAS3B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAG1C,cAAc,EAAE,OAAO,EACvB,EAAE,CAAC,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAQ9C"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Transfer models
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TransferResponseModel = exports.OnChainPerpetualTransferModel = exports.PerpetualTransferModel = exports.StarkTransferSettlement = void 0;
7
+ const model_1 = require("../utils/model");
8
+ /**
9
+ * Stark transfer settlement
10
+ */
11
+ class StarkTransferSettlement extends model_1.X10BaseModel {
12
+ amount;
13
+ assetId;
14
+ expirationTimestamp;
15
+ nonce;
16
+ receiverPositionId;
17
+ receiverPublicKey;
18
+ senderPositionId;
19
+ senderPublicKey;
20
+ signature;
21
+ constructor(amount, assetId, expirationTimestamp, nonce, receiverPositionId, receiverPublicKey, senderPositionId, senderPublicKey, signature) {
22
+ super();
23
+ this.amount = amount;
24
+ this.assetId = assetId;
25
+ this.expirationTimestamp = expirationTimestamp;
26
+ this.nonce = nonce;
27
+ this.receiverPositionId = receiverPositionId;
28
+ this.receiverPublicKey = receiverPublicKey;
29
+ this.senderPositionId = senderPositionId;
30
+ this.senderPublicKey = senderPublicKey;
31
+ this.signature = signature;
32
+ }
33
+ }
34
+ exports.StarkTransferSettlement = StarkTransferSettlement;
35
+ /**
36
+ * Perpetual transfer model
37
+ */
38
+ class PerpetualTransferModel extends model_1.X10BaseModel {
39
+ fromAccount;
40
+ toAccount;
41
+ amount;
42
+ transferredAsset;
43
+ settlement;
44
+ constructor(fromAccount, toAccount, amount, transferredAsset, settlement) {
45
+ super();
46
+ this.fromAccount = fromAccount;
47
+ this.toAccount = toAccount;
48
+ this.amount = amount;
49
+ this.transferredAsset = transferredAsset;
50
+ this.settlement = settlement;
51
+ }
52
+ }
53
+ exports.PerpetualTransferModel = PerpetualTransferModel;
54
+ /**
55
+ * On-chain perpetual transfer model
56
+ */
57
+ class OnChainPerpetualTransferModel extends model_1.X10BaseModel {
58
+ fromVault;
59
+ toVault;
60
+ amount;
61
+ settlement;
62
+ transferredAsset;
63
+ constructor(fromVault, toVault, amount, settlement, transferredAsset) {
64
+ super();
65
+ this.fromVault = fromVault;
66
+ this.toVault = toVault;
67
+ this.amount = amount;
68
+ this.settlement = settlement;
69
+ this.transferredAsset = transferredAsset;
70
+ }
71
+ }
72
+ exports.OnChainPerpetualTransferModel = OnChainPerpetualTransferModel;
73
+ /**
74
+ * Transfer response model
75
+ */
76
+ class TransferResponseModel extends model_1.X10BaseModel {
77
+ validSignature;
78
+ id;
79
+ hashCalculated;
80
+ starkExRepresentation;
81
+ constructor(validSignature, id, hashCalculated, starkExRepresentation) {
82
+ super();
83
+ this.validSignature = validSignature;
84
+ this.id = id;
85
+ this.hashCalculated = hashCalculated;
86
+ this.starkExRepresentation = starkExRepresentation;
87
+ }
88
+ }
89
+ exports.TransferResponseModel = TransferResponseModel;
90
+ //# sourceMappingURL=transfers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/perpetual/transfers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,0CAAwD;AAGxD;;GAEG;AACH,MAAa,uBAAwB,SAAQ,oBAAY;IACvD,MAAM,CAAS;IACf,OAAO,CAAW;IAClB,mBAAmB,CAAS;IAC5B,KAAK,CAAS;IACd,kBAAkB,CAAS;IAC3B,iBAAiB,CAAW;IAC5B,gBAAgB,CAAS;IACzB,eAAe,CAAW;IAC1B,SAAS,CAA2B;IAEpC,YACE,MAAc,EACd,OAAiB,EACjB,mBAA2B,EAC3B,KAAa,EACb,kBAA0B,EAC1B,iBAA2B,EAC3B,gBAAwB,EACxB,eAAyB,EACzB,SAAmC;QAEnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAjCD,0DAiCC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,oBAAY;IACtD,WAAW,CAAS;IACpB,SAAS,CAAS;IAClB,MAAM,CAAU;IAChB,gBAAgB,CAAS;IACzB,UAAU,CAA0B;IAEpC,YACE,WAAmB,EACnB,SAAiB,EACjB,MAAe,EACf,gBAAwB,EACxB,UAAmC;QAEnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AArBD,wDAqBC;AAED;;GAEG;AACH,MAAa,6BAA8B,SAAQ,oBAAY;IAC7D,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,MAAM,CAAU;IAChB,UAAU,CAA0B;IACpC,gBAAgB,CAAS;IAEzB,YACE,SAAiB,EACjB,OAAe,EACf,MAAe,EACf,UAAmC,EACnC,gBAAwB;QAExB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AArBD,sEAqBC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,oBAAY;IACrD,cAAc,CAAU;IACxB,EAAE,CAAU;IACZ,cAAc,CAAU;IACxB,qBAAqB,CAAuB;IAE5C,YACE,cAAuB,EACvB,EAAW,EACX,cAAuB,EACvB,qBAA2C;QAE3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;CACF;AAlBD,sDAkBC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Onboarding logic for deriving L2 keys from L1 Ethereum account
3
+ */
4
+ import { AccountModel } from '../accounts';
5
+ import { X10BaseModel } from '../../utils/model';
6
+ /**
7
+ * Stark key pair
8
+ */
9
+ export declare class StarkKeyPair {
10
+ private: bigint;
11
+ public: bigint;
12
+ constructor(privateKey: bigint, publicKey: bigint);
13
+ get publicHex(): string;
14
+ get privateHex(): string;
15
+ }
16
+ /**
17
+ * Onboarded client model
18
+ */
19
+ export declare class OnboardedClientModel extends X10BaseModel {
20
+ l1Address: string;
21
+ defaultAccount: AccountModel;
22
+ constructor(l1Address: string, defaultAccount: AccountModel);
23
+ }
24
+ /**
25
+ * On-boarded account
26
+ */
27
+ export interface OnBoardedAccount {
28
+ account: AccountModel;
29
+ l2KeyPair: StarkKeyPair;
30
+ }
31
+ /**
32
+ * Account registration
33
+ */
34
+ export declare class AccountRegistration {
35
+ accountIndex: number;
36
+ wallet: string;
37
+ tosAccepted: boolean;
38
+ time: Date;
39
+ action: string;
40
+ host: string;
41
+ constructor(accountIndex: number, wallet: string, tosAccepted: boolean, time: Date, action: string, host: string);
42
+ get timeString(): string;
43
+ /**
44
+ * Convert to EIP-712 signable message
45
+ */
46
+ toSignableMessage(signingDomain: string): {
47
+ domain: any;
48
+ types: any;
49
+ message: any;
50
+ primaryType?: string;
51
+ };
52
+ toJson(): Record<string, any>;
53
+ }
54
+ /**
55
+ * Onboarding payload
56
+ */
57
+ export declare class OnboardingPayLoad {
58
+ l1Signature: string;
59
+ l2Key: bigint;
60
+ l2R: bigint;
61
+ l2S: bigint;
62
+ accountRegistration: AccountRegistration;
63
+ referralCode?: string;
64
+ constructor(l1Signature: string, l2Key: bigint, l2R: bigint, l2S: bigint, accountRegistration: AccountRegistration, referralCode?: string);
65
+ toJson(): Record<string, any>;
66
+ }
67
+ /**
68
+ * Sub-account onboarding payload
69
+ */
70
+ export declare class SubAccountOnboardingPayload {
71
+ l2Key: bigint;
72
+ l2R: bigint;
73
+ l2S: bigint;
74
+ accountRegistration: AccountRegistration;
75
+ description: string;
76
+ constructor(l2Key: bigint, l2R: bigint, l2S: bigint, accountRegistration: AccountRegistration, description: string);
77
+ toJson(): Record<string, any>;
78
+ }
79
+ export declare const REGISTER_ACTION = "REGISTER";
80
+ export declare const SUB_ACCOUNT_ACTION = "CREATE_SUB_ACCOUNT";
81
+ /**
82
+ * Get registration struct to sign
83
+ */
84
+ export declare function getRegistrationStructToSign(accountIndex: number, address: string, timestamp: Date, action: string, host: string): AccountRegistration;
85
+ /**
86
+ * Get key derivation struct to sign (EIP-712)
87
+ */
88
+ export declare function getKeyDerivationStructToSign(accountIndex: number, address: string, signingDomain: string): any;
89
+ /**
90
+ * Get L2 keys from L1 account
91
+ */
92
+ export declare function getL2KeysFromL1Account(l1PrivateKey: string, accountIndex: number, signingDomain: string): Promise<StarkKeyPair>;
93
+ /**
94
+ * Get onboarding payload
95
+ */
96
+ export declare function getOnboardingPayload(l1PrivateKey: string, signingDomain: string, keyPair: StarkKeyPair, host: string, referralCode?: string, time?: Date): Promise<OnboardingPayLoad>;
97
+ /**
98
+ * Get sub-account creation payload
99
+ */
100
+ export declare function getSubAccountCreationPayload(accountIndex: number, l1Address: string, keyPair: StarkKeyPair, description: string, host: string, time?: Date): Promise<SubAccountOnboardingPayload>;
101
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../src/perpetual/user-client/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ /**
3
+ * Onboarding logic for deriving L2 keys from L1 Ethereum account
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SUB_ACCOUNT_ACTION = exports.REGISTER_ACTION = exports.SubAccountOnboardingPayload = exports.OnboardingPayLoad = exports.AccountRegistration = exports.OnboardedClientModel = exports.StarkKeyPair = void 0;
7
+ exports.getRegistrationStructToSign = getRegistrationStructToSign;
8
+ exports.getKeyDerivationStructToSign = getKeyDerivationStructToSign;
9
+ exports.getL2KeysFromL1Account = getL2KeysFromL1Account;
10
+ exports.getOnboardingPayload = getOnboardingPayload;
11
+ exports.getSubAccountCreationPayload = getSubAccountCreationPayload;
12
+ const ethers_1 = require("ethers");
13
+ const model_1 = require("../../utils/model");
14
+ const signer_1 = require("../crypto/signer");
15
+ /**
16
+ * Stark key pair
17
+ */
18
+ class StarkKeyPair {
19
+ private;
20
+ public;
21
+ constructor(privateKey, publicKey) {
22
+ this.private = privateKey;
23
+ this.public = publicKey;
24
+ }
25
+ get publicHex() {
26
+ return '0x' + this.public.toString(16);
27
+ }
28
+ get privateHex() {
29
+ return '0x' + this.private.toString(16);
30
+ }
31
+ }
32
+ exports.StarkKeyPair = StarkKeyPair;
33
+ /**
34
+ * Onboarded client model
35
+ */
36
+ class OnboardedClientModel extends model_1.X10BaseModel {
37
+ l1Address;
38
+ defaultAccount;
39
+ constructor(l1Address, defaultAccount) {
40
+ super();
41
+ this.l1Address = l1Address;
42
+ this.defaultAccount = defaultAccount;
43
+ }
44
+ }
45
+ exports.OnboardedClientModel = OnboardedClientModel;
46
+ /**
47
+ * Account registration
48
+ */
49
+ class AccountRegistration {
50
+ accountIndex;
51
+ wallet;
52
+ tosAccepted;
53
+ time;
54
+ action;
55
+ host;
56
+ constructor(accountIndex, wallet, tosAccepted, time, action, host) {
57
+ this.accountIndex = accountIndex;
58
+ this.wallet = wallet;
59
+ this.tosAccepted = tosAccepted;
60
+ this.time = time;
61
+ this.action = action;
62
+ this.host = host;
63
+ }
64
+ get timeString() {
65
+ return this.time.toISOString().replace(/\.\d{3}Z$/, 'Z');
66
+ }
67
+ /**
68
+ * Convert to EIP-712 signable message
69
+ */
70
+ toSignableMessage(signingDomain) {
71
+ const domain = {
72
+ name: signingDomain,
73
+ };
74
+ // Ethers v6 expects types without EIP712Domain included
75
+ const types = {
76
+ AccountRegistration: [
77
+ { name: 'accountIndex', type: 'int8' },
78
+ { name: 'wallet', type: 'address' },
79
+ { name: 'tosAccepted', type: 'bool' },
80
+ { name: 'time', type: 'string' },
81
+ { name: 'action', type: 'string' },
82
+ { name: 'host', type: 'string' },
83
+ ],
84
+ };
85
+ const message = {
86
+ accountIndex: this.accountIndex,
87
+ wallet: this.wallet,
88
+ tosAccepted: this.tosAccepted,
89
+ time: this.timeString,
90
+ action: this.action,
91
+ host: this.host,
92
+ };
93
+ return {
94
+ domain,
95
+ types: types,
96
+ primaryType: 'AccountRegistration',
97
+ message,
98
+ };
99
+ }
100
+ toJson() {
101
+ return {
102
+ accountIndex: this.accountIndex,
103
+ wallet: this.wallet,
104
+ tosAccepted: this.tosAccepted,
105
+ time: this.timeString,
106
+ action: this.action,
107
+ host: this.host,
108
+ };
109
+ }
110
+ }
111
+ exports.AccountRegistration = AccountRegistration;
112
+ /**
113
+ * Onboarding payload
114
+ */
115
+ class OnboardingPayLoad {
116
+ l1Signature;
117
+ l2Key;
118
+ l2R;
119
+ l2S;
120
+ accountRegistration;
121
+ referralCode;
122
+ constructor(l1Signature, l2Key, l2R, l2S, accountRegistration, referralCode) {
123
+ this.l1Signature = l1Signature;
124
+ this.l2Key = l2Key;
125
+ this.l2R = l2R;
126
+ this.l2S = l2S;
127
+ this.accountRegistration = accountRegistration;
128
+ this.referralCode = referralCode;
129
+ }
130
+ toJson() {
131
+ return {
132
+ l1Signature: this.l1Signature,
133
+ l2Key: '0x' + this.l2Key.toString(16),
134
+ l2Signature: {
135
+ r: '0x' + this.l2R.toString(16),
136
+ s: '0x' + this.l2S.toString(16),
137
+ },
138
+ accountCreation: this.accountRegistration.toJson(),
139
+ referralCode: this.referralCode,
140
+ };
141
+ }
142
+ }
143
+ exports.OnboardingPayLoad = OnboardingPayLoad;
144
+ /**
145
+ * Sub-account onboarding payload
146
+ */
147
+ class SubAccountOnboardingPayload {
148
+ l2Key;
149
+ l2R;
150
+ l2S;
151
+ accountRegistration;
152
+ description;
153
+ constructor(l2Key, l2R, l2S, accountRegistration, description) {
154
+ this.l2Key = l2Key;
155
+ this.l2R = l2R;
156
+ this.l2S = l2S;
157
+ this.accountRegistration = accountRegistration;
158
+ this.description = description;
159
+ }
160
+ toJson() {
161
+ return {
162
+ l2Key: '0x' + this.l2Key.toString(16),
163
+ l2Signature: {
164
+ r: '0x' + this.l2R.toString(16),
165
+ s: '0x' + this.l2S.toString(16),
166
+ },
167
+ accountCreation: this.accountRegistration.toJson(),
168
+ description: this.description,
169
+ };
170
+ }
171
+ }
172
+ exports.SubAccountOnboardingPayload = SubAccountOnboardingPayload;
173
+ exports.REGISTER_ACTION = 'REGISTER';
174
+ exports.SUB_ACCOUNT_ACTION = 'CREATE_SUB_ACCOUNT';
175
+ /**
176
+ * Get registration struct to sign
177
+ */
178
+ function getRegistrationStructToSign(accountIndex, address, timestamp, action, host) {
179
+ return new AccountRegistration(accountIndex, address, true, timestamp, action, host);
180
+ }
181
+ /**
182
+ * Get key derivation struct to sign (EIP-712)
183
+ */
184
+ function getKeyDerivationStructToSign(accountIndex, address, signingDomain) {
185
+ const domain = {
186
+ name: signingDomain,
187
+ };
188
+ // Ethers v6 expects types without EIP712Domain included
189
+ const types = {
190
+ AccountCreation: [
191
+ { name: 'accountIndex', type: 'int8' },
192
+ { name: 'wallet', type: 'address' },
193
+ { name: 'tosAccepted', type: 'bool' },
194
+ ],
195
+ };
196
+ const message = {
197
+ accountIndex,
198
+ wallet: address,
199
+ tosAccepted: true,
200
+ };
201
+ return {
202
+ domain,
203
+ types,
204
+ primaryType: 'AccountCreation',
205
+ message,
206
+ };
207
+ }
208
+ /**
209
+ * Get L2 keys from L1 account
210
+ */
211
+ async function getL2KeysFromL1Account(l1PrivateKey, accountIndex, signingDomain) {
212
+ const wallet = new ethers_1.ethers.Wallet(l1PrivateKey);
213
+ const struct = getKeyDerivationStructToSign(accountIndex, wallet.address, signingDomain);
214
+ // Sign with ethers.js EIP-712
215
+ const signature = await wallet.signTypedData(struct.domain, struct.types, struct.message);
216
+ // Generate keypair from Ethereum signature using WASM
217
+ const [privateKey, publicKey] = (0, signer_1.generateKeypairFromEthSignature)(signature);
218
+ return new StarkKeyPair(privateKey, publicKey);
219
+ }
220
+ /**
221
+ * Get onboarding payload
222
+ */
223
+ async function getOnboardingPayload(l1PrivateKey, signingDomain, keyPair, host, referralCode, time) {
224
+ const wallet = new ethers_1.ethers.Wallet(l1PrivateKey);
225
+ const timestamp = time || new Date();
226
+ const registrationPayload = getRegistrationStructToSign(0, wallet.address, timestamp, exports.REGISTER_ACTION, host);
227
+ const signableMessage = registrationPayload.toSignableMessage(signingDomain);
228
+ const l1Signature = await wallet.signTypedData(signableMessage.domain, signableMessage.types, signableMessage.message);
229
+ // L2 message: pedersen_hash(l1_address, l2_public_key)
230
+ const l1AddressInt = BigInt(wallet.address);
231
+ const l2Message = (0, signer_1.pedersenHash)(l1AddressInt, keyPair.public);
232
+ const [l2R, l2S] = (0, signer_1.sign)(l2Message, keyPair.private);
233
+ return new OnboardingPayLoad(l1Signature, keyPair.public, l2R, l2S, registrationPayload, referralCode);
234
+ }
235
+ /**
236
+ * Get sub-account creation payload
237
+ */
238
+ async function getSubAccountCreationPayload(accountIndex, l1Address, keyPair, description, host, time) {
239
+ const timestamp = time || new Date();
240
+ const registrationPayload = getRegistrationStructToSign(accountIndex, l1Address, timestamp, exports.SUB_ACCOUNT_ACTION, host);
241
+ // L2 message: pedersen_hash(l1_address, l2_public_key)
242
+ const l1AddressInt = BigInt(l1Address);
243
+ const l2Message = (0, signer_1.pedersenHash)(l1AddressInt, keyPair.public);
244
+ const [l2R, l2S] = (0, signer_1.sign)(l2Message, keyPair.private);
245
+ return new SubAccountOnboardingPayload(keyPair.public, l2R, l2S, registrationPayload, description);
246
+ }
247
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/perpetual/user-client/onboarding.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAuNH,kEAeC;AAKD,oEA8BC;AAKD,wDAuBC;AAKD,oDAuCC;AAKD,oEA8BC;AAlXD,mCAAgC;AAGhC,6CAAiD;AACjD,6CAAoG;AAEpG;;GAEG;AACH,MAAa,YAAY;IACvB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEf,YAAY,UAAkB,EAAE,SAAiB;QAC/C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAhBD,oCAgBC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,oBAAY;IACpD,SAAS,CAAS;IAClB,cAAc,CAAe;IAE7B,YAAY,SAAiB,EAAE,cAA4B;QACzD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AATD,oDASC;AAUD;;GAEG;AACH,MAAa,mBAAmB;IAC9B,YAAY,CAAS;IACrB,MAAM,CAAS;IACf,WAAW,CAAU;IACrB,IAAI,CAAO;IACX,MAAM,CAAS;IACf,IAAI,CAAS;IAEb,YACE,YAAoB,EACpB,MAAc,EACd,WAAoB,EACpB,IAAU,EACV,MAAc,EACd,IAAY;QAEZ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,aAAqB;QACrC,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,aAAa;SACpB,CAAC;QAEF,wDAAwD;QACxD,MAAM,KAAK,GAAG;YACZ,mBAAmB,EAAE;gBACnB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;gBACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;gBACrC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;SACF,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,OAAO;YACL,MAAM;YACN,KAAK,EAAE,KAAY;YACnB,WAAW,EAAE,qBAAqB;YAClC,OAAO;SACR,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AA3ED,kDA2EC;AAED;;GAEG;AACH,MAAa,iBAAiB;IAC5B,WAAW,CAAS;IACpB,KAAK,CAAS;IACd,GAAG,CAAS;IACZ,GAAG,CAAS;IACZ,mBAAmB,CAAsB;IACzC,YAAY,CAAU;IAEtB,YACE,WAAmB,EACnB,KAAa,EACb,GAAW,EACX,GAAW,EACX,mBAAwC,EACxC,YAAqB;QAErB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE;gBACX,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;aAChC;YACD,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;YAClD,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;CACF;AApCD,8CAoCC;AAED;;GAEG;AACH,MAAa,2BAA2B;IACtC,KAAK,CAAS;IACd,GAAG,CAAS;IACZ,GAAG,CAAS;IACZ,mBAAmB,CAAsB;IACzC,WAAW,CAAS;IAEpB,YACE,KAAa,EACb,GAAW,EACX,GAAW,EACX,mBAAwC,EACxC,WAAmB;QAEnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,WAAW,EAAE;gBACX,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;aAChC;YACD,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;YAClD,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;IACJ,CAAC;CACF;AAhCD,kEAgCC;AAEY,QAAA,eAAe,GAAG,UAAU,CAAC;AAC7B,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD;;GAEG;AACH,SAAgB,2BAA2B,CACzC,YAAoB,EACpB,OAAe,EACf,SAAe,EACf,MAAc,EACd,IAAY;IAEZ,OAAO,IAAI,mBAAmB,CAC5B,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,MAAM,EACN,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,YAAoB,EACpB,OAAe,EACf,aAAqB;IAErB,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,aAAa;KACpB,CAAC;IAEF,wDAAwD;IACxD,MAAM,KAAK,GAAG;QACZ,eAAe,EAAE;YACf,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE;YACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;SACtC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,YAAY;QACZ,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,IAAI;KAClB,CAAC;IAEF,OAAO;QACL,MAAM;QACN,KAAK;QACL,WAAW,EAAE,iBAAiB;QAC9B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAC1C,YAAoB,EACpB,YAAoB,EACpB,aAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,4BAA4B,CACzC,YAAY,EACZ,MAAM,CAAC,OAAO,EACd,aAAa,CACd,CAAC;IAEF,8BAA8B;IAC9B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAC1C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,CACf,CAAC;IAEF,sDAAsD;IACtD,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,IAAA,wCAA+B,EAAC,SAAS,CAAC,CAAC;IAE3E,OAAO,IAAI,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,aAAqB,EACrB,OAAqB,EACrB,IAAY,EACZ,YAAqB,EACrB,IAAW;IAEX,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IAErC,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,CAAC,EACD,MAAM,CAAC,OAAO,EACd,SAAS,EACT,uBAAe,EACf,IAAI,CACL,CAAC;IAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,aAAa,CAC5C,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,KAAY,EAC5B,eAAe,CAAC,OAAc,CAC/B,CAAC;IAEF,uDAAuD;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAA,aAAS,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,IAAI,iBAAiB,CAC1B,WAAW,EACX,OAAO,CAAC,MAAM,EACd,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,YAAY,CACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAChD,YAAoB,EACpB,SAAiB,EACjB,OAAqB,EACrB,WAAmB,EACnB,IAAY,EACZ,IAAW;IAEX,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IAErC,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,YAAY,EACZ,SAAS,EACT,SAAS,EACT,0BAAkB,EAClB,IAAI,CACL,CAAC;IAEF,uDAAuD;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAA,aAAS,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO,IAAI,2BAA2B,CACpC,OAAO,CAAC,MAAM,EACd,GAAG,EACH,GAAG,EACH,mBAAmB,EACnB,WAAW,CACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * User client for onboarding and account management
3
+ */
4
+ import { EndpointConfig } from '../configuration';
5
+ import { AccountModel, ApiKeyResponseModel } from '../accounts';
6
+ import { OnBoardedAccount } from './onboarding';
7
+ /**
8
+ * User client for onboarding and L1 account operations
9
+ */
10
+ export declare class UserClient {
11
+ private endpointConfig;
12
+ private l1PrivateKey;
13
+ constructor(endpointConfig: EndpointConfig, l1PrivateKey: () => string);
14
+ /**
15
+ * Get URL
16
+ */
17
+ private getUrl;
18
+ /**
19
+ * Onboard new account
20
+ */
21
+ onboard(referralCode?: string): Promise<OnBoardedAccount>;
22
+ /**
23
+ * Onboard sub-account
24
+ */
25
+ onboardSubaccount(accountIndex: number, description?: string): Promise<OnBoardedAccount>;
26
+ /**
27
+ * Get all accounts
28
+ */
29
+ getAccounts(): Promise<OnBoardedAccount[]>;
30
+ /**
31
+ * Create account API key
32
+ */
33
+ createAccountApiKey(account: AccountModel, description?: string): Promise<string>;
34
+ /**
35
+ * Delete account API key
36
+ * https://api.docs.extended.exchange/#delete-api-key
37
+ */
38
+ deleteAccountApiKey(account: AccountModel, apiKeyId: number): Promise<void>;
39
+ /**
40
+ * Get list of account API keys
41
+ * https://api.docs.extended.exchange/#get-api-keys
42
+ */
43
+ getAccountApiKeys(account: AccountModel): Promise<ApiKeyResponseModel[]>;
44
+ }
45
+ //# sourceMappingURL=user-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-client.d.ts","sourceRoot":"","sources":["../../../src/perpetual/user-client/user-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAsB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIpF,OAAO,EACL,gBAAgB,EAKjB,MAAM,cAAc,CAAC;AAMtB;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;gBAEvB,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,MAAM;IAKtE;;OAEG;IACH,OAAO,CAAC,MAAM;IAOd;;OAEG;IACG,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkC/D;;OAEG;IACG,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAoE5B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAuChD;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCvF;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjF;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAwB/E"}