@the-situation/sdk 0.3.0-alpha.3 → 0.3.0-alpha.5
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/dist/providers/base.js +1 -1
- package/dist/sdk/admin-inputs.d.ts +52 -0
- package/dist/sdk/admin-inputs.d.ts.map +1 -1
- package/dist/sdk/admin-inputs.js +104 -0
- package/dist/sdk/admin-inputs.js.map +1 -1
- package/dist/sdk/deployer.d.ts +61 -6
- package/dist/sdk/deployer.d.ts.map +1 -1
- package/dist/sdk/deployer.js +107 -2
- package/dist/sdk/deployer.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +2 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/utils/math.d.ts +3 -8
- package/dist/utils/math.d.ts.map +1 -1
- package/dist/utils/math.js +65 -45
- package/dist/utils/math.js.map +1 -1
- package/package.json +1 -1
package/dist/providers/base.js
CHANGED
|
@@ -20,7 +20,7 @@ export const NETWORKS = {
|
|
|
20
20
|
sepolia: {
|
|
21
21
|
name: 'sepolia',
|
|
22
22
|
chainId: 'SN_SEPOLIA',
|
|
23
|
-
rpcUrl: 'https://starknet
|
|
23
|
+
rpcUrl: 'https://api.cartridge.gg/x/starknet/sepolia',
|
|
24
24
|
explorerUrl: 'https://sepolia.starkscan.co',
|
|
25
25
|
},
|
|
26
26
|
devnet: {
|
|
@@ -7,6 +7,33 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { NormalMarketDeploymentParams } from '../contracts/factory';
|
|
9
9
|
import type { SQ128x128Raw } from '../types/sq128-raw';
|
|
10
|
+
import type { DeployFactoryParams } from './deployer';
|
|
11
|
+
/**
|
|
12
|
+
* Extension hook configuration for packed u16 call points.
|
|
13
|
+
*/
|
|
14
|
+
export interface ExtensionCallPointsConfig {
|
|
15
|
+
readonly beforeInitialize: boolean;
|
|
16
|
+
readonly afterInitialize: boolean;
|
|
17
|
+
readonly beforeTrade: boolean;
|
|
18
|
+
readonly afterTrade: boolean;
|
|
19
|
+
readonly beforeAddLiquidity: boolean;
|
|
20
|
+
readonly afterAddLiquidity: boolean;
|
|
21
|
+
readonly beforeRemoveLiquidity: boolean;
|
|
22
|
+
readonly afterRemoveLiquidity: boolean;
|
|
23
|
+
readonly beforeClaim: boolean;
|
|
24
|
+
readonly afterClaim: boolean;
|
|
25
|
+
readonly beforeSettle: boolean;
|
|
26
|
+
readonly afterSettle: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Oracle extension default call points used in contract integration tests.
|
|
30
|
+
*
|
|
31
|
+
* Enabled hooks:
|
|
32
|
+
* - before_initialize
|
|
33
|
+
* - before_trade
|
|
34
|
+
* - after_settle
|
|
35
|
+
*/
|
|
36
|
+
export declare const ORACLE_EXTENSION_CALL_POINTS = 2053;
|
|
10
37
|
/**
|
|
11
38
|
* Plain-number input shape for deploying a normal market.
|
|
12
39
|
*
|
|
@@ -46,6 +73,31 @@ export declare function buildSQ128x128Raw(value: number, name: string): SQ128x12
|
|
|
46
73
|
* @throws Error when settlement value is non-finite or cannot be represented.
|
|
47
74
|
*/
|
|
48
75
|
export declare function buildSettlementValueRaw(settlementValue: number): SQ128x128Raw;
|
|
76
|
+
/**
|
|
77
|
+
* Packs extension call-point flags into Cairo `u16` representation.
|
|
78
|
+
*
|
|
79
|
+
* @throws Error when the packed value would exceed `u16`.
|
|
80
|
+
*/
|
|
81
|
+
export declare function packExtensionCallPoints(config: ExtensionCallPointsConfig): number;
|
|
82
|
+
/**
|
|
83
|
+
* Unpacks extension call points from Cairo `u16` into boolean flags.
|
|
84
|
+
*
|
|
85
|
+
* @throws Error when the input is not a valid `u16` integer.
|
|
86
|
+
*/
|
|
87
|
+
export declare function unpackExtensionCallPoints(packed: number): ExtensionCallPointsConfig;
|
|
88
|
+
/**
|
|
89
|
+
* Plain input for factory deployment from class hashes.
|
|
90
|
+
*/
|
|
91
|
+
export interface DeployFactoryInput {
|
|
92
|
+
readonly factoryClassHash: string;
|
|
93
|
+
readonly ammClassHash: string;
|
|
94
|
+
readonly mathClassHash: string;
|
|
95
|
+
readonly owner: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Validates and normalizes factory deployment inputs.
|
|
99
|
+
*/
|
|
100
|
+
export declare function buildDeployFactoryParams(input: DeployFactoryInput): DeployFactoryParams;
|
|
49
101
|
/**
|
|
50
102
|
* Builds a validated `deploy_normal_market` payload from plain-number input.
|
|
51
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-inputs.d.ts","sourceRoot":"","sources":["../../src/sdk/admin-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-inputs.d.ts","sourceRoot":"","sources":["../../src/sdk/admin-inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/admin-inputs.js
CHANGED
|
@@ -9,6 +9,29 @@ import { MAX_FEE_BPS, createFeeConfigRaw } from '../abi/common';
|
|
|
9
9
|
import { SQ128x128 } from '../types/sq128';
|
|
10
10
|
import { computeHints } from '../utils/hints';
|
|
11
11
|
import { createNormalDistributionFromMeanVariance } from './internal/conversion';
|
|
12
|
+
const EXTENSION_CALL_POINT_BITS = {
|
|
13
|
+
beforeInitialize: 1 << 0,
|
|
14
|
+
afterInitialize: 1 << 1,
|
|
15
|
+
beforeTrade: 1 << 2,
|
|
16
|
+
afterTrade: 1 << 3,
|
|
17
|
+
beforeAddLiquidity: 1 << 4,
|
|
18
|
+
afterAddLiquidity: 1 << 5,
|
|
19
|
+
beforeRemoveLiquidity: 1 << 6,
|
|
20
|
+
afterRemoveLiquidity: 1 << 7,
|
|
21
|
+
beforeClaim: 1 << 8,
|
|
22
|
+
afterClaim: 1 << 9,
|
|
23
|
+
beforeSettle: 1 << 10,
|
|
24
|
+
afterSettle: 1 << 11,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Oracle extension default call points used in contract integration tests.
|
|
28
|
+
*
|
|
29
|
+
* Enabled hooks:
|
|
30
|
+
* - before_initialize
|
|
31
|
+
* - before_trade
|
|
32
|
+
* - after_settle
|
|
33
|
+
*/
|
|
34
|
+
export const ORACLE_EXTENSION_CALL_POINTS = 0x805;
|
|
12
35
|
function assertFiniteNumber(value, name) {
|
|
13
36
|
if (!Number.isFinite(value)) {
|
|
14
37
|
throw new Error(`${name} must be a finite number`);
|
|
@@ -32,6 +55,16 @@ function normalizeOptional(value) {
|
|
|
32
55
|
const trimmed = value.trim();
|
|
33
56
|
return trimmed.length > 0 ? trimmed : undefined;
|
|
34
57
|
}
|
|
58
|
+
function normalizeRequiredHex(value, label) {
|
|
59
|
+
const trimmed = value.trim();
|
|
60
|
+
if (trimmed.length === 0) {
|
|
61
|
+
throw new Error(`${label} is required`);
|
|
62
|
+
}
|
|
63
|
+
if (!/^0x[0-9a-fA-F]+$/.test(trimmed)) {
|
|
64
|
+
throw new Error(`${label} must be a 0x-prefixed hex string`);
|
|
65
|
+
}
|
|
66
|
+
return trimmed.toLowerCase();
|
|
67
|
+
}
|
|
35
68
|
/**
|
|
36
69
|
* Converts a plain number into contract SQ128x128 raw form.
|
|
37
70
|
*
|
|
@@ -53,6 +86,77 @@ export function buildSQ128x128Raw(value, name) {
|
|
|
53
86
|
export function buildSettlementValueRaw(settlementValue) {
|
|
54
87
|
return buildSQ128x128Raw(settlementValue, 'Settlement value');
|
|
55
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Packs extension call-point flags into Cairo `u16` representation.
|
|
91
|
+
*
|
|
92
|
+
* @throws Error when the packed value would exceed `u16`.
|
|
93
|
+
*/
|
|
94
|
+
export function packExtensionCallPoints(config) {
|
|
95
|
+
let packed = 0;
|
|
96
|
+
if (config.beforeInitialize)
|
|
97
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeInitialize;
|
|
98
|
+
if (config.afterInitialize)
|
|
99
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterInitialize;
|
|
100
|
+
if (config.beforeTrade)
|
|
101
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeTrade;
|
|
102
|
+
if (config.afterTrade)
|
|
103
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterTrade;
|
|
104
|
+
if (config.beforeAddLiquidity)
|
|
105
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeAddLiquidity;
|
|
106
|
+
if (config.afterAddLiquidity)
|
|
107
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterAddLiquidity;
|
|
108
|
+
if (config.beforeRemoveLiquidity)
|
|
109
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeRemoveLiquidity;
|
|
110
|
+
if (config.afterRemoveLiquidity)
|
|
111
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterRemoveLiquidity;
|
|
112
|
+
if (config.beforeClaim)
|
|
113
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeClaim;
|
|
114
|
+
if (config.afterClaim)
|
|
115
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterClaim;
|
|
116
|
+
if (config.beforeSettle)
|
|
117
|
+
packed |= EXTENSION_CALL_POINT_BITS.beforeSettle;
|
|
118
|
+
if (config.afterSettle)
|
|
119
|
+
packed |= EXTENSION_CALL_POINT_BITS.afterSettle;
|
|
120
|
+
if (packed < 0 || packed > 0xffff) {
|
|
121
|
+
throw new Error('Extension call points must fit in u16');
|
|
122
|
+
}
|
|
123
|
+
return packed;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Unpacks extension call points from Cairo `u16` into boolean flags.
|
|
127
|
+
*
|
|
128
|
+
* @throws Error when the input is not a valid `u16` integer.
|
|
129
|
+
*/
|
|
130
|
+
export function unpackExtensionCallPoints(packed) {
|
|
131
|
+
if (!Number.isInteger(packed) || packed < 0 || packed > 0xffff) {
|
|
132
|
+
throw new Error('Extension call points must be a u16 integer');
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
beforeInitialize: (packed & EXTENSION_CALL_POINT_BITS.beforeInitialize) !== 0,
|
|
136
|
+
afterInitialize: (packed & EXTENSION_CALL_POINT_BITS.afterInitialize) !== 0,
|
|
137
|
+
beforeTrade: (packed & EXTENSION_CALL_POINT_BITS.beforeTrade) !== 0,
|
|
138
|
+
afterTrade: (packed & EXTENSION_CALL_POINT_BITS.afterTrade) !== 0,
|
|
139
|
+
beforeAddLiquidity: (packed & EXTENSION_CALL_POINT_BITS.beforeAddLiquidity) !== 0,
|
|
140
|
+
afterAddLiquidity: (packed & EXTENSION_CALL_POINT_BITS.afterAddLiquidity) !== 0,
|
|
141
|
+
beforeRemoveLiquidity: (packed & EXTENSION_CALL_POINT_BITS.beforeRemoveLiquidity) !== 0,
|
|
142
|
+
afterRemoveLiquidity: (packed & EXTENSION_CALL_POINT_BITS.afterRemoveLiquidity) !== 0,
|
|
143
|
+
beforeClaim: (packed & EXTENSION_CALL_POINT_BITS.beforeClaim) !== 0,
|
|
144
|
+
afterClaim: (packed & EXTENSION_CALL_POINT_BITS.afterClaim) !== 0,
|
|
145
|
+
beforeSettle: (packed & EXTENSION_CALL_POINT_BITS.beforeSettle) !== 0,
|
|
146
|
+
afterSettle: (packed & EXTENSION_CALL_POINT_BITS.afterSettle) !== 0,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Validates and normalizes factory deployment inputs.
|
|
151
|
+
*/
|
|
152
|
+
export function buildDeployFactoryParams(input) {
|
|
153
|
+
return {
|
|
154
|
+
factoryClassHash: normalizeRequiredHex(input.factoryClassHash, 'Factory class hash'),
|
|
155
|
+
ammClassHash: normalizeRequiredHex(input.ammClassHash, 'AMM class hash'),
|
|
156
|
+
mathClassHash: normalizeRequiredHex(input.mathClassHash, 'Math class hash'),
|
|
157
|
+
owner: normalizeRequiredHex(input.owner, 'Factory owner'),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
56
160
|
/**
|
|
57
161
|
* Builds a validated `deploy_normal_market` payload from plain-number input.
|
|
58
162
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-inputs.js","sourceRoot":"","sources":["../../src/sdk/admin-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-inputs.js","sourceRoot":"","sources":["../../src/sdk/admin-inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/deployer.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { type Abi, type
|
|
6
|
+
import { type Abi, type AccountInterface, type CairoAssembly, type CompiledContract } from 'starknet';
|
|
7
7
|
import type { NormalMarketDeploymentParams } from '../contracts/factory';
|
|
8
8
|
export interface ContractBuildArtifact {
|
|
9
9
|
readonly sierra: CompiledContract;
|
|
@@ -27,22 +27,77 @@ export interface DeployFactoryParams {
|
|
|
27
27
|
readonly mathClassHash: string;
|
|
28
28
|
readonly owner: string;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Deployment result with both contract address and transaction hash.
|
|
32
|
+
*/
|
|
33
|
+
export interface DeployContractResult {
|
|
34
|
+
readonly contractAddress: string;
|
|
35
|
+
readonly transactionHash: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Contracts release manifest entry used for remote artifact loading.
|
|
39
|
+
*/
|
|
40
|
+
export interface ReleaseManifestEntry {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly sierra: string;
|
|
43
|
+
readonly casm: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Contracts release manifest shape for remote artifact loading.
|
|
47
|
+
*/
|
|
48
|
+
export interface ReleaseManifest {
|
|
49
|
+
readonly contracts: readonly ReleaseManifestEntry[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Source configuration for loading deployable artifacts over HTTP(S).
|
|
53
|
+
*
|
|
54
|
+
* If `baseUrl` is not provided, it is derived from `manifestUrl`.
|
|
55
|
+
*/
|
|
56
|
+
export interface RemoteArtifactsSource {
|
|
57
|
+
readonly manifestUrl: string;
|
|
58
|
+
readonly baseUrl?: string;
|
|
59
|
+
readonly fetchFn?: typeof fetch;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Builds the contracts release tag from a semantic version.
|
|
63
|
+
*
|
|
64
|
+
* Example: `0.6.0` -> `the-situation-contracts-v0.6.0`.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getContractsReleaseTag(version: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Builds the GitHub release asset base URL for contracts artifacts.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildGitHubReleaseAssetBaseUrl(owner: string, repo: string, tag: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Loads deployable Sierra/CASM artifacts from remote release assets.
|
|
73
|
+
*
|
|
74
|
+
* This is intended for admin UIs and browser-based tooling.
|
|
75
|
+
*/
|
|
76
|
+
export declare function loadCoreBuildArtifactsFromReleaseAssets(source: RemoteArtifactsSource): Promise<CoreBuildArtifacts>;
|
|
30
77
|
/**
|
|
31
78
|
* Declares a contract class if it is not already declared.
|
|
32
79
|
*/
|
|
33
|
-
export declare function declareContractIfNeeded(account:
|
|
80
|
+
export declare function declareContractIfNeeded(account: AccountInterface, artifact: ContractBuildArtifact): Promise<string>;
|
|
34
81
|
/**
|
|
35
82
|
* Declares AMM, factory, math library, and oracle classes sequentially.
|
|
36
83
|
*/
|
|
37
|
-
export declare function declareCoreContracts(account:
|
|
84
|
+
export declare function declareCoreContracts(account: AccountInterface, artifacts: CoreBuildArtifacts): Promise<DeclaredClassHashes>;
|
|
38
85
|
/**
|
|
39
86
|
* Deploys the factory contract.
|
|
40
87
|
*/
|
|
41
|
-
export declare function deployFactory(account:
|
|
88
|
+
export declare function deployFactory(account: AccountInterface, params: DeployFactoryParams): Promise<string>;
|
|
89
|
+
/**
|
|
90
|
+
* Deploys the factory contract and returns address + transaction hash.
|
|
91
|
+
*/
|
|
92
|
+
export declare function deployFactoryWithResult(account: AccountInterface, params: DeployFactoryParams): Promise<DeployContractResult>;
|
|
42
93
|
/**
|
|
43
94
|
* Deploys the oracle extension contract.
|
|
44
95
|
*/
|
|
45
|
-
export declare function deployOracle(account:
|
|
96
|
+
export declare function deployOracle(account: AccountInterface, oracleClassHash: string): Promise<string>;
|
|
97
|
+
/**
|
|
98
|
+
* Deploys the oracle extension contract and returns address + transaction hash.
|
|
99
|
+
*/
|
|
100
|
+
export declare function deployOracleWithResult(account: AccountInterface, oracleClassHash: string): Promise<DeployContractResult>;
|
|
46
101
|
/**
|
|
47
102
|
* Builds ABI-aware calldata for `deploy_normal_market`.
|
|
48
103
|
*/
|
|
@@ -50,7 +105,7 @@ export declare function buildDeployNormalMarketCalldata(factoryAbi: Abi, params:
|
|
|
50
105
|
/**
|
|
51
106
|
* Deploys a normal market and returns its deployed address.
|
|
52
107
|
*/
|
|
53
|
-
export declare function deployNormalMarket(account:
|
|
108
|
+
export declare function deployNormalMarket(account: AccountInterface, factoryAddress: string, factoryAbi: Abi, params: NormalMarketDeploymentParams): Promise<string>;
|
|
54
109
|
/**
|
|
55
110
|
* Calculates deterministic oracle address for account.deployContract usage.
|
|
56
111
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../src/sdk/deployer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,GAAG,EACR,KAAK,
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../src/sdk/deployer.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/deployer.js
CHANGED
|
@@ -4,6 +4,91 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { CallData, hash, } from 'starknet';
|
|
7
|
+
const REQUIRED_RELEASE_CONTRACTS = [
|
|
8
|
+
'normal_amm',
|
|
9
|
+
'normal_factory',
|
|
10
|
+
'normal_math_library',
|
|
11
|
+
'oracle',
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Builds the contracts release tag from a semantic version.
|
|
15
|
+
*
|
|
16
|
+
* Example: `0.6.0` -> `the-situation-contracts-v0.6.0`.
|
|
17
|
+
*/
|
|
18
|
+
export function getContractsReleaseTag(version) {
|
|
19
|
+
return `the-situation-contracts-v${version}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Builds the GitHub release asset base URL for contracts artifacts.
|
|
23
|
+
*/
|
|
24
|
+
export function buildGitHubReleaseAssetBaseUrl(owner, repo, tag) {
|
|
25
|
+
return `https://github.com/${owner}/${repo}/releases/download/${tag}/`;
|
|
26
|
+
}
|
|
27
|
+
function deriveBaseUrl(manifestUrl) {
|
|
28
|
+
const lastSlash = manifestUrl.lastIndexOf('/');
|
|
29
|
+
if (lastSlash === -1) {
|
|
30
|
+
throw new Error('manifestUrl must include a path');
|
|
31
|
+
}
|
|
32
|
+
return manifestUrl.slice(0, lastSlash + 1);
|
|
33
|
+
}
|
|
34
|
+
function assetUrl(baseUrl, fileName) {
|
|
35
|
+
return new URL(fileName, baseUrl).toString();
|
|
36
|
+
}
|
|
37
|
+
async function fetchJson(fetchFn, url) {
|
|
38
|
+
const response = await fetchFn(url);
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
|
41
|
+
}
|
|
42
|
+
return await response.json();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Loads deployable Sierra/CASM artifacts from remote release assets.
|
|
46
|
+
*
|
|
47
|
+
* This is intended for admin UIs and browser-based tooling.
|
|
48
|
+
*/
|
|
49
|
+
export async function loadCoreBuildArtifactsFromReleaseAssets(source) {
|
|
50
|
+
const fetchFn = source.fetchFn ?? fetch;
|
|
51
|
+
const baseUrl = source.baseUrl ?? deriveBaseUrl(source.manifestUrl);
|
|
52
|
+
const manifestRaw = await fetchJson(fetchFn, source.manifestUrl);
|
|
53
|
+
const manifest = manifestRaw;
|
|
54
|
+
if (!Array.isArray(manifest.contracts)) {
|
|
55
|
+
throw new Error('Release manifest is missing contracts[]');
|
|
56
|
+
}
|
|
57
|
+
const byName = new Map();
|
|
58
|
+
for (const entry of manifest.contracts) {
|
|
59
|
+
if (!entry ||
|
|
60
|
+
typeof entry.name !== 'string' ||
|
|
61
|
+
typeof entry.sierra !== 'string' ||
|
|
62
|
+
typeof entry.casm !== 'string') {
|
|
63
|
+
throw new Error('Release manifest contains malformed contract entry');
|
|
64
|
+
}
|
|
65
|
+
byName.set(entry.name, entry);
|
|
66
|
+
}
|
|
67
|
+
const load = async (name) => {
|
|
68
|
+
const entry = byName.get(name);
|
|
69
|
+
if (!entry) {
|
|
70
|
+
throw new Error(`Release manifest missing contract entry: ${name}`);
|
|
71
|
+
}
|
|
72
|
+
const sierraRaw = await fetchJson(fetchFn, assetUrl(baseUrl, entry.sierra));
|
|
73
|
+
const casmRaw = await fetchJson(fetchFn, assetUrl(baseUrl, entry.casm));
|
|
74
|
+
return {
|
|
75
|
+
sierra: sierraRaw,
|
|
76
|
+
casm: casmRaw,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
const [amm, factory, mathLibrary, oracle] = await Promise.all([
|
|
80
|
+
load('normal_amm'),
|
|
81
|
+
load('normal_factory'),
|
|
82
|
+
load('normal_math_library'),
|
|
83
|
+
load('oracle'),
|
|
84
|
+
]);
|
|
85
|
+
return {
|
|
86
|
+
amm,
|
|
87
|
+
factory,
|
|
88
|
+
mathLibrary,
|
|
89
|
+
oracle,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
7
92
|
/**
|
|
8
93
|
* Declares a contract class if it is not already declared.
|
|
9
94
|
*/
|
|
@@ -42,6 +127,13 @@ export async function declareCoreContracts(account, artifacts) {
|
|
|
42
127
|
* Deploys the factory contract.
|
|
43
128
|
*/
|
|
44
129
|
export async function deployFactory(account, params) {
|
|
130
|
+
const result = await deployFactoryWithResult(account, params);
|
|
131
|
+
return result.contractAddress;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Deploys the factory contract and returns address + transaction hash.
|
|
135
|
+
*/
|
|
136
|
+
export async function deployFactoryWithResult(account, params) {
|
|
45
137
|
const deployed = await account.deployContract({
|
|
46
138
|
classHash: params.factoryClassHash,
|
|
47
139
|
constructorCalldata: CallData.compile({
|
|
@@ -53,18 +145,31 @@ export async function deployFactory(account, params) {
|
|
|
53
145
|
}),
|
|
54
146
|
});
|
|
55
147
|
await waitForTransaction(account, deployed.transaction_hash);
|
|
56
|
-
return
|
|
148
|
+
return {
|
|
149
|
+
contractAddress: deployed.contract_address,
|
|
150
|
+
transactionHash: deployed.transaction_hash,
|
|
151
|
+
};
|
|
57
152
|
}
|
|
58
153
|
/**
|
|
59
154
|
* Deploys the oracle extension contract.
|
|
60
155
|
*/
|
|
61
156
|
export async function deployOracle(account, oracleClassHash) {
|
|
157
|
+
const result = await deployOracleWithResult(account, oracleClassHash);
|
|
158
|
+
return result.contractAddress;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Deploys the oracle extension contract and returns address + transaction hash.
|
|
162
|
+
*/
|
|
163
|
+
export async function deployOracleWithResult(account, oracleClassHash) {
|
|
62
164
|
const deployed = await account.deployContract({
|
|
63
165
|
classHash: oracleClassHash,
|
|
64
166
|
constructorCalldata: [],
|
|
65
167
|
});
|
|
66
168
|
await waitForTransaction(account, deployed.transaction_hash);
|
|
67
|
-
return
|
|
169
|
+
return {
|
|
170
|
+
contractAddress: deployed.contract_address,
|
|
171
|
+
transactionHash: deployed.transaction_hash,
|
|
172
|
+
};
|
|
68
173
|
}
|
|
69
174
|
/**
|
|
70
175
|
* Builds ABI-aware calldata for `deploy_normal_market`.
|
package/dist/sdk/deployer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/sdk/deployer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,QAAQ,EAGR,IAAI,GACL,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/sdk/deployer.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
export { SituationClient, type SituationClientConfig } from './client';
|
|
7
|
-
export { buildDeployNormalMarketCalldata, calculateOracleAddress, declareContractIfNeeded, declareCoreContracts, deployFactory, deployNormalMarket, deployOracle, type ContractBuildArtifact, type CoreBuildArtifacts, type DeclaredClassHashes, type DeployFactoryParams, } from './deployer';
|
|
7
|
+
export { buildGitHubReleaseAssetBaseUrl, buildDeployNormalMarketCalldata, calculateOracleAddress, declareContractIfNeeded, declareCoreContracts, deployFactory, deployFactoryWithResult, deployNormalMarket, deployOracle, deployOracleWithResult, getContractsReleaseTag, loadCoreBuildArtifactsFromReleaseAssets, type ContractBuildArtifact, type CoreBuildArtifacts, type DeclaredClassHashes, type DeployContractResult, type DeployFactoryParams, type ReleaseManifest, type ReleaseManifestEntry, type RemoteArtifactsSource, } from './deployer';
|
|
8
8
|
export { AdminOps, MarketAdmin, type FactoryAdminSnapshot, type MarketAdminSnapshot, } from './admin';
|
|
9
|
-
export { buildDeployNormalMarketParams, buildSettlementValueRaw, buildSQ128x128Raw, type DeployNormalMarketInput, } from './admin-inputs';
|
|
9
|
+
export { buildDeployFactoryParams, buildDeployNormalMarketParams, ORACLE_EXTENSION_CALL_POINTS, packExtensionCallPoints, buildSettlementValueRaw, buildSQ128x128Raw, unpackExtensionCallPoints, type DeployFactoryInput, type DeployNormalMarketInput, type ExtensionCallPointsConfig, } from './admin-inputs';
|
|
10
10
|
export { MarketOps, type MarketSummary, type MeanAndSigma, type PositionSummary, type PreparedTrade, type PrepareTradeError, } from './market-ops';
|
|
11
11
|
export { OracleOps, type OracleAverages } from './oracle-ops';
|
|
12
12
|
export { type ClaimPreview, PositionOps, type PositionValue, type PositionVsMarket, } from './position-ops';
|
package/dist/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,uCAAuC,EACvC,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,wCAAwC,EACxC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,KAAK,4BAA4B,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC"}
|
package/dist/sdk/index.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
export { SituationClient } from './client';
|
|
7
|
-
export { buildDeployNormalMarketCalldata, calculateOracleAddress, declareContractIfNeeded, declareCoreContracts, deployFactory, deployNormalMarket, deployOracle, } from './deployer';
|
|
7
|
+
export { buildGitHubReleaseAssetBaseUrl, buildDeployNormalMarketCalldata, calculateOracleAddress, declareContractIfNeeded, declareCoreContracts, deployFactory, deployFactoryWithResult, deployNormalMarket, deployOracle, deployOracleWithResult, getContractsReleaseTag, loadCoreBuildArtifactsFromReleaseAssets, } from './deployer';
|
|
8
8
|
export { AdminOps, MarketAdmin, } from './admin';
|
|
9
|
-
export { buildDeployNormalMarketParams, buildSettlementValueRaw, buildSQ128x128Raw, } from './admin-inputs';
|
|
9
|
+
export { buildDeployFactoryParams, buildDeployNormalMarketParams, ORACLE_EXTENSION_CALL_POINTS, packExtensionCallPoints, buildSettlementValueRaw, buildSQ128x128Raw, unpackExtensionCallPoints, } from './admin-inputs';
|
|
10
10
|
export { MarketOps, } from './market-ops';
|
|
11
11
|
export { OracleOps } from './oracle-ops';
|
|
12
12
|
export { PositionOps, } from './position-ops';
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAA8B,MAAM,UAAU,CAAC;AACvE,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAA8B,MAAM,UAAU,CAAC;AACvE,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,uCAAuC,GASxC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,QAAQ,EACR,WAAW,GAGZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,GAI1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,GAMV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAEL,WAAW,GAGZ,MAAM,gBAAgB,CAAC;AAExB,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA2BnD,oDAAoD;AACpD,OAAO,EACL,wCAAwC,EACxC,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,GAE/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,GAG9B,MAAM,2BAA2B,CAAC"}
|
package/dist/utils/math.d.ts
CHANGED
|
@@ -13,19 +13,14 @@ export declare const SQRT_PI: number;
|
|
|
13
13
|
/**
|
|
14
14
|
* sqrt(π) as SQ128x128 constant.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
16
|
+
* Uses the exact raw constant from Cairo contracts.
|
|
17
17
|
*/
|
|
18
18
|
export declare const SQRT_PI_SQ: SQ128x128;
|
|
19
19
|
/**
|
|
20
|
-
* Computes
|
|
21
|
-
*
|
|
22
|
-
* The Newton-Raphson formula for sqrt(n) is:
|
|
23
|
-
* x_{k+1} = (x_k + n/x_k) / 2
|
|
24
|
-
*
|
|
25
|
-
* This converges quadratically, so ~10 iterations gives full 256-bit precision.
|
|
20
|
+
* Computes floor(sqrt(n)) in SQ128x128 space with contract-equivalent semantics.
|
|
26
21
|
*
|
|
27
22
|
* @param n - The value to take the square root of (must be non-negative)
|
|
28
|
-
* @param maxIter -
|
|
23
|
+
* @param maxIter - Deprecated legacy parameter (ignored)
|
|
29
24
|
* @returns The square root, or null if input is negative or computation fails
|
|
30
25
|
*
|
|
31
26
|
* @example
|
package/dist/utils/math.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAQ,MAAM,gBAAgB,CAAC;AA2DjD;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,MAA2B,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAMrB,CAAC;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAE,MAAW,GAAG,SAAS,GAAG,IAAI,CAgBlF"}
|
package/dist/utils/math.js
CHANGED
|
@@ -3,7 +3,53 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { SQ128x128,
|
|
6
|
+
import { SQ128x128, ZERO } from '../types/sq128';
|
|
7
|
+
const LIMB_BITS = 64n;
|
|
8
|
+
const LIMB_MASK = (1n << LIMB_BITS) - 1n;
|
|
9
|
+
const SQRT_SCALE_SHIFT = 128n;
|
|
10
|
+
// Matches contracts/src/market/normal/constants.cairo::SQRT_PI_RAW.
|
|
11
|
+
const CONTRACT_SQRT_PI_RAW = {
|
|
12
|
+
limb0: 0xc3b0520d5db9383fn,
|
|
13
|
+
limb1: 0xc5bf891b4ef6aa79n,
|
|
14
|
+
limb2: 0x1n,
|
|
15
|
+
limb3: 0x0n,
|
|
16
|
+
neg: false,
|
|
17
|
+
};
|
|
18
|
+
function rawToMagnitude(raw) {
|
|
19
|
+
return (raw.limb0 +
|
|
20
|
+
(raw.limb1 << LIMB_BITS) +
|
|
21
|
+
(raw.limb2 << (LIMB_BITS * 2n)) +
|
|
22
|
+
(raw.limb3 << (LIMB_BITS * 3n)));
|
|
23
|
+
}
|
|
24
|
+
function magnitudeToRaw(magnitude) {
|
|
25
|
+
return {
|
|
26
|
+
limb0: magnitude & LIMB_MASK,
|
|
27
|
+
limb1: (magnitude >> LIMB_BITS) & LIMB_MASK,
|
|
28
|
+
limb2: (magnitude >> (LIMB_BITS * 2n)) & LIMB_MASK,
|
|
29
|
+
limb3: (magnitude >> (LIMB_BITS * 3n)) & LIMB_MASK,
|
|
30
|
+
neg: false,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Integer square root (floor): returns max r such that r^2 <= value.
|
|
35
|
+
*/
|
|
36
|
+
function integerSqrtFloor(value) {
|
|
37
|
+
if (value < 0n) {
|
|
38
|
+
throw new Error('integerSqrtFloor requires non-negative input');
|
|
39
|
+
}
|
|
40
|
+
if (value < 2n) {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
const bitLength = BigInt(value.toString(2).length);
|
|
44
|
+
let x = 1n << ((bitLength + 1n) >> 1n);
|
|
45
|
+
while (true) {
|
|
46
|
+
const next = (x + (value / x)) >> 1n;
|
|
47
|
+
if (next >= x) {
|
|
48
|
+
return x;
|
|
49
|
+
}
|
|
50
|
+
x = next;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
7
53
|
/**
|
|
8
54
|
* sqrt(π) ≈ 1.7724538509055159
|
|
9
55
|
*
|
|
@@ -13,19 +59,20 @@ export const SQRT_PI = Math.sqrt(Math.PI);
|
|
|
13
59
|
/**
|
|
14
60
|
* sqrt(π) as SQ128x128 constant.
|
|
15
61
|
*
|
|
16
|
-
*
|
|
62
|
+
* Uses the exact raw constant from Cairo contracts.
|
|
17
63
|
*/
|
|
18
|
-
export const SQRT_PI_SQ =
|
|
64
|
+
export const SQRT_PI_SQ = (() => {
|
|
65
|
+
const value = SQ128x128.fromRaw(CONTRACT_SQRT_PI_RAW);
|
|
66
|
+
if (!value) {
|
|
67
|
+
throw new Error('Invalid contract SQRT_PI raw constant');
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
})();
|
|
19
71
|
/**
|
|
20
|
-
* Computes
|
|
21
|
-
*
|
|
22
|
-
* The Newton-Raphson formula for sqrt(n) is:
|
|
23
|
-
* x_{k+1} = (x_k + n/x_k) / 2
|
|
24
|
-
*
|
|
25
|
-
* This converges quadratically, so ~10 iterations gives full 256-bit precision.
|
|
72
|
+
* Computes floor(sqrt(n)) in SQ128x128 space with contract-equivalent semantics.
|
|
26
73
|
*
|
|
27
74
|
* @param n - The value to take the square root of (must be non-negative)
|
|
28
|
-
* @param maxIter -
|
|
75
|
+
* @param maxIter - Deprecated legacy parameter (ignored)
|
|
29
76
|
* @returns The square root, or null if input is negative or computation fails
|
|
30
77
|
*
|
|
31
78
|
* @example
|
|
@@ -41,45 +88,18 @@ export const SQRT_PI_SQ = SQ128x128.fromNumber(SQRT_PI);
|
|
|
41
88
|
* ```
|
|
42
89
|
*/
|
|
43
90
|
export function sqrtSQ128x128(n, maxIter = 20) {
|
|
91
|
+
void maxIter;
|
|
44
92
|
const raw = n.toRaw();
|
|
45
|
-
// sqrt(0) = 0
|
|
46
|
-
if (raw.limb0 === 0n && raw.limb1 === 0n && raw.limb2 === 0n && raw.limb3 === 0n) {
|
|
47
|
-
return ZERO;
|
|
48
|
-
}
|
|
49
|
-
// Negative numbers don't have real square roots
|
|
50
93
|
if (raw.neg) {
|
|
51
94
|
return null;
|
|
52
95
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (!x) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
// Newton-Raphson iteration: x = (x + n/x) / 2
|
|
60
|
-
for (let i = 0; i < maxIter; i++) {
|
|
61
|
-
const nDivX = n.div(x);
|
|
62
|
-
if (!nDivX) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
const sum = x.add(nDivX);
|
|
66
|
-
if (!sum) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
const next = sum.div(TWO);
|
|
70
|
-
if (!next) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
// Check for convergence (when x stops changing significantly)
|
|
74
|
-
const diff = next.sub(x);
|
|
75
|
-
if (diff) {
|
|
76
|
-
const diffRaw = diff.toRaw();
|
|
77
|
-
if (diffRaw.limb0 === 0n && diffRaw.limb1 === 0n) {
|
|
78
|
-
return next;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
x = next;
|
|
96
|
+
const magnitude = rawToMagnitude(raw);
|
|
97
|
+
if (magnitude === 0n) {
|
|
98
|
+
return ZERO;
|
|
82
99
|
}
|
|
83
|
-
|
|
100
|
+
// Contract uses integer sqrt over (raw << 128) and floor rounding.
|
|
101
|
+
const shifted = magnitude << SQRT_SCALE_SHIFT;
|
|
102
|
+
const rootMagnitude = integerSqrtFloor(shifted);
|
|
103
|
+
return SQ128x128.fromRaw(magnitudeToRaw(rootMagnitude));
|
|
84
104
|
}
|
|
85
105
|
//# sourceMappingURL=math.js.map
|
package/dist/utils/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"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"}
|