@hyperbridge/sdk 1.3.2 → 1.3.4

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.
@@ -3,11 +3,11 @@ import { join } from 'path';
3
3
  import { TextDecoder as TextDecoder$1, TextEncoder as TextEncoder$1 } from 'util';
4
4
  import { createConsola, LogLevels } from 'consola';
5
5
  import { flatten, zip, capitalize, maxBy, isNil } from 'lodash-es';
6
- import { hexToBytes, encodePacked, toHex, keccak256, encodeAbiParameters, bytesToHex, concatHex, createPublicClient, http, encodeFunctionData, erc20Abi, bytesToBigInt, pad, toBytes, maxUint256, parseUnits } from 'viem';
6
+ import { toHex, hexToBytes, encodePacked, keccak256, encodeAbiParameters, bytesToHex, concatHex, createPublicClient, http, encodeFunctionData, erc20Abi, bytesToBigInt, pad, toBytes, maxUint256, parseUnits } from 'viem';
7
7
  import mergeRace from '@async-generator/merge-race';
8
+ import { gnosisChiado, gnosis, bscTestnet, bsc, soneium, baseSepolia, base, optimismSepolia, optimism, arbitrumSepolia, arbitrum, mainnet, sepolia } from 'viem/chains';
8
9
  import { hasWindow, isNode, env } from 'std-env';
9
10
  import { Vector, u8, Struct, Tuple, Enum, _void, u64, u32, Option, bool, u128 } from 'scale-ts';
10
- import { gnosisChiado, gnosis, bscTestnet, bsc, soneium, baseSepolia, base, optimismSepolia, optimism, arbitrumSepolia, arbitrum, mainnet, sepolia } from 'viem/chains';
11
11
  import { match } from 'ts-pattern';
12
12
  import { WsProvider, ApiPromise } from '@polkadot/api';
13
13
  import { RpcWebSocketClient } from 'rpc-websocket-client';
@@ -3303,60 +3303,341 @@ var ABI2 = [
3303
3303
  }
3304
3304
  ];
3305
3305
  var handler_default = { ABI: ABI2 };
