@skate-org/amm-core-v2 2.0.0-beta.1 → 2.0.0-beta.11

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 (38) hide show
  1. package/CHANGELOG.md +109 -155
  2. package/README.md +1 -1
  3. package/dist/adapter/skate.d.ts +15 -0
  4. package/dist/adapter/skate.d.ts.map +1 -1
  5. package/dist/deployment/aggregated/_type_.d.ts +10 -2
  6. package/dist/deployment/aggregated/_type_.d.ts.map +1 -1
  7. package/dist/deployment/aggregated/dev.d.ts.map +1 -1
  8. package/dist/deployment/aggregated/production.d.ts +3 -0
  9. package/dist/deployment/aggregated/production.d.ts.map +1 -1
  10. package/dist/deployment/aggregated/retrieval.d.ts +6 -2
  11. package/dist/deployment/aggregated/retrieval.d.ts.map +1 -1
  12. package/dist/deployment/aggregated/staging.d.ts +3 -0
  13. package/dist/deployment/aggregated/staging.d.ts.map +1 -1
  14. package/dist/deployment/index.d.ts +2 -0
  15. package/dist/deployment/index.d.ts.map +1 -1
  16. package/dist/deployment/kernel.d.ts +6 -14
  17. package/dist/deployment/kernel.d.ts.map +1 -1
  18. package/dist/deployment/periphery.d.ts +7 -3
  19. package/dist/deployment/periphery.d.ts.map +1 -1
  20. package/dist/deployment/sui.d.ts +96 -0
  21. package/dist/deployment/sui.d.ts.map +1 -0
  22. package/dist/deployment/svm.d.ts +121 -0
  23. package/dist/deployment/svm.d.ts.map +1 -0
  24. package/dist/index.cjs +240 -32
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.js +210 -32
  27. package/dist/index.js.map +1 -1
  28. package/dist/math/index.d.ts +1 -0
  29. package/dist/math/index.d.ts.map +1 -1
  30. package/dist/math/kernel.d.ts +16 -0
  31. package/dist/math/kernel.d.ts.map +1 -0
  32. package/dist/math/liquidityMath.d.ts +10 -5
  33. package/dist/math/liquidityMath.d.ts.map +1 -1
  34. package/dist/math/sqrtPriceMath.d.ts +2 -0
  35. package/dist/math/sqrtPriceMath.d.ts.map +1 -1
  36. package/dist/math/tickMath.d.ts +15 -0
  37. package/dist/math/tickMath.d.ts.map +1 -1
  38. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -139,17 +139,9 @@ var TaskPhase = /* @__PURE__ */ ((TaskPhase2) => {
139
139
  return TaskPhase2;
140
140
  })(TaskPhase || {});
141
141
 
142
- // src/errors.ts
143
- var SdkError = class extends Error {
144
- name = "SdkError";
145
- constructor(message, options) {
146
- super(message, options);
147
- }
148
- };
149
-
150
142
  // src/deployment/kernel.ts
151
- var KERNEL_MANAGER_Dev = "0x17B7207837e8884f7f687f1f4057751BDAf70a01";
152
- var KERNEL_EVENT_EMITTER_Dev = "0x8989b3ecb65f250ab7A0DC03589B0Cc8b8b04b81";
143
+ var KERNEL_MANAGER = "0x17B7207837e8884f7f687f1f4057751BDAf70a01";
144
+ var KERNEL_EVENT_EMITTER = "0x8989b3ecb65f250ab7A0DC03589B0Cc8b8b04b81";
153
145
  var KERNEL_POOL_USDC_USDT_Dev = "0x2c23334eE3b030e6bacEDEDf7C511eEA08Cf7E7e";
