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,63 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Initialize the WASM module
|
|
5
|
+
*/
|
|
6
|
+
export function init(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Sign a message hash with a private key
|
|
9
|
+
*
|
|
10
|
+
* # Arguments
|
|
11
|
+
* * `private_key` - Private key as hex string (e.g., "0x123...")
|
|
12
|
+
* * `msg_hash` - Message hash as hex string (e.g., "0x456...")
|
|
13
|
+
*
|
|
14
|
+
* # Returns
|
|
15
|
+
* Array of two hex strings: [r, s]
|
|
16
|
+
*/
|
|
17
|
+
export function sign(private_key: string, msg_hash: string): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Compute Pedersen hash of two field elements
|
|
20
|
+
*
|
|
21
|
+
* # Arguments
|
|
22
|
+
* * `a` - First field element as hex string
|
|
23
|
+
* * `b` - Second field element as hex string
|
|
24
|
+
*
|
|
25
|
+
* # Returns
|
|
26
|
+
* Hash result as hex string
|
|
27
|
+
*/
|
|
28
|
+
export function pedersen_hash(a: string, b: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Generate Stark keypair from Ethereum signature
|
|
31
|
+
*
|
|
32
|
+
* This function derives a Stark keypair from an Ethereum signature.
|
|
33
|
+
* Uses the exact implementation compatible with Extended Exchange API.
|
|
34
|
+
*
|
|
35
|
+
* # Arguments
|
|
36
|
+
* * `eth_signature` - Ethereum signature as hex string (65 bytes: r(32) + s(32) + v(1))
|
|
37
|
+
*
|
|
38
|
+
* # Returns
|
|
39
|
+
* Array of two hex strings: [private_key, public_key]
|
|
40
|
+
*/
|
|
41
|
+
export function generate_keypair_from_eth_signature(eth_signature: string): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Get order message hash
|
|
44
|
+
*
|
|
45
|
+
* Computes the structured hash for an order according to StarkEx protocol.
|
|
46
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
47
|
+
*/
|
|
48
|
+
export function get_order_msg_hash(position_id: bigint, base_asset_id: string, base_amount: string, quote_asset_id: string, quote_amount: string, fee_amount: string, fee_asset_id: string, expiration: bigint, salt: bigint, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Get transfer message hash
|
|
51
|
+
*
|
|
52
|
+
* Computes the structured hash for a transfer according to StarkEx protocol.
|
|
53
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
54
|
+
*/
|
|
55
|
+
export function get_transfer_msg_hash(recipient_position_id: bigint, sender_position_id: bigint, amount: string, expiration: bigint, salt: string, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string, collateral_id: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Get withdrawal message hash
|
|
58
|
+
*
|
|
59
|
+
* Computes the structured hash for a withdrawal according to StarkEx protocol.
|
|
60
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
61
|
+
*/
|
|
62
|
+
export function get_withdrawal_msg_hash(recipient_hex: string, position_id: bigint, amount: string, expiration: bigint, salt: string, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string, collateral_id: string): string;
|
|
63
|
+
export function main(): void;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Initialize the WASM module
|
|
5
|
+
*/
|
|
6
|
+
export function init(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Sign a message hash with a private key
|
|
9
|
+
*
|
|
10
|
+
* # Arguments
|
|
11
|
+
* * `private_key` - Private key as hex string (e.g., "0x123...")
|
|
12
|
+
* * `msg_hash` - Message hash as hex string (e.g., "0x456...")
|
|
13
|
+
*
|
|
14
|
+
* # Returns
|
|
15
|
+
* Array of two hex strings: [r, s]
|
|
16
|
+
*/
|
|
17
|
+
export function sign(private_key: string, msg_hash: string): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Compute Pedersen hash of two field elements
|
|
20
|
+
*
|
|
21
|
+
* # Arguments
|
|
22
|
+
* * `a` - First field element as hex string
|
|
23
|
+
* * `b` - Second field element as hex string
|
|
24
|
+
*
|
|
25
|
+
* # Returns
|
|
26
|
+
* Hash result as hex string
|
|
27
|
+
*/
|
|
28
|
+
export function pedersen_hash(a: string, b: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Generate Stark keypair from Ethereum signature
|
|
31
|
+
*
|
|
32
|
+
* This function derives a Stark keypair from an Ethereum signature.
|
|
33
|
+
* Uses the exact implementation compatible with Extended Exchange API.
|
|
34
|
+
*
|
|
35
|
+
* # Arguments
|
|
36
|
+
* * `eth_signature` - Ethereum signature as hex string (65 bytes: r(32) + s(32) + v(1))
|
|
37
|
+
*
|
|
38
|
+
* # Returns
|
|
39
|
+
* Array of two hex strings: [private_key, public_key]
|
|
40
|
+
*/
|
|
41
|
+
export function generate_keypair_from_eth_signature(eth_signature: string): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Get order message hash
|
|
44
|
+
*
|
|
45
|
+
* Computes the structured hash for an order according to StarkEx protocol.
|
|
46
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
47
|
+
*/
|
|
48
|
+
export function get_order_msg_hash(position_id: bigint, base_asset_id: string, base_amount: string, quote_asset_id: string, quote_amount: string, fee_amount: string, fee_asset_id: string, expiration: bigint, salt: bigint, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Get transfer message hash
|
|
51
|
+
*
|
|
52
|
+
* Computes the structured hash for a transfer according to StarkEx protocol.
|
|
53
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
54
|
+
*/
|
|
55
|
+
export function get_transfer_msg_hash(recipient_position_id: bigint, sender_position_id: bigint, amount: string, expiration: bigint, salt: string, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string, collateral_id: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Get withdrawal message hash
|
|
58
|
+
*
|
|
59
|
+
* Computes the structured hash for a withdrawal according to StarkEx protocol.
|
|
60
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
61
|
+
*/
|
|
62
|
+
export function get_withdrawal_msg_hash(recipient_hex: string, position_id: bigint, amount: string, expiration: bigint, salt: string, user_public_key: string, domain_name: string, domain_version: string, domain_chain_id: string, domain_revision: string, collateral_id: string): string;
|
|
63
|
+
export function main(): void;
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
|
|
2
|
+
let imports = {};
|
|
3
|
+
imports['__wbindgen_placeholder__'] = module.exports;
|
|
4
|
+
|
|
5
|
+
let cachedUint8ArrayMemory0 = null;
|
|
6
|
+
|
|
7
|
+
function getUint8ArrayMemory0() {
|
|
8
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
9
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
10
|
+
}
|
|
11
|
+
return cachedUint8ArrayMemory0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
15
|
+
|
|
16
|
+
cachedTextDecoder.decode();
|
|
17
|
+
|
|
18
|
+
function decodeText(ptr, len) {
|
|
19
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function getStringFromWasm0(ptr, len) {
|
|
23
|
+
ptr = ptr >>> 0;
|
|
24
|
+
return decodeText(ptr, len);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Initialize the WASM module
|
|
28
|
+
*/
|
|
29
|
+
exports.init = function() {
|
|
30
|
+
wasm.main();
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
let WASM_VECTOR_LEN = 0;
|
|
34
|
+
|
|
35
|
+
const cachedTextEncoder = new TextEncoder();
|
|
36
|
+
|
|
37
|
+
if (!('encodeInto' in cachedTextEncoder)) {
|
|
38
|
+
cachedTextEncoder.encodeInto = function (arg, view) {
|
|
39
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
40
|
+
view.set(buf);
|
|
41
|
+
return {
|
|
42
|
+
read: arg.length,
|
|
43
|
+
written: buf.length
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function passStringToWasm0(arg, malloc, realloc) {
|
|
49
|
+
|
|
50
|
+
if (realloc === undefined) {
|
|
51
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
52
|
+
const ptr = malloc(buf.length, 1) >>> 0;
|
|
53
|
+
getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
|
|
54
|
+
WASM_VECTOR_LEN = buf.length;
|
|
55
|
+
return ptr;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
let len = arg.length;
|
|
59
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
60
|
+
|
|
61
|
+
const mem = getUint8ArrayMemory0();
|
|
62
|
+
|
|
63
|
+
let offset = 0;
|
|
64
|
+
|
|
65
|
+
for (; offset < len; offset++) {
|
|
66
|
+
const code = arg.charCodeAt(offset);
|
|
67
|
+
if (code > 0x7F) break;
|
|
68
|
+
mem[ptr + offset] = code;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (offset !== len) {
|
|
72
|
+
if (offset !== 0) {
|
|
73
|
+
arg = arg.slice(offset);
|
|
74
|
+
}
|
|
75
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
76
|
+
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
|
|
77
|
+
const ret = cachedTextEncoder.encodeInto(arg, view);
|
|
78
|
+
|
|
79
|
+
offset += ret.written;
|
|
80
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
WASM_VECTOR_LEN = offset;
|
|
84
|
+
return ptr;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
let cachedDataViewMemory0 = null;
|
|
88
|
+
|
|
89
|
+
function getDataViewMemory0() {
|
|
90
|
+
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
91
|
+
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
|
|
92
|
+
}
|
|
93
|
+
return cachedDataViewMemory0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function getArrayJsValueFromWasm0(ptr, len) {
|
|
97
|
+
ptr = ptr >>> 0;
|
|
98
|
+
const mem = getDataViewMemory0();
|
|
99
|
+
const result = [];
|
|
100
|
+
for (let i = ptr; i < ptr + 4 * len; i += 4) {
|
|
101
|
+
result.push(wasm.__wbindgen_externrefs.get(mem.getUint32(i, true)));
|
|
102
|
+
}
|
|
103
|
+
wasm.__externref_drop_slice(ptr, len);
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Sign a message hash with a private key
|
|
108
|
+
*
|
|
109
|
+
* # Arguments
|
|
110
|
+
* * `private_key` - Private key as hex string (e.g., "0x123...")
|
|
111
|
+
* * `msg_hash` - Message hash as hex string (e.g., "0x456...")
|
|
112
|
+
*
|
|
113
|
+
* # Returns
|
|
114
|
+
* Array of two hex strings: [r, s]
|
|
115
|
+
* @param {string} private_key
|
|
116
|
+
* @param {string} msg_hash
|
|
117
|
+
* @returns {string[]}
|
|
118
|
+
*/
|
|
119
|
+
exports.sign = function(private_key, msg_hash) {
|
|
120
|
+
const ptr0 = passStringToWasm0(private_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
121
|
+
const len0 = WASM_VECTOR_LEN;
|
|
122
|
+
const ptr1 = passStringToWasm0(msg_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
123
|
+
const len1 = WASM_VECTOR_LEN;
|
|
124
|
+
const ret = wasm.sign(ptr0, len0, ptr1, len1);
|
|
125
|
+
var v3 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
126
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
127
|
+
return v3;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Compute Pedersen hash of two field elements
|
|
132
|
+
*
|
|
133
|
+
* # Arguments
|
|
134
|
+
* * `a` - First field element as hex string
|
|
135
|
+
* * `b` - Second field element as hex string
|
|
136
|
+
*
|
|
137
|
+
* # Returns
|
|
138
|
+
* Hash result as hex string
|
|
139
|
+
* @param {string} a
|
|
140
|
+
* @param {string} b
|
|
141
|
+
* @returns {string}
|
|
142
|
+
*/
|
|
143
|
+
exports.pedersen_hash = function(a, b) {
|
|
144
|
+
let deferred3_0;
|
|
145
|
+
let deferred3_1;
|
|
146
|
+
try {
|
|
147
|
+
const ptr0 = passStringToWasm0(a, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
148
|
+
const len0 = WASM_VECTOR_LEN;
|
|
149
|
+
const ptr1 = passStringToWasm0(b, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
150
|
+
const len1 = WASM_VECTOR_LEN;
|
|
151
|
+
const ret = wasm.pedersen_hash(ptr0, len0, ptr1, len1);
|
|
152
|
+
deferred3_0 = ret[0];
|
|
153
|
+
deferred3_1 = ret[1];
|
|
154
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
155
|
+
} finally {
|
|
156
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Generate Stark keypair from Ethereum signature
|
|
162
|
+
*
|
|
163
|
+
* This function derives a Stark keypair from an Ethereum signature.
|
|
164
|
+
* Uses the exact implementation compatible with Extended Exchange API.
|
|
165
|
+
*
|
|
166
|
+
* # Arguments
|
|
167
|
+
* * `eth_signature` - Ethereum signature as hex string (65 bytes: r(32) + s(32) + v(1))
|
|
168
|
+
*
|
|
169
|
+
* # Returns
|
|
170
|
+
* Array of two hex strings: [private_key, public_key]
|
|
171
|
+
* @param {string} eth_signature
|
|
172
|
+
* @returns {string[]}
|
|
173
|
+
*/
|
|
174
|
+
exports.generate_keypair_from_eth_signature = function(eth_signature) {
|
|
175
|
+
const ptr0 = passStringToWasm0(eth_signature, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
176
|
+
const len0 = WASM_VECTOR_LEN;
|
|
177
|
+
const ret = wasm.generate_keypair_from_eth_signature(ptr0, len0);
|
|
178
|
+
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
179
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
180
|
+
return v2;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Get order message hash
|
|
185
|
+
*
|
|
186
|
+
* Computes the structured hash for an order according to StarkEx protocol.
|
|
187
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
188
|
+
* @param {bigint} position_id
|
|
189
|
+
* @param {string} base_asset_id
|
|
190
|
+
* @param {string} base_amount
|
|
191
|
+
* @param {string} quote_asset_id
|
|
192
|
+
* @param {string} quote_amount
|
|
193
|
+
* @param {string} fee_amount
|
|
194
|
+
* @param {string} fee_asset_id
|
|
195
|
+
* @param {bigint} expiration
|
|
196
|
+
* @param {bigint} salt
|
|
197
|
+
* @param {string} user_public_key
|
|
198
|
+
* @param {string} domain_name
|
|
199
|
+
* @param {string} domain_version
|
|
200
|
+
* @param {string} domain_chain_id
|
|
201
|
+
* @param {string} domain_revision
|
|
202
|
+
* @returns {string}
|
|
203
|
+
*/
|
|
204
|
+
exports.get_order_msg_hash = function(position_id, base_asset_id, base_amount, quote_asset_id, quote_amount, fee_amount, fee_asset_id, expiration, salt, user_public_key, domain_name, domain_version, domain_chain_id, domain_revision) {
|
|
205
|
+
let deferred12_0;
|
|
206
|
+
let deferred12_1;
|
|
207
|
+
try {
|
|
208
|
+
const ptr0 = passStringToWasm0(base_asset_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
209
|
+
const len0 = WASM_VECTOR_LEN;
|
|
210
|
+
const ptr1 = passStringToWasm0(base_amount, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
211
|
+
const len1 = WASM_VECTOR_LEN;
|
|
212
|
+
const ptr2 = passStringToWasm0(quote_asset_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
213
|
+
const len2 = WASM_VECTOR_LEN;
|
|
214
|
+
const ptr3 = passStringToWasm0(quote_amount, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
215
|
+
const len3 = WASM_VECTOR_LEN;
|
|
216
|
+
const ptr4 = passStringToWasm0(fee_amount, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
217
|
+
const len4 = WASM_VECTOR_LEN;
|
|
218
|
+
const ptr5 = passStringToWasm0(fee_asset_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
219
|
+
const len5 = WASM_VECTOR_LEN;
|
|
220
|
+
const ptr6 = passStringToWasm0(user_public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
221
|
+
const len6 = WASM_VECTOR_LEN;
|
|
222
|
+
const ptr7 = passStringToWasm0(domain_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
223
|
+
const len7 = WASM_VECTOR_LEN;
|
|
224
|
+
const ptr8 = passStringToWasm0(domain_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
225
|
+
const len8 = WASM_VECTOR_LEN;
|
|
226
|
+
const ptr9 = passStringToWasm0(domain_chain_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
227
|
+
const len9 = WASM_VECTOR_LEN;
|
|
228
|
+
const ptr10 = passStringToWasm0(domain_revision, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
229
|
+
const len10 = WASM_VECTOR_LEN;
|
|
230
|
+
const ret = wasm.get_order_msg_hash(position_id, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, expiration, salt, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10);
|
|
231
|
+
deferred12_0 = ret[0];
|
|
232
|
+
deferred12_1 = ret[1];
|
|
233
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
234
|
+
} finally {
|
|
235
|
+
wasm.__wbindgen_free(deferred12_0, deferred12_1, 1);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Get transfer message hash
|
|
241
|
+
*
|
|
242
|
+
* Computes the structured hash for a transfer according to StarkEx protocol.
|
|
243
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
244
|
+
* @param {bigint} recipient_position_id
|
|
245
|
+
* @param {bigint} sender_position_id
|
|
246
|
+
* @param {string} amount
|
|
247
|
+
* @param {bigint} expiration
|
|
248
|
+
* @param {string} salt
|
|
249
|
+
* @param {string} user_public_key
|
|
250
|
+
* @param {string} domain_name
|
|
251
|
+
* @param {string} domain_version
|
|
252
|
+
* @param {string} domain_chain_id
|
|
253
|
+
* @param {string} domain_revision
|
|
254
|
+
* @param {string} collateral_id
|
|
255
|
+
* @returns {string}
|
|
256
|
+
*/
|
|
257
|
+
exports.get_transfer_msg_hash = function(recipient_position_id, sender_position_id, amount, expiration, salt, user_public_key, domain_name, domain_version, domain_chain_id, domain_revision, collateral_id) {
|
|
258
|
+
let deferred9_0;
|
|
259
|
+
let deferred9_1;
|
|
260
|
+
try {
|
|
261
|
+
const ptr0 = passStringToWasm0(amount, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
262
|
+
const len0 = WASM_VECTOR_LEN;
|
|
263
|
+
const ptr1 = passStringToWasm0(salt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
264
|
+
const len1 = WASM_VECTOR_LEN;
|
|
265
|
+
const ptr2 = passStringToWasm0(user_public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
266
|
+
const len2 = WASM_VECTOR_LEN;
|
|
267
|
+
const ptr3 = passStringToWasm0(domain_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
268
|
+
const len3 = WASM_VECTOR_LEN;
|
|
269
|
+
const ptr4 = passStringToWasm0(domain_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
270
|
+
const len4 = WASM_VECTOR_LEN;
|
|
271
|
+
const ptr5 = passStringToWasm0(domain_chain_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
272
|
+
const len5 = WASM_VECTOR_LEN;
|
|
273
|
+
const ptr6 = passStringToWasm0(domain_revision, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
274
|
+
const len6 = WASM_VECTOR_LEN;
|
|
275
|
+
const ptr7 = passStringToWasm0(collateral_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
276
|
+
const len7 = WASM_VECTOR_LEN;
|
|
277
|
+
const ret = wasm.get_transfer_msg_hash(recipient_position_id, sender_position_id, ptr0, len0, expiration, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7);
|
|
278
|
+
deferred9_0 = ret[0];
|
|
279
|
+
deferred9_1 = ret[1];
|
|
280
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
281
|
+
} finally {
|
|
282
|
+
wasm.__wbindgen_free(deferred9_0, deferred9_1, 1);
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Get withdrawal message hash
|
|
288
|
+
*
|
|
289
|
+
* Computes the structured hash for a withdrawal according to StarkEx protocol.
|
|
290
|
+
* Reimplements exact logic from rust-crypto-lib-base using WASM-compatible types.
|
|
291
|
+
* @param {string} recipient_hex
|
|
292
|
+
* @param {bigint} position_id
|
|
293
|
+
* @param {string} amount
|
|
294
|
+
* @param {bigint} expiration
|
|
295
|
+
* @param {string} salt
|
|
296
|
+
* @param {string} user_public_key
|
|
297
|
+
* @param {string} domain_name
|
|
298
|
+
* @param {string} domain_version
|
|
299
|
+
* @param {string} domain_chain_id
|
|
300
|
+
* @param {string} domain_revision
|
|
301
|
+
* @param {string} collateral_id
|
|
302
|
+
* @returns {string}
|
|
303
|
+
*/
|
|
304
|
+
exports.get_withdrawal_msg_hash = function(recipient_hex, position_id, amount, expiration, salt, user_public_key, domain_name, domain_version, domain_chain_id, domain_revision, collateral_id) {
|
|
305
|
+
let deferred10_0;
|
|
306
|
+
let deferred10_1;
|
|
307
|
+
try {
|
|
308
|
+
const ptr0 = passStringToWasm0(recipient_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
309
|
+
const len0 = WASM_VECTOR_LEN;
|
|
310
|
+
const ptr1 = passStringToWasm0(amount, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
311
|
+
const len1 = WASM_VECTOR_LEN;
|
|
312
|
+
const ptr2 = passStringToWasm0(salt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
313
|
+
const len2 = WASM_VECTOR_LEN;
|
|
314
|
+
const ptr3 = passStringToWasm0(user_public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
315
|
+
const len3 = WASM_VECTOR_LEN;
|
|
316
|
+
const ptr4 = passStringToWasm0(domain_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
317
|
+
const len4 = WASM_VECTOR_LEN;
|
|
318
|
+
const ptr5 = passStringToWasm0(domain_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
319
|
+
const len5 = WASM_VECTOR_LEN;
|
|
320
|
+
const ptr6 = passStringToWasm0(domain_chain_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
321
|
+
const len6 = WASM_VECTOR_LEN;
|
|
322
|
+
const ptr7 = passStringToWasm0(domain_revision, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
323
|
+
const len7 = WASM_VECTOR_LEN;
|
|
324
|
+
const ptr8 = passStringToWasm0(collateral_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
325
|
+
const len8 = WASM_VECTOR_LEN;
|
|
326
|
+
const ret = wasm.get_withdrawal_msg_hash(ptr0, len0, position_id, ptr1, len1, expiration, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8);
|
|
327
|
+
deferred10_0 = ret[0];
|
|
328
|
+
deferred10_1 = ret[1];
|
|
329
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
330
|
+
} finally {
|
|
331
|
+
wasm.__wbindgen_free(deferred10_0, deferred10_1, 1);
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
exports.main = function() {
|
|
336
|
+
wasm.main();
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
exports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
|
|
340
|
+
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
341
|
+
const ret = getStringFromWasm0(arg0, arg1);
|
|
342
|
+
return ret;
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
exports.__wbindgen_init_externref_table = function() {
|
|
346
|
+
const table = wasm.__wbindgen_externrefs;
|
|
347
|
+
const offset = table.grow(4);
|
|
348
|
+
table.set(0, undefined);
|
|
349
|
+
table.set(offset + 0, undefined);
|
|
350
|
+
table.set(offset + 1, null);
|
|
351
|
+
table.set(offset + 2, true);
|
|
352
|
+
table.set(offset + 3, false);
|
|
353
|
+
;
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
const wasmPath = `${__dirname}/stark_crypto_wasm_bg.wasm`;
|
|
357
|
+
const wasmBytes = require('fs').readFileSync(wasmPath);
|
|
358
|
+
const wasmModule = new WebAssembly.Module(wasmBytes);
|
|
359
|
+
const wasm = exports.__wasm = new WebAssembly.Instance(wasmModule, imports).exports;
|
|
360
|
+
|
|
361
|
+
wasm.__wbindgen_start();
|
|
362
|
+
|
|
Binary file
|
|
Binary file
|