@funkit/fun-relay 2.2.0-next.5 → 2.2.0-next.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @funkit/fun-relay
2
2
 
3
+ ## 2.2.0-next.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 320236b: refactor: refactor approval calldata generation
8
+ - 52406e3: feat(connect,fun-relay): add new lighter spot assets
9
+ - 2f57830: feat: implemented revoke/reset approval mechanics for tokens with non-standard approval implementation
10
+ - ab9c1e9: chore: update assets
11
+ - d4b9ea5: feat(fun-relay): add new lighter routes
12
+
3
13
  ## 2.2.0-next.5
4
14
 
5
15
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -11,6 +11,6 @@ export { type TronAddress, type TronTxHash, type TronWallet, getTronWallet, } fr
11
11
  export type { LighterAccountIndex, LighterWallet } from './src/lighter';
12
12
  export { getRelayExecutionRefundState, getRelayExecutionState, isRelayExecutionTerminalStatus, convertFunToRelayTokenAddress, convertFunToRelayChainId, } from './src/utils';
13
13
  export { LogLevel, type RelayExecutionInfo, type RelayExecutionStatus, type RelayTokenPriceInfo, } from './src/types';
14
- export { DYNAMIC_ROUTES, initDynamicRouting } from './src/dynamicRoutes';
14
+ export { DYNAMIC_ROUTES, initDynamicRouting, shouldResetApproval, } from './src/dynamicRoutes';
15
15
  export type { DynamicRoutes, DynamicRoute, DynamicRoutePath, DynamicRouteConfig, DynamicRoutingConfig, IndexedDynamicRoutingConfig, RuleDefinition, RuleDefinitions, } from './src/dynamicRoutes/types';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,aAAa,EACb,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,eAAe,GAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxE,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,eAAe,GAChB,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,aAAa,EACb,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,eAAe,GAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,aAAa,GACd,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,eAAe,GAChB,MAAM,2BAA2B,CAAA"}
package/dist/index.js CHANGED
@@ -51,7 +51,8 @@ __export(index_exports, {
51
51
  initDynamicRouting: () => initDynamicRouting,
52
52
  initializeRelayClient: () => initializeRelayClient,
53
53
  isRelayExecutionTerminalStatus: () => isRelayExecutionTerminalStatus,
54
- parseRelayFees: () => parseRelayFees
54
+ parseRelayFees: () => parseRelayFees,
55
+ shouldResetApproval: () => shouldResetApproval
55
56
  });
56
57
  module.exports = __toCommonJS(index_exports);
57
58
 
@@ -872,8 +873,8 @@ function getTronWallet(walletAddress, tronWeb) {
872
873
  }
873
874
 
874
875
  // src/dynamicRoutes/lighter.ts
875
- var import_viem4 = require("viem");
876
- var import_chains2 = require("viem/chains");
876
+ var import_viem5 = require("viem");
877
+ var import_chains3 = require("viem/chains");
877
878
 
878
879
  // src/dynamicRoutes/abi.ts
