@optimex-xyz/market-maker-sdk 0.5.0-dev-4237adc → 0.5.0-dev-aa5306f
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/README.md +552 -511
- package/dist/index.d.mts +384 -7
- package/dist/index.d.ts +384 -7
- package/dist/index.js +117 -3
- package/dist/index.mjs +117 -3
- package/package.json +12 -11
package/dist/index.mjs
CHANGED
|
@@ -15,7 +15,7 @@ var environments = {
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
production: {
|
|
18
|
-
backendUrl: "https://api.
|
|
18
|
+
backendUrl: "https://api.optimex.xyz",
|
|
19
19
|
rpcUrl: "https://bitfi-ledger-testnet.alt.technology",
|
|
20
20
|
routerAddress: "0x272599CE3602A49B580A5C4a4d3C1067E30248D2",
|
|
21
21
|
paymentAddressMap: {
|
|
@@ -3437,6 +3437,15 @@ var RouterService = class {
|
|
|
3437
3437
|
constructor() {
|
|
3438
3438
|
this.provider = new JsonRpcProvider(config.getRpcUrl());
|
|
3439
3439
|
this.contract = Router__factory.connect(config.getRouterAddress(), this.provider);
|
|
3440
|
+
config.registerObserver(this);
|
|
3441
|
+
}
|
|
3442
|
+
/**
|
|
3443
|
+
* Implementation of ConfigObserver interface
|
|
3444
|
+
* Updates service when config changes
|
|
3445
|
+
*/
|
|
3446
|
+
onConfigUpdate(newConfig) {
|
|
3447
|
+
this.provider = new JsonRpcProvider(newConfig.rpcUrl);
|
|
3448
|
+
this.contract = Router__factory.connect(newConfig.routerAddress, this.provider);
|
|
3440
3449
|
}
|
|
3441
3450
|
async getSigner() {
|
|
3442
3451
|
return await this.contract.SIGNER();
|
|
@@ -3516,6 +3525,14 @@ var SignerService = class {
|
|
|
3516
3525
|
constructor() {
|
|
3517
3526
|
this.routerService = routerService;
|
|
3518
3527
|
this.provider = new JsonRpcProvider2(config.getRpcUrl());
|
|
3528
|
+
config.registerObserver(this);
|
|
3529
|
+
}
|
|
3530
|
+
/**
|
|
3531
|
+
* Implementation of ConfigObserver interface
|
|
3532
|
+
* Updates service when config changes
|
|
3533
|
+
*/
|
|
3534
|
+
onConfigUpdate(newConfig) {
|
|
3535
|
+
this.provider = new JsonRpcProvider2(newConfig.rpcUrl);
|
|
3519
3536
|
}
|
|
3520
3537
|
async getDomain() {
|
|
3521
3538
|
const signerAddress = await this.routerService.getSigner();
|
|
@@ -3591,9 +3608,78 @@ var SubmitSettlementRequestSchema = z.object({
|
|
|
3591
3608
|
var SubmitSettlementResponseSchema = z.object({
|
|
3592
3609
|
message: z.string()
|
|
3593
3610
|
});
|
|
3611
|
+
var TokenInfoSchema = z.object({
|
|
3612
|
+
tokenId: z.string(),
|
|
3613
|
+
chain: z.string(),
|
|
3614
|
+
address: z.string(),
|
|
3615
|
+
feeIn: z.boolean(),
|
|
3616
|
+
feeOut: z.boolean()
|
|
3617
|
+
});
|
|
3618
|
+
var PMMFinalistSchema = z.object({
|
|
3619
|
+
pmmId: z.string(),
|
|
3620
|
+
pmmReceivingAddress: z.string()
|
|
3621
|
+
});
|
|
3622
|
+
var PaymentBundleSchema = z.object({
|
|
3623
|
+
tradeIds: z.array(z.string()),
|
|
3624
|
+
settlementTx: z.string(),
|
|
3625
|
+
signature: z.string(),
|
|
3626
|
+
startIndex: z.number(),
|
|
3627
|
+
pmmId: z.string(),
|
|
3628
|
+
signedAt: z.number()
|
|
3629
|
+
});
|
|
3630
|
+
var TradeDetailResponseSchema = z.object({
|
|
3631
|
+
data: z.object({
|
|
3632
|
+
tradeId: z.string(),
|
|
3633
|
+
sessionId: z.string(),
|
|
3634
|
+
solverAddress: z.string(),
|
|
3635
|
+
fromToken: TokenInfoSchema,
|
|
3636
|
+
toToken: TokenInfoSchema,
|
|
3637
|
+
amountBeforeFees: z.string(),
|
|
3638
|
+
amountAfterFees: z.string(),
|
|
3639
|
+
fromUserAddress: z.string(),
|
|
3640
|
+
userReceivingAddress: z.string(),
|
|
3641
|
+
deadline: z.number(),
|
|
3642
|
+
protocolFeeInBps: z.string(),
|
|
3643
|
+
protocolMpcPubkey: z.string(),
|
|
3644
|
+
protocolMpcAddress: z.string(),
|
|
3645
|
+
bestIndicativeQuote: z.string(),
|
|
3646
|
+
displayIndicativeQuote: z.string(),
|
|
3647
|
+
pmmFinalists: z.array(PMMFinalistSchema),
|
|
3648
|
+
settlementQuote: z.string(),
|
|
3649
|
+
receivingAmount: z.string(),
|
|
3650
|
+
selectedPmm: z.string(),
|
|
3651
|
+
selectedPmmReceivingAddress: z.string(),
|
|
3652
|
+
selectedPmmOperator: z.string(),
|
|
3653
|
+
selectedPmmSigDeadline: z.number(),
|
|
3654
|
+
commitmentRetries: z.number(),
|
|
3655
|
+
pmmFailureStats: z.record(z.number()),
|
|
3656
|
+
commitedSignature: z.string(),
|
|
3657
|
+
minAmountOut: z.null(),
|
|
3658
|
+
sessionDeadline: z.number(),
|
|
3659
|
+
userDepositTx: z.string(),
|
|
3660
|
+
depositVault: z.string(),
|
|
3661
|
+
paymentBundle: PaymentBundleSchema,
|
|
3662
|
+
userSignature: z.string(),
|
|
3663
|
+
tradeSubmissionTx: z.string(),
|
|
3664
|
+
tradeSelectPmmTx: z.string(),
|
|
3665
|
+
tradeMakePaymentTx: z.string(),
|
|
3666
|
+
state: z.string(),
|
|
3667
|
+
lastUpdateMsg: z.string(),
|
|
3668
|
+
version: z.number()
|
|
3669
|
+
}),
|
|
3670
|
+
traceId: z.string()
|
|
3671
|
+
});
|
|
3594
3672
|
var SolverService = class {
|
|
3595
3673
|
constructor() {
|
|
3596
3674
|
this.baseURL = config.getBackendUrl();
|
|
3675
|
+
config.registerObserver(this);
|
|
3676
|
+
}
|
|
3677
|
+
/**
|
|
3678
|
+
* Implementation of ConfigObserver interface
|
|
3679
|
+
* Updates service when config changes
|
|
3680
|
+
*/
|
|
3681
|
+
onConfigUpdate(newConfig) {
|
|
3682
|
+
this.baseURL = newConfig.backendUrl;
|
|
3597
3683
|
}
|
|
3598
3684
|
/**
|
|
3599
3685
|
* Submits a settlement transaction to the solver backend
|
|
@@ -3606,7 +3692,7 @@ var SolverService = class {
|
|
|
3606
3692
|
SubmitSettlementRequestSchema.parse(params);
|
|
3607
3693
|
const snakeCaseParams = convertToSnakeCase(params);
|
|
3608
3694
|
const response = await axios.post(
|
|
3609
|
-
`${this.baseURL}/
|
|
3695
|
+
`${this.baseURL}/v1/market-maker/submit-settlement-tx`,
|
|
3610
3696
|
snakeCaseParams,
|
|
3611
3697
|
{
|
|
3612
3698
|
headers: {
|
|
@@ -3626,6 +3712,34 @@ var SolverService = class {
|
|
|
3626
3712
|
throw error;
|
|
3627
3713
|
}
|
|
3628
3714
|
}
|
|
3715
|
+
/**
|
|
3716
|
+
* Get trade details
|
|
3717
|
+
* @param tradeId ID of the trade to query
|
|
3718
|
+
* @returns Promise with trade details in camelCase format
|
|
3719
|
+
* @throws Error if request fails or validation fails
|
|
3720
|
+
*/
|
|
3721
|
+
async getTradeDetail(tradeId) {
|
|
3722
|
+
try {
|
|
3723
|
+
const response = await axios.get(`${this.baseURL}/v1/market-maker/trades/${tradeId}`, {
|
|
3724
|
+
headers: {
|
|
3725
|
+
"Content-Type": "application/json",
|
|
3726
|
+
Accept: "application/json"
|
|
3727
|
+
}
|
|
3728
|
+
});
|
|
3729
|
+
console.log("\u{1F680} ~ SolverService ~ getTradeDetail ~ response.data:", response.data);
|
|
3730
|
+
const camelCaseData = convertToCamelCase(response.data);
|
|
3731
|
+
console.log("\u{1F680} ~ SolverService ~ getTradeDetail ~ camelCaseData:", camelCaseData);
|
|
3732
|
+
return TradeDetailResponseSchema.parse(camelCaseData);
|
|
3733
|
+
} catch (error) {
|
|
3734
|
+
if (axios.isAxiosError(error)) {
|
|
3735
|
+
throw new Error(`Failed to fetch trade details: ${error.message}`);
|
|
3736
|
+
}
|
|
3737
|
+
if (error instanceof z.ZodError) {
|
|
3738
|
+
throw new Error(`Invalid data: ${error.message}`);
|
|
3739
|
+
}
|
|
3740
|
+
throw error;
|
|
3741
|
+
}
|
|
3742
|
+
}
|
|
3629
3743
|
};
|
|
3630
3744
|
var solverService = new SolverService();
|
|
3631
3745
|
|
|
@@ -3675,7 +3789,7 @@ var TokenService = class {
|
|
|
3675
3789
|
*/
|
|
3676
3790
|
async getTokens() {
|
|
3677
3791
|
try {
|
|
3678
|
-
const response = await axios2.get(`${this.baseURL}/v1/tokens`, {
|
|
3792
|
+
const response = await axios2.get(`${this.baseURL}/v1/market-maker/tokens`, {
|
|
3679
3793
|
headers: {
|
|
3680
3794
|
Accept: "application/json"
|
|
3681
3795
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optimex-xyz/market-maker-sdk",
|
|
3
|
-
"version": "0.5.0-dev-
|
|
3
|
+
"version": "0.5.0-dev-aa5306f",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"commit": "cz"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"axios": "^1.
|
|
45
|
+
"axios": "^1.8.3",
|
|
46
46
|
"bip174": "^3.0.0-rc.1",
|
|
47
47
|
"bitcoinjs-lib": "^7.0.0-rc.0",
|
|
48
|
-
"ecpair": "^3.0.0
|
|
49
|
-
"ethers": "^6.13.
|
|
48
|
+
"ecpair": "^3.0.0",
|
|
49
|
+
"ethers": "^6.13.5",
|
|
50
50
|
"tiny-secp256k1": "^2.2.3",
|
|
51
|
-
"zod": "^3.
|
|
51
|
+
"zod": "^3.24.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@commitlint/cli": "^19.8.0",
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
"@eslint/js": "^9.22.0",
|
|
57
57
|
"@ianvs/prettier-plugin-sort-imports": "^4.4.1",
|
|
58
58
|
"@typechain/ethers-v6": "^0.5.1",
|
|
59
|
-
"@types/node": "^22.10
|
|
60
|
-
"@typescript-eslint/eslint-plugin": "^8.26.
|
|
61
|
-
"@typescript-eslint/parser": "^8.26.
|
|
59
|
+
"@types/node": "^22.13.10",
|
|
60
|
+
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
61
|
+
"@typescript-eslint/parser": "^8.26.1",
|
|
62
62
|
"commitizen": "^4.3.1",
|
|
63
63
|
"eslint": "^9.22.0",
|
|
64
64
|
"eslint-config-prettier": "^10.1.1",
|
|
65
65
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
66
66
|
"globals": "^16.0.0",
|
|
67
|
-
"lint-staged": "^15.
|
|
67
|
+
"lint-staged": "^15.5.0",
|
|
68
68
|
"prettier": "^3.5.3",
|
|
69
69
|
"simple-git-hooks": "^2.11.1",
|
|
70
70
|
"tsup": "^8.4.0",
|
|
71
71
|
"typechain": "^8.3.2",
|
|
72
|
-
"typescript": "^5.
|
|
73
|
-
"typescript-eslint": "^8.26.
|
|
72
|
+
"typescript": "^5.8.2",
|
|
73
|
+
"typescript-eslint": "^8.26.1"
|
|
74
74
|
},
|
|
75
75
|
"simple-git-hooks": {
|
|
76
76
|
"pre-commit": "npx lint-staged",
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
},
|
|
79
79
|
"lint-staged": {
|
|
80
80
|
"src/**/*.{js,ts,tsx}": [
|
|
81
|
+
"eslint --fix",
|
|
81
82
|
"prettier --write"
|
|
82
83
|
]
|
|
83
84
|
},
|