Build on Dyneros

Integrazione DEX

Integra swap di token, pool di liquidità e feed di prezzo usando il Dyneros AMM — completamente compatibile con l'interfaccia Uniswap V2.

Indirizzi Contratti

Factory0xc8148DD9089fc2C6f09aAe15c347F3dFc3757451
Router0xD6c26Ce48bDe29bca596Abe5C3b3DF93C6b91F97
dUSD/WDYN Pair0x03d48a305C83E9A53c8DE3FC8f933c94Be09B1cE

Ottieni Quotazione Prezzo

const router = new ethers.Contract(
  "0xD6c26Ce48bDe29bca596Abe5C3b3DF93C6b91F97",
  ["function getAmountsOut(uint amountIn, address[] path) view returns (uint[] amounts)"],
  provider
);

// Quanto WDYN ottengo per 100 dUSD?
const amounts = await router.getAmountsOut(
  ethers.parseEther("100"),
  ["0xfa69e3c56aCe1f93C6E332a656318Ba0Cc4d7e57", // dUSD
   "0xd270c9AA03019c294c68e4Ea134995Cd30EC226b"]  // WDYN
);
console.log("Expected WDYN:", ethers.formatEther(amounts[1]));

Swap DYN → dUSD (nativo → token)

const router = new ethers.Contract(ROUTER, [
  "function swapExactETHForTokens(uint amountOutMin, address[] path, address to, uint deadline) payable returns (uint[] amounts)"
], signer);

await router.swapExactETHForTokens(
  0,                             // amountOutMin
  [WDYN, DUSD],                  // path: DYN→WDYN→dUSD
  await signer.getAddress(),
  Math.floor(Date.now()/1000) + 1200,
  { value: ethers.parseEther("1") } // send 1 DYN
);

Aggiungi Liquidità

// 1. Approva entrambi i token
await dusd.approve(ROUTER, amountA);
await wdyn.approve(ROUTER, amountB);

// 2. Aggiungi liquidità
const router = new ethers.Contract(ROUTER, [
  "function addLiquidity(address,address,uint,uint,uint,uint,address,uint) returns (uint,uint,uint)"
], signer);

await router.addLiquidity(
  DUSD, WDYN,
  amountA, amountB,   // importi desiderati
  amountA * 95n / 100n, amountB * 95n / 100n, // 5% slippage
  await signer.getAddress(),
  Math.floor(Date.now()/1000) + 1200
);