@mixerx/oracles 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/factory.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { GasPriceOracle } from './infrastructure/gas/GasPriceOracle';
2
2
  import { TokenPriceOracle } from './infrastructure/token-price/TokenPriceOracle';
3
- import { TornadoFeeOracle } from './infrastructure/tornado/TornadoFeeOracle';
3
+ import { MixerXFeeOracle } from './infrastructure/tornado/TornadoFeeOracle';
4
4
  import { ITokenPriceRepository } from './domain/repositories';
5
5
  import { ChainId } from './infrastructure/config/gasOracleConfigs';
6
6
  import { TokenPrices } from './types';
@@ -43,8 +43,10 @@ export interface IMixerxOraclesModule {
43
43
  gasPriceOracle: GasPriceOracle;
44
44
  /** Token price oracle (Multicall + OffchainOracle) */
45
45
  tokenPriceOracle: TokenPriceOracle;
46
- /** Tornado fee oracle (V5 - calculates withdrawal fees) */
47
- tornadoFeeOracle: TornadoFeeOracle;
46
+ /** MixerX fee oracle - calculates withdrawal fees and protocol gas policy. */
47
+ mixerXFeeOracle: MixerXFeeOracle;
48
+ /** @deprecated Use mixerXFeeOracle. */
49
+ tornadoFeeOracle: MixerXFeeOracle;
48
50
  /** Convenience method to fetch token prices */
49
51
  fetchPrices(): Promise<TokenPrices>;
50
52
  /** Chain ID */
@@ -56,7 +58,7 @@ export interface IMixerxOraclesModule {
56
58
  * This creates a complete oracle module with:
57
59
  * - GasPriceOracle: Fetches EIP-1559 and Legacy gas prices from multiple sources
58
60
  * - TokenPriceOracle: Fetches token prices using Multicall to OffchainOracle
59
- * - TornadoFeeOracle: Calculates Tornado Cash withdrawal fees
61
+ * - MixerXFeeOracle: Calculates MixerX withdrawal fees and protocol gas policy
60
62
  */
61
63
  export declare function createMixerxOraclesModule(config: MixerxOraclesConfig): IMixerxOraclesModule;
62
64
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAA2B,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IAEjB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IAExC,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yFAAyF;IACzF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1E,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC;KACnF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,cAAc,EAAE,cAAc,CAAC;IAE/B,sDAAsD;IACtD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,2DAA2D;IAC3D,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,+CAA+C;IAC/C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,oBAAoB,CA6CtB"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IAEjB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IAExC,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yFAAyF;IACzF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1E,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC;KACnF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,cAAc,EAAE,cAAc,CAAC;IAE/B,sDAAsD;IACtD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,8EAA8E;IAC9E,eAAe,EAAE,eAAe,CAAC;IAEjC,uCAAuC;IACvC,gBAAgB,EAAE,eAAe,CAAC;IAElC,+CAA+C;IAC/C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpC,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,oBAAoB,CA8CtB"}
package/dist/factory.js CHANGED
@@ -11,7 +11,7 @@ const ProtocolTokenConfig_1 = require("./infrastructure/config/ProtocolTokenConf
11
11
  * This creates a complete oracle module with:
12
12
  * - GasPriceOracle: Fetches EIP-1559 and Legacy gas prices from multiple sources
13
13
  * - TokenPriceOracle: Fetches token prices using Multicall to OffchainOracle
14
- * - TornadoFeeOracle: Calculates Tornado Cash withdrawal fees
14
+ * - MixerXFeeOracle: Calculates MixerX withdrawal fees and protocol gas policy
15
15
  */
16
16
  function createMixerxOraclesModule(config) {
17
17
  // Multicall remains explicit/hardcoded-compatible by design
@@ -26,8 +26,8 @@ function createMixerxOraclesModule(config) {
26
26
  });
27
27
  // Create token price oracle
28
28
  const tokenPriceOracle = new TokenPriceOracle_1.TokenPriceOracle(config.rpcUrl, config.chainId, offchainOracleAddress, multicallAddress, defaultTokens);
29
- // Create tornado fee oracle
30
- const tornadoFeeOracle = new TornadoFeeOracle_1.TornadoFeeOracle({
29
+ // Create MixerX fee oracle
30
+ const mixerXFeeOracle = new TornadoFeeOracle_1.MixerXFeeOracle({
31
31
  chainId: config.chainId,
32
32
  rpcUrl: config.rpcUrl,
33
33
  relayerFeePercent: config.relayerFeePercent,
@@ -40,7 +40,8 @@ function createMixerxOraclesModule(config) {
40
40
  return {
41
41
  gasPriceOracle,
42
42
  tokenPriceOracle,
43
- tornadoFeeOracle,
43
+ mixerXFeeOracle,
44
+ tornadoFeeOracle: mixerXFeeOracle,
44
45
  chainId: config.chainId,
45
46
  // Convenience method
46
47
  async fetchPrices() {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;AAiEA,8DA+CC;AAhHD,wEAAqE;AACrE,oFAAiF;AACjF,gFAAsG;AAGtG,qFAAiH;AAoDjH;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACvC,MAA2B;IAE3B,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,4CAA4C,CAAC;IACjG,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAA,kDAA4B,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3G,MAAM,aAAa,GAAG,IAAA,0CAAoB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAC3C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,CACd,CAAC;IAEF,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,cAAc;QACd,gBAAgB;QAChB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,gBAAgB;QAChB,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO;QAEvB,qBAAqB;QACrB,KAAK,CAAC,WAAW;YACf,OAAO,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;AAoEA,8DAgDC;AApHD,wEAAqE;AACrE,oFAAiF;AACjF,gFAA4E;AAG5E,qFAAiH;AAuDjH;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACvC,MAA2B;IAE3B,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,4CAA4C,CAAC;IACjG,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,IAAI,IAAA,kDAA4B,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3G,MAAM,aAAa,GAAG,IAAA,0CAAoB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,0BAA0B;IAC1B,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAC3C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,CACd,CAAC;IAEF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,cAAc;QACd,gBAAgB;QAChB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,gBAAgB;QAChB,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,gBAAgB,EAAE,eAAe;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QAEvB,qBAAqB;QACrB,KAAK,CAAC,WAAW;YACf,OAAO,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -3,7 +3,9 @@ import { TokenPriceOracle } from '../token-price/TokenPriceOracle';
3
3
  import { ITokenPriceRepository } from '../../domain/repositories';
4
4
  import { ChainId } from '../config/gasOracleConfigs';
5
5
  import { ILogger } from '../../application/ports/ILogger';
6
- export interface TornadoFeeOracleOptions {
6
+ export type MixerXTxType = 'relayer_withdrawal' | 'user_withdrawal' | 'relayer_withdrawal_check_v4';
7
+ export type MixerXGasPurpose = 'fee_quote' | 'fee_validation' | 'send' | 'replacement';
8
+ export interface MixerXFeeOracleOptions {
7
9
  chainId: ChainId;
8
10
  rpcUrl: string;
9
11
  relayerFeePercent: number;
@@ -14,77 +16,80 @@ export interface TornadoFeeOracleOptions {
14
16
  multicallAddress?: string;
15
17
  offchainOracleAddress?: string;
16
18
  }
17
- export interface WithdrawalFeeInput {
19
+ export interface MixerXWithdrawalFeeInput {
18
20
  currency: string;
19
21
  amount: bigint;
20
22
  decimals: number;
21
23
  refund?: string;
22
- txType?: 'relayer_withdrawal' | 'user_withdrawal' | 'relayer_withdrawal_check_v4';
24
+ txType?: MixerXTxType;
25
+ purpose?: Extract<MixerXGasPurpose, 'fee_quote' | 'fee_validation'>;
23
26
  }
24
- export interface FeeCalculationResult {
27
+ export interface MixerXGasParametersForTxInput {
28
+ txType?: MixerXTxType;
29
+ purpose?: MixerXGasPurpose;
30
+ isLegacy?: boolean;
31
+ }
32
+ export interface MixerXGasParametersForTxResult extends GasPriceParams {
33
+ txType: MixerXTxType;
34
+ purpose: MixerXGasPurpose;
35
+ bumpPercent: number;
36
+ }
37
+ export interface MixerXFeeCalculationResult {
25
38
  gasCost: bigint;
26
39
  relayerFee: bigint;
27
40
  refundAmount: bigint;
28
41
  totalFee: bigint;
29
42
  currency: string;
43
+ gasLimit: number;
44
+ gasPriceWei: bigint;
45
+ maxFeePerGas?: string;
46
+ maxPriorityFeePerGas?: string;
47
+ gasPrice?: string;
48
+ bumpPercent: number;
49
+ txType: MixerXTxType;
50
+ gasPurpose: Extract<MixerXGasPurpose, 'fee_quote' | 'fee_validation'>;
30
51
  }
52
+ export type TornadoFeeOracleOptions = MixerXFeeOracleOptions;
53
+ export type WithdrawalFeeInput = MixerXWithdrawalFeeInput;
54
+ export type FeeCalculationResult = MixerXFeeCalculationResult;
31
55
  /**
32
- * TornadoFeeOracle
33
- * Calculates fees for Tornado Cash withdrawals
34
- * Based on @tornado/tornado-oracles TornadoFeeOracleV5
56
+ * MixerXFeeOracle
57
+ * Calculates protocol withdrawal fees and transaction gas parameters.
35
58
  *
36
59
  * Features:
37
- * - Smart gas limit bumping (10% for relayer, 30% for user)
38
- * - Token price conversion (ETHToken)
60
+ * - Explicit gas policy by purpose (quote/validation/send/replacement)
61
+ * - Token price conversion (ETH <-> Token)
39
62
  * - Refund calculation for non-ETH tokens
40
- * - EIP-1559 and Legacy support
63
+ * - EIP-1559 and legacy support
41
64
  */
42
- export declare class TornadoFeeOracle {
65
+ export declare class MixerXFeeOracle {
43
66
  private chainId;
44
67
  private relayerFeePercent;
45
68
  private gasPriceOracle;
46
69
  private tokenPriceOracle?;
47
70
  private priceRepository?;
48
71
  private logger;
49
- constructor(options: TornadoFeeOracleOptions);
50
- /**
51
- * Calculate withdrawal fee
52
- * Main method matching TornadoFeeOracleV5.calculateWithdrawalFeeViaRelayer
53
- */
54
- calculateWithdrawalFee(input: WithdrawalFeeInput): Promise<FeeCalculationResult>;
72
+ constructor(options: MixerXFeeOracleOptions);
55
73
  /**
56
- * Get gas parameters for transaction
74
+ * Calculate withdrawal fee using the fee quote/validation gas policy.
57
75
  */
58
- private getGasParams;
76
+ calculateWithdrawalFee(input: MixerXWithdrawalFeeInput): Promise<MixerXFeeCalculationResult>;
59
77
  /**
60
- * Calculate gas cost in wei
78
+ * Get gas parameters for a protocol transaction and purpose.
61
79
  */
80
+ getGasParametersForTx(input?: MixerXGasParametersForTxInput): Promise<MixerXGasParametersForTxResult>;
62
81
  private calculateGasCost;
63
- /**
64
- * Calculate relayer fee
65
- */
66
82
  private calculateRelayerFee;
67
- /**
68
- * Get gas limit for operation and token
69
- * Uses centralized TokenDefaults to eliminate duplication
70
- */
71
83
  private getGasLimit;
72
- /**
73
- * Get bump percent based on transaction type (V5 smart bumping)
74
- * Uses centralized TokenDefaults to eliminate duplication
75
- */
76
84
  private getBumpPercent;
77
- /**
78
- * Get token price in ETH (wei per token unit)
79
- */
85
+ private extractGasPriceWei;
80
86
  private getTokenPrice;
87
+ private withGasDetails;
81
88
  /**
82
- * Get gas parameters for direct use
89
+ * Get gas parameters without protocol policy. Prefer getGasParametersForTx for relayer operations.
83
90
  */
84
91
  getGasParameters(isLegacy?: boolean): Promise<GasPriceParams>;
85
- /**
86
- * Get chain ID
87
- */
88
92
  getChainId(): ChainId;
89
93
  }
94
+ export { MixerXFeeOracle as TornadoFeeOracle };
90
95
  //# sourceMappingURL=TornadoFeeOracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TornadoFeeOracle.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/tornado/TornadoFeeOracle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAoB,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAiB,MAAM,iCAAiC,CAAC;AASzE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,6BAA6B,CAAC;CACnF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,eAAe,CAAC,CAAwB;IAChD,OAAO,CAAC,MAAM,CAAU;gBAEZ,OAAO,EAAE,uBAAuB;IA2B5C;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6FtF;;OAEG;YACW,YAAY;IAU1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;YACW,aAAa;IAqB3B;;OAEG;IACG,gBAAgB,CAAC,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1E;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}
1
+ {"version":3,"file":"TornadoFeeOracle.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/tornado/TornadoFeeOracle.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TornadoFeeOracle = void 0;
3
+ exports.TornadoFeeOracle = exports.MixerXFeeOracle = void 0;
4
4
  const GasPriceOracle_1 = require("../gas/GasPriceOracle");
5
5
  const TokenPriceOracle_1 = require("../token-price/TokenPriceOracle");
6
6
  const ILogger_1 = require("../../application/ports/ILogger");
7
7
  const TokenDefaults_1 = require("../../domain/config/TokenDefaults");
8
- // NOTE: Gas limits now imported from TokenDefaults (centralized configuration)
9
- // This eliminates duplication between TornadoFeeOracle, ChainConfigs, and FeeCalculator
10
8
  /**
11
- * TornadoFeeOracle
12
- * Calculates fees for Tornado Cash withdrawals
13
- * Based on @tornado/tornado-oracles TornadoFeeOracleV5
9
+ * MixerXFeeOracle
10
+ * Calculates protocol withdrawal fees and transaction gas parameters.
14
11
  *
15
12
  * Features:
16
- * - Smart gas limit bumping (10% for relayer, 30% for user)
17
- * - Token price conversion (ETHToken)
13
+ * - Explicit gas policy by purpose (quote/validation/send/replacement)
14
+ * - Token price conversion (ETH <-> Token)
18
15
  * - Refund calculation for non-ETH tokens
19
- * - EIP-1559 and Legacy support
16
+ * - EIP-1559 and legacy support
20
17
  */
21
- class TornadoFeeOracle {
18
+ class MixerXFeeOracle {
22
19
  chainId;
23
20
  relayerFeePercent;
24
21
  gasPriceOracle;
@@ -28,13 +25,13 @@ class TornadoFeeOracle {
28
25
  constructor(options) {
29
26
  this.chainId = options.chainId;
30
27
  this.relayerFeePercent = options.relayerFeePercent;
31
- // Initialize gas price oracle
32
- this.gasPriceOracle = options.gasPriceOracle ?? new GasPriceOracle_1.GasPriceOracle({
33
- chainId: options.chainId,
34
- rpcUrl: options.rpcUrl,
35
- logger: options.logger ?? new ILogger_1.ConsoleLogger('LegacyGasOracle'),
36
- });
37
- // Initialize token price oracle if RPC provided
28
+ this.gasPriceOracle =
29
+ options.gasPriceOracle ??
30
+ new GasPriceOracle_1.GasPriceOracle({
31
+ chainId: options.chainId,
32
+ rpcUrl: options.rpcUrl,
33
+ logger: options.logger ?? new ILogger_1.ConsoleLogger('MixerXGasOracle'),
34
+ });
38
35
  if (options.tokenPriceOracle) {
39
36
  this.tokenPriceOracle = options.tokenPriceOracle;
40
37
  }
@@ -42,28 +39,20 @@ class TornadoFeeOracle {
42
39
  this.tokenPriceOracle = new TokenPriceOracle_1.TokenPriceOracle(options.rpcUrl, options.chainId, options.offchainOracleAddress, options.multicallAddress);
43
40
  }
44
41
  this.priceRepository = options.priceRepository;
45
- this.logger = options.logger ?? new ILogger_1.ConsoleLogger('TornadoFeeOracle');
42
+ this.logger = options.logger ?? new ILogger_1.ConsoleLogger('MixerXFeeOracle');
46
43
  }
47
44
  /**
48
- * Calculate withdrawal fee
49
- * Main method matching TornadoFeeOracleV5.calculateWithdrawalFeeViaRelayer
45
+ * Calculate withdrawal fee using the fee quote/validation gas policy.
50
46
  */
51
47
  async calculateWithdrawalFee(input) {
52
- const { currency, amount, decimals, refund, txType = 'relayer_withdrawal' } = input;
48
+ const { currency, amount, decimals, refund, txType = 'relayer_withdrawal', purpose = 'fee_validation', } = input;
53
49
  const currencyLower = currency.toLowerCase();
54
- // 1. Get gas parameters
55
- const gasParams = await this.getGasParams(txType);
50
+ const gasParams = await this.getGasParametersForTx({ txType, purpose, isLegacy: false });
56
51
  const gasLimit = this.getGasLimit(currencyLower, txType);
57
- const gasPriceWei = gasParams.maxFeePerGas
58
- ? BigInt(gasParams.maxFeePerGas)
59
- : gasParams.gasPrice
60
- ? BigInt(gasParams.gasPrice)
61
- : 0n;
62
- // 2. Calculate gas cost in wei
52
+ const gasPriceWei = this.extractGasPriceWei(gasParams);
63
53
  const gasCostWei = this.calculateGasCost(gasParams, currencyLower, txType);
64
- // 3. Calculate relayer fee
65
54
  const relayerFee = this.calculateRelayerFee(amount);
66
- this.logger.debug('TornadoFeeOracle fee inputs', {
55
+ this.logger.debug('MixerXFeeOracle fee inputs', {
67
56
  chainId: this.chainId,
68
57
  currency: currencyLower,
69
58
  amount: amount.toString(),
@@ -76,130 +65,122 @@ class TornadoFeeOracle {
76
65
  maxPriorityFeePerGas: gasParams.maxPriorityFeePerGas,
77
66
  gasPrice: gasParams.gasPrice,
78
67
  relayerFeePercent: this.relayerFeePercent,
68
+ bumpPercent: gasParams.bumpPercent,
69
+ gasPurpose: purpose,
79
70
  });
80
- // 4. For ETH, calculation is simple
81
71
  if (currencyLower === 'eth') {
82
72
  const totalFee = gasCostWei + relayerFee;
83
- this.logger.debug('TornadoFeeOracle fee breakdown', {
73
+ this.logger.debug('MixerXFeeOracle fee breakdown', {
84
74
  gasCost: gasCostWei.toString(),
85
75
  relayerFee: relayerFee.toString(),
86
76
  totalFee: totalFee.toString(),
87
77
  currency: 'eth',
88
78
  });
89
- return {
79
+ return this.withGasDetails({
90
80
  gasCost: gasCostWei,
91
81
  relayerFee,
92
82
  refundAmount: 0n,
93
83
  totalFee,
94
84
  currency: 'eth',
95
- };
85
+ gasLimit,
86
+ gasPriceWei,
87
+ gasParams,
88
+ txType,
89
+ gasPurpose: purpose,
90
+ });
96
91
  }
97
- // 5. For tokens, convert ETH costs to token
98
92
  const tokenPriceInEth = await this.getTokenPrice(currencyLower);
99
93
  if (!tokenPriceInEth) {
100
94
  throw new Error(`No price available for ${currency}`);
101
95
  }
102
- // Convert gas cost from ETH to token
103
- // Formula: (ethAmount * 10^decimals) / price
104
96
  const decimalsFactor = BigInt(10 ** decimals);
105
97
  const gasCostInToken = (gasCostWei * decimalsFactor) / tokenPriceInEth;
106
- // Relayer fee is already in token units
107
98
  const relayerFeeInToken = relayerFee;
108
- // Calculate refund in token if provided
109
99
  let refundInToken = 0n;
110
100
  if (refund && BigInt(refund) > 0) {
111
101
  const refundWei = BigInt(refund);
112
102
  refundInToken = (refundWei * decimalsFactor) / tokenPriceInEth;
113
103
  }
114
- // Total fee
115
104
  const totalFee = gasCostInToken + relayerFeeInToken + refundInToken;
116
- this.logger.debug('TornadoFeeOracle fee breakdown', {
105
+ this.logger.debug('MixerXFeeOracle fee breakdown', {
117
106
  tokenPriceInEth: tokenPriceInEth.toString(),
118
107
  gasCostInToken: gasCostInToken.toString(),
119
108
  relayerFeeInToken: relayerFeeInToken.toString(),
120
109
  refundInToken: refundInToken.toString(),
121
110
  totalFee: totalFee.toString(),
122
111
  });
123
- return {
112
+ return this.withGasDetails({
124
113
  gasCost: gasCostInToken,
125
114
  relayerFee: relayerFeeInToken,
126
115
  refundAmount: refundInToken,
127
116
  totalFee,
128
117
  currency: currencyLower,
129
- };
118
+ gasLimit,
119
+ gasPriceWei,
120
+ gasParams,
121
+ txType,
122
+ gasPurpose: purpose,
123
+ });
130
124
  }
131
125
  /**
132
- * Get gas parameters for transaction
126
+ * Get gas parameters for a protocol transaction and purpose.
133
127
  */
134
- async getGasParams(txType) {
135
- const bumpPercent = this.getBumpPercent(txType);
136
- return this.gasPriceOracle.getTxGasParams({
137
- isLegacy: false,
128
+ async getGasParametersForTx(input = {}) {
129
+ const txType = input.txType ?? 'relayer_withdrawal';
130
+ const purpose = input.purpose ?? 'send';
131
+ const bumpPercent = this.getBumpPercent(txType, purpose);
132
+ const gasParams = await this.gasPriceOracle.getTxGasParams({
133
+ isLegacy: input.isLegacy ?? false,
138
134
  bumpPercent,
139
135
  legacySpeed: 'fast',
140
136
  });
137
+ return {
138
+ ...gasParams,
139
+ txType,
140
+ purpose,
141
+ bumpPercent,
142
+ };
141
143
  }
142
- /**
143
- * Calculate gas cost in wei
144
- */
145
144
  calculateGasCost(gasParams, currency, txType) {
146
145
  const gasLimit = this.getGasLimit(currency, txType);
147
- // Extract gas price from params (EIP-1559 or Legacy)
148
- let gasPriceWei;
149
- if (gasParams.maxFeePerGas) {
150
- // EIP-1559: use maxFeePerGas
151
- gasPriceWei = BigInt(gasParams.maxFeePerGas);
152
- }
153
- else if (gasParams.gasPrice) {
154
- // Legacy: use gasPrice
155
- gasPriceWei = BigInt(gasParams.gasPrice);
156
- }
157
- else {
158
- throw new Error('Invalid gas parameters');
159
- }
146
+ const gasPriceWei = this.extractGasPriceWei(gasParams);
160
147
  return gasPriceWei * BigInt(gasLimit);
161
148
  }
162
- /**
163
- * Calculate relayer fee
164
- */
165
149
  calculateRelayerFee(amount) {
166
150
  const percent = this.relayerFeePercent;
167
- // Apply fee percentage
168
- // Formula: amount * percent (where percent is 0.004 for 0.4%)
169
- const fee = (amount * BigInt(Math.round(percent * 1e6))) / BigInt(1e6);
170
- return fee;
151
+ return (amount * BigInt(Math.round(percent * 1e6))) / BigInt(1e6);
171
152
  }
172
- /**
173
- * Get gas limit for operation and token
174
- * Uses centralized TokenDefaults to eliminate duplication
175
- */
176
153
  getGasLimit(currency, txType) {
177
- // Check if it's a mining operation
178
154
  if (txType.includes('mining')) {
179
155
  const operation = txType.includes('reward') ? 'reward' : 'withdraw';
180
156
  return (0, TokenDefaults_1.getMiningGasLimit)(operation);
181
157
  }
182
- // Regular Tornado withdraw
183
158
  return (0, TokenDefaults_1.getTornadoGasLimit)(currency);
184
159
  }
185
- /**
186
- * Get bump percent based on transaction type (V5 smart bumping)
187
- * Uses centralized TokenDefaults to eliminate duplication
188
- */
189
- getBumpPercent(txType) {
190
- return (0, TokenDefaults_1.getBumpPercent)(txType);
160
+ getBumpPercent(txType, purpose) {
161
+ if (purpose === 'fee_quote' || purpose === 'fee_validation') {
162
+ return (0, TokenDefaults_1.getBumpPercent)(txType);
163
+ }
164
+ if (purpose === 'replacement') {
165
+ return (0, TokenDefaults_1.getBumpPercent)(txType);
166
+ }
167
+ return 0;
168
+ }
169
+ extractGasPriceWei(gasParams) {
170
+ if (gasParams.maxFeePerGas) {
171
+ return BigInt(gasParams.maxFeePerGas);
172
+ }
173
+ if (gasParams.gasPrice) {
174
+ return BigInt(gasParams.gasPrice);
175
+ }
176
+ throw new Error('Invalid gas parameters');
191
177
  }
192
- /**
193
- * Get token price in ETH (wei per token unit)
194
- */
195
178
  async getTokenPrice(symbol) {
196
- // Try price repository first (Redis)
197
179
  if (this.priceRepository) {
198
180
  const price = await this.priceRepository.getPrice(symbol);
199
181
  if (price)
200
182
  return price;
201
183
  }
202
- // Fallback to token price oracle
203
184
  if (this.tokenPriceOracle) {
204
185
  try {
205
186
  const prices = await this.tokenPriceOracle.fetchPrices();
@@ -208,23 +189,38 @@ class TornadoFeeOracle {
208
189
  return BigInt(price);
209
190
  }
210
191
  catch {
211
- // Ignore error, will return null
192
+ // Ignore error, will return null.
212
193
  }
213
194
  }
214
195
  return null;
215
196
  }
197
+ withGasDetails(input) {
198
+ return {
199
+ gasCost: input.gasCost,
200
+ relayerFee: input.relayerFee,
201
+ refundAmount: input.refundAmount,
202
+ totalFee: input.totalFee,
203
+ currency: input.currency,
204
+ gasLimit: input.gasLimit,
205
+ gasPriceWei: input.gasPriceWei,
206
+ maxFeePerGas: input.gasParams.maxFeePerGas,
207
+ maxPriorityFeePerGas: input.gasParams.maxPriorityFeePerGas,
208
+ gasPrice: input.gasParams.gasPrice,
209
+ bumpPercent: input.gasParams.bumpPercent,
210
+ txType: input.txType,
211
+ gasPurpose: input.gasPurpose,
212
+ };
213
+ }
216
214
  /**
217
- * Get gas parameters for direct use
215
+ * Get gas parameters without protocol policy. Prefer getGasParametersForTx for relayer operations.
218
216
  */
219
217
  async getGasParameters(isLegacy = false) {
220
218
  return this.gasPriceOracle.getTxGasParams({ isLegacy });
221
219
  }
222
- /**
223
- * Get chain ID
224
- */
225
220
  getChainId() {
226
221
  return this.chainId;
227
222
  }
228
223
  }
229
- exports.TornadoFeeOracle = TornadoFeeOracle;
224
+ exports.MixerXFeeOracle = MixerXFeeOracle;
225
+ exports.TornadoFeeOracle = MixerXFeeOracle;
230
226
  //# sourceMappingURL=TornadoFeeOracle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TornadoFeeOracle.js","sourceRoot":"","sources":["../../../src/infrastructure/tornado/TornadoFeeOracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TornadoFeeOracle.js","sourceRoot":"","sources":["../../../src/infrastructure/tornado/TornadoFeeOracle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mixerx/oracles",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Complete oracle library for MixerX - gas prices (EIP-1559 + Legacy), token prices, and Tornado fee calculations",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
26
26
  "author": "MixerX Team",
27
27
  "license": "MIT",
28
28
  "dependencies": {
29
- "@mixerx/config": "npm:^0.2.0",
30
- "axios": "^1.13.5",
29
+ "@mixerx/config": "^0.2.3",
30
+ "axios": "^1.16.1",
31
31
  "ethers": "^6.0.0"
32
32
  },
33
33
  "devDependencies": {