@switch-win/sdk 1.2.2 → 1.2.4
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/LIMIT-ORDERS.md +737 -0
- package/README.md +29 -14
- package/ROBINHOOD.md +135 -50
- package/abi/SwitchLimitOrderABI.json +1 -1
- package/abi/SwitchRouterABI.json +1 -1
- package/package.json +3 -2
- package/src/constants.ts +3 -3
- package/src/index.ts +32 -16
- package/src/limit-orders.ts +135 -19
- package/src/networks/index.ts +10 -5
- package/src/networks/robinhood.ts +227 -21
- package/src/types.ts +53 -29
package/README.md
CHANGED
|
@@ -121,8 +121,12 @@ For a production integration with tax token handling, adapter filtering, and fee
|
|
|
121
121
|
### Robinhood Chain
|
|
122
122
|
|
|
123
123
|
Robinhood uses the same quote endpoint; set `network=robinhood`. The dedicated
|
|
124
|
-
module includes canonical chain metadata, deployed Switch contracts, vetted
|
|
125
|
-
routing hubs, and a URL builder that always includes the correct network.
|
|
124
|
+
module includes canonical chain metadata, deployed Switch contracts, vetted
|
|
125
|
+
routing hubs, and a URL builder that always includes the correct network.
|
|
126
|
+
The production router exposes nineteen adapters across Uniswap, SwapHood,
|
|
127
|
+
Up33, Sheriff, Aeon, Catnip, PancakeSwap, RobinSwap, SushiSwap, GIGA, Flap,
|
|
128
|
+
Ramses, and Switch limit orders. `ROBINHOOD_ADAPTERS` contains a typed snapshot;
|
|
129
|
+
fetch `/swap/adapters?network=robinhood` when runtime freshness matters.
|
|
126
130
|
|
|
127
131
|
For network configuration, deployed addresses, tax handling, execution, and
|
|
128
132
|
the complete frontend token list, see [`ROBINHOOD.md`](ROBINHOOD.md).
|
|
@@ -139,7 +143,7 @@ const url = buildRobinhoodQuoteUrl({
|
|
|
139
143
|
to: ROBINHOOD_TOKENS.USDG.address,
|
|
140
144
|
amount: 1_000_000_000_000_000n,
|
|
141
145
|
sender: walletAddress,
|
|
142
|
-
slippage:
|
|
146
|
+
slippage: 100, // 1%, matching the Robinhood frontend default
|
|
143
147
|
});
|
|
144
148
|
|
|
145
149
|
const response = await fetch(url, {
|
|
@@ -684,11 +688,11 @@ GET /swap/quote?network=pulsechain&from=0xA1077a294dDE1B09bB078844df40758a5D0f9a
|
|
|
684
688
|
| `toToken` | `string` | Output token address |
|
|
685
689
|
| `receiver` | `string?` | Recipient address for output tokens. Same as `sender` unless a custom `receiver` was specified. |
|
|
686
690
|
| `totalAmountIn` | `string` | Total input amount in wei |
|
|
687
|
-
| `totalAmountOut` | `string` |
|
|
691
|
+
| `totalAmountOut` | `string` | Quoted route output in wei before the Switch protocol fee and slippage. Protocol-native quoters such as Flap Portal may already include their token-tax effect. |
|
|
688
692
|
| `expectedOutputAmount` | `string` | Expected output the user will actually receive, in wei. Accounts for sell tax, protocol fee, and buy tax — but NOT slippage. This is the most accurate value to display as the estimated received amount. When `feeOnOutput` is passed correctly, this is **exact** (matches on-chain execution). |
|
|
689
|
-
| `minAmountOut` | `string` | Minimum acceptable output after
|
|
693
|
+
| `minAmountOut` | `string` | Minimum acceptable output after adapter-specific tax accounting, fee, and slippage. Use the API value directly; do not recompute it by multiplying the reported tax rates. This is encoded in `tx.data` as `_minTotalAmountOut`. |
|
|
690
694
|
| `paths` | `SwapPath[]` | Human-readable path descriptions |
|
|
691
|
-
| `routeAllocation` | `RouteAllocationPlan` |
|
|
695
|
+
| `routeAllocation` | `RouteAllocationPlan` | Human-readable structured route breakdown for display and analytics. It is not a drop-in on-chain ABI value. |
|
|
692
696
|
| `tx` | `SwapTransaction?` | Ready-to-send transaction (fee on input). Only present when `sender` is provided. |
|
|
693
697
|
| `txFeeOnOutput` | `SwapTransaction?` | Ready-to-send transaction (fee on output). Only present when `sender` is provided. Choose between `tx` and `txFeeOnOutput` at send time. |
|
|
694
698
|
| `fromTokenTax` | `TokenTaxResponse?` | Transfer tax info for the input token. See [Tax Tokens Deep Dive](#tax-tokens-deep-dive). |
|
|
@@ -769,9 +773,16 @@ Present on every quote response as `fromTokenTax` and `toTokenTax`. Reports whet
|
|
|
769
773
|
|
|
770
774
|
| Field | Type | Description |
|
|
771
775
|
|---|---|---|
|
|
772
|
-
| `adapter` | `string` | Human-readable DEX adapter name (e.g. `"PulseXV2"`) |
|
|
773
|
-
| `amountIn` | `string` | Input amount routed through this adapter |
|
|
774
|
-
| `amountOut` | `string` | Expected output from this adapter |
|
|
776
|
+
| `adapter` | `string` | Human-readable DEX adapter name (e.g. `"PulseXV2"`) |
|
|
777
|
+
| `amountIn` | `string` | Input amount routed through this adapter |
|
|
778
|
+
| `amountOut` | `string` | Expected output from this adapter |
|
|
779
|
+
| `fee` | `number?` | V3 fee tier or concentrated-liquidity tick-spacing hint; zero when unused |
|
|
780
|
+
|
|
781
|
+
Use the API-provided `tx.data` for execution. If you intentionally construct
|
|
782
|
+
router or limit-order calldata yourself, each on-chain adapter leg is
|
|
783
|
+
`{ adapter, amountIn, fee, data }`; `data` is required and should be `0x` for
|
|
784
|
+
adapters that need no payload. The display-oriented `routeAllocation` does not
|
|
785
|
+
contain enough information to encode every route family.
|
|
775
786
|
|
|
776
787
|
---
|
|
777
788
|
|
|
@@ -917,11 +928,15 @@ await signer.sendTransaction(chosenTx);
|
|
|
917
928
|
|
|
918
929
|
## Limit Orders
|
|
919
930
|
|
|
920
|
-
Switch Limit Orders let users place **gasless, signed orders** that are filled automatically when market conditions are met — no gas to create, no token deposits, EIP-712 signed.
|
|
921
|
-
|
|
922
|
-
**→ Full integration guide: [`LIMIT-ORDERS.md`](LIMIT-ORDERS.md)**
|
|
923
|
-
|
|
924
|
-
Covers
|
|
931
|
+
Switch Limit Orders let users place **gasless, signed orders** that are filled automatically when market conditions are met — no gas to create, no token deposits, EIP-712 signed.
|
|
932
|
+
|
|
933
|
+
**→ Full integration guide: [`LIMIT-ORDERS.md`](LIMIT-ORDERS.md)**
|
|
934
|
+
|
|
935
|
+
Covers both `pulsechain` and `robinhood`: creating orders, live deployment
|
|
936
|
+
discovery, approvals, `feeOnOutput` decision rules, native PLS/ETH flows,
|
|
937
|
+
querying, cancellation, API types, and EIP-712 details. Use
|
|
938
|
+
`fetchLimitOrderConfig({ network })` at startup and include `network` in every
|
|
939
|
+
orderbook request.
|
|
925
940
|
|
|
926
941
|
---
|
|
927
942
|
|
package/ROBINHOOD.md
CHANGED
|
@@ -11,8 +11,8 @@ Production integration reference for Switch swaps on Robinhood Chain mainnet.
|
|
|
11
11
|
| Explorer | `https://robinhoodchain.blockscout.com` |
|
|
12
12
|
| Quote API | `https://quote.switch.win/swap/quote` |
|
|
13
13
|
| Tax API | `https://quote.switch.win/swap/checkTax` |
|
|
14
|
-
| Supported liquidity | Uniswap V2,
|
|
15
|
-
| Limit orders |
|
|
14
|
+
| Supported liquidity | 19 adapters: Uniswap V2/V3/V4, Switch limit orders, SwapHood, Up33, Sheriff, Aeon, Catnip, PancakeSwap, RobinSwap, SushiSwap, GIGA, Flap, and Ramses |
|
|
15
|
+
| Limit orders | Available: EIP-712 ERC-20 orders plus native ETH flow |
|
|
16
16
|
|
|
17
17
|
## Contents
|
|
18
18
|
|
|
@@ -111,6 +111,21 @@ await window.ethereum.request({
|
|
|
111
111
|
| SwitchLimitOrder | `0x752c50DDd3B426cAE3D7A995F313Ac74ac6B0230` |
|
|
112
112
|
| Native ETH flow | `0x029FfC6aF9112eA078f1D6f4a98826DDB2136cf6` |
|
|
113
113
|
| Switch Limit Order adapter (index 3) | `0x412F625072c10e58C619D1e0b3C95cd3d5689871` |
|
|
114
|
+
| SwapHood V2 adapter (index 4) | `0x6D8746f02e52944c13824fA691c6f4186E463354` |
|
|
115
|
+
| SwapHood V3 adapter (index 5) | `0x9645dE0AcB48F0AAefdBEb423F0558457907DE98` |
|
|
116
|
+
| Up33 CL adapter (index 6) | `0x388179D2FB0ABcE9b03068916aF8a3c4dfD023c8` |
|
|
117
|
+
| Sheriff V2 adapter (index 7) | `0xBDB3EB0355981500f58C9bc77c3E61762844A146` |
|
|
118
|
+
| Sheriff Algebra adapter (index 8) | `0xaC4da986100724983042Ec28c28db243E2f828CB` |
|
|
119
|
+
| Aeon Algebra adapter (index 9) | `0x20615954FB87360139e7DdDB519359498EbD1904` |
|
|
120
|
+
| Catnip V2 adapter (index 10) | `0x5b2Ca358d56490Dc86224D502522314De7707237` |
|
|
121
|
+
| PancakeSwap V2 adapter (index 11) | `0x3B6e71A59553143937Fef74a7B50AFD24528786E` |
|
|
122
|
+
| RobinSwap V3 adapter (index 12) | `0x798f77D63b46b0E019de206E111e5ea5CC16BEc8` |
|
|
123
|
+
| SushiSwap V3 adapter (index 13) | `0xca3EA0Fd6E31f94c81B6586836790adE638313ED` |
|
|
124
|
+
| GIGA V2 adapter (index 14) | `0xa379c7D17F7fEe735773879D4069886B117AB54a` |
|
|
125
|
+
| GIGA V3 adapter (index 15) | `0xcAa612CDe3d3FbE97Be97eB5f79BC91597432d55` |
|
|
126
|
+
| Flap Portal adapter (index 16) | `0x6af2A4475C44d5833575150Bf7C3D3FE6Bf4F344` |
|
|
127
|
+
| Ramses V3 adapter (index 17) | `0xdBf182774C60932c6fe1Bf3FFaB8Ca28CCb0dC17` |
|
|
128
|
+
| Ramses V2 adapter (index 18) | `0x5fe3b873c222e76f7630b40052f07ee06196E6d3` |
|
|
114
129
|
|
|
115
130
|
The V4 adapter was created in
|
|
116
131
|
[deployment transaction `0x60d5...34a7`](https://robinhoodchain.blockscout.com/tx/0x60d56466a8162a643a15ecde98322ec05ea23d44d03fbd817df4ddbaef4834a7)
|
|
@@ -162,6 +177,26 @@ Submit signed orders to `POST /limit-orders?network=robinhood`. For
|
|
|
162
177
|
`feeOnOutput=false`, approve `ROBINHOOD_SWITCH_CONTRACTS.limitOrder`; for
|
|
163
178
|
`feeOnOutput=true`, approve `ROBINHOOD_SWITCH_CONTRACTS.router`.
|
|
164
179
|
|
|
180
|
+
Applications should fetch `/limit-orders/config?network=robinhood` at startup
|
|
181
|
+
instead of relying only on static addresses. The SDK exposes this as:
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
const config = await fetchLimitOrderConfig({ network: "robinhood" });
|
|
185
|
+
const signing = getNetworkEIP712SigningParams(
|
|
186
|
+
"robinhood",
|
|
187
|
+
config.limitOrderContract,
|
|
188
|
+
);
|
|
189
|
+
const approvalTarget = getLimitOrderApprovalTarget(
|
|
190
|
+
"robinhood",
|
|
191
|
+
order.feeOnOutput,
|
|
192
|
+
{ limitOrderContract: config.limitOrderContract },
|
|
193
|
+
);
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Include `limitOrderContract: config.limitOrderContract` with the submitted
|
|
197
|
+
signed order. Every returned order also carries its own deployment address;
|
|
198
|
+
operators must fill and makers must cancel against that per-order address.
|
|
199
|
+
|
|
165
200
|
Native ETH input orders are created on-chain through
|
|
166
201
|
`ROBINHOOD_SWITCH_CONTRACTS.nativeEthFlow` and are indexed from its events; do
|
|
167
202
|
not POST them as signed EOA orders. Native ETH output is represented by WETH in
|
|
@@ -221,9 +256,11 @@ The canonical Robinhood V4 infrastructure is available through
|
|
|
221
256
|
| Universal Router | `0x8876789976decbfcbbbe364623c63652db8c0904` |
|
|
222
257
|
| Permit2 | `0x000000000022D473030F116dDEE9F6B43aC78BA3` |
|
|
223
258
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
259
|
+
If either side is detected as a transfer-tax token, the complete route is
|
|
260
|
+
restricted to tax-safe adapters `0`, `4`, `7`, `10`, `11`, `14`, `16`, and
|
|
261
|
+
`18`. Indices `14` and `18` use direct-pair V2 execution. Flap at index `16`
|
|
262
|
+
must execute through its Portal, whose quote already includes Flap token taxes
|
|
263
|
+
in both directions; clients must not apply those taxes a second time.
|
|
227
264
|
|
|
228
265
|
## Swap integration flow
|
|
229
266
|
|
|
@@ -239,8 +276,11 @@ Use the same sequence as a PulseChain integration:
|
|
|
239
276
|
6. Show `expectedOutputAmount`, `minAmountOut`, route allocation, and detected
|
|
240
277
|
taxes to the user.
|
|
241
278
|
|
|
242
|
-
Any swap involving a tax token is routed entirely through
|
|
243
|
-
|
|
279
|
+
Any swap involving a tax token is routed entirely through the tax-safe adapter
|
|
280
|
+
set (`0`, `4`, `7`, `10`, `11`, `14`, `16`, and `18`). This also applies when
|
|
281
|
+
both input and output are tax tokens. Direct-pair adapters receive the
|
|
282
|
+
post-transfer amount; Flap is quoted separately with its full adapter input
|
|
283
|
+
because Portal quoting already models the taxable transfer.
|
|
244
284
|
|
|
245
285
|
## Quickstart
|
|
246
286
|
|
|
@@ -257,7 +297,7 @@ const url = buildRobinhoodQuoteUrl({
|
|
|
257
297
|
to: ROBINHOOD_TOKENS.USDG.address,
|
|
258
298
|
amount: 1_000_000_000_000_000n,
|
|
259
299
|
sender: walletAddress,
|
|
260
|
-
slippage:
|
|
300
|
+
slippage: 100, // 1.00%, the Robinhood frontend default
|
|
261
301
|
feeOnOutput,
|
|
262
302
|
});
|
|
263
303
|
|
|
@@ -281,7 +321,7 @@ Equivalent curl request:
|
|
|
281
321
|
|
|
282
322
|
```bash
|
|
283
323
|
curl -H "x-api-key: YOUR_KEY" \
|
|
284
|
-
"https://quote.switch.win/swap/quote?network=robinhood&from=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE&to=0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168&amount=1000000000000000&sender=0xYOUR_WALLET&slippage=
|
|
324
|
+
"https://quote.switch.win/swap/quote?network=robinhood&from=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE&to=0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168&amount=1000000000000000&sender=0xYOUR_WALLET&slippage=100"
|
|
285
325
|
```
|
|
286
326
|
|
|
287
327
|
Omit `sender` for a display-only quote. Fetch again with the sender immediately
|
|
@@ -374,7 +414,7 @@ const quoteUrl = buildRobinhoodQuoteUrl({
|
|
|
374
414
|
to: tokenOut,
|
|
375
415
|
amount: amountIn,
|
|
376
416
|
sender: walletAddress,
|
|
377
|
-
slippage:
|
|
417
|
+
slippage: 100,
|
|
378
418
|
feeOnOutput,
|
|
379
419
|
});
|
|
380
420
|
|
|
@@ -441,17 +481,34 @@ Robinhood currently returns:
|
|
|
441
481
|
|
|
442
482
|
| Index | Adapter |
|
|
443
483
|
|---:|---|
|
|
444
|
-
| `0` | Uniswap V2 |
|
|
445
|
-
| `1` | Uniswap V3 |
|
|
446
|
-
| `2` | Uniswap V4 |
|
|
484
|
+
| `0` | Uniswap V2 |
|
|
485
|
+
| `1` | Uniswap V3 |
|
|
486
|
+
| `2` | Uniswap V4 |
|
|
487
|
+
| `3` | Switch Limit Orders |
|
|
488
|
+
| `4` | SwapHood V2 |
|
|
489
|
+
| `5` | SwapHood V3 |
|
|
490
|
+
| `6` | Up33 CL |
|
|
491
|
+
| `7` | Sheriff V2 |
|
|
492
|
+
| `8` | Sheriff Algebra |
|
|
493
|
+
| `9` | Aeon Algebra |
|
|
494
|
+
| `10` | Catnip V2 |
|
|
495
|
+
| `11` | PancakeSwap V2 |
|
|
496
|
+
| `12` | RobinSwap V3 |
|
|
497
|
+
| `13` | SushiSwap V3 |
|
|
498
|
+
| `14` | GIGA V2 |
|
|
499
|
+
| `15` | GIGA V3 |
|
|
500
|
+
| `16` | Flap |
|
|
501
|
+
| `17` | Ramses V3 |
|
|
502
|
+
| `18` | Ramses V2 |
|
|
447
503
|
|
|
448
504
|
Treat the endpoint response, not this document, as the source of truth for
|
|
449
505
|
which adapters are currently selectable.
|
|
450
506
|
|
|
451
|
-
Do not permanently hard-code the available adapter list in an integration.
|
|
452
|
-
Fetch it when presenting routing-source controls. If a quote involves a tax
|
|
453
|
-
token, the backend
|
|
454
|
-
filter that excludes
|
|
507
|
+
Do not permanently hard-code the available adapter list in an integration.
|
|
508
|
+
Fetch it when presenting routing-source controls. If a quote involves a tax
|
|
509
|
+
token, the backend restricts routing to tax-safe adapters `0`, `4`, `7`, `10`,
|
|
510
|
+
`11`, `14`, `16`, and `18`; an explicit filter that excludes all of them is
|
|
511
|
+
rejected.
|
|
455
512
|
|
|
456
513
|
### Check token tax
|
|
457
514
|
|
|
@@ -487,7 +544,7 @@ GET https://quote.switch.win/swap/quote
|
|
|
487
544
|
| `amount` | Yes | Raw input amount. |
|
|
488
545
|
| `sender` | No | Required when transaction calldata is needed. |
|
|
489
546
|
| `receiver` | No | Output recipient; defaults to `sender`. |
|
|
490
|
-
| `slippage` | No | Basis points;
|
|
547
|
+
| `slippage` | No | Basis points; API fallback `50` (`0.5%`). The Switch Robinhood frontend explicitly requests `100` (`1%`). |
|
|
491
548
|
| `fee` | No | Partner/protocol fee in basis points. |
|
|
492
549
|
| `partnerAddress` | No | Fee-sharing recipient. |
|
|
493
550
|
| `feeOnOutput` | No | `true` takes the fee from output; `false` takes it from input. |
|
|
@@ -505,11 +562,11 @@ Important response fields:
|
|
|
505
562
|
|---|---|
|
|
506
563
|
| `fromToken`, `toToken` | Normalized pair addresses. |
|
|
507
564
|
| `totalAmountIn` | Gross input amount. |
|
|
508
|
-
| `totalAmountOut` |
|
|
565
|
+
| `totalAmountOut` | Quoted route output before the Switch fee and slippage. Adapter-native quotes such as Flap Portal may already include token tax. |
|
|
509
566
|
| `expectedOutputAmount` | Expected user receipt after tax and fee, before slippage. |
|
|
510
|
-
| `minAmountOut` | Minimum output
|
|
567
|
+
| `minAmountOut` | Minimum output after adapter-specific tax accounting, fee, and slippage; use it directly. |
|
|
511
568
|
| `paths` | Human-readable route descriptions. |
|
|
512
|
-
| `routeAllocation` |
|
|
569
|
+
| `routeAllocation` | Human-readable split, hop, and adapter allocation. Adapter payloads such as V4 PoolKey data are encoded in the executable transaction and must not be reconstructed from this display object. |
|
|
513
570
|
| `fromTokenTax`, `toTokenTax` | Detected tax metadata. |
|
|
514
571
|
| `effectiveSlippageBps` | Slippage plus applicable tax buffers. |
|
|
515
572
|
| `tx` | Fee-on-input transaction; present when `sender` is supplied. |
|
|
@@ -529,7 +586,7 @@ Common Robinhood errors include:
|
|
|
529
586
|
- Missing or unsupported `network`.
|
|
530
587
|
- Invalid token, sender, receiver, or partner address.
|
|
531
588
|
- Invalid raw amount, slippage, fee, gas price, or adapter filter.
|
|
532
|
-
- A tax-token quote explicitly excluded
|
|
589
|
+
- A tax-token quote explicitly excluded every tax-safe direct-pair V2 adapter.
|
|
533
590
|
- No viable route across the currently active adapters, or insufficient liquidity.
|
|
534
591
|
- RPC timeout or public-RPC rate limiting.
|
|
535
592
|
- Missing executable transaction because `sender` was omitted.
|
|
@@ -576,7 +633,13 @@ into the UI separately from this list.
|
|
|
576
633
|
| TENDIES | TENDIES | `0x45242320DBB855EeA8Fd36804C6487E10E97FCF9` | 18 |
|
|
577
634
|
| GME | GameStop | `0x7e86381A763F0Ecca2bDF27C54eAC403ddD48123` | 18 |
|
|
578
635
|
| 4663 | 4663 | `0xd4052415613B34Af236024B895574c467f65b6dD` | 18 |
|
|
579
|
-
| MARIAN | Lady Marian | `0x01637b14B7378B99dE75A64d50656d98488D9a4d` | 18 |
|
|
636
|
+
| MARIAN | Lady Marian | `0x01637b14B7378B99dE75A64d50656d98488D9a4d` | 18 |
|
|
637
|
+
| Index | The Index | `0x56910D4409F3a0C78C64DD8D0545FF0705389870` | 18 |
|
|
638
|
+
| VEX | ProjectVex | `0x8Ff92566f2e81BDd68EDfAa8cde73942A723796b` | 18 |
|
|
639
|
+
| HOODIE | HOODIE | `0xC72c01AAB5f5678dc1d6f5C6d2B417d91D402Ba3` | 18 |
|
|
640
|
+
| WISHBONE | WISHBONE | `0x77581054581B9c525E7dd7a0155DE43867532d03` | 18 |
|
|
641
|
+
| VLAD | The Green Bull | `0x31BE8f7485e36928C9De86566c62da82d4B6BF81` | 18 |
|
|
642
|
+
| AEON | Aeon | `0xd4c93eD1843606f92CccA078941f3d52A585982f` | 18 |
|
|
580
643
|
|
|
581
644
|
The ordered list is exported as `ROBINHOOD_FRONTEND_TOKEN_LIST`.
|
|
582
645
|
|
|
@@ -586,22 +649,45 @@ Always identify tokens by address and obtain a fresh quote and tax check.
|
|
|
586
649
|
|
|
587
650
|
### Routing configuration
|
|
588
651
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
652
|
+
The production router currently exposes nineteen ordered adapters:
|
|
653
|
+
|
|
654
|
+
| Index | Venue | Routing family |
|
|
655
|
+
|---:|---|---|
|
|
656
|
+
| `0` | Uniswap V2 | Direct-pair V2 |
|
|
657
|
+
| `1` | Uniswap V3 | V3 tiers `100`, `500`, `3000`, `10000` |
|
|
658
|
+
| `2` | Uniswap V4 | Complete hookless static-fee `PoolKey` |
|
|
659
|
+
| `3` | Switch limit orders | Signed/on-chain order liquidity |
|
|
660
|
+
| `4` | SwapHood V2 | Pair-owned variable-fee V2 |
|
|
661
|
+
| `5` | SwapHood V3 | Pancake V3 tiers `100`, `500`, `2500`, `10000` |
|
|
662
|
+
| `6` | Up33 | Slipstream CL tick spacings `1`, `10`, `50`, `60`, `100`, `200`, `2000` |
|
|
663
|
+
| `7` | Sheriff V2 | Pair-owned variable-fee V2 |
|
|
664
|
+
| `8` | Sheriff | Algebra Integral |
|
|
665
|
+
| `9` | Aeon | Algebra Integral with plugin-aware fees |
|
|
666
|
+
| `10` | Catnip | Direct-pair V2, fixed 30 bps |
|
|
667
|
+
| `11` | PancakeSwap | Direct-pair V2, fixed 25 bps |
|
|
668
|
+
| `12` | RobinSwap | V3 tiers `100`, `500`, `2500`, `3000`, `10000` |
|
|
669
|
+
| `13` | SushiSwap | V3 tiers `500`, `3000`, `10000` |
|
|
670
|
+
| `14` | GIGA V2 | Direct-pair V2 using the pair's live quote and pair-owned fee |
|
|
671
|
+
| `15` | GIGA V3 | V3 tiers `100`, `500`, `1000`, `2000`, `3000`, `10000` |
|
|
672
|
+
| `16` | Flap | Portal-executed bonding curve; Portal quote includes token tax |
|
|
673
|
+
| `17` | Ramses V3 | Tick spacings `1`, `5`, `10`, `50`, `100`, `200`, stored in the route `fee` field |
|
|
674
|
+
| `18` | Ramses V2 | Direct-pair, pair-owned variable-fee V2 |
|
|
675
|
+
|
|
676
|
+
V4 pools are discovered by complete `PoolKey`, not by applying a V3 fee-tier
|
|
677
|
+
list. Native-ETH V4 currencies are normalized through the WETH/native alias
|
|
678
|
+
described above. V3-style and Up33 route legs preserve the exact fee tier or
|
|
679
|
+
tick spacing that won the quote for every direct and multi-hop allocation.
|
|
680
|
+
|
|
681
|
+
Trusted routing hubs are WETH, USDG, VIRTUAL, CASHCAT, HOODRAT, TENDIES,
|
|
682
|
+
JUGGERNAUT, MARIAN, and WALLET. The expanded set was selected from the
|
|
683
|
+
2026-07-16 pair-connectivity audit and zero-tax checks. VEX is excluded because
|
|
684
|
+
it is taxed; INDEX remains an endpoint token but is excluded because its
|
|
685
|
+
dominant liquidity depends on V4 hooks that are not yet supported. If either side is
|
|
686
|
+
detected as a transfer-tax token, the backend restricts the entire route to
|
|
687
|
+
tax-safe adapters `0`, `4`, `7`, `10`, `11`, `14`, `16`, and `18`;
|
|
688
|
+
concentrated-liquidity and limit-order adapters are excluded. Flap is the one
|
|
689
|
+
non-direct-pair member: only its Portal can execute the curve swap, and the
|
|
690
|
+
Portal quote already includes the Flap token tax.
|
|
605
691
|
|
|
606
692
|
The API may split a quote across routes and adapters. Integrators should render
|
|
607
693
|
the returned `paths` or `routeAllocation` instead of assuming a single path.
|
|
@@ -616,17 +702,16 @@ For server integrations, contact Switch to coordinate the expected request
|
|
|
616
702
|
rate and IP allowlisting. Do not distribute one production key across
|
|
617
703
|
untrusted clients.
|
|
618
704
|
|
|
619
|
-
## Current limitations
|
|
620
|
-
|
|
621
|
-
-
|
|
622
|
-
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
- Contract and token addresses must be treated as chain-specific.
|
|
705
|
+
## Current limitations
|
|
706
|
+
|
|
707
|
+
- Rialto liquidity is not integrated.
|
|
708
|
+
- Robinhood market routing is limited to the nineteen production adapters
|
|
709
|
+
listed above. Always use `/swap/adapters` as the runtime source of truth.
|
|
710
|
+
- The first V4 phase intentionally excludes hooked and dynamic-fee pools.
|
|
711
|
+
- A V4 allocation currently selects its best single PoolKey; intra-V4
|
|
712
|
+
multi-pool splitting is not yet enabled. V4 can still split against other
|
|
713
|
+
eligible adapters.
|
|
714
|
+
- Contract and token addresses must be treated as chain-specific.
|
|
630
715
|
|
|
631
716
|
See the main [SDK reference](README.md) for authentication, partner fees,
|
|
632
717
|
response types, error handling, and the complete swap API schema.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"type":"constructor","inputs":[{"name":"_switchRouter","type":"address","internalType":"address"},{"name":"_wnative","type":"address","internalType":"address"},{"name":"_fee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_ORDER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAINTAINER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PARTNER_FEE_SHARE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SWITCH_ROUTER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WNATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addMaintainer","inputs":[{"name":"addedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminInvalidateNonce","inputs":[{"name":"_maker","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminInvalidateNonces","inputs":[{"name":"_maker","type":"address","internalType":"address"},{"name":"_nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canFillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"directFillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"directToMaker","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"fillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"}]}]}]},{"name":"excessOnInput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"invalidateNonce","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"invalidateNonces","inputs":[{"name":"_nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isNonceUsed","inputs":[{"name":"maker","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"noncesUsed","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"operatorGateEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"plsFlowContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverNative","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverTokens","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMaintainer","inputs":[{"name":"removedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorGate","inputs":[{"name":"_enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPLSFlowContract","inputs":[{"name":"_plsFlow","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"FeeUpdated","inputs":[{"name":"newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NonceCancelled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorGateToggled","inputs":[{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OrderFilled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"filler","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"makerAmountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fillerProfit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"excessOnInput","type":"bool","indexed":false,"internalType":"bool"},{"name":"partnerAddress","type":"address","indexed":false,"internalType":"address"},{"name":"directFill","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OrderPlaced","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minAmountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deadline","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeOnOutput","type":"bool","indexed":false,"internalType":"bool"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"unwrapOutput","type":"bool","indexed":false,"internalType":"bool"},{"name":"partnerAddress","type":"address","indexed":false,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"PLSFlowContractUpdated","inputs":[{"name":"newPLSFlowContract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ExcessiveFee","inputs":[]},{"type":"error","name":"InsufficientOutput","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidTokens","inputs":[]},{"type":"error","name":"NonceAlreadyUsed","inputs":[]},{"type":"error","name":"OperatorOnly","inputs":[]},{"type":"error","name":"OrderExpired","inputs":[]},{"type":"error","name":"RouteInputExceedsMax","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"TransferFailed","inputs":[]}]
|
|
1
|
+
[{"type":"constructor","inputs":[{"name":"_switchRouter","type":"address","internalType":"address"},{"name":"_wnative","type":"address","internalType":"address"},{"name":"_fee","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_ORDER_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAINTAINER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OPERATOR_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PARTNER_FEE_SHARE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"SWITCH_ROUTER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WNATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addMaintainer","inputs":[{"name":"addedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminInvalidateNonce","inputs":[{"name":"_maker","type":"address","internalType":"address"},{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminInvalidateNonces","inputs":[{"name":"_maker","type":"address","internalType":"address"},{"name":"_nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"canFillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"directFillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"directToMaker","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"domainSeparator","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"fillOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"data","type":"bytes","internalType":"bytes"}]}]}]},{"name":"excessOnInput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"invalidateNonce","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"invalidateNonces","inputs":[{"name":"_nonces","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isNonceUsed","inputs":[{"name":"maker","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"noncesUsed","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"operatorGateEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeOrder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwitchLimitOrder.LimitOrder","components":[{"name":"maker","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"feeOnOutput","type":"bool","internalType":"bool"},{"name":"recipient","type":"address","internalType":"address"},{"name":"unwrapOutput","type":"bool","internalType":"bool"},{"name":"partnerAddress","type":"address","internalType":"address"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"plsFlowContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverNative","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverTokens","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMaintainer","inputs":[{"name":"removedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperatorGate","inputs":[{"name":"_enabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPLSFlowContract","inputs":[{"name":"_plsFlow","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"FeeUpdated","inputs":[{"name":"newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NonceCancelled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OperatorGateToggled","inputs":[{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OrderFilled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"filler","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"makerAmountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fillerProfit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"excessOnInput","type":"bool","indexed":false,"internalType":"bool"},{"name":"partnerAddress","type":"address","indexed":false,"internalType":"address"},{"name":"directFill","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OrderPlaced","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minAmountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deadline","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeOnOutput","type":"bool","indexed":false,"internalType":"bool"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"unwrapOutput","type":"bool","indexed":false,"internalType":"bool"},{"name":"partnerAddress","type":"address","indexed":false,"internalType":"address"},{"name":"signature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"PLSFlowContractUpdated","inputs":[{"name":"newPLSFlowContract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ExcessiveFee","inputs":[]},{"type":"error","name":"InsufficientOutput","inputs":[]},{"type":"error","name":"InvalidAmount","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidTokens","inputs":[]},{"type":"error","name":"NonceAlreadyUsed","inputs":[]},{"type":"error","name":"OperatorOnly","inputs":[]},{"type":"error","name":"OrderExpired","inputs":[]},{"type":"error","name":"RouteInputExceedsMax","inputs":[]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"TransferFailed","inputs":[]}]
|
package/abi/SwitchRouterABI.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"type":"constructor","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"},{"name":"_feeClaimer","type":"address","internalType":"address"},{"name":"_wrapped_native","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADAPTERS","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"APPROVED_ADAPTERS","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_CLAIMER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FEE_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_ORDER_CONTRACT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MAINTAINER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PARTNER_FEE_SHARE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WNATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"adaptersCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addMaintainer","inputs":[{"name":"addedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"goSwitch","inputs":[{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_fee","type":"uint256","internalType":"uint256"},{"name":"_feeOnOutput","type":"bool","internalType":"bool"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"},{"name":"_partnerAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"goSwitchFrom","inputs":[{"name":"_payer","type":"address","internalType":"address"},{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pullTokens","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverERC20","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"},{"name":"_tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverNative","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMaintainer","inputs":[{"name":"removedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAdapters","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeClaimer","inputs":[{"name":"_claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderContract","inputs":[{"name":"_limitOrder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Switched","inputs":[{"name":"_tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"_amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_partnerAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AdapterNotApproved","inputs":[{"name":"adapter","type":"address","internalType":"address"}]},{"type":"error","name":"EmptyHop","inputs":[]},{"type":"error","name":"EmptySplit","inputs":[]},{"type":"error","name":"ExcessiveFee","inputs":[]},{"type":"error","name":"FeeNotSupported","inputs":[]},{"type":"error","name":"FinalAmountOutTooLow","inputs":[]},{"type":"error","name":"InsufficientFee","inputs":[]},{"type":"error","name":"MsgValueMismatch","inputs":[]},{"type":"error","name":"PathNeedsBeginWithWPLS","inputs":[]},{"type":"error","name":"PathNeedsEndWithWPLS","inputs":[]},{"type":"error","name":"SplitMixedTokenIn","inputs":[]},{"type":"error","name":"SplitMixedTokenOut","inputs":[]},{"type":"error","name":"ZeroInput","inputs":[]}]
|
|
1
|
+
[{"type":"constructor","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"},{"name":"_feeClaimer","type":"address","internalType":"address"},{"name":"_wrapped_native","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADAPTERS","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"APPROVED_ADAPTERS","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_CLAIMER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FEE_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_ORDER_CONTRACT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MAINTAINER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PARTNER_FEE_SHARE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WNATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"adaptersCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addMaintainer","inputs":[{"name":"addedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"goSwitch","inputs":[{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"data","type":"bytes","internalType":"bytes"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_fee","type":"uint256","internalType":"uint256"},{"name":"_feeOnOutput","type":"bool","internalType":"bool"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"},{"name":"_partnerAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"goSwitchFrom","inputs":[{"name":"_payer","type":"address","internalType":"address"},{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pullTokens","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverERC20","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"},{"name":"_tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverNative","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMaintainer","inputs":[{"name":"removedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAdapters","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeClaimer","inputs":[{"name":"_claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderContract","inputs":[{"name":"_limitOrder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Switched","inputs":[{"name":"_tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"_amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_partnerAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AdapterNotApproved","inputs":[{"name":"adapter","type":"address","internalType":"address"}]},{"type":"error","name":"EmptyHop","inputs":[]},{"type":"error","name":"EmptySplit","inputs":[]},{"type":"error","name":"ExcessiveFee","inputs":[]},{"type":"error","name":"FeeNotSupported","inputs":[]},{"type":"error","name":"FinalAmountOutTooLow","inputs":[]},{"type":"error","name":"InsufficientFee","inputs":[]},{"type":"error","name":"MsgValueMismatch","inputs":[]},{"type":"error","name":"PathNeedsBeginWithWPLS","inputs":[]},{"type":"error","name":"PathNeedsEndWithWPLS","inputs":[]},{"type":"error","name":"SplitMixedTokenIn","inputs":[]},{"type":"error","name":"SplitMixedTokenOut","inputs":[]},{"type":"error","name":"ZeroInput","inputs":[]}]
|