dusa 1.1.0 copy "dusa: ^1.1.0" to clipboard
dusa: ^1.1.0 copied to clipboard

Dusa package is an SDK that connects your Dart and Flutter applications to Dusa - a decentralized exchange (DEX) built on the Massa blockchain.

example/main.dart

// ignore_for_file: dead_code

import 'package:dusa/constants.dart';
import 'package:dusa/helpers.dart';
import 'package:dusa/quoter.dart';
import 'package:dusa/service/grpc_service.dart';
import 'package:dusa/tokens.dart';
import 'package:massa/massa.dart';
import 'package:dusa/swap.dart';
import 'package:dusa/env/env.dart';

void main() async {
  final isBuildnet = true;
  final wallet = Wallet();
  final account = await wallet.addAccountFromSecretKey(
      Env.privateKey, AddressType.user, isBuildnet ? NetworkType.BUILDNET : NetworkType.MAINNET);
  final grpc = GrpcServiceImpl(account: account, isBuildnet: isBuildnet);

  final swap = Swap(grpc);
  final quoter = Quoter(grpc);

  final amountIn = doubleToMassaInt(2.00);

// swap exact 2 MAS to USDC
  final (route, pair, binSteps, amounts, amountsWithoutSlippage, fees) =
      await quoter.findBestPathFromAmountIn(TokenName.WMAS, TokenName.USDC, BigInt.from(amountIn));
  print('amount in: $amountIn');
  print('route: $route');
  print('pair: $pair');
  print('bin steps: $binSteps');
  final amountOut = bigIntToDecimal(amounts[1], getTokenDecimal(TokenName.USDC));
  final amountOutWithSlippage = minimumAmoutOut(amountOut, 0.5);
  final amountBigInt = decimalToBigInt(amountOutWithSlippage, getTokenDecimal(TokenName.USDC));

  print(
      'amounts: $amounts => ${toMAS(amounts[0])} MAS = ${bigIntToDecimal(amounts[1], getTokenDecimal(TokenName.USDC))} USDC => ${bigIntToDecimal(amountBigInt, getTokenDecimal(TokenName.USDC))} USDC');
  final result = await swap.swapExactMASForTokens(
      amounts[0], amountBigInt, binSteps, route, account.address(), CommonConstants.txDeadline);
  print('response: $result');
  print("");

  // swap exact 102 MAS to WETH
  final (route2, pair2, binSteps2, amounts2, amountsWithoutSlippage2, fees2) =
      await quoter.findBestPathFromAmountIn(TokenName.WMAS, TokenName.WETH, BigInt.from(amountIn));
  print('amount in: $amountIn');
  print('route: $route');
  print('pair: $pair');
  print('bin steps: $binSteps');
  final amountOut2 = bigIntToDecimal(amounts2[1], getTokenDecimal(TokenName.WETH));
  final amountOutWithSlippage2 = minimumAmoutOut(amountOut2, 0.5);
  final amountBigInt2 = decimalToBigInt(amountOutWithSlippage2, getTokenDecimal(TokenName.WETH));

  print(
      'amounts: $amounts2 => ${toMAS(amounts2[0])} MAS = ${bigIntToDecimal(amounts2[1], getTokenDecimal(TokenName.WETH))} WETH => ${bigIntToDecimal(amountBigInt2, getTokenDecimal(TokenName.WETH))} WETH');
  final result2 = await swap.swapExactMASForTokens(
      amounts2[0], amountBigInt2, binSteps2, route2, account.address(), CommonConstants.txDeadline);
  print('response: $result2');
}
1
likes
0
pub points
32%
popularity

Publisher

verified publishernafsi.world

Dusa package is an SDK that connects your Dart and Flutter applications to Dusa - a decentralized exchange (DEX) built on the Massa blockchain.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

massa

More

Packages that depend on dusa