aegis-swap-widget 0.3.5 → 0.4.0
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/CHANGELOG.md +11 -0
- package/README.md +62 -7
- package/dist/address.d.ts +7 -0
- package/dist/aegis-swap-widget.js +3349 -2788
- package/dist/components/icons.d.ts +12 -12
- package/dist/config/chains.d.ts +1 -11
- package/dist/config/contracts.d.ts +1 -6
- package/dist/config/createMarket.d.ts +1 -3
- package/dist/config/index.d.ts +7 -7
- package/dist/config/markets.d.ts +1 -1
- package/dist/config/tokens.d.ts +1 -11
- package/dist/config/types.d.ts +2 -81
- package/dist/core.d.ts +4 -4
- package/dist/core.js +8 -7
- package/dist/encoding.d.ts +2 -28
- package/dist/hooks/useBackendSwapData.d.ts +27 -0
- package/dist/hooks/useLifecycleToast.d.ts +1 -1
- package/dist/hooks/useStatusChangeEmitter.d.ts +1 -1
- package/dist/hooks/useSubmitSwap.d.ts +4 -4
- package/dist/hooks/useSwapQuote.d.ts +2 -2
- package/dist/hooks/useTokenAllowance.d.ts +1 -1
- package/dist/hooks/useTokenBalances.d.ts +5 -2
- package/dist/hooks/useTokenIconMetadata.d.ts +1 -1
- package/dist/hooks/useWalletConnection.d.ts +3 -2
- package/dist/index.d.ts +15 -15
- package/dist/logger.d.ts +4 -0
- package/dist/markets-D31LUAsv.js +71 -0
- package/dist/metadata.d.ts +2 -25
- package/dist/permit.d.ts +1 -9
- package/dist/polling.d.ts +1 -3
- package/dist/quote/aggregatedSwapQuote.d.ts +1 -5
- package/dist/quote.d.ts +2 -59
- package/dist/services/kyberSwap.d.ts +2 -84
- package/dist/styles.css +1 -1
- package/dist/styles.css.d.ts +2 -0
- package/dist/toast/ToastItem.d.ts +1 -1
- package/dist/toast/Toaster.d.ts +3 -3
- package/dist/toast/toast.d.ts +1 -1
- package/dist/transactionProgress.d.ts +2 -55
- package/dist/types/aggregatedSwap.d.ts +1 -29
- package/dist/wallet.d.ts +2 -34
- package/dist/widget/AegisAggregatedSwapWidget.d.ts +1 -1
- package/dist/widget/AegisDirectSwapWidget.d.ts +1 -1
- package/dist/widget/AmountField.d.ts +2 -2
- package/dist/widget/ExecutionDetails.d.ts +4 -4
- package/dist/widget/NetworkSelector.d.ts +7 -1
- package/dist/widget/ProgressRail.d.ts +1 -1
- package/dist/widget/SwapWidgetShell.d.ts +10 -10
- package/dist/widget/TokenSelector.d.ts +9 -6
- package/dist/widget/TransactionReceipt.d.ts +20 -0
- package/dist/widget/chainDisplay.d.ts +5 -0
- package/dist/widget/types.d.ts +75 -16
- package/dist/widget/useAggregatedSwapController.d.ts +16 -12
- package/dist/widget/useExecutionDetailsState.d.ts +23 -0
- package/dist/widget/useNetworkLens.d.ts +41 -0
- package/dist/widget/useRailAutoReset.d.ts +1 -1
- package/dist/widget/useStatusSurface.d.ts +5 -5
- package/dist/widget/useSwapConfig.d.ts +3192 -0
- package/dist/widget/useSwapController.d.ts +29 -20
- package/dist/widget/useWidgetStyle.d.ts +1 -1
- package/dist/widget/viewState.d.ts +4 -4
- package/package.json +9 -6
- package/dist/abis.d.ts +0 -132
- package/dist/metadata-D56OpXF2.js +0 -379
- package/dist/widget/PoolSelector.d.ts +0 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 51a71c0: Update the React widget to consume the backend-aligned Core contract, refresh network and token controls, improve accessibility and receipt/status presentation, and harden package exports/declaration health.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [28c52c3]
|
|
12
|
+
- @aegis-engine/core@0.2.0
|
|
13
|
+
|
|
3
14
|
## 0.3.5
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Aegis Swap Widget
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Seamlessly embed Aegis Swap directly in your React application. Import the component, import the CSS, and configure networks, wallet handoff, and host styling through props.
|
|
4
4
|
|
|
5
5
|
The host app normally only renders `<AegisSwapWidget />`. Quoting, token approval, Permit2 signing, and swap submission are handled inside the widget.
|
|
6
6
|
|
|
@@ -34,7 +34,53 @@ export function Swap() {
|
|
|
34
34
|
}
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Without a `pools` prop, the widget
|
|
37
|
+
Without a `pools` prop, the widget loads Aegis config, token metadata, and market
|
|
38
|
+
discovery from the production backend REST API. Pass `backendBaseUrl={null}` to
|
|
39
|
+
use the bundled static WATER, WOOD, GRASS, and STONE mainnet pool configs, or
|
|
40
|
+
pass `pools` when a host wants to pin its own audited pool set.
|
|
41
|
+
|
|
42
|
+
The backend-enabled network list comes from `GET /v1/config` (`chains[]`). By
|
|
43
|
+
default the widget exposes every backend chain it can configure. Projects that
|
|
44
|
+
only support a subset should pass `enabledChainIds`; the first entry becomes
|
|
45
|
+
the uncontrolled initial network and the widget only fetches markets for
|
|
46
|
+
enabled chains:
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<AegisSwapWidget enabledChainIds={[130]} />
|
|
50
|
+
<AegisSwapWidget enabledChainIds={[1, 8453]} />
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Use `pinnedChainIds` when the project supports several chains but wants common
|
|
54
|
+
choices surfaced first in the network selector and token selector. This only changes
|
|
55
|
+
display order; it never enables chains outside `enabledChainIds` or backend
|
|
56
|
+
config:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<AegisSwapWidget enabledChainIds={[1, 130, 8453]} pinnedChainIds={[8453, 1]} />
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
By default the compact network selector uses the host accent color. Set
|
|
63
|
+
`networkSelectorColorMode="chain"` to use the built-in DFF chain palette
|
|
64
|
+
(Ethereum grey, Unichain pink, Base blue) for selector chrome:
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
<AegisSwapWidget networkSelectorColorMode="chain" />
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The selector renders as a compact chain-icon strip by default. Hosts that prefer
|
|
71
|
+
a single menu trigger can opt into the dropdown presentation without changing
|
|
72
|
+
the enabled network catalog:
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
<AegisSwapWidget networkSelectorVariant="dropdown" />
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The selector sits on the left by default. Use `networkSelectorPosition="right"`
|
|
79
|
+
when the host chrome needs the selector on the trailing edge:
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<AegisSwapWidget networkSelectorPosition="right" />
|
|
83
|
+
```
|
|
38
84
|
|
|
39
85
|
By default the component uses `window.ethereum` when available, so injected wallets
|
|
40
86
|
like MetaMask and Rabby work without any wallet props.
|
|
@@ -56,7 +102,7 @@ belong in the playground app (`apps/playground` in this monorepo). They are not
|
|
|
56
102
|
exposed as production widget props, so an embedded widget cannot accidentally
|
|
57
103
|
run in a fake mode.
|
|
58
104
|
|
|
59
|
-
Hosts should customize through `pools`, `chains`, `rpcUrls`,
|
|
105
|
+
Hosts should customize through `backendBaseUrl`, `pools`, `chains`, `rpcUrls`,
|
|
60
106
|
`metadataEndpoint`, wallet/provider callbacks, status surfaces, `accentColor`,
|
|
61
107
|
`accentTextColor`, `className`, `style`, `title`, and `subtitle`. The widget is
|
|
62
108
|
meant to blend into a host app without forking its internals.
|
|
@@ -95,9 +141,12 @@ tokens — is documented in [DESIGN.md](./DESIGN.md).
|
|
|
95
141
|
|
|
96
142
|
## Configure Pools
|
|
97
143
|
|
|
98
|
-
Out of the box, `<AegisSwapWidget />` exposes the
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
Out of the box, `<AegisSwapWidget />` exposes the enabled markets returned by
|
|
145
|
+
the Aegis backend for the active chain. Use `enabledChainIds` when a project
|
|
146
|
+
should expose only some backend-enabled networks, and use `poolIds` when a host
|
|
147
|
+
wants a different backend-market order or subset. Pass `backendBaseUrl={null}`
|
|
148
|
+
when those ids should resolve against the bundled static WATER, WOOD, GRASS,
|
|
149
|
+
and STONE mainnet pools:
|
|
101
150
|
|
|
102
151
|
```tsx
|
|
103
152
|
import { AegisSwapWidget } from 'aegis-swap-widget'
|
|
@@ -106,6 +155,7 @@ import 'aegis-swap-widget/styles.css'
|
|
|
106
155
|
export function Swap() {
|
|
107
156
|
return (
|
|
108
157
|
<AegisSwapWidget
|
|
158
|
+
backendBaseUrl={null}
|
|
109
159
|
defaultPoolId="WATER_USDC"
|
|
110
160
|
poolIds={['WATER_USDC', 'WOOD_USDC', 'GRASS_USDC', 'STONE_USDC']}
|
|
111
161
|
theme="dark"
|
|
@@ -605,7 +655,12 @@ No other props changed. See the [CHANGELOG](./CHANGELOG.md) for the full entry.
|
|
|
605
655
|
- `onPoolChange`: `(poolId)` fired when the active pool changes — user selection or a `poolIds` update that forces a fallback. Silent on mount.
|
|
606
656
|
- `chainId`: active chain id. Defaults to Ethereum mainnet.
|
|
607
657
|
- `chains`: optional chain config overrides or additional chain configs, including per-chain `v4Contracts`.
|
|
608
|
-
- `
|
|
658
|
+
- `enabledChainIds`: backend-discovered chain ids this host project exposes. Omit to use every backend chain the widget can configure.
|
|
659
|
+
- `pinnedChainIds`: preferred chain ids to surface first in backend-derived network selectors and token selector filters. This only changes display order.
|
|
660
|
+
- `networkOptions`: optional entries for the network selector (`{ id, name, icon?, selected?, disabled?, status? }`). The active entry is resolved by id/name, and a list without the active chain gets it prepended so the selector never misreports the chain in use. Non-selected options are enabled only when chain switching is wired through backend discovery or `onChainChange`; `icon` is `'ethereum' | 'base' | 'unichain'`.
|
|
661
|
+
- `networkSelectorVariant`: `'icons'` (default) renders the compact chain-icon strip; `'dropdown'` renders a menu button/listbox for hosts that prefer a single trigger.
|
|
662
|
+
- `networkSelectorPosition`: `'left'` (default) places the selector on the leading side of the widget chrome; `'right'` places it on the trailing side.
|
|
663
|
+
- `networkSelectorColorMode`: `'accent'` (default) keeps host-brand selector chrome; `'chain'` uses the built-in DFF chain palette for supported chains.
|
|
609
664
|
- `pools`: direct pool configs to render and swap against. This is the canonical config path.
|
|
610
665
|
- `defaultPoolId`: initial pool id when `pools` is provided.
|
|
611
666
|
- `poolIds`: optional pool id order/subset. Use this when the host wants to hide pools or control ordering.
|
package/dist/address.d.ts
CHANGED
|
@@ -2,4 +2,11 @@ import type { Address, Hex } from 'viem';
|
|
|
2
2
|
export declare function addressKey(address: Address | null | undefined): string;
|
|
3
3
|
export declare function sameAddress(a: Address, b: Address): boolean;
|
|
4
4
|
export declare function sameOptionalAddress(a: Address | null, b: Address | null): boolean;
|
|
5
|
+
export type TokenIdentity = {
|
|
6
|
+
chainId: number;
|
|
7
|
+
address: Address;
|
|
8
|
+
};
|
|
9
|
+
export declare function tokenIdentityKey(token: TokenIdentity): string;
|
|
10
|
+
export declare function sameTokenIdentity(a: TokenIdentity | null, b: TokenIdentity | null): boolean;
|
|
5
11
|
export declare function samePoolId(a: Hex, b: Hex): boolean;
|
|
12
|
+
export declare function truncateHex(value: string): string;
|