levr-sdk 0.0.1
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/LICENSE.md +201 -0
- package/README.md +711 -0
- package/dist/esm/abis/IClankerAirdrop.js +443 -0
- package/dist/esm/abis/IClankerHookDynamicFee.js +198 -0
- package/dist/esm/abis/IClankerHookStaticFee.js +75 -0
- package/dist/esm/abis/IClankerLPLocker.js +402 -0
- package/dist/esm/abis/IClankerLpLockerMultiple.js +609 -0
- package/dist/esm/abis/IClankerToken.js +421 -0
- package/dist/esm/abis/LevrFactory_v1.js +608 -0
- package/dist/esm/abis/LevrForwarder_v1.js +622 -0
- package/dist/esm/abis/LevrGovernor_v1.js +726 -0
- package/dist/esm/abis/LevrStakedToken_v1.js +441 -0
- package/dist/esm/abis/LevrStaking_v1.js +607 -0
- package/dist/esm/abis/LevrTreasury_v1.js +219 -0
- package/dist/esm/abis/Permit2.js +29 -0
- package/dist/esm/abis/V4Quoter.js +466 -0
- package/dist/esm/abis/WETH9.js +153 -0
- package/dist/esm/abis/index.js +23 -0
- package/dist/esm/balance.js +72 -0
- package/dist/esm/balance.js.map +1 -0
- package/dist/esm/build-calldatas-v4.js +98 -0
- package/dist/esm/build-calldatas-v4.js.map +1 -0
- package/dist/esm/build-clanker-v4.js +128 -0
- package/dist/esm/build-clanker-v4.js.map +1 -0
- package/dist/esm/client/hook/index.js +36 -0
- package/dist/esm/client/hook/index.js.map +1 -0
- package/dist/esm/client/hook/use-balance.js +56 -0
- package/dist/esm/client/hook/use-balance.js.map +1 -0
- package/dist/esm/client/hook/use-clanker.js +57 -0
- package/dist/esm/client/hook/use-clanker.js.map +1 -0
- package/dist/esm/client/hook/use-deploy.js +16 -0
- package/dist/esm/client/hook/use-deploy.js.map +1 -0
- package/dist/esm/client/hook/use-fee-receivers.js +54 -0
- package/dist/esm/client/hook/use-fee-receivers.js.map +1 -0
- package/dist/esm/client/hook/use-governance.js +389 -0
- package/dist/esm/client/hook/use-governance.js.map +1 -0
- package/dist/esm/client/hook/use-prepare.js +47 -0
- package/dist/esm/client/hook/use-prepare.js.map +1 -0
- package/dist/esm/client/hook/use-project.js +29 -0
- package/dist/esm/client/hook/use-project.js.map +1 -0
- package/dist/esm/client/hook/use-projects.js +22 -0
- package/dist/esm/client/hook/use-projects.js.map +1 -0
- package/dist/esm/client/hook/use-proposals.js +31 -0
- package/dist/esm/client/hook/use-proposals.js.map +1 -0
- package/dist/esm/client/hook/use-register.js +101 -0
- package/dist/esm/client/hook/use-register.js.map +1 -0
- package/dist/esm/client/hook/use-stake.js +327 -0
- package/dist/esm/client/hook/use-stake.js.map +1 -0
- package/dist/esm/client/hook/use-swap.js +110 -0
- package/dist/esm/client/hook/use-swap.js.map +1 -0
- package/dist/esm/client/index.js +4 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/levr-provider.js +201 -0
- package/dist/esm/client/levr-provider.js.map +1 -0
- package/dist/esm/client/query-keys.js +61 -0
- package/dist/esm/client/query-keys.js.map +1 -0
- package/dist/esm/constants.js +182 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/deploy-v4.js +46 -0
- package/dist/esm/deploy-v4.js.map +1 -0
- package/dist/esm/fee-receivers.js +52 -0
- package/dist/esm/fee-receivers.js.map +1 -0
- package/dist/esm/governance.js +555 -0
- package/dist/esm/governance.js.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/project.js +146 -0
- package/dist/esm/project.js.map +1 -0
- package/dist/esm/projects.js +212 -0
- package/dist/esm/projects.js.map +1 -0
- package/dist/esm/proposals.js +98 -0
- package/dist/esm/proposals.js.map +1 -0
- package/dist/esm/quote-v4.js +169 -0
- package/dist/esm/quote-v4.js.map +1 -0
- package/dist/esm/schema/base.schema.js +11 -0
- package/dist/esm/schema/base.schema.js.map +1 -0
- package/dist/esm/schema/clanker.schema.js +191 -0
- package/dist/esm/schema/clanker.schema.js.map +1 -0
- package/dist/esm/schema/index.js +4 -0
- package/dist/esm/schema/index.js.map +1 -0
- package/dist/esm/schema/levr.schema.js +114 -0
- package/dist/esm/schema/levr.schema.js.map +1 -0
- package/dist/esm/stake.js +384 -0
- package/dist/esm/stake.js.map +1 -0
- package/dist/esm/swap-v4.js +281 -0
- package/dist/esm/swap-v4.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/util.js +19 -0
- package/dist/esm/util.js.map +1 -0
- package/dist/types/abis/IClankerAirdrop.d.ts +348 -0
- package/dist/types/abis/IClankerHookDynamicFee.d.ts +156 -0
- package/dist/types/abis/IClankerHookStaticFee.d.ts +58 -0
- package/dist/types/abis/IClankerLPLocker.d.ts +316 -0
- package/dist/types/abis/IClankerLpLockerMultiple.d.ts +481 -0
- package/dist/types/abis/IClankerToken.d.ts +326 -0
- package/dist/types/abis/LevrFactory_v1.d.ts +471 -0
- package/dist/types/abis/LevrForwarder_v1.d.ts +478 -0
- package/dist/types/abis/LevrGovernor_v1.d.ts +562 -0
- package/dist/types/abis/LevrStakedToken_v1.d.ts +338 -0
- package/dist/types/abis/LevrStaking_v1.d.ts +468 -0
- package/dist/types/abis/LevrTreasury_v1.d.ts +169 -0
- package/dist/types/abis/Permit2.d.ts +54 -0
- package/dist/types/abis/V4Quoter.d.ts +496 -0
- package/dist/types/abis/WETH9.d.ts +244 -0
- package/dist/types/abis/index.d.ts +15 -0
- package/dist/types/balance.d.ts +24 -0
- package/dist/types/balance.d.ts.map +1 -0
- package/dist/types/build-calldatas-v4.d.ts +20 -0
- package/dist/types/build-calldatas-v4.d.ts.map +1 -0
- package/dist/types/build-clanker-v4.d.ts +12 -0
- package/dist/types/build-clanker-v4.d.ts.map +1 -0
- package/dist/types/client/hook/index.d.ts +32 -0
- package/dist/types/client/hook/index.d.ts.map +1 -0
- package/dist/types/client/hook/use-balance.d.ts +18 -0
- package/dist/types/client/hook/use-balance.d.ts.map +1 -0
- package/dist/types/client/hook/use-clanker.d.ts +23 -0
- package/dist/types/client/hook/use-clanker.d.ts.map +1 -0
- package/dist/types/client/hook/use-deploy.d.ts +45 -0
- package/dist/types/client/hook/use-deploy.d.ts.map +1 -0
- package/dist/types/client/hook/use-fee-receivers.d.ts +26 -0
- package/dist/types/client/hook/use-fee-receivers.d.ts.map +1 -0
- package/dist/types/client/hook/use-governance.d.ts +145 -0
- package/dist/types/client/hook/use-governance.d.ts.map +1 -0
- package/dist/types/client/hook/use-prepare.d.ts +21 -0
- package/dist/types/client/hook/use-prepare.d.ts.map +1 -0
- package/dist/types/client/hook/use-project.d.ts +11 -0
- package/dist/types/client/hook/use-project.d.ts.map +1 -0
- package/dist/types/client/hook/use-projects.d.ts +6 -0
- package/dist/types/client/hook/use-projects.d.ts.map +1 -0
- package/dist/types/client/hook/use-proposals.d.ts +16 -0
- package/dist/types/client/hook/use-proposals.d.ts.map +1 -0
- package/dist/types/client/hook/use-register.d.ts +31 -0
- package/dist/types/client/hook/use-register.d.ts.map +1 -0
- package/dist/types/client/hook/use-stake.d.ts +195 -0
- package/dist/types/client/hook/use-stake.d.ts.map +1 -0
- package/dist/types/client/hook/use-swap.d.ts +59 -0
- package/dist/types/client/hook/use-swap.d.ts.map +1 -0
- package/dist/types/client/index.d.ts +4 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/client/levr-provider.d.ts +127 -0
- package/dist/types/client/levr-provider.d.ts.map +1 -0
- package/dist/types/client/query-keys.d.ts +61 -0
- package/dist/types/client/query-keys.d.ts.map +1 -0
- package/dist/types/constants.d.ts +101 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/deploy-v4.d.ts +13 -0
- package/dist/types/deploy-v4.d.ts.map +1 -0
- package/dist/types/fee-receivers.d.ts +29 -0
- package/dist/types/fee-receivers.d.ts.map +1 -0
- package/dist/types/governance.d.ts +205 -0
- package/dist/types/governance.d.ts.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/project.d.ts +51 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/projects.d.ts +20 -0
- package/dist/types/projects.d.ts.map +1 -0
- package/dist/types/proposals.d.ts +20 -0
- package/dist/types/proposals.d.ts.map +1 -0
- package/dist/types/quote-v4.d.ts +54 -0
- package/dist/types/quote-v4.d.ts.map +1 -0
- package/dist/types/schema/base.schema.d.ts +5 -0
- package/dist/types/schema/base.schema.d.ts.map +1 -0
- package/dist/types/schema/clanker.schema.d.ts +104 -0
- package/dist/types/schema/clanker.schema.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +4 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/schema/levr.schema.d.ts +34 -0
- package/dist/types/schema/levr.schema.d.ts.map +1 -0
- package/dist/types/stake.d.ts +137 -0
- package/dist/types/stake.d.ts.map +1 -0
- package/dist/types/swap-v4.d.ts +97 -0
- package/dist/types/swap-v4.d.ts.map +1 -0
- package/dist/types/types.d.ts +20 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/util.d.ts +5 -0
- package/dist/types/util.d.ts.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
/**
|
|
3
|
+
* Get the LP locker address for a given chain ID
|
|
4
|
+
* @param chainId - The chain ID
|
|
5
|
+
* @returns The LP locker address
|
|
6
|
+
*/
|
|
7
|
+
export declare const GET_LP_LOCKER_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Get the factory address for a given chain ID
|
|
10
|
+
* @param chainId - The chain ID
|
|
11
|
+
* @returns The factory address
|
|
12
|
+
*/
|
|
13
|
+
export declare const GET_FACTORY_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Get the WETH address for a given chain ID
|
|
16
|
+
* @param chainId - The chain ID
|
|
17
|
+
* @returns The WETH address
|
|
18
|
+
*/
|
|
19
|
+
export declare const WETH: (chainId?: number) => {
|
|
20
|
+
address: `0x${string}`;
|
|
21
|
+
decimals: number;
|
|
22
|
+
symbol: string;
|
|
23
|
+
name: string;
|
|
24
|
+
} | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Get the Uniswap V4 Permit2 address for a given chain ID
|
|
27
|
+
* @param chainId - The chain ID
|
|
28
|
+
* @returns The Permit2 address
|
|
29
|
+
*/
|
|
30
|
+
export declare const UNISWAP_V4_PERMIT2: (chainId?: number) => `0x${string}` | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Get the Uniswap V4 Quoter address for a given chain ID
|
|
33
|
+
* @param chainId - The chain ID
|
|
34
|
+
* @returns The Quoter address
|
|
35
|
+
*/
|
|
36
|
+
export declare const UNISWAP_V4_QUOTER: (chainId?: number) => `0x${string}` | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Get the Uniswap V4 Universal Router address for a given chain ID
|
|
39
|
+
* @param chainId - The chain ID
|
|
40
|
+
* @returns The Uniswap V4 Universal Router address
|
|
41
|
+
*/
|
|
42
|
+
export declare const UNISWAP_V4_UNIVERSAL_ROUTER: (chainId?: number) => `0x${string}` | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get the Uniswap V4 Pool Manager address for a given chain ID
|
|
45
|
+
* @param chainId - The chain ID
|
|
46
|
+
* @returns The Pool Manager address
|
|
47
|
+
*/
|
|
48
|
+
export declare const UNISWAP_V4_POOL_MANAGER: (chainId?: number) => `0x${string}` | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get the Clanker Factory address for a given chain ID
|
|
51
|
+
* @param chainId - The chain ID
|
|
52
|
+
* @returns The Clanker Factory address (same on Base mainnet and Base Sepolia)
|
|
53
|
+
*/
|
|
54
|
+
export declare const GET_CLANKER_FACTORY_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Get the Clanker Airdrop address for a given chain ID
|
|
57
|
+
* @param chainId - The chain ID
|
|
58
|
+
* @returns The Clanker Airdrop address
|
|
59
|
+
*/
|
|
60
|
+
export declare const GET_CLANKER_AIRDROP_ADDRESS: (chainId?: number) => `0x${string}` | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Contract balance representation, for use in Universal Router
|
|
63
|
+
*/
|
|
64
|
+
export declare const CONTRACT_BALANCE: BigNumber;
|
|
65
|
+
/**
|
|
66
|
+
* MSG_SENDER representation, for use in Universal Router
|
|
67
|
+
*/
|
|
68
|
+
export declare const MSG_SENDER = "0x0000000000000000000000000000000000000001";
|
|
69
|
+
/**
|
|
70
|
+
* ADDRESS_THIS representation, for use in Universal Router
|
|
71
|
+
*/
|
|
72
|
+
export declare const ADDRESS_THIS = "0x0000000000000000000000000000000000000002";
|
|
73
|
+
/**
|
|
74
|
+
* Common treasury airdrop amounts in tokens (not wei)
|
|
75
|
+
* First value is used as default in deployV4
|
|
76
|
+
*/
|
|
77
|
+
export declare const TREASURY_AIRDROP_AMOUNTS: {
|
|
78
|
+
readonly '30%': 30000000000;
|
|
79
|
+
readonly '40%': 40000000000;
|
|
80
|
+
readonly '50%': 50000000000;
|
|
81
|
+
readonly '60%': 60000000000;
|
|
82
|
+
readonly '70%': 70000000000;
|
|
83
|
+
readonly '80%': 80000000000;
|
|
84
|
+
readonly '90%': 90000000000;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Staking rewards in basis points
|
|
88
|
+
* The amount of rewards that are distributed to the staking contract
|
|
89
|
+
*/
|
|
90
|
+
export declare const STAKING_REWARDS: {
|
|
91
|
+
readonly '100%': 10000;
|
|
92
|
+
readonly '90%': 9000;
|
|
93
|
+
readonly '80%': 8000;
|
|
94
|
+
readonly '70%': 7000;
|
|
95
|
+
};
|
|
96
|
+
export declare const STATIC_FEE_TIERS: {
|
|
97
|
+
readonly '1%': 100;
|
|
98
|
+
readonly '2%': 200;
|
|
99
|
+
readonly '3%': 300;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAWxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAOtE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GACf,UAAU,MAAM,KAEd;IACE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,GACD,SAeH,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQ9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAQ1E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAY9E,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,KAAK,MAAM,EAAE,GAAG,SAW9E,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,WAE5B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,+CAA+C,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,YAAY,+CAA+C,CAAA;AAExE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAQ3B,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Clanker } from 'clanker-sdk/v4';
|
|
2
|
+
import type { TransactionReceipt } from 'viem';
|
|
3
|
+
import type { LevrClankerDeploymentSchemaType } from './schema';
|
|
4
|
+
export type DeployV4Params = {
|
|
5
|
+
c: LevrClankerDeploymentSchemaType;
|
|
6
|
+
clanker: Clanker | undefined | null;
|
|
7
|
+
};
|
|
8
|
+
export type DeployV4ReturnType = {
|
|
9
|
+
receipt: TransactionReceipt;
|
|
10
|
+
address: `0x${string}`;
|
|
11
|
+
};
|
|
12
|
+
export declare const deployV4: ({ c, clanker }: DeployV4Params) => Promise<DeployV4ReturnType>;
|
|
13
|
+
//# sourceMappingURL=deploy-v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-v4.d.ts","sourceRoot":"","sources":["../../src/deploy-v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAK9C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,+BAA+B,CAAA;IAClC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,gBAAgB,cAAc,KAAG,OAAO,CAAC,kBAAkB,CA6CzF,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PopPublicClient, PopWalletClient } from './types';
|
|
2
|
+
export type FeeReceiversParams = {
|
|
3
|
+
publicClient: PopPublicClient;
|
|
4
|
+
clankerToken: `0x${string}`;
|
|
5
|
+
chainId: number;
|
|
6
|
+
userAddress?: `0x${string}`;
|
|
7
|
+
};
|
|
8
|
+
export type FeeReceiverAdmin = {
|
|
9
|
+
areYouAnAdmin: boolean;
|
|
10
|
+
admin: `0x${string}`;
|
|
11
|
+
recipient: `0x${string}`;
|
|
12
|
+
percentage: number;
|
|
13
|
+
};
|
|
14
|
+
export type UpdateFeeReceiverParams = {
|
|
15
|
+
walletClient: PopWalletClient;
|
|
16
|
+
clankerToken: `0x${string}`;
|
|
17
|
+
chainId: number;
|
|
18
|
+
rewardIndex: bigint | number;
|
|
19
|
+
newRecipient: `0x${string}`;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get fee receivers for a clanker token
|
|
23
|
+
*/
|
|
24
|
+
export declare function feeReceivers({ publicClient, clankerToken, chainId, userAddress, }: FeeReceiversParams): Promise<FeeReceiverAdmin[] | undefined>;
|
|
25
|
+
/**
|
|
26
|
+
* Update fee receiver for a clanker token
|
|
27
|
+
*/
|
|
28
|
+
export declare function updateFeeReceiver({ walletClient, clankerToken, chainId, rewardIndex, newRecipient, }: UpdateFeeReceiverParams): Promise<`0x${string}`>;
|
|
29
|
+
//# sourceMappingURL=fee-receivers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee-receivers.d.ts","sourceRoot":"","sources":["../../src/fee-receivers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,eAAe,CAAA;IAC7B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,eAAe,CAAA;IAC7B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EACjC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CA8B9D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,YAAY,GACb,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAqBlD"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import type { TransactionReceipt } from 'viem';
|
|
2
|
+
import type { PopPublicClient, PopWalletClient } from './types';
|
|
3
|
+
export type GovernanceConfig = {
|
|
4
|
+
wallet: PopWalletClient;
|
|
5
|
+
publicClient: PopPublicClient;
|
|
6
|
+
governorAddress: `0x${string}`;
|
|
7
|
+
tokenDecimals: number;
|
|
8
|
+
clankerToken: `0x${string}`;
|
|
9
|
+
trustedForwarder?: `0x${string}`;
|
|
10
|
+
};
|
|
11
|
+
export type ProposalDetails = {
|
|
12
|
+
id: bigint;
|
|
13
|
+
proposalType: number;
|
|
14
|
+
proposer: `0x${string}`;
|
|
15
|
+
amount: bigint;
|
|
16
|
+
recipient: `0x${string}`;
|
|
17
|
+
description: string;
|
|
18
|
+
createdAt: bigint;
|
|
19
|
+
votingStartsAt: bigint;
|
|
20
|
+
votingEndsAt: bigint;
|
|
21
|
+
yesVotes: bigint;
|
|
22
|
+
noVotes: bigint;
|
|
23
|
+
totalBalanceVoted: bigint;
|
|
24
|
+
executed: boolean;
|
|
25
|
+
cycleId: bigint;
|
|
26
|
+
};
|
|
27
|
+
export type FormattedProposalDetails = {
|
|
28
|
+
id: bigint;
|
|
29
|
+
proposalType: number;
|
|
30
|
+
proposer: `0x${string}`;
|
|
31
|
+
amount: {
|
|
32
|
+
raw: bigint;
|
|
33
|
+
formatted: string;
|
|
34
|
+
};
|
|
35
|
+
recipient: `0x${string}`;
|
|
36
|
+
description: string;
|
|
37
|
+
createdAt: {
|
|
38
|
+
timestamp: bigint;
|
|
39
|
+
date: Date;
|
|
40
|
+
};
|
|
41
|
+
votingStartsAt: {
|
|
42
|
+
timestamp: bigint;
|
|
43
|
+
date: Date;
|
|
44
|
+
};
|
|
45
|
+
votingEndsAt: {
|
|
46
|
+
timestamp: bigint;
|
|
47
|
+
date: Date;
|
|
48
|
+
};
|
|
49
|
+
yesVotes: {
|
|
50
|
+
raw: bigint;
|
|
51
|
+
formatted: string;
|
|
52
|
+
};
|
|
53
|
+
noVotes: {
|
|
54
|
+
raw: bigint;
|
|
55
|
+
formatted: string;
|
|
56
|
+
};
|
|
57
|
+
totalBalanceVoted: bigint;
|
|
58
|
+
executed: boolean;
|
|
59
|
+
cycleId: bigint;
|
|
60
|
+
};
|
|
61
|
+
export type ProposeTransferConfig = {
|
|
62
|
+
recipient: `0x${string}`;
|
|
63
|
+
amount: string;
|
|
64
|
+
amountDecimals: number;
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
export type ProposeBoostConfig = {
|
|
68
|
+
amount: string;
|
|
69
|
+
amountDecimals: number;
|
|
70
|
+
};
|
|
71
|
+
export type ExecuteProposalConfig = {
|
|
72
|
+
proposalId: number | bigint;
|
|
73
|
+
};
|
|
74
|
+
export declare class Governance {
|
|
75
|
+
private wallet;
|
|
76
|
+
private publicClient;
|
|
77
|
+
private governorAddress;
|
|
78
|
+
private tokenDecimals;
|
|
79
|
+
private clankerToken;
|
|
80
|
+
private userAddress;
|
|
81
|
+
constructor(config: GovernanceConfig);
|
|
82
|
+
/**
|
|
83
|
+
* Propose a transfer from treasury to recipient
|
|
84
|
+
*/
|
|
85
|
+
proposeTransfer(recipient: `0x${string}`, amount: number | string | bigint, description: string): Promise<{
|
|
86
|
+
receipt: TransactionReceipt;
|
|
87
|
+
proposalId: bigint;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Propose a boost from treasury to staking rewards
|
|
91
|
+
*/
|
|
92
|
+
proposeBoost(amount: number | string | bigint): Promise<{
|
|
93
|
+
receipt: TransactionReceipt;
|
|
94
|
+
proposalId: bigint;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Vote on a proposal
|
|
98
|
+
*/
|
|
99
|
+
vote(proposalId: number | bigint, support: boolean): Promise<TransactionReceipt>;
|
|
100
|
+
/**
|
|
101
|
+
* Execute a proposal by ID
|
|
102
|
+
* Note: Automatically starts a new cycle after successful execution
|
|
103
|
+
*/
|
|
104
|
+
executeProposal(proposalId: number | bigint): Promise<TransactionReceipt>;
|
|
105
|
+
/**
|
|
106
|
+
* Get proposal details by ID
|
|
107
|
+
*/
|
|
108
|
+
getProposal(proposalId: number | bigint): Promise<FormattedProposalDetails>;
|
|
109
|
+
/**
|
|
110
|
+
* Get current cycle ID
|
|
111
|
+
*/
|
|
112
|
+
getCurrentCycleId(): Promise<bigint>;
|
|
113
|
+
/**
|
|
114
|
+
* Get all proposal IDs for a specific cycle
|
|
115
|
+
*/
|
|
116
|
+
getProposalsForCycle(cycleId: number | bigint): Promise<readonly bigint[]>;
|
|
117
|
+
/**
|
|
118
|
+
* Get the winner proposal ID for a cycle
|
|
119
|
+
*/
|
|
120
|
+
getWinner(cycleId: number | bigint): Promise<bigint>;
|
|
121
|
+
/**
|
|
122
|
+
* Get vote receipt for a user on a proposal
|
|
123
|
+
*/
|
|
124
|
+
getVoteReceipt(proposalId: number | bigint, voter?: `0x${string}`): Promise<{
|
|
125
|
+
hasVoted: boolean;
|
|
126
|
+
support: boolean;
|
|
127
|
+
votes: bigint;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Get voting power snapshot for a user at proposal creation
|
|
131
|
+
*/
|
|
132
|
+
getVotingPowerSnapshot(proposalId: number | bigint, user?: `0x${string}`): Promise<bigint>;
|
|
133
|
+
/**
|
|
134
|
+
* Check if proposal meets quorum
|
|
135
|
+
*/
|
|
136
|
+
meetsQuorum(proposalId: number | bigint): Promise<boolean>;
|
|
137
|
+
/**
|
|
138
|
+
* Check if proposal meets approval threshold
|
|
139
|
+
*/
|
|
140
|
+
meetsApproval(proposalId: number | bigint): Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Get proposal state (Pending, Active, Defeated, Succeeded, Executed)
|
|
143
|
+
*/
|
|
144
|
+
getProposalState(proposalId: number | bigint): Promise<number>;
|
|
145
|
+
/**
|
|
146
|
+
* Get active proposal count for a specific proposal type
|
|
147
|
+
*/
|
|
148
|
+
getActiveProposalCount(proposalType: number): Promise<bigint>;
|
|
149
|
+
/**
|
|
150
|
+
* Get factory address
|
|
151
|
+
*/
|
|
152
|
+
getFactory(): Promise<`0x${string}`>;
|
|
153
|
+
/**
|
|
154
|
+
* Get treasury address
|
|
155
|
+
*/
|
|
156
|
+
getTreasury(): Promise<`0x${string}`>;
|
|
157
|
+
/**
|
|
158
|
+
* Get staked token address
|
|
159
|
+
*/
|
|
160
|
+
getStakedToken(): Promise<`0x${string}`>;
|
|
161
|
+
/**
|
|
162
|
+
* Propose transfer and execute in sequence (for testing convenience)
|
|
163
|
+
*/
|
|
164
|
+
proposeAndExecuteTransfer(recipient: `0x${string}`, amount: number | string | bigint, description: string): Promise<{
|
|
165
|
+
proposeReceipt: TransactionReceipt;
|
|
166
|
+
executeReceipt: TransactionReceipt;
|
|
167
|
+
proposalId: bigint;
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Propose boost and execute in sequence (for testing convenience)
|
|
171
|
+
*/
|
|
172
|
+
proposeAndExecuteBoost(amount: number | string | bigint): Promise<{
|
|
173
|
+
proposeReceipt: TransactionReceipt;
|
|
174
|
+
executeReceipt: TransactionReceipt;
|
|
175
|
+
proposalId: bigint;
|
|
176
|
+
}>;
|
|
177
|
+
/**
|
|
178
|
+
* Find treasury airdrop allocation by checking all known amounts using multicall
|
|
179
|
+
*/
|
|
180
|
+
private findTreasuryAllocation;
|
|
181
|
+
/**
|
|
182
|
+
* Get available airdrop amount for treasury using known amounts
|
|
183
|
+
*/
|
|
184
|
+
getAvailableAirdropAmount(): Promise<bigint>;
|
|
185
|
+
/**
|
|
186
|
+
* Get airdrop status for treasury with detailed status information
|
|
187
|
+
*/
|
|
188
|
+
getAirdropStatus(): Promise<{
|
|
189
|
+
availableAmount: {
|
|
190
|
+
raw: bigint;
|
|
191
|
+
formatted: string;
|
|
192
|
+
};
|
|
193
|
+
allocatedAmount: {
|
|
194
|
+
raw: bigint;
|
|
195
|
+
formatted: string;
|
|
196
|
+
};
|
|
197
|
+
isAvailable: boolean;
|
|
198
|
+
error?: string;
|
|
199
|
+
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Claim airdrop for treasury
|
|
202
|
+
*/
|
|
203
|
+
claimAirdrop(): Promise<TransactionReceipt>;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=governance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './abis';
|
|
2
|
+
export * from './balance';
|
|
3
|
+
export * from './build-calldatas-v4';
|
|
4
|
+
export * from './build-clanker-v4';
|
|
5
|
+
export * from './constants';
|
|
6
|
+
export * from './deploy-v4';
|
|
7
|
+
export * from './fee-receivers';
|
|
8
|
+
export * from './governance';
|
|
9
|
+
export * from './project';
|
|
10
|
+
export * from './projects';
|
|
11
|
+
export * from './proposals';
|
|
12
|
+
export * from './quote-v4';
|
|
13
|
+
export * from './schema';
|
|
14
|
+
export * from './stake';
|
|
15
|
+
export * from './swap-v4';
|
|
16
|
+
export * from './types';
|
|
17
|
+
export * from './util';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { PoolKey, PopPublicClient } from './types';
|
|
2
|
+
export type ProjectParams = {
|
|
3
|
+
publicClient: PopPublicClient;
|
|
4
|
+
factoryAddress: `0x${string}`;
|
|
5
|
+
chainId: number;
|
|
6
|
+
clankerToken: `0x${string}`;
|
|
7
|
+
};
|
|
8
|
+
export type ProjectMetadata = {
|
|
9
|
+
description: string;
|
|
10
|
+
socialMediaUrls: [];
|
|
11
|
+
auditUrls: [];
|
|
12
|
+
};
|
|
13
|
+
export type PoolInfo = {
|
|
14
|
+
poolKey: PoolKey;
|
|
15
|
+
feeDisplay: string;
|
|
16
|
+
numPositions: bigint;
|
|
17
|
+
};
|
|
18
|
+
export type TreasuryStats = {
|
|
19
|
+
balance: {
|
|
20
|
+
raw: bigint;
|
|
21
|
+
formatted: string;
|
|
22
|
+
};
|
|
23
|
+
totalAllocated: {
|
|
24
|
+
raw: bigint;
|
|
25
|
+
formatted: string;
|
|
26
|
+
};
|
|
27
|
+
utilization: number;
|
|
28
|
+
};
|
|
29
|
+
export type Project = {
|
|
30
|
+
treasury: `0x${string}`;
|
|
31
|
+
governor: `0x${string}`;
|
|
32
|
+
staking: `0x${string}`;
|
|
33
|
+
stakedToken: `0x${string}`;
|
|
34
|
+
forwarder: `0x${string}`;
|
|
35
|
+
token: {
|
|
36
|
+
address: `0x${string}`;
|
|
37
|
+
decimals: number;
|
|
38
|
+
name: string;
|
|
39
|
+
symbol: string;
|
|
40
|
+
totalSupply: bigint;
|
|
41
|
+
metadata: ProjectMetadata | null;
|
|
42
|
+
imageUrl?: string;
|
|
43
|
+
};
|
|
44
|
+
pool?: PoolInfo;
|
|
45
|
+
treasuryStats?: TreasuryStats;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Get project data for a clanker token
|
|
49
|
+
*/
|
|
50
|
+
export declare function project({ publicClient, factoryAddress, chainId, clankerToken, }: ProjectParams): Promise<Project | null>;
|
|
51
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvD,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,eAAe,CAAA;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,EAAE,CAAA;IACnB,SAAS,EAAE,EAAE,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;IACvB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAA;IAC1B,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,KAAK,EAAE;QACL,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,EAC5B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,YAAY,GACb,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA+JzC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Project } from './project';
|
|
2
|
+
import type { PopPublicClient } from './types';
|
|
3
|
+
export type ProjectsParams = {
|
|
4
|
+
publicClient: PopPublicClient;
|
|
5
|
+
factoryAddress: `0x${string}`;
|
|
6
|
+
chainId: number;
|
|
7
|
+
fromBlock?: bigint;
|
|
8
|
+
toBlock?: bigint | 'latest';
|
|
9
|
+
pageSize?: number;
|
|
10
|
+
};
|
|
11
|
+
export type ProjectsResult = {
|
|
12
|
+
projects: Omit<Project, 'forwarder'>[];
|
|
13
|
+
fromBlock: bigint;
|
|
14
|
+
toBlock: bigint;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Get multiple projects data
|
|
18
|
+
*/
|
|
19
|
+
export declare function projects({ publicClient, factoryAddress, chainId, fromBlock, toBlock, pageSize, }: ProjectsParams): Promise<ProjectsResult>;
|
|
20
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/projects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAY,OAAO,EAAkC,MAAM,WAAW,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,EAAE,eAAe,CAAA;IAC7B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAA;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAcD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAC7B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAkB,EAClB,QAAc,GACf,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA+O1C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FormattedProposalDetails } from './governance';
|
|
2
|
+
import type { PopPublicClient } from './types';
|
|
3
|
+
export type ProposalsParams = {
|
|
4
|
+
publicClient: PopPublicClient;
|
|
5
|
+
governorAddress: `0x${string}`;
|
|
6
|
+
tokenDecimals?: number;
|
|
7
|
+
fromBlock?: bigint;
|
|
8
|
+
toBlock?: bigint | 'latest';
|
|
9
|
+
pageSize?: number;
|
|
10
|
+
};
|
|
11
|
+
export type ProposalsResult = {
|
|
12
|
+
proposals: FormattedProposalDetails[];
|
|
13
|
+
fromBlock: bigint;
|
|
14
|
+
toBlock: bigint;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Get multiple proposals data from governor contract
|
|
18
|
+
*/
|
|
19
|
+
export declare function proposals({ publicClient, governorAddress, tokenDecimals, fromBlock, toBlock, pageSize, }: ProposalsParams): Promise<ProposalsResult>;
|
|
20
|
+
//# sourceMappingURL=proposals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../../src/proposals.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,eAAe,CAAA;IAC7B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,wBAAwB,EAAE,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAcD;;GAEG;AACH,wBAAsB,SAAS,CAAC,EAC9B,YAAY,EACZ,eAAe,EACf,aAAkB,EAClB,SAAS,EACT,OAAkB,EAClB,QAAa,GACd,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoH5C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { PublicClient } from 'viem';
|
|
2
|
+
import type { PoolKey } from './types';
|
|
3
|
+
export type QuoteV4Params = {
|
|
4
|
+
publicClient: PublicClient;
|
|
5
|
+
chainId: number;
|
|
6
|
+
poolKey: PoolKey;
|
|
7
|
+
zeroForOne: boolean;
|
|
8
|
+
amountIn: bigint;
|
|
9
|
+
hookData?: `0x${string}`;
|
|
10
|
+
};
|
|
11
|
+
export type QuoteV4ReturnType = {
|
|
12
|
+
amountOut: bigint;
|
|
13
|
+
gasEstimate: bigint;
|
|
14
|
+
/**
|
|
15
|
+
* Fee information from Clanker hooks (if available)
|
|
16
|
+
* - Static fees: clankerFee and pairedFee in basis points
|
|
17
|
+
* - Dynamic fees: baseFee and maxLpFee in basis points
|
|
18
|
+
*/
|
|
19
|
+
hookFees?: {
|
|
20
|
+
type: 'static' | 'dynamic';
|
|
21
|
+
clankerFee?: number;
|
|
22
|
+
pairedFee?: number;
|
|
23
|
+
baseFee?: number;
|
|
24
|
+
maxLpFee?: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* @description Get a swap quote from Uniswap V4 Quoter
|
|
29
|
+
* @param params Quote parameters including pool key and amount
|
|
30
|
+
* @returns Quote result with output amount, gas estimate, and hook fees
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* The V4Quoter uses state-changing calls that are simulated via static call.
|
|
34
|
+
* The quoter returns the expected output amount for the given input.
|
|
35
|
+
*
|
|
36
|
+
* This function works for both native ETH and ERC20 swaps:
|
|
37
|
+
* - Native ETH → Token: Quote uses WETH address, swap router handles wrapping
|
|
38
|
+
* - Token → Native ETH: Quote uses WETH address, swap router handles unwrapping
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const quote = await quoteV4({
|
|
43
|
+
* publicClient,
|
|
44
|
+
* chainId: base.id,
|
|
45
|
+
* poolKey,
|
|
46
|
+
* zeroForOne: true,
|
|
47
|
+
* amountIn: parseEther('1'),
|
|
48
|
+
* })
|
|
49
|
+
* console.log(`Output: ${formatEther(quote.amountOut)}`)
|
|
50
|
+
* console.log(`Fees:`, quote.hookFees)
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const quoteV4: ({ publicClient, chainId, poolKey, zeroForOne, amountIn, hookData, }: QuoteV4Params) => Promise<QuoteV4ReturnType>;
|
|
54
|
+
//# sourceMappingURL=quote-v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quote-v4.d.ts","sourceRoot":"","sources":["../../src/quote-v4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAKxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAA;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO,GAAU,qEAO3B,aAAa,KAAG,OAAO,CAAC,iBAAiB,CAwC3C,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const NonEmptyString: (message: string) => Schema.refine<string, typeof Schema.String>;
|
|
3
|
+
export declare const UrlString: Schema.refine<string, typeof Schema.String>;
|
|
4
|
+
export declare const EthereumAddress: Schema.Schema<`0x${string}`, `0x${string}`>;
|
|
5
|
+
//# sourceMappingURL=base.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.schema.d.ts","sourceRoot":"","sources":["../../../src/schema/base.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,gDAG1C,CAAA;AAEJ,eAAO,MAAM,SAAS,6CAEpB,CAAA;AAEF,eAAO,MAAM,eAAe,EAItB,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC,CAAA"}
|