curvance 5.1.8 → 5.2.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 (114) hide show
  1. package/README.md +251 -70
  2. package/dist/abis/OptimizerReader.json +292 -1
  3. package/dist/chains/arbitrum.d.ts.map +1 -1
  4. package/dist/chains/arbitrum.js +14 -1
  5. package/dist/chains/arbitrum.js.map +1 -1
  6. package/dist/chains/index.d.ts +19 -0
  7. package/dist/chains/index.d.ts.map +1 -1
  8. package/dist/chains/index.js.map +1 -1
  9. package/dist/chains/monad.d.ts.map +1 -1
  10. package/dist/chains/monad.js +25 -2
  11. package/dist/chains/monad.js.map +1 -1
  12. package/dist/chains/services.d.ts +8 -0
  13. package/dist/chains/services.d.ts.map +1 -0
  14. package/dist/chains/services.js +9 -0
  15. package/dist/chains/services.js.map +1 -0
  16. package/dist/classes/Api.d.ts +7 -2
  17. package/dist/classes/Api.d.ts.map +1 -1
  18. package/dist/classes/Api.js +60 -24
  19. package/dist/classes/Api.js.map +1 -1
  20. package/dist/classes/BorrowableCToken.d.ts.map +1 -1
  21. package/dist/classes/BorrowableCToken.js +7 -2
  22. package/dist/classes/BorrowableCToken.js.map +1 -1
  23. package/dist/classes/CToken.d.ts +36 -29
  24. package/dist/classes/CToken.d.ts.map +1 -1
  25. package/dist/classes/CToken.js +225 -166
  26. package/dist/classes/CToken.js.map +1 -1
  27. package/dist/classes/DexAggregators/IDexAgg.d.ts +8 -0
  28. package/dist/classes/DexAggregators/IDexAgg.d.ts.map +1 -1
  29. package/dist/classes/DexAggregators/KyberSwap.d.ts +5 -2
  30. package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
  31. package/dist/classes/DexAggregators/KyberSwap.js +41 -19
  32. package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
  33. package/dist/classes/DexAggregators/MultiDexAgg.d.ts +7 -4
  34. package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
  35. package/dist/classes/DexAggregators/MultiDexAgg.js +62 -16
  36. package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
  37. package/dist/classes/DexAggregators/helpers.d.ts +1 -1
  38. package/dist/classes/DexAggregators/helpers.d.ts.map +1 -1
  39. package/dist/classes/DexAggregators/helpers.js +1 -1
  40. package/dist/classes/DexAggregators/helpers.js.map +1 -1
  41. package/dist/classes/DexAggregators/index.d.ts +0 -1
  42. package/dist/classes/DexAggregators/index.d.ts.map +1 -1
  43. package/dist/classes/DexAggregators/index.js +0 -1
  44. package/dist/classes/DexAggregators/index.js.map +1 -1
  45. package/dist/classes/LendingOptimizer.d.ts +7 -0
  46. package/dist/classes/LendingOptimizer.d.ts.map +1 -1
  47. package/dist/classes/LendingOptimizer.js +12 -2
  48. package/dist/classes/LendingOptimizer.js.map +1 -1
  49. package/dist/classes/Market.d.ts +5 -0
  50. package/dist/classes/Market.d.ts.map +1 -1
  51. package/dist/classes/Market.js +129 -30
  52. package/dist/classes/Market.js.map +1 -1
  53. package/dist/classes/NativeToken.d.ts +5 -2
  54. package/dist/classes/NativeToken.d.ts.map +1 -1
  55. package/dist/classes/NativeToken.js +5 -5
  56. package/dist/classes/NativeToken.js.map +1 -1
  57. package/dist/classes/OptimizerReader.d.ts +44 -4
  58. package/dist/classes/OptimizerReader.d.ts.map +1 -1
  59. package/dist/classes/OptimizerReader.js +133 -62
  60. package/dist/classes/OptimizerReader.js.map +1 -1
  61. package/dist/classes/PositionManager.d.ts +1 -0
  62. package/dist/classes/PositionManager.d.ts.map +1 -1
  63. package/dist/classes/PositionManager.js +25 -0
  64. package/dist/classes/PositionManager.js.map +1 -1
  65. package/dist/classes/ProtocolReader.d.ts +3 -0
  66. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  67. package/dist/classes/ProtocolReader.js +34 -0
  68. package/dist/classes/ProtocolReader.js.map +1 -1
  69. package/dist/classes/Zapper.d.ts +4 -1
  70. package/dist/classes/Zapper.d.ts.map +1 -1
  71. package/dist/classes/Zapper.js +34 -9
  72. package/dist/classes/Zapper.js.map +1 -1
  73. package/dist/classes/index.d.ts +1 -1
  74. package/dist/classes/index.d.ts.map +1 -1
  75. package/dist/classes/index.js +1 -1
  76. package/dist/classes/index.js.map +1 -1
  77. package/dist/contracts/index.d.ts +249 -245
  78. package/dist/contracts/index.d.ts.map +1 -1
  79. package/dist/contracts/index.js +3 -2
  80. package/dist/contracts/index.js.map +1 -1
  81. package/dist/contracts/monad-mainnet.json +4 -0
  82. package/dist/feePolicy.d.ts +29 -26
  83. package/dist/feePolicy.d.ts.map +1 -1
  84. package/dist/feePolicy.js +43 -34
  85. package/dist/feePolicy.js.map +1 -1
  86. package/dist/format/index.d.ts +5 -0
  87. package/dist/format/index.d.ts.map +1 -1
  88. package/dist/format/index.js +28 -0
  89. package/dist/format/index.js.map +1 -1
  90. package/dist/helpers.d.ts +248 -245
  91. package/dist/helpers.d.ts.map +1 -1
  92. package/dist/helpers.js +5 -5
  93. package/dist/helpers.js.map +1 -1
  94. package/dist/immutability.d.ts +6 -0
  95. package/dist/immutability.d.ts.map +1 -0
  96. package/dist/immutability.js +25 -0
  97. package/dist/immutability.js.map +1 -0
  98. package/dist/integrations/merkl.d.ts +9 -2
  99. package/dist/integrations/merkl.d.ts.map +1 -1
  100. package/dist/integrations/merkl.js +219 -11
  101. package/dist/integrations/merkl.js.map +1 -1
  102. package/dist/integrations/snapshot.d.ts +3 -0
  103. package/dist/integrations/snapshot.d.ts.map +1 -1
  104. package/dist/integrations/snapshot.js +47 -3
  105. package/dist/integrations/snapshot.js.map +1 -1
  106. package/dist/setup.d.ts +13 -3
  107. package/dist/setup.d.ts.map +1 -1
  108. package/dist/setup.js +101 -7
  109. package/dist/setup.js.map +1 -1
  110. package/package.json +7 -5
  111. package/dist/classes/Redstone.d.ts +0 -15
  112. package/dist/classes/Redstone.d.ts.map +0 -1
  113. package/dist/classes/Redstone.js +0 -56
  114. package/dist/classes/Redstone.js.map +0 -1
