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
);