@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/dist/index.mjs CHANGED
@@ -15,7 +15,7 @@ var environments = {
15
15
  }
16
16
  },
17
17
  production: {
18
- backendUrl: "https://api.petafi.xyz",
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}/solver/submit-settlement-tx`,
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-4237adc",
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.7.9",
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-rc.0",
49
- "ethers": "^6.13.4",
48
+ "ecpair": "^3.0.0",
49
+ "ethers": "^6.13.5",
50
50
  "tiny-secp256k1": "^2.2.3",
51
- "zod": "^3.23.8"
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.1",
60
- "@typescript-eslint/eslint-plugin": "^8.26.0",
61
- "@typescript-eslint/parser": "^8.26.0",
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.4.3",
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.7.3",
73
- "typescript-eslint": "^8.26.0"
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
  },