extended-typescript-sdk 0.0.1 → 0.0.3
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 +3 -0
- package/README.md +539 -445
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/perpetual/accounts.d.ts +62 -3
- package/dist/perpetual/accounts.d.ts.map +1 -1
- package/dist/perpetual/accounts.js +87 -3
- package/dist/perpetual/accounts.js.map +1 -1
- package/dist/perpetual/crypto/signer.d.ts.map +1 -1
- package/dist/perpetual/crypto/signer.js +4 -1
- package/dist/perpetual/crypto/signer.js.map +1 -1
- package/dist/perpetual/custom-signer.d.ts +51 -0
- package/dist/perpetual/custom-signer.d.ts.map +1 -0
- package/dist/perpetual/custom-signer.js +18 -0
- package/dist/perpetual/custom-signer.js.map +1 -0
- package/dist/perpetual/order-object-settlement.d.ts +3 -3
- package/dist/perpetual/order-object-settlement.d.ts.map +1 -1
- package/dist/perpetual/order-object-settlement.js +2 -2
- package/dist/perpetual/order-object-settlement.js.map +1 -1
- package/dist/perpetual/order-object.d.ts +1 -1
- package/dist/perpetual/order-object.d.ts.map +1 -1
- package/dist/perpetual/order-object.js +4 -4
- package/dist/perpetual/order-object.js.map +1 -1
- package/dist/perpetual/stream-client/stream-client.d.ts +16 -0
- package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -1
- package/dist/perpetual/stream-client/stream-client.js +28 -0
- package/dist/perpetual/stream-client/stream-client.js.map +1 -1
- package/dist/perpetual/trading-client/account-module.js +2 -2
- package/dist/perpetual/trading-client/account-module.js.map +1 -1
- package/dist/perpetual/trading-client/trading-client.js +1 -1
- package/dist/perpetual/trading-client/trading-client.js.map +1 -1
- package/dist/perpetual/transfer-object.d.ts +1 -1
- package/dist/perpetual/transfer-object.d.ts.map +1 -1
- package/dist/perpetual/transfer-object.js +2 -2
- package/dist/perpetual/transfer-object.js.map +1 -1
- package/dist/perpetual/user-client/onboarding.js +2 -2
- package/dist/perpetual/user-client/onboarding.js.map +1 -1
- package/dist/perpetual/withdrawal-object.d.ts +1 -1
- package/dist/perpetual/withdrawal-object.d.ts.map +1 -1
- package/dist/perpetual/withdrawal-object.js +2 -2
- package/dist/perpetual/withdrawal-object.js.map +1 -1
- package/package.json +6 -2
- package/wasm/stark_crypto_wasm.js +12 -1
- package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
- package/wasm/stark_crypto_wasm_bg.wasm +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export { initWasm } from './perpetual/crypto/signer';
|
|
12
12
|
export { EndpointConfig, StarknetDomain, TESTNET_CONFIG, MAINNET_CONFIG } from './perpetual/configuration';
|
|
13
|
-
export { StarkPerpetualAccount, AccountModel, AccountLeverage, BalanceModel } from './perpetual/accounts';
|
|
13
|
+
export { StarkPerpetualAccount, AccountModel, AccountLeverage, BalanceModel, createStarkPerpetualAccountWithCustomSigner } from './perpetual/accounts';
|
|
14
|
+
export { CustomStarkSigner, SignatureResult, isCustomStarkSigner } from './perpetual/custom-signer';
|
|
14
15
|
export { OrderSide, OrderType, OrderStatus, OrderStatusReason, TimeInForce, OrderTpslType, SelfTradeProtectionLevel, OrderPriceType, OrderTriggerPriceType, NewOrderModel, PlacedOrderModel, OpenOrderModel, CreateOrderTpslTriggerModel, } from './perpetual/orders';
|
|
15
16
|
export { PerpetualTradingClient } from './perpetual/trading-client/trading-client';
|
|
16
17
|
export { AccountModule } from './perpetual/trading-client/account-module';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3G,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3G,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,2CAA2C,EAC5C,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGlG,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGrD,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,+BAA+B,EAC/B,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,WAAW,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,8 +24,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
24
24
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.
|
|
28
|
-
exports.SDK_VERSION = exports.getWithdrawalMsgHash = exports.getTransferMsgHash = exports.getOrderMsgHash = exports.generateKeypairFromEthSignature = exports.pedersenHash = exports.sign = exports.toEpochMillis = exports.utcNow = exports.generateNonce = exports.SettlementSignatureModel = exports.X10BaseModel = exports.StreamDataType = exports.WrappedStreamResponse = exports.WrappedApiResponse = exports.SubAccountExists = exports.NotAuthorizedException = exports.RateLimitException = exports.X10Error = void 0;
|
|
27
|
+
exports.AssetOperationStatus = exports.AssetOperationType = exports.Asset = exports.TradingConfigModel = exports.MarketStatsModel = exports.MarketModel = exports.OrderTpslTriggerParam = exports.createOrderObject = exports.TradeType = exports.PublicTradeModel = exports.AccountTradeModel = exports.ExitType = exports.PositionStatus = exports.PositionSide = exports.PositionHistoryModel = exports.PositionModel = exports.PerpetualStreamConnection = exports.PerpetualStreamClient = exports.StarkKeyPair = exports.UserClient = exports.TestnetModule = exports.InfoModule = exports.MarketsInformationModule = exports.OrderManagementModule = exports.AccountModule = exports.PerpetualTradingClient = exports.CreateOrderTpslTriggerModel = exports.OpenOrderModel = exports.PlacedOrderModel = exports.NewOrderModel = exports.OrderTriggerPriceType = exports.OrderPriceType = exports.SelfTradeProtectionLevel = exports.OrderTpslType = exports.TimeInForce = exports.OrderStatusReason = exports.OrderStatus = exports.OrderType = exports.OrderSide = exports.isCustomStarkSigner = exports.createStarkPerpetualAccountWithCustomSigner = exports.BalanceModel = exports.AccountLeverage = exports.AccountModel = exports.StarkPerpetualAccount = exports.MAINNET_CONFIG = exports.TESTNET_CONFIG = exports.StarknetDomain = exports.EndpointConfig = exports.initWasm = void 0;
|
|
28
|
+
exports.SDK_VERSION = exports.getWithdrawalMsgHash = exports.getTransferMsgHash = exports.getOrderMsgHash = exports.generateKeypairFromEthSignature = exports.pedersenHash = exports.sign = exports.toEpochMillis = exports.utcNow = exports.generateNonce = exports.SettlementSignatureModel = exports.X10BaseModel = exports.StreamDataType = exports.WrappedStreamResponse = exports.WrappedApiResponse = exports.SubAccountExists = exports.NotAuthorizedException = exports.RateLimitException = exports.X10Error = exports.DEFAULT_FEES = exports.TradingFeeModel = void 0;
|
|
29
29
|
// Initialize WASM module
|
|
30
30
|
var signer_1 = require("./perpetual/crypto/signer");
|
|
31
31
|
Object.defineProperty(exports, "initWasm", { enumerable: true, get: function () { return signer_1.initWasm; } });
|
|
@@ -41,6 +41,10 @@ Object.defineProperty(exports, "StarkPerpetualAccount", { enumerable: true, get:
|
|
|
41
41
|
Object.defineProperty(exports, "AccountModel", { enumerable: true, get: function () { return accounts_1.AccountModel; } });
|
|
42
42
|
Object.defineProperty(exports, "AccountLeverage", { enumerable: true, get: function () { return accounts_1.AccountLeverage; } });
|
|
43
43
|
Object.defineProperty(exports, "BalanceModel", { enumerable: true, get: function () { return accounts_1.BalanceModel; } });
|
|
44
|
+
Object.defineProperty(exports, "createStarkPerpetualAccountWithCustomSigner", { enumerable: true, get: function () { return accounts_1.createStarkPerpetualAccountWithCustomSigner; } });
|
|
45
|
+
// Custom Signer Support
|
|
46
|
+
var custom_signer_1 = require("./perpetual/custom-signer");
|
|
47
|
+
Object.defineProperty(exports, "isCustomStarkSigner", { enumerable: true, get: function () { return custom_signer_1.isCustomStarkSigner; } });
|
|
44
48
|
// Orders
|
|
45
49
|
var orders_1 = require("./perpetual/orders");
|
|
46
50
|
Object.defineProperty(exports, "OrderSide", { enumerable: true, get: function () { return orders_1.OrderSide; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,oDAAqD;AAA5C,kGAAA,QAAQ,OAAA;AAEjB,gBAAgB;AAChB,2DAA2G;AAAlG,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAEvE,WAAW;AACX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,oDAAqD;AAA5C,kGAAA,QAAQ,OAAA;AAEjB,gBAAgB;AAChB,2DAA2G;AAAlG,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,+GAAA,cAAc,OAAA;AAEvE,WAAW;AACX,iDAM8B;AAL5B,iHAAA,qBAAqB,OAAA;AACrB,wGAAA,YAAY,OAAA;AACZ,2GAAA,eAAe,OAAA;AACf,wGAAA,YAAY,OAAA;AACZ,uIAAA,2CAA2C,OAAA;AAG7C,wBAAwB;AACxB,2DAImC;AADjC,oHAAA,mBAAmB,OAAA;AAGrB,SAAS;AACT,6CAc4B;AAb1B,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,2GAAA,iBAAiB,OAAA;AACjB,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,kHAAA,wBAAwB,OAAA;AACxB,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,uGAAA,aAAa,OAAA;AACb,0GAAA,gBAAgB,OAAA;AAChB,wGAAA,cAAc,OAAA;AACd,qHAAA,2BAA2B,OAAA;AAG7B,iBAAiB;AACjB,4EAAmF;AAA1E,wHAAA,sBAAsB,OAAA;AAC/B,4EAA0E;AAAjE,+GAAA,aAAa,OAAA;AACtB,8FAA2F;AAAlF,gIAAA,qBAAqB,OAAA;AAC9B,oGAAiG;AAAxF,sIAAA,wBAAwB,OAAA;AACjC,sEAAoE;AAA3D,yGAAA,UAAU,OAAA;AACnB,4EAA0E;AAAjE,+GAAA,aAAa,OAAA;AAEtB,cAAc;AACd,mEAAiE;AAAxD,yGAAA,UAAU,OAAA;AACnB,iEAAoF;AAAzD,0GAAA,YAAY,OAAA;AAEvC,gBAAgB;AAChB,yEAAgF;AAAvE,sHAAA,qBAAqB,OAAA;AAC9B,qGAAkG;AAAzF,wIAAA,yBAAyB,OAAA;AAElC,qBAAqB;AACrB,mDAAoH;AAA3G,0GAAA,aAAa,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACpF,6CAAoF;AAA3E,2GAAA,iBAAiB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEvD,gBAAgB;AAChB,yDAAoF;AAA3E,iHAAA,iBAAiB,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AAEjD,UAAU;AACV,+CAAwF;AAA/E,sGAAA,WAAW,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAE1D,SAAS;AACT,6CAAqF;AAA5E,+FAAA,KAAK,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAExD,OAAO;AACP,yCAAiE;AAAxD,uGAAA,eAAe,OAAA;AAAE,oGAAA,YAAY,OAAA;AAEtC,SAAS;AACT,mCAAkG;AAAzF,kGAAA,QAAQ,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE/E,QAAQ;AACR,qCAAyF;AAAhF,0GAAA,kBAAkB,OAAA;AAAE,6GAAA,qBAAqB,OAAA;AAAE,sGAAA,cAAc,OAAA;AAClE,uCAAuE;AAA9D,qGAAA,YAAY,OAAA;AAAE,iHAAA,wBAAwB,OAAA;AAC/C,uCAA8C;AAArC,sGAAA,aAAa,OAAA;AACtB,qCAAqD;AAA5C,8FAAA,MAAM,OAAA;AAAE,qGAAA,aAAa,OAAA;AAE9B,QAAQ;AACR,8CAA4B;AAE5B,+DAA+D;AAC/D,oDAOmC;AANjC,8FAAA,IAAI,OAAA;AACJ,sGAAA,YAAY,OAAA;AACZ,yHAAA,+BAA+B,OAAA;AAC/B,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AAGtB,UAAU;AACG,QAAA,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -3,16 +3,22 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import Decimal from 'decimal.js';
|
|
5
5
|
import { X10BaseModel } from '../utils/model';
|
|
6
|
+
import { CustomStarkSigner } from './custom-signer';
|
|
6
7
|
/**
|
|
7
8
|
* Stark Perpetual Account
|
|
8
9
|
* Manages signing operations for trading
|
|
10
|
+
*
|
|
11
|
+
* Supports two modes of operation:
|
|
12
|
+
* 1. Direct signing with a private key (default)
|
|
13
|
+
* 2. Custom signer integration (e.g., Privy, Web3Auth)
|
|
9
14
|
*/
|
|
10
15
|
export declare class StarkPerpetualAccount {
|
|
11
16
|
private vault;
|
|
12
|
-
private privateKey
|
|
17
|
+
private privateKey?;
|
|
13
18
|
private publicKey;
|
|
14
19
|
private apiKey;
|
|
15
20
|
private tradingFee;
|
|
21
|
+
private customSigner?;
|
|
16
22
|
constructor(vault: number | string, privateKey: string, publicKey: string, apiKey: string);
|
|
17
23
|
getVault(): number;
|
|
18
24
|
getPublicKey(): bigint;
|
|
@@ -20,12 +26,65 @@ export declare class StarkPerpetualAccount {
|
|
|
20
26
|
getApiKey(): string;
|
|
21
27
|
getTradingFee(): Map<string, any>;
|
|
22
28
|
setTradingFee(market: string, fee: any): void;
|
|
29
|
+
/**
|
|
30
|
+
* Set a custom signer for remote signing (e.g., Privy, Web3Auth)
|
|
31
|
+
*
|
|
32
|
+
* @param signer - Custom signer implementation
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const account = new StarkPerpetualAccount(vault, privateKey, publicKey, apiKey);
|
|
37
|
+
* account.setCustomSigner(new PrivyStarkSigner(privyClient, walletId));
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
setCustomSigner(signer: CustomStarkSigner): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get the custom signer if set
|
|
43
|
+
*/
|
|
44
|
+
getCustomSigner(): CustomStarkSigner | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Clear the custom signer and use direct signing
|
|
47
|
+
*/
|
|
48
|
+
clearCustomSigner(): void;
|
|
23
49
|
/**
|
|
24
50
|
* Sign a message hash
|
|
25
|
-
* Returns [r, s] tuple
|
|
51
|
+
* Returns Promise resolving to [r, s] tuple
|
|
52
|
+
*
|
|
53
|
+
* If a custom signer is set, uses the custom signer.
|
|
54
|
+
* Otherwise, uses the built-in WASM signer with the private key.
|
|
55
|
+
*
|
|
56
|
+
* @returns Promise resolving to signature tuple [r, s]
|
|
26
57
|
*/
|
|
27
|
-
sign(msgHash: bigint): [bigint, bigint]
|
|
58
|
+
sign(msgHash: bigint): Promise<[bigint, bigint]>;
|
|
28
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a StarkPerpetualAccount with a custom signer
|
|
62
|
+
*
|
|
63
|
+
* Use this factory function when integrating with external signing services
|
|
64
|
+
* like Privy, Web3Auth, or other remote signers that don't expose private keys.
|
|
65
|
+
*
|
|
66
|
+
* Note: This function uses a dummy private key internally to maintain backward
|
|
67
|
+
* compatibility with the existing StarkPerpetualAccount constructor. The dummy
|
|
68
|
+
* key is never used for signing when a custom signer is set.
|
|
69
|
+
*
|
|
70
|
+
* @param vault - Vault ID
|
|
71
|
+
* @param publicKey - Public key as hex string
|
|
72
|
+
* @param apiKey - API key for authentication
|
|
73
|
+
* @param customSigner - Custom signer implementation
|
|
74
|
+
* @returns StarkPerpetualAccount configured with the custom signer
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const privySigner = new PrivyStarkSigner(privyClient, walletId);
|
|
79
|
+
* const account = createStarkPerpetualAccountWithCustomSigner(
|
|
80
|
+
* vaultId,
|
|
81
|
+
* publicKeyHex,
|
|
82
|
+
* apiKey,
|
|
83
|
+
* privySigner
|
|
84
|
+
* );
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function createStarkPerpetualAccountWithCustomSigner(vault: number | string, publicKey: string, apiKey: string, customSigner: CustomStarkSigner): StarkPerpetualAccount;
|
|
29
88
|
/**
|
|
30
89
|
* Account model
|
|
31
90
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/perpetual/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/perpetual/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AccountStreamDataModel = exports.BalanceModel = exports.ApiKeyRequestModel = exports.ApiKeyResponseModel = exports.AccountLeverage = exports.AccountModel = exports.StarkPerpetualAccount = void 0;
|
|
7
|
+
exports.createStarkPerpetualAccountWithCustomSigner = createStarkPerpetualAccountWithCustomSigner;
|
|
7
8
|
const model_1 = require("../utils/model");
|
|
8
9
|
const string_1 = require("../utils/string");
|
|
9
10
|
const signer_1 = require("./crypto/signer");
|
|
11
|
+
const custom_signer_1 = require("./custom-signer");
|
|
10
12
|
/**
|
|
11
13
|
* Stark Perpetual Account
|
|
12
14
|
* Manages signing operations for trading
|
|
15
|
+
*
|
|
16
|
+
* Supports two modes of operation:
|
|
17
|
+
* 1. Direct signing with a private key (default)
|
|
18
|
+
* 2. Custom signer integration (e.g., Privy, Web3Auth)
|
|
13
19
|
*/
|
|
14
20
|
class StarkPerpetualAccount {
|
|
15
21
|
vault;
|
|
@@ -17,6 +23,7 @@ class StarkPerpetualAccount {
|
|
|
17
23
|
publicKey;
|
|
18
24
|
apiKey;
|
|
19
25
|
tradingFee = new Map();
|
|
26
|
+
customSigner;
|
|
20
27
|
constructor(vault, privateKey, publicKey, apiKey) {
|
|
21
28
|
if (!(0, string_1.isHexString)(privateKey)) {
|
|
22
29
|
throw new Error('Invalid private key format');
|
|
@@ -55,15 +62,92 @@ class StarkPerpetualAccount {
|
|
|
55
62
|
setTradingFee(market, fee) {
|
|
56
63
|
this.tradingFee.set(market, fee);
|
|
57
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Set a custom signer for remote signing (e.g., Privy, Web3Auth)
|
|
67
|
+
*
|
|
68
|
+
* @param signer - Custom signer implementation
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const account = new StarkPerpetualAccount(vault, privateKey, publicKey, apiKey);
|
|
73
|
+
* account.setCustomSigner(new PrivyStarkSigner(privyClient, walletId));
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
setCustomSigner(signer) {
|
|
77
|
+
if (!(0, custom_signer_1.isCustomStarkSigner)(signer)) {
|
|
78
|
+
throw new Error('Invalid custom signer: must implement CustomStarkSigner interface');
|
|
79
|
+
}
|
|
80
|
+
this.customSigner = signer;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the custom signer if set
|
|
84
|
+
*/
|
|
85
|
+
getCustomSigner() {
|
|
86
|
+
return this.customSigner;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Clear the custom signer and use direct signing
|
|
90
|
+
*/
|
|
91
|
+
clearCustomSigner() {
|
|
92
|
+
this.customSigner = undefined;
|
|
93
|
+
}
|
|
58
94
|
/**
|
|
59
95
|
* Sign a message hash
|
|
60
|
-
* Returns [r, s] tuple
|
|
96
|
+
* Returns Promise resolving to [r, s] tuple
|
|
97
|
+
*
|
|
98
|
+
* If a custom signer is set, uses the custom signer.
|
|
99
|
+
* Otherwise, uses the built-in WASM signer with the private key.
|
|
100
|
+
*
|
|
101
|
+
* @returns Promise resolving to signature tuple [r, s]
|
|
61
102
|
*/
|
|
62
|
-
sign(msgHash) {
|
|
63
|
-
|
|
103
|
+
async sign(msgHash) {
|
|
104
|
+
if (this.customSigner) {
|
|
105
|
+
return this.customSigner.sign(msgHash);
|
|
106
|
+
}
|
|
107
|
+
if (!this.privateKey) {
|
|
108
|
+
throw new Error('No private key or custom signer available for signing');
|
|
109
|
+
}
|
|
110
|
+
// Wrap synchronous WASM sign in Promise for consistent API
|
|
111
|
+
return Promise.resolve((0, signer_1.sign)(this.privateKey, msgHash));
|
|
64
112
|
}
|
|
65
113
|
}
|
|
66
114
|
exports.StarkPerpetualAccount = StarkPerpetualAccount;
|
|
115
|
+
/**
|
|
116
|
+
* Create a StarkPerpetualAccount with a custom signer
|
|
117
|
+
*
|
|
118
|
+
* Use this factory function when integrating with external signing services
|
|
119
|
+
* like Privy, Web3Auth, or other remote signers that don't expose private keys.
|
|
120
|
+
*
|
|
121
|
+
* Note: This function uses a dummy private key internally to maintain backward
|
|
122
|
+
* compatibility with the existing StarkPerpetualAccount constructor. The dummy
|
|
123
|
+
* key is never used for signing when a custom signer is set.
|
|
124
|
+
*
|
|
125
|
+
* @param vault - Vault ID
|
|
126
|
+
* @param publicKey - Public key as hex string
|
|
127
|
+
* @param apiKey - API key for authentication
|
|
128
|
+
* @param customSigner - Custom signer implementation
|
|
129
|
+
* @returns StarkPerpetualAccount configured with the custom signer
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const privySigner = new PrivyStarkSigner(privyClient, walletId);
|
|
134
|
+
* const account = createStarkPerpetualAccountWithCustomSigner(
|
|
135
|
+
* vaultId,
|
|
136
|
+
* publicKeyHex,
|
|
137
|
+
* apiKey,
|
|
138
|
+
* privySigner
|
|
139
|
+
* );
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
function createStarkPerpetualAccountWithCustomSigner(vault, publicKey, apiKey, customSigner) {
|
|
143
|
+
// Use a dummy private key (all zeros) to satisfy the constructor
|
|
144
|
+
// This maintains backward compatibility without breaking existing code
|
|
145
|
+
// The dummy key is never used when a custom signer is set
|
|
146
|
+
const dummyPrivateKey = '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
147
|
+
const account = new StarkPerpetualAccount(vault, dummyPrivateKey, publicKey, apiKey);
|
|
148
|
+
account.setCustomSigner(customSigner);
|
|
149
|
+
return account;
|
|
150
|
+
}
|
|
67
151
|
/**
|
|
68
152
|
* Account model
|
|
69
153
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/perpetual/accounts.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/perpetual/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/perpetual/crypto/signer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/perpetual/crypto/signer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA6F9C;AAaD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBzD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CActF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA4BT;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAyBT;AAED;;GAEG;AACH;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAyBT"}
|
|
@@ -104,7 +104,10 @@ async function initWasm() {
|
|
|
104
104
|
`Please run: npm run build:signer\n` +
|
|
105
105
|
`Or if you want to build your own: npm run build:signer:custom`);
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
// Use absolute path for require()
|
|
108
|
+
const absoluteWasmPath = path.resolve(wasmPath);
|
|
109
|
+
// Use require() for CommonJS modules (patched nodejs target)
|
|
110
|
+
wasmModule = require(absoluteWasmPath);
|
|
108
111
|
// Initialize the WASM module
|
|
109
112
|
if (wasmModule.init) {
|
|
110
113
|
wasmModule.init();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/perpetual/crypto/signer.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/perpetual/crypto/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom signer interface for external signing services
|
|
3
|
+
*
|
|
4
|
+
* This module provides interfaces and types to enable integration with
|
|
5
|
+
* external signing services like Privy, Web3Auth, or custom HSM solutions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Signature result interface
|
|
9
|
+
* Represents an ECDSA signature as [r, s] tuple
|
|
10
|
+
*/
|
|
11
|
+
export interface SignatureResult {
|
|
12
|
+
r: bigint;
|
|
13
|
+
s: bigint;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Custom signer interface
|
|
17
|
+
*
|
|
18
|
+
* Implement this interface to integrate with external signing services.
|
|
19
|
+
* The signer must be able to sign StarkNet message hashes using ECDSA.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Privy integration example
|
|
24
|
+
* class PrivyStarkSigner implements CustomStarkSigner {
|
|
25
|
+
* constructor(private privyClient: PrivyClient, private walletId: string) {}
|
|
26
|
+
*
|
|
27
|
+
* async sign(msgHash: bigint): Promise<[bigint, bigint]> {
|
|
28
|
+
* const msgHashHex = '0x' + msgHash.toString(16);
|
|
29
|
+
* const signature = await this.privyClient.signStarknetMessage(
|
|
30
|
+
* this.walletId,
|
|
31
|
+
* msgHashHex
|
|
32
|
+
* );
|
|
33
|
+
* return [BigInt(signature.r), BigInt(signature.s)];
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export interface CustomStarkSigner {
|
|
39
|
+
/**
|
|
40
|
+
* Sign a StarkNet message hash
|
|
41
|
+
*
|
|
42
|
+
* @param msgHash - Message hash to sign as BigInt
|
|
43
|
+
* @returns Promise resolving to [r, s] signature tuple
|
|
44
|
+
*/
|
|
45
|
+
sign(msgHash: bigint): Promise<[bigint, bigint]>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Type guard to check if a value is a CustomStarkSigner
|
|
49
|
+
*/
|
|
50
|
+
export declare function isCustomStarkSigner(value: any): value is CustomStarkSigner;
|
|
51
|
+
//# sourceMappingURL=custom-signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-signer.d.ts","sourceRoot":"","sources":["../../src/perpetual/custom-signer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,iBAAiB,CAM1E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Custom signer interface for external signing services
|
|
4
|
+
*
|
|
5
|
+
* This module provides interfaces and types to enable integration with
|
|
6
|
+
* external signing services like Privy, Web3Auth, or custom HSM solutions.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.isCustomStarkSigner = isCustomStarkSigner;
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if a value is a CustomStarkSigner
|
|
12
|
+
*/
|
|
13
|
+
function isCustomStarkSigner(value) {
|
|
14
|
+
return (value !== null &&
|
|
15
|
+
typeof value === 'object' &&
|
|
16
|
+
typeof value.sign === 'function');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=custom-signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-signer.js","sourceRoot":"","sources":["../../src/perpetual/custom-signer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+CH,kDAMC;AATD;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CACjC,CAAC;AACJ,CAAC"}
|
|
@@ -27,10 +27,10 @@ export declare class SettlementDataCtx {
|
|
|
27
27
|
nonce: number;
|
|
28
28
|
collateralPositionId: number;
|
|
29
29
|
expireTime: Date;
|
|
30
|
-
signer: (msgHash: bigint) => [bigint, bigint]
|
|
30
|
+
signer: (msgHash: bigint) => Promise<[bigint, bigint]>;
|
|
31
31
|
publicKey: bigint;
|
|
32
32
|
starknetDomain: StarknetDomain;
|
|
33
|
-
constructor(market: MarketModel, fees: TradingFeeModel, nonce: number, collateralPositionId: number, expireTime: Date, signer: (msgHash: bigint) => [bigint, bigint]
|
|
33
|
+
constructor(market: MarketModel, fees: TradingFeeModel, nonce: number, collateralPositionId: number, expireTime: Date, signer: (msgHash: bigint) => Promise<[bigint, bigint]>, publicKey: bigint, starknetDomain: StarknetDomain, builderFee?: Decimal);
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Hash an order
|
|
@@ -39,5 +39,5 @@ export declare function hashOrder(amountSynthetic: StarkAmount, amountCollateral
|
|
|
39
39
|
/**
|
|
40
40
|
* Create order settlement data
|
|
41
41
|
*/
|
|
42
|
-
export declare function createOrderSettlementData(side: OrderSide, syntheticAmount: Decimal, price: Decimal, ctx: SettlementDataCtx): OrderSettlementData
|
|
42
|
+
export declare function createOrderSettlementData(side: OrderSide, syntheticAmount: Decimal, price: Decimal, ctx: SettlementDataCtx): Promise<OrderSettlementData>;
|
|
43
43
|
//# sourceMappingURL=order-object-settlement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-object-settlement.d.ts","sourceRoot":"","sources":["../../src/perpetual/order-object-settlement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAE5F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAqE,MAAM,WAAW,CAAC;AAIhI;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oBAAoB,CAAC;IACjC,gBAAgB,EAAE,+BAA+B,CAAC;gBAGhD,oBAAoB,EAAE,mBAAmB,EACzC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,EAChC,gBAAgB,EAAE,+BAA+B;CAOpD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"order-object-settlement.d.ts","sourceRoot":"","sources":["../../src/perpetual/order-object-settlement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAE5F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAqE,MAAM,WAAW,CAAC;AAIhI;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,oBAAoB,EAAE,mBAAmB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oBAAoB,CAAC;IACjC,gBAAgB,EAAE,+BAA+B,CAAC;gBAGhD,oBAAoB,EAAE,mBAAmB,EACzC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,oBAAoB,EAChC,gBAAgB,EAAE,+BAA+B;CAOpD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;gBAG7B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtD,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,cAAc,EAC9B,UAAU,CAAC,EAAE,OAAO;CAYvB;AAWD;;GAEG;AACH,wBAAgB,SAAS,CACvB,eAAe,EAAE,WAAW,EAC5B,gBAAgB,EAAE,WAAW,EAC7B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,IAAI,EACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,cAAc,GAC7B,MAAM,CA4BR;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,OAAO,EACxB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAyD9B"}
|
|
@@ -96,7 +96,7 @@ function hashOrder(amountSynthetic, amountCollateral, maxFee, nonce, positionId,
|
|
|
96
96
|
/**
|
|
97
97
|
* Create order settlement data
|
|
98
98
|
*/
|
|
99
|
-
function createOrderSettlementData(side, syntheticAmount, price, ctx) {
|
|
99
|
+
async function createOrderSettlementData(side, syntheticAmount, price, ctx) {
|
|
100
100
|
const isBuyingSynthetic = side === orders_1.OrderSide.BUY;
|
|
101
101
|
const roundingContext = isBuyingSynthetic ? amounts_1.ROUNDING_BUY_CONTEXT : amounts_1.ROUNDING_SELL_CONTEXT;
|
|
102
102
|
const syntheticAmountHuman = new amounts_1.HumanReadableAmount(syntheticAmount, ctx.market.syntheticAsset);
|
|
@@ -114,7 +114,7 @@ function createOrderSettlementData(side, syntheticAmount, price, ctx) {
|
|
|
114
114
|
}
|
|
115
115
|
const debuggingAmounts = new orders_1.StarkDebuggingOrderAmountsModel(new decimal_js_1.default(starkCollateralAmount.value), new decimal_js_1.default(starkFeeAmount.value), new decimal_js_1.default(starkSyntheticAmount.value));
|
|
116
116
|
const orderHash = hashOrder(starkSyntheticAmount, starkCollateralAmount, starkFeeAmount, ctx.nonce, ctx.collateralPositionId, ctx.expireTime, ctx.publicKey, ctx.starknetDomain);
|
|
117
|
-
const [orderSignatureR, orderSignatureS] = ctx.signer(orderHash);
|
|
117
|
+
const [orderSignatureR, orderSignatureS] = await ctx.signer(orderHash);
|
|
118
118
|
const settlement = new orders_1.StarkSettlementModel(new model_1.SettlementSignatureModel('0x' + orderSignatureR.toString(16), '0x' + orderSignatureS.toString(16)), '0x' + ctx.publicKey.toString(16), new decimal_js_1.default(ctx.collateralPositionId));
|
|
119
119
|
return new OrderSettlementData(syntheticAmountHuman, orderHash, settlement, debuggingAmounts);
|
|
120
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-object-settlement.js","sourceRoot":"","sources":["../../src/perpetual/order-object-settlement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAmFH,8BAqCC;AAKD,8DA8DC;AAzLD,4DAAiC;AAIjC,qCAA4F;AAC5F,0CAA0D;AAC1D,uCAAgI;AAChI,4CAAkD;AAGlD;;GAEG;AACH,MAAa,mBAAmB;IAC9B,oBAAoB,CAAsB;IAC1C,SAAS,CAAS;IAClB,UAAU,CAAuB;IACjC,gBAAgB,CAAkC;IAElD,YACE,oBAAyC,EACzC,SAAiB,EACjB,UAAgC,EAChC,gBAAiD;QAEjD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAjBD,kDAiBC;AAED;;GAEG;AACH,MAAa,iBAAiB;IAC5B,MAAM,CAAc;IACpB,IAAI,CAAkB;IACtB,UAAU,CAAW;IACrB,KAAK,CAAS;IACd,oBAAoB,CAAS;IAC7B,UAAU,CAAO;IACjB,MAAM,
|
|
1
|
+
{"version":3,"file":"order-object-settlement.js","sourceRoot":"","sources":["../../src/perpetual/order-object-settlement.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,5 +34,5 @@ export declare function createOrderObject(account: StarkPerpetualAccount, market
|
|
|
34
34
|
tpSlType?: OrderTpslType;
|
|
35
35
|
takeProfit?: OrderTpslTriggerParam;
|
|
36
36
|
stopLoss?: OrderTpslTriggerParam;
|
|
37
|
-
}): NewOrderModel
|
|
37
|
+
}): Promise<NewOrderModel>;
|
|
38
38
|
//# sourceMappingURL=order-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-object.d.ts","sourceRoot":"","sources":["../../src/perpetual/order-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,aAAa,EAGd,MAAM,UAAU,CAAC;AAUlB;;GAEG;AACH,qBAAa,qBAAqB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;gBAGxB,YAAY,EAAE,OAAO,EACrB,gBAAgB,EAAE,qBAAqB,EACvC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,cAAc;CAO5B;AA0BD;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"order-object.d.ts","sourceRoot":"","sources":["../../src/perpetual/order-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,aAAa,EAGd,MAAM,UAAU,CAAC;AAUlB;;GAEG;AACH,qBAAa,qBAAqB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;gBAGxB,YAAY,EAAE,OAAO,EACrB,gBAAgB,EAAE,qBAAqB,EACvC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,cAAc;CAO5B;AA0BD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,WAAW,EACnB,iBAAiB,EAAE,OAAO,EAC1B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAC7B,GACL,OAAO,CAAC,aAAa,CAAC,CAqHxB"}
|
|
@@ -45,7 +45,7 @@ function createOrderTpslTriggerModel(triggerParam, settlementData) {
|
|
|
45
45
|
/**
|
|
46
46
|
* Create an order object to be placed on the exchange
|
|
47
47
|
*/
|
|
48
|
-
function createOrderObject(account, market, amountOfSynthetic, price, side, starknetDomain, options = {}) {
|
|
48
|
+
async function createOrderObject(account, market, amountOfSynthetic, price, side, starknetDomain, options = {}) {
|
|
49
49
|
const { orderType = orders_1.OrderType.LIMIT, postOnly = false, previousOrderExternalId, expireTime, orderExternalId, timeInForce = orders_1.TimeInForce.GTT, selfTradeProtectionLevel = orders_1.SelfTradeProtectionLevel.ACCOUNT, nonce, builderFee, builderId, reduceOnly = false, tpSlType, takeProfit, stopLoss, } = options;
|
|
50
50
|
let finalExpireTime = expireTime;
|
|
51
51
|
if (!finalExpireTime) {
|
|
@@ -72,15 +72,15 @@ function createOrderObject(account, market, amountOfSynthetic, price, side, star
|
|
|
72
72
|
const fees = account.getTradingFee().get(market.name) || fees_1.DEFAULT_FEES;
|
|
73
73
|
const feeRate = fees.takerFeeRate;
|
|
74
74
|
const settlementDataCtx = new order_object_settlement_1.SettlementDataCtx(market, fees, finalNonce, account.getVault(), finalExpireTime, (msgHash) => account.sign(msgHash), account.getPublicKey(), starknetDomain, builderFee);
|
|
75
|
-
const settlementData = (0, order_object_settlement_1.createOrderSettlementData)(side, amountOfSynthetic, price, settlementDataCtx);
|
|
75
|
+
const settlementData = await (0, order_object_settlement_1.createOrderSettlementData)(side, amountOfSynthetic, price, settlementDataCtx);
|
|
76
76
|
let tpTriggerModel;
|
|
77
77
|
if (takeProfit) {
|
|
78
|
-
const tpSettlementData = (0, order_object_settlement_1.createOrderSettlementData)(getOppositeSide(side), amountOfSynthetic, takeProfit.price, settlementDataCtx);
|
|
78
|
+
const tpSettlementData = await (0, order_object_settlement_1.createOrderSettlementData)(getOppositeSide(side), amountOfSynthetic, takeProfit.price, settlementDataCtx);
|
|
79
79
|
tpTriggerModel = createOrderTpslTriggerModel(takeProfit, tpSettlementData);
|
|
80
80
|
}
|
|
81
81
|
let slTriggerModel;
|
|
82
82
|
if (stopLoss) {
|
|
83
|
-
const slSettlementData = (0, order_object_settlement_1.createOrderSettlementData)(getOppositeSide(side), amountOfSynthetic, stopLoss.price, settlementDataCtx);
|
|
83
|
+
const slSettlementData = await (0, order_object_settlement_1.createOrderSettlementData)(getOppositeSide(side), amountOfSynthetic, stopLoss.price, settlementDataCtx);
|
|
84
84
|
slTriggerModel = createOrderTpslTriggerModel(stopLoss, slSettlementData);
|
|
85
85
|
}
|
|
86
86
|
const orderId = orderExternalId || settlementData.orderHash.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-object.js","sourceRoot":"","sources":["../../src/perpetual/order-object.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AA4EH,8CA4IC;AAtND,4DAAiC;AAIjC,qCAWkB;AAClB,uEAImC;AACnC,0CAA+C;AAC/C,wCAAsD;AACtD,iCAAsC;AAEtC;;GAEG;AACH,MAAa,qBAAqB;IAChC,YAAY,CAAU;IACtB,gBAAgB,CAAwB;IACxC,KAAK,CAAU;IACf,SAAS,CAAiB;IAE1B,YACE,YAAqB,EACrB,gBAAuC,EACvC,KAAc,EACd,SAAyB;QAEzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAjBD,sDAiBC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAe;IACtC,OAAO,IAAI,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,GAAG,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAClC,YAAmC,EACnC,cAAmC;IAEnC,OAAO,IAAI,oCAA2B,CACpC,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,gBAAgB,EAC7B,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,SAAS,EACtB,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,gBAAgB,CAChC,CAAC;AACJ,CAAC;AAED;;GAEG;
|
|
1
|
+
{"version":3,"file":"order-object.js","sourceRoot":"","sources":["../../src/perpetual/order-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,22 @@ export declare class PerpetualStreamClient {
|
|
|
37
37
|
candleType: string;
|
|
38
38
|
interval: string;
|
|
39
39
|
}): PerpetualStreamConnection<any>;
|
|
40
|
+
/**
|
|
41
|
+
* Subscribe to mark price stream
|
|
42
|
+
* https://api.docs.extended.exchange/#mark-price-stream
|
|
43
|
+
*
|
|
44
|
+
* @param marketName - Optional market name. If not specified, subscribes to all markets
|
|
45
|
+
* @returns PerpetualStreamConnection for mark price updates
|
|
46
|
+
*/
|
|
47
|
+
subscribeToMarkPrice(marketName?: string): PerpetualStreamConnection<any>;
|
|
48
|
+
/**
|
|
49
|
+
* Subscribe to index price stream
|
|
50
|
+
* https://api.docs.extended.exchange/#index-price-stream
|
|
51
|
+
*
|
|
52
|
+
* @param marketName - Optional market name. If not specified, subscribes to all markets
|
|
53
|
+
* @returns PerpetualStreamConnection for index price updates
|
|
54
|
+
*/
|
|
55
|
+
subscribeToIndexPrice(marketName?: string): PerpetualStreamConnection<any>;
|
|
40
56
|
/**
|
|
41
57
|
* Subscribe to account updates stream
|
|
42
58
|
* https://api.docs.extended.exchange/#account-updates-stream
|