genius-intents 0.18.0 → 0.18.1-develop.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 (41) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/direct-pools/fourmeme/fourmeme-direct.service.d.ts +20 -41
  3. package/dist/direct-pools/fourmeme/fourmeme-direct.service.d.ts.map +1 -1
  4. package/dist/direct-pools/fourmeme/fourmeme-direct.service.js +203 -133
  5. package/dist/direct-pools/fourmeme/fourmeme-direct.service.js.map +1 -1
  6. package/dist/direct-pools/fourmeme/fourmeme-direct.types.d.ts +8 -1
  7. package/dist/direct-pools/fourmeme/fourmeme-direct.types.d.ts.map +1 -1
  8. package/dist/lib/dex/hyperswap/hyperswapV2-router.abi.d.ts +3 -0
  9. package/dist/lib/dex/hyperswap/hyperswapV2-router.abi.d.ts.map +1 -0
  10. package/dist/lib/dex/hyperswap/hyperswapV2-router.abi.js +249 -0
  11. package/dist/lib/dex/hyperswap/hyperswapV2-router.abi.js.map +1 -0
  12. package/dist/protocols/four-meme/four-meme.types.d.ts +3 -0
  13. package/dist/protocols/four-meme/four-meme.types.d.ts.map +1 -1
  14. package/dist/protocols/lifi/lifi.service.d.ts.map +1 -1
  15. package/dist/protocols/lifi/lifi.service.js +2 -0
  16. package/dist/protocols/lifi/lifi.service.js.map +1 -1
  17. package/dist/protocols/relay/relay.service.d.ts.map +1 -1
  18. package/dist/protocols/relay/relay.service.js +1 -0
  19. package/dist/protocols/relay/relay.service.js.map +1 -1
  20. package/dist/protocols/v2-dex/v2-dex.service.d.ts +1 -0
  21. package/dist/protocols/v2-dex/v2-dex.service.d.ts.map +1 -1
  22. package/dist/protocols/v2-dex/v2-dex.service.js +43 -67
  23. package/dist/protocols/v2-dex/v2-dex.service.js.map +1 -1
  24. package/dist/protocols/v2-dex/v2-dex.types.d.ts +9 -2
  25. package/dist/protocols/v2-dex/v2-dex.types.d.ts.map +1 -1
  26. package/dist/protocols/v2-dex/v2-dex.types.js +1 -0
  27. package/dist/protocols/v2-dex/v2-dex.types.js.map +1 -1
  28. package/dist/protocols/v3-dex/v3-dex.service.d.ts +1 -0
  29. package/dist/protocols/v3-dex/v3-dex.service.d.ts.map +1 -1
  30. package/dist/protocols/v3-dex/v3-dex.service.js +73 -16
  31. package/dist/protocols/v3-dex/v3-dex.service.js.map +1 -1
  32. package/dist/protocols/v3-dex/v3-dex.types.d.ts +2 -1
  33. package/dist/protocols/v3-dex/v3-dex.types.d.ts.map +1 -1
  34. package/dist/protocols/v3-dex/v3-dex.types.js +1 -0
  35. package/dist/protocols/v3-dex/v3-dex.types.js.map +1 -1
  36. package/dist/types/price-params.d.ts +2 -0
  37. package/dist/types/price-params.d.ts.map +1 -1
  38. package/dist/utils/check-vm.d.ts.map +1 -1
  39. package/dist/utils/check-vm.js +2 -1
  40. package/dist/utils/check-vm.js.map +1 -1
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ ## [0.18.1-develop.0] - 2025-10-13 (Beta)
2
+
3
+ 🧪 **This is a beta release for testing purposes.**
4
+
5
+ ### [0.18.1-develop.0](https://github.com/Genius-Foundation/genius-intents/compare/v0.18.0...v0.18.1-develop.0) (2025-10-13)
6
+
7
+
8
+ ### Features
9
+
10
+ * Direct Pool FourMeme ([#113](https://github.com/Genius-Foundation/genius-intents/issues/113)) ([236bab1](https://github.com/Genius-Foundation/genius-intents/commit/236bab1ab94429f17b8796a3b3c1740afcf2c961))
11
+ * Improved HyperEVM support ([#114](https://github.com/Genius-Foundation/genius-intents/issues/114)) ([0ae045d](https://github.com/Genius-Foundation/genius-intents/commit/0ae045d94404aa00fff256f741791e23b3d9e771))
12
+
13
+
14
+ ### Documentation
15
+
16
+ * update CHANGELOG.md for v0.18.0 (beta) ([9c7e4d3](https://github.com/Genius-Foundation/genius-intents/commit/9c7e4d31ab9c4c6870de989ed4b1056d34fac675))
17
+
18
+
19
+
20
+ ⚠️ **Beta Release Notes:**
21
+ - This version is intended for testing and development
22
+ - May contain experimental features
23
+ - Not recommended for production use
24
+ - Feedback and bug reports are welcome
25
+
26
+ ---
27
+
28
+
1
29
  ## [0.18.0] - 2025-10-10 (Beta)
2
30
 
3
31
  🧪 **This is a beta release for testing purposes.**
@@ -3,57 +3,36 @@ import { FourMemeV2OptimisticQuoteProtocolResponse } from './fourmeme-direct.typ
3
3
  import { ChainIdEnum, ProtocolEnum } from '../../types/enums';
4
4
  import { IntentPriceParams } from '../../types/price-params';
5
5
  export declare class FourMemeV2DirectService {
6
- /**
7
- * The supporting protocol
8
- */
9
6
  readonly protocol = ProtocolEnum.FOUR_MEME;
10
- /**
11
- * The supported chains (BSC only for now)
12
- */
13
7
  readonly chains: ChainIdEnum[];
14
- /**
15
- * Whether this service supports single-chain swaps
16
- */
17
8
  readonly singleChain = true;
18
- /**
19
- * Whether this service supports multi-chain swaps
20
- */
21
9
  readonly multiChain = false;
22
- /**
23
- * TokenManager V2 address on BSC (mainnet)
24
- */
25
- private readonly _tmV2;
26
- /**
27
- * Gas estimate for UI display
28
- */
29
- private readonly _gasEstimate;
30
- /**
31
- * Gas limit for tx construction (safe upper bound)
32
- */
33
- private readonly _gasLimit;
34
- /**
35
- * ABI fragment for TokenManager V2 (only buyTokenAMAP and sellToken)
36
- */
10
+ /** Fixed HelperV3 address (wrapper for ERC20-quoted + native BNB IO) */
11
+ private readonly _helperV3;
12
+ /** Gas hints */
13
+ private readonly _gasEstimateTM;
14
+ private readonly _gasLimitTM;
15
+ private readonly _gasEstimateHelper;
16
+ private readonly _gasLimitHelper;
17
+ /** ABIs */
37
18
  private readonly _tokenManagerV2Abi;
38
- /**
39
- * Interface for ABI encoding/decoding (only TokenManager V2 methods)
40
- */
19
+ private readonly _helperV3TxAbi;
20
+ private readonly _tokenManagerV2SecondaryAbi;
21
+ private readonly _ifaceV2Secondary;
41
22
  private readonly _ifaceV2;
42
- /** PRICE — optimistic, with fast path when hints.amountOut is provided */
43
- fetchPrice(params: IntentPriceParams & {
44
- minAmountOut: string;
45
- }): PriceResponse;
46
- /** QUOTE — unchanged (still reuses priceResponse if present) */
47
- fetchQuote(params: IntentQuoteParams & {
48
- minAmountOut: string;
49
- }): QuoteResponse & {
23
+ private readonly _ifaceHelper;
24
+ fetchPrice(params: IntentPriceParams): PriceResponse;
25
+ fetchQuote(params: IntentQuoteParams): QuoteResponse & {
50
26
  protocolResponse: FourMemeV2OptimisticQuoteProtocolResponse;
51
27
  };
52
28
  private _validatePriceParams;
53
29
  private _isQuoteAddress;
54
- private _resolvePair;
55
- private _applySlippage;
56
- /** Align to GWEI to avoid four.meme contract reverts */
30
+ private _isBnbish;
31
+ /** Convert float/decimal to 1e18 fixed-point bigint safely */
32
+ private _toScaled18;
33
+ /** Recover estimated (pre-slippage) from provided minOut */
34
+ private _reverseFromMin;
35
+ /** Align to GWEI for four.meme contracts (avoids GW/GWEI errors) */
57
36
  private _formatAmount;
58
37
  }
59
38
  //# sourceMappingURL=fourmeme-direct.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fourmeme-direct.service.d.ts","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC5F,OAAO,EAEL,yCAAyC,EAG1C,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D,qBAAa,uBAAuB;IAClC;;OAEG;IACH,SAAgB,QAAQ,0BAA0B;IAElD;;OAEG;IACH,SAAgB,MAAM,gBAAqB;IAE3C;;OAEG;IACH,SAAgB,WAAW,QAAQ;IAEnC;;OAEG;IACH,SAAgB,UAAU,SAAS;IAEnC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwD;IAE9E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IAEjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAyBjC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAE1E,0EAA0E;IACnE,UAAU,CACf,MAAM,EAAE,iBAAiB,GAAG;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,GACA,aAAa;IA6BhB,gEAAgE;IACzD,UAAU,CACf,MAAM,EAAE,iBAAiB,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GACnD,aAAa,GAAG;QAAE,gBAAgB,EAAE,yCAAyC,CAAA;KAAE;IAyFlF,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,cAAc;IAOtB,wDAAwD;IACxD,OAAO,CAAC,aAAa;CAUtB"}
1
+ {"version":3,"file":"fourmeme-direct.service.d.ts","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC5F,OAAO,EAGL,yCAAyC,EAC1C,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D,qBAAa,uBAAuB;IAClC,SAAgB,QAAQ,0BAA0B;IAClD,SAAgB,MAAM,gBAAqB;IAC3C,SAAgB,WAAW,QAAQ;IACnC,SAAgB,UAAU,SAAS;IAEnC,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwD;IAElF,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;IAE5C,WAAW;IACX,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAGxB;IAEX,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG7B;IAEF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAEjC;IAEX,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0D;IAC5F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAGnE,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,aAAa;IAqFpD,UAAU,CACf,MAAM,EAAE,iBAAiB,GACxB,aAAa,GAAG;QAAE,gBAAgB,EAAE,yCAAyC,CAAA;KAAE;IA4KlF,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;IAKjB,8DAA8D;IAC9D,OAAO,CAAC,WAAW;IASnB,4DAA4D;IAC5D,OAAO,CAAC,eAAe;IAQvB,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAUtB"}
@@ -9,80 +9,85 @@ const is_native_1 = require("../../utils/is-native");
9
9
  const utils_1 = require("../../utils");
10
10
  class FourMemeV2DirectService {
11
11
  constructor() {
12
- /**
13
- * The supporting protocol
14
- */
15
12
  this.protocol = enums_1.ProtocolEnum.FOUR_MEME;
16
- /**
17
- * The supported chains (BSC only for now)
18
- */
19
13
  this.chains = [enums_1.ChainIdEnum.BSC];
20
- /**
21
- * Whether this service supports single-chain swaps
22
- */
23
14
  this.singleChain = true;
24
- /**
25
- * Whether this service supports multi-chain swaps
26
- */
27
15
  this.multiChain = false;
28
- /**
29
- * TokenManager V2 address on BSC (mainnet)
30
- */
31
- this._tmV2 = '0x5c952063c7fc8610FFDB798152D69F0B9550762b';
32
- /**
33
- * Gas estimate for UI display
34
- */
35
- this._gasEstimate = '200000';
36
- /**
37
- * Gas limit for tx construction (safe upper bound)
38
- */
39
- this._gasLimit = '220000';
40
- /**
41
- * ABI fragment for TokenManager V2 (only buyTokenAMAP and sellToken)
42
- */
16
+ /** Fixed HelperV3 address (wrapper for ERC20-quoted + native BNB IO) */
17
+ this._helperV3 = '0xF251F83e40a78868FcfA3FA4599Dad6494E46034';
18
+ /** Gas hints */
19
+ this._gasEstimateTM = '200000';
20
+ this._gasLimitTM = '220000';
21
+ this._gasEstimateHelper = '250000';
22
+ this._gasLimitHelper = '275000';
23
+ /** ABIs */
43
24
  this._tokenManagerV2Abi = [
44
- {
45
- type: 'function',
46
- name: 'buyTokenAMAP',
47
- stateMutability: 'payable',
48
- inputs: [
49
- { name: 'amountOut', type: 'uint256' }, // use 0 for AMAP
50
- { name: 'token', type: 'address' },
51
- { name: 'funds', type: 'uint256' }, // msg.value should match funds
52
- { name: 'minAmount', type: 'uint256' }, // min tokens out
53
- ],
54
- outputs: [],
55
- },
56
- {
57
- type: 'function',
58
- name: 'sellToken',
59
- stateMutability: 'nonpayable',
60
- inputs: [
61
- { name: 'amountOut', type: 'uint256' }, // 0 = AMAP
62
- { name: 'token', type: 'address' },
63
- { name: 'expectedAmount', type: 'uint256' }, // tokens in
64
- { name: 'minAmount', type: 'uint256' }, // min quote (BNB) out
65
- ],
66
- outputs: [],
67
- },
25
+ 'function buyTokenAMAP(uint256 amountOut,address token,uint256 funds,uint256 minAmount) payable',
26
+ 'function sellToken(uint256 amountOut,address token,uint256 expectedAmount,uint256 minAmount)',
27
+ ];
28
+ this._helperV3TxAbi = [
29
+ 'function buyWithEth(uint256 origin,address token,address to,uint256 funds,uint256 minAmount) payable',
30
+ 'function sellForEth(uint256 origin,address token,uint256 amount,uint256 minFunds,uint256 feeRate,address feeRecipient)',
68
31
  ];
69
- /**
70
- * Interface for ABI encoding/decoding (only TokenManager V2 methods)
71
- */
32
+ this._tokenManagerV2SecondaryAbi = [
33
+ 'function buyTokenAMAP(address token,uint256 funds,uint256 minAmount) payable',
34
+ ];
35
+ this._ifaceV2Secondary = new ethers_1.ethers.Interface(this._tokenManagerV2SecondaryAbi);
72
36
  this._ifaceV2 = new ethers_1.ethers.Interface(this._tokenManagerV2Abi);
37
+ this._ifaceHelper = new ethers_1.ethers.Interface(this._helperV3TxAbi);
73
38
  }
74
- /** PRICE optimistic, with fast path when hints.amountOut is provided */
39
+ // ========================= PRICE (no RPC) =========================
75
40
  fetchPrice(params) {
76
- const { nonQuoteToken, quoteToken } = this._resolvePair({
77
- tokenIn: params.tokenIn,
78
- tokenOut: params.tokenOut,
79
- });
80
- const minAmountOut = BigInt(params.minAmountOut);
41
+ this._validatePriceParams(params);
42
+ const ov = params.overrideParamsFourMemeDirect;
43
+ if (!ov?.quoteToken || !ov?.tokenManager || !ov?.minAmountOut) {
44
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'overrideParamsFourMemeDirect must include quoteToken, tokenManager, and minAmountOut');
45
+ }
46
+ const isBuying = this._isQuoteAddress(params.tokenIn) && !this._isQuoteAddress(params.tokenOut);
47
+ const nonQuoteToken = isBuying ? params.tokenOut : params.tokenIn;
48
+ const pairIsBnbish = this._isBnbish(ov.quoteToken);
49
+ const helperEligible = (!pairIsBnbish && isBuying && (0, is_native_1.isNative)(params.tokenIn)) ||
50
+ (!pairIsBnbish && !isBuying && (0, is_native_1.isNative)(params.tokenOut));
51
+ // For helper-eligible paths, require conversion inputs for UI/meta conversions
52
+ let quoteFundsWeiFromBnb;
53
+ let bnbFromQuoteWei;
54
+ if (helperEligible) {
55
+ if (ov.bnbUsdPrice == null || ov.quoteTokenPriceUsd == null) {
56
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'overrideParamsFourMemeDirect.bnbUsdPrice and quoteTokenPriceUsd are required for native↔ERC20-quoted conversions');
57
+ }
58
+ const bnbUsd18 = this._toScaled18(ov.bnbUsdPrice);
59
+ const quoteUsd18 = this._toScaled18(ov.quoteTokenPriceUsd);
60
+ if (isBuying) {
61
+ // Convert BNB wei -> QUOTE wei (for analytics/UI)
62
+ const bnbWei = BigInt(this._formatAmount(params.amountIn));
63
+ // quoteWei = bnbWei * (BNB/USD) / (QUOTE/USD)
64
+ quoteFundsWeiFromBnb = (bnbWei * bnbUsd18) / quoteUsd18;
65
+ }
66
+ else if ((0, is_native_1.isNative)(params.tokenOut)) {
67
+ // If we ever need to show "what is the BNB out equivalent of some QUOTE wei"
68
+ // bnbWei = quoteWei * (QUOTE/USD) / (BNB/USD)
69
+ // (we don't know quoteWei here unless you pass it; kept for symmetry)
70
+ // bnbFromQuoteWei = (quoteWei * quoteUsd18) / bnbUsd18;
71
+ }
72
+ }
73
+ // UI estimate from provided minOut (reverse slippage)
74
+ const estOut = this._reverseFromMin(BigInt(ov.minAmountOut), params.slippage ?? 0);
75
+ const willUseHelper = helperEligible;
76
+ const router = willUseHelper ? this._helperV3 : ov.tokenManager;
81
77
  const protocolResponse = {
82
- routerAddress: this._tmV2,
83
- pairTokens: [nonQuoteToken, quoteToken],
78
+ routerAddress: router,
79
+ pairTokens: [nonQuoteToken, ov.quoteToken],
84
80
  version: '2',
85
81
  rateMode: 'quotePerToken',
82
+ // Optional meta block for your UI/telemetry; types can allow optional fields
83
+ // @ts-ignore (if your type doesn't include this, add optional fields or index signature)
84
+ conversions: {
85
+ helperEligible: String(helperEligible),
86
+ quoteFundsWeiFromBnb: quoteFundsWeiFromBnb?.toString(),
87
+ bnbFromQuoteWei: bnbFromQuoteWei?.toString(),
88
+ bnbUsdPrice: ov.bnbUsdPrice,
89
+ quoteTokenPriceUsd: ov.quoteTokenPriceUsd,
90
+ },
86
91
  };
87
92
  return {
88
93
  protocol: this.protocol,
@@ -91,67 +96,133 @@ class FourMemeV2DirectService {
91
96
  tokenIn: params.tokenIn,
92
97
  tokenOut: params.tokenOut,
93
98
  amountIn: params.amountIn,
94
- amountOut: minAmountOut.toString(),
95
- estimatedGas: this._gasEstimate,
99
+ amountOut: estOut.toString(), // UI estimate; calldata uses ov.minAmountOut
100
+ estimatedGas: willUseHelper ? this._gasEstimateHelper : this._gasEstimateTM,
96
101
  slippage: params.slippage,
97
102
  protocolResponse,
98
103
  };
99
104
  }
100
- /** QUOTE — unchanged (still reuses priceResponse if present) */
105
+ // ========================= QUOTE (build calldata from overrides) =========================
101
106
  fetchQuote(params) {
102
107
  this._validatePriceParams(params);
103
- // Reuse price if provided; else compute optimistic price once
104
108
  let price = params.priceResponse;
105
109
  if (!price)
106
110
  price = this.fetchPrice(params);
107
- const pr = price.protocolResponse;
108
- const { isBuying, nonQuoteToken } = this._resolvePair({
109
- tokenIn: params.tokenIn,
110
- tokenOut: params.tokenOut,
111
- });
112
- const optimisticOut = BigInt(price.amountOut);
113
- const minOut = this._applySlippage(optimisticOut, params.slippage, false);
111
+ const ov = params.overrideParamsFourMemeDirect;
112
+ if (!ov?.quoteToken || !ov?.tokenManager || !ov?.minAmountOut) {
113
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'overrideParamsFourMemeDirect must include quoteToken, tokenManager, and minAmountOut');
114
+ }
115
+ const isBuying = this._isQuoteAddress(params.tokenIn) && !this._isQuoteAddress(params.tokenOut);
116
+ const nonQuoteToken = isBuying ? params.tokenOut : params.tokenIn;
117
+ const pairIsBnbish = this._isBnbish(ov.quoteToken);
118
+ const wantsBnbOut = (0, is_native_1.isNative)(params.tokenOut);
119
+ const isNativeIn = (0, is_native_1.isNative)(params.tokenIn);
120
+ const helperEligible = (!pairIsBnbish && isBuying && isNativeIn) || (!pairIsBnbish && !isBuying && wantsBnbOut);
121
+ // Conversions are only for UI parity, not calldata.
122
+ if (helperEligible && (ov.bnbUsdPrice == null || ov.quoteTokenPriceUsd == null)) {
123
+ throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'overrideParamsFourMemeDirect.bnbUsdPrice and quoteTokenPriceUsd are required for native↔ERC20-quoted conversions');
124
+ }
125
+ const estOut = BigInt(ov.minAmountOut != null ? ov.minAmountOut : price.amountOut);
126
+ const minOut = BigInt(ov.minAmountOut);
114
127
  let tx;
128
+ let router;
115
129
  if (isBuying) {
116
- // buyTokenAMAP(uint amountOut, address token, uint funds, uint minAmount)
117
- const isNativeIn = (0, is_native_1.isNative)(params.tokenIn);
118
- const funds = this._formatAmount(params.amountIn); // align to GWEI to avoid reverts
119
- const data = this._ifaceV2.encodeFunctionData('buyTokenAMAP', [
120
- 0n, // AMAP
121
- nonQuoteToken,
122
- BigInt(funds),
123
- BigInt(minOut),
124
- ]);
125
- tx = {
126
- to: this._tmV2,
127
- data: data,
128
- value: isNativeIn ? funds : '0',
129
- gasEstimate: this._gasEstimate,
130
- gasLimit: this._gasLimit,
131
- };
130
+ const funds = this._formatAmount(params.amountIn);
131
+ if (helperEligible && isNativeIn) {
132
+ // HelperV3.buyWithEth (selector unchanged from pessimistic)
133
+ const toArg = params.receiver && params.receiver !== params.from ? params.receiver : constants_1.ZERO_ADDRESS;
134
+ const data = this._ifaceHelper.encodeFunctionData('buyWithEth', [
135
+ 0n,
136
+ nonQuoteToken,
137
+ toArg,
138
+ BigInt(funds),
139
+ minOut,
140
+ ]);
141
+ tx = {
142
+ to: this._helperV3,
143
+ data: data,
144
+ value: funds,
145
+ gasEstimate: this._gasEstimateHelper,
146
+ gasLimit: this._gasLimitHelper,
147
+ };
148
+ router = this._helperV3;
149
+ }
150
+ else {
151
+ // TMv2.buyTokenAMAP — select the SAME selector as pessimistic does
152
+ const useSecondary = !(params.receiver && params.receiver !== params.from);
153
+ const data = useSecondary
154
+ ? this._ifaceV2Secondary.encodeFunctionData('buyTokenAMAP', [
155
+ nonQuoteToken,
156
+ BigInt(funds),
157
+ minOut,
158
+ ])
159
+ : this._ifaceV2.encodeFunctionData('buyTokenAMAP', [
160
+ 0n, // AMAP
161
+ nonQuoteToken,
162
+ BigInt(funds),
163
+ minOut,
164
+ ]);
165
+ tx = {
166
+ to: ov.tokenManager,
167
+ data: data,
168
+ value: isNativeIn ? funds : '0',
169
+ gasEstimate: this._gasEstimateTM,
170
+ gasLimit: this._gasLimitTM,
171
+ };
172
+ router = ov.tokenManager;
173
+ }
132
174
  }
133
175
  else {
134
- // sellToken(uint amountOut, address token, uint expectedAmount, uint minAmount)
176
+ // SELL
135
177
  const tokenAmountIn = this._formatAmount(params.amountIn);
136
- const minQuoteOut = this._formatAmount(minOut.toString());
137
- const data = this._ifaceV2.encodeFunctionData('sellToken', [
138
- 0n, // AMAP
139
- nonQuoteToken,
140
- BigInt(tokenAmountIn),
141
- BigInt(minQuoteOut),
142
- ]);
143
- tx = {
144
- to: this._tmV2,
145
- data: data,
146
- value: '0',
147
- gasEstimate: this._gasEstimate,
148
- gasLimit: this._gasLimit,
149
- };
178
+ if (helperEligible && wantsBnbOut) {
179
+ throw new Error('four.meme HelperV3.sellForEth not yet implemented');
180
+ // HelperV3.sellForEth (selector unchanged from pessimistic)
181
+ const data = this._ifaceHelper.encodeFunctionData('sellForEth', [
182
+ 0n,
183
+ nonQuoteToken,
184
+ BigInt(tokenAmountIn),
185
+ minOut, // min BNB out
186
+ 0n,
187
+ constants_1.ZERO_ADDRESS,
188
+ ]);
189
+ tx = {
190
+ to: this._helperV3,
191
+ data: data,
192
+ value: '0',
193
+ gasEstimate: this._gasEstimateHelper,
194
+ gasLimit: this._gasLimitHelper,
195
+ };
196
+ router = this._helperV3;
197
+ }
198
+ else {
199
+ // TMv2.sellToken
200
+ const data = this._ifaceV2.encodeFunctionData('sellToken', [
201
+ 0n, // AMAP
202
+ nonQuoteToken,
203
+ BigInt(tokenAmountIn),
204
+ minOut, // min quote out
205
+ ]);
206
+ tx = {
207
+ to: ov.tokenManager,
208
+ data: data,
209
+ value: '0',
210
+ gasEstimate: this._gasEstimateTM,
211
+ gasLimit: this._gasLimitTM,
212
+ };
213
+ router = ov.tokenManager;
214
+ }
150
215
  }
216
+ // Approval parity with pessimistic:
217
+ // - Native-in BUY => no approval
218
+ // - Else => approve TokenManager (even for Helper SELL)
219
+ const needsApproval = !(isBuying && isNativeIn);
220
+ const approvalSpender = needsApproval ? ov.tokenManager : constants_1.ZERO_ADDRESS;
151
221
  const protocolResponse = {
152
- ...pr,
222
+ ...price.protocolResponse,
223
+ routerAddress: router,
153
224
  data: tx.data,
154
- gas: tx.gasEstimate ?? '0',
225
+ gas: tx.gasEstimate ?? (helperEligible ? this._gasEstimateHelper : this._gasEstimateTM),
155
226
  isBuying,
156
227
  };
157
228
  return {
@@ -159,35 +230,30 @@ class FourMemeV2DirectService {
159
230
  tokenIn: params.tokenIn,
160
231
  tokenOut: params.tokenOut,
161
232
  amountIn: params.amountIn,
162
- amountOut: optimisticOut.toString(),
233
+ amountOut: estOut.toString(), // UI estimate only; calldata uses ov.minAmountOut
163
234
  from: params.from,
164
235
  receiver: params.receiver ?? params.from,
165
236
  evmExecutionPayload: {
166
237
  transactionData: tx,
167
238
  approval: {
168
- spender: this._tmV2,
239
+ spender: approvalSpender,
169
240
  token: params.tokenIn,
170
- amount: params.amountIn,
241
+ amount: needsApproval ? params.amountIn : '0',
171
242
  },
172
243
  },
173
244
  slippage: params.slippage,
174
245
  networkIn: params.networkIn,
175
246
  networkOut: params.networkOut,
176
- estimatedGas: tx.gasEstimate,
177
247
  protocolResponse,
178
248
  };
179
249
  }
180
- // ---------- helpers ----------
250
+ // ========================= helpers =========================
181
251
  _validatePriceParams(p) {
182
252
  if (p.networkIn !== enums_1.ChainIdEnum.BSC || p.networkOut !== enums_1.ChainIdEnum.BSC) {
183
253
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Only BSC single-chain supported');
184
254
  }
185
255
  const isInQuote = this._isQuoteAddress(p.tokenIn);
186
256
  const isOutQuote = this._isQuoteAddress(p.tokenOut);
187
- /**
188
- * Only valid if exactly one side is a quote token
189
- * (BNB/WBNB/CAKE/USDT/USD1/ASTER)
190
- */
191
257
  if (isInQuote === isOutQuote) {
192
258
  throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Exactly one side must be a supported quote token (BNB/WBNB/CAKE/USDT/USD1/ASTER)');
193
259
  }
@@ -201,25 +267,29 @@ class FourMemeV2DirectService {
201
267
  a === fourmeme_direct_config_1.FourMemeQuoteTokensEnum.USD1.toLowerCase() ||
202
268
  a === fourmeme_direct_config_1.FourMemeQuoteTokensEnum.ASTER.toLowerCase());
203
269
  }
204
- _resolvePair(params) {
205
- const { tokenIn, tokenOut } = params;
206
- const isInQuote = this._isQuoteAddress(tokenIn);
207
- const isOutQuote = this._isQuoteAddress(tokenOut);
208
- if (isInQuote === isOutQuote) {
209
- throw (0, utils_1.sdkError)(enums_1.SdkErrorEnum.INVALID_PARAMS, 'Exactly one side must be a supported quote token (BNB/WBNB/CAKE/USDT/USD1/ASTER)');
210
- }
211
- const isBuying = isInQuote; // spend quote to buy token
212
- const quoteToken = isInQuote ? tokenIn : tokenOut;
213
- const nonQuoteToken = isInQuote ? tokenOut : tokenIn;
214
- return { isBuying, tokenAddress: nonQuoteToken, nonQuoteToken, quoteToken };
270
+ _isBnbish(addr) {
271
+ const a = addr.toLowerCase();
272
+ return a === constants_1.ZERO_ADDRESS.toLowerCase() || a === fourmeme_direct_config_1.FourMemeQuoteTokensEnum.WBNB.toLowerCase();
273
+ }
274
+ /** Convert float/decimal to 1e18 fixed-point bigint safely */
275
+ _toScaled18(val) {
276
+ const s = String(val);
277
+ const [i, f = ''] = s.split('.');
278
+ const DEC = 18n;
279
+ const ip = BigInt(i || '0');
280
+ const frac = f.slice(0, 18).padEnd(18, '0');
281
+ return ip * 10n ** DEC + BigInt(frac || '0');
215
282
  }
216
- _applySlippage(amount, slippagePercent, isMaximum) {
217
- const bps = BigInt(Math.floor(slippagePercent * 100)); // 1% => 100 bps
218
- const base = 10000n;
219
- const mul = isMaximum ? base + bps : base - bps;
220
- return (amount * mul) / base;
283
+ /** Recover estimated (pre-slippage) from provided minOut */
284
+ _reverseFromMin(minOut, slippagePercent) {
285
+ const bps = BigInt(Math.floor((slippagePercent ?? 0) * 100));
286
+ if (bps === 0n)
287
+ return minOut;
288
+ const num = minOut * 10000n;
289
+ const den = 10000n - bps;
290
+ return (num + den - 1n) / den; // ceil
221
291
  }
222
- /** Align to GWEI to avoid four.meme contract reverts */
292
+ /** Align to GWEI for four.meme contracts (avoids GW/GWEI errors) */
223
293
  _formatAmount(amountDecStr) {
224
294
  const GWEI = 10n ** 9n;
225
295
  let x = BigInt(amountDecStr);
@@ -228,7 +298,7 @@ class FourMemeV2DirectService {
228
298
  const rem = x % GWEI;
229
299
  if (rem === 0n)
230
300
  return x.toString();
231
- x = x - rem; // floor to GWEI
301
+ x -= rem; // floor to GWEI
232
302
  if (x === 0n)
233
303
  return GWEI.toString();
234
304
  return x.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"fourmeme-direct.service.js","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fourmeme-direct.service.js","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAQhC,6CAA4E;AAC5E,qEAAmE;AAEnE,qDAAqD;AACrD,qDAAiD;AACjD,uCAAuC;AAEvC,MAAa,uBAAuB;IAApC;QACkB,aAAQ,GAAG,oBAAY,CAAC,SAAS,CAAC;QAClC,WAAM,GAAG,CAAC,mBAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,gBAAW,GAAG,IAAI,CAAC;QACnB,eAAU,GAAG,KAAK,CAAC;QAEnC,wEAAwE;QACvD,cAAS,GAAW,4CAA4C,CAAC;QAElF,gBAAgB;QACC,mBAAc,GAAG,QAAQ,CAAC;QAC1B,gBAAW,GAAG,QAAQ,CAAC;QACvB,uBAAkB,GAAG,QAAQ,CAAC;QAC9B,oBAAe,GAAG,QAAQ,CAAC;QAE5C,WAAW;QACM,uBAAkB,GAAG;YACpC,gGAAgG;YAChG,8FAA8F;SACtF,CAAC;QAEM,mBAAc,GAAwB;YACrD,sGAAsG;YACtG,wHAAwH;SACzH,CAAC;QAEe,gCAA2B,GAAG;YAC7C,8EAA8E;SACtE,CAAC;QAEM,sBAAiB,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3E,aAAQ,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzD,iBAAY,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAmU5E,CAAC;IAjUC,qEAAqE;IAC9D,UAAU,CAAC,MAAyB;QACzC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,EAAE,GAAG,MAAM,CAAC,4BAEL,CAAC;QACd,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,YAAY,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC;YAC9D,MAAM,IAAA,gBAAQ,EACZ,oBAAY,CAAC,cAAc,EAC3B,sFAAsF,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAElE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,cAAc,GAClB,CAAC,CAAC,YAAY,IAAI,QAAQ,IAAI,IAAA,oBAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,IAAA,oBAAQ,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5D,+EAA+E;QAC/E,IAAI,oBAAwC,CAAC;QAC7C,IAAI,eAAmC,CAAC;QAExC,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC5D,MAAM,IAAA,gBAAQ,EACZ,oBAAY,CAAC,cAAc,EAC3B,kHAAkH,CACnH,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;YAE3D,IAAI,QAAQ,EAAE,CAAC;gBACb,kDAAkD;gBAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3D,8CAA8C;gBAC9C,oBAAoB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC;YAC1D,CAAC;iBAAM,IAAI,IAAA,oBAAQ,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,6EAA6E;gBAC7E,8CAA8C;gBAC9C,sEAAsE;gBACtE,wDAAwD;YAC1D,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAEnF,MAAM,aAAa,GAAG,cAAc,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;QAEhE,MAAM,gBAAgB,GAA8C;YAClE,aAAa,EAAE,MAAM;YACrB,UAAU,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,UAAU,CAAC;YAC1C,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,eAAe;YACzB,6EAA6E;YAC7E,yFAAyF;YACzF,WAAW,EAAE;gBACX,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;gBACtC,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,EAAE;gBACtD,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE;gBAC5C,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,kBAAkB,EAAE,EAAE,CAAC,kBAAkB;aAC1C;SACF,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,6CAA6C;YAC3E,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc;YAC3E,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,4FAA4F;IACrF,UAAU,CACf,MAAyB;QAEzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,4BAEL,CAAC;QACd,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,YAAY,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC;YAC9D,MAAM,IAAA,gBAAQ,EACZ,oBAAY,CAAC,cAAc,EAC3B,sFAAsF,CACvF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAA,oBAAQ,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAA,oBAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,cAAc,GAClB,CAAC,CAAC,YAAY,IAAI,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;QAE3F,oDAAoD;QACpD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC;YAChF,MAAM,IAAA,gBAAQ,EACZ,oBAAY,CAAC,cAAc,EAC3B,kHAAkH,CACnH,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,EAAsB,CAAC;QAC3B,IAAI,MAAc,CAAC;QAEnB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAElD,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;gBACjC,4DAA4D;gBAC5D,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAY,CAAC;gBAEtF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,YAAY,EAAE;oBAC9D,EAAE;oBACF,aAAa;oBACb,KAAK;oBACL,MAAM,CAAC,KAAK,CAAC;oBACb,MAAM;iBACP,CAAC,CAAC;gBAEH,EAAE,GAAG;oBACH,EAAE,EAAE,IAAI,CAAC,SAAS;oBAClB,IAAI,EAAE,IAAqB;oBAC3B,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,IAAI,CAAC,kBAAkB;oBACpC,QAAQ,EAAE,IAAI,CAAC,eAAe;iBAC/B,CAAC;gBACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3E,MAAM,IAAI,GAAG,YAAY;oBACvB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,EAAE;wBACxD,aAAa;wBACb,MAAM,CAAC,KAAK,CAAC;wBACb,MAAM;qBACP,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,EAAE;wBAC/C,EAAE,EAAE,OAAO;wBACX,aAAa;wBACb,MAAM,CAAC,KAAK,CAAC;wBACb,MAAM;qBACP,CAAC,CAAC;gBAEP,EAAE,GAAG;oBACH,EAAE,EAAE,EAAE,CAAC,YAAY;oBACnB,IAAI,EAAE,IAAqB;oBAC3B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;oBAC/B,WAAW,EAAE,IAAI,CAAC,cAAc;oBAChC,QAAQ,EAAE,IAAI,CAAC,WAAW;iBAC3B,CAAC;gBACF,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;YACP,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE1D,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAErE,4DAA4D;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,YAAY,EAAE;oBAC9D,EAAE;oBACF,aAAa;oBACb,MAAM,CAAC,aAAa,CAAC;oBACrB,MAAM,EAAE,cAAc;oBACtB,EAAE;oBACF,wBAAY;iBACb,CAAC,CAAC;gBAEH,EAAE,GAAG;oBACH,EAAE,EAAE,IAAI,CAAC,SAAS;oBAClB,IAAI,EAAE,IAAqB;oBAC3B,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,IAAI,CAAC,kBAAkB;oBACpC,QAAQ,EAAE,IAAI,CAAC,eAAe;iBAC/B,CAAC;gBACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,iBAAiB;gBACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBACzD,EAAE,EAAE,OAAO;oBACX,aAAa;oBACb,MAAM,CAAC,aAAa,CAAC;oBACrB,MAAM,EAAE,gBAAgB;iBACzB,CAAC,CAAC;gBAEH,EAAE,GAAG;oBACH,EAAE,EAAE,EAAE,CAAC,YAAY;oBACnB,IAAI,EAAE,IAAqB;oBAC3B,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,IAAI,CAAC,cAAc;oBAChC,QAAQ,EAAE,IAAI,CAAC,WAAW;iBAC3B,CAAC;gBACF,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,iCAAiC;QACjC,wDAAwD;QACxD,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAY,CAAC;QAEvE,MAAM,gBAAgB,GAA8C;YAClE,GAAI,KAAK,CAAC,gBAA8D;YACxE,aAAa,EAAE,MAAM;YACrB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,GAAG,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;YACvF,QAAQ;SACT,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,kDAAkD;YAChF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI;YACxC,mBAAmB,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE;oBACR,OAAO,EAAE,eAAe;oBACxB,KAAK,EAAE,MAAM,CAAC,OAAO;oBACrB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;iBAC9C;aACF;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,8DAA8D;IAEtD,oBAAoB,CAAC,CAAoB;QAC/C,IAAI,CAAC,CAAC,SAAS,KAAK,mBAAW,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,KAAK,mBAAW,CAAC,GAAG,EAAE,CAAC;YACxE,MAAM,IAAA,gBAAQ,EAAC,oBAAY,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAA,gBAAQ,EACZ,oBAAY,CAAC,cAAc,EAC3B,kFAAkF,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CACL,CAAC,KAAK,wBAAY,CAAC,WAAW,EAAE;YAChC,CAAC,KAAK,gDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,CAAC,KAAK,gDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,CAAC,KAAK,gDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,CAAC,KAAK,gDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,CAAC,KAAK,gDAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,CAClD,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,IAAY;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,wBAAY,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,gDAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9F,CAAC;IAED,8DAA8D;IACtD,WAAW,CAAC,GAAW;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC;QAChB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,4DAA4D;IACpD,eAAe,CAAC,MAAc,EAAE,eAAuB;QAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;QACzB,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO;IACxC,CAAC;IAED,oEAAoE;IAC5D,aAAa,CAAC,YAAoB;QACxC,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC,IAAI,GAAG,CAAC,CAAC,gBAAgB;QAC1B,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;CACF;AAnWD,0DAmWC"}
@@ -1,3 +1,10 @@
1
+ export type FourMemeDirectPoolPriceOverrideParams = {
2
+ quoteToken: string;
3
+ tokenManager: string;
4
+ bnbUsdPrice?: number;
5
+ quoteTokenPriceUsd?: number;
6
+ minAmountOut: string;
7
+ };
1
8
  /** Protocol payload returned inside your PriceResponse.protocolResponse */
2
9
  export type FourMemeV2OptimisticPriceProtocolResponse = {
3
10
  /** TokenManager (V2) router */
@@ -5,7 +12,7 @@ export type FourMemeV2OptimisticPriceProtocolResponse = {
5
12
  /** [nonQuoteToken, quoteToken] — quoteToken may be ZERO_ADDRESS for native BNB */
6
13
  pairTokens: [string, string];
7
14
  /** Always "2" for this service */
8
- version: '2';
15
+ version: string;
9
16
  /**
10
17
  * Orientation of lastPrice; this service assumes "quote per 1 token".
11
18
  * - quotePerToken: lastPrice = quote_units / token_units (scaled by priceScale)
@@ -1 +1 @@
1
- {"version":3,"file":"fourmeme-direct.types.d.ts","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,yCAAyC,GAAG;IACtD,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IAEtB,kFAAkF;IAClF,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,kCAAkC;IAClC,OAAO,EAAE,GAAG,CAAC;IAEb;;;OAGG;IACH,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,yCAAyC,GACnD,yCAAyC,GAAG;IAC1C,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IAEZ,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"fourmeme-direct.types.d.ts","sourceRoot":"","sources":["../../../src/direct-pools/fourmeme/fourmeme-direct.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qCAAqC,GAAG;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,yCAAyC,GAAG;IACtD,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IAEtB,kFAAkF;IAClF,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,yCAAyC,GACnD,yCAAyC,GAAG;IAC1C,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IAEZ,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Abi } from 'viem';
2
+ export declare const hyperswapV2RouterAbi: Abi;
3
+ //# sourceMappingURL=hyperswapV2-router.abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperswapV2-router.abi.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/hyperswap/hyperswapV2-router.abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE3B,eAAO,MAAM,oBAAoB,EAAE,GAoPzB,CAAC"}