879
880
  var UNWRAP_AND_CALL_ABI = [
@@ -1316,7 +1317,7 @@ var ASSET_LOGO_SRCS = {
1316
1317
  IMX: "https://sdk-cdn.fun.xyz/images/imx.svg",
1317
1318
  INJ: "https://sdk-cdn.fun.xyz/images/inj.svg",
1318
1319
  LDO: "https://sdk-cdn.fun.xyz/images/ldo.svg",
1319
- LINK: "https://sdk-cdn.fun.xyz/images/link.svg",
1320
+ LINK: "https://sdk-cdn.fun.xyz/images/link.png",
1320
1321
  LUCK: "https://sdk-cdn.fun.xyz/images/luck.png",
1321
1322
  MATIC: "https://sdk-cdn.fun.xyz/images/matic.svg",
1322
1323
  MFER: "https://sdk-cdn.fun.xyz/images/mfer.png",
@@ -1334,7 +1335,7 @@ var ASSET_LOGO_SRCS = {
1334
1335
  SOL: "https://sdk-cdn.fun.xyz/images/sol.svg",
1335
1336
  SUSDS: "https://sdk-cdn.fun.xyz/images/susds.svg",
1336
1337
  TYBG: "https://sdk-cdn.fun.xyz/images/tybg.png",
1337
- UNI: "https://sdk-cdn.fun.xyz/images/uni.svg",
1338
+ UNI: "https://sdk-cdn.fun.xyz/images/uni.png",
1338
1339
  USDC: "https://sdk-cdn.fun.xyz/images/usdc.svg",
1339
1340
  "USDC.E": "https://sdk-cdn.fun.xyz/images/usdc.svg",
1340
1341
  USDE: "https://sdk-cdn.fun.xyz/images/usde.svg",
@@ -1375,7 +1376,8 @@ var ASSET_LOGO_SRCS = {
1375
1376
  MON: "https://sdk-cdn.fun.xyz/images/monad.svg",
1376
1377
  WMON: "https://sdk-cdn.fun.xyz/images/wmon.svg",
1377
1378
  AUSD: "https://sdk-cdn.fun.xyz/images/ausd.svg",
1378
- SUSHI: "https://sdk-cdn.fun.xyz/images/sushi.svg"
1379
+ SUSHI: "https://sdk-cdn.fun.xyz/images/sushi.svg",
1380
+ SKY: "https://sdk-cdn.fun.xyz/images/sky.svg"
1379
1381
  };
1380
1382
 
1381
1383
  // src/dynamicRoutes/consts.ts
@@ -1389,6 +1391,25 @@ var tokenAddresses = {
1389
1391
  },
1390
1392
  USDC: {
1391
1393
  [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48")
1394
+ },
1395
+ // LIT is currently unused
1396
+ LIT: {
1397
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x232CE3bd40fCd6f80f3d55A522d03f25Df784Ee2")
1398
+ },
1399
+ LINK: {
1400
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x514910771AF9Ca656af840dff83E8264EcF986CA")
1401
+ },
1402
+ UNI: {
1403
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984")
1404
+ },
1405
+ AAVE: {
1406
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9")
1407
+ },
1408
+ SKY: {
1409
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x56072C95FAA701256059aa122697B133aDEd9279")
1410
+ },
1411
+ LDO: {
1412
+ [import_chains.mainnet.id]: (0, import_viem2.getAddress)("0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32")
1392
1413
  }
1393
1414
  };
1394
1415
  var UNWRAP_AND_CALL_ADDRESS = {
@@ -1403,6 +1424,8 @@ var LIGHTER_DEPOSIT_ADDRESS = (0, import_viem2.getAddress)(
1403
1424
  var MATCH_ALL_CONDITION = "*";
1404
1425
 
1405
1426
  // src/dynamicRoutes/utils.ts
1427
+ var import_viem4 = require("viem");
1428
+ var import_chains2 = require("viem/chains");
1406
1429
  var createPath = (config) => {
1407
1430
  return config;
1408
1431
  };
@@ -1485,6 +1508,35 @@ var initDynamicRouting = (dynamicRoutes, dynamicRoutingConfig) => {
1485
1508
  );
1486
1509
  return indexedDynamicRoutingConfig;
1487
1510
  };
1511
+ var MAX_APPROVAL = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
1512
+ var getApprovalCalldata = ({
1513
+ tokenAddress,
1514
+ spenderAddress,
1515
+ amount
1516
+ }) => {
1517
+ return {
1518
+ contractAbi: import_viem4.erc20Abi,
1519
+ contractAddress: tokenAddress,
1520
+ functionName: "approve",
1521
+ functionArgs: [spenderAddress, amount]
1522
+ };
1523
+ };
1524
+ var getResetApprovalCalldata = ({
1525
+ tokenAddress,
1526
+ spenderAddress
1527
+ }) => {
1528
+ return getApprovalCalldata({
1529
+ tokenAddress,
1530
+ spenderAddress,
1531
+ amount: "0"
1532
+ });
1533
+ };
1534
+ var RESET_APPROVAL_TOKENS = [tokenAddresses.LDO[import_chains2.mainnet.id]].map(
1535
+ (address) => address.toLowerCase()
1536
+ );
1537
+ var shouldResetApproval = (tokenAddress) => {
1538
+ return RESET_APPROVAL_TOKENS.includes(tokenAddress.toLowerCase());
1539
+ };
1488
1540
 
1489
1541
  // src/dynamicRoutes/lighter.ts
1490
1542
  var NATIVE_TOKEN = FUNKIT_NATIVE_TOKEN;
@@ -1493,23 +1545,40 @@ var RELAY_LIGHTER_ETH_SPOT_ADDRESS = "0x0000000000000000000000000000000000000001
1493
1545
  var RELAY_LIGHTER_USDC_PERPS_ADDRESS = "0x0000000000000000000000000000000000000000";
1494
1546
  var TICK_SIZE_FOR_ASSET_INDEX = {
1495
1547
  [3 /* USDC */]: BigInt(1),
1496
- [1 /* ETH */]: BigInt(10 ** 10)
1548
+ [1 /* ETH */]: BigInt(10 ** 10),
1549
+ [2 /* LIT */]: BigInt(10 ** 10),
1550
+ [5 /* LINK */]: BigInt(10 ** 10),
1551
+ [6 /* UNI */]: BigInt(10 ** 10),
1552
+ [7 /* AAVE */]: BigInt(10 ** 10),
1553
+ [8 /* SKY */]: BigInt(10 ** 10),
1554
+ [9 /* LDO */]: BigInt(10 ** 10)
1497
1555
  };
1498
1556
  var DEPOSIT_TOKEN_FOR_ASSET_INDEX = {
1499
- [3 /* USDC */]: tokenAddresses.USDC[import_chains2.mainnet.id],
1500
- [1 /* ETH */]: NATIVE_TOKEN
1557
+ [3 /* USDC */]: tokenAddresses.USDC[import_chains3.mainnet.id],
1558
+ [1 /* ETH */]: NATIVE_TOKEN,
1559
+ [2 /* LIT */]: tokenAddresses.LIT[import_chains3.mainnet.id],
1560
+ [5 /* LINK */]: tokenAddresses.LINK[import_chains3.mainnet.id],
1561
+ [6 /* UNI */]: tokenAddresses.UNI[import_chains3.mainnet.id],
1562
+ [7 /* AAVE */]: tokenAddresses.AAVE[import_chains3.mainnet.id],
1563
+ [8 /* SKY */]: tokenAddresses.SKY[import_chains3.mainnet.id],
1564
+ [9 /* LDO */]: tokenAddresses.LDO[import_chains3.mainnet.id]
1501
1565
  };
1502
1566
  var USDC_PERPS_SYMBOL = "USDC (Perps)";
1503
1567
  var ETH_SPOT_SYMBOL = "ETH (Spot)";
1568
+ var LINK_SPOT_SYMBOL = "LINK (Spot)";
1569
+ var UNI_SPOT_SYMBOL = "UNI (Spot)";
1570
+ var AAVE_SPOT_SYMBOL = "AAVE (Spot)";
1571
+ var SKY_SPOT_SYMBOL = "SKY (Spot)";
1572
+ var LDO_SPOT_SYMBOL = "LDO (Spot)";
1504
1573
  var generateLighterMainnetDepositActions = ({
1505
1574
  address,
1506
1575
  assetIndex,
1507
1576
  routeType
1508
1577
  }) => {
1509
- const depositSelector = (0, import_viem4.toFunctionSelector)(
1578
+ const depositSelector = (0, import_viem5.toFunctionSelector)(
1510
1579
  "deposit(address,uint16,uint8,uint256)"
1511
1580
  );
1512
- const encodedLighterParams = (0, import_viem4.encodeAbiParameters)(
1581
+ const encodedLighterParams = (0, import_viem5.encodeAbiParameters)(
1513
1582
  [
1514
1583
  { type: "address" },
1515
1584
  { type: "uint16" },
@@ -1518,12 +1587,12 @@ var generateLighterMainnetDepositActions = ({
1518
1587
  ],
1519
1588
  [address, assetIndex, routeType, AMOUNT_PLACEHOLDER]
1520
1589
  );
1521
- const lighterDepositCalldata = (0, import_viem4.concat)([depositSelector, encodedLighterParams]);
1590
+ const lighterDepositCalldata = (0, import_viem5.concat)([depositSelector, encodedLighterParams]);
1522
1591
  const depositToken = DEPOSIT_TOKEN_FOR_ASSET_INDEX[assetIndex];
1523
1592
  const tickSize = TICK_SIZE_FOR_ASSET_INDEX[assetIndex];
1524
1593
  const dustRecipient = address;
1525
1594
  if (depositToken === NATIVE_TOKEN) {
1526
- const vaultWrapperCalldata = (0, import_viem4.encodeFunctionData)({
1595
+ const vaultWrapperCalldata = (0, import_viem5.encodeFunctionData)({
1527
1596
  abi: VAULT_DEPOSITOR_ABI,
1528
1597
  functionName: "depositWithTick",
1529
1598
  args: [
@@ -1543,22 +1612,18 @@ var generateLighterMainnetDepositActions = ({
1543
1612
  });
1544
1613
  return [
1545
1614
  // Step 1: Approve WETH to UnwrapWETHAndCall
1546
- {
1547
- contractAbi: import_viem3.erc20Abi,
1548
- contractAddress: tokenAddresses.WETH[import_chains2.mainnet.id],
1549
- functionName: "approve",
1550
- functionArgs: [
1551
- UNWRAP_AND_CALL_ADDRESS[import_chains2.mainnet.id],
1552
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1553
- ]
1554
- },
1615
+ getApprovalCalldata({
1616
+ tokenAddress: tokenAddresses.WETH[import_chains3.mainnet.id],
1617
+ spenderAddress: UNWRAP_AND_CALL_ADDRESS[import_chains3.mainnet.id],
1618
+ amount: MAX_APPROVAL
1619
+ }),
1555
1620
  // Step 2: UnwrapWETHAndCall pulls WETH, unwraps to ETH, sends to VaultWrapper, calls deposit
1556
1621
  {
1557
1622
  contractAbi: UNWRAP_AND_CALL_ABI,
1558
- contractAddress: UNWRAP_AND_CALL_ADDRESS[import_chains2.mainnet.id],
1623
+ contractAddress: UNWRAP_AND_CALL_ADDRESS[import_chains3.mainnet.id],
1559
1624
  functionName: "unwrapAndCall",
1560
1625
  functionArgs: [
1561
- VAULT_DEPOSITOR_ADDRESS[import_chains2.mainnet.id],
1626
+ VAULT_DEPOSITOR_ADDRESS[import_chains3.mainnet.id],
1562
1627
  // target (VaultWrapper)
1563
1628
  vaultWrapperCalldata
1564
1629
  // VaultWrapper.deposit() calldata
@@ -1566,52 +1631,53 @@ var generateLighterMainnetDepositActions = ({
1566
1631
  }
1567
1632
  ];
1568
1633
  }
1569
- if (depositToken === tokenAddresses.USDC[import_chains2.mainnet.id]) {
1570
- return [
1571
- // Step 1: Approve USDC to VaultDepositor
1572
- {
1573
- contractAbi: import_viem3.erc20Abi,
1574
- contractAddress: tokenAddresses.USDC[import_chains2.mainnet.id],
1575
- functionName: "approve",
1576
- functionArgs: [
1577
- VAULT_DEPOSITOR_ADDRESS[import_chains2.mainnet.id],
1578
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1579
- // Max approval
1580
- ]
1581
- },
1582
- // Step 2: VaultDepositor pulls USDC and calls Lighter deposit
1583
- {
1584
- contractAbi: VAULT_DEPOSITOR_ABI,
1585
- contractAddress: VAULT_DEPOSITOR_ADDRESS[import_chains2.mainnet.id],
1586
- functionName: "depositWithTick",
1587
- functionArgs: [
1588
- tokenAddresses.USDC[import_chains2.mainnet.id],
1589
- // token (USDC)
1590
- LIGHTER_DEPOSIT_ADDRESS,
1591
- // vault (Lighter deposit contract)
1592
- lighterDepositCalldata,
1593
- // callData
1594
- 0n,
1595
- // minAmountOut
1596
- tickSize,
1597
- // tickSize
1598
- dustRecipient
1599
- // dustRecipient
1600
- ]
1601
- }
1602
- ];
1603
- }
1634
+ const resetApprovalNeeded = shouldResetApproval(depositToken);
1635
+ return [
1636
+ // Special handling of LDO token as it requires approval reset before approval can be set to a new value due to non-standard implementation of the approve function.
1637
+ ...resetApprovalNeeded ? [
1638
+ getResetApprovalCalldata({
1639
+ tokenAddress: depositToken,
1640
+ spenderAddress: VAULT_DEPOSITOR_ADDRESS[import_chains3.mainnet.id]
1641
+ })
1642
+ ] : [],
1643
+ // Step 1: Approve deposit token to VaultDepositor
1644
+ getApprovalCalldata({
1645
+ tokenAddress: depositToken,
1646
+ spenderAddress: VAULT_DEPOSITOR_ADDRESS[import_chains3.mainnet.id],
1647
+ amount: MAX_APPROVAL
1648
+ }),
1649
+ // Step 2: VaultDepositor pulls deposit token and calls Lighter deposit
1650
+ {
1651
+ contractAbi: VAULT_DEPOSITOR_ABI,
1652
+ contractAddress: VAULT_DEPOSITOR_ADDRESS[import_chains3.mainnet.id],
1653
+ functionName: "depositWithTick",
1654
+ functionArgs: [
1655
+ depositToken,
1656
+ // token (deposit token)
1657
+ LIGHTER_DEPOSIT_ADDRESS,
1658
+ // vault (Lighter deposit contract)
1659
+ lighterDepositCalldata,
1660
+ // callData
1661
+ 0n,
1662
+ // minAmountOut
1663
+ tickSize,
1664
+ // tickSize
1665
+ dustRecipient
1666
+ // dustRecipient
1667
+ ]
1668
+ }
1669
+ ];
1604
1670
  };
1605
1671
  var LIGHTER_USDC_PERPS_FUN_MAINNET_DEPOSIT = createPath({
1606
- targetChain: import_chains2.mainnet.id.toString(),
1607
- targetAsset: tokenAddresses.USDC[import_chains2.mainnet.id],
1672
+ targetChain: import_chains3.mainnet.id.toString(),
1673
+ targetAsset: tokenAddresses.USDC[import_chains3.mainnet.id],
1608
1674
  targetAssetTicker: USDC_PERPS_SYMBOL,
1609
1675
  iconSrc: ASSET_LOGO_SRCS.USDC,
1610
1676
  generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1611
1677
  if (!outputConfig) {
1612
1678
  return [];
1613
1679
  }
1614
- if (outputConfig.targetChain !== import_chains2.mainnet.id.toString()) {
1680
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1615
1681
  return [];
1616
1682
  }
1617
1683
  return generateLighterMainnetDepositActions({
@@ -1622,15 +1688,15 @@ var LIGHTER_USDC_PERPS_FUN_MAINNET_DEPOSIT = createPath({
1622
1688
  }
1623
1689
  });
1624
1690
  var LIGHTER_ETH_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1625
- targetChain: import_chains2.mainnet.id.toString(),
1626
- targetAsset: tokenAddresses.WETH[import_chains2.mainnet.id],
1691
+ targetChain: import_chains3.mainnet.id.toString(),
1692
+ targetAsset: tokenAddresses.WETH[import_chains3.mainnet.id],
1627
1693
  targetAssetTicker: ETH_SPOT_SYMBOL,
1628
1694
  iconSrc: ASSET_LOGO_SRCS.ETH,
1629
1695
  generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1630
1696
  if (!outputConfig) {
1631
1697
  return [];
1632
1698
  }
1633
- if (outputConfig.targetChain !== import_chains2.mainnet.id.toString()) {
1699
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1634
1700
  return [];
1635
1701
  }
1636
1702
  return generateLighterMainnetDepositActions({
@@ -1640,6 +1706,101 @@ var LIGHTER_ETH_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1640
1706
  });
1641
1707
  }
1642
1708
  });
1709
+ var LIGHTER_LINK_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1710
+ targetChain: import_chains3.mainnet.id.toString(),
1711
+ targetAsset: tokenAddresses.LINK[import_chains3.mainnet.id],
1712
+ targetAssetTicker: LINK_SPOT_SYMBOL,
1713
+ iconSrc: ASSET_LOGO_SRCS.LINK,
1714
+ generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1715
+ if (!outputConfig) {
1716
+ return [];
1717
+ }
1718
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1719
+ return [];
1720
+ }
1721
+ return generateLighterMainnetDepositActions({
1722
+ address,
1723
+ assetIndex: 5 /* LINK */,
1724
+ routeType: 1 /* Spot */
1725
+ });
1726
+ }
1727
+ });
1728
+ var LIGHTER_SKY_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1729
+ targetChain: import_chains3.mainnet.id.toString(),
1730
+ targetAsset: tokenAddresses.SKY[import_chains3.mainnet.id],
1731
+ targetAssetTicker: SKY_SPOT_SYMBOL,
1732
+ iconSrc: ASSET_LOGO_SRCS.SKY,
1733
+ generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1734
+ if (!outputConfig) {
1735
+ return [];
1736
+ }
1737
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1738
+ return [];
1739
+ }
1740
+ return generateLighterMainnetDepositActions({
1741
+ address,
1742
+ assetIndex: 8 /* SKY */,
1743
+ routeType: 1 /* Spot */
1744
+ });
1745
+ }
1746
+ });
1747
+ var LIGHTER_UNI_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1748
+ targetChain: import_chains3.mainnet.id.toString(),
1749
+ targetAsset: tokenAddresses.UNI[import_chains3.mainnet.id],
1750
+ targetAssetTicker: UNI_SPOT_SYMBOL,
1751
+ iconSrc: ASSET_LOGO_SRCS.UNI,
1752
+ generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1753
+ if (!outputConfig) {
1754
+ return [];
1755
+ }
1756
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1757
+ return [];
1758
+ }
1759
+ return generateLighterMainnetDepositActions({
1760
+ address,
1761
+ assetIndex: 6 /* UNI */,
1762
+ routeType: 1 /* Spot */
1763
+ });
1764
+ }
1765
+ });
1766
+ var LIGHTER_AAVE_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1767
+ targetChain: import_chains3.mainnet.id.toString(),
1768
+ targetAsset: tokenAddresses.AAVE[import_chains3.mainnet.id],
1769
+ targetAssetTicker: AAVE_SPOT_SYMBOL,
1770
+ iconSrc: ASSET_LOGO_SRCS.AAVE,
1771
+ generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1772
+ if (!outputConfig) {
1773
+ return [];
1774
+ }
1775
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1776
+ return [];
1777
+ }
1778
+ return generateLighterMainnetDepositActions({
1779
+ address,
1780
+ assetIndex: 7 /* AAVE */,
1781
+ routeType: 1 /* Spot */
1782
+ });
1783
+ }
1784
+ });
1785
+ var LIGHTER_LDO_SPOT_FUN_MAINNET_DEPOSIT = createPath({
1786
+ targetChain: import_chains3.mainnet.id.toString(),
1787
+ targetAsset: tokenAddresses.LDO[import_chains3.mainnet.id],
1788
+ targetAssetTicker: LDO_SPOT_SYMBOL,
1789
+ iconSrc: ASSET_LOGO_SRCS.LDO,
1790
+ generateActionsParams: (address) => async (_finalTargetAssetAmount, outputConfig) => {
1791
+ if (!outputConfig) {
1792
+ return [];
1793
+ }
1794
+ if (outputConfig.targetChain !== import_chains3.mainnet.id.toString()) {
1795
+ return [];
1796
+ }
1797
+ return generateLighterMainnetDepositActions({
1798
+ address,
1799
+ assetIndex: 9 /* LDO */,
1800
+ routeType: 1 /* Spot */
1801
+ });
1802
+ }
1803
+ });
1643
1804
  var LIGHTER_DYNAMIC_ROUTES = [
1644
1805
  createRoute({
1645
1806
  id: "LIGHTER_ETH_SPOT",
@@ -1682,6 +1843,37 @@ var LIGHTER_DYNAMIC_ROUTES = [
1682
1843
  paths: {
1683
1844
  FUN_MAINNET_DEPOSIT: LIGHTER_ETH_SPOT_FUN_MAINNET_DEPOSIT
1684
1845
  }
1846
+ }),
1847
+ // LINK, UNI, AAVE, SKY, LDO tokens
1848
+ createRoute({
1849
+ id: "LIGHTER_LINK_SPOT_NEW_USER",
1850
+ paths: {
1851
+ FUN_MAINNET_DEPOSIT: LIGHTER_LINK_SPOT_FUN_MAINNET_DEPOSIT
1852
+ }
1853
+ }),
1854
+ createRoute({
1855
+ id: "LIGHTER_SKY_SPOT_NEW_USER",
1856
+ paths: {
1857
+ FUN_MAINNET_DEPOSIT: LIGHTER_SKY_SPOT_FUN_MAINNET_DEPOSIT
1858
+ }
1859
+ }),
1860
+ createRoute({
1861
+ id: "LIGHTER_UNI_SPOT_NEW_USER",
1862
+ paths: {
1863
+ FUN_MAINNET_DEPOSIT: LIGHTER_UNI_SPOT_FUN_MAINNET_DEPOSIT
1864
+ }
1865
+ }),
1866
+ createRoute({
1867
+ id: "LIGHTER_AAVE_SPOT_NEW_USER",
1868
+ paths: {
1869
+ FUN_MAINNET_DEPOSIT: LIGHTER_AAVE_SPOT_FUN_MAINNET_DEPOSIT
1870
+ }
1871
+ }),
1872
+ createRoute({
1873
+ id: "LIGHTER_LDO_SPOT_NEW_USER",
1874
+ paths: {
1875
+ FUN_MAINNET_DEPOSIT: LIGHTER_LDO_SPOT_FUN_MAINNET_DEPOSIT
1876
+ }
1685
1877
  })
1686
1878
  ];
1687
1879