Неизвестная метамаска метода в приложении флаттера dex

Когда я запускаю код, подключаюсь к метамаске и появляется подтверждение txn, он показывает неизвестный метод. Но я хочу, чтобы он показывал swapExactETHfromTokens из смарт-контракта routev2 UniSwap и выполнял функцию.

  • Примечание: аби и адрес контракта верны. Я тестировал некоторые чистые функции.
       Future<void> loginUsingMetamask() async {
    final connector = WalletConnect(
        bridge: 'https://bridge.walletconnect.org',
        clientMeta: const PeerMeta(
            name: 'Nika',
            description: 'An app for converting pictures to NFT',
            url: 'https://nikaguru.page.link/start',
            icons: [
              'https://files.gitbook.com/v0/b/gitbook-legacy-files/o/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
            ]));

    try {
      var session = await connector.createSession(onDisplayUri: (uri) async {
        _uri = uri;
        print(uri);

        await launchUrlString(
          'metamask://wc?uri=$uri',
          mode: LaunchMode.externalNonBrowserApplication,
        );
      });

      // var token1 = await uni.getDataT1();
      var token2 = await uni.getDataT2();
      var weth_addr = await uniSc.getPureSmartContract('WETH', []);
      //print(weth_addr[0].toString() + 'WETHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH');
      //print(uni.parseToAddress(weth_addr.toString()));

      var xx = await uniSc.runRouteSCFunc(
        'swapExactETHForTokens',
        [
          //  BigInt.from(0.00001),
          BigInt.from(100000000000),
          [
            uni.parseToAddress(weth_addr[0].toString()),
            uni.parseToAddress('0x1f9840a85d5af5bf1d1762f925bdaddc4201f984'),
          ],
          EthereumAddress.fromHex(session.accounts[0]),
          BigInt.from(DateTime.now().millisecondsSinceEpoch / 1000 + 300),
        ],
        session.accounts[0],
      );

      var a = await EthereumWalletConnectProvider(connector).sendTransaction(
        from: session.accounts[0],
        to: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',
        data: xx,
        gas: 90000,
        value: BigInt.from(100000000000000),
        gasPrice: BigInt.from(2000),
      );

      print(a.toString());
 

      setState(() {
        _session = session;
      });
    } catch (exp) {
      print(exp);
    }

    connector.on(
        'connect',
        (session) => setState(
              () {
                _session = _session;
              },
            ));
    connector.on(
        'session_update',
        (payload) => setState(() {
              _session = payload;
            }));
    connector.on(
        'disconnect',
        (payload) => setState(() {
              _session = null;
            }));
    connector.on('callEvent', (event) => print(event));
  }

с хх есть

         DeployedContract contract =
        await getContract(routev2ContractAddress, routev2Abi);
    ContractFunction function = contract.function(functionName);

    var a = Transaction.callContract(
      contract: contract,
      function: function,
      parameters: args,
      //   // gasPrice: EtherAmount.inWei(BigInt.from(10000000)),
      //   // maxGas: 100000,
      //   // from: EthereumAddress.fromHex(sender),
      //   // nonce: 1,
      //   // value: EtherAmount.inWei(BigInt.from(1000000000)),
    ).data;

0 ответов

Другие вопросы по тегам