package/dist/setup.d.ts CHANGED
@@ -2,11 +2,18 @@ import { ChainRpcPrefix, getContractAddresses } from "./helpers";
2
2
  import { Market } from "./classes/Market";
3
3
  import { address, curvance_provider, curvance_read_provider, curvance_signer } from './types';
4
4
  import { ProtocolReader } from "./classes/ProtocolReader";
5
+ import type { MilestoneResponse } from "./classes/Api";
5
6
  import { FeePolicy } from "./feePolicy";
6
7
  import type IDexAgg from "./classes/DexAggregators/IDexAgg";
8
+ import { DeepReadonly } from "./immutability";
9
+ import type { ChainAssetConfig, ChainEnvironment, ChainServiceConfig } from "./chains";
7
10
  export interface SetupConfigSnapshot {
8
11
  chain: ChainRpcPrefix;
9
- contracts: ReturnType<typeof getContractAddresses>;
12
+ chainId: number;
13
+ environment: ChainEnvironment;
14
+ assets: DeepReadonly<ChainAssetConfig>;
15
+ services: DeepReadonly<ChainServiceConfig>;
16
+ contracts: DeepReadonly<ReturnType<typeof getContractAddresses>>;
10
17
  readProvider: curvance_read_provider;
11
18
  signer: curvance_signer | null;
12
19
  account: address | null;
@@ -19,7 +26,7 @@ export declare let setup_config: SetupConfigSnapshot;
19
26
  export declare let all_markets: Market[];
20
27
  export interface SetupChainOptions {
21
28
  /** Optional fee policy for SDK-initiated DEX swaps (zaps + leverage).
22
- * Defaults to the chain's live Curvance fee policy when required. */
29
+ * Defaults to the chain's setup-resolved Curvance fee policy. */
23
30
  feePolicy?: FeePolicy;
24
31
  /** Optional dedicated account for user-specific reads when no signer is available. */
25
32
  account?: address | null;
@@ -27,10 +34,13 @@ export interface SetupChainOptions {
27
34
  readProvider?: curvance_read_provider | null;
28
35
  }
29
36
  export interface SetupChainResult {
37
+ chain: ChainRpcPrefix;
38
+ chainId: number;
39
+ setupConfigSnapshot: Readonly<SetupConfigSnapshot>;
30
40
  markets: Market[];
31
41
  reader: ProtocolReader;
32
42
  dexAgg: IDexAgg;
33
- global_milestone: any | null;
43
+ global_milestone: MilestoneResponse | null;
34
44
  }
35
45
  export declare function setupChain(chain: ChainRpcPrefix, provider?: curvance_provider | null, api_url?: string, options?: SetupChainOptions): Promise<SetupChainResult>;
36
46
  export declare function getActiveUserMarkets(markets?: Market[]): Market[];
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM1D,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,YAAY,EAAE,sBAAsB,CAAC;IACrC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,IAAI,YAAY,EAAE,mBAAmB,CAAC;AAE7C,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;AAStC,MAAM,WAAW,iBAAiB;IAC9B;0EACsE;IACtE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,iDAAiD;IACjD,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,GAAG,GAAG,IAAI,CAAC;CAChC;AAoGD,wBAAgB,UAAU,CACtB,KAAK,EAAE,cAAc,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAsH7B,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,EAAgB,GAAG,MAAM,EAAE,CAE9E;AAED,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED,wBAAsB,gCAAgC,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAoB,SAAS,EAA2C,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEvF,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvC,QAAQ,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC3C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,sBAAsB,CAAC;IACrC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,IAAI,YAAY,EAAE,mBAAmB,CAAC;AAE7C,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;AAStC,MAAM,WAAW,iBAAiB;IAC9B;sEACkE;IAClE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,iDAAiD;IACjD,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC9C;AA0LD,wBAAgB,UAAU,CACtB,KAAK,EAAE,cAAc,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAuJ7B,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAM,EAAgB,GAAG,MAAM,EAAE,CAE9E;AAED,wBAAsB,wBAAwB,CAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED,wBAAsB,gCAAgC,CAClD,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,MAAM,EAAgB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
package/dist/setup.js CHANGED
@@ -14,21 +14,51 @@ const chains_1 = require("./chains");
14
14
  const Api_1 = require("./classes/Api");
15
15
  const validation_1 = require("./validation");
16
16
  const feePolicy_1 = require("./feePolicy");
17
+ const immutability_1 = require("./immutability");
17
18
  exports.all_markets = [];
18
19
  let latest_setup_invocation = 0;
19
20
  let latest_published_setup_invocation = 0;
20
21
  const pending_setup_invocations = new Set();
21
22
  const successful_setup_results = new Map();
22
- function createSetupConfig(chain, readProvider, signer, account, api_url, options) {
23
- return {
23
+ function createSetupConfig(chain, readProvider, signer, account, api_url, feePolicy) {
24
+ return Object.freeze({
24
25
  chain,
26
+ chainId: chains_1.chain_config[chain].chainId,
27
+ environment: chains_1.chain_config[chain].environment,
28
+ assets: (0, immutability_1.deepFreeze)(cloneChainAssets(chains_1.chain_config[chain])),
29
+ services: (0, immutability_1.deepFreeze)(cloneChainServices(chains_1.chain_config[chain].services)),
25
30
  readProvider,
26
31
  signer,
27
32
  account,
28
33
  provider: signer ?? readProvider,
29
- contracts: (0, helpers_1.getContractAddresses)(chain),
34
+ contracts: (0, immutability_1.deepFreeze)((0, helpers_1.getContractAddresses)(chain)),
30
35
  api_url,
31
- feePolicy: options.feePolicy ?? (0, feePolicy_1.defaultFeePolicyForChain)(chain),
36
+ feePolicy,
37
+ });
38
+ }
39
+ function cloneChainAssets(config) {
40
+ return {
41
+ native_symbol: config.native_symbol,
42
+ native_name: config.native_name,
43
+ wrapped_native: config.wrapped_native,
44
+ native_vaults: config.native_vaults.map((vault) => ({ ...vault })),
45
+ vaults: config.vaults.map((vault) => ({ ...vault })),
46
+ excluded_zap_symbols: [...config.excluded_zap_symbols],
47
+ };
48
+ }
49
+ function cloneChainServices(services) {
50
+ return {
51
+ curvanceApi: {
52
+ rewardsSlug: services.curvanceApi.rewardsSlug,
53
+ rewardChainAliases: [...services.curvanceApi.rewardChainAliases],
54
+ nativeYieldSlug: services.curvanceApi.nativeYieldSlug,
55
+ suppressedNativeYieldSymbols: [...services.curvanceApi.suppressedNativeYieldSymbols],
56
+ },
57
+ dexAggregators: {
58
+ kyberSwap: services.dexAggregators.kyberSwap == null
59
+ ? null
60
+ : { ...services.dexAggregators.kyberSwap },
61
+ },
32
62
  };
33
63
  }
34
64
  function validateSetupConfig(config) {
@@ -38,6 +68,48 @@ function validateSetupConfig(config) {
38
68
  else if (!("OracleManager" in config.contracts)) {
39
69
  throw new Error(`Chain configuration for ${config.chain} is missing OracleManager address.`);
40
70
  }
71
+ const policyChain = config.feePolicy.chain;
72
+ if (policyChain != undefined && policyChain !== "any" && policyChain !== config.chain) {
73
+ throw new Error(`Fee policy for ${policyChain} cannot be used with setupChain('${config.chain}').`);
74
+ }
75
+ }
76
+ function validateCheckerFeePolicy(config, checkerDao) {
77
+ if (config.services.dexAggregators.kyberSwap == null) {
78
+ return;
79
+ }
80
+ if (checkerDao == null) {
81
+ throw new Error(`KyberSwap checker validation for ${config.chain} requires the setup DAO address.`);
82
+ }
83
+ const checkerCompatibility = config.feePolicy.checkerCompatibility;
84
+ if (checkerCompatibility == null) {
85
+ throw new Error(`KyberSwap checker for ${config.chain} requires a checker-compatible fee policy ` +
86
+ `with exact feeBps=${feePolicy_1.CURVANCE_FEE_BPS} and feeReceiver=${checkerDao}. ` +
87
+ `Context-dependent policies are not allowed on checker-bound routes. ` +
88
+ `Omit options.feePolicy to use the setup-resolved default or pass a policy ` +
89
+ `that declares checkerCompatibility.`);
90
+ }
91
+ const sampleFeeBps = config.feePolicy.getFeeBps({
92
+ operation: "zap",
93
+ inputToken: "0x0000000000000000000000000000000000000001",
94
+ outputToken: "0x0000000000000000000000000000000000000002",
95
+ inputAmount: 1n,
96
+ currentLeverage: null,
97
+ targetLeverage: null,
98
+ });
99
+ const feeReceiver = checkerCompatibility.feeReceiver;
100
+ if (checkerCompatibility.exactFeeBpsForDexSwaps !== feePolicy_1.CURVANCE_FEE_BPS ||
101
+ sampleFeeBps !== checkerCompatibility.exactFeeBpsForDexSwaps ||
102
+ feeReceiver == null ||
103
+ feeReceiver.toLowerCase() !== checkerDao.toLowerCase()) {
104
+ throw new Error(`KyberSwap checker for ${config.chain} requires feeBps=${feePolicy_1.CURVANCE_FEE_BPS} ` +
105
+ `and feeReceiver=${checkerDao}; got ` +
106
+ `feeBps=${checkerCompatibility.exactFeeBpsForDexSwaps} ` +
107
+ `sampleFeeBps=${sampleFeeBps} feeReceiver=${feeReceiver ?? "undefined"}. ` +
108
+ `Omit options.feePolicy to use the setup-resolved default or pass a checker-compatible policy.`);
109
+ }
110
+ }
111
+ function bindDexAggContext(dexAgg, context) {
112
+ return dexAgg.withContext?.(context) ?? dexAgg;
41
113
  }
42
114
  async function validateProviderChain(chain, provider, label) {
43
115
  const expectedChainId = BigInt(chains_1.chain_config[chain].chainId);
@@ -139,12 +211,31 @@ async function setupChain(chain, provider = null, api_url = "https://api.curvanc
139
211
  `Pass a matching account or omit options.account when a signer is connected.`);
140
212
  }
141
213
  const account = requestedAccount ?? signerAccount;
142
- const nextSetupConfig = createSetupConfig(chain, readProvider, signer, account, api_url, options);
214
+ let nextSetupConfig = createSetupConfig(chain, readProvider, signer, account, api_url, options.feePolicy ?? feePolicy_1.NO_FEE_POLICY);
143
215
  validateSetupConfig(nextSetupConfig);
144
- const { milestones, incentives } = await Api_1.Api.getRewards(nextSetupConfig);
145
216
  const reader = new ProtocolReader_1.ProtocolReader(nextSetupConfig.contracts.ProtocolReader, nextSetupConfig.readProvider, nextSetupConfig.chain);
217
+ const requiresCheckerPolicy = nextSetupConfig.services.dexAggregators.kyberSwap != null;
218
+ const setupDaoAddress = options.feePolicy == null || requiresCheckerPolicy
219
+ ? await reader.getDaoAddress()
220
+ : null;
221
+ const feePolicy = options.feePolicy ?? (0, feePolicy_1.defaultFeePolicyForChain)(chain, setupDaoAddress);
222
+ nextSetupConfig = createSetupConfig(chain, readProvider, signer, account, api_url, feePolicy);
223
+ validateSetupConfig(nextSetupConfig);
224
+ validateCheckerFeePolicy(nextSetupConfig, setupDaoAddress);
225
+ const { milestones, incentives } = await Api_1.Api.getRewards(nextSetupConfig);
146
226
  const oracle_manager = new OracleManager_1.OracleManager(nextSetupConfig.contracts.OracleManager, nextSetupConfig.readProvider);
147
227
  const markets = await Market_1.Market.getAll(reader, oracle_manager, nextSetupConfig.readProvider, nextSetupConfig.signer, nextSetupConfig.account, milestones, incentives, nextSetupConfig);
228
+ const dexAgg = bindDexAggContext(chains_1.chain_config[chain].dexAgg, {
229
+ markets,
230
+ feePolicy: nextSetupConfig.feePolicy,
231
+ checkerDao: setupDaoAddress ?? undefined,
232
+ });
233
+ for (const market of markets) {
234
+ market.dexAgg = dexAgg;
235
+ for (const token of market.tokens ?? []) {
236
+ token.refreshRouteCapabilities?.();
237
+ }
238
+ }
148
239
  pending_setup_invocations.delete(setupInvocation);
149
240
  successful_setup_results.set(setupInvocation, {
150
241
  setupConfig: nextSetupConfig,
@@ -152,9 +243,12 @@ async function setupChain(chain, provider = null, api_url = "https://api.curvanc
152
243
  });
153
244
  publishLatestSuccessfulSetup();
154
245
  return {
246
+ chain,
247
+ chainId: nextSetupConfig.chainId,
248
+ setupConfigSnapshot: nextSetupConfig,
155
249
  markets,
156
250
  reader,
157
- dexAgg: chains_1.chain_config[chain].dexAgg,
251
+ dexAgg,
158
252
  global_milestone: milestones['global'] ?? null
159
253
  };
160
254
  }
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,10 @@
1
1
  {
2
2
  "name": "curvance",
3
- "version": "5.1.8",
3
+ "version": "5.2.0",
4
+ "packageManager": "npm@11.14.1",
5
+ "engines": {
6
+ "npm": ">=11.14.1 <12"
7
+ },
4
8
  "main": "dist/index.js",
5
9
  "types": "dist/index.d.ts",
6
10
  "files": [
@@ -33,10 +37,9 @@
33
37
  "build": "node node_modules/typescript/bin/tsc",
34
38
  "test": "npm run test:transport",
35
39
  "test:all": "node --test --test-concurrency=1 --require ts-node/register tests/*.test.ts",
36
- "test:transport": "node --test --test-concurrency=1 --require ts-node/register tests/contract-gas-buffer.test.ts tests/retry-fallback.test.ts tests/rpc-ranking.test.ts tests/rpc-config-shape.test.ts tests/protocol-reader.test.ts tests/setup-race.test.ts tests/query-budget.test.ts tests/conversion.test.ts tests/erc20.test.ts tests/feePolicy.test.ts tests/api.test.ts tests/market-refresh.test.ts tests/market-boot.test.ts tests/merkl.test.ts tests/detached-context.test.ts tests/market-get-all-indexes.test.ts tests/snapshot-multichain.test.ts tests/dex-aggregators.test.ts tests/calldata-compat.test.ts tests/leverage-math.test.ts tests/ctoken-deposits.test.ts tests/ctoken-collateral-removal.test.ts tests/ctoken-snapshot.test.ts tests/borrowable-helpers.test.ts tests/zapper-calldata.test.ts tests/leverage-vault-behavior.test.ts tests/ctoken-leverage-planning.test.ts tests/ctoken-leverage-execution.test.ts tests/market-leverage-preview.test.ts tests/market-position-health-units.test.ts tests/optimizer-reader.test.ts tests/source-invariants.test.ts",
37
- "test:fork": "node --test --test-concurrency=1 --require ts-node/register tests/fork-integration.ts tests/leverage.test.ts tests/zap.test.ts",
40
+ "test:transport": "node --test --test-concurrency=1 --require ts-node/register tests/contract-gas-buffer.test.ts tests/retry-fallback.test.ts tests/rpc-ranking.test.ts tests/rpc-config-shape.test.ts tests/protocol-reader.test.ts tests/setup-race.test.ts tests/query-budget.test.ts tests/conversion.test.ts tests/erc20.test.ts tests/feePolicy.test.ts tests/validation.test.ts tests/api.test.ts tests/market-refresh.test.ts tests/market-boot.test.ts tests/merkl.test.ts tests/detached-context.test.ts tests/market-get-all-indexes.test.ts tests/snapshot-multichain.test.ts tests/dex-aggregators.test.ts tests/calldata-compat.test.ts tests/leverage-math.test.ts tests/ctoken-deposits.test.ts tests/ctoken-collateral-removal.test.ts tests/ctoken-snapshot.test.ts tests/borrowable-helpers.test.ts tests/zapper-calldata.test.ts tests/leverage-vault-behavior.test.ts tests/ctoken-leverage-planning.test.ts tests/ctoken-leverage-execution.test.ts tests/market-leverage-preview.test.ts tests/market-position-health-units.test.ts tests/optimizer-reader.test.ts tests/lending-optimizer.test.ts tests/source-invariants.test.ts",
41
+ "test:fork": "node --test --test-concurrency=1 --require ts-node/register tests/fork-integration.ts tests/basic.test.ts tests/arb-basic.test.ts tests/optimizer.test.ts tests/leverage.test.ts tests/zap.test.ts tests/dual-fork-switch.test.ts",
38
42
  "test:dist-smoke": "npm run build && node tests/dist-smoke.cjs",
39
- "test:replay": "ts-node tests/replay.test.ts",
40
43
  "test:leverage": "ts-node tests/leverage.test.ts",
41
44
  "test:zap": "ts-node tests/zap.test.ts",
42
45
  "test:conversion": "ts-node tests/conversion.test.ts",
@@ -45,7 +48,6 @@
45
48
  "test:optimizer": "ts-node tests/optimizer.test.ts"
46
49
  },
47
50
  "dependencies": {
48
- "@redstone-finance/sdk": "0.9.0",
49
51
  "decimal.js": "10.6.0",
50
52
  "ethers": "6.16.0"
51
53
  },
@@ -1,15 +0,0 @@
1
- import { address, bytes } from "../types";
2
- import { TransactionResponse } from "ethers";
3
- import { MulticallAction } from "./CToken";
4
- import { MarketToken } from "./Market";
5
- export interface IRedstoneCoreAdaptor {
6
- writePrice(asset: address, inUSD: boolean, redstoneTimestamp: bigint): Promise<TransactionResponse>;
7
- }
8
- export declare class Redstone {
9
- static getPayload(symbol: string, log?: boolean): Promise<{
10
- payload: bytes;
11
- timestamp: number;
12
- }>;
13
- static buildMultiCallAction(ctoken: MarketToken): Promise<MulticallAction>;
14
- }
15
- //# sourceMappingURL=Redstone.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Redstone.d.ts","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,oBAAoB;IACjC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvG;AAED,qBAAa,QAAQ;WACJ,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe;iBAyBzB,KAAK;;;WAM3B,oBAAoB,CAAC,MAAM,EAAE,WAAW;CAkBxD"}
@@ -1,56 +0,0 @@
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
- exports.Redstone = void 0;
7
- const sdk_1 = require("@redstone-finance/sdk");
8
- const helpers_1 = require("../helpers");
9
- const ethers_1 = require("ethers");
10
- const RedstoneCoreAdaptor_json_1 = __importDefault(require("../abis/RedstoneCoreAdaptor.json"));
11
- class Redstone {
12
- static async getPayload(symbol, log = false) {
13
- let payload_params = {
14
- dataServiceId: "redstone-primary-prod",
15
- dataPackagesIds: [symbol],
16
- uniqueSignersCount: 3,
17
- authorizedSigners: [
18
- "0x8BB8F32Df04c8b654987DAaeD53D6B6091e3B774",
19
- "0xdEB22f54738d54976C4c0fe5ce6d408E40d88499",
20
- "0x51Ce04Be4b3E32572C4Ec9135221d0691Ba7d202",
21
- "0xDD682daEC5A90dD295d14DA4b0bec9281017b5bE"
22
- ]
23
- };
24
- const response = await (0, sdk_1.requestDataPackages)(payload_params);
25
- const [payload, timestamp] = await Promise.all([
26
- (0, sdk_1.convertDataPackagesResponse)(response),
27
- (0, sdk_1.getResponseTimestamp)(response)
28
- ]);
29
- if (log) {
30
- const json = await (0, sdk_1.convertDataPackagesResponse)(response, "json");
31
- console.log(json);
32
- }
33
- return {
34
- payload: `0x${payload}`,
35
- timestamp
36
- };
37
- }
38
- static async buildMultiCallAction(ctoken) {
39
- const adaptor = ctoken.market.setup.contracts.adaptors.RedstoneCoreAdaptor;
40
- const contract = (0, helpers_1.contractSetup)(ctoken.provider, adaptor, RedstoneCoreAdaptor_json_1.default);
41
- const { payload, timestamp } = await Redstone.getPayload(ctoken.asset.symbol);
42
- const writePrice = contract.interface.encodeFunctionData("writePrice", [
43
- ctoken.asset.address,
44
- true,
45
- timestamp
46
- ]);
47
- const encodedWritePrice = (0, ethers_1.solidityPacked)(["bytes", "bytes"], [writePrice, payload]);
48
- return {
49
- target: adaptor,
50
- isPriceUpdate: true,
51
- data: encodedWritePrice
52
- };
53
- }
54
- }
55
- exports.Redstone = Redstone;
56
- //# sourceMappingURL=Redstone.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Redstone.js","sourceRoot":"","sources":["../../src/classes/Redstone.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+G;AAE/G,wCAA2C;AAC3C,mCAA6D;AAE7D,gGAAmD;AAOnD,MAAa,QAAQ;IACjB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAe,KAAK;QACxD,IAAI,cAAc,GAAG;YACjB,aAAa,EAAE,uBAAuB;YACtC,eAAe,EAAE,CAAC,MAAM,CAAC;YACzB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE;gBACf,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;gBAC5C,4CAA4C;aAC/C;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAmB,EAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,IAAA,iCAA2B,EAAC,QAAQ,CAAC;YACrC,IAAA,0BAAoB,EAAC,QAAQ,CAAC;SACjC,CAAC,CAAC;QAEH,IAAG,GAAG,EAAE,CAAC;YACL,MAAM,IAAI,GAAG,MAAM,IAAA,iCAA2B,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO;YACH,OAAO,EAAE,KAAK,OAAO,EAAW;YAChC,SAAS;SACZ,CAAC;IAEN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAmB;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAA8B,CAAC;QACtF,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAuB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,kCAAG,CAAC,CAAC;QACpF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACnE,MAAM,CAAC,KAAK,CAAC,OAAO;YACpB,IAAI;YACJ,SAAS;SACZ,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAA,uBAAc,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAEpF,OAAO;YACH,MAAM,EAAE,OAAO;YACf,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE,iBAAiB;SACP,CAAC;IACzB,CAAC;CACJ;AAlDD,4BAkDC"}