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.
- package/LICENSE +28 -0
- package/README.md +445 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/perpetual/accounts.d.ts +88 -0
- package/dist/perpetual/accounts.d.ts.map +1 -0
- package/dist/perpetual/accounts.js +152 -0
- package/dist/perpetual/accounts.js.map +1 -0
- package/dist/perpetual/amounts.d.ts +41 -0
- package/dist/perpetual/amounts.d.ts.map +1 -0
- package/dist/perpetual/amounts.js +79 -0
- package/dist/perpetual/amounts.js.map +1 -0
- package/dist/perpetual/assets.d.ts +74 -0
- package/dist/perpetual/assets.d.ts.map +1 -0
- package/dist/perpetual/assets.js +119 -0
- package/dist/perpetual/assets.js.map +1 -0
- package/dist/perpetual/bridges.d.ts +29 -0
- package/dist/perpetual/bridges.d.ts.map +1 -0
- package/dist/perpetual/bridges.js +45 -0
- package/dist/perpetual/bridges.js.map +1 -0
- package/dist/perpetual/candles.d.ts +26 -0
- package/dist/perpetual/candles.d.ts.map +1 -0
- package/dist/perpetual/candles.js +29 -0
- package/dist/perpetual/candles.js.map +1 -0
- package/dist/perpetual/clients.d.ts +15 -0
- package/dist/perpetual/clients.d.ts.map +1 -0
- package/dist/perpetual/clients.js +25 -0
- package/dist/perpetual/clients.js.map +1 -0
- package/dist/perpetual/configuration.d.ts +39 -0
- package/dist/perpetual/configuration.d.ts.map +1 -0
- package/dist/perpetual/configuration.js +61 -0
- package/dist/perpetual/configuration.js.map +1 -0
- package/dist/perpetual/crypto/signer.d.ts +164 -0
- package/dist/perpetual/crypto/signer.d.ts.map +1 -0
- package/dist/perpetual/crypto/signer.js +318 -0
- package/dist/perpetual/crypto/signer.js.map +1 -0
- package/dist/perpetual/fees.d.ts +20 -0
- package/dist/perpetual/fees.d.ts.map +1 -0
- package/dist/perpetual/fees.js +35 -0
- package/dist/perpetual/fees.js.map +1 -0
- package/dist/perpetual/funding-rates.d.ts +15 -0
- package/dist/perpetual/funding-rates.d.ts.map +1 -0
- package/dist/perpetual/funding-rates.js +23 -0
- package/dist/perpetual/funding-rates.js.map +1 -0
- package/dist/perpetual/markets.d.ts +83 -0
- package/dist/perpetual/markets.d.ts.map +1 -0
- package/dist/perpetual/markets.js +124 -0
- package/dist/perpetual/markets.js.map +1 -0
- package/dist/perpetual/order-object-settlement.d.ts +43 -0
- package/dist/perpetual/order-object-settlement.d.ts.map +1 -0
- package/dist/perpetual/order-object-settlement.js +121 -0
- package/dist/perpetual/order-object-settlement.js.map +1 -0
- package/dist/perpetual/order-object.d.ts +38 -0
- package/dist/perpetual/order-object.d.ts.map +1 -0
- package/dist/perpetual/order-object.js +90 -0
- package/dist/perpetual/order-object.js.map +1 -0
- package/dist/perpetual/orderbooks.d.ts +23 -0
- package/dist/perpetual/orderbooks.d.ts.map +1 -0
- package/dist/perpetual/orderbooks.js +36 -0
- package/dist/perpetual/orderbooks.js.map +1 -0
- package/dist/perpetual/orders.d.ts +207 -0
- package/dist/perpetual/orders.d.ts.map +1 -0
- package/dist/perpetual/orders.js +266 -0
- package/dist/perpetual/orders.js.map +1 -0
- package/dist/perpetual/positions.d.ts +80 -0
- package/dist/perpetual/positions.d.ts.map +1 -0
- package/dist/perpetual/positions.js +94 -0
- package/dist/perpetual/positions.js.map +1 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts +47 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts.map +1 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.js +125 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.js.map +1 -0
- package/dist/perpetual/stream-client/stream-client.d.ts +46 -0
- package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -0
- package/dist/perpetual/stream-client/stream-client.js +79 -0
- package/dist/perpetual/stream-client/stream-client.js.map +1 -0
- package/dist/perpetual/trades.d.ts +44 -0
- package/dist/perpetual/trades.d.ts.map +1 -0
- package/dist/perpetual/trades.js +48 -0
- package/dist/perpetual/trades.js.map +1 -0
- package/dist/perpetual/trading-client/account-module.d.ts +192 -0
- package/dist/perpetual/trading-client/account-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/account-module.js +357 -0
- package/dist/perpetual/trading-client/account-module.js.map +1 -0
- package/dist/perpetual/trading-client/base-module.d.ts +27 -0
- package/dist/perpetual/trading-client/base-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/base-module.js +49 -0
- package/dist/perpetual/trading-client/base-module.js.map +1 -0
- package/dist/perpetual/trading-client/info-module.d.ts +24 -0
- package/dist/perpetual/trading-client/info-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/info-module.js +33 -0
- package/dist/perpetual/trading-client/info-module.js.map +1 -0
- package/dist/perpetual/trading-client/markets-information-module.d.ts +53 -0
- package/dist/perpetual/trading-client/markets-information-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/markets-information-module.js +106 -0
- package/dist/perpetual/trading-client/markets-information-module.js.map +1 -0
- package/dist/perpetual/trading-client/order-management-module.d.ts +40 -0
- package/dist/perpetual/trading-client/order-management-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/order-management-module.js +71 -0
- package/dist/perpetual/trading-client/order-management-module.js.map +1 -0
- package/dist/perpetual/trading-client/testnet-module.d.ts +27 -0
- package/dist/perpetual/trading-client/testnet-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/testnet-module.js +45 -0
- package/dist/perpetual/trading-client/testnet-module.js.map +1 -0
- package/dist/perpetual/trading-client/trading-client.d.ts +75 -0
- package/dist/perpetual/trading-client/trading-client.d.ts.map +1 -0
- package/dist/perpetual/trading-client/trading-client.js +115 -0
- package/dist/perpetual/trading-client/trading-client.js.map +1 -0
- package/dist/perpetual/transfer-object.d.ts +12 -0
- package/dist/perpetual/transfer-object.d.ts.map +1 -0
- package/dist/perpetual/transfer-object.js +57 -0
- package/dist/perpetual/transfer-object.js.map +1 -0
- package/dist/perpetual/transfers.d.ts +54 -0
- package/dist/perpetual/transfers.d.ts.map +1 -0
- package/dist/perpetual/transfers.js +90 -0
- package/dist/perpetual/transfers.js.map +1 -0
- package/dist/perpetual/user-client/onboarding.d.ts +101 -0
- package/dist/perpetual/user-client/onboarding.d.ts.map +1 -0
- package/dist/perpetual/user-client/onboarding.js +247 -0
- package/dist/perpetual/user-client/onboarding.js.map +1 -0
- package/dist/perpetual/user-client/user-client.d.ts +45 -0
- package/dist/perpetual/user-client/user-client.d.ts.map +1 -0
- package/dist/perpetual/user-client/user-client.js +185 -0
- package/dist/perpetual/user-client/user-client.js.map +1 -0
- package/dist/perpetual/withdrawal-object.d.ts +12 -0
- package/dist/perpetual/withdrawal-object.d.ts.map +1 -0
- package/dist/perpetual/withdrawal-object.js +51 -0
- package/dist/perpetual/withdrawal-object.js.map +1 -0
- package/dist/perpetual/withdrawals.d.ts +40 -0
- package/dist/perpetual/withdrawals.d.ts.map +1 -0
- package/dist/perpetual/withdrawals.js +65 -0
- package/dist/perpetual/withdrawals.js.map +1 -0
- package/dist/utils/date.d.ts +13 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +21 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/env.d.ts +50 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +157 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/http.d.ts +98 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +290 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/model.d.ts +35 -0
- package/dist/utils/model.d.ts.map +1 -0
- package/dist/utils/model.js +86 -0
- package/dist/utils/model.js.map +1 -0
- package/dist/utils/nonce.d.ts +9 -0
- package/dist/utils/nonce.d.ts.map +1 -0
- package/dist/utils/nonce.js +14 -0
- package/dist/utils/nonce.js.map +1 -0
- package/dist/utils/string.d.ts +10 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +20 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +56 -0
- package/wasm/stark_crypto_wasm-web.js +5 -0
- package/wasm/stark_crypto_wasm.d-web.ts +63 -0
- package/wasm/stark_crypto_wasm.d.ts +63 -0
- package/wasm/stark_crypto_wasm.js +362 -0
- package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
- 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":"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"}
|
|
@@ -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"}
|