curvance 4.0.4 → 4.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.
Files changed (125) hide show
  1. package/README.md +595 -59
  2. package/dist/chains/arb-sepolia.json +44 -0
  3. package/dist/chains/arbitrum.d.ts.map +1 -1
  4. package/dist/chains/arbitrum.js +4 -2
  5. package/dist/chains/arbitrum.js.map +1 -1
  6. package/dist/chains/index.d.ts +4 -0
  7. package/dist/chains/index.d.ts.map +1 -1
  8. package/dist/chains/index.js +15 -0
  9. package/dist/chains/index.js.map +1 -1
  10. package/dist/chains/monad-mainnet.json +26 -1
  11. package/dist/chains/monad.d.ts.map +1 -1
  12. package/dist/chains/monad.js +4 -2
  13. package/dist/chains/monad.js.map +1 -1
  14. package/dist/chains/rpc.d.ts +57 -0
  15. package/dist/chains/rpc.d.ts.map +1 -0
  16. package/dist/chains/rpc.js +47 -0
  17. package/dist/chains/rpc.js.map +1 -0
  18. package/dist/classes/Api.d.ts +4 -3
  19. package/dist/classes/Api.d.ts.map +1 -1
  20. package/dist/classes/Api.js +7 -7
  21. package/dist/classes/Api.js.map +1 -1
  22. package/dist/classes/BorrowableCToken.d.ts +3 -2
  23. package/dist/classes/BorrowableCToken.d.ts.map +1 -1
  24. package/dist/classes/BorrowableCToken.js +6 -5
  25. package/dist/classes/BorrowableCToken.js.map +1 -1
  26. package/dist/classes/CToken.d.ts +11 -3
  27. package/dist/classes/CToken.d.ts.map +1 -1
  28. package/dist/classes/CToken.js +85 -79
  29. package/dist/classes/CToken.js.map +1 -1
  30. package/dist/classes/Calldata.d.ts +2 -2
  31. package/dist/classes/Calldata.d.ts.map +1 -1
  32. package/dist/classes/Calldata.js +2 -2
  33. package/dist/classes/Calldata.js.map +1 -1
  34. package/dist/classes/DexAggregators/IDexAgg.d.ts +2 -2
  35. package/dist/classes/DexAggregators/IDexAgg.d.ts.map +1 -1
  36. package/dist/classes/DexAggregators/Kuru.d.ts +2 -2
  37. package/dist/classes/DexAggregators/Kuru.d.ts.map +1 -1
  38. package/dist/classes/DexAggregators/Kuru.js +3 -4
  39. package/dist/classes/DexAggregators/Kuru.js.map +1 -1
  40. package/dist/classes/DexAggregators/KuruMainnet.d.ts +1 -0
  41. package/dist/classes/DexAggregators/KuruMainnet.d.ts.map +1 -0
  42. package/dist/classes/DexAggregators/KuruMainnet.js +228 -0
  43. package/dist/classes/DexAggregators/KuruMainnet.js.map +1 -0
  44. package/dist/classes/DexAggregators/KyberSwap.d.ts +2 -2
  45. package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
  46. package/dist/classes/DexAggregators/KyberSwap.js +10 -8
  47. package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
  48. package/dist/classes/DexAggregators/MultiDexAgg.d.ts +2 -2
  49. package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
  50. package/dist/classes/DexAggregators/MultiDexAgg.js +3 -3
  51. package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
  52. package/dist/classes/ERC20.d.ts +5 -3
  53. package/dist/classes/ERC20.d.ts.map +1 -1
  54. package/dist/classes/ERC20.js +20 -14
  55. package/dist/classes/ERC20.js.map +1 -1
  56. package/dist/classes/ERC4626.d.ts.map +1 -1
  57. package/dist/classes/ERC4626.js +3 -1
  58. package/dist/classes/ERC4626.js.map +1 -1
  59. package/dist/classes/Kuru.d.ts +59 -0
  60. package/dist/classes/Kuru.d.ts.map +1 -0
  61. package/dist/classes/Kuru.js +167 -0
  62. package/dist/classes/Kuru.js.map +1 -0
  63. package/dist/classes/KuruMainnet.d.ts +59 -0
  64. package/dist/classes/KuruMainnet.d.ts.map +1 -0
  65. package/dist/classes/KuruMainnet.js +167 -0
  66. package/dist/classes/KuruMainnet.js.map +1 -0
  67. package/dist/classes/Market.d.ts +13 -4
  68. package/dist/classes/Market.d.ts.map +1 -1
  69. package/dist/classes/Market.js +86 -28
  70. package/dist/classes/Market.js.map +1 -1
  71. package/dist/classes/NativeToken.d.ts +6 -3
  72. package/dist/classes/NativeToken.d.ts.map +1 -1
  73. package/dist/classes/NativeToken.js +11 -16
  74. package/dist/classes/NativeToken.js.map +1 -1
  75. package/dist/classes/OptimizerReader.d.ts +3 -3
  76. package/dist/classes/OptimizerReader.d.ts.map +1 -1
  77. package/dist/classes/OptimizerReader.js +1 -1
  78. package/dist/classes/OptimizerReader.js.map +1 -1
  79. package/dist/classes/OracleManager.d.ts +3 -3
  80. package/dist/classes/OracleManager.d.ts.map +1 -1
  81. package/dist/classes/OracleManager.js +1 -1
  82. package/dist/classes/OracleManager.js.map +1 -1
  83. package/dist/classes/PositionManager.d.ts +2 -2
  84. package/dist/classes/PositionManager.d.ts.map +1 -1
  85. package/dist/classes/PositionManager.js +4 -4
  86. package/dist/classes/PositionManager.js.map +1 -1
  87. package/dist/classes/ProtocolReader.d.ts +18 -4
  88. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  89. package/dist/classes/ProtocolReader.js +177 -55
  90. package/dist/classes/ProtocolReader.js.map +1 -1
  91. package/dist/classes/Redstone.d.ts.map +1 -1
  92. package/dist/classes/Redstone.js +1 -2
  93. package/dist/classes/Redstone.js.map +1 -1
  94. package/dist/classes/Zapper.d.ts +4 -2
  95. package/dist/classes/Zapper.d.ts.map +1 -1
  96. package/dist/classes/Zapper.js +14 -13
  97. package/dist/classes/Zapper.js.map +1 -1
  98. package/dist/classes/index.d.ts +1 -1
  99. package/dist/classes/index.d.ts.map +1 -1
  100. package/dist/classes/index.js +6 -1
  101. package/dist/classes/index.js.map +1 -1
  102. package/dist/contracts/monad-mainnet.json +1 -1
  103. package/dist/helpers.d.ts +3 -1
  104. package/dist/helpers.d.ts.map +1 -1
  105. package/dist/helpers.js +34 -4
  106. package/dist/helpers.js.map +1 -1
  107. package/dist/integrations/snapshot.d.ts.map +1 -1
  108. package/dist/integrations/snapshot.js +4 -18
  109. package/dist/integrations/snapshot.js.map +1 -1
  110. package/dist/retry-provider.d.ts +81 -6
  111. package/dist/retry-provider.d.ts.map +1 -1
  112. package/dist/retry-provider.js +489 -35
  113. package/dist/retry-provider.js.map +1 -1
  114. package/dist/setup.d.ts +14 -3
  115. package/dist/setup.d.ts.map +1 -1
  116. package/dist/setup.js +56 -20
  117. package/dist/setup.js.map +1 -1
  118. package/dist/snapshot.d.ts +53 -0
  119. package/dist/snapshot.d.ts.map +1 -0
  120. package/dist/snapshot.js +103 -0
  121. package/dist/snapshot.js.map +1 -0
  122. package/dist/types.d.ts +2 -1
  123. package/dist/types.d.ts.map +1 -1
  124. package/dist/types.js.map +1 -1
  125. package/package.json +3 -1
