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,104 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const Metadata: Schema.Struct<{
|
|
3
|
+
description: Schema.optional<typeof Schema.String>;
|
|
4
|
+
socialMediaUrls: Schema.optional<Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
|
|
5
|
+
platform: Schema.refine<string, typeof Schema.String>;
|
|
6
|
+
url: Schema.refine<string, typeof Schema.String>;
|
|
7
|
+
}>>>>>;
|
|
8
|
+
auditUrls: Schema.optional<Schema.mutable<Schema.Array$<Schema.refine<string, typeof Schema.String>>>>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const DevBuy: Schema.Struct<{
|
|
11
|
+
ethAmount: Schema.SchemaClass<number, number, never>;
|
|
12
|
+
poolKey: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
13
|
+
currency0: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
14
|
+
currency1: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
15
|
+
fee: Schema.SchemaClass<number, number, never>;
|
|
16
|
+
tickSpacing: Schema.SchemaClass<number, number, never>;
|
|
17
|
+
hooks: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
18
|
+
}>>>;
|
|
19
|
+
amountOutMin: Schema.optional<typeof Schema.Number>;
|
|
20
|
+
}>;
|
|
21
|
+
export declare const ClankerDeploymentSchema: Schema.Struct<{
|
|
22
|
+
name: Schema.refine<string, typeof Schema.String>;
|
|
23
|
+
symbol: Schema.refine<string, typeof Schema.String>;
|
|
24
|
+
image: Schema.optional<typeof Schema.String>;
|
|
25
|
+
chainId: Schema.optional<typeof Schema.Number>;
|
|
26
|
+
tokenAdmin: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
27
|
+
vanity: Schema.optional<typeof Schema.Boolean>;
|
|
28
|
+
metadata: Schema.optional<Schema.Struct<{
|
|
29
|
+
description: Schema.optional<typeof Schema.String>;
|
|
30
|
+
socialMediaUrls: Schema.optional<Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
|
|
31
|
+
platform: Schema.refine<string, typeof Schema.String>;
|
|
32
|
+
url: Schema.refine<string, typeof Schema.String>;
|
|
33
|
+
}>>>>>;
|
|
34
|
+
auditUrls: Schema.optional<Schema.mutable<Schema.Array$<Schema.refine<string, typeof Schema.String>>>>;
|
|
35
|
+
}>>;
|
|
36
|
+
context: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
37
|
+
interface: Schema.optional<typeof Schema.String>;
|
|
38
|
+
platform: Schema.optional<typeof Schema.String>;
|
|
39
|
+
messageId: Schema.optional<typeof Schema.String>;
|
|
40
|
+
id: Schema.optional<typeof Schema.String>;
|
|
41
|
+
}>>>;
|
|
42
|
+
pool: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
43
|
+
pairedToken: Schema.optional<Schema.Union<[Schema.Literal<["WETH"]>, Schema.Schema<`0x${string}`, `0x${string}`, never>]>>;
|
|
44
|
+
tickIfToken0IsClanker: Schema.optional<typeof Schema.Number>;
|
|
45
|
+
tickSpacing: Schema.optional<typeof Schema.Number>;
|
|
46
|
+
positions: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
|
|
47
|
+
tickLower: Schema.SchemaClass<number, number, never>;
|
|
48
|
+
tickUpper: Schema.SchemaClass<number, number, never>;
|
|
49
|
+
positionBps: Schema.SchemaClass<number, number, never>;
|
|
50
|
+
}>>>>;
|
|
51
|
+
}>>>;
|
|
52
|
+
locker: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
53
|
+
locker: Schema.Union<[Schema.Literal<["Locker"]>, Schema.Schema<`0x${string}`, `0x${string}`, never>]>;
|
|
54
|
+
lockerData: Schema.optional<Schema.Schema<`0x${string}`, `0x${string}`, never>>;
|
|
55
|
+
}>>>;
|
|
56
|
+
vault: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
57
|
+
percentage: Schema.SchemaClass<number, number, never>;
|
|
58
|
+
lockupDuration: Schema.SchemaClass<number, number, never>;
|
|
59
|
+
vestingDuration: Schema.optional<typeof Schema.Number>;
|
|
60
|
+
recipient: Schema.optional<Schema.Schema<`0x${string}`, `0x${string}`, never>>;
|
|
61
|
+
}>>>;
|
|
62
|
+
airdrop: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
63
|
+
admin: Schema.optional<Schema.Schema<`0x${string}`, `0x${string}`, never>>;
|
|
64
|
+
merkleRoot: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
65
|
+
lockupDuration: Schema.SchemaClass<number, number, never>;
|
|
66
|
+
vestingDuration: Schema.optional<typeof Schema.Number>;
|
|
67
|
+
amount: Schema.SchemaClass<number, number, never>;
|
|
68
|
+
}>>>;
|
|
69
|
+
devBuy: Schema.optional<Schema.Struct<{
|
|
70
|
+
ethAmount: Schema.SchemaClass<number, number, never>;
|
|
71
|
+
poolKey: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
72
|
+
currency0: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
73
|
+
currency1: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
74
|
+
fee: Schema.SchemaClass<number, number, never>;
|
|
75
|
+
tickSpacing: Schema.SchemaClass<number, number, never>;
|
|
76
|
+
hooks: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
77
|
+
}>>>;
|
|
78
|
+
amountOutMin: Schema.optional<typeof Schema.Number>;
|
|
79
|
+
}>>;
|
|
80
|
+
fees: Schema.optional<Schema.mutable<Schema.Union<[Schema.mutable<Schema.Struct<{
|
|
81
|
+
type: Schema.optional<Schema.Literal<["static"]>>;
|
|
82
|
+
clankerFee: Schema.SchemaClass<number, number, never>;
|
|
83
|
+
pairedFee: Schema.SchemaClass<number, number, never>;
|
|
84
|
+
}>>, Schema.mutable<Schema.Struct<{
|
|
85
|
+
type: Schema.optional<Schema.Literal<["dynamic"]>>;
|
|
86
|
+
baseFee: Schema.SchemaClass<number, number, never>;
|
|
87
|
+
maxFee: Schema.SchemaClass<number, number, never>;
|
|
88
|
+
referenceTickFilterPeriod: Schema.SchemaClass<number, number, never>;
|
|
89
|
+
resetPeriod: Schema.SchemaClass<number, number, never>;
|
|
90
|
+
resetTickFilter: Schema.SchemaClass<number, number, never>;
|
|
91
|
+
feeControlNumerator: Schema.SchemaClass<number, number, never>;
|
|
92
|
+
decayFilterBps: Schema.SchemaClass<number, number, never>;
|
|
93
|
+
}>>]>>>;
|
|
94
|
+
rewards: Schema.optional<Schema.mutable<Schema.Struct<{
|
|
95
|
+
recipients: Schema.mutable<Schema.Array$<Schema.mutable<Schema.Struct<{
|
|
96
|
+
admin: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
97
|
+
recipient: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
98
|
+
bps: Schema.SchemaClass<number, number, never>;
|
|
99
|
+
token: Schema.Union<[Schema.Literal<["Both"]>, Schema.Literal<["Paired"]>, Schema.Literal<["Clanker"]>]>;
|
|
100
|
+
}>>>>;
|
|
101
|
+
}>>>;
|
|
102
|
+
}>;
|
|
103
|
+
export type ClankerDeploymentSchemaType = typeof ClankerDeploymentSchema.Type;
|
|
104
|
+
//# sourceMappingURL=clanker.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clanker.schema.d.ts","sourceRoot":"","sources":["../../../src/schema/clanker.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAW/B,eAAO,MAAM,QAAQ;;;;;;;EAI6C,CAAA;AAwFlE,eAAO,MAAM,MAAM;;;;;;;;;;EAQjB,CAAA;AA6EF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsB4B,CAAA;AAEhE,MAAM,MAAM,2BAA2B,GAAG,OAAO,uBAAuB,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const LevrClankerDeploymentSchema: Schema.filter<Schema.filter<Schema.Struct<{
|
|
3
|
+
metadata: Schema.optional<Schema.Struct<{
|
|
4
|
+
description: Schema.optional<typeof Schema.String>;
|
|
5
|
+
telegramLink: Schema.optional<typeof Schema.String>;
|
|
6
|
+
websiteLink: Schema.optional<typeof Schema.String>;
|
|
7
|
+
xLink: Schema.optional<typeof Schema.String>;
|
|
8
|
+
farcasterLink: Schema.optional<typeof Schema.String>;
|
|
9
|
+
}>>;
|
|
10
|
+
devBuy: Schema.optional<Schema.Literal<["0.1 ETH", "0.5 ETH", "1 ETH"]>>;
|
|
11
|
+
airdrop: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
12
|
+
amount: Schema.SchemaClass<number, number, never>;
|
|
13
|
+
account: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
14
|
+
}>>>;
|
|
15
|
+
treasuryFunding: Schema.Literal<["30%" | "40%" | "50%" | "60%" | "70%" | "80%" | "90%"]>;
|
|
16
|
+
fees: Schema.Union<[Schema.Struct<{
|
|
17
|
+
type: Schema.Literal<["static"]>;
|
|
18
|
+
feeTier: Schema.Literal<["1%" | "2%" | "3%"]>;
|
|
19
|
+
}>, Schema.Struct<{
|
|
20
|
+
type: Schema.Literal<["dynamic 3%"]>;
|
|
21
|
+
}>]>;
|
|
22
|
+
stakingReward: Schema.optional<Schema.Literal<["70%" | "80%" | "90%" | "100%"]>>;
|
|
23
|
+
rewards: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
24
|
+
admin: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
25
|
+
recipient: Schema.Schema<`0x${string}`, `0x${string}`, never>;
|
|
26
|
+
percentage: Schema.SchemaClass<number, number, never>;
|
|
27
|
+
token: Schema.Literal<["Both", "Paired", "Clanker"]>;
|
|
28
|
+
}>>>;
|
|
29
|
+
symbol: Schema.refine<string, typeof Schema.String>;
|
|
30
|
+
name: Schema.refine<string, typeof Schema.String>;
|
|
31
|
+
image: Schema.optional<typeof Schema.String>;
|
|
32
|
+
}>>>;
|
|
33
|
+
export type LevrClankerDeploymentSchemaType = typeof LevrClankerDeploymentSchema.Type;
|
|
34
|
+
//# sourceMappingURL=levr.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"levr.schema.d.ts","sourceRoot":"","sources":["../../../src/schema/levr.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AA2G/B,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+CvC,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,OAAO,2BAA2B,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { TransactionReceipt } from 'viem';
|
|
2
|
+
import type { PoolKey, PopPublicClient, PopWalletClient } from './types';
|
|
3
|
+
export type StakeConfig = {
|
|
4
|
+
wallet: PopWalletClient;
|
|
5
|
+
publicClient: PopPublicClient;
|
|
6
|
+
stakingAddress: `0x${string}`;
|
|
7
|
+
tokenAddress: `0x${string}`;
|
|
8
|
+
tokenDecimals: number;
|
|
9
|
+
trustedForwarder?: `0x${string}`;
|
|
10
|
+
};
|
|
11
|
+
export type UnstakeParams = {
|
|
12
|
+
amount: number | string | bigint;
|
|
13
|
+
to?: `0x${string}`;
|
|
14
|
+
};
|
|
15
|
+
export type ClaimParams = {
|
|
16
|
+
tokens?: `0x${string}`[];
|
|
17
|
+
to?: `0x${string}`;
|
|
18
|
+
};
|
|
19
|
+
export declare class Stake {
|
|
20
|
+
private wallet;
|
|
21
|
+
private publicClient;
|
|
22
|
+
private stakingAddress;
|
|
23
|
+
private tokenAddress;
|
|
24
|
+
private tokenDecimals;
|
|
25
|
+
private chainId;
|
|
26
|
+
private userAddress;
|
|
27
|
+
private trustedForwarder?;
|
|
28
|
+
constructor(config: StakeConfig);
|
|
29
|
+
/**
|
|
30
|
+
* Approve ERC20 tokens for spending by the staking contract
|
|
31
|
+
*/
|
|
32
|
+
approve(amount: number | string | bigint): Promise<TransactionReceipt>;
|
|
33
|
+
/**
|
|
34
|
+
* Stake tokens in the staking contract
|
|
35
|
+
*/
|
|
36
|
+
stake(amount: number | string | bigint): Promise<TransactionReceipt>;
|
|
37
|
+
/**
|
|
38
|
+
* Unstake tokens from the staking contract
|
|
39
|
+
*/
|
|
40
|
+
unstake({ amount, to }: UnstakeParams): Promise<TransactionReceipt>;
|
|
41
|
+
/**
|
|
42
|
+
* Claim rewards from the staking contract
|
|
43
|
+
*/
|
|
44
|
+
claimRewards(params: ClaimParams | void): Promise<TransactionReceipt>;
|
|
45
|
+
/**
|
|
46
|
+
* Get allowance for a token and spender
|
|
47
|
+
*/
|
|
48
|
+
getAllowance(): Promise<{
|
|
49
|
+
raw: bigint;
|
|
50
|
+
formatted: string;
|
|
51
|
+
}>;
|
|
52
|
+
/**
|
|
53
|
+
* Get pool data from staking contract
|
|
54
|
+
*/
|
|
55
|
+
getPoolData(): Promise<{
|
|
56
|
+
totalStaked: {
|
|
57
|
+
raw: bigint;
|
|
58
|
+
formatted: string;
|
|
59
|
+
};
|
|
60
|
+
escrowBalance: {
|
|
61
|
+
raw: bigint;
|
|
62
|
+
formatted: string;
|
|
63
|
+
};
|
|
64
|
+
streamParams: {
|
|
65
|
+
windowSeconds: number;
|
|
66
|
+
streamStart: bigint;
|
|
67
|
+
streamEnd: bigint;
|
|
68
|
+
isActive: boolean;
|
|
69
|
+
};
|
|
70
|
+
rewardRatePerSecond: {
|
|
71
|
+
raw: bigint;
|
|
72
|
+
formatted: string;
|
|
73
|
+
};
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Get user data from staking contract
|
|
77
|
+
*/
|
|
78
|
+
getUserData(): Promise<{
|
|
79
|
+
stakedBalance: {
|
|
80
|
+
raw: bigint;
|
|
81
|
+
formatted: string;
|
|
82
|
+
};
|
|
83
|
+
aprBps: {
|
|
84
|
+
raw: bigint;
|
|
85
|
+
percentage: number;
|
|
86
|
+
};
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Get outstanding rewards for the token (for accrual purposes)
|
|
90
|
+
*/
|
|
91
|
+
getOutstandingRewards(tokenAddress?: `0x${string}`): Promise<{
|
|
92
|
+
available: {
|
|
93
|
+
raw: bigint;
|
|
94
|
+
formatted: string;
|
|
95
|
+
};
|
|
96
|
+
pending: {
|
|
97
|
+
raw: bigint;
|
|
98
|
+
formatted: string;
|
|
99
|
+
};
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Get claimable rewards for the current user and token
|
|
103
|
+
*/
|
|
104
|
+
getClaimableRewards(tokenAddress?: `0x${string}`): Promise<{
|
|
105
|
+
claimable: {
|
|
106
|
+
raw: bigint;
|
|
107
|
+
formatted: string;
|
|
108
|
+
};
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Get reward rate per second for a specific token
|
|
112
|
+
*/
|
|
113
|
+
getRewardRatePerSecond(tokenAddress?: `0x${string}`): Promise<{
|
|
114
|
+
raw: bigint;
|
|
115
|
+
formatted: string;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Accrue rewards by triggering automatic collection from LP locker and claiming from ClankerFeeLocker
|
|
119
|
+
*/
|
|
120
|
+
accrueRewards(tokenAddress?: `0x${string}`): Promise<TransactionReceipt>;
|
|
121
|
+
/**
|
|
122
|
+
* Accrue rewards for multiple tokens in a single transaction using forwarder multicall
|
|
123
|
+
*/
|
|
124
|
+
accrueAllRewards(tokenAddresses: `0x${string}`[]): Promise<TransactionReceipt>;
|
|
125
|
+
/**
|
|
126
|
+
* Calculate WETH APR using pool price and reward rates
|
|
127
|
+
* Formula: (wethRewardRatePerSecond * secondsPerYear * wethPriceInUnderlying / totalStaked) * 10000
|
|
128
|
+
*
|
|
129
|
+
* @param poolKey - The Uniswap V4 pool key for price discovery
|
|
130
|
+
* @returns WETH APR in basis points and percentage
|
|
131
|
+
*/
|
|
132
|
+
calculateWethApr(poolKey: PoolKey): Promise<{
|
|
133
|
+
raw: bigint;
|
|
134
|
+
percentage: number;
|
|
135
|
+
}>;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=stake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stake.d.ts","sourceRoot":"","sources":["../../src/stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { PublicClient, TransactionReceipt, WalletClient } from 'viem';
|
|
2
|
+
import type { PoolKey } from './types';
|
|
3
|
+
export type SwapV4Params = {
|
|
4
|
+
publicClient: PublicClient;
|
|
5
|
+
wallet: WalletClient;
|
|
6
|
+
chainId: number;
|
|
7
|
+
poolKey: PoolKey;
|
|
8
|
+
zeroForOne: boolean;
|
|
9
|
+
amountIn: bigint;
|
|
10
|
+
amountOutMinimum: bigint;
|
|
11
|
+
/**
|
|
12
|
+
* Hook data to pass to the pool's hook contract
|
|
13
|
+
* @remarks
|
|
14
|
+
* - Standard pools: Use '0x' (default)
|
|
15
|
+
* - Clanker pools with extensions: May require specific encoded data for pool extension
|
|
16
|
+
* - Format depends on the specific hook implementation
|
|
17
|
+
*/
|
|
18
|
+
hookData?: `0x${string}`;
|
|
19
|
+
onApproveERC20Success?: (receipt: TransactionReceipt) => void;
|
|
20
|
+
onApproveERC20Error?: (error: unknown) => void;
|
|
21
|
+
onApprovePermit2Success?: (receipt: TransactionReceipt) => void;
|
|
22
|
+
onApprovePermit2Error?: (error: unknown) => void;
|
|
23
|
+
};
|
|
24
|
+
export type SwapV4ReturnType = TransactionReceipt;
|
|
25
|
+
/**
|
|
26
|
+
* @description Execute a Uniswap V4 swap with automatic native ETH handling
|
|
27
|
+
* @param params Swap parameters including pool key and amounts
|
|
28
|
+
* @returns Transaction receipt
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* **Architecture:**
|
|
32
|
+
* - Uses Universal Router with V4Planner for encoding swap actions
|
|
33
|
+
* - Automatically handles native ETH ↔ WETH conversions (users never hold WETH)
|
|
34
|
+
* - ERC20 approvals via Permit2 (only for non-WETH tokens)
|
|
35
|
+
* - 20-minute deadline from current block timestamp
|
|
36
|
+
*
|
|
37
|
+
* **Execution Flow:**
|
|
38
|
+
*
|
|
39
|
+
* 1. **Approvals (ERC20 Tokens Only)**:
|
|
40
|
+
* - Checks token balance and existing allowances via multicall
|
|
41
|
+
* - Token → Permit2: Infinite approval if needed
|
|
42
|
+
* - Permit2 → Router: MAX_UINT160 approval with 30-day expiration
|
|
43
|
+
* - Native ETH swaps skip this step entirely
|
|
44
|
+
*
|
|
45
|
+
* 2. **Action Encoding**:
|
|
46
|
+
* - **RoutePlanner Commands**:
|
|
47
|
+
* - `WRAP_ETH` (if input is WETH): Wraps msg.value to router's WETH balance
|
|
48
|
+
* - `V4_SWAP`: Executes the V4Planner actions (see below)
|
|
49
|
+
* - `UNWRAP_WETH` (if output is WETH): Converts router's WETH to native ETH for user
|
|
50
|
+
*
|
|
51
|
+
* - **V4Planner Actions** (nested in V4_SWAP):
|
|
52
|
+
* - `SWAP_EXACT_IN_SINGLE`: Execute the swap with specified pool and amounts
|
|
53
|
+
* - `SETTLE` or `SETTLE_ALL`: Pay for input tokens
|
|
54
|
+
* - `SETTLE(currency, amount, false)`: Router pays from its balance (for WETH input after WRAP_ETH)
|
|
55
|
+
* - `SETTLE_ALL(currency, amount)`: User pays from their token balance (for ERC20 input)
|
|
56
|
+
* - `TAKE` or `TAKE_ALL`: Receive output tokens
|
|
57
|
+
* - `TAKE(currency, routerAddress, 0)`: Router receives WETH (before UNWRAP_WETH)
|
|
58
|
+
* - `TAKE_ALL(currency, 0)`: User directly receives tokens
|
|
59
|
+
*
|
|
60
|
+
* 3. **Transaction Execution**:
|
|
61
|
+
* - Calls `execute(commands, inputs, deadline)` on Universal Router
|
|
62
|
+
* - Sends msg.value = amountIn for WETH input (native ETH)
|
|
63
|
+
* - Sends msg.value = 0 for ERC20 token input
|
|
64
|
+
* - Waits for receipt and validates success
|
|
65
|
+
*
|
|
66
|
+
* **Native ETH Flows:**
|
|
67
|
+
* - **Buy tokens with ETH** (WETH → Token):
|
|
68
|
+
* - User sends ETH as msg.value
|
|
69
|
+
* - WRAP_ETH wraps it to router's WETH balance
|
|
70
|
+
* - SETTLE pays swap from router's WETH (payerIsUser=false)
|
|
71
|
+
* - TAKE_ALL sends tokens directly to user
|
|
72
|
+
*
|
|
73
|
+
* - **Sell tokens for ETH** (Token → WETH):
|
|
74
|
+
* - SETTLE_ALL pays swap from user's token balance (via Permit2)
|
|
75
|
+
* - TAKE sends WETH to router
|
|
76
|
+
* - UNWRAP_WETH converts router's WETH to native ETH
|
|
77
|
+
* - User receives native ETH (sent to MSG_SENDER)
|
|
78
|
+
*
|
|
79
|
+
* - **Token ↔ Token**: Standard ERC20 flow, no WRAP/UNWRAP needed
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* // Buy tokens with native ETH
|
|
84
|
+
* const receipt = await swapV4({
|
|
85
|
+
* publicClient,
|
|
86
|
+
* wallet,
|
|
87
|
+
* chainId: base.id,
|
|
88
|
+
* poolKey,
|
|
89
|
+
* zeroForOne: true, // WETH → Token
|
|
90
|
+
* amountIn: parseEther('0.01'),
|
|
91
|
+
* amountOutMinimum: parseUnits('100', tokenDecimals),
|
|
92
|
+
* hookData: '0x', // Optional: pool-specific hook data
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare const swapV4: ({ publicClient, wallet, chainId, poolKey, zeroForOne, amountIn, amountOutMinimum, hookData, onApproveERC20Success, onApproveERC20Error, onApprovePermit2Success, onApprovePermit2Error, }: SwapV4Params) => Promise<SwapV4ReturnType>;
|
|
97
|
+
//# sourceMappingURL=swap-v4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-v4.d.ts","sourceRoot":"","sources":["../../src/swap-v4.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAY1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;IAGxB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC7D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC/D,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAcjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,eAAO,MAAM,MAAM,GAAU,2LAa1B,YAAY,KAAG,OAAO,CAAC,gBAAgB,CAkNzC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Account, Chain, PublicClient, Transport, WalletClient } from 'viem';
|
|
2
|
+
export type PopWalletClient = WalletClient<Transport, Chain, Account>;
|
|
3
|
+
export type PopPublicClient = PublicClient<Transport, Chain>;
|
|
4
|
+
/**
|
|
5
|
+
* @description Uniswap V4 Pool Key structure
|
|
6
|
+
*/
|
|
7
|
+
export type PoolKey = {
|
|
8
|
+
currency0: `0x${string}`;
|
|
9
|
+
currency1: `0x${string}`;
|
|
10
|
+
fee: number;
|
|
11
|
+
tickSpacing: number;
|
|
12
|
+
hooks: `0x${string}`;
|
|
13
|
+
};
|
|
14
|
+
export type CallData = {
|
|
15
|
+
target: `0x${string}`;
|
|
16
|
+
allowFailure: boolean;
|
|
17
|
+
value: bigint;
|
|
18
|
+
callData: `0x${string}`;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AACrE,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAE5D;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;CACxB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAC1C,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EACxC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAiBT"}
|
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "levr-sdk",
|
|
3
|
+
"description": "Leverage your Clanker launch with DAO capabilities",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/esm/index.js",
|
|
10
|
+
"types": "./dist/types/index.d.ts"
|
|
11
|
+
},
|
|
12
|
+
"./client": {
|
|
13
|
+
"import": "./dist/esm/client/index.js",
|
|
14
|
+
"types": "./dist/types/client/index.d.ts"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"devnet": "bash script/devnet.sh",
|
|
22
|
+
"devnet:redeploy": "bash script/devnet.sh --redeploy",
|
|
23
|
+
"update-abis": "bun run script/update-abis.ts && prettier --write src/abis/**/*.ts",
|
|
24
|
+
"watch": "bun run script/tsgo-watch.ts",
|
|
25
|
+
"type-check": "tsgo --noEmit --pretty",
|
|
26
|
+
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"",
|
|
27
|
+
"lint": "eslint",
|
|
28
|
+
"fill-placeholders": "sh ./script/fill-placeholders.sh",
|
|
29
|
+
"warp": "bun -e \"import { warpAnvil } from './test/util.ts'; await warpAnvil(120)\"",
|
|
30
|
+
"build": "bun build:esm && bun build:types && bun build:cleanup",
|
|
31
|
+
"build:esm": "tsc --project ./tsconfig.esm.json && tsc-alias --outDir ./dist/esm && ts-add-js-extension --dir=dist/esm --showprogress=false",
|
|
32
|
+
"build:types": "tsc --project ./tsconfig.types.json && tsc-alias --outDir ./dist/types",
|
|
33
|
+
"build:cleanup": "rm -f dist/types/abis/*.d.ts.map dist/esm/abis/*.js.map && find dist/esm/abis -name '*.js' -type f -exec sed -i.bak '/^\\/\\/# sourceMappingURL=/d' {} + && find dist/types/abis -name '*.d.ts' -type f -exec sed -i.bak '/^\\/\\/# sourceMappingURL=/d' {} + && find dist -name '*.bak' -type f -delete",
|
|
34
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo node_modules bun.lockb",
|
|
35
|
+
"postinstall": "husky || true",
|
|
36
|
+
"prepack": "pinst --disable",
|
|
37
|
+
"package": "bun run build && npm pack",
|
|
38
|
+
"postpack": "pinst --enable",
|
|
39
|
+
"release": "standard-version -a",
|
|
40
|
+
"release:alpha": "standard-version -a --prerelease alpha --skip.changelog",
|
|
41
|
+
"release:beta": "standard-version -a --prerelease beta --skip.changelog",
|
|
42
|
+
"release:pub": "git push --follow-tags origin $(git rev-parse --abbrev-ref HEAD)"
|
|
43
|
+
},
|
|
44
|
+
"lint-staged": {
|
|
45
|
+
"*.{ts,tsx,js,jsx,mjs,cjs,json,md,css}": [
|
|
46
|
+
"eslint --fix",
|
|
47
|
+
"prettier --write"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"resolutions": {
|
|
51
|
+
"eslint": "^9.17.0",
|
|
52
|
+
"typescript": "^5.8.0"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"@tanstack/react-query": "^5.90.2",
|
|
56
|
+
"react": "^19.2.0",
|
|
57
|
+
"viem": "^2.37.11",
|
|
58
|
+
"wagmi": "^2.17.5"
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@uniswap/sdk-core": "^7.7.2",
|
|
62
|
+
"@uniswap/universal-router-sdk": "^4.19.7",
|
|
63
|
+
"@uniswap/v4-sdk": "^1.21.4",
|
|
64
|
+
"clanker-sdk": "^4.1.23",
|
|
65
|
+
"debug": "^4.4.1",
|
|
66
|
+
"effect": "^3.18.1",
|
|
67
|
+
"type-fest-4": "npm:type-fest@latest"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@commitlint/cli": "^19.8.1",
|
|
71
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
72
|
+
"@types/bun": "^1.2.22",
|
|
73
|
+
"@types/debug": "^4.1.12",
|
|
74
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
75
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
76
|
+
"husky": "^9.1.7",
|
|
77
|
+
"lint-staged": "^15.5.2",
|
|
78
|
+
"pinst": "^3.0.0",
|
|
79
|
+
"prettier": "^3.6.2",
|
|
80
|
+
"prettier-plugin-sh": "0.17.4",
|
|
81
|
+
"standard-version": "^9.5.0",
|
|
82
|
+
"ts-add-js-extension": "^1.6.6",
|
|
83
|
+
"tsc-alias": "^1.8.16",
|
|
84
|
+
"tsc-files": "^1.1.4",
|
|
85
|
+
"typescript-eslint": "^8.44.0"
|
|
86
|
+
},
|
|
87
|
+
"homepage": "https://github.com/quantidexyz/levr-sdk",
|
|
88
|
+
"repository": "quantidexyz/levr-sdk",
|
|
89
|
+
"authors": [
|
|
90
|
+
"quantidexyz"
|
|
91
|
+
],
|
|
92
|
+
"keywords": [
|
|
93
|
+
"npm",
|
|
94
|
+
"contracts",
|
|
95
|
+
"web3",
|
|
96
|
+
"ethereum",
|
|
97
|
+
"solidity",
|
|
98
|
+
"evm"
|
|
99
|
+
]
|
|
100
|
+
}
|