Клиент Web3 не может записать контракт в приложении Flutter, используя WalletConnect для учетных данных

Я использовал web3dart с флаттером с Ganache и Truffle для запуска моего контракта Solidity, контракт отлично читается моим приложением Flutter, но когда я запускаю функции, которые записывают в контракт, он не работает (не могу записать в контракт из приложение). Я видел в пакете web3dart, что вы должны использовать .sendTransaction() вместо .call() при запуске функции, которая записывает в контракт

для учетных данных я использовал WalletConnect. Я использовал класс WalletConnectEthereumCredentials, который был написан в исходном коде примера пакета

Транзакция прошла успешно с адреса кошелька MetaMask на адрес контракта (отслеживается с помощью EtherScan), но, тем не менее, данные контракта остаются неизменными.

Код прочности:

         function update(string memory newMessage) public {
        message = newMessage;
} 

Код флаттера:

            final cred = WalletConnectEthereumCredentials(provider: provider);
      try {
        var transactionId = await _web3client.sendTransaction(
            cred,
            Transaction.callContract(
              contract: _deployedContract,
              function: _updateFunction,
              parameters: ["NEW_MESSAGE"],
              from: EthereumAddress.fromHex(
                  cred.provider.connector.session.accounts[0]),
            ),
            chainId: 4);

Вы можете видеть, что происходит, иWalletConnectEthereumCredentialsв здесь.репозитории walletConnect

0 ответов

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