@@ -0,0 +1,59 @@
1
+ import Decimal from "decimal.js";
2
+ import { address, curvance_provider } from "../types";
3
+ import { ZapToken } from "./CToken";
4
+ import { Swap } from "./Zapper";
5
+ export default class Kuru {
6
+ api: string;
7
+ static router: address;
8
+ jwt: string | null;
9
+ rps: number;
10
+ dao: address;
11
+ loadJWT(wallet: string): Promise<void>;
12
+ rateLimitSleep(wallet: string): Promise<void>;
13
+ static getAvailableTokens(provider: curvance_provider, query?: string | null): Promise<ZapToken[]>;
14
+ static getCurrentTime(): number;
15
+ static quoteAction(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<{
16
+ action: Swap;
17
+ quote: {
18
+ max_slippage: Decimal;
19
+ type: string;
20
+ status: string;
21
+ output: string;
22
+ minOut: string;
23
+ transaction: {
24
+ calldata: string;
25
+ value: string;
26
+ to: string;
27
+ };
28
+ gasPrices: {
29
+ slow: string;
30
+ standard: string;
31
+ fast: string;
32
+ rapid: string;
33
+ extreme: string;
34
+ };
35
+ };
36
+ }>;
37
+ static quoteMin(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<string>;
38
+ static quote(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<{
39
+ max_slippage: Decimal;
40
+ type: string;
41
+ status: string;
42
+ output: string;
43
+ minOut: string;
44
+ transaction: {
45
+ calldata: string;
46
+ value: string;
47
+ to: string;
48
+ };
49
+ gasPrices: {
50
+ slow: string;
51
+ standard: string;
52
+ fast: string;
53
+ rapid: string;
54
+ extreme: string;
55
+ };
56
+ }>;
57
+ static getSlippage(output: bigint, min_output: bigint): Decimal;
58
+ }
59
+ //# sourceMappingURL=Kuru.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kuru.d.ts","sourceRoot":"","sources":["../../src/classes/Kuru.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAc,MAAM,UAAU,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAiChC,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,GAAG,SAAmC;IACtC,MAAM,CAAC,MAAM,EAAmD,OAAO,CAAC;IACxE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,GAAG,SAAK;IACR,GAAG,EAAmD,OAAO,CAAC;IAExD,OAAO,CAAC,MAAM,EAAE,MAAM;IAoCtB,cAAc,CAAC,MAAM,EAAE,MAAM;WAatB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IAoFxF,MAAM,CAAC,cAAc;WAIR,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;;;;kBArK7H,MAAM;oBACJ,MAAM;oBACN,MAAM;oBACN,MAAM;yBACD;gBACT,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,EAAE,EAAE,MAAM,CAAC;aACd;uBACU;gBACP,IAAI,EAAE,MAAM,CAAC;gBACb,QAAQ,EAAE,MAAM,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC;aACnB;;;WAoKY,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;WAKnH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;;cAxLvH,MAAM;gBACJ,MAAM;gBACN,MAAM;gBACN,MAAM;qBACD;YACT,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;SACd;mBACU;YACP,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACnB;;IA4ND,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKxD"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const decimal_js_1 = __importDefault(require("decimal.js"));
7
+ const ERC20_1 = require("./ERC20");
8
+ const helpers_1 = require("../helpers");
9
+ const cached_jwt = new Map();
10
+ const cached_requests = new Map();
11
+ class Kuru {
12
+ api = "https://ws.staging.kuru.io/api";
13
+ static router = "0x96eaC98928437496DdD0Cd2080E54Fe78BaC99b6"; // KuruFlowEntrypoint
14
+ jwt = null;
15
+ rps = 1;
16
+ dao = "0x0Acb7eF4D8733C719d60e0992B489b629bc55C02";
17
+ async loadJWT(wallet) {
18
+ if (cached_jwt.has(wallet)) {
19
+ const cached = cached_jwt.get(wallet);
20
+ const currentTime = Kuru.getCurrentTime();
21
+ if (cached.expires_at > currentTime) {
22
+ this.jwt = cached.token;
23
+ this.rps = cached.rate_limit.rps;
24
+ return;
25
+ }
26
+ else {
27
+ cached_jwt.delete(wallet);
28
+ }
29
+ }
30
+ const resp = await fetch(`${this.api}/generate-token`, {
31
+ method: "POST",
32
+ headers: {
33
+ "Content-Type": "application/json",
34
+ },
35
+ body: JSON.stringify({
36
+ user_address: wallet,
37
+ }),
38
+ keepalive: true
39
+ });
40
+ if (!resp.ok) {
41
+ throw new Error(`Failed to fetch JWT: ${resp.status} ${resp.statusText}`);
42
+ }
43
+ const data = await resp.json();
44
+ this.jwt = data.token;
45
+ this.rps = data.rate_limit.rps;
46
+ cached_jwt.set(wallet, data);
47
+ }
48
+ async rateLimitSleep(wallet) {
49
+ const now = Kuru.getCurrentTime();
50
+ const requests = cached_requests.get(wallet) || [];
51
+ const windowStart = now - 2;
52
+ const recentRequests = requests.filter(timestamp => timestamp > windowStart);
53
+ if (recentRequests.length >= this.rps) {
54
+ const earliestRequest = Math.min(...recentRequests);
55
+ const sleepTime = (earliestRequest + 2) - now;
56
+ await new Promise(resolve => setTimeout(resolve, sleepTime * 2000));
57
+ }
58
+ }
59
+ static async getAvailableTokens(provider, query = null) {
60
+ const signer = (0, helpers_1.validateProviderAsSigner)(provider);
61
+ const userAddress = signer.address;
62
+ let endpoint = `https://api.kuru.io/api/v2/tokens/search?limit=20&userAddress=${userAddress}`;
63
+ if (query) {
64
+ endpoint += `&q=${encodeURIComponent(query)}`;
65
+ }
66
+ const resp = await fetch(endpoint, {
67
+ method: "GET",
68
+ headers: {
69
+ "Content-Type": "application/json",
70
+ }
71
+ });
72
+ if (!resp.ok) {
73
+ throw new Error(`Failed to fetch available tokens: ${resp.status} ${resp.statusText}`);
74
+ }
75
+ const list = await resp.json();
76
+ let tokens = [];
77
+ for (const token of list.data.data) {
78
+ const erc20 = new ERC20_1.ERC20(provider, token.address, {
79
+ address: token.address,
80
+ name: token.name,
81
+ symbol: token.ticker,
82
+ decimals: BigInt(token.decimals ?? 18),
83
+ totalSupply: BigInt(token.total_supply ?? 0),
84
+ balance: BigInt(token.balance ?? 0),
85
+ image: token.imageurl,
86
+ price: (0, decimal_js_1.default)(token.last_price).div(helpers_1.WAD)
87
+ });
88
+ tokens.push({
89
+ interface: erc20,
90
+ type: 'simple',
91
+ quote: async (tokenIn, tokenOut, amount, slippageTolerance = null) => {
92
+ const raw_amount = (0, helpers_1.toBigInt)(amount, 18n);
93
+ const data = await Kuru.quote(signer.address, tokenIn, tokenOut, raw_amount.toString(), slippageTolerance);
94
+ return {
95
+ output: (0, helpers_1.toDecimal)(BigInt(data.output ?? 0), BigInt(token.decimals ?? 18)),
96
+ minOut: (0, helpers_1.toDecimal)(BigInt(data.minOut ?? 0), BigInt(token.decimals ?? 18)),
97
+ max_slippage: data.max_slippage
98
+ };
99
+ }
100
+ });
101
+ }
102
+ return tokens;
103
+ }
104
+ // Get current time in seconds
105
+ static getCurrentTime() {
106
+ return Math.floor(Date.now() / 1000);
107
+ }
108
+ static async quoteAction(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
109
+ const quote = await Kuru.quote(wallet, tokenIn, tokenOut, amount, slippageTolerance);
110
+ const action = {
111
+ inputToken: tokenIn,
112
+ inputAmount: BigInt(amount),
113
+ outputToken: tokenOut,
114
+ target: quote.transaction.to,
115
+ slippage: slippageTolerance ?? 0n,
116
+ call: `0x${quote.transaction.calldata}`
117
+ };
118
+ return { action, quote };
119
+ }
120
+ static async quoteMin(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
121
+ const quote = await Kuru.quote(wallet, tokenIn, tokenOut, amount, slippageTolerance);
122
+ return quote.minOut;
123
+ }
124
+ static async quote(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
125
+ const kuru = new this();
126
+ await kuru.loadJWT(wallet);
127
+ await kuru.rateLimitSleep(wallet);
128
+ const payload = {
129
+ userAddress: wallet,
130
+ tokenIn: tokenIn,
131
+ tokenOut: tokenOut,
132
+ amount: amount,
133
+ referrerAddress: kuru.dao,
134
+ referrerFeeBps: 10,
135
+ };
136
+ if (!slippageTolerance) {
137
+ payload.autoSlippage = true;
138
+ }
139
+ else {
140
+ payload.slippage_tolerance = Number(slippageTolerance);
141
+ }
142
+ cached_requests.set(wallet, (cached_requests.get(wallet) || []).concat(Kuru.getCurrentTime()));
143
+ const resp = await fetch(`${kuru.api}/quote`, {
144
+ method: "POST",
145
+ headers: {
146
+ "Content-Type": "application/json",
147
+ "Authorization": `Bearer ${kuru.jwt}`
148
+ },
149
+ body: JSON.stringify(payload),
150
+ });
151
+ if (!resp.ok) {
152
+ throw new Error(`Failed to fetch quote: ${resp.status} ${resp.statusText}`);
153
+ }
154
+ const data = await resp.json();
155
+ return {
156
+ ...data,
157
+ max_slippage: Kuru.getSlippage(BigInt(data.output ?? 0), BigInt(data.minOut ?? 0))
158
+ };
159
+ }
160
+ static getSlippage(output, min_output) {
161
+ const diff = output - min_output;
162
+ const decimal = (0, decimal_js_1.default)(diff).div(output).mul(100);
163
+ return decimal ?? (0, decimal_js_1.default)(100);
164
+ }
165
+ }
166
+ exports.default = Kuru;
167
+ //# sourceMappingURL=Kuru.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kuru.js","sourceRoot":"","sources":["../../src/classes/Kuru.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import Decimal from "decimal.js";
2
+ import { address, curvance_provider } from "../types";
3
+ import { ZapToken } from "./CToken";
4
+ import { Swap } from "./Zapper";
5
+ export default class KuruMainnet {
6
+ static api: string;
7
+ static router: address;
8
+ jwt: string | null;
9
+ rps: number;
10
+ dao: address;
11
+ loadJWT(wallet: string): Promise<void>;
12
+ rateLimitSleep(wallet: string): Promise<void>;
13
+ static getAvailableTokens(provider: curvance_provider, query?: string | null): Promise<ZapToken[]>;
14
+ static getCurrentTime(): number;
15
+ static quoteAction(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<{
16
+ action: Swap;
17
+ quote: {
18
+ max_slippage: Decimal;
19
+ type: string;
20
+ status: string;
21
+ output: string;
22
+ minOut: string;
23
+ transaction: {
24
+ calldata: string;
25
+ value: string;
26
+ to: string;
27
+ };
28
+ gasPrices: {
29
+ slow: string;
30
+ standard: string;
31
+ fast: string;
32
+ rapid: string;
33
+ extreme: string;
34
+ };
35
+ };
36
+ }>;
37
+ static quoteMin(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<string>;
38
+ static quote(wallet: string, tokenIn: string, tokenOut: string, amount: string, slippageTolerance?: bigint | null): Promise<{
39
+ max_slippage: Decimal;
40
+ type: string;
41
+ status: string;
42
+ output: string;
43
+ minOut: string;
44
+ transaction: {
45
+ calldata: string;
46
+ value: string;
47
+ to: string;
48
+ };
49
+ gasPrices: {
50
+ slow: string;
51
+ standard: string;
52
+ fast: string;
53
+ rapid: string;
54
+ extreme: string;
55
+ };
56
+ }>;
57
+ static getSlippage(output: bigint, min_output: bigint): Decimal;
58
+ }
59
+ //# sourceMappingURL=KuruMainnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KuruMainnet.d.ts","sourceRoot":"","sources":["../../src/classes/KuruMainnet.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAc,MAAM,UAAU,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAiChC,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,GAAG,SAA2B;IACrC,MAAM,CAAC,MAAM,EAAmD,OAAO,CAAC;IACxE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,GAAG,SAAK;IACR,GAAG,EAAmD,OAAO,CAAC;IAExD,OAAO,CAAC,MAAM,EAAE,MAAM;IAoCtB,cAAc,CAAC,MAAM,EAAE,MAAM;WAatB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IAoFxF,MAAM,CAAC,cAAc;WAIR,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;;;;kBArK7H,MAAM;oBACJ,MAAM;oBACN,MAAM;oBACN,MAAM;yBACD;gBACT,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,EAAE,EAAE,MAAM,CAAC;aACd;uBACU;gBACP,IAAI,EAAE,MAAM,CAAC;gBACb,QAAQ,EAAE,MAAM,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC;aACnB;;;WAoKY,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;WAKnH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;;cAxLvH,MAAM;gBACJ,MAAM;gBACN,MAAM;gBACN,MAAM;qBACD;YACT,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;SACd;mBACU;YACP,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACnB;;IA4ND,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKxD"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const decimal_js_1 = __importDefault(require("decimal.js"));
7
+ const ERC20_1 = require("./ERC20");
8
+ const helpers_1 = require("../helpers");
9
+ const cached_jwt = new Map();
10
+ const cached_requests = new Map();
11
+ class KuruMainnet {
12
+ static api = "https://ws.kuru.io/api";
13
+ static router = "0xb3e6778480b2E488385E8205eA05E20060B813cb"; // KuruFlowEntrypoint
14
+ jwt = null;
15
+ rps = 1;
16
+ dao = "0x0Acb7eF4D8733C719d60e0992B489b629bc55C02";
17
+ async loadJWT(wallet) {
18
+ if (cached_jwt.has(wallet)) {
19
+ const cached = cached_jwt.get(wallet);
20
+ const currentTime = KuruMainnet.getCurrentTime();
21
+ if (cached.expires_at > currentTime) {
22
+ this.jwt = cached.token;
23
+ this.rps = cached.rate_limit.rps;
24
+ return;
25
+ }
26
+ else {
27
+ cached_jwt.delete(wallet);
28
+ }
29
+ }
30
+ const resp = await fetch(`${KuruMainnet.api}/generate-token`, {
31
+ method: "POST",
32
+ headers: {
33
+ "Content-Type": "application/json",
34
+ },
35
+ body: JSON.stringify({
36
+ user_address: wallet,
37
+ }),
38
+ keepalive: true
39
+ });
40
+ if (!resp.ok) {
41
+ throw new Error(`Failed to fetch JWT: ${resp.status} ${resp.statusText}`);
42
+ }
43
+ const data = await resp.json();
44
+ this.jwt = data.token;
45
+ this.rps = data.rate_limit.rps;
46
+ cached_jwt.set(wallet, data);
47
+ }
48
+ async rateLimitSleep(wallet) {
49
+ const now = KuruMainnet.getCurrentTime();
50
+ const requests = cached_requests.get(wallet) || [];
51
+ const windowStart = now - 2;
52
+ const recentRequests = requests.filter(timestamp => timestamp > windowStart);
53
+ if (recentRequests.length >= this.rps) {
54
+ const earliestRequest = Math.min(...recentRequests);
55
+ const sleepTime = (earliestRequest + 2) - now;
56
+ await new Promise(resolve => setTimeout(resolve, sleepTime * 2000));
57
+ }
58
+ }
59
+ static async getAvailableTokens(provider, query = null) {
60
+ const signer = (0, helpers_1.validateProviderAsSigner)(provider);
61
+ const userAddress = signer.address;
62
+ let endpoint = `https://api.kuru.io/api/v2/tokens/search?limit=20&userAddress=${userAddress}`;
63
+ if (query) {
64
+ endpoint += `&q=${encodeURIComponent(query)}`;
65
+ }
66
+ const resp = await fetch(endpoint, {
67
+ method: "GET",
68
+ headers: {
69
+ "Content-Type": "application/json",
70
+ }
71
+ });
72
+ if (!resp.ok) {
73
+ throw new Error(`Failed to fetch available tokens: ${resp.status} ${resp.statusText}`);
74
+ }
75
+ const list = await resp.json();
76
+ let tokens = [];
77
+ for (const token of list.data.data) {
78
+ const erc20 = new ERC20_1.ERC20(provider, token.address, {
79
+ address: token.address,
80
+ name: token.name,
81
+ symbol: token.ticker,
82
+ decimals: BigInt(token.decimals ?? 18),
83
+ totalSupply: BigInt(token.total_supply ?? 0),
84
+ balance: BigInt(token.balance ?? 0),
85
+ image: token.imageurl,
86
+ price: (0, decimal_js_1.default)(token.last_price).div(helpers_1.WAD)
87
+ });
88
+ tokens.push({
89
+ interface: erc20,
90
+ type: 'simple',
91
+ quote: async (tokenIn, tokenOut, amount, slippageTolerance = null) => {
92
+ const raw_amount = (0, helpers_1.toBigInt)(amount, 18n);
93
+ const data = await KuruMainnet.quote(signer.address, tokenIn, tokenOut, raw_amount.toString(), slippageTolerance);
94
+ return {
95
+ output: (0, helpers_1.toDecimal)(BigInt(data.output ?? 0), BigInt(token.decimals ?? 18)),
96
+ minOut: (0, helpers_1.toDecimal)(BigInt(data.minOut ?? 0), BigInt(token.decimals ?? 18)),
97
+ max_slippage: data.max_slippage
98
+ };
99
+ }
100
+ });
101
+ }
102
+ return tokens;
103
+ }
104
+ // Get current time in seconds
105
+ static getCurrentTime() {
106
+ return Math.floor(Date.now() / 1000);
107
+ }
108
+ static async quoteAction(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
109
+ const quote = await KuruMainnet.quote(wallet, tokenIn, tokenOut, amount, slippageTolerance);
110
+ const action = {
111
+ inputToken: tokenIn,
112
+ inputAmount: BigInt(amount),
113
+ outputToken: tokenOut,
114
+ target: quote.transaction.to,
115
+ slippage: slippageTolerance ?? 0n,
116
+ call: `0x${quote.transaction.calldata}`
117
+ };
118
+ return { action, quote };
119
+ }
120
+ static async quoteMin(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
121
+ const quote = await KuruMainnet.quote(wallet, tokenIn, tokenOut, amount, slippageTolerance);
122
+ return quote.minOut;
123
+ }
124
+ static async quote(wallet, tokenIn, tokenOut, amount, slippageTolerance = null) {
125
+ const kuru = new this();
126
+ await kuru.loadJWT(wallet);
127
+ await kuru.rateLimitSleep(wallet);
128
+ const payload = {
129
+ userAddress: wallet,
130
+ tokenIn: tokenIn,
131
+ tokenOut: tokenOut,
132
+ amount: amount,
133
+ referrerAddress: kuru.dao,
134
+ referrerFeeBps: 10,
135
+ };
136
+ if (!slippageTolerance) {
137
+ payload.autoSlippage = true;
138
+ }
139
+ else {
140
+ payload.slippage_tolerance = Number(slippageTolerance);
141
+ }
142
+ cached_requests.set(wallet, (cached_requests.get(wallet) || []).concat(KuruMainnet.getCurrentTime()));
143
+ const resp = await fetch(`${KuruMainnet.api}/quote`, {
144
+ method: "POST",
145
+ headers: {
146
+ "Content-Type": "application/json",
147
+ "Authorization": `Bearer ${kuru.jwt}`
148
+ },
149
+ body: JSON.stringify(payload),
150
+ });
151
+ if (!resp.ok) {
152
+ throw new Error(`Failed to fetch quote: ${resp.status} ${resp.statusText}`);
153
+ }
154
+ const data = await resp.json();
155
+ return {
156
+ ...data,
157
+ max_slippage: KuruMainnet.getSlippage(BigInt(data.output ?? 0), BigInt(data.minOut ?? 0))
158
+ };
159
+ }
160
+ static getSlippage(output, min_output) {
161
+ const diff = output - min_output;
162
+ const decimal = (0, decimal_js_1.default)(diff).div(output).mul(100);
163
+ return decimal ?? (0, decimal_js_1.default)(100);
164
+ }
165
+ }
166
+ exports.default = KuruMainnet;
167
+ //# sourceMappingURL=KuruMainnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KuruMainnet.js","sourceRoot":"","sources":["../../src/classes/KuruMainnet.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { Contract } from "ethers";
3
3
  import { DynamicMarketData, ProtocolReader, StaticMarketData, UserMarket } from "./ProtocolReader";
4
4
  import { AccountSnapshot, CToken } from "./CToken";
5
5
  import { Decimal } from "decimal.js";
6
- import { address, curvance_provider, Percentage, TokenInput, USD } from "../types";
6
+ import { address, curvance_read_provider, curvance_signer, Percentage, TokenInput, USD } from "../types";
7
7
  import { OracleManager } from "./OracleManager";
8
+ import { type SetupConfigSnapshot } from "../setup";
8
9
  import { BorrowableCToken } from "./BorrowableCToken";
9
10
  import { IncentiveResponse, Incentives, MilestoneResponse, Milestones } from "./Api";
10
11
  export type MarketToken = CToken | BorrowableCToken;
@@ -46,12 +47,15 @@ export interface IMarket {
46
47
  statusOf(account: address): Promise<StatusOf>;
47
48
  }
48
49
  export declare class Market {
49
- provider: curvance_provider;
50
+ provider: curvance_read_provider;
51
+ signer: curvance_signer | null;
52
+ account: address | null;
50
53
  address: address;
51
54
  contract: Contract & IMarket;
52
55
  tokens: (CToken | BorrowableCToken)[];
53
56
  oracle_manager: OracleManager;
54
57
  reader: ProtocolReader;
58
+ setup: SetupConfigSnapshot;
55
59
  cache: {
56
60
  static: StaticMarketData;
57
61
  dynamic: DynamicMarketData;
@@ -60,7 +64,8 @@ export declare class Market {
60
64
  };
61
65
  milestone: MilestoneResponse | null;
62
66
  incentives: Array<IncentiveResponse>;
63
- constructor(provider: curvance_provider, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, deploy_data: DeployData, oracle_manager: OracleManager, reader: ProtocolReader);
67
+ constructor(provider: curvance_read_provider, signer: curvance_signer | null, account: address | null, static_data: StaticMarketData, dynamic_data: DynamicMarketData, user_data: UserMarket, deploy_data: DeployData, oracle_manager: OracleManager, reader: ProtocolReader, setup: SetupConfigSnapshot);
68
+ private getAccountOrThrow;
64
69
  /** @returns {string} - The name of the market at deployment. */
65
70
  get name(): string;
66
71
  /** @returns {Plugins} - The address of the market's plugins by deploy name. */
@@ -147,8 +152,12 @@ export declare class Market {
147
152
  * @returns collateral, max debt, debt for the market
148
153
  */
149
154
  getSnapshots(account: address): Promise<AccountSnapshot[]>;
155
+ hasUserActivity(): boolean;
156
+ applyState(dynamicData: DynamicMarketData, userData?: UserMarket): void;
150
157
  reloadMarketData(): Promise<void>;
151
158
  reloadUserData(account: address): Promise<void>;
159
+ static getActiveUserMarkets(markets: Market[]): Market[];
160
+ static reloadUserMarkets(markets: Market[], account: address): Promise<Market[]>;
152
161
  /**
153
162
  * Preview the impact of the user descision for their deposit/borrow/leverage
154
163
  * @param user - Wallet address
@@ -253,6 +262,6 @@ export declare class Market {
253
262
  * @param provider - The RPC provider
254
263
  * @returns An array of Market instances setup with protocol reader data
255
264
  */
256
- static getAll(reader: ProtocolReader, oracle_manager: OracleManager, provider?: curvance_provider, milestones?: Milestones, incentives?: Incentives): Promise<Market[]>;
265
+ static getAll(reader: ProtocolReader, oracle_manager: OracleManager, provider?: curvance_read_provider, signer?: curvance_signer | null, account?: address | null, milestones?: Milestones, incentives?: Incentives, setup?: SetupConfigSnapshot): Promise<Market[]>;
257
266
  }
258
267
  //# sourceMappingURL=Market.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Market.d.ts","sourceRoot":"","sources":["../../src/classes/Market.ts"],"names":[],"mappings":"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"}