aegis-swap-widget 0.1.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.
@@ -0,0 +1,78 @@
1
+ import { type Address, type Chain, type Hex } from 'viem';
2
+ export type AegisSwapTokenSymbol = 'USDC' | 'WATER' | 'WOOD' | 'GRASS' | 'STONE';
3
+ export type AegisSwapTargetSymbol = Exclude<AegisSwapTokenSymbol, 'USDC'>;
4
+ export type AegisSwapToken = {
5
+ chainId: number;
6
+ address: Address;
7
+ name: string;
8
+ symbol: AegisSwapTokenSymbol;
9
+ decimals: number;
10
+ iconUrl?: string | null;
11
+ };
12
+ export type AegisPoolKey = {
13
+ currency0: Address;
14
+ currency1: Address;
15
+ fee: number;
16
+ tickSpacing: number;
17
+ hooks: Address;
18
+ };
19
+ export type AegisSwapMarket = {
20
+ chainId: number;
21
+ symbol: AegisSwapTargetSymbol;
22
+ poolId: Hex;
23
+ poolKey: AegisPoolKey;
24
+ token: AegisSwapToken;
25
+ counterToken: AegisSwapToken;
26
+ router: Address;
27
+ permit2: Address;
28
+ quoter: Address;
29
+ label?: string;
30
+ };
31
+ export type AegisSwapChainConfig = {
32
+ chainId: number;
33
+ chain: Chain;
34
+ name: string;
35
+ router: Address;
36
+ permit2: Address;
37
+ quoter: Address;
38
+ rpcUrls: string[];
39
+ explorerTxUrl?: (hash: Hex) => string;
40
+ poolExplorerUrl?: (poolId: Hex, market: AegisSwapMarket) => string;
41
+ metadataEndpoint?: string | null;
42
+ };
43
+ export type AegisSwapChainConfigInput = Partial<Omit<AegisSwapChainConfig, 'chainId'>> & {
44
+ chainId?: number;
45
+ };
46
+ export type AegisSwapPoolKeyConfig = {
47
+ chainId?: number;
48
+ poolKey: AegisPoolKey;
49
+ poolId?: Hex;
50
+ token?: AegisSwapToken;
51
+ counterToken?: AegisSwapToken;
52
+ router?: Address;
53
+ permit2?: Address;
54
+ quoter?: Address;
55
+ label?: string;
56
+ };
57
+ export type AegisSwapPoolKeyInput = AegisPoolKey | AegisSwapPoolKeyConfig;
58
+ export type AegisSwapPoolKeys = Partial<Record<AegisSwapTargetSymbol, AegisSwapPoolKeyInput>>;
59
+ export declare const AEGIS_SWAP_CHAIN_ID = 1;
60
+ export declare const AEGIS_SWAP_ROUTER: `0x${string}`;
61
+ export declare const AEGIS_SWAP_PERMIT2: `0x${string}`;
62
+ export declare const AEGIS_SWAP_V4_QUOTER: `0x${string}`;
63
+ export declare const AEGIS_SWAP_HOOK: `0x${string}`;
64
+ export declare const AEGIS_DYNAMIC_FEE_FLAG = 8388608;
65
+ export declare const AEGIS_SWAP_DEFAULT_RPC_URLS: string[];
66
+ export declare const AEGIS_SWAP_DEFAULT_METADATA_ENDPOINT = "https://aegis.markets/graphql/meta";
67
+ export declare const AEGIS_SWAP_MAINNET_CHAIN: AegisSwapChainConfig;
68
+ export declare const AEGIS_SWAP_CHAINS: Record<number, AegisSwapChainConfig>;
69
+ export declare const AEGIS_SWAP_TOKENS: Record<AegisSwapTokenSymbol, AegisSwapToken>;
70
+ export declare const AEGIS_SWAP_MARKETS: Record<AegisSwapTargetSymbol, AegisSwapMarket>;
71
+ export declare const AEGIS_SWAP_TARGET_SYMBOLS: AegisSwapTargetSymbol[];
72
+ export declare function createAegisSwapChainConfig(input: AegisSwapChainConfigInput & {
73
+ chainId: number;
74
+ }, base?: AegisSwapChainConfig): AegisSwapChainConfig;
75
+ export declare function createAegisSwapChains(chains?: Partial<Record<number, AegisSwapChainConfigInput>>): Record<number, AegisSwapChainConfig>;
76
+ export declare function createAegisSwapMarket(symbol: AegisSwapTargetSymbol, input: AegisSwapPoolKeyInput, chains?: Record<number, AegisSwapChainConfig>): AegisSwapMarket;
77
+ export declare function createAegisSwapMarketsFromPoolKeys(poolKeys: AegisSwapPoolKeys | undefined, chains?: Record<number, AegisSwapChainConfig>): Partial<Record<AegisSwapTargetSymbol, AegisSwapMarket>>;
78
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import type { AegisPoolKey } from './config';
3
+ export type ExecutionBatch = {
4
+ requiresV4Unlock: boolean;
5
+ actions: Hex;
6
+ params: Hex[];
7
+ };
8
+ export type PermitDetails = {
9
+ token: Address;
10
+ amount: bigint;
11
+ expiration: number;
12
+ nonce: number;
13
+ };
14
+ export type PermitBatch = {
15
+ details: PermitDetails[];
16
+ spender: Address;
17
+ sigDeadline: bigint;
18
+ };
19
+ export type SignedPermitBatch = {
20
+ owner: Address;
21
+ permitBatch: PermitBatch;
22
+ signature: Hex;
23
+ };
24
+ export type BuiltSwapTransaction = {
25
+ calldata: Hex;
26
+ value: bigint;
27
+ };
28
+ export declare function computePoolId(poolKey: AegisPoolKey): Hex;
29
+ export declare function buildExactInSwapTransaction(args: {
30
+ poolKey: AegisPoolKey;
31
+ zeroForOne: boolean;
32
+ amountIn: bigint;
33
+ amountOutMinimum: bigint;
34
+ recipient: Address;
35
+ deadline: bigint;
36
+ permit?: SignedPermitBatch | null;
37
+ }): BuiltSwapTransaction;
38
+ export declare function buildExactOutSwapTransaction(args: {
39
+ poolKey: AegisPoolKey;
40
+ zeroForOne: boolean;
41
+ amountOut: bigint;
42
+ amountInMaximum: bigint;
43
+ recipient: Address;
44
+ deadline: bigint;
45
+ permit?: SignedPermitBatch | null;
46
+ }): BuiltSwapTransaction;
47
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,OAAO,CAAA;IACzB,OAAO,EAAE,GAAG,CAAA;IACZ,MAAM,EAAE,GAAG,EAAE,CAAA;CACd,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,GAAG,CAAA;CACf,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,GAAG,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAwGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAmBxD;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClC,GAAG,oBAAoB,CAwBvB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAClC,GAAG,oBAAoB,CAwBvB"}
@@ -0,0 +1,8 @@
1
+ export declare function sanitizeDecimalInput(value: string): string;
2
+ export declare function sanitizeSlippagePercent(value: string): string;
3
+ export declare function parseTokenAmount(value: string, decimals: number): bigint | null;
4
+ export declare function parseSlippageBps(value: string): number | null;
5
+ export declare function formatTokenAmount(raw: bigint | null | undefined, decimals: number, maxDecimals?: number): string;
6
+ export declare function formatTokenInput(raw: bigint | null | undefined, decimals: number): string;
7
+ export declare function truncateAddress(value: string, head?: number, tail?: number): string;
8
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ/E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM,CAO3G;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,IAAI,SAAI,GAAG,MAAM,CAGzE"}
@@ -0,0 +1,48 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import { type AegisSwapChainConfigInput, type AegisSwapMarket, type AegisSwapPoolKeys, type AegisSwapTargetSymbol } from './config';
3
+ import { type Eip1193Provider } from './wallet';
4
+ import './styles.css';
5
+ type SwapDirection = 'intoTarget' | 'outOfTarget';
6
+ export type AegisSwapWidgetTheme = 'dark' | 'light';
7
+ export type AegisSwapProviderResolver = () => Eip1193Provider | null | Promise<Eip1193Provider | null>;
8
+ export type AegisSwapWalletConnection = Eip1193Provider | {
9
+ provider?: Eip1193Provider | null;
10
+ account?: Address | string | null;
11
+ } | null;
12
+ export type AegisDirectSwapWidgetProps = {
13
+ provider?: Eip1193Provider | null;
14
+ account?: Address | string | null;
15
+ getProvider?: AegisSwapProviderResolver;
16
+ onConnectWallet?: () => AegisSwapWalletConnection | void | Promise<AegisSwapWalletConnection | void>;
17
+ onSubmitted?: (hash: Hex) => void;
18
+ onSuccess?: (result: {
19
+ hash: Hex;
20
+ explorerUrl: string;
21
+ }) => void;
22
+ onError?: (error: Error) => void;
23
+ chainId?: number;
24
+ chains?: Partial<Record<number, AegisSwapChainConfigInput>>;
25
+ poolKeys?: AegisSwapPoolKeys;
26
+ targets?: AegisSwapTargetSymbol[];
27
+ markets?: Partial<Record<AegisSwapTargetSymbol, AegisSwapMarket>>;
28
+ defaultTarget?: AegisSwapTargetSymbol;
29
+ defaultDirection?: SwapDirection;
30
+ defaultSlippagePercent?: string;
31
+ rpcUrls?: string[];
32
+ metadataEndpoint?: string | null;
33
+ className?: string;
34
+ theme?: AegisSwapWidgetTheme;
35
+ themeMode?: AegisSwapWidgetTheme;
36
+ accentColor?: string;
37
+ accentTextColor?: string;
38
+ showPoolLink?: boolean;
39
+ };
40
+ export declare function AegisDirectSwapWidget({ provider, account, getProvider, onConnectWallet, onSubmitted, onSuccess, onError, chainId, chains, poolKeys, targets, markets, defaultTarget, defaultDirection, defaultSlippagePercent, rpcUrls, metadataEndpoint, className, theme, themeMode, accentColor, accentTextColor, showPoolLink }: AegisDirectSwapWidgetProps): import("react").JSX.Element;
41
+ export declare const AegisSwapWidget: typeof AegisDirectSwapWidget;
42
+ export default AegisDirectSwapWidget;
43
+ export { AEGIS_SWAP_CHAINS, AEGIS_SWAP_CHAIN_ID, AEGIS_SWAP_DEFAULT_METADATA_ENDPOINT, AEGIS_SWAP_DEFAULT_RPC_URLS, AEGIS_DYNAMIC_FEE_FLAG, AEGIS_SWAP_HOOK, AEGIS_SWAP_MARKETS, AEGIS_SWAP_MAINNET_CHAIN, AEGIS_SWAP_PERMIT2, AEGIS_SWAP_ROUTER, AEGIS_SWAP_TARGET_SYMBOLS, AEGIS_SWAP_TOKENS, AEGIS_SWAP_V4_QUOTER, createAegisSwapChainConfig, createAegisSwapChains, createAegisSwapMarket, createAegisSwapMarketsFromPoolKeys } from './config';
44
+ export type { AegisPoolKey, AegisSwapChainConfig, AegisSwapChainConfigInput, AegisSwapMarket, AegisSwapPoolKeyConfig, AegisSwapPoolKeyInput, AegisSwapPoolKeys, AegisSwapTargetSymbol, AegisSwapToken, AegisSwapTokenSymbol } from './config';
45
+ export { fetchGlobalTokenMetadata, getIchiIconGuess } from './metadata';
46
+ export type { AegisSwapGlobalTokenMetadata } from './metadata';
47
+ export type { Eip1193Provider } from './wallet';
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type Address } from 'viem';
2
+ export type AegisSwapGlobalTokenMetadata = {
3
+ chainId: number | null;
4
+ address: string | null;
5
+ symbol: string | null;
6
+ displayName: string | null;
7
+ fullName: string | null;
8
+ decimals: number | null;
9
+ iconURL: string | null;
10
+ };
11
+ export declare function getIchiIconGuess(symbol: string | null | undefined): string | null;
12
+ export declare function fetchGlobalTokenMetadata(args: {
13
+ endpoint: string;
14
+ chainId: number;
15
+ addresses: Address[];
16
+ signal?: AbortSignal;
17
+ }): Promise<Map<string, AegisSwapGlobalTokenMetadata>>;
18
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAI/C,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AA6BD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIjF;AASD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,CA6CrD"}
@@ -0,0 +1,25 @@
1
+ import { type Address, type Chain, type Hex, type PublicClient } from 'viem';
2
+ import type { Eip1193Provider } from './wallet';
3
+ import type { SignedPermitBatch } from './encoding';
4
+ export declare const MAX_UINT160: bigint;
5
+ export declare const MAX_UINT256: bigint;
6
+ export declare function approveErc20ToPermit2(args: {
7
+ provider: Eip1193Provider;
8
+ publicClient: PublicClient;
9
+ account: Address;
10
+ chain: Chain;
11
+ token: Address;
12
+ permit2: Address;
13
+ }): Promise<Hex>;
14
+ export declare function buildSignedPermitBatch(args: {
15
+ provider: Eip1193Provider;
16
+ publicClient: PublicClient;
17
+ account: Address;
18
+ chainId: number;
19
+ chain: Chain;
20
+ permit2: Address;
21
+ router: Address;
22
+ token: Address;
23
+ amount: bigint;
24
+ }): Promise<SignedPermitBatch | null>;
25
+ //# sourceMappingURL=permit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permit.d.ts","sourceRoot":"","sources":["../src/permit.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,YAAY,EAClB,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEhE,eAAO,MAAM,WAAW,QAAkB,CAAA;AAC1C,eAAO,MAAM,WAAW,QAAkB,CAAA;AAoB1C,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,eAAe,CAAA;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,OAAO,CAAC,GAAG,CAAC,CAgBf;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,QAAQ,EAAE,eAAe,CAAA;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAkDpC"}
@@ -0,0 +1,26 @@
1
+ import { type Address, type PublicClient } from 'viem';
2
+ import type { AegisPoolKey, AegisSwapMarket, AegisSwapToken } from './config';
3
+ export type SwapQuoteMode = 'exactIn' | 'exactOut';
4
+ export type DirectSwapQuote = {
5
+ mode: SwapQuoteMode;
6
+ poolKey: AegisPoolKey;
7
+ zeroForOne: boolean;
8
+ amountIn: bigint;
9
+ amountOut: bigint;
10
+ amountOutMinimum: bigint;
11
+ amountInMaximum: bigint;
12
+ gasEstimate: bigint;
13
+ };
14
+ export declare function getZeroForOne(poolKey: AegisPoolKey, tokenIn: AegisSwapToken): boolean;
15
+ export declare function fetchDirectSwapQuote(args: {
16
+ publicClient: PublicClient;
17
+ account: Address;
18
+ market: AegisSwapMarket;
19
+ tokenIn: AegisSwapToken;
20
+ tokenOut: AegisSwapToken;
21
+ mode: SwapQuoteMode;
22
+ amount: bigint;
23
+ slippageBps: number;
24
+ signal?: AbortSignal;
25
+ }): Promise<DirectSwapQuote>;
26
+ //# sourceMappingURL=quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../src/quote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI7E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;AAElD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAsBD,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAIrF;AAiCD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+C3B"}
@@ -0,0 +1 @@
1
+ .aegis-swap-widget{--aegis-swap-bg: #0d1112;--aegis-swap-panel: #151a1c;--aegis-swap-panel-raised: #1a2022;--aegis-swap-panel-soft: #20282a;--aegis-swap-text: #f5f8f5;--aegis-swap-muted: #9aa9a3;--aegis-swap-subtle: #64716b;--aegis-swap-border: #2b3436;--aegis-swap-border-strong: #3b4749;--aegis-swap-danger: #ff9b85;--aegis-swap-accent: #2fbf7a;--aegis-swap-accent-text: #06120c;--aegis-swap-warm: #c7a96a;box-sizing:border-box;width:100%;max-width:468px;min-width:300px;border:1px solid var(--aegis-swap-border-strong);border-radius:8px;background:linear-gradient(180deg,#ffffff0e,#fff0 22%),linear-gradient(145deg,#15191c,#0d1112 62%,#11100c);box-shadow:0 24px 70px #0000006b,inset 0 1px #ffffff0f;color:var(--aegis-swap-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;padding:18px}.aegis-swap-widget--light{--aegis-swap-bg: #f5f7f4;--aegis-swap-panel: #ffffff;--aegis-swap-panel-raised: #ffffff;--aegis-swap-panel-soft: #eef2ee;--aegis-swap-text: #111815;--aegis-swap-muted: #617069;--aegis-swap-subtle: #7d8a84;--aegis-swap-border: #d8dfda;--aegis-swap-border-strong: #c7d2cb;--aegis-swap-danger: #b73f2c;background:linear-gradient(180deg,#fffc,#fff0 28%),linear-gradient(145deg,#fff,#f1f5f2 62%,#f6f1e8);box-shadow:0 22px 54px #19262024,inset 0 1px #ffffffbf}.aegis-swap-widget *,.aegis-swap-widget *:before,.aegis-swap-widget *:after{box-sizing:border-box}.aegis-swap-widget button,.aegis-swap-widget input{font:inherit}.aegis-swap-widget__header,.aegis-swap-widget__brand,.aegis-swap-widget__amount-row,.aegis-swap-widget__field-label,.aegis-swap-widget__settings label,.aegis-swap-widget__pool{display:flex;align-items:center}.aegis-swap-widget__header{justify-content:space-between;gap:14px;margin-bottom:16px}.aegis-swap-widget__brand{min-width:0;gap:11px}.aegis-swap-widget__logo{display:grid;flex:0 0 auto;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:linear-gradient(180deg,#ffffff2e,#ffffff05),#151a1c;color:#f3f7f4;box-shadow:inset 0 1px #ffffff1f}.aegis-swap-widget--light .aegis-swap-widget__logo{border-color:#1118151a;background:linear-gradient(180deg,#fff,#e5ebe7);color:#171c1f}.aegis-swap-widget__logo svg{width:24px;height:24px}.aegis-swap-widget__eyebrow,.aegis-swap-widget__chain,.aegis-swap-widget__meta,.aegis-swap-widget__settings,.aegis-swap-widget__pool{color:var(--aegis-swap-muted);font-size:12px}.aegis-swap-widget__eyebrow{display:block;margin-bottom:2px;overflow:hidden;color:var(--aegis-swap-accent);font-weight:800;line-height:1.1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.aegis-swap-widget h2{margin:0;overflow:hidden;color:var(--aegis-swap-text);font-size:24px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.aegis-swap-widget__chain{flex:0 0 auto;border:1px solid var(--aegis-swap-border);border-radius:999px;background:#ffffff09;padding:7px 10px;color:var(--aegis-swap-text);font-weight:700}.aegis-swap-widget__targets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px}.aegis-swap-widget__target,.aegis-swap-widget__submit,.aegis-swap-widget__max,.aegis-swap-widget__flip{border:0;cursor:pointer}.aegis-swap-widget__target{display:flex;min-width:0;min-height:42px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--aegis-swap-border);border-radius:8px;background:var(--aegis-swap-panel);color:var(--aegis-swap-muted);padding:7px 6px;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.aegis-swap-widget__target-symbol{min-width:0;overflow:hidden;font-size:12.5px;font-weight:760;letter-spacing:0;line-height:1;text-overflow:ellipsis;white-space:nowrap}.aegis-swap-widget__target-mark,.aegis-swap-widget__token-mark,.aegis-swap-widget__pair-icon{display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:linear-gradient(145deg,var(--aegis-token-primary),var(--aegis-token-secondary));color:var(--aegis-token-text);font-weight:900}.aegis-swap-widget__target-mark{width:20px;height:20px;font-size:11px}.aegis-swap-widget__target-mark img,.aegis-swap-widget__token-mark img,.aegis-swap-widget__pair-icon img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}.aegis-swap-widget__target-pair,.aegis-swap-widget__pool-pair{display:inline-flex;flex:0 0 auto;align-items:center}.aegis-swap-widget__pair-icon{width:21px;height:21px;border:2px solid var(--aegis-swap-panel);font-size:10px}.aegis-swap-widget__pair-icon--secondary{margin-left:-7px}.aegis-swap-widget__target[aria-selected=true] .aegis-swap-widget__pair-icon{border-color:var(--aegis-swap-panel-raised)}.aegis-swap-widget__target[aria-selected=true]{border-color:color-mix(in srgb,var(--aegis-swap-accent) 62%,white 8%);background:linear-gradient(180deg,color-mix(in srgb,var(--aegis-swap-accent) 18%,transparent),transparent),var(--aegis-swap-panel-raised);color:var(--aegis-swap-text)}.aegis-swap-widget__target:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--aegis-swap-accent) 45%,var(--aegis-swap-border));color:var(--aegis-swap-text)}.aegis-swap-widget__target:disabled,.aegis-swap-widget__submit:disabled,.aegis-swap-widget__max:disabled,.aegis-swap-widget__flip:disabled{cursor:not-allowed;opacity:.55}.aegis-swap-widget__panel{display:grid;gap:0}.aegis-swap-widget__amount-box{display:grid;gap:10px;border:1px solid var(--aegis-swap-border);border-radius:8px;background:linear-gradient(180deg,#ffffff0b,#fff0),var(--aegis-swap-panel);padding:13px;transition:border-color .16s ease,background .16s ease}.aegis-swap-widget__amount-box:focus-within{border-color:color-mix(in srgb,var(--aegis-swap-accent) 58%,var(--aegis-swap-border));background:linear-gradient(180deg,color-mix(in srgb,var(--aegis-swap-accent) 8%,transparent),transparent),var(--aegis-swap-panel-raised)}.aegis-swap-widget__field-label{justify-content:space-between;color:var(--aegis-swap-muted);font-size:12px;font-weight:700;line-height:1}.aegis-swap-widget__max{border-radius:5px;background:color-mix(in srgb,var(--aegis-swap-accent) 12%,transparent);color:var(--aegis-swap-accent);padding:4px 7px;font-size:11px;font-weight:800}.aegis-swap-widget__amount-row{justify-content:space-between;gap:12px}.aegis-swap-widget__amount-row input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--aegis-swap-text);font-size:30px;font-weight:800;line-height:1.05}.aegis-swap-widget__amount-row input::placeholder{color:color-mix(in srgb,var(--aegis-swap-muted) 55%,transparent)}.aegis-swap-widget__amount-row input:disabled{opacity:1;-webkit-text-fill-color:var(--aegis-swap-text)}.aegis-swap-widget__token{display:inline-flex;flex:0 0 auto;min-width:96px;align-items:center;justify-content:center;gap:7px;border:1px solid var(--aegis-swap-border);border-radius:999px;background:var(--aegis-swap-panel-soft);color:var(--aegis-swap-text);padding:7px 10px 7px 8px;text-align:center}.aegis-swap-widget__token-symbol{display:inline-block;min-width:44px;color:var(--aegis-swap-text);font-size:13.5px;font-weight:780;letter-spacing:0;line-height:1;text-align:left;text-transform:uppercase}.aegis-swap-widget__token-mark{width:22px;height:22px;font-size:11px}.aegis-swap-widget__meta{overflow-wrap:anywhere;color:var(--aegis-swap-subtle)}.aegis-swap-widget__flip{z-index:1;display:grid;justify-self:center;width:38px;height:34px;margin:-8px 0;place-items:center;border:5px solid var(--aegis-swap-bg);border-radius:999px;background:var(--aegis-swap-panel-soft);color:var(--aegis-swap-accent);transition:color .16s ease,transform .16s ease}.aegis-swap-widget__flip:hover:not(:disabled){transform:rotate(180deg);color:var(--aegis-swap-text)}.aegis-swap-widget__flip svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.aegis-swap-widget__settings{margin-top:14px}.aegis-swap-widget__settings label{justify-content:space-between;gap:10px}.aegis-swap-widget__slippage-input{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--aegis-swap-border);border-radius:8px;background:var(--aegis-swap-panel);padding:6px 8px;color:var(--aegis-swap-text);font-weight:800}.aegis-swap-widget__slippage-input input{width:42px;border:0;outline:0;background:transparent;color:var(--aegis-swap-text);text-align:right}.aegis-swap-widget__details{display:grid;gap:8px;margin-top:12px;border:1px solid var(--aegis-swap-border);border-radius:8px;background:#ffffff06;padding:11px 12px}.aegis-swap-widget__pool{justify-content:space-between;gap:12px;min-width:0}.aegis-swap-widget__pool strong,.aegis-swap-widget__pool a{min-width:0;overflow:hidden;color:var(--aegis-swap-text);font-size:12px;font-weight:800;text-align:right;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.aegis-swap-widget__pool a{color:var(--aegis-swap-accent)}.aegis-swap-widget__pool-label{display:inline-flex;min-width:0;align-items:center;gap:7px}.aegis-swap-widget__pool-pair .aegis-swap-widget__pair-icon{width:18px;height:18px;border-color:color-mix(in srgb,var(--aegis-swap-bg) 76%,var(--aegis-swap-border));font-size:9px}.aegis-swap-widget__error{margin:12px 0 0;border:1px solid color-mix(in srgb,var(--aegis-swap-danger) 42%,transparent);border-radius:8px;background:color-mix(in srgb,var(--aegis-swap-danger) 12%,transparent);color:var(--aegis-swap-danger);padding:10px 11px;font-size:12px;line-height:1.4}.aegis-swap-widget__submit{width:100%;min-height:48px;margin-top:13px;border-radius:8px;background:linear-gradient(180deg,#ffffff2e,#fff0),var(--aegis-swap-accent);color:var(--aegis-swap-accent-text);font-size:15px;font-weight:900;transition:filter .16s ease,transform .16s ease}.aegis-swap-widget__submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.aegis-swap-widget__tx{display:block;margin-top:10px;color:var(--aegis-swap-accent);font-size:12px;font-weight:800;text-align:center;text-decoration:none}@media(prefers-reduced-motion:no-preference){.aegis-swap-widget{animation:aegisSwapEnter .32s ease both}}@keyframes aegisSwapEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:420px){.aegis-swap-widget{min-width:0;padding:14px}.aegis-swap-widget__header{align-items:flex-start}.aegis-swap-widget h2{font-size:21px}.aegis-swap-widget__chain{padding:6px 8px}.aegis-swap-widget__targets{grid-template-columns:repeat(2,minmax(0,1fr))}.aegis-swap-widget__amount-row input{font-size:26px}.aegis-swap-widget__token{min-width:88px}}
@@ -0,0 +1,23 @@
1
+ import { type Address } from 'viem';
2
+ export type Eip1193Provider = {
3
+ request<T = unknown>(args: {
4
+ method: string;
5
+ params?: unknown[] | Record<string, unknown>;
6
+ }): Promise<T>;
7
+ };
8
+ declare global {
9
+ interface Window {
10
+ ethereum?: Eip1193Provider;
11
+ }
12
+ }
13
+ export declare function getInjectedProvider(): Eip1193Provider | null;
14
+ export declare function normalizeAccount(value: unknown): Address | null;
15
+ export declare function getProviderAccount(provider: Eip1193Provider): Promise<Address | null>;
16
+ export declare function requestProviderAccount(provider: Eip1193Provider): Promise<Address | null>;
17
+ export declare function getProviderChainId(provider: Eip1193Provider): Promise<number | null>;
18
+ export declare function switchProviderChain(provider: Eip1193Provider, chainId: number): Promise<void>;
19
+ export declare function subscribeProvider(provider: Eip1193Provider, handlers: {
20
+ onAccountsChanged?: () => void;
21
+ onChainChanged?: () => void;
22
+ }): () => void;
23
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACzG,CAAA;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,QAAQ,CAAC,EAAE,eAAe,CAAA;KAC3B;CACF;AAED,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAG5D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAG/D;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAG3F;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAG/F;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI1F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnG;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE;IACR,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,GACA,MAAM,IAAI,CAWZ"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "aegis-swap-widget",
3
+ "version": "0.1.0",
4
+ "description": "Embeddable direct-pool Aegis swap widget for WATER, WOOD, GRASS, and STONE.",
5
+ "type": "module",
6
+ "sideEffects": [
7
+ "**/*.css"
8
+ ],
9
+ "main": "./dist/aegis-swap-widget.js",
10
+ "module": "./dist/aegis-swap-widget.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/aegis-swap-widget.js"
16
+ },
17
+ "./styles.css": "./dist/styles.css"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "dev": "vite",
24
+ "typecheck": "tsc -p tsconfig.build.json --noEmit",
25
+ "build": "vite build && tsc -p tsconfig.build.json",
26
+ "preview": "vite preview"
27
+ },
28
+ "peerDependencies": {
29
+ "react": ">=18 <20",
30
+ "react-dom": ">=18 <20"
31
+ },
32
+ "devDependencies": {
33
+ "@types/react": "^18.3.12",
34
+ "@types/react-dom": "^18.3.1",
35
+ "@vitejs/plugin-react": "^4.3.4",
36
+ "typescript": "~5.6.2",
37
+ "vite": "^6.0.1"
38
+ },
39
+ "dependencies": {
40
+ "viem": "^2.52.0"
41
+ }
42
+ }