154
146
  var KERNEL_CHAIN_BY_MODE = {
155
147
  DEV: 4326 /* MEGAETH */,
@@ -159,18 +151,11 @@ var KERNEL_CHAIN_BY_MODE = {
159
151
  function KernelChain(mode) {
160
152
  return KERNEL_CHAIN_BY_MODE[mode];
161
153
  }
162
- function notDeployed(scope, mode) {
163
- throw new SdkError(
164
- `${scope}: SDK v2 is not yet deployed to ${mode}; only DEV is wired today. Either pass mode="DEV" or wait for the v2 service to ship to ${mode}.`
165
- );
154
+ function KernelManagerAddress(_mode) {
155
+ return KERNEL_MANAGER;
166
156
  }
167
- function KernelManagerAddress(mode) {
168
- if (mode === "DEV") return KERNEL_MANAGER_Dev;
169
- return notDeployed("KernelManagerAddress", mode);
170
- }
171
- function KernelEventEmitterAddress(mode) {
172
- if (mode === "DEV") return KERNEL_EVENT_EMITTER_Dev;
173
- return notDeployed("KernelEventEmitterAddress", mode);
157
+ function KernelEventEmitterAddress(_mode) {
158
+ return KERNEL_EVENT_EMITTER;
174
159
  }
175
160
 
176
161
  // src/deployment/periphery.ts
@@ -186,14 +171,17 @@ var PERIPHERY_DEV = {
186
171
  peripheryPoolImpl: "0x803ed7fa8934D4fe51A276cA02506b585cdb3eb4"
187
172
  }
188
173
  };
189
- function notDeployed2(scope, mode) {
190
- throw new SdkError(
191
- `${scope}: SDK v2 is not yet deployed to ${mode}; only DEV is wired today. Either pass mode="DEV" or wait for the v2 service to ship to ${mode}.`
192
- );
193
- }
174
+ var PERIPHERY_STAGING = PERIPHERY_DEV;
175
+ var PERIPHERY_PRODUCTION = PERIPHERY_DEV;
194
176
  function PeripheryDeploymentFor(chain, mode) {
195
- if (mode !== "DEV") return notDeployed2("PeripheryDeploymentFor", mode);
196
- return PERIPHERY_DEV[chain] ?? null;
177
+ switch (mode) {
178
+ case "DEV":
179
+ return PERIPHERY_DEV[chain] ?? null;
180
+ case "STAGING":
181
+ return PERIPHERY_STAGING[chain] ?? null;
182
+ case "PRODUCTION":
183
+ return PERIPHERY_PRODUCTION[chain] ?? null;
184
+ }
197
185
  }
198
186
  function PeripheryManagerAddress(chain, mode) {
199
187
  return PeripheryDeploymentFor(chain, mode)?.peripheryManager ?? null;
@@ -208,6 +196,106 @@ function ActionBoxAddress(chain, mode) {
208
196
  return PeripheryDeploymentFor(chain, mode)?.actionBox ?? null;
209
197
  }
210
198
 
199
+ // src/deployment/svm.ts
200
+ var SVM_DEPLOYMENT_DEV = {
201
+ [901 /* SOLANA */]: {
202
+ peripheryPoolProgramId: "SPPZB76TV1oSusXvGYQDK7KZGyLBmWbr8CuzNcjb98y",
203
+ actionBoxProgramId: "SABZ2zgj8G8jD7V9s6hSMkT1fvNyMavssNigmmTMqa2",
204
+ actionBoxStateV3: "G1qLtJDbkY4JBtD7sdjqGN8GJ38QRDbzp2fWEYY4apAh",
205
+ taskLedger: "SkTLHEfy9X3PeMVa2dEYysg9Ccq8KtNG7zYNTAaB1NV",
206
+ manager: "SGMSTk5t2gmiHKQjtb9XV6qviasgD5UKTsVMHLGCSZA"
207
+ }
208
+ };
209
+ var SVM_DEPLOYMENT_STAGING = SVM_DEPLOYMENT_DEV;
210
+ var SVM_DEPLOYMENT_PRODUCTION = SVM_DEPLOYMENT_DEV;
211
+ function SvmDeploymentFor(chain, mode) {
212
+ switch (mode) {
213
+ case "DEV":
214
+ return SVM_DEPLOYMENT_DEV[chain] ?? null;
215
+ case "STAGING":
216
+ return SVM_DEPLOYMENT_STAGING[chain] ?? null;
217
+ case "PRODUCTION":
218
+ return SVM_DEPLOYMENT_PRODUCTION[chain] ?? null;
219
+ }
220
+ }
221
+ var TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
222
+ var SVM_POOLS_DEV = {
223
+ USDC_USDT: {
224
+ [901 /* SOLANA */]: {
225
+ peripheryPool: "G2j8vLu3ryzUqPYpknpBcBLDcFiiRmXtB7z9Dpg9dVxe",
226
+ poolAuthority: "2Mvbo1TrsVeqyjQwNcdDDGjFNbwMk4tV8oD2TN2fV4Nw",
227
+ dust: "4m1AdUZvYJUSMTYpFH8df1JrgHTqUeKA3Xf7DapB4VcX",
228
+ poolToken0Vault: "BihGfVYmaT4KpiHiBLwH2ad9Q2ybYVHS2Bd3hQtzg486",
229
+ poolToken1Vault: "3DW4k4ims6dFB2cXBk5m1uAfh1zowuj9CzBbF4jm1FRh",
230
+ manager: "SGMSTk5t2gmiHKQjtb9XV6qviasgD5UKTsVMHLGCSZA",
231
+ tokenProgramId0: TOKEN_PROGRAM_ID,
232
+ tokenProgramId1: TOKEN_PROGRAM_ID,
233
+ token0: {
234
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
235
+ symbol: "USDC",
236
+ isNative: false,
237
+ decimal: 6,
238
+ chainId: 901 /* SOLANA */
239
+ },
240
+ token1: {
241
+ address: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
242
+ symbol: "USDT",
243
+ isNative: false,
244
+ decimal: 6,
245
+ chainId: 901 /* SOLANA */
246
+ },
247
+ chain: "SOLANA"
248
+ }
249
+ }
250
+ };
251
+ var SVM_POOLS_STAGING = SVM_POOLS_DEV;
252
+ var SVM_POOLS_PRODUCTION = SVM_POOLS_DEV;
253
+
254
+ // src/deployment/sui.ts
255
+ var SUI_DEPLOYMENT_DEV = {
256
+ [1001 /* SUI */]: {
257
+ peripheryPackage: "0x96e1d3897efee30bede047a14d186a952350d4759d3175f76ff6ac2c4a121901"
258
+ }
259
+ };
260
+ var SUI_DEPLOYMENT_STAGING = SUI_DEPLOYMENT_DEV;
261
+ var SUI_DEPLOYMENT_PRODUCTION = SUI_DEPLOYMENT_DEV;
262
+ function SuiDeploymentFor(chain, mode) {
263
+ switch (mode) {
264
+ case "DEV":
265
+ return SUI_DEPLOYMENT_DEV[chain] ?? null;
266
+ case "STAGING":
267
+ return SUI_DEPLOYMENT_STAGING[chain] ?? null;
268
+ case "PRODUCTION":
269
+ return SUI_DEPLOYMENT_PRODUCTION[chain] ?? null;
270
+ }
271
+ }
272
+ var SUI_POOLS_DEV = {
273
+ USDC_USDT: {
274
+ [1001 /* SUI */]: {
275
+ poolId: "0xc014f7cb0a2604fb887d09165242828e6fe913f30d7ae2bea80199caed5ccbcb",
276
+ managerCapId: "0xca34c6dff464f42a349294fa9fbe67a6d72eb999081db8de3fd56672b68863ee",
277
+ peripheryPackage: "0x96e1d3897efee30bede047a14d186a952350d4759d3175f76ff6ac2c4a121901",
278
+ token0: {
279
+ address: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
280
+ symbol: "USDC",
281
+ isNative: false,
282
+ decimal: 6,
283
+ chainId: 1001 /* SUI */
284
+ },
285
+ token1: {
286
+ address: "0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT",
287
+ symbol: "USDT",
288
+ isNative: false,
289
+ decimal: 6,
290
+ chainId: 1001 /* SUI */
291
+ },
292
+ chain: "SUI"
293
+ }
294
+ }
295
+ };
296
+ var SUI_POOLS_STAGING = SUI_POOLS_DEV;
297
+ var SUI_POOLS_PRODUCTION = SUI_POOLS_DEV;
298
+
211
299
  // src/deployment/aggregated/dev.ts
212
300
  var POOL_INFO_Dev = {
213
301
  USDC_USDT: {
@@ -233,16 +321,18 @@ var POOL_INFO_Dev = {
233
321
  },
234
322
  address: "0x0433CCB013a590eA4231aAC9ddf05bb753c14127",
235
323
  chain: "ARBITRUM"
236
- }
324
+ },
325
+ ...SVM_POOLS_DEV.USDC_USDT,
326
+ ...SUI_POOLS_DEV.USDC_USDT
237
327
  }
238
328
  }
239
329
  };
240
330
 
241
331
  // src/deployment/aggregated/staging.ts
242
- var POOL_INFO_Staging = {};
332
+ var POOL_INFO_Staging = POOL_INFO_Dev;
243
333
 
244
334
  // src/deployment/aggregated/production.ts
245
- var POOL_INFO_Production = {};
335
+ var POOL_INFO_Production = POOL_INFO_Dev;
246
336
 
247
337
  // src/deployment/aggregated/retrieval.ts
248
338
  function getAllPoolInfo(mode = "PRODUCTION") {
@@ -330,7 +420,8 @@ function getPeripheryDetailsByKernelPoolAndChainId(kernelPool, chainId, mode = "
330
420
  const info = getAllPoolInfo(mode);
331
421
  return info[poolKey]?.peripheryInfo[chainId] ?? null;
332
422
  }
333
- function findTokensBySymbol(symbol, chainIds, mode = "PRODUCTION") {
423
+ function findTokensBySymbol(args) {
424
+ const { symbol, chainIds, mode = "PRODUCTION" } = args;
334
425
  const normalized = symbol.toLowerCase();
335
426
  const chains = chainIds ?? getSupportedChains(mode);
336
427
  const out = [];
@@ -365,6 +456,7 @@ __export(skate_exports, {
365
456
  evmAddressToBytes32: () => evmAddressToBytes32,
366
457
  fromBytes32Address: () => fromBytes32Address,
367
458
  hexToBase58: () => hexToBase58,
459
+ svmBytes32Base58ToEvmAddress: () => svmBytes32Base58ToEvmAddress,
368
460
  toBase58: () => toBase58,
369
461
  toBytes32Address: () => toBytes32Address
370
462
  });
@@ -499,6 +591,9 @@ function bytes32ToEvmAddress(bytes32) {
499
591
  const addressBigInt = userBigInt & BigInt("0xffffffffffffffffffffffffffffffffffffffff");
500
592
  return `0x${addressBigInt.toString(16).padStart(40, "0")}`.toLowerCase();
501
593
  }
594
+ function svmBytes32Base58ToEvmAddress(value) {
595
+ return bytes32ToEvmAddress(base58ToBytes32(value));
596
+ }
502
597
  function toBase58(buffer) {
503
598
  return bs58Encode(buffer);
504
599
  }
@@ -533,6 +628,14 @@ function fromBytes32Address(bytes32Address, vmType) {
533
628
  }
534
629
  }
535
630
 
631
+ // src/errors.ts
632
+ var SdkError = class extends Error {
633
+ name = "SdkError";
634
+ constructor(message, options) {
635
+ super(message, options);
636
+ }
637
+ };
638
+
536
639
  // src/math/tickMath.ts
537
640
  var MAX_UINT256 = (1n << 256n) - 1n;
538
641
  var Q160_MASK = (1n << 160n) - 1n;
@@ -543,6 +646,11 @@ var MIN_SQRT_RATIO = 4295128739n;
543
646
  var MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342n;
544
647
  var MIN_SQRT_PRICE_LIMIT = MIN_SQRT_RATIO + 1n;
545
648
  var MAX_SQRT_PRICE_LIMIT = MAX_SQRT_RATIO - 1n;
649
+ var MIN_SQRT_PRICE_X96 = MIN_SQRT_PRICE_LIMIT;
650
+ var MAX_SQRT_PRICE_X96 = MAX_SQRT_PRICE_LIMIT;
651
+ var TICK_VALUE = 1.0001;
652
+ var PRICE_ZERO = 0;
653
+ var PRICE_INF = 2 ** 32 - 1;
546
654
  function getSqrtRatioAtTick(tick) {
547
655
  if (!Number.isInteger(tick)) {
548
656
  throw new Error("TickMath: tick must be an integer");
@@ -671,6 +779,17 @@ function toInt24(x) {
671
779
  const signed = truncated >= 1n << 23n ? truncated - (1n << 24n) : truncated;
672
780
  return Number(signed);
673
781
  }
782
+ function getPriceAtTick(tick) {
783
+ const sqrtPriceX96 = getSqrtRatioAtTick(tick);
784
+ const Q962 = 1n << 96n;
785
+ return (Number(sqrtPriceX96) / Number(Q962)) ** 2;
786
+ }
787
+ function getTickAtPrice(price) {
788
+ if (price < 0) {
789
+ throw new Error(`getTickAtPrice: invalid price=${price}`);
790
+ }
791
+ return Math.round(Math.log(price) / Math.log(TICK_VALUE));
792
+ }
674
793
 
675
794
  // src/math/fullMath.ts
676
795
  var MAX_UINT2562 = (1n << 256n) - 1n;
@@ -878,6 +997,35 @@ function addDelta(x, y) {
878
997
  }
879
998
  return z;
880
999
  }
1000
+ function getLiquidityForAmount0(sqrtRatioAX96, sqrtRatioBX96, amount0) {
1001
+ if (sqrtRatioAX96 > sqrtRatioBX96) {
1002
+ [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];
1003
+ }
1004
+ return amount0 * sqrtRatioAX96 * sqrtRatioBX96 / (Q96 * (sqrtRatioBX96 - sqrtRatioAX96));
1005
+ }
1006
+ function getLiquidityForAmount1(sqrtRatioAX96, sqrtRatioBX96, amount1) {
1007
+ if (sqrtRatioAX96 > sqrtRatioBX96) {
1008
+ [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];
1009
+ }
1010
+ return amount1 * Q96 / (sqrtRatioBX96 - sqrtRatioAX96);
1011
+ }
1012
+
1013
+ // src/math/kernel.ts
1014
+ var NORMALIZED_DECIMAL = 18;
1015
+ function normalizeAmount(amount, decimal) {
1016
+ if (decimal === NORMALIZED_DECIMAL) return amount;
1017
+ if (!Number.isInteger(decimal)) {
1018
+ throw new Error(`normalizeAmount: non-integer decimal=${decimal}`);
1019
+ }
1020
+ return amount * 10n ** BigInt(NORMALIZED_DECIMAL - decimal);
1021
+ }
1022
+ function deNormalizeAmount(amount, decimal) {
1023
+ if (decimal === NORMALIZED_DECIMAL) return amount;
1024
+ if (!Number.isInteger(decimal)) {
1025
+ throw new Error(`deNormalizeAmount: non-integer decimal=${decimal}`);
1026
+ }
1027
+ return amount / 10n ** BigInt(NORMALIZED_DECIMAL - decimal);
1028
+ }
881
1029
  export {
882
1030
  ActionBoxAddress,
883
1031
  BLOCK_EXPLORER,
@@ -889,20 +1037,43 @@ export {
889
1037
  KernelEventEmitterAddress,
890
1038
  KernelManagerAddress,
891
1039
  MAX_SQRT_PRICE_LIMIT,
1040
+ MAX_SQRT_PRICE_X96,
892
1041
  MAX_SQRT_RATIO,
893
1042
  MAX_TICK,
894
1043
  MIN_SQRT_PRICE_LIMIT,
1044
+ MIN_SQRT_PRICE_X96,
895
1045
  MIN_SQRT_RATIO,
896
1046
  MIN_TICK,
1047
+ NORMALIZED_DECIMAL,
897
1048
  PERIPHERY_DEV,
1049
+ PERIPHERY_PRODUCTION,
1050
+ PERIPHERY_STAGING,
898
1051
  POOL_INFO_Dev,
899
1052
  POOL_INFO_Production,
900
1053
  POOL_INFO_Staging,
1054
+ PRICE_INF,
1055
+ PRICE_ZERO,
901
1056
  PeripheryDeploymentFor,
902
1057
  PeripheryEventEmitterAddress,
903
1058
  PeripheryManagerAddress,
1059
+ Q96,
1060
+ SUI_DEPLOYMENT_DEV,
1061
+ SUI_DEPLOYMENT_PRODUCTION,
1062
+ SUI_DEPLOYMENT_STAGING,
1063
+ SUI_POOLS_DEV,
1064
+ SUI_POOLS_PRODUCTION,
1065
+ SUI_POOLS_STAGING,
1066
+ SVM_DEPLOYMENT_DEV,
1067
+ SVM_DEPLOYMENT_PRODUCTION,
1068
+ SVM_DEPLOYMENT_STAGING,
1069
+ SVM_POOLS_DEV,
1070
+ SVM_POOLS_PRODUCTION,
1071
+ SVM_POOLS_STAGING,
904
1072
  SdkError,
905
1073
  SkateGatewayAddress,
1074
+ SuiDeploymentFor,
1075
+ SvmDeploymentFor,
1076
+ TICK_VALUE,
906
1077
  TaskPhase,
907
1078
  VM,
908
1079
  addDelta,
@@ -911,6 +1082,7 @@ export {
911
1082
  bufferFromBase58,
912
1083
  bytes32ToBase58,
913
1084
  bytes32ToEvmAddress,
1085
+ deNormalizeAmount,
914
1086
  evmAddressToBytes32,
915
1087
  findTokensBySymbol,
916
1088
  fromBytes32Address,
@@ -921,6 +1093,8 @@ export {
921
1093
  getAmount1Delta,
922
1094
  getAmount1DeltaSigned,
923
1095
  getBlockExplorer,
1096
+ getLiquidityForAmount0,
1097
+ getLiquidityForAmount1,
924
1098
  getNextSqrtPriceFromAmount0RoundingUp,
925
1099
  getNextSqrtPriceFromAmount1RoundingDown,
926
1100
  getNextSqrtPriceFromInput,
@@ -928,18 +1102,22 @@ export {
928
1102
  getOtherTokensInPairs,
929
1103
  getPeripheryDetailsByKernelPoolAndChainId,
930
1104
  getPoolInfoByKey,
1105
+ getPriceAtTick,
931
1106
  getSqrtRatioAtTick,
932
1107
  getSupportedChains,
933
1108
  getSupportedPairs,
934
1109
  getSupportedTokens,
1110
+ getTickAtPrice,
935
1111
  getTickAtSqrtRatio,
936
1112
  getTokenSymbol,
937
1113
  hexToBase58,
938
1114
  kernelPoolToPoolKey,
939
1115
  mulDiv,
940
1116
  mulDivRoundingUp,
1117
+ normalizeAmount,
941
1118
  normalizeMode,
942
1119
  skate_exports as skateAdapter,
1120
+ svmBytes32Base58ToEvmAddress,
943
1121
  toBase58,
944
1122
  toBytes32Address,
945
1123
  vmTypeFromChain