3306
- function getPeakPosByHeight(height) {
3307
- return (1n << BigInt(height + 1)) - 2n;
3308
- }
3309
- function leftPeakHeightPos(mmrSize) {
3310
- let height = 1;
3311
- let prevPos = 0n;
3312
- let pos = getPeakPosByHeight(height);
3313
- while (pos < mmrSize) {
3314
- height += 1;
3315
- prevPos = pos;
3316
- pos = getPeakPosByHeight(height);
3306
+ var Chains = /* @__PURE__ */ ((Chains2) => {
3307
+ Chains2["BSC_CHAPEL"] = "EVM-97";
3308
+ Chains2["GNOSIS_CHIADO"] = "EVM-10200";
3309
+ Chains2["HYPERBRIDGE_GARGANTUA"] = "KUSAMA-4009";
3310
+ Chains2["SEPOLIA"] = "EVM-11155111";
3311
+ Chains2["MAINNET"] = "EVM-1";
3312
+ Chains2["BSC_MAINNET"] = "EVM-56";
3313
+ Chains2["ARBITRUM_MAINNET"] = "EVM-42161";
3314
+ Chains2["BASE_MAINNET"] = "EVM-8453";
3315
+ return Chains2;
3316
+ })(Chains || {});
3317
+ var chainIds = {
3318
+ ["EVM-97" /* BSC_CHAPEL */]: 97,
3319
+ ["EVM-10200" /* GNOSIS_CHIADO */]: 10200,
3320
+ ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: 4009,
3321
+ ["EVM-11155111" /* SEPOLIA */]: 11155111,
3322
+ ["EVM-1" /* MAINNET */]: 1,
3323
+ ["EVM-56" /* BSC_MAINNET */]: 56,
3324
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: 42161,
3325
+ ["EVM-8453" /* BASE_MAINNET */]: 8453
3326
+ };
3327
+ var viemChains = {
3328
+ "97": bscTestnet,
3329
+ "10200": gnosisChiado,
3330
+ "11155111": sepolia,
3331
+ "1": mainnet,
3332
+ "56": bsc,
3333
+ "42161": arbitrum,
3334
+ "8453": base
3335
+ };
3336
+ var WrappedNativeDecimals = {
3337
+ ["EVM-97" /* BSC_CHAPEL */]: 18,
3338
+ ["EVM-10200" /* GNOSIS_CHIADO */]: 18,
3339
+ ["EVM-11155111" /* SEPOLIA */]: 18,
3340
+ ["EVM-1" /* MAINNET */]: 18,
3341
+ ["EVM-56" /* BSC_MAINNET */]: 18,
3342
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: 18,
3343
+ ["EVM-8453" /* BASE_MAINNET */]: 18
3344
+ };
3345
+ var assets = {
3346
+ ["EVM-97" /* BSC_CHAPEL */]: {
3347
+ WETH: "0xae13d989dac2f0debff460ac112a837c89baa7cd".toLowerCase(),
3348
+ DAI: "0x1938165569A5463327fb206bE06d8D9253aa06b7".toLowerCase(),
3349
+ USDC: "0xC625ec7D30A4b1AAEfb1304610CdAcD0d606aC92".toLowerCase(),
3350
+ USDT: "0xc043f483373072f7f27420d6e7d7ad269c018e18".toLowerCase()
3351
+ },
3352
+ ["EVM-10200" /* GNOSIS_CHIADO */]: {
3353
+ WETH: "0x0000000000000000000000000000000000000000".toLowerCase(),
3354
+ DAI: "0x50B1d3c7c073c9caa1Ef207365A2c9C976bD70b9".toLowerCase(),
3355
+ USDC: "0x0000000000000000000000000000000000000000".toLowerCase(),
3356
+ USDT: "0x0000000000000000000000000000000000000000".toLowerCase()
3357
+ },
3358
+ ["EVM-11155111" /* SEPOLIA */]: {
3359
+ WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9".toLowerCase(),
3360
+ USDC: "0x0000000000000000000000000000000000000000".toLowerCase(),
3361
+ USDT: "0x0000000000000000000000000000000000000000".toLowerCase(),
3362
+ DAI: "0x0000000000000000000000000000000000000000".toLowerCase()
3363
+ },
3364
+ ["EVM-1" /* MAINNET */]: {
3365
+ WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".toLowerCase(),
3366
+ DAI: "0x6B175474E89094C44Da98b954EedeAC495271d0F".toLowerCase(),
3367
+ USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48".toLowerCase(),
3368
+ USDT: "0xdAC17F958D2ee523a2206206994597C13D831ec7".toLowerCase()
3369
+ },
3370
+ ["EVM-56" /* BSC_MAINNET */]: {
3371
+ WETH: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c".toLowerCase(),
3372
+ DAI: "0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3".toLowerCase(),
3373
+ USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d".toLowerCase(),
3374
+ USDT: "0x55d398326f99059fF775485246999027B3197955".toLowerCase()
3375
+ },
3376
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: {
3377
+ WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1".toLowerCase(),
3378
+ DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1".toLowerCase(),
3379
+ USDC: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831".toLowerCase(),
3380
+ USDT: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9".toLowerCase()
3381
+ },
3382
+ ["EVM-8453" /* BASE_MAINNET */]: {
3383
+ WETH: "0x4200000000000000000000000000000000000006".toLowerCase(),
3384
+ DAI: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb".toLowerCase(),
3385
+ USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913".toLowerCase(),
3386
+ USDT: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2".toLowerCase()
3317
3387
  }
3318
- return [height - 1, prevPos];
3319
- }
3320
- function getRightPeak(initialHeight, initialPos, mmrSize) {
3321
- let height = initialHeight;
3322
- let pos = initialPos;
3323
- pos += siblingOffset(height);
3324
- while (pos > mmrSize - 1n) {
3325
- if (height === 0) {
3326
- return null;
3327
- }
3328
- pos -= parentOffset(height - 1);
3329
- height -= 1;
3388
+ };
3389
+ var addresses = {
3390
+ IntentGateway: {
3391
+ ["EVM-97" /* BSC_CHAPEL */]: "0x016b6ffC9f890d1e28f9Fdb9eaDA776b02F89509",
3392
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "0x016b6ffC9f890d1e28f9Fdb9eaDA776b02F89509",
3393
+ ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
3394
+ ["EVM-1" /* MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
3395
+ ["EVM-56" /* BSC_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
3396
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
3397
+ ["EVM-8453" /* BASE_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA"
3398
+ },
3399
+ Host: {
3400
+ ["EVM-97" /* BSC_CHAPEL */]: "0x8Aa0Dea6D675d785A882967Bf38183f6117C09b7",
3401
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "0x58a41b89f4871725e5d898d98ef4bf917601c5eb",
3402
+ ["EVM-11155111" /* SEPOLIA */]: "0x2EdB74C269948b60ec1000040E104cef0eABaae8",
3403
+ ["EVM-1" /* MAINNET */]: "0x792A6236AF69787C40cF76b69B4c8c7B28c4cA20",
3404
+ ["EVM-56" /* BSC_MAINNET */]: "0x24B5d421Ec373FcA57325dd2F0C074009Af021F7",
3405
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0xE05AFD4Eb2ce6d65c40e1048381BD0Ef8b4B299e",
3406
+ ["EVM-8453" /* BASE_MAINNET */]: "0x6FFe92e4d7a9D589549644544780e6725E84b248"
3407
+ },
3408
+ UniswapRouter02: {
3409
+ ["EVM-97" /* BSC_CHAPEL */]: "0x9639379819420704457B07A0C33B678D9E0F8Df0",
3410
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "0x0000000000000000000000000000000000000000",
3411
+ ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
3412
+ ["EVM-1" /* MAINNET */]: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
3413
+ ["EVM-56" /* BSC_MAINNET */]: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",
3414
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3415
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3416
+ },
3417
+ UniswapV2Factory: {
3418
+ ["EVM-97" /* BSC_CHAPEL */]: "0x12e036669DA18F4A2777853d6e2136b32AceEC86",
3419
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "0x0000000000000000000000000000000000000000",
3420
+ ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
3421
+ ["EVM-1" /* MAINNET */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
3422
+ ["EVM-56" /* BSC_MAINNET */]: "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
3423
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3424
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3425
+ },
3426
+ BatchExecutor: {
3427
+ ["EVM-97" /* BSC_CHAPEL */]: "0x4CC58B5D8FBf838d062E4b21F75C327835B5F0ef",
3428
+ ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
3429
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3430
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3431
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3432
+ },
3433
+ UniversalRouter: {
3434
+ ["EVM-97" /* BSC_CHAPEL */]: "0xcc6d5ece3d4a57245bf5a2f64f3ed9179b81f714",
3435
+ ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
3436
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3437
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3438
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3439
+ },
3440
+ UniswapV3Router: {
3441
+ ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
3442
+ ["EVM-1" /* MAINNET */]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
3443
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3444
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3445
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3446
+ },
3447
+ UniswapV3Factory: {
3448
+ ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
3449
+ ["EVM-1" /* MAINNET */]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
3450
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3451
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3452
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3453
+ },
3454
+ UniswapV3Quoter: {
3455
+ ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
3456
+ ["EVM-1" /* MAINNET */]: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
3457
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3458
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3459
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3460
+ },
3461
+ UniswapV4PoolManager: {
3462
+ ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
3463
+ ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
3464
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3465
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3466
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3467
+ },
3468
+ UniswapV4Quoter: {
3469
+ ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
3470
+ ["EVM-1" /* MAINNET */]: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203",
3471
+ ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
3472
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
3473
+ ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
3474
+ },
3475
+ Calldispatcher: {
3476
+ ["EVM-11155111" /* SEPOLIA */]: "0xC7f13b6D03A0A7F3239d38897503E90553ABe155"
3330
3477
  }
3331
- return [height, pos];
3332
- }
3333
- function getPeaks(mmrSize) {
3334
- const positions = [];
3335
- let [height, pos] = leftPeakHeightPos(mmrSize);
3336
- positions.push(pos);
3337
- while (height > 0) {
3338
- const peak = getRightPeak(height, pos, mmrSize);
3339
- if (!peak) break;
3340
- [height, pos] = peak;
3341
- positions.push(pos);
3478
+ };
3479
+ var createRpcUrls = (env2) => ({
3480
+ ["EVM-97" /* BSC_CHAPEL */]: env2.BSC_CHAPEL || "https://bnb-testnet.api.onfinality.io/public",
3481
+ ["EVM-10200" /* GNOSIS_CHIADO */]: env2.GNOSIS_CHIADO || "https://gnosis-chiado-rpc.publicnode.com",
3482
+ ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: env2.HYPERBRIDGE_GARGANTUA || "",
3483
+ ["EVM-11155111" /* SEPOLIA */]: env2.SEPOLIA || "https://1rpc.io/sepolia",
3484
+ ["EVM-1" /* MAINNET */]: env2.ETH_MAINNET || "https://eth-mainnet.g.alchemy.com/v2/demo",
3485
+ ["EVM-56" /* BSC_MAINNET */]: env2.BSC_MAINNET || "https://binance.llamarpc.com",
3486
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: env2.ARBITRUM_MAINNET || "https://arbitrum-one.public.blastapi.io",
3487
+ ["EVM-8453" /* BASE_MAINNET */]: env2.BASE_MAINNET || "https://base-mainnet.public.blastapi.io"
3488
+ });
3489
+ var consensusStateIds = {
3490
+ ["EVM-97" /* BSC_CHAPEL */]: "BSC0",
3491
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "GNO0",
3492
+ ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: "PAS0",
3493
+ ["EVM-11155111" /* SEPOLIA */]: "ETH0",
3494
+ ["EVM-1" /* MAINNET */]: "ETH0",
3495
+ ["EVM-56" /* BSC_MAINNET */]: "BSC0",
3496
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "ETH0",
3497
+ ["EVM-8453" /* BASE_MAINNET */]: "ETH0"
3498
+ };
3499
+ var coingeckoIds = {
3500
+ ["EVM-97" /* BSC_CHAPEL */]: "binance-smart-chain",
3501
+ ["EVM-10200" /* GNOSIS_CHIADO */]: "gnosis",
3502
+ ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: "hyperbridge",
3503
+ ["EVM-11155111" /* SEPOLIA */]: "ethereum",
3504
+ ["EVM-1" /* MAINNET */]: "ethereum",
3505
+ ["EVM-56" /* BSC_MAINNET */]: "binance-smart-chain",
3506
+ ["EVM-42161" /* ARBITRUM_MAINNET */]: "arbitrum-one",
3507
+ ["EVM-8453" /* BASE_MAINNET */]: "base"
3508
+ };
3509
+
3510
+ // src/configs/ChainConfigService.ts
3511
+ var ChainConfigService = class {
3512
+ rpcUrls;
3513
+ constructor(env2 = process.env) {
3514
+ this.rpcUrls = createRpcUrls(env2);
3342
3515
  }
3343
- return positions;
3344
- }
3345
- function allOnes(num) {
3346
- if (num === 0n) return false;
3347
- return num.toString(2).split("").every((bit) => bit === "1");
3348
- }
3349
- function jumpLeft(pos) {
3350
- const bitLength = pos.toString(2).length;
3351
- const mostSignificantBits = 1n << BigInt(bitLength - 1);
3352
- return pos - (mostSignificantBits - 1n);
3353
- }
3354
- function posHeightInTree(initialPos) {
3355
- let pos = initialPos + 1n;
3356
- while (!allOnes(pos)) {
3357
- pos = jumpLeft(pos);
3516
+ getChainConfig(chain) {
3517
+ return {
3518
+ chainId: chainIds[chain],
3519
+ rpcUrl: this.rpcUrls[chain],
3520
+ intentGatewayAddress: addresses.IntentGateway[chain]
3521
+ };
3358
3522
  }
3359
- return pos.toString(2).length - 1;
3523
+ getIntentGatewayAddress(chain) {
3524
+ return addresses.IntentGateway[chain];
3525
+ }
3526
+ getHostAddress(chain) {
3527
+ return addresses.Host[chain];
3528
+ }
3529
+ getWrappedNativeAssetWithDecimals(chain) {
3530
+ return {
3531
+ asset: assets[chain].WETH,
3532
+ decimals: WrappedNativeDecimals[chain]
3533
+ };
3534
+ }
3535
+ getDaiAsset(chain) {
3536
+ return assets[chain].DAI;
3537
+ }
3538
+ getUsdtAsset(chain) {
3539
+ return assets[chain].USDT;
3540
+ }
3541
+ getUsdcAsset(chain) {
3542
+ return assets[chain].USDC;
3543
+ }
3544
+ getChainId(chain) {
3545
+ return chainIds[chain];
3546
+ }
3547
+ getConsensusStateId(chain) {
3548
+ return toHex(consensusStateIds[chain]);
3549
+ }
3550
+ getHyperbridgeChainId() {
3551
+ return chainIds["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */];
3552
+ }
3553
+ getRpcUrl(chain) {
3554
+ return this.rpcUrls[chain];
3555
+ }
3556
+ getUniswapRouterV2Address(chain) {
3557
+ return addresses.UniswapRouter02[chain];
3558
+ }
3559
+ getUniswapV2FactoryAddress(chain) {
3560
+ return addresses.UniswapV2Factory[chain];
3561
+ }
3562
+ getBatchExecutorAddress(chain) {
3563
+ return addresses.BatchExecutor[chain];
3564
+ }
3565
+ getUniversalRouterAddress(chain) {
3566
+ return addresses.UniversalRouter[chain];
3567
+ }
3568
+ getUniswapV3RouterAddress(chain) {
3569
+ return addresses.UniswapV3Router[chain];
3570
+ }
3571
+ getUniswapV3FactoryAddress(chain) {
3572
+ return addresses.UniswapV3Factory[chain];
3573
+ }
3574
+ getUniswapV3QuoterAddress(chain) {
3575
+ return addresses.UniswapV3Quoter[chain];
3576
+ }
3577
+ getUniswapV4PoolManagerAddress(chain) {
3578
+ return addresses.UniswapV4PoolManager[chain];
3579
+ }
3580
+ getUniswapV4QuoterAddress(chain) {
3581
+ return addresses.UniswapV4Quoter[chain];
3582
+ }
3583
+ getCoingeckoId(chain) {
3584
+ return coingeckoIds[chain];
3585
+ }
3586
+ };
3587
+ function getPeakPosByHeight(height) {
3588
+ return (1n << BigInt(height + 1)) - 2n;
3589
+ }
3590
+ function leftPeakHeightPos(mmrSize) {
3591
+ let height = 1;
3592
+ let prevPos = 0n;
3593
+ let pos = getPeakPosByHeight(height);
3594
+ while (pos < mmrSize) {
3595
+ height += 1;
3596
+ prevPos = pos;
3597
+ pos = getPeakPosByHeight(height);
3598
+ }
3599
+ return [height - 1, prevPos];
3600
+ }
3601
+ function getRightPeak(initialHeight, initialPos, mmrSize) {
3602
+ let height = initialHeight;
3603
+ let pos = initialPos;
3604
+ pos += siblingOffset(height);
3605
+ while (pos > mmrSize - 1n) {
3606
+ if (height === 0) {
3607
+ return null;
3608
+ }
3609
+ pos -= parentOffset(height - 1);
3610
+ height -= 1;
3611
+ }
3612
+ return [height, pos];
3613
+ }
3614
+ function getPeaks(mmrSize) {
3615
+ const positions = [];
3616
+ let [height, pos] = leftPeakHeightPos(mmrSize);
3617
+ positions.push(pos);
3618
+ while (height > 0) {
3619
+ const peak = getRightPeak(height, pos, mmrSize);
3620
+ if (!peak) break;
3621
+ [height, pos] = peak;
3622
+ positions.push(pos);
3623
+ }
3624
+ return positions;
3625
+ }
3626
+ function allOnes(num) {
3627
+ if (num === 0n) return false;
3628
+ return num.toString(2).split("").every((bit) => bit === "1");
3629
+ }
3630
+ function jumpLeft(pos) {
3631
+ const bitLength = pos.toString(2).length;
3632
+ const mostSignificantBits = 1n << BigInt(bitLength - 1);
3633
+ return pos - (mostSignificantBits - 1n);
3634
+ }
3635
+ function posHeightInTree(initialPos) {
3636
+ let pos = initialPos + 1n;
3637
+ while (!allOnes(pos)) {
3638
+ pos = jumpLeft(pos);
3639
+ }
3640
+ return pos.toString(2).length - 1;
3360
3641
  }
3361
3642
  function parentOffset(height) {
3362
3643
  return 2n << BigInt(height);
@@ -4139,51 +4420,24 @@ function mapTestnetToMainnet(identifier) {
4139
4420
  return identifier;
4140
4421
  }
4141
4422
  }
4142
- async function fetchTokenUsdPrice(identifier) {
4143
- try {
4144
- const coinGeckoPrice = await fetchFromCoinGecko(identifier);
4145
- return coinGeckoPrice;
4146
- } catch (error) {
4147
- try {
4148
- const defillamaPrice = await fetchFromDefillama(identifier);
4149
- return defillamaPrice;
4150
- } catch (fallbackError) {
4151
- console.log(
4152
- `Both APIs failed for ${identifier}. CoinGecko: ${error}, Defillama: ${fallbackError}. Returning 1`
4153
- );
4154
- return 1;
4155
- }
4156
- }
4157
- }
4158
- async function fetchFromCoinGecko(identifier) {
4423
+ async function fetchPrice(identifier, chainId = 1, apiKey) {
4159
4424
  const mappedIdentifier = mapTestnetToMainnet(identifier);
4160
- const url = mappedIdentifier.startsWith("0x") ? `https://api.coingecko.com/api/v3/simple/token_price/ethereum?contract_addresses=${mappedIdentifier}&vs_currencies=usd` : `https://api.coingecko.com/api/v3/simple/price?ids=${mappedIdentifier}&vs_currencies=usd`;
4161
- const response = await fetch(url);
4425
+ const network = new ChainConfigService().getCoingeckoId(`EVM-${chainId}`) || "ethereum";
4426
+ apiKey = apiKey || (typeof process !== "undefined" ? process?.env?.COINGECKO : void 0);
4427
+ const baseUrl = apiKey ? "https://pro-api.coingecko.com/api/v3" : "https://api.coingecko.com/api/v3";
4428
+ const url = mappedIdentifier.startsWith("0x") ? `${baseUrl}/simple/token_price/${network}?contract_addresses=${mappedIdentifier}&vs_currencies=usd` : `${baseUrl}/simple/price?ids=${mappedIdentifier}&vs_currencies=usd`;
4429
+ const headers = apiKey ? { "x-cg-pro-api-key": apiKey } : void 0;
4430
+ const response = await fetch(url, { headers });
4162
4431
  if (!response.ok) {
4163
4432
  throw new Error(`CoinGecko API error: ${response.status} ${response.statusText}`);
4164
4433
  }
4165
4434
  const data = await response.json();
4166
4435
  const key = mappedIdentifier.toLowerCase();
4167
4436
  if (!data[key]?.usd) {
4168
- throw new Error(`Price not found for token: ${mappedIdentifier}`);
4437
+ throw new Error(`Price not found for token: ${mappedIdentifier} on ${network}`);
4169
4438
  }
4170
4439
  return data[key].usd;
4171
4440
  }
4172
- async function fetchFromDefillama(identifier) {
4173
- const mappedIdentifier = mapTestnetToMainnet(identifier);
4174
- const coinId = mappedIdentifier.startsWith("0x") ? `ethereum:${mappedIdentifier}` : `coingecko:${mappedIdentifier}`;
4175
- const url = `https://coins.llama.fi/prices/current/${coinId}`;
4176
- const response = await fetch(url);
4177
- if (!response.ok) {
4178
- throw new Error(`Defillama API error: ${response.status} ${response.statusText}`);
4179
- }
4180
- const data = await response.json();
4181
- const price = data.coins?.[coinId]?.price;
4182
- if (!price && price !== 0) {
4183
- throw new Error(`Price not found for token: ${mappedIdentifier}`);
4184
- }
4185
- return price;
4186
- }
4187
4441
  var ERC20Method = /* @__PURE__ */ ((ERC20Method2) => {
4188
4442
  ERC20Method2["BALANCE_OF"] = "0x70a08231";
4189
4443
  ERC20Method2["ALLOWANCE"] = "0xdd62ed3e";
@@ -4250,276 +4504,6 @@ var ExpectedError = class _ExpectedError extends Error {
4250
4504
  return error instanceof _ExpectedError;
4251
4505
  }
4252
4506
  };
4253
- var Chains = /* @__PURE__ */ ((Chains2) => {
4254
- Chains2["BSC_CHAPEL"] = "EVM-97";
4255
- Chains2["GNOSIS_CHIADO"] = "EVM-10200";
4256
- Chains2["HYPERBRIDGE_GARGANTUA"] = "KUSAMA-4009";
4257
- Chains2["SEPOLIA"] = "EVM-11155111";
4258
- Chains2["MAINNET"] = "EVM-1";
4259
- Chains2["BSC_MAINNET"] = "EVM-56";
4260
- Chains2["ARBITRUM_MAINNET"] = "EVM-42161";
4261
- Chains2["BASE_MAINNET"] = "EVM-8453";
4262
- return Chains2;
4263
- })(Chains || {});
4264
- var chainIds = {
4265
- ["EVM-97" /* BSC_CHAPEL */]: 97,
4266
- ["EVM-10200" /* GNOSIS_CHIADO */]: 10200,
4267
- ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: 4009,
4268
- ["EVM-11155111" /* SEPOLIA */]: 11155111,
4269
- ["EVM-1" /* MAINNET */]: 1,
4270
- ["EVM-56" /* BSC_MAINNET */]: 56,
4271
- ["EVM-42161" /* ARBITRUM_MAINNET */]: 42161,
4272
- ["EVM-8453" /* BASE_MAINNET */]: 8453
4273
- };
4274
- var viemChains = {
4275
- "97": bscTestnet,
4276
- "10200": gnosisChiado,
4277
- "11155111": sepolia,
4278
- "1": mainnet,
4279
- "56": bsc,
4280
- "42161": arbitrum,
4281
- "8453": base
4282
- };
4283
- var WrappedNativeDecimals = {
4284
- ["EVM-97" /* BSC_CHAPEL */]: 18,
4285
- ["EVM-10200" /* GNOSIS_CHIADO */]: 18,
4286
- ["EVM-11155111" /* SEPOLIA */]: 18,
4287
- ["EVM-1" /* MAINNET */]: 18,
4288
- ["EVM-56" /* BSC_MAINNET */]: 18,
4289
- ["EVM-42161" /* ARBITRUM_MAINNET */]: 18,
4290
- ["EVM-8453" /* BASE_MAINNET */]: 18
4291
- };
4292
- var assets = {
4293
- ["EVM-97" /* BSC_CHAPEL */]: {
4294
- WETH: "0xae13d989dac2f0debff460ac112a837c89baa7cd".toLowerCase(),
4295
- DAI: "0x1938165569A5463327fb206bE06d8D9253aa06b7".toLowerCase(),
4296
- USDC: "0xC625ec7D30A4b1AAEfb1304610CdAcD0d606aC92".toLowerCase(),
4297
- USDT: "0xc043f483373072f7f27420d6e7d7ad269c018e18".toLowerCase()
4298
- },
4299
- ["EVM-10200" /* GNOSIS_CHIADO */]: {
4300
- WETH: "0x0000000000000000000000000000000000000000".toLowerCase(),
4301
- DAI: "0x50B1d3c7c073c9caa1Ef207365A2c9C976bD70b9".toLowerCase(),
4302
- USDC: "0x0000000000000000000000000000000000000000".toLowerCase(),
4303
- USDT: "0x0000000000000000000000000000000000000000".toLowerCase()
4304
- },
4305
- ["EVM-11155111" /* SEPOLIA */]: {
4306
- WETH: "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9".toLowerCase(),
4307
- USDC: "0x0000000000000000000000000000000000000000".toLowerCase(),
4308
- USDT: "0x0000000000000000000000000000000000000000".toLowerCase(),
4309
- DAI: "0x0000000000000000000000000000000000000000".toLowerCase()
4310
- },
4311
- ["EVM-1" /* MAINNET */]: {
4312
- WETH: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".toLowerCase(),
4313
- DAI: "0x6B175474E89094C44Da98b954EedeAC495271d0F".toLowerCase(),
4314
- USDC: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48".toLowerCase(),
4315
- USDT: "0xdAC17F958D2ee523a2206206994597C13D831ec7".toLowerCase()
4316
- },
4317
- ["EVM-56" /* BSC_MAINNET */]: {
4318
- WETH: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c".toLowerCase(),
4319
- DAI: "0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3".toLowerCase(),
4320
- USDC: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d".toLowerCase(),
4321
- USDT: "0x55d398326f99059fF775485246999027B3197955".toLowerCase()
4322
- },
4323
- ["EVM-42161" /* ARBITRUM_MAINNET */]: {
4324
- WETH: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1".toLowerCase(),
4325
- DAI: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1".toLowerCase(),
4326
- USDC: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831".toLowerCase(),
4327
- USDT: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9".toLowerCase()
4328
- },
4329
- ["EVM-8453" /* BASE_MAINNET */]: {
4330
- WETH: "0x4200000000000000000000000000000000000006".toLowerCase(),
4331
- DAI: "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb".toLowerCase(),
4332
- USDC: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913".toLowerCase(),
4333
- USDT: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2".toLowerCase()
4334
- }
4335
- };
4336
- var addresses = {
4337
- IntentGateway: {
4338
- ["EVM-97" /* BSC_CHAPEL */]: "0x016b6ffC9f890d1e28f9Fdb9eaDA776b02F89509",
4339
- ["EVM-10200" /* GNOSIS_CHIADO */]: "0x016b6ffC9f890d1e28f9Fdb9eaDA776b02F89509",
4340
- ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
4341
- ["EVM-1" /* MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
4342
- ["EVM-56" /* BSC_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
4343
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA",
4344
- ["EVM-8453" /* BASE_MAINNET */]: "0xd54165e45926720b062C192a5bacEC64d5bB08DA"
4345
- },
4346
- Host: {
4347
- ["EVM-97" /* BSC_CHAPEL */]: "0x8Aa0Dea6D675d785A882967Bf38183f6117C09b7",
4348
- ["EVM-10200" /* GNOSIS_CHIADO */]: "0x58a41b89f4871725e5d898d98ef4bf917601c5eb",
4349
- ["EVM-11155111" /* SEPOLIA */]: "0x2EdB74C269948b60ec1000040E104cef0eABaae8",
4350
- ["EVM-1" /* MAINNET */]: "0x792A6236AF69787C40cF76b69B4c8c7B28c4cA20",
4351
- ["EVM-56" /* BSC_MAINNET */]: "0x24B5d421Ec373FcA57325dd2F0C074009Af021F7",
4352
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0xE05AFD4Eb2ce6d65c40e1048381BD0Ef8b4B299e",
4353
- ["EVM-8453" /* BASE_MAINNET */]: "0x6FFe92e4d7a9D589549644544780e6725E84b248"
4354
- },
4355
- UniswapRouter02: {
4356
- ["EVM-97" /* BSC_CHAPEL */]: "0x9639379819420704457B07A0C33B678D9E0F8Df0",
4357
- ["EVM-10200" /* GNOSIS_CHIADO */]: "0x0000000000000000000000000000000000000000",
4358
- ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
4359
- ["EVM-1" /* MAINNET */]: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
4360
- ["EVM-56" /* BSC_MAINNET */]: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24",
4361
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4362
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4363
- },
4364
- UniswapV2Factory: {
4365
- ["EVM-97" /* BSC_CHAPEL */]: "0x12e036669DA18F4A2777853d6e2136b32AceEC86",
4366
- ["EVM-10200" /* GNOSIS_CHIADO */]: "0x0000000000000000000000000000000000000000",
4367
- ["EVM-11155111" /* SEPOLIA */]: "0x0000000000000000000000000000000000000000",
4368
- ["EVM-1" /* MAINNET */]: "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
4369
- ["EVM-56" /* BSC_MAINNET */]: "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
4370
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4371
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4372
- },
4373
- BatchExecutor: {
4374
- ["EVM-97" /* BSC_CHAPEL */]: "0x4CC58B5D8FBf838d062E4b21F75C327835B5F0ef",
4375
- ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
4376
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4377
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4378
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4379
- },
4380
- UniversalRouter: {
4381
- ["EVM-97" /* BSC_CHAPEL */]: "0xcc6d5ece3d4a57245bf5a2f64f3ed9179b81f714",
4382
- ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
4383
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4384
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4385
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4386
- },
4387
- UniswapV3Router: {
4388
- ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
4389
- ["EVM-1" /* MAINNET */]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
4390
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4391
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4392
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4393
- },
4394
- UniswapV3Factory: {
4395
- ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
4396
- ["EVM-1" /* MAINNET */]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
4397
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4398
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4399
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4400
- },
4401
- UniswapV3Quoter: {
4402
- ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
4403
- ["EVM-1" /* MAINNET */]: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
4404
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4405
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4406
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4407
- },
4408
- UniswapV4PoolManager: {
4409
- ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
4410
- ["EVM-1" /* MAINNET */]: "0x0000000000000000000000000000000000000000",
4411
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4412
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4413
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4414
- },
4415
- UniswapV4Quoter: {
4416
- ["EVM-97" /* BSC_CHAPEL */]: "0x0000000000000000000000000000000000000000",
4417
- ["EVM-1" /* MAINNET */]: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203",
4418
- ["EVM-56" /* BSC_MAINNET */]: "0x0000000000000000000000000000000000000000",
4419
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "0x0000000000000000000000000000000000000000",
4420
- ["EVM-8453" /* BASE_MAINNET */]: "0x0000000000000000000000000000000000000000"
4421
- },
4422
- Calldispatcher: {
4423
- ["EVM-11155111" /* SEPOLIA */]: "0xC7f13b6D03A0A7F3239d38897503E90553ABe155"
4424
- }
4425
- };
4426
- var createRpcUrls = (env2) => ({
4427
- ["EVM-97" /* BSC_CHAPEL */]: env2.BSC_CHAPEL || "https://bnb-testnet.api.onfinality.io/public",
4428
- ["EVM-10200" /* GNOSIS_CHIADO */]: env2.GNOSIS_CHIADO || "https://gnosis-chiado-rpc.publicnode.com",
4429
- ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: env2.HYPERBRIDGE_GARGANTUA || "",
4430
- ["EVM-11155111" /* SEPOLIA */]: env2.SEPOLIA || "https://1rpc.io/sepolia",
4431
- ["EVM-1" /* MAINNET */]: env2.ETH_MAINNET || "https://eth-mainnet.g.alchemy.com/v2/demo",
4432
- ["EVM-56" /* BSC_MAINNET */]: env2.BSC_MAINNET || "https://binance.llamarpc.com",
4433
- ["EVM-42161" /* ARBITRUM_MAINNET */]: env2.ARBITRUM_MAINNET || "https://arbitrum-one.public.blastapi.io",
4434
- ["EVM-8453" /* BASE_MAINNET */]: env2.BASE_MAINNET || "https://base-mainnet.public.blastapi.io"
4435
- });
4436
- var consensusStateIds = {
4437
- ["EVM-97" /* BSC_CHAPEL */]: "BSC0",
4438
- ["EVM-10200" /* GNOSIS_CHIADO */]: "GNO0",
4439
- ["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */]: "PAS0",
4440
- ["EVM-11155111" /* SEPOLIA */]: "ETH0",
4441
- ["EVM-1" /* MAINNET */]: "ETH0",
4442
- ["EVM-56" /* BSC_MAINNET */]: "BSC0",
4443
- ["EVM-42161" /* ARBITRUM_MAINNET */]: "ETH0",
4444
- ["EVM-8453" /* BASE_MAINNET */]: "ETH0"
4445
- };
4446
-
4447
- // src/configs/ChainConfigService.ts
4448
- var ChainConfigService = class {
4449
- rpcUrls;
4450
- constructor(env2 = process.env) {
4451
- this.rpcUrls = createRpcUrls(env2);
4452
- }
4453
- getChainConfig(chain) {
4454
- return {
4455
- chainId: chainIds[chain],
4456
- rpcUrl: this.rpcUrls[chain],
4457
- intentGatewayAddress: addresses.IntentGateway[chain]
4458
- };
4459
- }
4460
- getIntentGatewayAddress(chain) {
4461
- return addresses.IntentGateway[chain];
4462
- }
4463
- getHostAddress(chain) {
4464
- return addresses.Host[chain];
4465
- }
4466
- getWrappedNativeAssetWithDecimals(chain) {
4467
- return {
4468
- asset: assets[chain].WETH,
4469
- decimals: WrappedNativeDecimals[chain]
4470
- };
4471
- }
4472
- getDaiAsset(chain) {
4473
- return assets[chain].DAI;
4474
- }
4475
- getUsdtAsset(chain) {
4476
- return assets[chain].USDT;
4477
- }
4478
- getUsdcAsset(chain) {
4479
- return assets[chain].USDC;
4480
- }
4481
- getChainId(chain) {
4482
- return chainIds[chain];
4483
- }
4484
- getConsensusStateId(chain) {
4485
- return toHex(consensusStateIds[chain]);
4486
- }
4487
- getHyperbridgeChainId() {
4488
- return chainIds["KUSAMA-4009" /* HYPERBRIDGE_GARGANTUA */];
4489
- }
4490
- getRpcUrl(chain) {
4491
- return this.rpcUrls[chain];
4492
- }
4493
- getUniswapRouterV2Address(chain) {
4494
- return addresses.UniswapRouter02[chain];
4495
- }
4496
- getUniswapV2FactoryAddress(chain) {
4497
- return addresses.UniswapV2Factory[chain];
4498
- }
4499
- getBatchExecutorAddress(chain) {
4500
- return addresses.BatchExecutor[chain];
4501
- }
4502
- getUniversalRouterAddress(chain) {
4503
- return addresses.UniversalRouter[chain];
4504
- }
4505
- getUniswapV3RouterAddress(chain) {
4506
- return addresses.UniswapV3Router[chain];
4507
- }
4508
- getUniswapV3FactoryAddress(chain) {
4509
- return addresses.UniswapV3Factory[chain];
4510
- }
4511
- getUniswapV3QuoterAddress(chain) {
4512
- return addresses.UniswapV3Quoter[chain];
4513
- }
4514
- getUniswapV4PoolManagerAddress(chain) {
4515
- return addresses.UniswapV4PoolManager[chain];
4516
- }
4517
- getUniswapV4QuoterAddress(chain) {
4518
- return addresses.UniswapV4Quoter[chain];
4519
- }
4520
- };
4521
-
4522
- // src/chains/evm.ts
4523
4507
  var chains = {
4524
4508
  [mainnet.id]: mainnet,
4525
4509
  [arbitrum.id]: arbitrum,
@@ -11426,8 +11410,7 @@ var IntentGateway = class {
11426
11410
  this.source.client,
11427
11411
  sourceChainFeeTokenDecimals
11428
11412
  );
11429
- const RELAYER_FEE_BPS = 200n;
11430
- const relayerFeeInSourceFeeToken = postGasEstimateInSourceFeeToken + postGasEstimateInSourceFeeToken * RELAYER_FEE_BPS / 10000n;
11413
+ const relayerFeeInSourceFeeToken = postGasEstimateInSourceFeeToken + 25n * 10n ** BigInt(sourceChainFeeTokenDecimals - 2);
11431
11414
  const relayerFeeInDestFeeToken = adjustFeeDecimals(
11432
11415
  relayerFeeInSourceFeeToken,
11433
11416
  sourceChainFeeTokenDecimals,
@@ -11482,7 +11465,8 @@ var IntentGateway = class {
11482
11465
  ];
11483
11466
  let destChainFillGas = 0n;
11484
11467
  try {
11485
- const protocolFeeInNativeToken = await this.quoteNative(postRequest, relayerFeeInDestFeeToken);
11468
+ let protocolFeeInNativeToken = await this.quoteNative(postRequest, relayerFeeInDestFeeToken);
11469
+ protocolFeeInNativeToken = protocolFeeInNativeToken + protocolFeeInNativeToken * 50n / 10000n;
11486
11470
  destChainFillGas = await this.dest.client.estimateContractGas({
11487
11471
  abi: IntentGateway_default.ABI,
11488
11472
  address: intentGatewayAddress,
@@ -11538,7 +11522,7 @@ var IntentGateway = class {
11538
11522
  sourceChainFeeTokenDecimals
11539
11523
  );
11540
11524
  const totalEstimate = fillGasInSourceFeeToken + protocolFeeInSourceFeeToken + relayerFeeInSourceFeeToken;
11541
- const SWAP_OPERATIONS_BPS = 2500n;
11525
+ const SWAP_OPERATIONS_BPS = 3500n;
11542
11526
  const swapOperationsInFeeToken = totalEstimate * SWAP_OPERATIONS_BPS / 10000n;
11543
11527
  const totalFeeTokenAmount = totalEstimate + swapOperationsInFeeToken;
11544
11528
  const totalNativeTokenAmount = await this.convertFeeTokenToNative(
@@ -11564,11 +11548,12 @@ var IntentGateway = class {
11564
11548
  */
11565
11549
  async convertFeeTokenToNative(feeTokenAmount, publicClient, feeTokenDecimals) {
11566
11550
  const nativeToken = publicClient.chain?.nativeCurrency;
11551
+ const chainId = publicClient.chain?.id;
11567
11552
  if (!nativeToken?.symbol || !nativeToken?.decimals) {
11568
11553
  throw new Error("Chain native currency information not available");
11569
11554
  }
11570
11555
  const feeTokenAmountNumber = Number(feeTokenAmount) / Math.pow(10, feeTokenDecimals);
11571
- const nativeTokenPriceUsd = await fetchTokenUsdPrice(nativeToken.symbol);
11556
+ const nativeTokenPriceUsd = await fetchPrice(nativeToken.symbol, chainId);
11572
11557
  const totalCostInNativeToken = feeTokenAmountNumber / nativeTokenPriceUsd;
11573
11558
  return BigInt(Math.floor(totalCostInNativeToken * Math.pow(10, nativeToken.decimals)));
11574
11559
  }
@@ -11586,13 +11571,14 @@ var IntentGateway = class {
11586
11571
  const gasPrice = await publicClient.getGasPrice();
11587
11572
  const gasCostInWei = gasEstimate * gasPrice;
11588
11573
  const nativeToken = publicClient.chain?.nativeCurrency;
11574
+ const chainId = publicClient.chain?.id;
11589
11575
  if (!nativeToken?.symbol || !nativeToken?.decimals) {
11590
11576
  throw new Error("Chain native currency information not available");
11591
11577
  }
11592
11578
  const gasCostInToken = Number(gasCostInWei) / Math.pow(10, nativeToken.decimals);
11593
- const tokenPriceUsd = await fetchTokenUsdPrice(nativeToken.symbol);
11579
+ const tokenPriceUsd = await fetchPrice(nativeToken.symbol, chainId);
11594
11580
  const gasCostUsd = gasCostInToken * tokenPriceUsd;
11595
- const feeTokenPriceUsd = await fetchTokenUsdPrice("DAI");
11581
+ const feeTokenPriceUsd = await fetchPrice("DAI");
11596
11582
  const gasCostInFeeToken = gasCostUsd / feeTokenPriceUsd;
11597
11583
  return BigInt(Math.floor(gasCostInFeeToken * Math.pow(10, targetDecimals)));
11598
11584
  }
@@ -12305,6 +12291,6 @@ async function teleportDot(param_) {
12305
12291
  return stream;
12306
12292
  }
12307
12293
 
12308
- export { ADDRESS_ZERO, ChainConfigService, Chains, DEFAULT_ADDRESS, DEFAULT_GRAFFITI, DUMMY_PRIVATE_KEY, ERC20Method, EvmChain, HyperClientStatus, IndexerClient, IntentGateway, OrderStatus, REQUEST_COMMITMENTS_SLOT, REQUEST_RECEIPTS_SLOT, RESPONSE_COMMITMENTS_SLOT, RESPONSE_RECEIPTS_SLOT, RequestKind, RequestStatus, STATE_COMMITMENTS_SLOT, SubstrateChain, TeleportStatus, TimeoutStatus, WrappedNativeDecimals, __test, addresses, adjustFeeDecimals, assets, bytes20ToBytes32, bytes32ToBytes20, chainIds, consensusStateIds, constructRedeemEscrowRequestBody, convertStateMachineIdToEnum, createQueryClient, createRpcUrls, encodeISMPMessage, estimateGasForPost, fetchTokenUsdPrice, generateRootWithProof, getChain, getRequestCommitment, getStateCommitmentFieldSlot, getStateCommitmentSlot, getStorageSlot, hexToString, orderCommitment, postRequestCommitment, queryGetRequest, queryPostRequest, teleport, teleportDot, viemChains };
12294
+ export { ADDRESS_ZERO, ChainConfigService, Chains, DEFAULT_ADDRESS, DEFAULT_GRAFFITI, DUMMY_PRIVATE_KEY, ERC20Method, EvmChain, HyperClientStatus, IndexerClient, IntentGateway, OrderStatus, REQUEST_COMMITMENTS_SLOT, REQUEST_RECEIPTS_SLOT, RESPONSE_COMMITMENTS_SLOT, RESPONSE_RECEIPTS_SLOT, RequestKind, RequestStatus, STATE_COMMITMENTS_SLOT, SubstrateChain, TeleportStatus, TimeoutStatus, WrappedNativeDecimals, __test, addresses, adjustFeeDecimals, assets, bytes20ToBytes32, bytes32ToBytes20, chainIds, coingeckoIds, consensusStateIds, constructRedeemEscrowRequestBody, convertStateMachineIdToEnum, createQueryClient, createRpcUrls, encodeISMPMessage, estimateGasForPost, fetchPrice, generateRootWithProof, getChain, getRequestCommitment, getStateCommitmentFieldSlot, getStateCommitmentSlot, getStorageSlot, hexToString, orderCommitment, postRequestCommitment, queryGetRequest, queryPostRequest, teleport, teleportDot, viemChains };
12309
12295
  //# sourceMappingURL=index.js.map
12310
12296
  //# sourceMappingURL=index.js.map