@switch-win/sdk 1.0.6 → 1.0.7

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 CHANGED
@@ -86,7 +86,8 @@ curl -H "x-api-key: YOUR_KEY" \
86
86
  # 2. Approve the SwitchRouter to spend your input token (ERC-20 only, skip for native PLS)
87
87
 
88
88
  # 3. Send the transaction using the `tx` object from the response:
89
- # { to: "0x31077...", data: "0x...", value: "0" }
89
+ # { to: "0x0305...", data: "0x...", value: "0" }
90
+ # ⚠️ Always use tx.to — do NOT hardcode the router address
90
91
  ```
91
92
 
92
93
  ### Using the SDK types (TypeScript)
@@ -106,10 +107,12 @@ const quote: BestPathResponse = await res.json();
106
107
  const token = new ethers.Contract(fromToken, ["function approve(address,uint256)"], signer);
107
108
  await (await token.approve(SWITCH_ROUTER, amount)).wait();
108
109
 
109
- // 3. Send the swap
110
+ // 3. Send the swap — always use quote.tx which includes the correct router address
110
111
  await signer.sendTransaction(quote.tx);
111
112
  ```
112
113
 
114
+ > **⚠️ Always use `tx.to` from the quote response** when sending swap transactions. Do NOT hardcode the router address — the contract may be redeployed.
115
+
113
116
  For a production integration with tax token handling, adapter filtering, and fee mode selection, see [Swap Integration Flow](#swap-integration-flow) and the [full examples](examples/).
114
117
 
115
118
  ---
@@ -297,6 +300,8 @@ console.log("Swap confirmed:", receipt.hash);
297
300
 
298
301
  That's it. The `tx.data` already encodes the correct `goSwitch()` call with your routes, slippage protection, fee, and partner address.
299
302
 
303
+ > **⚠️ Always use `tx.to` from the response** — do NOT hardcode the router address. The `SWITCH_ROUTER` constant is provided for **token approvals only**. The router contract may be redeployed; `tx.to` always points to the current production router.
304
+
300
305
  The `tx` object does not include a `gas` field. Most wallet libraries (ethers.js, web3.py, MetaMask) auto-estimate gas when `gas` is omitted. For multi-hop split swaps, `500,000`–`1,000,000` gas is typically sufficient:
301
306
 
302
307
  ```js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@switch-win/sdk",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Official integration kit for the Switch DEX Aggregator on PulseChain — types, constants, ABIs, limit orders, and examples",
5
5
  "author": "BuildTheTech",
6
6
  "license": "MIT",
package/src/constants.ts CHANGED
@@ -32,8 +32,15 @@ export const CHAIN_ID = 369;
32
32
 
33
33
  // ── Contract addresses --
34
34
 
35
- /** SwitchRouter contract — target for all swap transactions */
36
- export const SWITCH_ROUTER = "0xc6d4f096A7a4B3d534DEa725821346Ee1b4FE5CE";
35
+ /**
36
+ * SwitchRouter contract — approval target for swap transactions.
37
+ *
38
+ * **Important:** Do NOT hardcode this address as the `to` field when sending
39
+ * swap transactions. Always use `tx.to` from the quote response — the router
40
+ * contract may be redeployed. This constant is safe for **approvals only**
41
+ * (the new router honours legacy allowances).
42
+ */
43
+ export const SWITCH_ROUTER = "0x0305fcb5dA680EA6fd1B01A96C1949175B99d406";
37
44
 
38
45
  /**
39
46
  * Native PLS sentinel address.
@@ -47,11 +54,11 @@ export const WPLS = "0xA1077a294dDE1B09bB078844df40758a5D0f9a27";
47
54
  // ── Limit Order contract ────────────────────────────────────────────────
48
55
 
49
56
  /**
50
- * SwitchLimitOrder contract address on PulseChain.
57
+ * SwitchLimitOrder contract address on PulseChain (V4).
51
58
  *
52
59
  * The EIP-712 domain `verifyingContract` MUST match this address.
53
60
  */
54
- export const SWITCH_LIMIT_ORDER = "0x0e884072a891b406C0D814907A1E2310fE5F5Deb";
61
+ export const SWITCH_LIMIT_ORDER = "0x8e3881bdF81Fc0211383B2e576076B654F7aFD86";
55
62
 
56
63
  /**
57
64
  * SwitchPLSFlow contract address on PulseChain.